Как стать автором
Обновить

Задача для разработчика, или как мы без вендора ручные сканеры прошивали

Время на прочтение7 мин
Количество просмотров13K
Всего голосов 40: ↑40 и ↓0+40
Комментарии47

Комментарии 47

Из за этой маркировки некоторые мелкие европейские производители уже начали отказываться от поставок продукции в Россию, толи ещё будет.
Будут импортеры маркировать с помощью наклеек.
Товар ещё до пересечения границы должен обладать кодом, т.е. клеить придётся за границей.
Импортёры от такого мягко говоря не в восторге.
Вы за всех не говорите. Есть импортеры, которые это могут обеспечить. Есть — которые не могут, но научатся. Есть которые закроются.
Это в любом случае дополнительные траты и усложнение логистики которые не факт что когда нибудь окупятся.
Покажите мне пальцем на того кому это нравится.

Речь идет об одной и единственной модели сканера, ряде моделей или вообще о произвольном наборе, попросту так повезло, что у них у всех начинка одинаковая ?

Вот у Вас на картинке вроде honneywell 1450, который и так берёт инверсный код.(или у Вас совсем старые модели)
Очень странно, что у Вас USB сканера… а не комовские… При том, что Вы говорите о многих магазинах, ведь если
1.Он работает как клавиатура(HID), то нужно разработчику следить за раскладкой ибо QR
qwert придёт в ИС как йцуке.
2.А если работает как эмуляция COM от USB (в Linux видятся как /dev/ttyUSB0 ,/dev/ttyACM0 и т.д), То за раскладкой следить уже не надо, НО Вы теряете важную "фишку" нативного сканера RS-232., работающего от своего автономного блока питания.Если у него не получается считать QR код, он увеличивает яркость(чем не может похвастаться эмуляция USB).И количество верных сработок на порядок у нативного rs-232 выше, чем у USB-COM,

Как вы умудрились связать интерфейс подключения и алгоритмы коррекции ошибок внутренней части сканера?

Умудрился связать, потому как связь действительно есть… если у Вас 3 ларька в обслуживании с 5 сканерами USB,-То нагрузка на поддержку не заметна, а когда 500 компов в обслуживании, вот тут и вылазят все косяки, и если у Вас rs-232, то косяков на порядки меньше.Вы сказали, что у Вас много магазинов… Вот я и удивился простой вещи:
-Зачем Вы так себя мучаете, когда можно не мучаться.
Но впрочем это Ваше дело.

Я не из x5. Я имел ввиду вот эту фразу
.Если у него не получается считать QR код, он увеличивает яркость(чем не может похвастаться эмуляция USB)

Извините, я думал Вы автор или причастен к конторе.
На самом деле


Если у него не получается считать QR код, он увеличивает яркость(чем не может похвастаться эмуляция USB)

Это очень Важная фишка.Качество QR кода на сигаретах очень низкое… многие сканера не берут… И вот тут инкрементальное увеличение яркости (а следовательно контрастности QR кода) играет Важную вещь для считывания.
В сухом остатке кассир на кассе не мучает ни себя ни покупателя. ожиданием.
Т.е кассир со сканером rs-232 работает эффективнее чем кассир с USB(в каком бы режиме USB сканер не работал) при считывании QR.
Для больших магазинов это важный показатель.

Просто из комментов непонятно, почему


  • последовательное увеличение яркости делает драйвер, а не сама железяка
  • почему через USB нельзя подать команду, которая подаётся RS-232

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

Там подстветка включается чтоли? Там же бликов будет много — это спорное техническое решение.Не понятно. Даже если так, тока в usb для светодиодов достаточно.
Вы сравнивали одну модель на разных интерфейсах или все же разные модели сканеров с разными же интерфейсами и делает такой вывод?

Я много работаю с POS оборудованием.И много со сканерами штрихкода.Хорошие сканера (Начиная от 150 $) Ведут себя именно так.Вставил USB кабель(если надо отсканировал настроечный код) И всё QR определённого качества не читает.Меняем кабель в этом же сканере на rs-232… И всё ОК.Я не буду перечислять брэнды и модели… Вот у автора на картинке Honneywell 1450… Он относится к классу хороших сканеров Не знаю зачем автор поста его перепрошивал… он и так берёт инверсный QR код. Так вот эта модель… ведёт себя так как я описал..

Вы на мой вопрос ответили, спасибо.
Мы, как потребители POS оборудования, пошли по пути «найти модель которая без проблем читает вот этот набор шк».

А не сталкивались с тем, что имиджевый сканер (с камерой) EAN13 плохо пропечатанный «додумывает»? В том числе и контрольное число.

Я стараюсь брать хорошие сканера и это не типично додумывать.
Вообще алгоритм додумывания включён в PDF 417
Это старая марка егаиса


PDF417 предусматривает полиномиальное кодирование Рида-Соломона дополнительных данных для восстановления информации. Количество дополнительных КС зависит от уровня коррекции ошибок.

В очень хороших сканерах (от 2000$) включен этот алгоритм Рида-Соломона и можно часть кода закрыть пальцем.И хороший сканер благодаря этому алгоритму восстановит потери и прочитает правильно.

Я стараюсь брать хорошие сканера и это не типично додумывать.

Да не похоже, что в цене тут дело. Старый дешевый лазерный сканер такой ШК EAN13 или корректно читает или не читает вовсе, а имиджевый в 1-2 считываниях из 10 выдает некорректные данные с пересчитанной контрольной цифрой. Я вижу что ШК фиговый и что ширина линий в месте где неправильно читаются данные больше/меньше чем должна быть. Это именно брак ШК который имеджевый сканер всеми правдами и неправдами пытается прочитать.

И судя по ценнику мы говорим в вашем случае про станционарные сканеры. Не наш вариант. Мы ручные используем в наших «ларьках». А тут уже надо учитывать потери от падений сканеров на пол. И не надо писать «дорогие выживают». Люди пальцем сенсорные экраны разбивают, а тут всего лишь уронить удачно надо.

Додумывать EAN 13 вообще нельзя… можно додумывать то, что входит в спецификацию.(Типа PDF 417)
Но… я сталкивался с подобным поведением в ТСД(Терминалах сбора данных) Выяснялось,- он путал UPC с EAN13 (UPC Это американский формат 12 символов (или 11+1(контрольный))).
Если Вам пришло 12 символов это оно самое.
Но там(в ТСД) можно отключить распознавание форматов.
Возможно Ваш сканер путает EAN13-UPC… Именно на сканерах такого не встречал… Было на ТСД.

Выяснялось,- он путал UPC с EAN13 (UPC Это американский формат 12 символов (или 11+1(контрольный))).
рискну предположить, что EAN13 в том случае начинался с нулей или в сканере была отключена передача контрольного символа в EAN13.

Если Вам пришло 12 символов это оно самое

13

Характер того штрихкода я уже не помню..(Только не в сканере, а в ТСД).
А вот то, что Вам пришло 13 символов и при этом неверных Это и вправду странно...EAN13 настолько распространенный формат, что должно работать как "отченаш"
… Атоловский сканер что-ли?

Конечно же в ТСД (хоть там и стояла максимально обрезанная начинка от обычного сканера. не в том суть).

Honeywell. Модель сейчас не вспомню. Не занимаюсь ими напрямую сейчас.
Хоть в EAN13 и есть контролька, но бывают неудачные совпадения, например 2150000280211 и 2150000280877, которые при неудачном угле и качестве печати дают поочередное срабатывание то одного то другого ШК, особенно на изогнутых поверхностях.
Скрытый текст
image
image
Что-то хабр побил ссылки в картинках, вот сохраненные, а не из генератора
Скрытый текст

Да картинкой надёжнее, но как не странно ещё не каждый онлайн генератор кодов их правильно формирует. Я намучался с ними пока подобрал более менее стабильно читаемый EAN13(хотя казалось бы что может пойти не так).
zint из командной строки вне конкуренции.
Для информации

1 на кассах с линуксом переключение раскладки явление мало вероятное. У кассира просто нет таких кнопок и в самой ОС это отключено
2 последнее время эмуляция кома в сканерах с USB это все тот же HID но со специфичным ID и спец префиксом для драйвера по которому тот «ловит» выхлоп сканера и перенаправляет в виртуальный COM. Это не полноценный USB-COM

Не делайте поспешные выводы
У меня все кассы на линуксах.(ИС кроссплатформенная, но флагманская ось linux)
И всякое бывает с раскладками.
И эмуляция кома это не тот же HID- это эмуляция COM.Не знаю о какой модели вы говорите можем сверить позиции по моделям уже в личке… с какими я работал, вам точно скажу чип.(Linux его классно показывает)

Изначально сканеры брали для продажи алкогольной продукции, это было более 5 лет назад. Речи про инверсный DM тогда не шло.
Годы поставок сканеров разные, в продуктивной среде у нас было как минимум 8 версий прошивок. Пришлось выравнивать. Также у нас есть процедура Patch Management, в соответствии с ней мы всегда работаем на последних версиях.
1. Мы не работаем со сканером как с клавиатурой, нам нужно знать, какой тип штрихкода у нас на входе.
2. Сканер покупали достаточно давно, на тот момент задачи решались на USB без проблем. Насчет использования RS232 и внешних блоков питания. Это отчасти вопрос религий. Для внешнего блока питания требуется дополнительная розетка в ИБП, укладка проводов становится сложной, поскольку надо вести в два места. Оборудование на RS232 плохо дисковерится, надо знать, в какой порт включено устройство, иначе будет аффект на другие устройства (яркий пример – дисплей покупателя: если дисплею что-то не нравится, он начинает писать иероглифами), ну и так далее.

И не смотря на все эти сложности rs-232 Полностью себя оправдывает, понижая административный ресурс сопровождения.
Это тот случай, когда долго запрягать но быстро ехать.
Надо просто разработать стандарт… Сканер вставляем всегда в это гнездо.(типа внизу справа :-)) весы в это… индикатор в это.

Ждём следующего нелепого закона и героическую статью о борьбе с последствиями вместо причин

в данном случае это именно борьба с вендором, кого не волнует удаленная прошивка устройств с бесплатных ОС не зависимо от того, получает ли кто бабло от нововведения закона (скорее всего да) или нет.
Говорить о «заговоре» в данном случае рано, т.к. во первых сканер официально поддерживает datamatrix, во вторых это внезапное изменение законов РФ, на которые ещё не успел отреагировать импортный производитель.
Вот где жопка, так это с эвотором, эти какашки чтобы укоротить чек на 2см хотят 2тыр в год с каждого терминала(кассы). И таких примеров «работы» эвотора у меня накопилось десятки.
ничего удивительного при монополии
Да нет какой то особой монополии. Вариантов онлайн касс десятки.
Это просто говноконторка для выкачивания денег из бизнеса с хорошей крышей, рекламой уши забили, плюс опыта не было, а теперь хотят деньги даже за такие мелочи вроде округления копеек в сумме. Благо я их брал с последующим возмещением(обошлись как пара криптонакопителей плюс договор с ОФД), но как три-четыре года пройдут буду рассматривать альтернативы. Благо теперь знаю куда смотреть при покупке.
А прошивку то как собираете? или она была и нужно было просто ее с линукса удаленно запулить?

EZConfigScanning — если работает только в IE значит это activex модуль. То есть dll-ка. А вось на шарпе написана и открывается чуть ли не в исходный код?
Не пробовали ее реверснуть и посмотреть функции вызова протокола? Хотя бы гуглеж облегчило бы все это дело.

Есть у вас статистика по сканерам в обороте? Чем руководствовались призакупке оборудования, которое не поддерживает удаленку по линуксу? Наследие?

Майнил ли кто на кассах по ночам биткоины?
Если бы я дружил с Windows, то, наверное, так бы и действовал, но увы, я с Windows – уверенный пользователь Excel.

Да, статистика есть. Благодаря полученным результатам по перепрошивке, научились снимать настройки со сканера, так что теперь можем гарантировать, что в магазине не будет проблем.
При закупке, руководствовались текущей задачей – продажей алкогольной продукции, и на тот момент она решалась успешно. Так что да, отчасти наследие.

Не майнили, но идеи были. Есть золотое правило: магазин должен продавать, так что мы кровно заинтересованы в том, чтобы оборудование работало для задач магазина.
Дилетантский вопрос. Если требовалось только прошить зачем нужно было разбираться с протоколом?
Ведь по идее можно снять дамп USB и просто гнать его в устройство, разве нет?
С дампом не все так просто. В дампе очень много служебной информации USB, USB-шина не позволяет лить информацию просто так, ибо облачает ее в свои спецификации. Также было стойкое ощущение, что прошивка не последняя и придется снова что-то делать.
Сколько времени потратили на решение задачи? Интересно, т.к. занимался аналогичной задачей в Магните.

А распечатать код "включение инверсного режима" и просто один раз "пикнуть" сканером, даже не отключая от кассы, не судьба?

Там на части сканеров прошивка устаревшая, ещё до создания датаматрикс.
3e и 25 — мне кажется длинна значащей части
Зарегистрируйтесь на Хабре, чтобы оставить комментарий