а в чём собственно проблема?
вы получили ответ от весов, в зависимости от того, какую команду на выгрузку отчёта вы посылаете, по такому принципу и разбираете ответ.
Например отправили: (CMDHEADER"U02L06L06" , где U02-поле выбора вида отчета, допустим 00), получили ваш ответ.
Eth Write: 02 11 00 01 00 09 00
Eth Write: 00 8D 03 02 00 01 00 01
Eth Write: 01 01 00 00 00 3F 42 0F 00
Eth Write: B1 7B
разбираете в соответствии с описанием формата.
согласно той же документации получаем:
02 11 00 01 00 09 00 - заголовок пакета, его структура так же описана:
struct packetheader
{
unsigned char start; //start flag of one packet always 0x2
unsigned short totallength; //totallength = sizeof(cmdheader) + pagenumber * pagelength
unsigned short pagenumber; //the number of pages of itemdatas in this packet
unsigned short pagelength; //the length of each page of itemdatas
}
00 8D 03 02 00 01 00 01 - Вторая строка – это CMDHEADER:
struct cmdheader
{
unsigned char cmdrsp; //command or response
unsigned short command; //command id such as 207,213 and so on
unsigned short control; //command type: RD(read) or WR(write) and so on
unsigned short departno; //department number always 1
unsigned char deviceno; //scale number
}
получается, что первый байт - 00 - определяет команда это или ответ от весов. (в нашем случае - это команда)
8D 03 - младший байт передаётся первым, а старший последним. получаем 38D, что в десятичной системе означает 909. В формате обмена это команда запроса отчёта с весов.
02 00 - параметры команды - 0002 - команда на чтение,0000 - на запись
и т.д.
третья строка данные, 01 01 00 00 00 3F 42 0F 00
сверяемся с форматом команды и смотрим что получилось...
четвертая - контрольная сумма CRC16 - B1 7B
как то так... больше нету времени расписывать..