在将数据写入数据库然后打印收据之前,我需要确保与 POS 打印机的连接成功。POSprinter 通常为 BTP 2002NP 类型,但可能有所不同。共同点是它们都是通过 COM 端口而不是 USB 连接的,因此客户端上根本没有安装驱动程序。
我可以在 COM 端口上发送某种“ping”并检查设备是否已连接并打开?非常感谢任何帮助或建议。
附加信息,该应用程序是在 VB.net 和 Visual Studio 2008 中开发的
在将数据写入数据库然后打印收据之前,我需要确保与 POS 打印机的连接成功。POSprinter 通常为 BTP 2002NP 类型,但可能有所不同。共同点是它们都是通过 COM 端口而不是 USB 连接的,因此客户端上根本没有安装驱动程序。
我可以在 COM 端口上发送某种“ping”并检查设备是否已连接并打开?非常感谢任何帮助或建议。
附加信息,该应用程序是在 VB.net 和 Visual Studio 2008 中开发的
顺便说一句,这就是我最后想出的。
Public Function ComTest() As Byte()
Dim TXT As String
TXT = Chr(&H10S) & Chr(&H4S) & Chr(1) 'DLE EOT 1
If OpenCom() Then 'Connect to com
moRS232.PurgeBuffer(Rs232.PurgeBuffers.TxClear Or Rs232.PurgeBuffers.RXClear)
moRS232.Write(TXT)
moRS232.Read(1)
Return moRS232.InputStream
Else
Return Nothing
End If
End Function
该函数返回 1 个字节。然后我可以从手册中将此字节转换为打印机当前所处的状态。这可能适用于所有 ESC/P 打印机。
您所能做的就是向 com 端口写出一个字符串,然后等待,看看您的打印机是否有回复。但是,您编写的字符串和您期望的字符串将取决于打印机本身。
有关示例,请参阅BTP 2002NP 打印机编程手册(我查看的 google 中的第一个链接)
通过查看手册,要发送到打印机的适当字符串是“DLE EOT n”命令,该命令请求打印机发回其当前状态。
至于该范围内的其他打印机,请查看此驱动程序和手册列表