Цитата:
Сообщение от T_r_D
Это длина буфера с пришедшим сообщением
|
Цитата:
Сообщение от T_r_D
мой лог в HEX
10 0D 10 1D 19 10 56 45
04 00 60
30 00 0A
10 00
21 53 54 49 20 46 4D 90
00 00 00 00 00 00 00 D0
00 FF FF 00 55 00 00 00
01 03 92 40 00 D0 00 10
00 00 02 6F 00 59 00 00
FF FF 00 50 00 00 00 00
01 00 00 00 00
00 FF FF 00 00 07 38 09
02 3F FF FF FF 00 FF FF
|
Если сообщение 10 0D 10 1D 19 10 56 45 то
buf[0] & 0x0F * 256 = 0
buf[1] = 0D
Length = (buf[0] & 0x0F * 256 + buf[1]) = 0D общая длина сообщения.
Теперь
First frame количество значащих байт 6
j = 0;
for (int i=2; 6;i++){
DataBuf[j] = buf[i];
j++;
}
Теперь судя по логу надо искать 21 и со следующего байта копировать 7 или (Length - 6) байт если (Length - 6) < 7 потом искать 22 если надо и так далее пока не скопируете Length байт.
В этом случае в DataBuf будет посылка без обрамления и DataBufSize = Length.
К сожалению я не знаю язык на котором вы пишите.