[ОТВЕТИТЬ]
Опции темы
25.01.2016 08:55  
ndrewcisu
Добрый день

Хотел бы к Вам обратиться с небольшим вопросов, возможно будет время ответить.
Интересует второй пункт Вашего поста, в частности получения отчета с весов.

Так вот, подключиться к весам по локальной сети получается, ответ вроде приходит, в логах статус ОК.
В файле же ответы в 16-ом формате, подобного плана :

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

Скажите пожалуйста есть ли возможность их привести в удобочитаемый вид, или может подскажите другой способ снятия отчета о взвешенном товаре с весов.

Спасибо!
 
25.01.2016 14:28  
ndrewcisu
В посте ссылаюсь сюда - Примеры использования драйвера Mettler Toledo , софт брал отсюда.
 
28.01.2016 10:07  
ndrewcisu
Перевел полученные значения из HEX формата в следующее :

02 11 00 01 00 09 00 - 30322031312030302030312030302030392030300D0A
00 8D 03 02 00 01 00 01 - 30302038442030332030322030302030312030302030310D0A
01 01 00 00 00 3F 42 0F 00 - 3031203031203030203030203030203346203432203046203030
B1 7B - 4231203742

Может кому-то комбинации с правой части будут знакомы?)
 
28.01.2016 10:28  
grannie
А весы - какие именно?
В хранилище есть протокол на Tiger - не помог?
 
29.01.2016 09:18  
ndrewcisu
Цитата:
Сообщение от grannie
А весы - какие именно?
В хранилище есть протокол на Tiger - не помог?
Весы Mettler Toledo Tiger P.
Увы, изучение протокола ситуацию не изменила, так как познания в разработке подобного плана оставляют желать лучшего.:)
 
29.01.2016 10:39  
barsss
а в чём собственно проблема?
вы получили ответ от весов, в зависимости от того, какую команду на выгрузку отчёта вы посылаете, по такому принципу и разбираете ответ.
Например отправили: (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


как то так... больше нету времени расписывать..
 
29.01.2016 10:41  
barsss
т.е. в вашем случае вы разбираете команду, которую в весы и отправили...
это не ответ от весов.
 
 
Опции темы



Часовой пояс GMT +3, время: 22:13.

Все в прочитанное - Календарь - RSS - - Карта - Вверх 👫 Яндекс.Метрика
Форум сделан на основе vBulletin®
Copyright ©2000 - 2016, Jelsoft Enterprises Ltd. Перевод: zCarot и OlegON
В случае заимствования информации гипертекстовая индексируемая ссылка на Форум обязательна.