Beispiel: Raspberry (oder Linux-PC) sendet eine Messanfrage an Arduino. Arduino antwortet mit der Laufzeit des Signals in Mikrosekunden. Raspberry wartet auf die Antwort und berechnet die Entfernung.
C Programm für Linux-PC oder Raspberry
Der Programmausschnitt zeigt die Funktion ComGetCm(). Die Funktion sendet die Anfrage und wartet auf die Antwort. Alle Fehler (Timeout, USB, Umwandlung usw.) landen im Err-Objekt.
Das Autragsende wird jede Millisekunde geprüft. Der Rechner parkt dabei resourcenschonend in Funktion peekTaste(1000000). Die Funktion kann jederzeit durch Tastendruck oder USB-Fehler unterbrochen werden.
C++ Programme für Arduino
Es folgen Ausschnitte der C++ Sourcen für den Arduino.
Das Com-Objekt wird mit der Sketch-Id und der Funktion execCmdUser erzeugt.
Der Aufruf von Com.ckh() führt die Kommunikation durch.
Der Programmausschnitt zeigt den Antwortblock für die Anfrage CMD_GET_Dist.
Com->getData(0) liefert die richtige Antwortnummer (InSlot) für diesen Auftrag.
Der Aufruf HcSr04.getDist() ermittelt den Abstand in Mikrosekunden (Siehe nächstes Bild).
HcSr04.getDist() hält die vom Modul HC-SR04 geforderte Wartezeit (ca. 60ms) immer ein.