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

提供 ODV 相关服务的支持。模块用于协助监听/检索与 ODV 相关的印表机未请求讯息。 更多...

类 com.UniPRT.Sdk.Json.OdvMonitor 继承关系图:
com.UniPRT.Sdk.Json.IOdvMonitor

Public 成员函数

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 成员函数

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

Private 成员函数

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

Private 属性

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
 

静态 Private 属性

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


该类的文档由以下文件生成:
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