XFS-сервис класса IDC. Модель OMRON V2BF

Файлы

  • shqPS.IDC.Omron.V2BF.exe;

  • shqSPIDC.dll.

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

Раздел реестра: [HKLM\Software\XFS\PHYSICAL_SERVICES\IDC-V2BF]

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

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

  • RETAIN_BIN_CAPACITY – емкость лотка захваченных карт. Диапазон значений [ 0 .. 100 ]. Если параметр не указан, по умолчанию используется 35.

  • AUTOMATIC_SIU_LED_CONTROL – автоматическое управление световой индикацией модуля специальной электроники (SIU). Возможные значения: 1, 0.

  • InitialCardAction – действие с картой в момент запуска XFS-провайдера.

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

    • EJECT – выдать карту наружу;

    • RETAIN – сбросить карту в лоток задержанных карт;

    • LEAVE_INSIDE – оставить карту внутри (значение треков не будет доступно).

    Любое другое значение или его отсутствие трактуется в пользу LEAVE_INSIDE. Значение по умолчанию LEAVE_INSIDE.

  • EjectCardIfPowerOff – выброс карты при потере связи с устройством (питание, интерфейс). Возможные значения: 1, 0. Выброс карты при потере питания возможен только, если картридер оборудован конденсатором.

Информационные запросы

WFS_INF_IDC_STATUS

Назначение команды: получить информацию о статусе устройства.

Расчет состояния заполнения лотка захваченных карт (fwRetainBin):

  • WFS_IDC_RETAINBINFULL при достижении счетчика захваченных карт значения емкости лотка (по умолчанию 35);

  • WFS_IDC_RETAINBINHIGH при заполнении лотка на 85% (по умолчанию 30);

  • WFS_IDC_RETAINNOTSUPP при нулевой емкости лотка;

  • WFS_IDC_RETAINBINOK в остальных случаях.

Поле lpszExtra:

  • VENDOR=DORS[SYSTEMA];

  • PRODUCT=ProAtm/Xfs;

  • VERSION=X.X.X.X (текущая версия сервис-провайдера XFS);

  • MODEL=OMRON V2BF (текущая модель устройства);

  • DETECTED_PROBLEM=(ошибки конфигурации XFS драйвера);

  • NEGATIVE_STATUS=(последний известный отрицательный статус ответа устройства);

  • FW_IN_ROM=FW Type in CPU ROM(FW Version in CPU ROM);

  • FW_IN_FLASH_MEMORY= Total FW Type in Flash Memory(Total FW Version in Flash Memory);

  • FW_ICC= ICC FW type in Flash Memory(ICC FW Version in Flash Memory);

  • FW_MEMORY_CARD= Memory Card FW type in Flash Memory(Memory Card FW Version in Flash Memory);

WFS_INF_IDC_CAPABILITIES

Назначение команды: получить информацию о возможностях устройства.

Протоколы взаимодействия с чиповыми картами (fwChipProtocols):

  • WFS_IDC_CHIPT0;

  • WFS_IDC_CHIPT1;

  • WFS_IDC_CHIP_PROTOCOL_NOT_REQUARED (если взаимодействие с сервисом открыто для версии CEN/XFS 3.10). В данном случае устройство автоматически выберет протокол T0 или T1.

Максимальное возможное количество задержанных карт (usCards): по умолчанию 35. Данное количество обусловлено физической емкостью лотка, дополнительно присоединяемого к картридеру в устройствах самообслуживания DORS, для хранения захваченных карт.

Поле lpszExtra:

  • VENDOR=DORS[SYSTEMA];

  • PRODUCT=ProAtm/Xfs.

  • VERSION=X.X.X.X (текущая версия сервис-провайдера XFS);

  • MODEL=OMRON V2BF (текущая модель устройства);

  • DETECTED_PROBLEM=(ошибки конфигурации XFS драйвера);

  • NEGATIVE_STATUS=(последний известный отрицательный статус ответа устройства);

  • FW_IN_ROM=FW Type in CPU ROM(FW Version in CPU ROM);

  • FW_IN_FLASH_MEMORY= Total FW Type in Flash Memory(Total FW Version in Flash Memory);

  • FW_ICC= ICC FW type in Flash Memory(ICC FW Version in Flash Memory);

  • FW_MEMORY_CARD= Memory Card FW type in Flash Memory(Memory Card FW Version in Flash Memory);

Значения параметров FW_IN_ROM, FW_IN_FLASH_MEMORY, FW_ICC, FW_MEMORY_CARD указаны в соответствии с документацией «V2BF+DataTransmissionSpec+D.PDF».

Команды

WFS_CMD_IDC_EJECT_CARD

Назначение команды: выбросить карту наружу в выходной слот.

Валидация контекста исполнения:

  • сервис в состоянии готовности;

  • карта внутри устройства.

Валидация входных данных для CEN/XFS 3.10: wEjectPosition = WFS_IDC_EXITPOSITION.

WFS_CMD_IDC_RETAIN_CARD

Назначение команды: захват карты и увеличение счетчика захваченных карт.

Валидация контекста исполнения:

  • сервис в состоянии готовности;

  • карта внутри устройства или в выходном слоте;

  • текущий счетчик захваченных карт не превышает максимальное значение.

Если карта на момент подачи команды находилась в выходном слоте, а после была забрана, то команда завершится с результатом WFS_ERR_IDC_NOMEDIA. При захвате карты нестандартных геометрических размеров (коды ошибок устройства: «Too Long Card», «Too Short Card») будет произведен ее выброс обратно в выходной слот, команда завершится с результатом WFS_ERR_IDC_HARDWARE_ERROR.

WFS_CMD_IDC_RESET_COUNT

Назначение команды: сброс счетчика захваченных карт. Валидация контекста исполнения:сервис в состоянии готовности.

WFS_CMD_IDC_READ_RAW_DATA

Назначение команды: ожидание вставки карты и последующее чтение данных магнитной полосы, а также активация чипа в зависимости от входных параметров. Активация чипа карты длится порядка 1 секунды.

Валидация контекста исполнения: сервис в состоянии готовности.

Особенности выполнения команды:

  • Если карта находится в выходном слоте, то произойдет автоматическая транспортировка карты с чтением магнитной полосы и активацией чипа (в зависимоcти от входных параметров);

  • После вставки карты происходит буферизация данных магнитной полосы в оперативной памяти XFS-драйвера, до момента пока карта находится внутри устройства, т.е. последующие запросы WFS_CMD_IDC_READ_RAW_DATA будут происходить без обращения к устройству.

  • Флаг WFS_IDC_FLUXINACTIVE игнорируется, устройство не поддерживает детекцию магнитной полосы при вставке. Если данные на карте отсутствуют, то команда завершится кодом WFS_ERR_IDC_INVALIDMEDIA, карта останется внутри устройства.

  • Если в рамках исполнения команды отключить интерфейсный кабель, то команда завершится с WFS_ERR_HARDWARE_ERROR. После чего устройство останется в ожидании вставки карты, это связано с тем, что устройство не отслеживает пропадание DSR-сигнала на своей стороне и не сбрасывает активную команду. После восстановления связи XFS-драйвер автоматически подаст на устройство отмену ожидания вставки карты. Потенциальная опасность заключается в том, что устройство поместит вставленную карту внутрь, а вернуть ее будет нельзя из-за отсутствия связи.

  • При удержании карты клиентом команда завершается с ошибкой WFS_ERR_IDC_MEDIAJAM, поле fwDevice выставляется в WFS_IDC_DEVUSERERROR, поле fwMedia выставляется WFS_IDC_MEDIAJAMMED.

WFS_CMD_IDC_RESET

Назначение команды: сброс состояния оборудования.

Валидация контекста исполнения: сервис в состоянии готовности.

Команда завершится с результатом WFS_ERR_IDC_RETAINBINFULL при условиях:

  • lpwResetIn = WFS_IDC_RETAIN;

  • счетчик задержанных карт достиг максимума;

  • карта внутри устройства или на выходе слота.

При входном параметре lpwResetIn = WFS_IDC_RETAIN при захвате карты нестандартных геометрических размеров (коды ошибок устройства: «Too Long Card», «Too Short Card») будет произведен ее выброс обратно в выходной слот с генерацией события WFS_SRVE_IDC_MEDIADETECTED с параметром WFS_IDC_CARDEJECTED, команда завершится с результатом WFS_SUCCESS.

При входном параметре lpwResetIn = NULL будет произведен аппаратный сброс с попыткой оставить карту в той позиции, в которой она была до подачи команды.

WFS_CMD_IDC_CHIP_IO

Назначение команды: чтение данных чипа.

Валидация контекста исполнения:

  • сервис в состоянии готовности, иначе – WFS_ERR_DEV_NOT_READY;

  • карта внутри устройства, иначе – WFS_ERR_IDC_NOMEDIA;

  • карта должна иметь чип, поддерживаемый интерфейс ISO7816, иначе – WFS_ERR_IDC_INVALIDMEDIA;

  • чип должен быть активирован, иначе – WFS_ERR_IDC_ATRNOTOBTAINED.

Валидация входных данных:

  • wChipProtocol CEN/XFS 3.02: WFS_IDC_CHIPT0, WFS_IDC_CHIPT1; CEN/XFS 3.10: WFS_IDC_CHIPT0, WFS_IDC_CHIPT1, WFS_IDC_CHIP_PROTOCOL_NOT_REQUIRED.

  • lpbChipData — команда, отправляемая на чип, должна быть не менее 4 байт.

WFS_CMD_IDC_CHIP_POWER

Назначение команды: активация/деактивация чипа.

Валидация контекста исполнения:

  • сервис в состоянии готовности;

  • карта внутри устройства.

Правила активации/деактивации чипов:

  1. WFS_IDC_CHIPPOWERCOLD возможно всегда.

  2. WFS_IDC_CHIPPOWERWARM возможно только на активированном чипе, в противном случае команда завершится с результатом WFS_ERR_IDC_INVALIDMEDIA.

  3. WFS_IDC_CHIPPOWEROFF возможно только на активированном чипе для его деактивации, в противном случае команда завершится с результатом WFS_ERR_IDC_INVALIDMEDIA.

Поддеживаются события

CEN/XFS 3.02, 3.10:

  • WFS_EXEE_IDC_MEDIAINSERTED;

  • WFS_SRVE_IDC_MEDIAREMOVED;

  • WFS_EXEE_IDC_MEDIARETAINED;

  • WFS_EXEE_IDC_INVALIDMEDIA;

  • WFS_SRVE_IDC_RETAINBINTHRESHOLD;

  • WFS_SRVE_IDC_MEDIADETECTED.

CEN/XFS 3.10:

  • WFS_EXEE_IDC_INSERTCARD.