透過集合功能整理內容 你可以依據偏好儲存及分類內容。

nl::Weave::Profiles::DataManagement_Current::CommandSender

#include <src/lib/profiles/data-management/Current/CommandSender.h>

總結

注意:此類別會簡要說明傳送指令的通訊協定詳細資訊,以簡化應用程式涉及的機制。應用程式提供包含指令酬載的 PacketBuffer,以及一組可變更指令標頭內容以及引數行為的選用引數。這個包裝函式關於指令處理的公用程式確實受到限制,主要原因在於安全性驗證和資料序列化/解碼序列化的複雜性和彈性。

指令驗證詳細資料仍為 TBD

這個類別也可協助應用程式推斷出相關聯的 TraitDataSink 資料是否參照了 Commmand 的副作用 (根據指令回應中提供的版本)。應用程式負責管理該物件的儲存空間。

編織 繫結

此類別的物件可使用 Weave binding 進行內層化,而該物件會成為用來傳送 Command 的預設 binding。使用者也可以為 SendCommand() 的每個呼叫提供「繫結」,以覆寫預設的 binding。您不一定要提供預設的 binding,不過已為 CommandSender 提供的所有繫結都已初始化。

事件回呼

使用者必須定義這個類型的函式,才能更新指令傳送後發生的事件 (請參閱下方的「API 事件」)。如果使用者不介意傳送指令後會發生什麼情況,這可以是 NULL。

API 事件

以下是傳送 Command 後可能產生的結果:

通訊錯誤

建立或傳送 Command 或等待回應時發生錯誤。等待回應期間可能出現的錯誤示例包括關鍵錯誤或連線中斷。錯誤原因會包含在 EventCallback 處理常式的 InEventParam 引數中。

處理中

收件者可以傳送「'處理中」訊息,指出 Command 已經接收,但是尚未完成。完成後,收件者將收到回應或 StatusReport。傳送 ' 處理中...不需要訊息。

狀態報告已收到

StatusReport 的收據代表處理 Command 時發生錯誤。可透過 InEventParam 存取 StatusReport。

已收到回應

接收回應表示 Command 接收者已成功處理 Command。回應可能含有酬載,或不一定會。如果應用程式想要保留封包緩衝區,則可以呼叫 ExchangeContext::AddRef() 以增加修正次數。

公開類型

EventCallback)(void *const aAppState, EventType aEvent, const InEventParam &aInParam, OutEventParam &aOutEventParam) typedef
void(*
EventType 列舉

公開屬性

mAppState = NULL
void *
mSyncronizedTraitState = NULL

公開的靜態函式

DefaultEventHandler(void *aAppState, EventType aEvent, const InEventParam & aInParam, OutEventParam & aOutParam)
void

公開函式

Close(bool aAbortNow)
void
Init(nl::Weave::Binding *aBinding, const EventCallback aEventCallback, void *const aAppState)
SendCommand(nl::Weave::PacketBuffer *aPayload, nl::Weave::Binding *aBinding, ResourceIdentifier & aResourceId, uint32_t aProfileId, uint32_t aCommandType)
SendCommand(nl::Weave::PacketBuffer *aPayload, nl::Weave::Binding *aBinding, SendParams & aSendParams)
SetSynchronizedTraitState(SynchronizedTraitState *aTraitState)
void

結構

nl::Weave::Profiles::DataManagement_Current::CommandSender::InEventParam

自訂指令的收件者傳回的資料。

nl::Weave::Profiles::DataManagement_Current::CommandSender::OutEventParam

從 EventCallback 函式傳回至 CommandSender 物件的資料。

nl::Weave::Profiles::DataManagement_Current::CommandSender::SendParams

封裝要傳遞至 SendCommand() 的引數。

nl::Weave::Profiles::DataManagement_Current::CommandSender::SynchronizedTraitState

公開類型

事件回呼

void(* EventCallback)(void *const aAppState, EventType aEvent, const InEventParam &aInParam, OutEventParam &aOutEventParam)

EventType

 EventType

公開屬性

行動應用程式狀態

void * mAppState = NULL

mSyncronizedTraitState

SynchronizedTraitState * mSyncronizedTraitState = NULL

公開的靜態函式

預設事件處理常式

void DefaultEventHandler(
  void *aAppState,
  EventType aEvent,
  const InEventParam & aInParam,
  OutEventParam & aOutParam
)

公開函式

關閉

void Close(
  bool aAbortNow
)

Init

WEAVE_ERROR Init(
  nl::Weave::Binding *aBinding,
  const EventCallback aEventCallback,
  void *const aAppState
)

SendCommand

WEAVE_ERROR SendCommand(
  nl::Weave::PacketBuffer *aPayload,
  nl::Weave::Binding *aBinding,
  ResourceIdentifier & aResourceId,
  uint32_t aProfileId,
  uint32_t aCommandType
)

SendCommand

WEAVE_ERROR SendCommand(
  nl::Weave::PacketBuffer *aPayload,
  nl::Weave::Binding *aBinding,
  SendParams & aSendParams
)

SetSynchronizedTraitState

void SetSynchronizedTraitState(
  SynchronizedTraitState *aTraitState
)