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

提供 ODV 相關服務的支援。模組用於協助監聽/檢索與 ODV 相關的打印機未請求讯息。 更多...

類別com.UniPRT.Sdk.Json.OdvMonitor的繼承圖:
com.UniPRT.Sdk.Json.IOdvMonitor

公開方法(Public Methods)

OdvReportNotice GetOdvReportCallback ()
 繼承自 IOdvMonitor.OdvReportListening 更多...
 
void SetOdvReportCallback (OdvReportNotice callback)
 保存收到 ODV 報告時要調用的函式。函式必須符合 OdvReportNotice 的簽名。 更多...
 
boolean GetOdvReportListening ()
 繼承自 IOdvMonitor.OdvReportListening 更多...
 
void SetOdvReportListening (boolean listening)
 啟用/停用聽取或解析印表機發送的非請求 ODV 報告 更多...
 
 OdvMonitor (TcpConnection connection)
 必須傳遞一個已開啟的 comm 連接,該連接必須保持開啟狀態以監聽未請求的 ODV 報告。 更多...
 
 OdvMonitor (JsonComm mgmtComm)
 當管理 comm 對象已存在以監聽管理讯息時調用的構造函數。 更多...
 
 OdvMonitor (String commDescriptor)
 當創建由 SDK 管理的連接時呼叫此構造函數。 更多...
 
void Dispose ()
 
void close () throws Exception
 

保護方法(Protected Methods)

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

私有方法(Private Methods)

void triggerCallbackForOdvReport (OdvReport report)
 
void MsgListenerCtrlRefresh ()
 
Map< String, String > MsgParser_OdvReport (String mgmtReportFrame)
 
void CallbackForOdvReport (OdvReport odvReport)
 

私有屬性

TcpConnection _ptrComm
 
JsonComm _mgmtComm
 
Channel< String > _msgsFromPtr
 
String _myMgmtId = ""
 
AtomicBoolean _mgmtMsgListening = new AtomicBoolean(false)
 
AtomicBoolean _printerJobReporting = new AtomicBoolean(false)
 
AtomicBoolean _odvReportListening = new AtomicBoolean(false)
 
ExecutorService _executor = Executors.newSingleThreadExecutor()
 
Future<?> _listenerTask
 
ConcurrentLinkedQueue< String > _mgmtFilteredMsgs = new ConcurrentLinkedQueue<>()
 
OdvReportNotice OdvReportCallback
 
boolean _sdkManagedComm = false
 
String _managedDescriptor = ""
 
boolean _disposed = false
 

靜態私有屬性

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

詳細描述

提供 ODV 相關服務的支援。模組用於協助監聽/檢索與 ODV 相關的打印機未請求讯息。

如果啟用了未請求的讯息,打印機可以隨時發送讯息。 此模組需要與打印機管理端口保持持續的「狀態」連接,以便監聽從打印機發送的任何讯息。

備註
  • 要使打印機發送 ODV 報告,必須設置以下配置:
    • 在打印機 OVD 菜單中: "Validator Active = Enable", "Telemetry Path = Network Port", "Telemetry Data = Full Report"

範例

package com.test.UniPRTSdk;
public class OdvMonitorSnippet {
private static OdvMonitor _odvReportListener = null;
public static void test() {
System.out.println("Listening for ODV barcode reports.");
try {
//_odvReportListener = new OdvMonitor("127.0.0.1");
_odvReportListener = new OdvMonitor("192.168.1.55");
_odvReportListener.SetOdvReportListening(true); // enable parsing of unsolicited barcode report msgs from printer
_odvReportListener.SetOdvReportCallback(OdvMonitorSnippet::myOdvReportProcessing); // set the callback/delegate to call when reports received
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 (_odvReportListener != null) {
_odvReportListener.Dispose();
}
}
}
public static void myOdvReportProcessing(OdvReport odvReport) {
// Could also customize into CSV format based on needs
String userFriendlyResult = odvReport.Failed() ? "failed" : "passed"; // failure output as "failed"/"passed" to make more user friendly
System.out.println("\r\nShort CSV Format (customized ordered list): pass/fail, Grade, Data");
System.out.printf(" %s, %s, %s%n", userFriendlyResult, odvReport.OverallGrade(), odvReport.Data());
}
}

輸出

將帶有條碼的打印作業發送到打印機並獲得條碼報告後的結果。

輸出

建構子與解構子說明文件

◆ OdvMonitor() [1/3]

com.UniPRT.Sdk.Json.OdvMonitor.OdvMonitor ( TcpConnection  connection)

必須傳遞一個已開啟的 comm 連接,該連接必須保持開啟狀態以監聽未請求的 ODV 報告。

連接是用於發送/接收讯息的必要條件。

參考 com.UniPRT.Sdk.Json.OdvMonitor._mgmtComm, com.UniPRT.Sdk.Json.OdvMonitor._myMgmtId, com.UniPRT.Sdk.Json.OdvMonitor._ptrComm, com.UniPRT.Sdk.Json.JsonStringBuilder.GetRandomObjectId_Json(), 及 com.UniPRT.Sdk.Json.OdvMonitor.OdvReportCallback.

◆ OdvMonitor() [2/3]

com.UniPRT.Sdk.Json.OdvMonitor.OdvMonitor ( JsonComm  mgmtComm)

當管理 comm 對象已存在以監聽管理讯息時調用的構造函數。

每台打印機的 JsonComm 對象負責監聽和解析完整的管理讯息,並將其轉發給所有管理讯息聽眾。

參考 com.UniPRT.Sdk.Json.OdvMonitor._mgmtComm, com.UniPRT.Sdk.Json.OdvMonitor._myMgmtId, com.UniPRT.Sdk.Json.JsonStringBuilder.GetRandomObjectId_Json(), 及 com.UniPRT.Sdk.Json.OdvMonitor.OdvReportCallback.

◆ OdvMonitor() [3/3]

com.UniPRT.Sdk.Json.OdvMonitor.OdvMonitor ( String  commDescriptor)

當創建由 SDK 管理的連接時呼叫此構造函數。

commDescriptor 是用於與打印機建立通信的描述符。
TCP 描述符格式為:"ip" 或 "ip:port"
例如:"127.0.0.1" 或 "127.0.0.1:3007"
若未提供端口,則使用默認值。

參考 com.UniPRT.Sdk.Json.OdvMonitor._managedDescriptor, com.UniPRT.Sdk.Json.OdvMonitor._mgmtComm, com.UniPRT.Sdk.Json.OdvMonitor._myMgmtId, com.UniPRT.Sdk.Json.OdvMonitor._sdkManagedComm, com.UniPRT.Sdk.Json.JsonCommController.CreateMgmtComm(), com.UniPRT.Sdk.Json.JsonStringBuilder.GetRandomObjectId_Json(), com.UniPRT.Sdk.Json.JsonCommController.Instance(), 及 com.UniPRT.Sdk.Json.OdvMonitor.OdvReportCallback.

函式成員說明文件

◆ CallbackForOdvReport()

void com.UniPRT.Sdk.Json.OdvMonitor.CallbackForOdvReport ( OdvReport  odvReport)
private

◆ close()

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

◆ Dispose() [1/2]

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

◆ Dispose() [2/2]

◆ finalize()

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

◆ GetOdvReportCallback()

OdvReportNotice com.UniPRT.Sdk.Json.OdvMonitor.GetOdvReportCallback ( )

繼承自 IOdvMonitor.OdvReportListening

實作 com.UniPRT.Sdk.Json.IOdvMonitor.

參考 com.UniPRT.Sdk.Json.OdvMonitor.OdvReportCallback.

◆ GetOdvReportListening()

boolean com.UniPRT.Sdk.Json.OdvMonitor.GetOdvReportListening ( )

繼承自 IOdvMonitor.OdvReportListening

實作 com.UniPRT.Sdk.Json.IOdvMonitor.

參考 com.UniPRT.Sdk.Json.OdvMonitor._odvReportListening.

◆ MsgListenerCtrlRefresh()

◆ MsgParser_OdvReport()

Map<String, String> com.UniPRT.Sdk.Json.OdvMonitor.MsgParser_OdvReport ( String  mgmtReportFrame)
private

◆ SetOdvReportCallback()

void com.UniPRT.Sdk.Json.OdvMonitor.SetOdvReportCallback ( OdvReportNotice  callback)

保存收到 ODV 報告時要調用的函式。函式必須符合 OdvReportNotice 的簽名。

傳遞給函式的參數是一個 OdvReport 物件,代表收到的 ODV 報告。

實作 com.UniPRT.Sdk.Json.IOdvMonitor.

◆ SetOdvReportListening()

void com.UniPRT.Sdk.Json.OdvMonitor.SetOdvReportListening ( boolean  listening)

◆ triggerCallbackForOdvReport()

void com.UniPRT.Sdk.Json.OdvMonitor.triggerCallbackForOdvReport ( OdvReport  report)
private

資料成員說明文件

◆ _disposed

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

◆ _executor

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

◆ _listenerTask

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

◆ _managedDescriptor

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

◆ _mgmtComm

◆ _mgmtFilteredMsgs

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

◆ _mgmtMsgListening

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

◆ _msgsFromPtr

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

◆ _myMgmtId

String com.UniPRT.Sdk.Json.OdvMonitor._myMgmtId = ""
private

◆ _odvReportListening

AtomicBoolean com.UniPRT.Sdk.Json.OdvMonitor._odvReportListening = new AtomicBoolean(false)
private

◆ _printerJobReporting

AtomicBoolean com.UniPRT.Sdk.Json.OdvMonitor._printerJobReporting = new AtomicBoolean(false)
private

◆ _ptrComm

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

◆ _sdkManagedComm

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

◆ MAX_MSGS_FROM_PTR

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

◆ MAX_ODV_MSGS

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

◆ OdvReportCallback


此類別(class) 文件是由下列檔案中產生:
com.UniPRT.Sdk.Json
Definition: AlertStatusNotice.java:1
com.UniPRT
com.UniPRT.Sdk.Json.OdvMonitor.OdvMonitor
OdvMonitor(TcpConnection connection)
必須傳遞一個已開啟的 comm 連接,該連接必須保持開啟狀態以監聽未請求的 ODV 報告。
Definition: OdvMonitor.java:246
com.UniPRT.Sdk.Json.OdvReport
ODV 報告類別,用於顯示從打印機接收到的 ODV/ODV2D 數據。
Definition: OdvReport.java:16
com.UniPRT.Sdk.Json.OdvMonitor
提供 ODV 相關服務的支援。模組用於協助監聽/檢索與 ODV 相關的打印機未請求讯息。
Definition: OdvMonitor.java:88
com.UniPRT.Sdk
com