печать по протоколу ESC/POS 


печать по протоколу ESC/POS

тестирование ESC-POS команд

Если вы задали себе вопрос - можно ли печатать прямо из браузера на принтер чеков подключенный к вашему компьютеру через порт RS232, USB или на сетевой принтер через Ethernet то вы найдете здесь полезную информацию.

Мы используем плагин для тестирования ESC-POS протокола принтеров чеков , собран на Qt4.8.1 под Ubuntu, Windows по технологии NPAPI.

Тестируем на примере принтера чеков MPrint T58 через RS232 ,USB.

Предварительная информация по реализации протокола обмена на примере MPrint T58 (см. руководство по эксплуатации):задействованы выводы 7 и 8 (RTS и CTS). Это имеет отношение к Hard Flow control.

options.c_cflag &= ~CNEW_RTSCTS; disable

stty -F /dev/ttyUSB0 raw ispeed 9600 ospeed 9600 -ignpar cs8 -cstopb -echo

1. RTS не используется (RtsEnable=false). 2. RTS уведомляет модем о готовности к передаче. Сама же передача начинается после получения подтверждения о готовности модема (CTS)

stty -F /dev/ttyS2 crtscts

  • DTE Data terminal equipment modem
  • DTR Data Terminal Ready PC

    when a DTE (such as a PC MODEM) wants to stop the flow into it, it negates RTS.Negated "Request To Send" (-12 volts) means "request NOT to send to me" (stop sending)

    http://www.tldp.org/HOWTO/Serial-HOWTO-19.html#ss19.4

    When the PC is ready for more bytes it asserts RTS (+12 volts) and the flow of bytes to it resumes. Flow control signals are always sent in a direction opposite to the flow of bytes that is being controlled. DCE equipment (modems) works the same way but sends the stop signal out the CTS pin. Thus it's RTS/CTS flow control using 2 lines.

    The RTS (Request To Send) pin always sends and the CTS (clear to send) pin always receives

    RTS(PC1)-->CTS(PC2) and CTS(PC1)<--RTS(PC2). In other words RTS and CTS cross over. Such a cable (with other signals crossed over as well) is called a "null modem" cable

    tty.c_cflag |= CRTSCTS; // set RTS/CTS flow control

      Ну и в результате
    • 0. modev CTS=0
    • 1. PC write() RTS=1 когда modem готов у приему CTS=1 OK while not CTS=0

    Если команды требуют sudo, можно запустить сам браузер под суперпользователем.
    отобразить все активные параметры настройки на tty-устройстве
    вкключить аппаратное подтверждение связи на ttyS0
    отключить аппаратное подтверждение связи на ttyS0
    установить параметры 8 бит, 9600 скорость, parenb проверка четности, crtsdts включить аппаратное подтверждение связи, echo Включить/выключить повторение полученных символов обратно отправителю.
    посылаем байты

  • тел.(812) 386-07-42, 7-921-961-77-01, 7-911-928-11-05

    1872