【发布时间】:2014-04-03 20:01:21
【问题描述】:
我正在开发一个使用 ESC/POS 命令与热敏打印机通信的应用程序。
根据文档,当发送 DLE EOT n 命令时,打印机应该响应状态,但它什么也没发送,当然,应用程序在等待回复时卡住了。
这是 C# 中的基本代码:
try
{
int bytesSent = _socket.Send(new byte[] { EscPos.DLE, EscPos.EOT, 2 }); // Transmit Printer Status
byte[] bytes = new byte[1024];
int bytesReceived = _socket.Receive(bytes);
if (bytesSent == 3 && bytesReceived > 0)
return !IsBitSet(bytes[0], 6);
}
catch (Exception ex)
{
OnError(ex);
}
任何帮助将不胜感激,谢谢
詹姆
【问题讨论】:
-
您知道打印机接收数据吗?它是挂在
Send()之后还是Receive()之后?套接字设置是否正确(您实际上与打印机有连接)? -
是的...我只展示了一小段代码....打印机用 ESC @ 命令初始化,它打印,它设置绝对位置......等等......它作用于我发送的每个命令,但 DLE EOT n 命令。它挂在 Receive() 中。引起我注意的是,命令发出后,打印机换行进纸。