Неспособность проверить - серьезная проблема, если вы собираетесь что-то изменить.Ваше изображение для печати кода недостаточно;вам нужно смотреть дальше.В общем, лучше размещать код здесь, чем помещать его в Dropbox.Ваши файлы Dropbox истекают через некоторое время, а затем ссылки, которые вы указали в этом вопросе, внезапно исчезают.В будущем, кто-то споткнется в этом вопросе, останется озадаченным, потому что информация отсутствует.
Возможно, это не ответ на вашу проблему, но это должно дать вам некоторое представление о том, куда смотреть.
После этих предварительных шагов: предоставленный вами код pyhon содержит несколько подпрограмм.Большая часть кода просто выбросит XML-код на ваш принтер.Они могут быть найдены обратно в вашем файле pcap.
Вещи, которые вам необходимо узнать из rea-module on dropbox:
def STARTJOB(ip):
xml = '<REA-JET><REA-PI version="3.3"><Command name="STARTJOB" id="0"><Data /></Command></REA-PI></REA-JET>'
return ExecuteCommand(ip,xml)
def STOPJOB(ip):
xml = '<REA-JET><REA-PI version="3.3"><Command name="STOPJOB" id="0"><Data /></Command></REA-PI></REA-JET>'
return ExecuteCommand(ip,xml)
ExecuteCommand
отправляет данные на принтер.Все вещи отправляются в виде открытого текста.Таким образом, вы можете увидеть точную последовательность вызовов в вашем файле pcap.
Когда я прохожу через pcap, я вижу, что каждая работа явно останавливается.В шестнадцатеричном представлении пакетов вы можете видеть пакеты с Command name="STOPJOB"
каждый раз перед Command name="STARTJOB"
.Последовательность, кажется, setjob, startjob, stopjob.
Моя задача заключается в том, что стоп-джоб отправляется до того, как этикетка будет полностью напечатана, что приведет к прерыванию печати.Но чтобы быть уверенным, вы должны провести некоторое тестирование.
Итак, есть возможность усыпить непосредственно перед остановкой, что, как вы сказали, замедляет процесс печати на каждую печать этикетки.Другой вариант - проверить, готова ли печать и находится ли она в спящем режиме, только если печать не завершена.
Последний параметр означает, что вы должны иметь возможность получить статус задания с принтера.Это можно сделать с помощью
def Feedback(data):
# Get feedback from the controller, so we can display it in the UI
# Two parameters are returned, the status code and the status message
import xml.etree.ElementTree as ET1
root = ET1.fromstring(data)
try:
code = root.find('REA-PI/Status/Code').text
except:
code = ''
try:
message = root.find('REA-PI/Status/Message').text
if message == None:
message = ''
except:
message = ''
return code, message
Но я не знаю кодов возврата и сообщений, их значение.Значение в REA-PI/Status/Code
.