Salve,
per diletto vorrei cimentarmi nella lettura di stringhe binarie che un dispositivo simil domitica mi rilascia via seriale o via tcp.

Ho già sviluppato la parte server che riceve in tcp la stringa ma ora vorrei capire come poterla riconoscere (ovvero capire se è nel formato sotto specificato) e come poter estrapolare i dati.

Mi spiego meglio nel datasheet dell'oggetto è data una struttura di questo tipo qui:

&& + A + B + 0x9845 + DATA + 0x7C + C + 0x7C + D + E \r\n

&& -> fissi (2byte)
A -> valore esadecimale rappresentante la lunghezza dell'intera stringa (2byte)
B -> ID dell'apparecchio (7byte)
DATA -> dati che mi trasmette l'oggetto (da 0byte a 100byte)
C -> stato della batteria (3byte)
D -> valore fisso non è specificata la funzione (2byte)
E -> checksum CRC16 (0xfffff) 2byte

Quello che vorrei fare io è riconoscere una stringa che mi arriva nel formato sopra specificato (potrebbero arrivarmi anche altre stringhe di altri dispositivi in futuro) e poter salvarmi ogni dato in una variabile apposita.

Potete aiutarmi?

Grazie