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¶
Назначение команды: активация/деактивация чипа.
Валидация контекста исполнения:
сервис в состоянии готовности;
карта внутри устройства.
Правила активации/деактивации чипов:
WFS_IDC_CHIPPOWERCOLD возможно всегда.
WFS_IDC_CHIPPOWERWARM возможно только на активированном чипе, в противном случае команда завершится с результатом WFS_ERR_IDC_INVALIDMEDIA.
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.