在 Fiscal Epson tmT81 C# 中发送命令

Posted

技术标签:

【中文标题】在 Fiscal Epson tmT81 C# 中发送命令【英文标题】:Send command in Fiscal Epson tmT81 C# 【发布时间】:2017-01-07 19:03:14 【问题描述】:

我试图在财务打印机 EPSON TMT81 中打印,我在 VB 中有示例代码,我需要在 C# 中执行相同的操作,我使用的是 EpsonF​​PHostControl。 OCX 1.9

基本工作是通过COM端口向打印机发送命令,我连接到端口没有问题,但我不能通过端口发送命令。

在VB中发送命令的代码是:

        '*** PROBAR CONEXION CON IMPRESOR FISCAL ***
        '*** CHEQUEA  ESTADO  DE IMPRESOR FISCAL ***
        EpsonFPHostControl1.AddDataField (Chr$(&H0) & Chr$(&H1))
        EpsonFPHostControl1.AddDataField (Chr$(&H0) & Chr$(&H0))

        '*** ENVIA COMANDO FISCAL ***
        EpsonFPHostControl1.SendCommand

我试图在 C# 中做同样的事情:

        //*** PROBAR CONEXION CON IMPRESOR FISCAL ***
        //*** CHEQUEA  ESTADO  DE IMPRESOR FISCAL ***
        EpsonFPHostControl1.AddDataField("H0H1");
        EpsonFPHostControl1.AddDataField("H0H0");

        //*** ENVIA COMANDO FISCAL ***
        EpsonFPHostControl1.SendCommand()

但效果不佳:/,财务打印机接收命令但返回代码 513 无效命令帧(frame de comando invalido)

我很感激一些帮助。

【问题讨论】:

"H0H1"(长度为 4 的字符串)与 Chr$(&H0) & Chr$(&H1)(长度为 2 的字符串)不同。拿出你的调试器! 【参考方案1】:

c# 中的命令是错误的。您必须发送带有控制字符的字符串。基本Chr$($H0) 在 c# 中表示“\x00”。这应该可以。

EpsonFPHostControl1.AddDataField("\x00\x01");
EpsonFPHostControl1.AddDataField("\x00\x00");

【讨论】:

谢谢,完美!你能帮我多一点吗?嘿,我能知道转换吗?例如,您将其转换为: (Chr$(&H0) & Chr$(&H1)) 在此: ("\x00\x01");该项目有更多我不知道如何转换为 C# 的命令,例如:EpsonF​​PHostControl1.AddDataField 1 EpsonF​​PHostControl1.AddDataField Chr(0) + Chr(0) EpsonF​​PHostControl1.AddDataField Chr$(&HE) & Chr$(&H6) EpsonF​​PHostControl1。 AddDataField Chr$(&H30) & Chr$(&H6) 按照同样的逻辑,我认为最后两个是这样的 ("\x0E\x06");和 ("\x030\x06");,但第一个我不知道 那是我第一次尝试@KamranShahid,但没有得到积极的结果:/ 我既不知道打印机也不知道控件,但它似乎构建了要发送到打印机的字符串。然后你可以使用与基本相同的字符串。示例:AddDataField ("1")

以上是关于在 Fiscal Epson tmT81 C# 中发送命令的主要内容,如果未能解决你的问题,请参考以下文章

epson打印机notready

财政年度末(fiscal year-end)

财政年度末(fiscal year-end)

财政年度末(fiscal year-end)

EPSON L4158 打印设置

WinAPI 调用 Epson P50 的 DeviceCapabilities(DC_ENUMRESOLUTIONS) 总是报错