Справочный материал

Требования к разработке драйверов для сканеров штрихкодов

Система программ 1С:Предприятие поддерживает обмен данными с различными моделями сканеров штрихкодов по согласованной технологии (рис.1).Введение. . Внешние события от драйвера

Требования к разработке драйверов для сканеров штрихкодов

Введение

Внешние события от драйвера

 

Обновлено: 14.02.2008

Введение

Система программ 1С:Предприятие поддерживает обмен данными с различными моделями сканеров штрихкодов по согласованной технологии (рис.1).

Конфигурация 1С:Пр дприятие Обработка обслуживания Внешняя компонента Обработка обслуживания Обработка обслуживания і і 1 і Внешняя компонента Драйвер Внешняя компонента ш АРМ ПО  л л л Ъ Устройство 1 Устройство / Устройство / Устройство / л М Л

Рис.1

Конфигурация системы программ «1С:Предприятие 8» взаимодействует с обработками обслуживания сканеров штрихкодов.

Обработки обслуживания сканеров штрихкодов взаимодействуют с внешними компонентами для сканеров штрихкодов (драйверами для интеграции с «1С:Предприятие 8»).

Внешняя компонента (далее по тексту «драйвер») может взаимодействовать:

  • непосредственно с моделью сканера штрихкодов;
  • с программным обеспечением (АРМ), поставляемым вместе со сканером штрихкодов;
  • с драйвером сканеров штрихкодов низкого уровня, написанным по технологии OLE for POS (OPOS).

Общие требования к драйверу:

Драйвер должен:

  • быть разработан в виде внешней компоненты (описание механизма создания внешних компонент приведено в документе «Документация по технологии создания внешних компонент» на диске ИТС в разделе «Технология создания внешних компонент» Методической поддержки 1C:Предприятия 8.1.);
  • обеспечить возможность реализации функционала в полном объеме для подключаемого вида оборудования
  • предоставлять набор свойств и методов для настройки и управления драйвером в соответствии с опубликованными на диске ИТС в разделе «Работа с торговым оборудованием» Методической поддержки 1С:Предприятия 8.1 требованиями к виду представленного на сертификацию оборудования
  • предоставлять русскоязычные и англоязычные названия свойств и методов (например, Порт- Port, Скорость - Speed, Подключить() - Open(), СобытиеОбработано() - EventProcessed() и др.);
  • поддерживать множественные подключения (в соответствии с идеологией COM-технологии), а также поддерживать работу с несколькими устройствами, если позволяют бизнес-процессы, в которых используется данное оборудование;
  • при возникновении ошибки в работе предоставлять подробное описание произошедшей ошибки, позволяющее пользователю понять причину возникновения ошибки и способ ее устранения;
  • при возникновении внештатных ситуаций (некорректные действия пользователя, отсутствие запрашиваемого метода или функции, передача некорректных значений и др.) корректно обрабатывать их. Не должно быть аварийных завершений работы драйвера и прочих некорректных действий драйвера, которые могут привести к нарушению нормальной работы пользователя.

Описание работы с драйвером

Начало работы с драйвером

Система 1С:Предприятие (в дальнейшем "система") инициализирует соединение с драйвером и загружает его. Далее устанавливаются конфигурационные параметры, необходимые для работы. Подключение к устройству выполняется при начале операции с устройством торгового оборудования. После подключения устройства система готова к приему событий от драйвера.

После отправки события драйвер должен приостановить отправку следующего и ожидать команды сверху о возможности продолжения отправки событий. Если результат обработки события положительный, то драйвер инициирует отправку следующего события, в противном случае требуется перепосылка последнего события, того, после которого драйвер приостановился. То есть из старых событий необходимо хранить только последнюю сформированную строку для отправки (при этом в драйвере при поступлении новые данные должны буферизироваться и высылаться по мере освобождения системы). Пример последовательности такой:
• Отправка События 1;
• Получен ответ СобытиеОбработано(Истина);
• Отправка События 2;
• Получен ответ СобытиеОбработано(Истина);
• Отправка События 3;
• Получен ответ СобытиеОбработано(Ложь);
• Отправка События 3;
• Получен ответ СобытиеОбработано(Ложь);
• Отправка События 3;
• Получен ответ СобытиеОбработано(Истина);
• Отправка События 4;
• Получен ответ СобытиеОбработано(Истина);

Завершение работы

Отключение от устройства выполняется при окончании операции с устройством.

Соединение с драйвером закрывается только при завершении работы системы.

Описание свойств

Описание свойств

Название (alias)

Тип

Доступность

Описание

Чтение

Запись

Описание методов

Описание методов

Название (alias)

Параметры

Возвращаемое значение

Описание

Имя

Тип

Описание

ПолучитьНомерВерсии (GetVersion) - - - BSTR Возвращает номер версии драйвера
ПолучитьОшибку(GetLastError) ОписаниеОшибки
(ErrorDescription)
BSTR [OUT] Описание ошибки LONG Возвращает код и описание последней произошедшей ошибки
Подключить (Open) МассивЗначений
(Valuesarray)

IDispatch*
[IN]

Массив значений для настройки подключения BOOL Подключает сканер штрихкодов
ИДУстройства (DeviceID) BSTR [OUT] Идентификатор устройства
Отключить (Close) ИДУстройства (DeviceID) BSTR [IN] Идентификатор устройства BOOL Отключает сканер штрихкодов
СобытиеОбработано (EventProcessed) ИДУстройства (DeviceID) BSTR [IN] Идентификатор устройства BOOL Оповещает драйвер о том, что событие системой было получено. Параметр "ФлагСостояния" указывает на успешность обработки.
ФлагСостояния (StateFlag) BOOL [IN] Флаг обработки события
ТестУстройства (DeviceTest) МассивЗначений
(Valuesarray)

IDispatch*
[IN]

Массив значений для настройки подключения

BOOL

Выполняет пробное подключение и опрос устройства. При успешном выполнении подключения в описании возвращается описание устройства. При отрицательном результате возвращается описание возникшей проблемы при подключении.
ДополнительноеОписание (additionalDescription)

BSTR
[OUT]

Описание результата выполнения теста

Дополнительное описание:
"МассивЗначений" (пример значений для устройства, подключаемого на последовательном порту)
Тип данных "1С:Предприятия 8" - Массив.

Наименование параметра Наличие в структуреТипы данныхОписание параметра
Порт (Port) Обязательное LONG Номер последовательного порта (1 соответствует порту COM1)
Скорость (Speed) Необязательно LONG Скорость последовательного порта, на которой подключается устройство (передается непосредственно значение 9600, 19200, 57600, 115200 и т.д.)
Четность (Parity) Необязательно LONG Задает значение, определяющее метод контроля четности при работе с периферийным устройством по COM-порту (Значения: 0 - "Нет", 1 - "Нечетность", 2 - "Четность", 3 - "Установлен", 4 - "Сброшен")
БитыДанных (DataBits) Необязательно LONG Задает значение, определяющее количество бит данных при работе с периферийным устройством по COM-порту (Значения: 7, 8)
СтопБиты (StopBits) Необязательно LONG Задает значение, определяющее количество стоповых бит при работе с периферийным устройством по COM-порту (Значения: 1, 2)
Чувствительность (Sensitivity) Необязательно LONG Задает чувствительность клавиатурного ввода при работе с периферийным устройством через клавиатурный порт
ПрефиксШК (BarcodePrefix) Необязательно BSTR Устанавливает префикс штрихкода
СуффиксШК (BarcodeSuffix) Обязательное BSTR Устанавливает суффикс штрихкода

Внешние события от драйвера

Во

времяподключениядрайвервозвращаетпараметр "Идентификаторустройства". Данныйпараметриспользуетсявдальнейшемдрайверомдляуказанияисточникасобытия (устройства) приотправкесобытия, атакжеконфигурациямидляопределениясвязаннойссобытиемобработкиобслуживания. Идентификаторустройствадолженбытьуникальнымдлякаждогоподключения, дляэтогопредлагаетсявестисопоставление«Подключенноеустройство-Идентификаторустройства», добавляяновыестрокиприподключениикустройствуиудаляяприотключенииотнего. Т.е. драйверпривызовеметодаПодключить() долженсформироватьновыйидентификаторустройства (предлагаетсявкачествеименииспользовать GUID ввидупростотыегополученияпрограммнымпутем) ипередатьввыходномпараметре.

При наступлении событий в драйвере в систему можно посылать сообщение о возникновении внешнего события. При посылке сообщения о внешнем событии необходимо указать: источник события (Идентификатор устройства), наименование (тип) события и данные.

Описание аргументов событий

Имя события – "ЧтениеШтрихкода" ("BarcodeReading")

Данные – значение считанного штрихкода без префикса и суффикса. Для передачи данных используется тип данных "Строка" (BSTR).

Имя события – "ОшибкаВДрайвере" ("Error")

Данные – описание ошибки.

Событие наступает, если в процессе работы драйвера возникли ошибки.

Записаться по телефону