Довідковий матеріал

Вимоги до розробки драйверів для зчитувачів магнітних карт

Система програм 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 Задає чутливість клавіатурного введення під час роботи з периферійним пристроєм через клавіатурний порт
ПрефіксМК (CodePrefix) Необов'язково BSTR Встановлює префікс коду магнітної карти
СуфіксМК (CodeSuffix) Обов'язкове BSTR Встановлює суфікс коду магнітної карти

Зовнішні події від драйвера

Під час підключення драйвер повертає параметр "Ідентифікатор пристрою". Цей параметр надалі використовується драйвером для зазначення джерела події (пристрою) під час надсилання події, а також конфігураціями для визначення пов'язаної з подією обробки обслуговування. Ідентифікатор пристрою повинен бути унікальним для кожного підключення, для цього пропонується вести зіставлення «Підключений пристрій – Ідентифікатор пристрою», додаючи нові рядки під час підключення до пристрою та видаляючи під час відключення від нього. Тобто драйвер під час виклику методу Підключити() повинен сформувати новий ідентифікатор пристрою (пропонується як ім'я використовувати GUID з огляду на простоту його програмного отримання) і передати у вихідному параметрі.

У разі настання подій у драйвері до системи можна надсилати повідомлення про виникнення зовнішньої події. Під час надсилання повідомлення про зовнішню подію необхідно зазначити: джерело події (Ідентифікатор пристрою), назву (тип) події та дані.

Опис аргументів подій

Ім'я події – "ЧитанняКодуМагнітноїКарти" ("CodeReading")

Дані – значення зчитаного коду магнітної карти без префікса та суфікса. Для передавання даних використовується тип даних "Рядок" (BSTR).

Ім'я події – "ПомилкаВДрайвері" ("Error")

Дані – опис помилки.

Подія настає, якщо в процесі роботи драйвера виникли помилки.

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