Arexx RP6 V2 Build your own robot kit RP6 V2 User Manual
![Arexx](https://files.manualsbrain.com/attachments/7d5bfb0ba6ea5b2685c982333a7389b552ce0a09/common/fit/150/50/e2737ebddbd476d0e73a3bf82f6692f0e681a71c3e37eb574014e9811fb8/brand_logo.gif)
Product codes
RP6 V2
RP6 ROBOT SYSTEM - 4. Programmierung des RP6
Drückt man z.B. den rechten Bumper wäre die Ausgabe:
Bumper Status hat sich geaendert:
- Linker Bumper nicht gedrueckt.
Bumper Status hat sich geaendert:
- Linker Bumper nicht gedrueckt.
- Rechter Bumper gedrueckt!
Drückt man beide:
Bumper Status hat sich geaendert:
- Linker Bumper gedrueckt!
Drückt man beide:
Bumper Status hat sich geaendert:
- Linker Bumper gedrueckt!
- Rechter Bumper gedrueckt!
Da man beide Bumper nicht wirklich gleichzeitig drücken kann, könnte evtl. noch eine
Da man beide Bumper nicht wirklich gleichzeitig drücken kann, könnte evtl. noch eine
zusätzliche Nachricht ausgegeben werden wo nur einer der beiden gedrückt gewesen
ist.
Wohlgemerkt wird in dem obigen Programmcode, nirgendwo die Funktion
ist.
Wohlgemerkt wird in dem obigen Programmcode, nirgendwo die Funktion
bumpersStateChanged
direkt aufgerufen! Das passiert automatisch aus der RP6Library
heraus, nämlich aus der Funktion
task_Bumpers
bei jeder Änderung des Bumperzu-
stands. Da
task_Bumpers
unsere Funktion eigentlich erstmal gar nicht kennt, geht das
nur über einen Zeiger auf die entsprechende Funktion, der seinen Wert erst bei Aus-
führung des Aufrufs in Zeile 24 erhält.
führung des Aufrufs in Zeile 24 erhält.
Der Event Handler kann natürlich noch andere Aktionen auslösen, als nur Text auszu-
geben – z.B. könnte man den Roboter anhalten und zurücksetzen lassen. Das sollte
man allerdings nicht direkt im Event Handler selbst tun, sondern in anderen Pro-
man allerdings nicht direkt im Event Handler selbst tun, sondern in anderen Pro-
grammteilen – z.B. im Event Handler einfach irgendeine Kommando-Variable setzen
die man im Hauptprogramm abfragt und dann dementsprechend die Motoren steuert!
die man im Hauptprogramm abfragt und dann dementsprechend die Motoren steuert!
Alle Event Handler sollten immer so kurz wie möglich gehalten werden!
Sie können in den Event Handlern zwar alle Funktionen aus der RP6Library verwen-
Sie können in den Event Handlern zwar alle Funktionen aus der RP6Library verwen-
den, seien Sie aber vorsichtig mit den „rotate“ und „move“ Funktionen die wir später
noch besprechen werden! Benutzen Sie hier NICHT den blockierenden Modus (wenn
noch besprechen werden! Benutzen Sie hier NICHT den blockierenden Modus (wenn
man dann nämlich z.B. öfters auf die Bumper drückt, funktioniert das nicht ganz so
wie man es eigentlich haben wollte ;-) )!
wie man es eigentlich haben wollte ;-) )!
Dieses Prinzip mit den Event Handlern wird auch noch für andere Funktionen verwen-
det, z.B. für das ACS – da ist es sogar sehr ähnlich zu den Bumpern, denn auch dort
wird bei jeder Zustandsänderung der Objektsensoren ein Event Handler aufgerufen.
Auch für den Empfang von RC5 Codes über eine Fernbedienung werden Event Handler
verwendet – jedesmal wenn ein neuer RC5 Code empfangen wurde, kann ein entspre-
wird bei jeder Zustandsänderung der Objektsensoren ein Event Handler aufgerufen.
Auch für den Empfang von RC5 Codes über eine Fernbedienung werden Event Handler
verwendet – jedesmal wenn ein neuer RC5 Code empfangen wurde, kann ein entspre-
chender Event Handler aufgerufen werden.
Man muss für all diese Dinge übrigens keine Event Handler verwenden – man kann
Man muss für all diese Dinge übrigens keine Event Handler verwenden – man kann
das alles auch durch einfache if Bedingungen o.ä. abfragen und dementsprechend
darauf reagieren, aber mit Event Handlern werden einige Dinge einfacher und beque-
darauf reagieren, aber mit Event Handlern werden einige Dinge einfacher und beque-
mer. Ist aber eher Geschmackssache was man verwendet.
Auf der CD finden Sie übrigens noch einige ausführlichere Beispielprogramme zu die-
sem Thema!
sem Thema!
- 91 -