在将数据写入数据库然后打印收据之前,我需要确保成功连接到POS打印机。POSprinter通常是BTP2002NP类型,但可能有所不同。常见的情况是,它们都是通过COM端口连接的,而不是usb,因此客户端上根本没有安装驱动程序。
我是否可以在COM端口上发送某种"ping“命令,并检查设备是否已连接并打开?任何帮助或建议都是非常感谢的。
更多信息,该应用程序是在VB.net和Visual Studio2008中开发的
发布于 2009-09-08 14:30:19
您所能做的就是向com端口写出一个字符串,然后等待,看看您的打印机是否会做出响应。但是,您编写的字符串和期望的字符串将取决于打印机本身。
参考BTP 2002NP printers programming manual中的例子(我看过的谷歌的第一个链接)
从手册中可以看出,要发送给打印机的适当字符串是"DLE EOT n“命令,该命令请求打印机发回其当前状态。
至于该系列中的其他打印机,请查看this list of drivers and manuals
发布于 2009-09-11 07:05:41
顺便说一句,这就是我最后想出来的。
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打印机。
https://stackoverflow.com/questions/1394328
复制相似问题