Skip to content

farafonov-alexey/node-atol-wrapper

Repository files navigation

Build Status

Название

Node.js обертка для драйвера торгового оборудования (ДТО) версии 10.9.5.0 от компании АТОЛ

Источник

Документация по интеграции

Функции

Реализованы следующие методы работы с драйвером

  • create() - Инициализация драйвера
  • destroy() - Деинициализация драйвера
  • getSettings() - Выгрузка настроек

Возвращает json-объект настроек, который затем можно передать в функцию setSettings

{ AccessPassword: '',
  AutoDisableBluetooth: false,
  AutoEnableBluetooth: true,
  BaudRate: 115200,
  Bits: 8,
  ComFile: '1',
  IPAddress: '192.168.1.10',
  IPPort: 5555,
  LibraryPath: '',
  MACAddress: 'FF:FF:FF:FF:FF:FF',
  Model: 500,
  OfdChannel: 0,
  Parity: 0,
  Port: 0,
  StopBits: 0,
  UsbDevicePath: 'auto',
  UserPassword: '' }
  • setSettings(settings) - Настройка драйвера

Принимает settings json-объект настроек полученных на предыдущем шаге и модифицированых по необходимости.

  • open() - Соединение с ККТ
  • close() - Завершение соединения с ККТ
  • processJson(task) - Выполнение JSON-задания. Синхронная версия функции.

Здесь task - json-объект описание задания для ККТ. Например, задание для открытия смены:

{
    type: 'openShift',
    operator: {
       name: 'Иванов',
       vatin: '123654789507'
    }
}

Более подробную информацию по видам json-задании можно получить из документации к ДТО 10

  • processJsonAsync(task, callback)(от @maxvgi) - Выполнение JSON-задания асинхронно. После завершения вызывает функцию callback в порядке error-first. Вызывать функцию close() необходимо только после завершения всех асинхронных заданий.

Обработка ошибок

При возникновении ошибки во время выполнения функций ДТО, она обрабатывается и выбрасывается Error c текстом ошибки, например, Error: Ошибка - 4 [ Порт недоступен ]. При работе с асинхронными функциями объекты Error возвращаются первым аргументом при вызове функции callback.

Поддерживаемые платформы:

  • Widows, Linux, MacOS

Пример использования

Пример использования обертки можно посмотреть в файле index.js