UniPRT SDK  v1.0.0.0
com.UniPRT.Sdk.Mgmt.Messenger 類別 參考文件

促進與印表機進行管理訊息通信的類別。 更多...

類別com.UniPRT.Sdk.Mgmt.Messenger的繼承圖:
com.UniPRT.Sdk.Mgmt.IMgmtMessenger

公開方法(Public Methods)

 Messenger (IComm commToPtr, int maxInputMsgCapacity, MgmtChannelFilterType listenerType, boolean usingDataPort)
 創建一個通道來發送/接收管理訊息,並指定最大容量。 更多...
 
String GetID ()
 區分同時與印表機通信的不同訊息發送者的 ID。此 ID 用於 MgmtMsg 中的「To」/「From」。 更多...
 
String SendMsg (String command, String content, String trackNo)
 將管理命令和資料/內容發送到印表機。 更多...
 
String SendMsg (String command, String content)
 
MgmtMsg SendMsgAndWaitForResponse (String command, String content, int maxWaitTimeSecs)
 發送管理命令和資料/內容到印表機,並等待maxWaitTimeSecs時間的回應。 更多...
 
MgmtMsg SendMsgAndWaitForResponse (String command, String content)
 
void SendMsgRaw (String dataToSend)
 將內容直接發送至印表機,不進行任何訊息格式化。 更多...
 
int UnreadMsgCount ()
 獲取接收到的未讀訊息數量,這些訊息正在等待被讀取。 更多...
 
MgmtMsg ReadNextMsg ()
 讀取可能已從印表機非同步接收的下一則訊息。 更多...
 
void close ()
 

私有方法(Private Methods)

String NextMsgId ()
 

私有屬性

boolean usingDataPort = false
 
JsonComm _mgmtComm
 
Channel< String > _msgsFromPtr
 
String _myMgmtId = ""
 
AtomicLong _trackCount = new AtomicLong(1)
 

詳細描述

促進與印表機進行管理訊息通信的類別。

建構子與解構子說明文件

◆ Messenger()

com.UniPRT.Sdk.Mgmt.Messenger.Messenger ( IComm  commToPtr,
int  maxInputMsgCapacity,
MgmtChannelFilterType  listenerType,
boolean  usingDataPort 
)

創建一個通道來發送/接收管理訊息,並指定最大容量。

如果在接收到更多訊息之前未讀取訊息,則會丟棄最舊的訊息。

詳情請參考 FullMode
如果與印表機的通訊 commToPtr 是通過與發送列印資料相同的埠,則將 usingDataPort 設置為 true。這很重要,以正確格式化管理訊息,使印表機可以區分訊息與列印資料。

參考 com.UniPRT.Sdk.Mgmt.Messenger._mgmtComm, com.UniPRT.Sdk.Mgmt.Messenger._myMgmtId, com.UniPRT.Sdk.Json.JsonComm.ChannelListenerJson(), com.UniPRT.Sdk.Json.JsonCommController.CreateMgmtComm(), com.UniPRT.Sdk.Json.JsonStringBuilder.GetRandomObjectId_Json(), com.UniPRT.Sdk.Json.JsonCommController.Instance(), 及 com.UniPRT.Sdk.Mgmt.Messenger.usingDataPort.

函式成員說明文件

◆ close()

void com.UniPRT.Sdk.Mgmt.Messenger.close ( )

◆ GetID()

String com.UniPRT.Sdk.Mgmt.Messenger.GetID ( )

區分同時與印表機通信的不同訊息發送者的 ID。此 ID 用於 MgmtMsg 中的「To」/「From」。

參考 com.UniPRT.Sdk.Mgmt.Messenger._myMgmtId.

◆ NextMsgId()

String com.UniPRT.Sdk.Mgmt.Messenger.NextMsgId ( )
private

◆ ReadNextMsg()

MgmtMsg com.UniPRT.Sdk.Mgmt.Messenger.ReadNextMsg ( )

讀取可能已從印表機非同步接收的下一則訊息。

實作 com.UniPRT.Sdk.Mgmt.IMgmtMessenger.

參考 com.UniPRT.Sdk.Mgmt.Messenger._msgsFromPtr, 及 com.UniPRT.Sdk.Mgmt.Channel< T >.Take().

◆ SendMsg() [1/2]

String com.UniPRT.Sdk.Mgmt.Messenger.SendMsg ( String  command,
String  content 
)

◆ SendMsg() [2/2]

String com.UniPRT.Sdk.Mgmt.Messenger.SendMsg ( String  command,
String  content,
String  TrackNo 
)

將管理命令和資料/內容發送到印表機。

選用的 TrackNo 是用於傳送至印表機的 JSON 命令結構中的欄位,可供呼叫者檢查印表機的回應。若未提供 TrackNo,則會自動生成一個。

回傳的字串是發送給印表機的 JSON 訊息中的 TrackNo 欄位,允許呼叫者透過比較從印表機收到的回應中的 TrackNo 欄位來區分與已發送訊息相關的回應。

實作 com.UniPRT.Sdk.Mgmt.IMgmtMessenger.

參考 com.UniPRT.Sdk.Mgmt.Messenger._mgmtComm, com.UniPRT.Sdk.Mgmt.Messenger._myMgmtId, com.UniPRT.Sdk.Json.JsonStringBuilder.CreateMsgFrame_Json(), com.UniPRT.Sdk.Mgmt.Messenger.NextMsgId(), com.UniPRT.Sdk.Json.JsonComm.Send(), 及 com.UniPRT.Sdk.Mgmt.Messenger.usingDataPort.

被參考於 com.UniPRT.Sdk.Mgmt.Messenger.SendMsg(), 及 com.UniPRT.Sdk.Mgmt.Messenger.SendMsgAndWaitForResponse().

◆ SendMsgAndWaitForResponse() [1/2]

MgmtMsg com.UniPRT.Sdk.Mgmt.Messenger.SendMsgAndWaitForResponse ( String  command,
String  content 
)

◆ SendMsgAndWaitForResponse() [2/2]

MgmtMsg com.UniPRT.Sdk.Mgmt.Messenger.SendMsgAndWaitForResponse ( String  command,
String  content,
int  maxWaitTimeSecs 
)

發送管理命令和資料/內容到印表機,並等待maxWaitTimeSecs時間的回應。

若在超時前未收到回應,則回傳空物件。
所有訊息在接收到特定訊息的回應之前都會被丟棄。這些被丟棄的訊息可能包括在調用此方法之前等待讀取的未讀或舊訊息。

實作 com.UniPRT.Sdk.Mgmt.IMgmtMessenger.

參考 com.UniPRT.Sdk.Mgmt.Messenger._msgsFromPtr, com.UniPRT.Sdk.Mgmt.Channel< T >.Poll(), com.UniPRT.Sdk.Mgmt.Messenger.SendMsg(), 及 com.UniPRT.Sdk.Mgmt.MgmtMsg.TrackNo.

被參考於 com.UniPRT.Sdk.Mgmt.Messenger.SendMsgAndWaitForResponse().

◆ SendMsgRaw()

void com.UniPRT.Sdk.Mgmt.Messenger.SendMsgRaw ( String  dataToSend)

將內容直接發送至印表機,不進行任何訊息格式化。

用於需要發送未經任何管理訊息格式化的資料情況。 如果有特殊管理訊息或需要發送的資料共享用於資料和管理的端口,則可以使用此方法直接將資料發送到印表機。

實作 com.UniPRT.Sdk.Mgmt.IMgmtMessenger.

參考 com.UniPRT.Sdk.Mgmt.Messenger._mgmtComm, 及 com.UniPRT.Sdk.Json.JsonComm.Send().

◆ UnreadMsgCount()

int com.UniPRT.Sdk.Mgmt.Messenger.UnreadMsgCount ( )

獲取接收到的未讀訊息數量,這些訊息正在等待被讀取。

實作 com.UniPRT.Sdk.Mgmt.IMgmtMessenger.

參考 com.UniPRT.Sdk.Mgmt.Messenger._msgsFromPtr, 及 com.UniPRT.Sdk.Mgmt.Channel< T >.Size().

資料成員說明文件

◆ _mgmtComm

◆ _msgsFromPtr

◆ _myMgmtId

String com.UniPRT.Sdk.Mgmt.Messenger._myMgmtId = ""
private

◆ _trackCount

AtomicLong com.UniPRT.Sdk.Mgmt.Messenger._trackCount = new AtomicLong(1)
private

◆ usingDataPort

boolean com.UniPRT.Sdk.Mgmt.Messenger.usingDataPort = false
private

此類別(class) 文件是由下列檔案中產生: