Hi, ich hab jetzt was geschrieben:
Code:
Dim Incoming_ascii As Byte
Dim Incoming_char As String * 1
Dim Serial_in As String * 255
Dim Temp_Byte As Byte
Dim Data_str As String * 255
Dim Header_str As String * 2
Dim Data_len As String * 1
Incoming_ascii = 0
Incoming_char = ""
Serial_in = ""
Temp_Byte = 0
Data_str = ""
Header_str = ""
Data_len = ""
On Urxc Onrxd
Enable Urxc
Enable Interrupts
Main:
Goto Main
Onrxd:
Incoming_ascii = Udr
Incoming_char = Chr(incoming_ascii)
If Incoming_char = ">" Then
Serial_in = Serial_in + Incoming_char
If Len(serial_in) > 2 Then
Temp_byte = Len(serial_in) - 2
Data_str = Left(serial_in , Temp_byte)
Header_str = Right(serial_in , 2)
Data_len = Left(header_str , 1)
If Len(serial_in) = Data_len Then
Print Len(serial_in)
Print Data_len
Print Data_str
Print Header_str
End if
Serial_in = ""
Else
Print "String < 2"
Serial_in = ""
End If
Else
Serial_in = Serial_in + Incoming_char
End If
Return
Die Bedingung Len(serial_in) = Data_len ist dummerweise nie erfüllt, schätz mal weil die Typen nicht übereinstimmen. Wie wandle ich die denn um? Einfach Integer = String scheint nicht zu funktionieren.
Kann sich jemand den Code mal im groben und ganzen anschaun und mir sagen ob ich irgendwas wichtiges vergessen habe? Oder man was besser machen kann? Wäre echt super !!!
mfg
jagdfalke
Lesezeichen