Hallo,

ich würde gerne eure Ideen wissen, wie ihr das Protokol einer stabilen (Funk-) Datenübertragung realisieren würdet. Dazu schreibe ich erst mal ein paar Sätze zur Anwendung:

Ich habe mobile Barcodescanner entwickelt und gebaut, die via Bluetooth mit einem PC kommunizieren. Im mobilen Akku betriebenen Gerät sitzt ein ATmega162. als Bluetooth-Modul habe ich ein BlueRS+I von Stollman. Am PC steckt ein Blue-1000 Stick von m2mgermany. Der USB-Stick hat den Vorteil, dass er mit bis zu 7 Geräten gleichzeitig kommunizieren kann. Dazu bietet er eine (virtuelle) serielle Schnittstelle am PC an, über die ein Multiplex-Protokol läuft, dass die seriellen Daten der verbundenen Geräte überträgt oder Daten an die Geräte sendet.
Ich habe bis jetzt insgesamt 4 dieser mobilen Scanner gebaut, wovon immer mindestens 2 gleichzeitig in Betrieb sind, unter Umständen aber alle 4.
Die Anwendung wird seit ca. einem halben Jahr benutzt. Aber ich bin mit der Stabilität der Datenübertragung nicht zufrieden. Es gibt sehr oft Verbindungsabbrüche wegen nicht, oder zu spät zugestellter Daten, und der Verbindungsaufbau selbst dauert dann jedes mal wieder zu lange.
Ich habe in das Protokol zur Datenübertragung nicht viel Arbeit gesteckt, weil ich erst mal schauen wollte. Deshalb möchte ich auch nicht viel dazu schreiben, auch nicht um euch in die falsche Richtung zu lenken.

Mir geht es darum, wie ihr so ein Protokol aufbauen würdet. Die Datenmengen sind gering. Der gescannte Barcode (13 Byte) wird per Bluetooth zum PC übertragen, dieser verarbeitet ihn und sendet ein Ergebnis an den Scanner (ca. 4 bis 10 Byte) zurück, das dort auf einer 7-Segment-Anzeige angezeigt wird. Für die Datenverarbeitung des PC ist auch ab und zu eine Web-Abfrage nötig. Da benötigt die Antwort dann unter umständen wenige Sekunden.

Der Programm-Flash des Atmel ist in der aktuellen Konfiguration erst mit 25% gefüllt, es ist also noch Platz für ein komplexeres Protokol. Wie würdet ihr so etwas aufbauen?

Viele Grüße
Andreas