Фискальный регистратор Штрих-ФР-К для использования его в BGBilling
driver: ru.bitel.frk.driver.shtrih2.Driver
Конфигурация:
portName - имя порта, например, в Windows com<X>, в Linux /dev/ttyS<X>;
baudRate - скорость обмена (2400, 4800, 9600, 19200, 38400, 57600, 115200);
flowControlIn, flowControlOut - описание типа flow control (None, Xon/Xoff Out, Xon/Xoff In, RTS/CTS In, RTS/CTS Out);
databits - настройка data bits (5, 6, 7, 8);
stopbits - настройка stop bits (1, 1.5, 2);
parity - настройка parity (None, Even, Odd);
oneByteTimeout - таймаут приёма одного байта, характеристика порта (по умолчанию 100).
Драйвером поддерживаются все современные устройства от Штрих по 54-ФЗ.
Проверены не все устройства, но согласно описанию протокола должны работать все. Подробная сверка моделей и наличия в них используемых команд не проводилась (за исключением обычных, распространённых моделей - ФР-К и т.д.), поэтому, возможно, что среди указанных моделей есть специфические устройства, которые будут работать с ограниченным функционалом.
Ограниченно поддерживаются обычные, без ФП принтеры.
Полноценной заявки поддержки нет ввиду нереализованных в них команд типа "продажа" и подобных. Но можно подключить и запустить это устройство, но в скрипте обработки формирования чека (см. ниже) формировать нужные строки, без команды добавления платежа, только командами добавления строк, аналогично тому, как это описано для FOP-драйвера сервера печати. Таким образом, несложно вручную сформировать любой вид чека, аналогично обычным ККМ. Но, конечно, чека в данном случае нефискального.
Имеются дополнительные параметры драйвера (использовать по ситуации):
# таймаут в мс между опросами состояний для ожидания окончания печати предыдущей операции
waitNoprintTimeout:
1000
# кол-во опросов состояния для ожидания окончания печати предыдущей операции (каждое длиной таймаут)
waitNoprintNumtry:
20
# запрет прямого использования команды отрезки (позволяет избежать проблем с отрезчиком в некоторых случаях)
# по умолчанию - 0 (отрезчик используется)
cutterDisabled:
1
# насильное использование резчика после каждой операции печати (если вдруг авторезка не работает)
# по умолчанию - 0 (отрезчик руками не включается, срабатывает только если авторезка)
#cutterForceManual: 0
Здесь и далее - флаг cutterDisabled действует только на ручную команду отрезки при печати произвольного текста или при приветствии итд итп. А отрезка или неотрезка при чеках/отчётах настраивается в принтере. После печати чека должно резать автоматически, это заложено в программе регистратора и настраивается в нём самом.