Фискальный регистратор Штрих-ФР-К для использования его в 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 действует только на ручную команду отрезки при печати произвольного текста или при приветствии итд итп. А отрезка или неотрезка при чеках/отчётах настраивается в принтере. После печати чека должно резать автоматически, это заложено в программе регистратора и настраивается в нём самом.