Dummerweise muss man der Funktion ja den Variablentyp mitgeben also funktioniert das so nicht.
Bekommt man das irgendwie hin, bzw. wie macht das z.B. die Serial.print - Anweisung, der es ja egal ist welchen Variablentyp man übergibt?
Entweder google nach "template c++" oder "function overload c++" (oder schau in die Print.h).
Edit1: Wobei, evtl. gibt es auch eine 3te Variante:
mach dir eine eigene Klasse, lass diese von Print.h erben und implementiere eine write methode in der du beide Interfaces aufrufst (also einmal Serial und einmal die Telnet) ... könnte unterm strich vieleicht sogar die "kleinste" Lösung sein. Denn das würde print und println auf einmal abdecken.
Edit2: nur so als PoC
class Multi : public Print
{
public:
virtual size_t write(uint8_t c)
{
Serial.write(c);
Serial.write(c); // halt ein telnet write blabla
return 1; // assume success
}
};
Multi multi;
void setup() {
Serial.begin(115200);
//und das Telnet.begin blabla
multi.print(1);
multi.print("a");
multi.println("fein");
multi.println(F("das auch"));
}
void loop() {
// put your main code here, to run repeatedly:
}
Damit kann ich bestimmt was anfangen, allerdings werde ich mich doch mal ein wenig in die Themen "Klassen" und "Templates" und "Überladung" einarbeiten müssen, um auch zu verstehen, was ich dann da eigentlich gemacht habe. Kurz überflogen hab ich das schon, scheint aber sehr komplex zu sein.
Vielleicht habt ihr ja einen Tipp für gute Tutorials.