so, bin nun wieder vom urlaub zurück und kann mich wieder meinen hobby widmen...

der obenstehende stream würde wie folgt aufgeteilt:
Code:
Source Device      : Broad. 1  
Destination Device : Light Ctrl
Data  - - - - - - - - - - - -
7A 21 20
 z  !    
Full Packet - - - - - - - - -
00 05 BF 7A 21 20 C1
-----------------------------

Source Device      : Broad. 1  
Destination Device : Light Ctrl
Data  - - - - - - - - - - - -
7A 61 20
 z  a    
Full Packet - - - - - - - - -
00 05 BF 7A 61 20 81
-----------------------------

Source Device      : UNKNOW 3  
Destination Device : Light Ctrl
Data  - - - - - - - - - - - -
74 04 01
 t  .  . 
Full Packet - - - - - - - - -
44 05 BF 74 04 01 8F
-----------------------------

Source Device      : UNKNOW 6  
Destination Device : Broad. 1  
Data  - - - - - - - - - - - -
58 FF 7F 00
 X  .  .  . 
Full Packet - - - - - - - - -
E8 06 00 58 FF 7F 00 36
-----------------------------

Source Device      : UNKNOW 6  
Destination Device : Nav Locat.
Data  - - - - - - - - - - - -
59 10 00
 Y  .  . 
Full Packet - - - - - - - - -
E8 05 D0 59 10 00 74
-----------------------------

Source Device      : UNKNOW 6  
Destination Device : Nav Locat.
Data  - - - - - - - - - - - -
59 50 00
 Y  P  . 
Full Packet - - - - - - - - -
E8 05 D0 59 50 00 34
-----------------------------

Source Device      : IKE       
Destination Device : Light Ctrl
Data  - - - - - - - - - - - -
11 01
 .  . 
Full Packet - - - - - - - - -
80 04 BF 11 01 2B
-----------------------------

Source Device      : IKE       
Destination Device : Light Ctrl
Data  - - - - - - - - - - - -
13 00 00 00 00 00 00 87
 .  .  .  .  .  .  .  . 
Full Packet - - - - - - - - -
80 0A BF 13 00 00 00 00 00 00 87 A1
-----------------------------

Source Device      : Nav Locat.
Destination Device : Light Ctrl
Data  - - - - - - - - - - - -
5B 00 00 00 00
 [  .  .  .  . 
Full Packet - - - - - - - - -
D0 07 BF 5B 00 00 00 00 33
-----------------------------
1. Byte = Absender
2. Byte = Länge
3. Byte = Empfänger
4. Byte = Datenbyte1
5. Byte = Datenbyte.....
......
Letztes byte = CRC

Länge = Datenbytes + CRC


Mein Problem ist immer noch, bestimmte nachrichten herauszufiltern.
Es funktioniert tadellos mit dem code vom Beitrag ganz oben, aber dafür
brauch ich für jeden gesuchte nachricht unmengen an variablen....

jetzt mach ichs grad wie in dem code hier:

Code:
       If Ischarwaiting() <> 0 Then                         'Daten einlesen
        Inputbin Ibusbin
        Ibushex = Hex(ibusbin)
        Hexstring = Hexstring + " "
        Hexstring = Hexstring + Ibushex
        If Len(hexstring) >= 50 Then Hexstring = Mid(hexstring , 19 , 33)


        If Hexstrcheck( "50 03 C8 01 9A") = 1 Then          'Mfl-Frage an Tel
            Sendmfl = 1
        End If

        If Hexstrcheck( "3B 03 C8 01 F1") = 1 Then          'Navi-Frage an Tel
            Sendnav = 1
        End If

.........

Function Hexstrcheck(byval Gesucht As String) As Byte       ' für Tasenerkennung

    Pos = Instr(hexstring , Gesucht)
    If Pos <> 0 Then
        Hexstring = ""
        Hexstrcheck = 1
    End If
End Function

..........
hier schreibe ich die UART daten im hexformat in nen string der sich immer
wieder so verschiebt, dass wenn die gesuchte nachricht kurz vor ende des
strings kommen würde, diese nicht aufgeteilt und somit mittels instr gefunden wird.

mit dieser methode lässt sich der code sehr einfach um mehrere gesuchte
nachrichten erweitern...
leider ist die ganze string verschieben und instr sache extrem umständlich
und rechenaufwändig.

da es kein start, stopbyte und feste länge gibt. kann ich auch nicht nach einer art maske suchen.

fällt jemanden von euch eine leicht zu erweiternde und nicht all zu rechenintensive möglichkeit ein, nach mehreren bestimmten nachrichten
im "uart-stream" zu suchen.

danke und nen schönen sonntag