用于网络打印,不良标签打印的数据包分析

问题描述 投票:-1回答:1

我们这里有一台打印机,应该在木头上打印标签,但是,有些标签看起来中途切断了数据(例如,当前作业被下一个更新),因此数据不完整,或者传输到打印机的数据有问题,它打印半标签。

我对使用“异步”打印机进行网络打印和打印有点新意。我已经问过卖家,如何解决这个问题;他告诉我检查作业中的脚本,但脚本只调用IP,没有别的。

这是图片以及wireshark捕获的链接,一眼看上去似乎正常,但我没有太多经验,如果出现问题(碰撞等),请注意。它们似乎也出现故障;当标签被切断时(左半部分)发生这种情况。所以序列可以是15,14,13(截止),13,13,12,10 ......没有真正的模式。

Picture of the problem

Wireshark文件:https://www.dropbox.com/s/8bchsnoxr68jgxu/ws1.pcapng?dl=0

Python脚本:https://www.dropbox.com/s/532xqtv8ee0qgzz/REA.py?dl=0

Image of actions on printer

networking printing wireshark
1个回答
1
投票

如果你要改变一些事情,那么无法进行测试是一个严重的问题。您的打印代码图片不够用;你需要进一步了解。一般来说,最好在此处发布代码,而不是将其放在dropbox上。您的Dropbox文件将在某个时间到期,然后您在此问题中输入的链接突然停止。将来,因为信息丢失,有人会对这个问题感到困惑。

这可能不是你问题的答案,但它应该给你一些想法。

在这些预备之后:你提供的python代码有许多例程。大多数代码只会将XML代码抛出到您的打印机。这些可以在你的pcap文件中找到。

您需要从Dropbox上的rea-module知道的事情:

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时,我看到每个作业都被明确停止。在数据包的hex-dumb中,您可以在Command name="STOPJOB"之前每次都看到包含Command name="STARTJOB"的数据包。序列似乎是setjob,startjob,stopjob。

我的问题是在完全打印标签之前发送了stopjob,从而中止了打印。但可以肯定的是,你必须做一些测试。

因此,可以选择在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

© www.soinside.com 2019 - 2024. All rights reserved.