logo
ПЗ_А

Входные и выходные данные пс эт

Взаимодействие с ПС ЭТ может производиться как со стороны пользователя через графический интерфейс прикладной программы (см. рис. Рис. П4. 1), так и со стороны программного обеспечения через интерфейс системных вызовов.

Рис. П4. 1. Пользовательский интерфейс прикладной программы ПС ЭТ.

ПС ЭТ обеспечивает эмуляцию основных аппаратных модулей POS-терминала и предоставляет следующий набор драйверов для обращения к ним:

Обращение к каждому драйверу производится через соответствующий интерфейс системных вызовов, предоставляемых драйвером. Набор системных вызовов для каждого драйвера представлен в табл. Таблица П4. 1 (в таблице не указаны системные вызовы open и close, которые определены для всех драйверов и предназначены для получения и закрытия файлового дескриптора соответственно). Подробное описание аргументов каждого из них может быть найдено в документации Linux.

Таблица П4. 1

Интерфейс системных вызовов драйверов ПС ЭТ

Драйвер

Системный вызов

Описание

Драйвер звукового устройства

(«/dev/buzz»)

ioctl

BUZZ_START

Включение звукового устройства на установленной частоте

BUZZ_STOP

Выключение звукового устройства

BUZZ_SET_FREQ

Установка частоты звучания

BUZZ_SET_DUTY

Установка скважности звучания (фиктивная команда)

Драйвер кадрового буфера

(«/dev/xb»)

ioctl

FB_SETRATE

Установить частоту обновления

FB_GETRATE

Считать частоту обновления

FB_REFRESH

Установить флаг обновления

FB_NEEDREFRESH

Считать флаг обновления

mmap

Отображение кадрового буфера в виртуальную память.

Драйвер идентификации аппаратного обеспечения

(«/dev/id»)

ioctl

ID_GET_BD_TYPE

Получение типа аппаратного обеспечения (терминал)

ID_GET_PUBKEY_3

Получение открытой части основного ключа RSA.

read

Аналогично вызову ioctl с командой ID_GET_PUBKEY_3.

Драйвер клавиатуры

(«/dev/pin»,

«/dev/kpd»)

ioctl («/dev/pin»)

PIN_MODE_DISABLE

Выключение режима ввода PIN-номера

PIN_MODE_STATUS

Получение статуса PIN-режима (вкл./выкл.)

HEX_PIN_MODE_ENABLE

Включение ввода цифр PIN-номер в шестнадцати- ричной системе счисления

PIN_MODE_ENABLE

Включение режима ввода PIN-номера

read

(«/dev/pin»)

Получение событий истечения времени ввода, нажатия кнопки «ENTER», «CANCEL» или «CLEAR»

read

(«/dev/kpd»)

Считывание кода нажатой кнопки или символа «*» в режиме ввода PIN-номера

Драйвер

текстового дисплея

(«/dev/lcd»)

ioctl

DISPLAY_SETTEXTPOS

Установка позиции курсора (младшие два байта – номер столбца, старшие – номер строки)

Таблица П4. 1 (продолжение)

DISPLAY_CLEAR

Очистка дисплея

DISPLAY_GET_COLS

Получения количества текстовых столбоцов

DISPLAY_GET_ROWS

Получение количества текстовых строк

DISPLAY_BACKLIGHT

Фиктивные команды, поддерживаются с целью совместимости ПО

DISPLAY_CONTRAST

DISPLAY_SHOW

write

Запись текстовой строки для отображения на экране.

Драйвер считывателя магнитных карт («/dev/emcr»)

ioctl

EMCR_RESET

Фиктивные команды, поддерживаются с целью совместимости ПО

EMCR_VERIFYDEVKEY

GET_KEYLOCKPPT

GET_ENCRYPTIONPPT

GET_SWID

Вернуть версию считывателя

GET_DEVSERIALNUM

Вернуть серийный номер

SET_DEVSERIALNUM

Установить серийный номер

SET_EMCRTRACK

Установить номер считываемой дорожки

EMCR_SWIPED

Проверка того, что была проведена карточка

poll

Ожидание магнитной карточки (появления данных)

read

Считывание данных с дорожки, установленной командой SET_EMCRTRACK

Драйвер защищенной памяти

(«/dev/mmd»)

ioctl

MMD_GET_SEC_MEM_SIZE

Вернуть размер защищенной памяти в байтах

mmap

Отображение области защищенной памяти в виртуальную память

Драйвер принтера чеков

(«/dev/prn»)

ioctl

PRN_FEED_PAPER

Прокрутка бумаги на заданное число строк

PRN_SET_CONTRAST

Фиктивная команда установки яркости печати

PRN_HAS_PAPER

Проверка наличия бумаги

PRN_GET_WIDTH

Получение ширины бумаги в пикселях

write

Запись двоичных данных на печать

Драйвер считывателя электронных карт

(«/dev/sc0», «/dev/sc1», «/dev/sc2», «/dev/scs»)

ioctl

SC_SET_EMV_MODE

Фиктивная команда

SC_GET_VERSION

Получение версии считывателя

SC_WAIT_STATE_

CHANGE

Ожидание изменения состояния карты

SC_STATUS

Получение статуса карты

SC_SWORD

Получение ответа на последнюю команду

Таблица П4. 1 (продолжение)

SC_RESET

Сброс состояния карты

SC_GET_ATR

Получение ATR последовательности байт

write

Отправление команды или данных на карту

read

Чтение данных с карты

Драйвер последовательного порта RS232

(«/dev/uart0», «/dev/uart1», «/dev/uart2»)

ioctl

UART_START

Фиктивные команды для поддержки совместимости ПО

UART_STOP

UART_BUFF_SIZE

UART_MODEM_STATUS

UART_MODEM_CONTROL

UART_DATABITS

Установка количества передаваемых бит данных (от 5 до 8)

UART_STOPBITS

Установка количества стоповых бит (1 или 2)

UART_PARITY

Установка четности (0 – выкл., 1 – нечетная, 2 – четная)

UART_FLOWCTRL

Установка типа управления потоком данных (0 – выкл., 1 – RTS/CTS, 2 – XON/XOFF)

UART_BAUD

Установка скорости передачи данных (бод/сек)

write

Отправление команды или данных на карту

read

Чтение данных с карты