30.10.2014 18:00
Krokogen
 
Без предупреждения, притащили вместо SM300 - 5100. Теперь будут только они мол, а протокол тот же, будут работать.
Фигу, этикетки, товары выгружаются без проблем, а вот 41 файл содержащий привязку быстрых клавиш не кушает, отплевываясь 225 ошибкой (да-да, не описанную). Никто не знает как такое теперь выгружать?
06.12.2014 01:14
golota
 
Сегодня столкнулся с подобной проблемой, только весы возвращали 239 ошибку. Заглянул в fileStructure.
Обратил внимание на длину передаваемой записи(19 байт): PRESET KEY ASSIGNMENT FILE (41H) (19B/45B/46B)
Подкоректировал метод в драйвере весов, отвечающий за отправку привязок к кнопкам. Передаваемую длину установил в 19 байт и неиспользуемые последние 8 байт заполнил нулями. В итоге все заработало.
Вывод: требуется точное соблюдение длины передаваемых записей и во избежание передачи мусора, обязательно нужно пустоты заполнять нулями

#define DIGI_CMDSIZE_PRESETKEY 19
#define DIGI_CMD_SETPRESETKEY 0xF141
/*------------------------------------------------------------------------
Procedure: scaleSetPresetKey
Purpose: load preset keys

PRESET KEY ASSIGNMENT FILE (41H) (19B/45B/46B)
PRESET NUMBER - 4 BYTES (BCD)
PRESET RECORD SIZE - 2 BYTES (HEX)
PRESET KEY SWITCH # - 4 BYTES
PRESET STATUS - 1 BYTE
------------------------------------------------------------------------*/
int __declspec(dllexport) scaleSetPresetKey(int _sock, struct PresetKey * pk){
char *buf;
int pos = 0;
struct scaleAnswer res;

if (!(buf = (char *)calloc(DIGI_CMDSIZE_PRESETKEY+2, sizeof(char)))) return ERR_MEMALLOC;

pos += _s2(buf + pos, DIGI_CMD_SETPRESETKEY);
pos += _s4(buf + pos, IntToBCD(pk->number));
pos += _s2(buf + pos, 0x13);//передаем длину структуры PRESET RECORD SIZE = 19В
pos += _s4(buf + pos, IntToBCD(pk->keySwitch));
buf[pos++] = 0;
memset(buf+pos, 0, 0x8);//дополняем нулями 8 байт, добивая до 19В
pos += 8;

res = scaleSendCommand(_sock, buf, pos);
free(buf);

return res.errorCode;
}
15.12.2014 12:03
Krokogen
 
Хм... нет. Не помогло.
Дело не в этом... Т.е. как минимум не только в этом...

Передаю например такой пакет:
"00000003000B00000003000000000000000000"

И ошибка упрямо 225....
15.12.2014 12:28
Krokogen
 
Ой, ну я красавец.... Длину записи то не поменял внутри записи.. Все заработало...

Вот стоит только написать что не помогло... :)))))))))
17.12.2014 10:15
AlexLog
 
Загрузка была через супермаг ?
17.12.2014 12:10
golota
 
Krokogen и я, работаем через самописное ПО
31.01.2015 05:38
RomanSmal
 
Цитата:
Krokogen Без предупреждения, притащили вместо SM300 - 5100. Теперь будут только они мол, а протокол тот же, будут работать.
Фигу, этикетки, товары выгружаются без проблем, а вот 41 файл содержащий привязку быстрых клавиш не кушает, отплевываясь 225 ошибкой (да-да, не описанную). Никто не знает как такое теперь выгружать?
Согласно мануалу за работу с раскладкой на сенсорных весах отвечает 42 файл... - и его структура отличается от 41.
02.02.2015 13:52
Krokogen
 
Цитата:
RomanSmal Согласно мануалу за работу с раскладкой на сенсорных весах отвечает 42 файл... - и его структура отличается от 41.
Про BS никто не говорил.
Обычные SM-5100 с кнопками.
03.02.2015 15:19
RomanSmal
 
тогда рекомендую запросить новые драйвера у С+, я в свое время столкнулся с проблемами с SM100 (на новой прошивке)
Пока не обновили tcpdrv были проблемы с загрузкой...
04.02.2015 16:27
Krokogen
 
Цитата:
RomanSmal тогда рекомендую запросить новые драйвера у С+, я в свое время столкнулся с проблемами с SM100 (на новой прошивке)
Пока не обновили tcpdrv были проблемы с загрузкой...
Вы прочитайте тему с начала. Я сам драйвер написал и уже давно. Библиотека от с+ постоянно глючила, потому и отказались.
Часовой пояс GMT +3, время: 12:09.

Форум на базе vBulletin®
Copyright © Jelsoft Enterprises Ltd.
В случае заимствования информации гипертекстовая индексируемая ссылка на Форум обязательна.