UniPRT SDK  v1.0.0.0
com.UniPRT.Sdk.Json.PrinterMonitor 類別 參考文件

用於協助監聽/檢索打印機非請求讯息或檢索打印機狀態/资讯的模塊。 更多...

類別com.UniPRT.Sdk.Json.PrinterMonitor的繼承圖:
com.UniPRT.Sdk.Json.IPrinterMonitor

公開方法(Public Methods)

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 Methods)

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

私有方法(Private Methods)

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)
 

私有屬性

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
 

靜態私有屬性

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

此類別(class) 文件是由下列檔案中產生:
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