Как послать команду/сообщение на сканер HoneyWell/MetroLogic? #640300


#0 by FirstOrsk
Здравствуйте! Есть задача: организовать блокировку после считывании незарегистрированного в базе штрихкода. Имею в наличии: Сканер ШК: Honeywell(Metrologic) Voyager MS5145, MS9540, скоро появится MS9535 Bluetooth USB. 1С: 8.2 УПП 1.3. Драйвер ШК: 1С ScanOPOS 8.0.14.1, еще есть Атол'овские дрова - последняя бесплатная версия или платная - не принципиально. 1-я попытка: Через установку свойства Устройство.Драйвер.ПосылкаДанных = 1 блокирую прём считанных штрихкодов, через Устройство.Драйвер.ПосылкаДанных = 0 делаю разблокировку. В 1С отрабатывает нормально, но сканер не блокируется, продолжает исправно считывать штрих-коды и пикать. 2-я попытка: В 'Руководстве по программированию сканеров Metrologic' нашел такую вещь, как 'Программное управление потоком', то есть надо послать сканеру команду XOFF (ASCII 13H) - останов сканера с включением красной лампочки, команду начала XOFF (ASCII 11H), также есть команды: ACK(06H) - подтверждение, знакомый штрихкод, NAK(15H) - отрицание, незнакомый штрихкод, BEL(07H) - выход из режима передачи данных с подачей звукового сигнала, CAN(18H) - выход из режима передачи данных молча. Есть механизм включения/отключения работы с командами XON/XOFF, ACK/NAK, BEL/CAN. Но я не нашел ни одного примера, как послать сканеру какую-то команду. Прошу откликнуться тех, кто знает хоть какие-то варианты отправки команды сканеру или может помочь чем-то еще. Нашел также в описании драйвера 1С ScanOPOS такую штуку: Параметры: Команда (Число, код команды), ЧислПарам (Число, числовой параметр), СтрокПарам (Строка, строковой параметр) Возвращаемое значение:    Результат в формате OPOS Описание:    Общий метод OPOS. Используется для взаимодействия с сервис-объектом напрямую. Пообщался с Honeywell. Отмазались, что с их железячной стороны все реализовано, а реализована ли ответная часть кем-то из разработчиков ПО, даже не интересуются. Предложили обратиться в Атол и 1С. Послали так послали, в общем.
#1 by FirstOrsk
В 8.2 нашел 3 комплекта драйвер + обработка. Производители: 1С, Атол, 1С:БиТ(он же теперь первый бит). Подозреваю, что вышеописанный метод 1С'ного драйвера Управление (DirectIO) может быть заглушкой, по крайней мере мне не удалось через него добиться от сканера реакции хоть на одну команду: Объект.Драйвер.Управление(19,19,"XOFF"); Объект.Драйвер.Управление(6,6,"6"); 19 и 17 - это я попробовал перевести 11 и 13 из хекса в десятичный формат (1*16+3=19).
#2 by FirstOrsk
Сделал запрос в Атол, можно ли это сделать через их драйвер.
#3 by FirstOrsk
Сделал запрос в 1С:БиТ (Первый бит), можно ли это сделать через их драйвер.
#4 by REM
Подниму эту ветку! Вопрос очень интересный и практически важный.
#5 by Нуф-Нуф
Не знаешь как сделать на стороне железа - делай на стороне 1с
#6 by ICWiner
Когда копался с драйверами на фискальник, то оказалось, что для драйверов 1С совместимо куча команд драйвера обрезается или переименовываются... Задача сводится к тривиальной - найти правильную документацию.
#7 by REM
Вопрос именно в том чтобы заблокировать сам сканер, чтобы не "пикал" следующий штрих код. Я делал как то  звуковым сигналом на компе - включается если код неизвестен. но при работе с блютуз сканерами оператор его не слышит.
#8 by REM
к сожалению это именно так.
#9 by Тихий омут
Была задача, связанная с массовым чтением ШК. Первоначально сделали также - при чтении неизвестного ШК блокировали прием следующих. А вот люди, непосредственно работающие с этим б(д)обром, настояли на реализации полноценной очереди ШК - при чтении неизвестного ШК софт на компе выводит модальную мессагу "Блаблабла не найден", но продолжает ставить в очередь обработки все ШК, сосканированные во время этой блокировки. После снятия блокировки - берем следующий ШК из очереди, обрабатываем и так далее. Два года полёт нормальный.
#10 by REM
Ну в принципе реализация аналогичная. Только если штрих код не найден и сканируем дальше другие товары, ставя их в очередь, то как потом найти товар с неизвестным штрихкодом?
#11 by Тихий омут
Ищут как-то. Были разные мысли о сигнализации чтения неизвестного ШК - и звук выдавали, и лампу вешали красную - толку нуль, всё равно хватают следующую коробку (на том участке, где всё это работает - только упаковки и коробки, штучного нет) и сканируют, сканируют... а конвейер идет, идёт и подает их в машину... В общем, у нас операторы настояли именно на таком подходе. Попробуй сам с простого, как изначально задумал, только не вдавайся в полное прямое управление сканером, а начни с софтовой блокировки приема ШК после неизвестного. Ну а не понравится людям - сделаешь очередь, это не намного сложнее. Потом расскажешь, что удобнее для ваших пользователей)))
#12 by FirstOrsk
Отрабатываю по первому варианту, в эске сделал Сигнал и модальное окно. На виндозный звук по умолчанию повесил сирену, выведу колонку наружу, как блютузный сканер придет. Наши 3 производителя драйверов пока молчат. Вышел на Атол'овского партнера, он тоже отправил запрос. Пока молчат. С удивлением узнал, что куча старого оборудования на COM-порту использовала Xon/Xoff. Это же так просто: надо-включил, не надо - выключил. Однако производители софта решили еще проще) Мне как раз надо было _отключить_ полноценную очередь) Спасибо всем, кто откликнулся!
Тэги: 1С 8
Ответить:
Комментарии доступны только авторизированным пользователям

В этой группе 1С