1

在将数据写入数据库然后打印收据之前,我需要确保与 POS 打印机的连接成功。POSprinter 通常为 BTP 2002NP 类型,但可能有所不同。共同点是它们都是通过 COM 端口而不是 USB 连接的,因此客户端上根本没有安装驱动程序。

我可以在 COM 端口上发送某种“ping”并检查设备是否已连接并打开?非常感谢任何帮助或建议。

附加信息,该应用程序是在 VB.net 和 Visual Studio 2008 中开发的

4

2 回答 2

1

顺便说一句,这就是我最后想出的。

   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 打印机。

于 2009-09-11T07:05:40.880 回答
1

您所能做的就是向 com 端口写出一个字符串,然后等待,看看您的打印机是否有回复。但是,您编写的字符串和您期望的字符串将取决于打印机本身。

有关示例,请参阅BTP 2002NP 打印机编程手册(我查看的 google 中的第一个链接)

通过查看手册,要发送到打印机的适当字符串是“DLE EOT n”命令,该命令请求打印机发回其当前状态。

至于该范围内的其他打印机,请查看此驱动程序和手册列表

于 2009-09-08T14:30:18.597 回答