UniPRT SDK  v1.0.0.0
UniPRT.Sdk.Monitor.RfidMonitor 類別 參考文件

提供與 RFID 相關服務的支援。模組用於促進監聽/檢索與 RFID 相關的印表機未經請求的訊息。 更多...

類別UniPRT.Sdk.Monitor.RfidMonitor的繼承圖:
UniPRT.Sdk.Monitor.IRfidMonitor

公開方法(Public Methods)

 RfidMonitor (string commDescriptor)
 當創建由 SDK 管理的連接時呼叫的構造函數。 更多...
 
void Dispose ()
 

保護方法(Protected Methods)

virtual void Dispose (bool disposing)
 

屬性(properties)

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"
如果未提供端口,則使用預設值。

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