爱普生ESC/POS命令DLE EOT n不返回响应



我正在制作一个程序,该程序通过C#中的套接字使用ESC/POS命令与爱普生TM-T88IV打印机进行通信。当我在盖子关闭且纸张已满的情况下发送 DLE EOT n 命令时,它会立即以字节数组返回正确的代码。但是,当我打开封面或取出纸张以尝试模拟错误时,没有DLE EOT命令(1,2,3或4)将返回任何内容。socket.receive 方法只是挂起,直到超时。我能够打印到这台打印机并进行换行、剪切等。

这是我的代码:

public class clsPrinter
{
  TcpListener server;
  MemoryStream ms = new MemoryStream();
  BinaryWriter bw;
  Socket clientSock = new Socket(AddressFamily.InterNetwork,
                                 SocketType.Stream, 
                                 ProtocolType.Tcp);
  string printerIP;
  Encoding enc = Encoding.ASCII;

  public clsPrinter(string printerIP)
  {
    this.printerIP = printerIP;
    bw = new BinaryWriter(ms);
    clientSock.NoDelay = true;
    clientSock = new Socket(AddressFamily.InterNetwork,
                            SocketType.Stream, 
                            ProtocolType.Tcp);
    IPAddress ip = IPAddress.Parse(printerIP);
    IPEndPoint remoteEP = new IPEndPoint(ip, 9100);
    clientSock.Connect(remoteEP);
  }
  public void getPrinterStatus()
  {
    try
    {
      byte[] byData = new byte[] { 16, 4, 1 }; // DLE EOT 1
      sendToPrinter(byData);
      byte[] bytes = new byte[1024];
      int bytesReceived = clientSock.Receive(bytes);
    }
    catch (Exception ex)
    {
    }
  }
  public void sendToPrinter(byte[] byteStream)
  {
    clientSock.Send(byteStream);
  }

有什么想法吗?

打印机

在打开护盖或出纸时处于就绪状态。我认为该方法(或打印机驱动程序)无法将DLE EOT X发送到没有就绪状态的打印机。

打印机

只会在DLE EOT在线时回复,除非您使用的是旧的串行接口。

不过,我在爱普生的在线文档中找不到这些信息,但您可以在w3m Escpos Guide幻灯片414上的文档中阅读有关它的信息。

另请参阅mike42在2015年8月2日的评论:

我认为 DLE EOT 的用处有限:它返回了对象字符 包含所有正确的状态标志(如果打印机刚刚) 已重新启动(尚未打印任何输出)。对于曾经 打印,仅当打印机处于在线状态时才能正常工作 州。否则,响应将挂起,直到打印机联机(即, 用户合上盖子或更换纸张)。

如果您使用的是以太网或 USB 等现代接口,则可以尝试ASB


注意:

我知道这个问题有点老了,但由于我遇到了同样的问题,谷歌也告诉我其他几个人,我认为值得分享我学到的东西。

从此评论复制:

关于DLE EOT(实时状态):在TM-T20II上(尽管我确信这适用于许多爱普生),如果您打开内存开关1-3(将"BUSY 条件"设置为"接收缓冲区已满"从"接收缓冲区已满或脱机"),打印机将始终响应DLE EOT,包括当盖板打开或缺纸时。

根据手册,打印机在以下情况:

  • 开机期间,直到打印机准备就绪
  • 自检期间
  • 使用"进纸"按钮进纸时
  • 当卷纸盖打开时
  • 当打印机因纸张末端而停止打印时
  • 在宏执行备用状态期间
  • 发生错误时

因此,上面的设置更改使其在这些状态下"不繁忙"。

相关内容

  • 没有找到相关文章

最新更新