Hallo, ich bin neu hier im forum, und habe auch erst gerade mit Bascom angefangen

Mein Projekt:
Ich möchte 30 Ladegeräte per RS485 Steuern/Abfragen
Die Geräte werden den Kommando K01 M(CR/LF) für Gerät 1 nach Messwerten gefragt, die Antwort ist denn ein 18 Zeichen langen string, der mit P01 ... anfängt.
Desweitern gibt es noch ander Kommandos, die aber erstmal nicht wichtig sind, es geht mir jetzt nur darum die Kommunikation herzustellen

also z.b.
Sende: K01 M(CR/LF)
Antwort: P01 VT-EEE-EEE-EEE(CR/LF)

Das Problem:
Es muss sichergestellt sein, das wenn ein Gerät gefragt wurde, und es nicht, oder Falsch antwortet (was durchaus vorkommen kann, z.b. Defekter Optokoppler im Gerät), das Programm nicht stehen bleibt, sondern das nächste Gerät abfragt.

Deshalb kommen wohl INPUT und WAITKEY nicht infrage weil sie warten würden, und INKEY wegen der 0 auch nicht ?! (wenn falsch bitte korrigieren)

Ich habe bereits eine LabView Anwendung geschrieben die die Geräte effizient Steuert/Abfragt, doch einige bereiche sollen jetzt in den Atmega ausgelagert werden um einen Ausfall das PCs mittelfristig zu überbrücken

Ich habe übrigens die möglichkeit die Aktivität auf dem Bus mit zu Logger und im Terminal zu sehen

Mein bisheriger code funktioniert, aber ich weis nicht wie ich die antwort anders empfangen könnte.


Code:
$regfile = "M88def.dat"
$crystal = 1000000
$hwstack = 100
$swstack = 100
$framesize = 100


Config Com1 = 4800 , Synchrone = 0 , Parity = Even , Stopbits = 1 , Databits = 7 , Clockpol = 0
Config Print = Portd.2 , Mode = Set
Config Pind.2 = Output


Led1 Alias Portb.0
Config Led1 = Output

Led2 Alias Portd.7
Config Led2 = Output

Led3 Alias Portd.4
Config Led3 = Output

Taster1 Alias Pind.5
Config Taster1 = Input

Taster2 Alias Pind.6
Config Taster2 = Input



Dim Test As String * 20

Do
Gosub Mess

If Len(test) = 19 Then
Led2 = 1
Else
Led2 = 0
End If

Loop


Mess:
Waitms 5
Print "K02 M"
Input Test Noecho
Return
schonmal vielen dank für eure Antworten