在 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# 中执行相同的操作,我使用的是 EpsonFPHostControl。 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# 的命令,例如:EpsonFPHostControl1.AddDataField 1 EpsonFPHostControl1.AddDataField Chr(0) + Chr(0) EpsonFPHostControl1.AddDataField Chr$(&HE) & Chr$(&H6) EpsonFPHostControl1。 AddDataField Chr$(&H30) & Chr$(&H6) 按照同样的逻辑,我认为最后两个是这样的 ("\x0E\x06");和 ("\x030\x06");,但第一个我不知道 那是我第一次尝试@KamranShahid,但没有得到积极的结果:/ 我既不知道打印机也不知道控件,但它似乎构建了要发送到打印机的字符串。然后你可以使用与基本相同的字符串。示例:AddDataField ("1")
以上是关于在 Fiscal Epson tmT81 C# 中发送命令的主要内容,如果未能解决你的问题,请参考以下文章
WinAPI 调用 Epson P50 的 DeviceCapabilities(DC_ENUMRESOLUTIONS) 总是报错