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

提供与RFID相关服务的支持。该模块促进对印表机非请求讯息的监听/检索。 更多...

类 com.UniPRT.Sdk.Json.RfidMonitor 继承关系图:
com.UniPRT.Sdk.Json.IRfidMonitor

Public 成员函数

RfidReportNotice GetRfidReportCallback ()
 继承自 IRfidMonitor.RfidReportCallback 更多...
 
void SetRfidReportCallback (RfidReportNotice callback)
 保存当接收到RFID报告时需要调用的函数。函数必须符合 RfidReportNotice 的签名。 更多...
 
boolean GetRfidReportListening ()
 继承自 IRfidMonitor.RfidReportListening 更多...
 
void SetRfidReportListening (boolean listening)
 启用/禁用监听/解析来自印表机的未经请求的RFID报告。 更多...
 
 RfidMonitor (TcpConnection connection)
 必须传递已打开的 comm 连接,并且该连接需要保持开启以监听未请求的 RFID 报告。 更多...
 
 RfidMonitor (JsonComm mgmtComm)
 当已有 mgmt comm 对象用于监听管理讯息时,调用此构造函数。 更多...
 
 RfidMonitor (String commDescriptor)
 构造函数在由 SDK 管理的连接创建时被调用。 更多...
 
void Dispose ()
 
void close () throws Exception
 

Protected 成员函数

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

Private 成员函数

void triggerCallbackForRfidReport (RfidReport report)
 
void MsgListenerCtrlRefresh ()
 
Map< String, String > MsgParser_RfidReport (String mgmtReportFrame)
 
void CallbackForRfidReport (RfidReport RfidReport)
 

Private 属性

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

静态 Private 属性

static final int MAX_MSGS_FROM_PTR = 100
 
static final int MAX_Rfid_MSGS = 2
 

详细描述

提供与RFID相关服务的支持。该模块促进对印表机非请求讯息的监听/检索。

非请求讯息(如果在印表机上启用)可以在任何时间发送。 本模块需要稳定的“状态”连接到印表机的管理端口,以便监听任何从印表机发出的讯息。

备注

  • 要使印表机发送RFID报告,必须进行以下设置:
    • 在印表机的RFID菜单中:“AutoID Mgr Rpt = Enable”

范例

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));
}
}

输出

发送打印任务后,将EPC、USR写入并读取USR内存的结果。

输出


构造及析构函数说明

◆ RfidMonitor() [1/3]

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

必须传递已打开的 comm 连接,并且该连接需要保持开启以监听未请求的 RFID 报告。

连接是发送/接收讯息所必需的。

引用了 com.UniPRT.Sdk.Json.RfidMonitor._mgmtComm, com.UniPRT.Sdk.Json.RfidMonitor._myMgmtId, com.UniPRT.Sdk.Json.RfidMonitor._ptrComm, com.UniPRT.Sdk.Json.JsonStringBuilder.GetRandomObjectId_Json() , 以及 com.UniPRT.Sdk.Json.RfidMonitor.RfidReportCallback.

◆ RfidMonitor() [2/3]

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

当已有 mgmt comm 对象用于监听管理讯息时,调用此构造函数。

每台印表机的 JsonComm 对象负责监听和解析已形成的管理讯息,并将其转发给所有管理讯息的监听者。

引用了 com.UniPRT.Sdk.Json.RfidMonitor._mgmtComm, com.UniPRT.Sdk.Json.RfidMonitor._myMgmtId, com.UniPRT.Sdk.Json.JsonStringBuilder.GetRandomObjectId_Json() , 以及 com.UniPRT.Sdk.Json.RfidMonitor.RfidReportCallback.

◆ RfidMonitor() [3/3]

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

构造函数在由 SDK 管理的连接创建时被调用。

commDescriptor 是用于连接印表机的通信描述符。
TCP 描述符格式:"ip" 或 "ip:port"
例如:"127.0.0.1" 或 "127.0.0.1:3007"
如果未提供端口号,将使用默认值。

引用了 com.UniPRT.Sdk.Json.RfidMonitor._managedDescriptor, com.UniPRT.Sdk.Json.RfidMonitor._mgmtComm, com.UniPRT.Sdk.Json.RfidMonitor._myMgmtId, com.UniPRT.Sdk.Json.RfidMonitor._sdkManagedComm, com.UniPRT.Sdk.Json.JsonCommController.CreateMgmtComm(), com.UniPRT.Sdk.Json.JsonStringBuilder.GetRandomObjectId_Json(), com.UniPRT.Sdk.Json.JsonCommController.Instance() , 以及 com.UniPRT.Sdk.Json.RfidMonitor.RfidReportCallback.

成员函数说明

◆ CallbackForRfidReport()

void com.UniPRT.Sdk.Json.RfidMonitor.CallbackForRfidReport ( RfidReport  RfidReport)
private

◆ close()

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

◆ Dispose() [1/2]

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

◆ Dispose() [2/2]

◆ finalize()

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

◆ GetRfidReportCallback()

RfidReportNotice com.UniPRT.Sdk.Json.RfidMonitor.GetRfidReportCallback ( )

继承自 IRfidMonitor.RfidReportCallback

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

引用了 com.UniPRT.Sdk.Json.RfidMonitor.RfidReportCallback.

◆ GetRfidReportListening()

boolean com.UniPRT.Sdk.Json.RfidMonitor.GetRfidReportListening ( )

继承自 IRfidMonitor.RfidReportListening

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

引用了 com.UniPRT.Sdk.Json.RfidMonitor._rfidReportListening.

◆ MsgListenerCtrlRefresh()

◆ MsgParser_RfidReport()

Map<String, String> com.UniPRT.Sdk.Json.RfidMonitor.MsgParser_RfidReport ( String  mgmtReportFrame)
private

◆ SetRfidReportCallback()

void com.UniPRT.Sdk.Json.RfidMonitor.SetRfidReportCallback ( RfidReportNotice  callback)

保存当接收到RFID报告时需要调用的函数。函数必须符合 RfidReportNotice 的签名。

传入函数的参数是一个代表接收到的RFID报告的 OdvReport 对象。

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

◆ SetRfidReportListening()

void com.UniPRT.Sdk.Json.RfidMonitor.SetRfidReportListening ( boolean  listening)

启用/禁用监听/解析来自印表机的未经请求的RFID报告。

请注意,必须启用此选项才能在接收到RFID报告时接收任何通知,RfidReportCallback。

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

引用了 com.UniPRT.Sdk.Json.RfidMonitor._mgmtComm, com.UniPRT.Sdk.Json.RfidMonitor._myMgmtId, com.UniPRT.Sdk.Json.RfidMonitor._rfidReportListening, com.UniPRT.Sdk.Json.JsonStringBuilder.CreateMsgFrame_Json(), com.UniPRT.Sdk.Json.RfidMonitor.MsgListenerCtrlRefresh() , 以及 com.UniPRT.Sdk.Json.JsonComm.SendAndWaitForResponse().

◆ triggerCallbackForRfidReport()

void com.UniPRT.Sdk.Json.RfidMonitor.triggerCallbackForRfidReport ( RfidReport  report)
private

类成员变量说明

◆ _disposed

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

◆ _executor

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

◆ _listenerTask

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

◆ _managedDescriptor

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

◆ _mgmtComm

◆ _mgmtFilteredMsgs

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

◆ _mgmtMsgListening

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

◆ _msgsFromPtr

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

◆ _myMgmtId

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

◆ _printerJobReporting

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

◆ _ptrComm

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

◆ _rfidReportListening

AtomicBoolean com.UniPRT.Sdk.Json.RfidMonitor._rfidReportListening = new AtomicBoolean(false)
private

◆ _sdkManagedComm

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

◆ MAX_MSGS_FROM_PTR

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

◆ MAX_Rfid_MSGS

final int com.UniPRT.Sdk.Json.RfidMonitor.MAX_Rfid_MSGS = 2
staticprivate

◆ RfidReportCallback


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