Kommunikation
Überblick
Calliopes senden und empfangen Nachrichten über ein einfaches Funkprotokoll (Nordic EnhancedShockBurst/Gazell). Dafür stellt OpenRoberta Kommunikationsblöcke bereit. Die Kommunikationsteilnehmer müssen den selben Kommunikationskanal gewählt haben und können danach auf diesem Kanal Nachrichten austauschen. Der Calliope mini hat einen kleinen Empfangspuffer, in den empfangene Nachrichten automatisch geschrieben werden. Sender und Empfänger sollten im selben Moment aktiv sein, damit die Nachricht sicher übertragen wird. Eine gesendete Nachricht wird an alle Empfänger (des selben Kommunikationskanals) gleichzeitig übertragen (Broadcast-Verfahren).
Quelle: https://calliope.cc/projekte/funk
Besonderheiten: Senden und Empfangen sind für den Programmfluss nicht blockierend. Das bedeutet, dass eine Nachricht von Sender im Fire-and-Forget Prinzip übertragen wird. Dabei erfolgt keine Prüfung ob die Nachricht tatsächlich beim Empfänger angekommen ist. Der Empfang von Nachrichten ist ebenfalls nicht blockierend. Das heißt, dass der Empfänger den Empfangspuffer ausliest. Sind dort Nachricht enthalten, dann wird die älteste ausgegeben und aus dem Puffer gelöscht. Ist der Empfangspuffer leer, dann wird eine leere Nachricht ausgegeben.
Beispiel
Name | Programm | Beschreibung |
Zahlen Senden und Empfangen |
Das Programm auf die 2-n Calliopes spielen.
|
|
Channel Hopping Ping-Pong |
Das Programm wird auf zwei Calliopes gespielt.
Beide Calliope tausche nun zyklisch die ID des nächsten Kommunikationskanals aus, auf dem Sie die Nachrichten senden und empfangen. Der Kanal wird von beiden Calliope auf dem Display angezeigt. Beide Calliopes sind versetzt zueinander sowohl Sender als auch Empfänger. Das grüne Licht des Senders wechselt zwischen den beiden Calliopes hin und her. (Ping-Pong) |
Anwendungsfälle