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