斑马打印机-C#、CPCL和getvar
本文关键字:CPCL getvar -C# 打印机 | 更新日期: 2023-09-27 18:00:14
我正在编写一个使用CPCL打印到Zebra蓝牙打印机的类。CPCL有一个getvar命令,您可以将该命令发送到打印机以获取打印机设置。例如:
! U1 getvar "appl.date"
此命令将返回打印机的当前日期。唯一的问题是我不知道如何从这个命令中得到结果。我使用C#和CPCL打印没有问题,因为我可以将命令转换为字节数组,并使用NetworkStream将其发送到打印机。但我不知道如何从应该返回结果的命令中实际返回结果。我已经确认,该命令实际上使用打印机附带的Zebra打印机通信器返回数据。
感谢
两件事。。。确保在最后一个"
之后发送'r'n
。不确定WriteLine是否能为您做到这一点,但SGD最终需要它。此外,您是正确的,您需要等待打印机返回值后再读取。如果您读取速度过快,而打印机尚未响应,则将没有可读取的内容。您可以做的是查看TcpClient Available
属性,看看在实际执行读取之前是否有可用的字节。您可以循环并快速等待,直到有字节可供读取,然后您可以进行读取并确保有字节可读取
我在这里找到了一个实际的代码示例:
https://km.zebra.com/kb/index?page=content&id=SA140&actp=列出
代码运行良好,唯一的问题是打印机需要一段时间才能返回数据,但ReadLine会立即执行。这将返回一个空字符串。如果你等待几秒钟,然后再阅读,你就会得到实际的结果。