UniPRT SDK  v1.0.0.0
com.UniPRT.Sdk.Mgmt.Messenger类 参考

促进与印表机进行管理讯息通信的类。 更多...

类 com.UniPRT.Sdk.Mgmt.Messenger 继承关系图:
com.UniPRT.Sdk.Mgmt.IMgmtMessenger

Public 成员函数

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

String NextMsgId ()
 

Private 属性

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

该类的文档由以下文件生成: