Кассовое ПО Artix позволяет использовать устройства ввода (клавиатура и ридер), работающие по стандарту IBM. Для подключения клавиатуры или ридера IBM необходимо установить пакет artix45-ibmposs
. При установке пакета создается конфигурационный файл /linuxcash/cash/conf/ibmdevices.ini
, в котором задаются параметры настройки ридера и клавиатуры, схемы расположения клавиш и сканкодов клавиатуры.
Ридер IBM
Правила обработки данных, получаемых при считывании ридером с магнитной карты, определяются параметрами конфигурационного файла /linuxcash/cash/conf/ibmdevices.ini
секции
.[HW.MSR.IBM.MSR_3_TRACK_A]
Наименование | Тип данных | Возможные значения | Описание | Примечания |
---|---|---|---|---|
track1Disable | логический |
| Блокировать передачу данных с первой дорожки | По умолчанию yes , данные не передаются |
track2Disable | логический |
| Блокировать передачу данных со второй дорожки | По умолчанию no , данные передаются |
track3Disable | логический |
| Блокировать передачу данных с третьей дорожки | По умолчанию yes , данные не передаются |
sendSentinelCharacters | логический |
| Передавать ограничительные символы | По умолчанию данные не передаются |
track1StartSentinel | строковый | Начальный ограничительный символ первой дорожки | По умолчанию % | |
track1EndSentinel | строковый | Конечный ограничительный символ первой дорожки | По умолчанию ? | |
track1FieldSeparator | строковый | Разделитель полей первой дорожки | По умолчанию ^ | |
track2StartSentinel | строковый | Начальный ограничительный символ второй дорожки | По умолчанию ; | |
track2EndSentinel | строковый | Конечный ограничительный символ второй дорожки | По умолчанию ? | |
track2FieldSeparator | строковый | Разделитель полей второй дорожки | По умолчанию = | |
track3StartSentinel | строковый | Начальный ограничительный символ третьей дорожки | По умолчанию ; | |
track3EndSentinel | строковый | Конечный ограничительный символ третьей дорожки | По умолчанию ? | |
track3FieldSeparator | строковый | Разделитель полей третьей дорожки | По умолчанию = |
Для вступления настроек в силу необходимо перезапустить сервис artix-ibmposs
командой:
service artix-ibmposs restart
/var/log/syslog
. Логирование данных ведется на уровне INFO
.[HW.MSR.IBM.MSR_3_TRACK_A] ; ; Настройки ридера MSR_3_TRACK_A ; ; Не передавать данные с первой дорожки (по умолчанию yes - данные не передаются) ;track1Disable = "yes"; ; Не передавать данные со второй дорожки (по умолчанию no - данные передаются) ;track2Disable = "no"; ; Не передавать данные с третьей дорожки (по умолчанию yes - данные не передаются) ;track3Disable = "yes"; ; Передавать ограничительные символы (по умолчанию не передаются) sendSentinelCharacters = "yes"; ; Начальный ограничительный символ первой дорожки. (по умолчанию - %) ;track1StartSentinel = "~"; ; Конечный ограничительный символ первой дорожки. (по умолчанию - ?) ;track1EndSentinel = "&"; ; Разделитель полей первой дорожки. (по умолчанию - ^) ;track1FieldSeparator = "#"; ; Начальный ограничительный символ второй дорожки. (по умолчанию - ;) ;track2StartSentinel = "semicolon"; ; Конечный ограничительный символ второй дорожки. (по умолчанию - ?) ;track2EndSentinel = "comma"; ; Разделитель полей второй дорожки. (по умолчанию - =) ;track2FieldSeparator = "@"; ; Начальный ограничительный символ третьей дорожки. (по умолчанию - ;) ;track3StartSentinel = "6"; ; Конечный ограничительный символ третьей дорожки. (по умолчанию - ?) ;track3EndSentinel = "7"; ; Разделитель полей третьей дорожки. (по умолчанию - =) ;track3FieldSeparator = "8";
Клавиатура IBM
Для работы с клавиатурой IBM необходимо установить соответствие между кодами клавиш клавиатуры IBM и кодами клавиш в X и в консоли. Для того, чтобы изменения настроек вступили в силу, необходимо перезапустить сервис artix-ibmposs
командой:
service artix-ibmposs restart
Сервис artix-ibmposs
получает коды нажатых на клавиатуре клавиш, конвертирует их в понятные для X-сервера и консоли коды и отправляет получившиеся последовательности на заданные устройства (в консоль и в X11).
Установка соответствия между кодами клавиш клавиатуры IBM и кодами клавиш в консоли
Соответствие между кодами клавиш на клавиатуре IBM и кодами клавиш в консоли задается в конфигурационном файле /linuxcash/cash/conf/ibmdevices.ini
в секциях [HW.KEYBOARD.IBM.POS_KEYBOARD_A.4820_KEYPAD]
, [HW.KEYBOARD.IBM.POS_KEYBOARD_A.CHECKOUT_2
]. В этих же секциях расположены схемы расположения кнопок и сканкоды для клавиатуры.
Соответствие между кодами клавиш устанавливается в виде: код_клавиши_IBM = "сочетание_клавиш_в_консоли", где код_клавиши_IBM – код нажатой клавиши, сочетание_клавиш_в_консоли – данные передаваемые в терминал.
В качестве данных, передаваемых в терминал, могут быть использованы:
- имена специальных символов
- esc, передается символ с кодом #27
- quote, передается символ "
- semicolon, передается символ ;
- comma, передается символ ,
- одиночные символы (кроме специальных), передаются как есть
- коды управляющих последовательностей терминала (передается управляющая последовательность, полученная по указанному коду из настроек терминала)
Коды некоторых управляющих последовательностей:
Код управляющей последовательности | Описание |
---|---|
k1-k9 | F1-F9 |
cr | enter |
kb | backspace key |
kN | next-page key |
ku | up-arrow key |
kP | previous-page key |
kl | left-arrow key |
kr | right-arrow key |
F3 | Shift + F1 |
F4 | Shift + F2 |
FA | Shift + F8 |
Схема расположения кнопок и сканкоды для клавиатуры 4820_KEYPAD
1 | 2 | 3 | 4 | |
---|---|---|---|---|
1 | 75 | 59 | 107 | 139 |
2 | 76 | 60 | 108 | 140 |
3 | 79 | 63 | 111 | 143 |
4 | 78 | 62 | 110 | 142 |
5 | 124 | 12 | 28 | 80 |
6 | 127 | 15 | 31 | 159 |
7 | 126 | 14 | 30 | 158 |
8 | 125 | 29 | 157 |
[HW.KEYBOARD.IBM.POS_KEYBOARD_A.4820_KEYPAD] ; ; Настройки клавиатуры POS_KEYBOARD_A.4820_KEYPAD ; ... 125 = "0,0"; 0 126 = "1"; 1 14 = "2"; 2 30 = "3"; 3 127 = "4"; 4 15 = "5"; 5 31 = "6"; 6 124 = "7"; 7 12 = "8"; 8 28 = "9"; 9 157 = "cr"; enter 159 = "kb"; backspace 80 = "esc"; ESC 111 = "ku"; up 110 = "kd"; down 62 = "kl"; left 142 = "kr"; right 158 = "quote,semicolon,comma,quote,semicolon"; 139 = "FD"; Shift + F11 140 = "F2"; F12 ...
Схема расположения кнопок и сканкоды для клавиатуры CHECKOUT_2
1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | |
---|---|---|---|---|---|---|---|---|---|---|---|
1 | 80 | 75 | 59 | 107 | x | 123 | 27 | 139 | 175 | 191 | 187 |
2 | x | 76 | 60 | 108 | 124 | 12 | 28 | 140 | 156 | 172 | 188 |
3 | x | 79 | 63 | 111 | 127 | 15 | 31 | 143 | 159 | 155 | 171 |
4 | x | 78 | 62 | 110 | 126 | 14 | 30 | 142 | 158 | 174 | 190 |
5 | x | 77 | 61 | 109 | 125 | 29 | 141 | 157 | 173 | 189 |
[HW.KEYBOARD.IBM.POS_KEYBOARD_A.CHECKOUT_2] ; Настройки клавиатуры POS_KEYBOARD_A.CHECKOUT_2 ... 29 = "."; / 125 = "0"; 0 ... 28 = "9"; 9 189 = "cr"; enter 171 = "kb"; backspace 187 = "esc"; ESC 158 = "ku"; up 157 = "kd"; down 141 = "kl"; left 173 = "kr"; right 142 = "kN"; page-down 174 = "kP"; page-up 75 = "k1"; F1 ... 156 = "k9"; F9 140 = "ksemicolon"; F10 172 = "F1"; F11 107 = "FK"; Ctrl + F6 27 = "FD"; Shift + F11 ...
Установка соответствия между кодами клавиш клавиатуры IBM и кодами клавиш в X
Соответствие между кодами клавиш на клавиатуре IBM и кодами клавиш в X устанавливается в конфигурационном файле /linuxcash/cash/conf/ibmdevices.ini
в общей секции [HW.XSERVER.KEYS
], где необходимо выполнить следующие действия:
- выбрать клавишу на клавиатуре IBM;
- зайти в файл настройки
/linuxcash/cash/conf/ibmdevices.ini
и найти схему данной клавиатуры; - на этой схеме необходимо найти по расположению выбранную клавишу и ее код;
- затем в файле
/linuxcash/cash/conf/ibmdevices.ini
в секции[HW.XSERVER.KEYS]
установить соответствие между кодами клавиш в виде: код_клавиши_IBM = "сочетание_клавиш_в_X", где сочетание_клавиш_в_X – это значение клавиши, последовательности или сочетания клавиш в X.
Сочетание клавиш прописывается через знак "+", последовательность клавиш через пробел.
[HW.XSERVER.KEYS] ; Сопоставление кода клавиш на клавиатуре IBM и кода клавиши в X ... ; клавиши клавиатуры 29 = "period"; 125 = "0"; ... 28 = "9"; 189 = "Return"; 171 = "BackSpace"; 187 = "Escape"; 158 = "Up"; 157 = "Down"; 141 = "Left"; 173 = "Right"; 142 = "Page_Down"; 174 = "Page_Up"; 75 = "F1"; ... 188 = "F12"; 59 = "ctrl+F5"; 107 = "ctrl+F6"; 27 = "shift+F11"; 61 = "4 Return"
Настройка клавиатурного ключа
Настройка клавиатурного ключа осуществляется также в конфигурационном файле /linuxcash/cash/conf/ibmdevices.ini
в секции [HW.XSERVER.KEYS]
.
Наименование | Тип данных | Описание |
---|---|---|
key0 | строковый | Комбинация клавиш на положение клавиатурного ключа |
key1 | строковый | Комбинация клавиш на положение клавиатурного ключа |
[HW.XSERVER.KEYS] ; ; Сопоставление кода клавиш на клавиатуре IBM и кода клавиши в X ; ; положение клавиатурного ключа key0 = "ctrl+b ctrl+a"; key1 = "ctrl+b ctrl+b";
Список поддерживаемых клавиш
Ниже приведен краткий список поддерживаемых клавиш.
Поддерживаемая клавиша | Описание | Символ |
---|---|---|
0-9 | цифры от 0 до 9 | |
A-Z | A-Z | |
space | пробел | |
exclam | восклицательный знак | ! |
quotedbl | кавычки | " |
quoteright | правая кавычка | " |
quoteleft | левая кавычка | " |
numbersign | знак решетки | # |
dollar | знак доллара | $ |
percent | знак процента | % |
ampersand | амперсант | & |
parenleft | левая круглая скобка | ( |
parenright | правая круглая скобка | ) |
bracketleft | квадратная левая скобка | [ |
bracketright | квадратная правая скобка | ] |
asterisk | звездочка,знак умножения | * |
backslash | обратный слэш | \ |
plus | плюс | + |
comma | запятая | , |
esc | клавиша Esc | Esc |
minus | минус | - |
underscore | знак подчеркивания | _ |
period | точка | . |
slash | слэш | / |
colon | двоеточие | : |
semicolon | точка с запятой | ; |
less | знак меньше | < |
equal | знак равенства | = |
greater | знак больше | > |
question | знак вопроса | ? |
braceleft | левая фигурная скобка | { |
braceright | правая фигурная скобка | } |
bar | вертикальная черта | | |
asciitilde | волнистое тире | ~ |
ctrl (Control key) | Ctrl | |
alt (Alternate key) | Alt | |
backSpace | забой | BackSpace |
F1-F12 (Function 1 key to Function 12 just use the number of the specific Function key) | функциональные клавиши | F1-F12 |
return (Return or Enter key) | клавиша ввода | Enter |