UniPRT SDK  v1.0.0.0
UniPRT.Sdk.Monitor.RfidMonitor类 参考

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

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

Public 成员函数

 RfidMonitor (string commDescriptor)
 当创建由 SDK 管理的连接时调用的构造函数。 更多...
 
void Dispose ()
 

Protected 成员函数

virtual void Dispose (bool disposing)
 

属性

RfidReportNotice RfidReportCallback [get, set]
 继承自 IRfidMonitor.RfidReportCallback。
 
bool RfidReportListening [get, set]
 继承自 IRfidMonitor.RfidReportListening。 更多...
 

详细描述

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

未请求的讯息,如果在印表机上启用,可以随时发送。 此模块需要持续的 "状态" 连接到印表机的管理端口,以便监听印表机发送的任何讯息。

备注

  • 要让 RFID 报告由印表机发送,必须存在以下设置:
    • 在印表机 RFID 菜单中:"UniPRT Mgr Rpt = Enable"

示例

using System;
namespace Snippets
{
public class MyRfidMonitoring
{
private static RfidMonitor _rfidReportListener = null;
public static void MainRfidMonitor(string[] args)
{
Console.WriteLine("Listening for RFID reports.");
try
{
_rfidReportListener = new RfidMonitor("127.0.0.1");
_rfidReportListener.RfidReportListening = true; // enable parsing of unsolicited barcode report msgs from printer
_rfidReportListener.RfidReportCallback = myReportProcessing; // 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...
}
}
catch (Exception e)
{
Console.WriteLine($"Exception Msg: {e.Message}");
}
finally
{
_rfidReportListener?.Dispose();
}
}
public static void myReportProcessing(RfidReport report)
{
// this function called when RFID reports received.
// Here we can read and use any part of the report as needed.
// In our case, simply printing report contents to console but could write to file for archiving if needed
if (report.Failed)
{
Console.WriteLine("\nRFID Failed.");
}
else
{
string memoryType = "";
switch (report.DataType)
{
case RfidReport.RfidDataType.USR:
memoryType = "USR";
break;
case RfidReport.RfidDataType.TID:
memoryType = "TID";
break;
case RfidReport.RfidDataType.UNKNOWN:
memoryType = "UNKNOWN";
break;
}
Console.WriteLine("\nRFID Passed.");
Console.WriteLine($"Write Action: {((report.IsWriteOperation) ? "yes" : "no")}");
Console.WriteLine($"Operation on EPC Memory: {((report.DataType == RfidReport.RfidDataType.EPC) ? "yes" : "no")}");
if (report.DataType != RfidReport.RfidDataType.EPC)
{
Console.WriteLine($" memory accessed: {memoryType}");
}
Console.WriteLine($"Data: \n {report.Data}");
}
}
}
}

输出

发送写入 EPC、USR 并读取 USR 内存的打印作业后的结果。

输出

构造及析构函数说明

◆ RfidMonitor()

UniPRT.Sdk.Monitor.RfidMonitor.RfidMonitor ( string  commDescriptor)

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

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

属性说明

◆ RfidReportListening

bool UniPRT.Sdk.Monitor.RfidMonitor.RfidReportListening
getset

继承自 IRfidMonitor.RfidReportListening。

UniPRT.Sdk.Reports
Definition: OdvReport.cs:5
UniPRT
提供对不同通信接口/端口的支持
Definition: Communication.cs:9
UniPRT.Sdk
Definition: Communication.cs:9
UniPRT.Sdk.Monitor
Definition: OdvMonitor.cs:14