Moin Moin!
ich habe meinen Fehler noch selber finden können. Bei einer Zeichenfolge von mehr als 9 Zeichen stimmt der Platz nicht mehr, von dem ich dann den String hole.
neuer Code:
Code:
If Uart_3_rxd = 1 Then
Uart_3_rxd = 0
Rxstring = Read_string()
'inhalt Rxstring <\r><\n>+IPD,0,10:xxxxxxx<\n><\r><\n>
Esp_str_count = 0
Esp_uni_byte(1) = Instr(rxstring , "+IPD") ' ist im string die richtige info
If Esp_uni_byte(1) > 0 Then
Esp_uni_byte(1) = Val(rxbyte(10)) ' anzahl der gesendeten zeichen in byte schreiben
Esp_uni_byte(2) = Charpos(rxstring , ":") ' startpunkt für zu suchendes kommando suchen
Esp_uni_byte(2) = Esp_uni_byte(2) + 1 ' start komando ist stelle +1 (nach doppelpunkt)
Esp_uni_byte(1) = Esp_uni_byte(1) - 1 ' line feed hinter kommando abziehen
App_command = Mid(rxstring , Esp_uni_byte(2) , Esp_uni_byte(1)) ' aus dem empfangenen string kommando-daten entnehmen
Select Case App_command ' kommandodaten auswerten
Case "xxx" : Print #2 , "app_command " ; "garten!!!"
Case "xxx" : Print #2 , "app_command " ; "Rasen vorn an"
Case "xxx" : Print #2 , "app_command " ; "Rasen vorn aus"
Case Else : Print #2 , "error "
End Select
End If
End If
Grüße MAT
Lesezeichen