CREAD: Expression not equal to CHAR, INT, ENUM

  • Hallo.


    Ich bekomme beim Lesen von der seriellen Schnittstelle mit


    CREAD(HANDLE,STATUS,RMODUS,TIMEOUT,OFFSET,"%d%d%d%d",command,x_value,y_value,checksum)


    den Fehler


    Expression not equal to CHAR, INT, ENUM


    wenn der Rechner, der die Daten senden Mist schickt (z.B. beim Restart)
    und der Roboter bleibt dann stehen.


    Kann ich dies nicht irgendwie abfangen und dann weitermachen? So wie ein Exception Handling in anderen Programmiersparchen?


    Schönen Gruß. Maxx

  • Schritt für Schritt zum Roboterprofi!
  • Vielen Dank,
    so sei für die Forumssuche die Antwort hier dokumentiert:



    char data[so gross, dass das längste Telegramm reinpasst]


    CREAD(HANDLE,STATUS,RMODUS,TIMEOUT,OFFSET,"%r",data[])


    ; nun mit Offset und/oder SREAD den String data[] überprüfen ob Daten gültig sind
    ; und bei i.O. mit SREAD den Variablen zuweisen
    ; gut wäre natürlich ein Empfangstelegramm mit konstanter Länge (4*4 (int)= 16)
    ; if offset <> 16 then Fehlerstategie

Erstelle ein Benutzerkonto oder melde dich an um zu kommentieren

Du musst ein Benutzerkonto haben um einen Kommentar hinterlassen zu können

Benutzerkonto erstellen
Neues Benutzerkonto für unsere Community erstellen. Geht einfach!
Neues Benutzerkonto erstellen
Anmelden
Du hast bereits ein Benutzerkonto? Melde dich hier an.
Jetzt anmelden