UniPRT SDK  v1.0.0.0
com.UniPRT.Sdk.Json.PrinterMonitor类 参考

用于协助监听/检索印表机非请求讯息或检索印表机状态/资讯的模块。 更多...

类 com.UniPRT.Sdk.Json.PrinterMonitor 继承关系图:
com.UniPRT.Sdk.Json.IPrinterMonitor

Public 成员函数

AlertStatusNotice GetAlertStatusCallback ()
 
void SetAlertStatusCallback (AlertStatusNotice callback)
 保存当接收到来自印表机的故障/警报讯息时需要调用的函数。函数必须符合 AlertStatusNotice 的签名。 更多...
 
DisplayStatusNotice GetDisplayStatusCallback ()
 
void SetDisplayStatusCallback (DisplayStatusNotice callback)
 保存当接收到来自印表机的显示文字讯息时需要调用的函数。函数必须符合 DisplayStatusNotice 的签名。 更多...
 
EngineStatusNotice GetEngineStatusCallback ()
 
void SetEngineStatusCallback (EngineStatusNotice callback)
 保存当接收到来自印表机的引擎状态时需要调用的函数。函数必须符合 EngineStatusNotice 的签名。 更多...
 
boolean GetAlertStatusListening ()
 继承自 IPrinterMonitor.AlertStatusListening 更多...
 
void SetAlertStatusListening (boolean listening)
 启用/禁用监听/解析来自印表机的未经请求的故障状态警报。 更多...
 
boolean GetDisplayStatusListening ()
 继承自 IPrinterMonitor.DisplayStatusListening 更多...
 
void SetDisplayStatusListening (boolean listening)
 启用/禁用监听/解析来自印表机的前面板显示文字。 更多...
 
boolean GetEngineStatusListening ()
 继承自 IPrinterMonitor.EngineStatusListening 更多...
 
void SetEngineStatusListening (boolean listening)
 启用/禁用监听/解析来自印表机的未经请求的引擎状态。 更多...
 
 PrinterMonitor (TcpConnection connection)
 
 PrinterMonitor (JsonComm mgmtComm)
 
 PrinterMonitor (String commDescriptor)
 
PrinterInfo GetPrinterInfo ()
 继承自 IPrinterMonitor.GetPrinterInfo
更多...
 
String GetEngineStatus ()
 继承自 IPrinterMonitor.GetEngineStatus
更多...
 
String[] GetFaultStatus ()
 继承自 IPrinterMonitor.GetFaultStatus
更多...
 
void Dispose ()
 
void close () throws Exception
 

Protected 成员函数

void Dispose (boolean disposing)
 
void finalize () throws Throwable
 

Private 成员函数

void triggerCallbackForOdvReport (String[] alert)
 
void DisplayStatus (String[] newDisplayText)
 
void triggerCallbackForEngineStatus (String engineState)
 
void MsgListenerCtrlRefresh ()
 
void CallbackForAlertStatus (String[] alertText)
 
void CallbackForDisplayStatus (String[] panelText)
 
void CallbackForEngineStatus (String newEngineState)
 
Map< String, String > MsgParser_PrinterInfo (String mgmtReportFrame)
 

Private 属性

TcpConnection _ptrComm
 
JsonComm _mgmtComm
 
Channel< String > _msgsFromPtr
 
String _myMgmtId = ""
 
AtomicBoolean _mgmtMsgListening = new AtomicBoolean(false)
 
AtomicBoolean _alertStatusListening = new AtomicBoolean(false)
 
AtomicBoolean _displayStatusListening = new AtomicBoolean(false)
 
AtomicBoolean _engineStatusListening = new AtomicBoolean(false)
 
ExecutorService _executor = Executors.newSingleThreadExecutor()
 
Future<?> _listenerTask
 
ConcurrentLinkedQueue< String > _mgmtFilteredMsgs = new ConcurrentLinkedQueue<>()
 
AlertStatusNotice AlertStatusCallback
 继承自 IPrinterMonitor.AlertStatusCallback 更多...
 
DisplayStatusNotice DisplayStatusCallback
 继承自 IPrinterMonitor.DisplayStatusCallback 更多...
 
EngineStatusNotice EngineStatusCallback
 继承自 IPrinterMonitor.EngineStatusCallback 更多...
 
String[] displayText = new String[] { "", "" }
 
String[] alertText = new String[] { "", "" }
 
boolean _sdkManagedComm = false
 
String _managedDescriptor = ""
 
boolean _disposed = false
 
Map< Integer, String > alertLUT
 

静态 Private 属性

static final int MAX_MSGS_FROM_PTR = 100
 
static final int MAX_ODV_MSGS = 2
 

详细描述

用于协助监听/检索印表机非请求讯息或检索印表机状态/资讯的模块。

如果在印表机上启用了非请求讯息,这些讯息可以随时发送。 此模块需要与印表机的管理端口保持恒定连接,以便监听印表机发出的任何讯息。

范例

package com.test.UniPRTSdk;
import java.util.Arrays;
public class PrinterMonitorSnippet {
// setup a comm and xml parser for listening to xml msgs from printer
private static PrinterMonitor _PrinterMntr = null;
public static void test() {
System.out.println("Monitoring Printer.");
try {
_PrinterMntr = new PrinterMonitor("192.168.1.57");
// setup for listening for alerts
_PrinterMntr.SetAlertStatusListening(true); // enable unsolicited alert status msgs from printer
_PrinterMntr.SetAlertStatusCallback(PrinterMonitorSnippet::PtrAlertNoticeListener);
// setup for listening for Engine Status
_PrinterMntr.SetEngineStatusListening(true); // enable unsolicited engine status msgs from printer
_PrinterMntr.SetEngineStatusCallback(PrinterMonitorSnippet::PtrEngineStatusNoticeListener);
// setup for listening for display text msgs
_PrinterMntr.SetDisplayStatusListening(true); // enable unsolicited display text msgs from printer
_PrinterMntr.SetDisplayStatusCallback(PrinterMonitorSnippet::PtrDisplayStatusNoticeListener);
while (true) { // wait for something to happen
// pretend to be busy doing some other work here...
Thread.sleep(1000); // simulate work
}
} catch (Exception e) {
System.out.printf("Exception Msg: %s%n", e.getMessage());
} finally {
if (_PrinterMntr != null) {
_PrinterMntr.Dispose();
}
}
}
private static void PtrAlertNoticeListener(String[] newAlertText) {
// Print out alerts: e.g. "2418" ("Print Head Open" fault/alert)
System.out.printf("Printer Alert #: %n %s - %s%n", newAlertText[0], newAlertText[1]);
}
private static void PtrEngineStatusNoticeListener(String newEngineStatus) {
// Print out engine status: e.g. "idle", "offline", "online", "printing"...
System.out.printf("Engine Status: %n %s%n", newEngineStatus);
}
private static void PtrDisplayStatusNoticeListener(String[] newDisplayText) {
// Print display msgs: e.g. "ONLINE" "ETHERNET/PGL/LP+" or "PRINT HEAD UP" "Close Print Head"
System.out.println("Printer Display: ");
Arrays.stream(newDisplayText).forEach(txtLine -> System.out.printf(" %s%n", txtLine));
}
}

输出

当打开/关闭打印头并按下印表机上的暂停按钮,使印表机进入“离线”/“在线”状态后的结果。

输出


构造及析构函数说明

◆ PrinterMonitor() [1/3]

◆ PrinterMonitor() [2/3]

◆ PrinterMonitor() [3/3]

成员函数说明

◆ CallbackForAlertStatus()

void com.UniPRT.Sdk.Json.PrinterMonitor.CallbackForAlertStatus ( String[]  alertText)
private

◆ CallbackForDisplayStatus()

void com.UniPRT.Sdk.Json.PrinterMonitor.CallbackForDisplayStatus ( String[]  panelText)
private

◆ CallbackForEngineStatus()

void com.UniPRT.Sdk.Json.PrinterMonitor.CallbackForEngineStatus ( String  newEngineState)
private

◆ close()

void com.UniPRT.Sdk.Json.PrinterMonitor.close ( ) throws Exception

◆ DisplayStatus()

void com.UniPRT.Sdk.Json.PrinterMonitor.DisplayStatus ( String[]  newDisplayText)
private

◆ Dispose() [1/2]

void com.UniPRT.Sdk.Json.PrinterMonitor.Dispose ( )

◆ Dispose() [2/2]

◆ finalize()

void com.UniPRT.Sdk.Json.PrinterMonitor.finalize ( ) throws Throwable
protected

◆ GetAlertStatusCallback()

AlertStatusNotice com.UniPRT.Sdk.Json.PrinterMonitor.GetAlertStatusCallback ( )

◆ GetAlertStatusListening()

boolean com.UniPRT.Sdk.Json.PrinterMonitor.GetAlertStatusListening ( )

继承自 IPrinterMonitor.AlertStatusListening

实现了 com.UniPRT.Sdk.Json.IPrinterMonitor.

引用了 com.UniPRT.Sdk.Json.PrinterMonitor._alertStatusListening.

◆ GetDisplayStatusCallback()

DisplayStatusNotice com.UniPRT.Sdk.Json.PrinterMonitor.GetDisplayStatusCallback ( )

◆ GetDisplayStatusListening()

boolean com.UniPRT.Sdk.Json.PrinterMonitor.GetDisplayStatusListening ( )

继承自 IPrinterMonitor.DisplayStatusListening

实现了 com.UniPRT.Sdk.Json.IPrinterMonitor.

引用了 com.UniPRT.Sdk.Json.PrinterMonitor._displayStatusListening.

◆ GetEngineStatus()

◆ GetEngineStatusCallback()

EngineStatusNotice com.UniPRT.Sdk.Json.PrinterMonitor.GetEngineStatusCallback ( )

◆ GetEngineStatusListening()

boolean com.UniPRT.Sdk.Json.PrinterMonitor.GetEngineStatusListening ( )

继承自 IPrinterMonitor.EngineStatusListening

实现了 com.UniPRT.Sdk.Json.IPrinterMonitor.

引用了 com.UniPRT.Sdk.Json.PrinterMonitor._engineStatusListening.

◆ GetFaultStatus()

◆ GetPrinterInfo()

◆ MsgListenerCtrlRefresh()

void com.UniPRT.Sdk.Json.PrinterMonitor.MsgListenerCtrlRefresh ( )
private

引用了 com.UniPRT.Sdk.Json.PrinterMonitor._alertStatusListening, com.UniPRT.Sdk.Json.PrinterMonitor._displayStatusListening, com.UniPRT.Sdk.Json.PrinterMonitor._engineStatusListening, com.UniPRT.Sdk.Json.PrinterMonitor._executor, com.UniPRT.Sdk.Json.PrinterMonitor._listenerTask, com.UniPRT.Sdk.Json.PrinterMonitor._mgmtComm, com.UniPRT.Sdk.Json.PrinterMonitor._mgmtFilteredMsgs, com.UniPRT.Sdk.Json.PrinterMonitor._mgmtMsgListening, com.UniPRT.Sdk.Json.PrinterMonitor._msgsFromPtr, com.UniPRT.Sdk.Json.PrinterMonitor.alertLUT, com.UniPRT.Sdk.Json.PrinterMonitor.AlertStatusCallback, com.UniPRT.Sdk.Json.PrinterMonitor.alertText, com.UniPRT.Sdk.Json.JsonComm.ChannelListenerJson(), com.UniPRT.Sdk.Json.PrinterMonitor.DisplayStatusCallback, com.UniPRT.Sdk.Json.PrinterMonitor.displayText, com.UniPRT.Sdk.Json.PrinterMonitor.EngineStatusCallback, com.UniPRT.Sdk.Json.JsonStringTokenizer.GetKeyValue(), com.UniPRT.Sdk.Json.JsonStringTokenizer.GetKeyValueAtPath(), com.UniPRT.Sdk.Json.JsonStringTokenizer.GetMsgId_Json(), com.UniPRT.Sdk.Json.EngineStatusNotice.handle(), com.UniPRT.Sdk.Json.DisplayStatusNotice.handle(), com.UniPRT.Sdk.Json.AlertStatusNotice.handle(), com.UniPRT.Sdk.Json.JsonStringTokenizer.HasKeyAtPath(), com.UniPRT.Sdk.Json.PrinterMonitor.MAX_MSGS_FROM_PTR, com.UniPRT.Sdk.Json.PrinterMonitor.MAX_ODV_MSGS, com.UniPRT.Sdk.Mgmt.Channel< T >.Take() , 以及 com.UniPRT.Sdk.Mgmt.MgmtChannelFilterType.UNSOLICITED_MSGS_ONLY.

被这些函数引用 com.UniPRT.Sdk.Json.PrinterMonitor.SetAlertStatusListening(), com.UniPRT.Sdk.Json.PrinterMonitor.SetDisplayStatusListening() , 以及 com.UniPRT.Sdk.Json.PrinterMonitor.SetEngineStatusListening().

◆ MsgParser_PrinterInfo()

Map<String, String> com.UniPRT.Sdk.Json.PrinterMonitor.MsgParser_PrinterInfo ( String  mgmtReportFrame)
private

◆ SetAlertStatusCallback()

void com.UniPRT.Sdk.Json.PrinterMonitor.SetAlertStatusCallback ( AlertStatusNotice  callback)

保存当接收到来自印表机的故障/警报讯息时需要调用的函数。函数必须符合 AlertStatusNotice 的签名。

实现了 com.UniPRT.Sdk.Json.IPrinterMonitor.

◆ SetAlertStatusListening()

void com.UniPRT.Sdk.Json.PrinterMonitor.SetAlertStatusListening ( boolean  listening)

◆ SetDisplayStatusCallback()

void com.UniPRT.Sdk.Json.PrinterMonitor.SetDisplayStatusCallback ( DisplayStatusNotice  callback)

保存当接收到来自印表机的显示文字讯息时需要调用的函数。函数必须符合 DisplayStatusNotice 的签名。

实现了 com.UniPRT.Sdk.Json.IPrinterMonitor.

◆ SetDisplayStatusListening()

void com.UniPRT.Sdk.Json.PrinterMonitor.SetDisplayStatusListening ( boolean  listening)

◆ SetEngineStatusCallback()

void com.UniPRT.Sdk.Json.PrinterMonitor.SetEngineStatusCallback ( EngineStatusNotice  callback)

保存当接收到来自印表机的引擎状态时需要调用的函数。函数必须符合 EngineStatusNotice 的签名。

实现了 com.UniPRT.Sdk.Json.IPrinterMonitor.

◆ SetEngineStatusListening()

void com.UniPRT.Sdk.Json.PrinterMonitor.SetEngineStatusListening ( boolean  listening)

◆ triggerCallbackForEngineStatus()

void com.UniPRT.Sdk.Json.PrinterMonitor.triggerCallbackForEngineStatus ( String  engineState)
private

◆ triggerCallbackForOdvReport()

void com.UniPRT.Sdk.Json.PrinterMonitor.triggerCallbackForOdvReport ( String[]  alert)
private

类成员变量说明

◆ _alertStatusListening

AtomicBoolean com.UniPRT.Sdk.Json.PrinterMonitor._alertStatusListening = new AtomicBoolean(false)
private

◆ _displayStatusListening

AtomicBoolean com.UniPRT.Sdk.Json.PrinterMonitor._displayStatusListening = new AtomicBoolean(false)
private

◆ _disposed

boolean com.UniPRT.Sdk.Json.PrinterMonitor._disposed = false
private

◆ _engineStatusListening

AtomicBoolean com.UniPRT.Sdk.Json.PrinterMonitor._engineStatusListening = new AtomicBoolean(false)
private

◆ _executor

ExecutorService com.UniPRT.Sdk.Json.PrinterMonitor._executor = Executors.newSingleThreadExecutor()
private

◆ _listenerTask

Future<?> com.UniPRT.Sdk.Json.PrinterMonitor._listenerTask
private

◆ _managedDescriptor

String com.UniPRT.Sdk.Json.PrinterMonitor._managedDescriptor = ""
private

◆ _mgmtComm

◆ _mgmtFilteredMsgs

ConcurrentLinkedQueue<String> com.UniPRT.Sdk.Json.PrinterMonitor._mgmtFilteredMsgs = new ConcurrentLinkedQueue<>()
private

◆ _mgmtMsgListening

AtomicBoolean com.UniPRT.Sdk.Json.PrinterMonitor._mgmtMsgListening = new AtomicBoolean(false)
private

◆ _msgsFromPtr

Channel<String> com.UniPRT.Sdk.Json.PrinterMonitor._msgsFromPtr
private

◆ _myMgmtId

◆ _ptrComm

TcpConnection com.UniPRT.Sdk.Json.PrinterMonitor._ptrComm
private

◆ _sdkManagedComm

boolean com.UniPRT.Sdk.Json.PrinterMonitor._sdkManagedComm = false
private

◆ alertLUT

Map<Integer, String> com.UniPRT.Sdk.Json.PrinterMonitor.alertLUT
private
初始值:
= new HashMap<Integer, String>() {{
put(0000, "No Fault");
put(2001, "Paper Out");
put(2002, "Paper Jam");
put(2301, "Barcode Fails Specification");
put(2407, "Barcode Fails Specification");
put(2418, "Print Head Open");
}}

被这些函数引用 com.UniPRT.Sdk.Json.PrinterMonitor.GetFaultStatus() , 以及 com.UniPRT.Sdk.Json.PrinterMonitor.MsgListenerCtrlRefresh().

◆ AlertStatusCallback

◆ alertText

String [] com.UniPRT.Sdk.Json.PrinterMonitor.alertText = new String[] { "", "" }
private

◆ DisplayStatusCallback

◆ displayText

String [] com.UniPRT.Sdk.Json.PrinterMonitor.displayText = new String[] { "", "" }
private

◆ EngineStatusCallback

◆ MAX_MSGS_FROM_PTR

final int com.UniPRT.Sdk.Json.PrinterMonitor.MAX_MSGS_FROM_PTR = 100
staticprivate

◆ MAX_ODV_MSGS

final int com.UniPRT.Sdk.Json.PrinterMonitor.MAX_ODV_MSGS = 2
staticprivate

该类的文档由以下文件生成:
com.UniPRT.Sdk.Json
Definition: AlertStatusNotice.java:1
com.UniPRT.Sdk.Json.PrinterMonitor
用于协助监听/检索印表机非请求讯息或检索印表机状态/资讯的模块。
Definition: PrinterMonitor.java:77
com.UniPRT
com.UniPRT.Sdk
com
com.UniPRT.Sdk.Json.PrinterMonitor.PrinterMonitor
PrinterMonitor(TcpConnection connection)
Definition: PrinterMonitor.java:387