XFS-сервис класса SIU. Модель DORS SE2

Внимание

С версии прошивки 1.32 специальная электроника DORS SE2 не работает с ИБП DORS-USE3111, подключенным к ней.

Файлы

  • model_1020_description.xml;

  • model_1122_description.xml;

  • model_1132_description.xml;

  • model_2010 & CashCode_description.xml;

  • model_2010_description.xml;

  • model_4010 & UD50 & nocoins_description.xml;

  • model_4010_description.xml;

  • model_7010_description.xml;

  • model_1151_description.xml;

  • shqPS.SIU.DORS-SE2.exe;

  • shqSPSIU.dll.

Настройки XFS-провайдера

Раздел реестра: [HKLM\Software\XFS\PHYSICAL_SERVICES\SIU-DORS-SE2]

Параметры драйвера:

  • PORT – номер порта, к которому подключено устройство.

  • PORT_UPS – номер порта, к которому подключен ИБП DORS-USE3111. Определяется автоматически при установке ПроАТМ/XFS. Если DORS-USE3111 работает через через DORS SE2, то параметр PORT_UPS остается пустым.

  • ATM_MODEL – номер модели УС, в соответствии с которой настраивается подмножество обслуживаемых портов контроллера, например, 2010 для устройства DORS PTM-2010. Возможные значения: 1122, 1122M3, 1132, 2010&CashCode, 2010, 4010&UD50&nocoins, 4010, 7010, 1151. Конфигурация портов контроллера для выбранной модели (базовая конфигурация) определяется в файле model_%ATM_MODEL%_description.xml, где %ATM_MODEL% – номер модели УС. Если xml-файл недоступен, конфигурация сервиса признается невалидной, а его дальнейшая работа блокируется.

    Листинг 14. Пример файла model_1020_description.xml для модели DORS PTM-1020
    <?xml version="1.0" encoding="windows-1251" standalone="no" ?>
    <ModelEquippedWith>
    
    	<LED_IDC />
    	<LED_PRR />
    	<SAFEDOOR />
    	<CABINETDOOR />
    	<SOPBUTTON />
    	<KICKSENSOR />
    	<UPS />
    	
    	<!-- full list:
    	<LED_IDC />              световая индикация картридера
    	<LED_PRR />              световая индикация чекового принтера
    	<LED_COIN_DISPENSER />   световая индикация слота выдачи монет
    	<LED_CIM_IN />           световая индикация входного лотка депозитного модуля
    	<LED_CIM_OUT />          световая индикация выходного лотка депозитного модуля
    	<LED_NOTE_DISPENSER />   световая индикация шаттера диспенсера
    	<LED_SCANNER />          световая индикация устройства чтения данных (штрихкода)
    	<SHUTTER_CDM />          шаттер модуля выдачи банкнот
    	<SHUTTER_CIM_IN />       шаттер модуля приема банкнот
    	<SHUTTER_CIM_OUT />      шаттер модуля возврата банкнот
    	<REARVIEWDISPLAY />      монитор заднего обзора
    	<FASCIALIGHT />          подсветка на передней панели
    	<HEATER />               нагреватель
    	<SAFEDOOR />             датчик сейфовой двери
    	<CABINETDOOR />          датчик двери оператора
    	<FAKESAFEDOOR />         датчик декоративной двери
    	<SOPBUTTON />            датчика кнопки перехода в режим оператора (кнопка "SOP")
    	<KICKSENSOR />           датчик удара
    	<KICKSENSOR_DOOR />      режим работы датчика удара
    	<CDM_OUTLET />           датчик выдвижения диспенсера (крайнего положения)
    	<CIM_OUTLET />           датчик положения модуля приема наличных
    	<UPS />                  ИБП
    	-->
    	
    </ModelEquippedWith>
    

    В элементе <ModelEquippedWith> перечислены порты контроллера, которые есть в конфигурации.

    Если используется индивидуальная конфигурация, то для параметра ATM_MODEL следует указать значение INDIVIDUAL. Конфигурация портов контроллера в этом случае определяется значениями следующих параметров реестра:

    • CABINETDOOR – датчик двери оператора;

    • CDM_OUTLET – датчик выдвижения диспенсера (крайнего положения);

    • CIM_OUTLET – датчик положения модуля приема наличных;

    • FAKESAFEDOOR – датчик декоративной двери;

    • FASCIALIGHT – подсветка на передней панели;

    • HEATER – нагреватель;

    • KICKSENSOR – датчик удара;

    • KICKSENSOR_DOOR – режим работы датчика удара;

    • LED_CIM_IN – световая индикация входного лотка депозитного модуля;

    • LED_CIM_OUT – световая индикация выходного лотка депозитного модуля;

    • LED_COIN_DISPENSER – световая индикация слота выдачи монет;

    • LED_IDC – световая индикация картридера;

    • LED_NOTE_DISPENSER – световая индикация шаттера диспенсера;

    • LED_PRR – световая индикация чекового принтера;

    • LED_SCANNER – световая индикация устройства чтения данных (штрихкода);

    • REARVIEWDISPLAY – монитор заднего обзора;

    • SAFEDOOR – датчик сейфовой двери;

    • SHUTTER_CDM – шаттер модуля выдачи банкнот;

    • SHUTTER_CIM_IN – шаттер модуля приема банкнот;

    • SHUTTER_CIM_OUT – шаттер модуля возврата банкнот;

    • SOPBUTTON – датчика кнопки перехода в режим оператора (кнопка SOP).

    • UPS – ИБП.

    Возможные значения параметров (кроме KICKSENSOR_DOOR): default (значение определено в файле model_%ATM_MODEL%_description.xml), 0 (устройство отсутствует) и 1 (устройство имеется в наличии). Возможные значения параметра KICKSENSOR_DOOR: default (значение определено в файле model_%ATM_MODEL%_description.xml), 0 (работает датчик удара) и 1 (датчик удара работает как датчик двери). При использовании индивидуальной конфигурации (ATM_MODEL = INDIVIDUAL) для всех параметров, указанных выше, необходимо указать значение 0 или 1.

  • UPS_CHARGE_THRESHOLD – порог срабатывания UPS_LOW (низкого заряда ИБП). Возможные значения: от 0 до 100 (процент заряда батареи).

  • UPS_NAME – наименование модели ИБП, используемого на УС.

    Возможные значения:

    • APC SmartUPS/DORS USE-3111;

    • HID AUTO – автоматическое определение имени подключенного ИБП при запуске XFS. Автоопределение доступно:

      • только для ИБП, которые определяются как HID-батарея, и не доступно для других ИБП, даже подключенных по USB (например, IPPON);

      • только после перезагрузки XFS.SIU (если поменять ИБП при работающих XFS-сервисах, то он автоматически не подхватится).

    Если подключено несколько HID-батарей, то выбирается произвольное имя. Значение по умолчанию – APC SmartUPS/DORS USE-3111.

  • REARVIEWDISPLAY_INITIAL_STATE – начальное состояние монитора заднего обзора. Возможные значения: 0, 1 (выключено/включено).

  • SHUTTER_CONTROL_TIME – время в секундах, отводимое на повторение попыток управления шаттером (открытие/закрытие). Возможные значения: 10, 15, 30, 60.

  • SHUTDOWN_TIME – время, которое отведено на отключение DORS-USE3111 после получения статуса батареи UPS_LOW. Возможные значения: 20, 40, 80, 120. По умолчанию 80.

    Если после получения статуса батареи UPS_LOW, но до выключения DORS-USE3111 появляется питание, то после истечения времени, указанного в параметре SHUTDOWN_TIME, DORS-USE3111 выключит УС и сразу же его включит.

    Если появляется питание, но не приходит статуса батареи UPS_LOW, то после истечения времени, указанного в параметре SHUTDOWN_TIME, DORS-USE3111 УС не выключит.

Нестандартные порты контроллера

Таблица 8. Трансляция статусов кассеты

Порт

Описание

fwIndicators[11]

#define WFS_SHQ_REARVIEWDISPLAY 11

Данный порт позволяет управлять монитором заднего обзора. Возможные состояния:

  • WFS_SIU_OFF – выключено;

  • WFS_SIU_ON – включено.

Расширение программного интерфейса сервиса

С аппаратной точки зрения, контроллер спец. электроники обеспечивает возможность управления такими узлами, как шаттер, сканер штрихкодов, ИБП. Эти узлы не имеют прямого отношения к сервису XFS.SIU, однако активно используются сторонними приложениями. Например, сервису XFS.CDM требуются: шаттер, датчик сейфовой двери и положения CDM, светодиодный индикатор над шаттером.

Разрабатываемое приложение XFS.SIU эксклюзивно захватывает COM-порт, и поэтому вынуждено экспортировать расширенный интерфейс для управления узлами, не входящими в состав портов XFS.SIU.

Упомянутый расширенный интерфейс (API) функционирует в соответствии с концепцией клиент-сервер. Запросы и ответы передаются в виде XML-пакетов через оконные сообщения WM_COPYDATA. Предполагается наличие следующих расширений интерфейса:

  • управление узлами XFS.CDM;

  • управление узлами XFS.CIM;

  • управление сканером штрихкодов.

Ниже описываются протоколы взаимодействия для каждого из расширений.

Расширение программного интерфейса для XFS.CDM

Окно, отвечающее за отработку запросов, носит имя «__siu_for_cdm_extended_srvc_».

GET_GENERAL_STATUS

Получить общую статусную информацию:

  • общее состояние сервиса XFS.SIU;

  • состояние шаттера;

  • наличие постороннего предмета на слоте выдачи наличных;

  • состояние сейфовой двери;

  • положение диспенсера.

Запрос:

<COMMAND val="GET_GENERAL_STATUS" />
<RETURN_WND val="0xhhhhhhhh" />

Ответ:

<RESPONSE val="GET_STATUS" />
<SIU_STATE val="???" />
<SAFEDOOR_STATE val="???" />
<CDM_OUTLET val="???" />

Непосредственных обращений к аппаратуре не происходит. Возвращается (периодичность ~50 мс) наиболее актуальное состояние внутренних переменных сервиса.

  • RETURN_WND – указатель (handle) клиентского окна, которому будет направлен ответ.

  • SIU_STATE – общий статус сервиса XFS.SIU. Возможные значения:

    • OPERABLE – устройство готово;

    • NOT_AVAILABLE – устройство не готово;

    • NOT_OPERABLE – устройство в состоянии аппаратной ошибки.

    В случае если SIU_STATE сигнализирует о неготовности устройства, остальные детализированные статусы в пакете могут отсутствовать.

  • SAFEDOOR_STATE – состояние двери сейфа. Возможные значения:

    • CLOSED – закрыт;

    • OPENED – открыт.

  • CDM_OUTLET – положение диспенсера. Возможные значения:

    • EJECTED – выдвинут наружу;

    • READY – зафиксирован в рабочем положении.

GET_SHUTTER_STATE

Получить информацию о состоянии шаттера

Запрос:

<COMMAND val="GET_SHUTTER_STATE" />
<RETURN_WND val="0xhhhhhhhh" />

Ответ:

<RESPONSE val=" GET_SHUTTER_STATE " />
<SHUTTER_STATE val="???" />

Непосредственных обращений к аппаратуре не происходит. Возвращается наиболее актуальное состояние внутренней переменной сервиса.

  • RETURN_WND – указатель (handle) клиентского окна, которому будет направлен ответ.

  • SHUTTER_STATE – состояние шаттера. Возможные значения:

    • CLOSED – закрыт;

    • OPENED – открыт;

    • UNKNOWN – невозможно определить состояние (поломка/отсутствие контроллера шаттера CDM).

GET_SHUTTER_FOREIGN_SUBSTANCE_INFO

Получить информацию о наличии постороннего предмета на слоте выдачи наличных.

Запрос:

<COMMAND val="GET_SHUTTER_FOREIGN_SUBSTANCE_INFO" />
<RETURN_WND val="0xhhhhhhhh" />

Ответ:

<RESPONSE val="GET_SHUTTER_FOREIGN_SUBSTANCE_INFO" />
<FOREIGN_SUBSTANCE val="???" />

Происходит непосредственное обращение к аппаратуре контроллера.

  • RETURN_WND – указатель (handle) клиентского окна, которому будет направлен ответ.

  • FOREIGN_SUBSTANCE – наличие постороннего предмета. Возможные значения:

    • YES – есть предмет на слоте;

    • NO – нет предмета на слоте.

SHUTTER_CONTROL

Управление шторкой шаттера

Запрос:

<COMMAND val="SHUTTER_CONTROL" />
<NEW_STATE val="???" />
<RETURN_WND val="0xhhhhhhhh" />

Ответ:

<RESPONSE val="SHUTTER_CONTROL" />
<RESULT val="???" />
  • RETURN_WND – указатель (handle) клиентского окна, которому будет направлен ответ.

  • NEW_STATE – новое положение шаттера. Возможные значения:

    • OPENED – открыт;

    • CLOSED – закрыт;

  • RESULT – результат выполнения операции:

    • OK – операция выполнена успешно;

    • ERR_SHUTTER_TIMEOUT – не удалось закрыть шатер за отведенное время (механическая помеха, замятие и т.п.);

    • ERR_SLOT_SENSOR – сенсор шаттера сигнализирует о наличии постороннего предмета;

    • ERR_OTHER – другие ошибки.

LED_CONTROL

Управление светодиодным индикатором над шаттером

Запрос:

<COMMAND val="LED_CONTROL" />
<NEW_STATE val="???" />
<RETURN_WND val="0xhhhhhhhh" />

Ответ:

<RESPONSE val="LED_CONTROL" />
<RESULT val="???" />
  • RETURN_WND – указатель (handle) клиентского окна, которому будет направлен ответ.

  • NEW_STATE – новое состояние индикатора. Возможные значения:

    • OFF – погасить;

    • SLOW_FLASH – подсветка мигает с частотой 1 Гц.;

    • MEDIUM_FLASH – подсветка мигает с частотой 2 Гц.;

    • QUICK_FLASH – подсветка мигает с частотой ~4 Гц.;

    • CONTINUOUS – подсветка горит постоянно.

  • RESULT – результат выполнения операции:

    • OK – операция выполнена успешно;

    • FAILED – операция не выполнена.

Расширение программного интерфейса для сканера штрихкодов

Окно, отвечающее за отработку запросов, носит имя «__siu_for_bcr_extended_srvc_».

Примечание

Команды отправки данных и управления питанием сканера будут проходить успешно даже, если сканер штрихкодов не подключен к контроллеру,

POWER_CONTROL

Управление питанием сканера штрихкодов

Запрос:

<COMMAND val="POWER_CONTROL" />
<RETURN_WND val="0xhhhhhhhh" />
<NEW_STATE val="???" />

Ответ:

<RESPONSE val="POWER_CONTROL" />
<RESULT val="???" />
  • RETURN_WND – указатель (handle) клиентского окна, которому будет направлен ответ.

  • NEW_STATE – управляющее воздействие. Возможные значения:

    • ON – подать питание;

    • OFF – отключить питание.

  • RESULT – результат выполнения операции:

    • OK – операция выполнена успешно;

    • FAILED – операция не выполнена.

SEND_DATA

Отправить данные сканеру штрихкодов

Запрос:

<COMMAND val="SEND_DATA" />
<RETURN_WND val="0xhhhhhhhh" />
<DATA val="HH HH HH HH .. HH" />

Ответ:

<RESPONSE val="SEND_DATA" />
<RESULT val="???" />
  • RETURN_WND – указатель (handle) клиентского окна, которому будет направлен ответ.

  • DATA – отправляемые данные в ASCII HEX-представлении.

  • RESULT – результат выполнения операции:

    • OK – операция выполнена успешно;

    • FAILED – операция не выполнена.

CLEAR_INPUT_BUFFER

Очистить входной буфер (стереть ранее считанные данные, находящиеся в буфере обслуживающего сервиса).

Запрос:

<COMMAND val="CLEAR_INPUT_BUFFER" />
<RETURN_WND val="0xhhhhhhhh" />

Ответ:

<RESPONSE val="CLEAR_INPUT_BUFFER" />
<RESULT val="???" />
  • RETURN_WND – указатель (handle) клиентского окна, которому будет направлен ответ.

  • RESULT – результат выполнения операции:

    • OK – операция выполнена успешно;

    • FAILED – операция не выполнена.

RECEIVE_DATA

Считать данные из входного буфера. Буфер считанных данных организуется за счет сервиса XFS.SIU. Данные, асинхронно поступающие от сканера штрихкодов, аккумулируются в этом буфере и передаются при получении запроса на считывание. Если на момент поступления запроса буфер уже содержит данные, то ответ формируется моментально. Если данных нет, то они ожидаются в течение указанного таймаута.

Запрос:

<COMMAND val="RECEIVE_DATA" />
<RETURN_WND val="0xhhhhhhhh" />
<TIMEOUT val="ddddd..d" />

Ответ:

<RESPONSE val="RECEIVE_DATA" />
<DATA val="HH HH HH HH .. HH" />
<RESULT val="???" />
  • RETURN_WND – указатель (handle) клиентского окна, которому будет направлен ответ.

  • DATA – данные в ASCII HEX-представлении, считанные из буфера (в случае ошибки считывания или срабатывания таймаута это поле отсутствует).

  • TIMEOUT – таймаут на считывание данных, в миллисекундах.

  • RESULT – результат выполнения операции:

    • OK – операция выполнена успешно;

    • FAILED – операция не выполнена;

    • TIMEOUT – истек таймаут.