Как настроить сканер Honeywell Xenon XP 1950g для корректной передачи символа GS в режиме эмуляции клавиатуры?

Системный администратор Торговля и дистрибуция
← На главную

При работе с маркируемыми товарами (система «Честный Знак», коды Data Matrix) одной из критических проблем является правильное считывание кода. В структуре Data Matrix часто используется управляющий символ [GS] (Group Separator), имеющий код ASCII 29. Этот символ служит разделителем групп данных внутри штрихкода.

Проблема заключается в том, что при стандартном подключении сканера через USB Keyboard Emulation (эмуляция клавиатуры), операционная система воспринимает сканер как обычную клавиатуру. Поскольку символа ASCII 29 не существует в виде физической клавиши на клавиатуре, сканер его просто игнорирует или пропускает, что приводит к ошибкам при проверке кода в 1С или других учетных системах. Для детального ознакомления со способами устранения подобных сбоев полезно изучить руководство по решению проблемы передачи символа GS в режиме клавиатурного клина.

Рассмотрим способы решения этой задачи, сохранив при этом удобный для пользователя режим работы через USB-эмуляцию клавиатуры.

Понимание проблемы: почему символ GS теряется?

Проанализируем ситуацию: когда сканер работает в режиме клавиатуры, он посылает в компьютер «скан-коды» клавиш. Символы первой таблицы ASCII (от 0 до 31) являются управляющими. Для их передачи через интерфейс клавиатуры требуются специальные механизмы, так как прямого соответствия «нажатой кнопке» у них нет. При использовании режима эмуляции COM-порта проблема исчезает, так как данные передаются в виде байтов, но если нам важно оставить режим Keyboard Emulation, необходимо настроить сканер на передачу этих кодов через комбинации клавиш.

Способ 1: Использование режима Alt Mode (3 digits)

Это наиболее эффективный метод для Windows-систем. Суть его заключается в том, что сканер при обнаружении символа [GS] эмулирует нажатие клавиши Alt и последовательный ввод кода символа на цифровой клавиатуре (Numpad). Разберем этот процесс по шагам.

Для активации этого режима нам потребуется утилита Honeywell EZConfig или управляющие штрихкоды из руководства пользователя. Мы должны перевести параметр KBDALT в соответствующее состояние.

  1. Откроем утилиту EZConfig и подключимся к сканеру.
  2. Найдем настройку передачи спецсимволов.
  3. Выберем режим Alt Mode with 3 digits.

В этом режиме при встрече символа с кодом 29 сканер выполнит следующую последовательность действий: Нажать Alt -> Нажать 0 -> Нажать 2 -> Нажать 9 -> Отпустить Alt. Операционная система Windows интерпретирует эту последовательность именно как ввод символа ASCII 29.

Важный нюанс: как было отмечено в обсуждении, разница между комбинациями Alt+29 и Alt+029 существенна. Ввод с ведущим нулем (029) гарантирует, что Windows будет искать символ в кодировке ANSI/Unicode, что является более современным и надежным стандартом для приложений типа 1С или Notepad++.

Способ 2: Использование режима KBDALT6 (Unicode)

Проанализируем более продвинутый вариант настройки — режим KBDALT6. В современных прошивках Honeywell Xenon XP 1950g этот режим позволяет передавать символы через универсальный метод ввода Unicode. Это особенно полезно, если на компьютере пользователя часто переключается раскладка клавиатуры (RU/EN).

При использовании стандартной эмуляции клавиатуры русская раскладка может «искажать» передаваемые символы. Режим KBDALT6 делает передачу спецсимволов независимой от активного языка ввода. Для активации этого режима через EZConfig необходимо отправить команду:

KBDALT6.

Это заставит сканер передавать все непечатные символы через расширенные коды, которые операционная система понимает однозначно.

Способ 3: Настройка через Data Formatting (Замена символов)

Если ваша учетная система (например, старая конфигурация 1С) не умеет перехватывать символ GS даже в виде Alt-последовательности, мы можем прибегнуть к методу «подмены» данных. Выясним, как это работает. В качестве готового альтернативного решения для программного восстановления данных на стороне 1С можно использовать расширение для автоматического восстановления символов GS в кодах маркировки.

Мы можем создать правило Data Format, которое будет искать в считанном коде символ с HEX-кодом 1D (это и есть десятичный 29) и заменять его на печатную последовательность, которую программа сможет обработать программно. Например, заменим GS на комбинацию #GS# или на функциональную клавишу F12.

Рассмотрим пример алгоритма настройки в EZConfig:

  1. Переходим в раздел Data Formatting.
  2. Выбираем тип штрихкода (Data Matrix).
  3. Создаем правило Editor.
  4. Используем команду Substitute: найти \x1D, заменить на нужную нам последовательность.

Способ 4: Метод Ctrl+Character (KBDCAS2)

Существует альтернативный стандарт передачи управляющих символов — KBDCAS2. В этом режиме символ GS передается как комбинация клавиш Ctrl + ]. Многие драйверы торгового оборудования для 1С настроены на распознавание именно этой комбинации как разделителя групп данных.

Этот способ работает быстрее, чем Alt Mode, так как требует передачи меньшего количества нажатий клавиш (2 нажатия вместо 5-6). Однако он требует поддержки со стороны программного обеспечения, которое должно «слушать» нажатие Ctrl.

Важные настройки для стабильной работы

При использовании эмуляции клавиатуры для передачи длинных кодов маркировки мы можем столкнуться с проблемой «потери» части символов из-за переполнения буфера Windows или задержек в RDP-сессии. Чтобы избежать этого, рекомендуется настроить параметр Intercharacter Delay (межсимвольная задержка).

Установим небольшую задержку между отправкой каждого символа (например, 10–20 миллисекунд). Это визуально замедлит процесс «печати» кода сканером, но гарантирует, что каждый эмулируемый символ (особенно сложные комбинации Alt+029) будет корректно обработан операционной системой.

Также проверьте настройку Keyboard Country Layout. Для корректной работы в России рекомендуется установить значение Russian или Universal, чтобы скан-коды клавиш соответствовали ожиданиям ОС.

Проверка результата

Как проверить, что настройка выполнена успешно? Использовать обычный Блокнот (Notepad) не всегда эффективно, так как он скрывает управляющие символы. Рекомендуем использовать Notepad++ с включенной функцией «Отображать все символы» или специализированные утилиты типа Keyboard Event Viewer. Если настройка Alt Mode выполнена верно, вы увидите в логах событий нажатие клавиш Alt и цифр, после которых в поле ввода появится невидимый или спецсимвол GS.

Таким образом, комбинируя использование EZConfig и правильный выбор режима Alt Mode, можно добиться идеальной работы Honeywell Xenon XP 1950g с маркированным товаром без перехода на эмуляцию COM-порта.

← На главную