C# “未从收据打印机获取状态消息”;“收据为空”;案例

C# “未从收据打印机获取状态消息”;“收据为空”;案例,c#,.net,epson,opos,pos-for-.net,C#,.net,Epson,Opos,Pos For .net,我正在使用TM U220收据打印机。我正在使用Epson OPOS ADK for.Net和Microsoft PosFor.Net开发我的收据打印应用程序 我正在尝试从设备获取状态信息,如收据为空和收据接近空。但我总是获得成功的状态,即使打印机中没有收据 PosPrinter m_Printer; // Name of printer instance. //Initialisation of printer. // m_Printer.Open(); m_Printer.Claim();

我正在使用TM U220收据打印机。我正在使用Epson OPOS ADK for.Net和Microsoft PosFor.Net开发我的收据打印应用程序

我正在尝试从设备获取状态信息,如收据为空和收据接近空。但我总是获得成功的状态,即使打印机中没有收据

PosPrinter m_Printer; // Name of printer instance.
//Initialisation of printer.
//

m_Printer.Open();
m_Printer.Claim();
m_Printer.Enabled = true;

if(m_Printer.RecEmpty || m_Printer.RecNearEmpty)
{
//Show the status message.
}
上面的代码用于测试这种情况。无论打印机中的接收条件如何,我总是将这些布尔值设置为false


请帮我做这个。是否应该执行更多操作以获取这些状态信息。POS

尝试为m_printer对象添加事件处理程序。并在这个区块上放置一个try catch,这样您就可以得到正在发生的事情的通知

尝试为m_printer对象添加事件处理程序。并在这个区块上放置一个try catch,这样您就可以得到正在发生的事情的通知

爱普生OPOS改变了这一点,即使在其最新版本(2.80)中也是如此。 对于TM-U220型号,我使用以下方法:

启用PowerNotify

m_Printer.PowerNotify = 1
然后获取打印机电源状态

Select Case m_Printer.PowerState
    Case 2000       'DESCONOCIDO, NO TIENE LA CAPACIDAD, NO HACER NADA
    Case 2001       'EN LINEA
    Case 2002, 2003, 2004    'APAGADA 'FUERA DE LINEA 'APAGADA
    msgbox "check printer"
End Select

这不适用于TM-U950型号。

爱普生OPOS改变了这一点,即使在其最新版本(2.80)中也是如此。 对于TM-U220型号,我使用以下方法:

启用PowerNotify

m_Printer.PowerNotify = 1
然后获取打印机电源状态

Select Case m_Printer.PowerState
    Case 2000       'DESCONOCIDO, NO TIENE LA CAPACIDAD, NO HACER NADA
    Case 2001       'EN LINEA
    Case 2002, 2003, 2004    'APAGADA 'FUERA DE LINEA 'APAGADA
    msgbox "check printer"
End Select

这不适用于TM-U950型号。

您是否尝试过测试
CapRecEmptySensor
以确保打印机/opos驱动程序支持
RecEmpty
方法?根据文档“如果CapRecEmptySensor属性设置为false,则RecEmpty的值始终设置为false。”CapRecEmptySensor值仅为true。我也检查过了。我刚刚用TM-T88检查过这一点,我可以在以下情况下实现这一点(1)打开/声明调用失败(也导致无法打印)或(2)纸质封面打开,因为如果封面打开
RecEmpty
总是返回false,希望这能有所帮助。您是否尝试过测试
CapRecEmptySensor
以确保打印机/opos驱动程序支持
RecEmpty
方法?根据文档“如果CapRecEmptySensor属性设置为false,则RecEmpty的值始终设置为false。”CapRecEmptySensor值仅为true。我也检查过了。我刚刚用TM-T88检查过这一点,我可以在以下情况下实现这一点(1)打开/声明调用失败(也导致无法打印)或(2)纸质封面打开,因为如果封面打开
RecEmpty
总是返回false,希望这能有所帮助。理想情况下,这应该是一个C代码片段,因为这是问题所要求的。理想情况下,这应该是一个C代码片段,因为这是问题所要求的。