Кассовое ПО 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
  • no

Блокировать передачу данных с первой дорожки

По умолчанию yes, данные не передаются
track2Disableлогический
  • yes
  • no
Блокировать передачу данных со второй дорожкиПо умолчанию no, данные передаются
track3Disableлогический
  • yes
  • no
Блокировать передачу данных с третьей дорожкиПо умолчанию yes, данные не передаются
sendSentinelCharactersлогический
  • yes
  • no
Передавать ограничительные символыПо умолчанию данные не передаются
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-k9F1-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
F3Shift +  F1
F4Shift +  F2
FAShift +  F8

Схема расположения кнопок и сканкоды для клавиатуры 4820_KEYPAD


1234
17559107139
27660108140
37963111143
47862110142
5124122880
61271531159
71261430158
812529157
Пример сопоставления кода клавиш на клавиатуре IBM и кода клавиши в консоли для клавиатуры POS_KEYBOARD_A.4820_KEYPAD
[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


1234567891011
1807559107x12327139175191187
2x76601081241228140156172188
3x79631111271531143159155171
4x78621101261430142158174190
5x776110912529141157173189
Пример сопоставления кода клавиш на клавиатуре IBM и кода клавиши в консоли для клавиатуры POS_KEYBOARD_A.CHECKOUT_2
[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.

Сочетание клавиш прописывается через знак "+", последовательность клавиш через пробел.

Пример сопоставление кода клавиш на клавиатуре IBM и кода клавиши в 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-ZA-Z

space

пробел

exclam

восклицательный знак!

quotedbl

кавычки"
quoterightправая кавычка"
quoteleftлевая кавычка"

numbersign

знак решетки#

dollar

знак доллара$

percent

знак процента%

ampersand

амперсант&

parenleft

левая круглая скобка(

parenright

правая круглая скобка)

bracketleft

квадратная левая скобка[
bracketrightквадратная правая скобка]

asterisk

звездочка,знак умножения*

backslash

обратный слэш\

plus

плюс+

comma

запятая,

esc

клавиша EscEsc

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
  • No labels