Arduino Android was macht der Programmabschnitt

Hallo zusammen,

Ich hoffe mir kann jemand weiterhelfen , was macht der folgende programmabschnitt genau

meetAndroid.registerFunction(vorw, 'v');

void vorw(byte flag, byte numOfValues){

if (buttonState == LOW){ digitalWrite(mlinks,LOW);// Pin 10 = LOW digitalWrite(mvorw,HIGH);// Pin 9 = HIGH digitalWrite(mrechts,HIGH);// Pin11 = HIGH digitalWrite(mruckw,LOW);// Pin12=LOW }

Mir gehts um das Rote was genau heist register Funktion(vorw, v); und das was bei void vorw in der Klammer steht?

Vielen Dank an alle die Antworten

Hallo,

ein wenig mehr Informationen würden uns schon helfen. Welche Bibliothek wird verwendet, woher stammt der Code des Sketch usw. So können wir nur raten, was ich mal versuche.

der Aufruf "meetAndroid.registerFunction(vorw, 'v');" macht im Grunde folgendes.

  • meetAndroid ist ein Objekt das vermutlich zu einer Lib gehört um per Android einen Arduino zu steuern
  • registerFunction ist eine Methode dieses Objektes, das vermutlich andrere Funktionen in diesem Objekt registriert. In diesem Fall "void vorw(...)". Der Parameter "v" ist wohl sowas wie ein Key / Schlüssel etc. über den dann die Funktion später angesprochen wird. (z.B. wenn man einen bestimmten Knopf im Android-App drückt, wird ein "v" gesendet. Das ganze sieht eh wie eine Motorsteuerung aus und Android ist die "Fernbedienung"
  • void vorw(byte flag, byte numOfValues) {...} definiert eine Funktion, eben diese, die oben registriert wird. Damit das Registrieren klappt, muss sich die Funktion an eine bestimmer Form halten, sonst meckert der Compiler. Die Form wird durch die Android-Lib vorgegeben. In diesem Fall wohl "void FUNKTIONSNAME (byte PARAM1, byte PARAM2)". Das Ganze ist wie eine Schablone bei der nur festgelegt wird, das die übergebene Funktion keinen Rückgabewert haben darf (void) und das sie genau zwei Parameter hat (byte und byte). Wenn ein Funktion genau so aussieht (egal welchen Namen die Funktion hat, oder wie die Parameter heissen), dann kann man die an die Methode "registerFunction" des Objektes (eigentlich der Klasse von) "meedAndroid" übergeben, ohne das der Compiler meckert.
  • die Funktion "vorw" verwendet allerdings die übergebenen Parameter nicht, sonder schaltet nur stumpf einige Output-PINs um. Ich vermute mal eine Fahrzeugsteuerung zum vorwärts fahren. Theoretisch könnte die Funktion auch als "void vorw() {...}, also ohne Parameter definiert werden. Sie würde, was die Steuerung der PINs angeht immer noch funktionieren. Allerdings könnte man sie dann nicht mehr per meetAndroid.registerFunction() registrieren, da die Form (wird auch Signatur der Fuktion genannt) nicht passt.

Ich hoffe das war einigermassen verständlich ausgedrückt für diese Uhrzeit :-) Mehr gibt meine Glaskugel bei den dürftigen Informationen leider nicht her.

Viele Grüße, Mario.