nl:: Weave:: Profiles:: DataManagement_Current
這個命名空間包含 Weave 內所有 Weave 資料管理 (WDM) 設定檔的介面,且目前支援正式環境使用。
摘要
Typedefs |
|
|---|---|
CommandFlags
|
typedef |
DataVersion
|
typedefuint64_t
|
EventProcessor
|
typedefvoid *
|
EventWriterFunct)(nl::Weave::TLV::TLVWriter &ioWriter, uint8_t inDataTag, void *appData)
|
typedef 為事件記錄子系統提供 eventData 元素的函式。 |
FetchExternalEventsFunct)(EventLoadOutContext *aContext)
|
typedef 用於擷取事件資料的平台回呼的函式原型。 |
GenericTraitSinkCatalog
|
typedef |
GenericTraitSourceCatalog
|
typedef |
ImportanceType
|
typedef 記錄項目的重要性。 |
IteratorCallback)(void *aTraitInstance, TraitDataHandle aHandle, void *aContext)
|
typedefvoid(*
特徵處理疊代器。 |
LoggingBufferHandler)(void *inAppState, PacketBuffer *inBuffer)
|
typedef |
NotifyExternalEventsDeliveredFunct)(ExternalEvents *inEv, event_id_t inLastDeliveredEventID, uint64_t inRecipientNodeID)
|
typedefvoid(*
將外部事件傳送至遠端訂閱者時,所叫用回呼的函式原型。 |
NotifyExternalEventsEvictedFunct)(ExternalEvents *inEv)
|
typedefvoid(*
從緩衝區中移除外部事件時,所叫用回呼的函式原型。 |
PropertyDictionaryKey
|
typedefuint16_t
|
PropertyPathHandle
|
typedefuint32_t
PropertyPathHandle 是相對於特徵執行個體根的 WDM 路徑獨有的 32 位元數值雜湊。 |
PropertySchemaHandle
|
typedefuint16_t
|
SchemaVersion
|
typedefuint16_t
|
SingleResourceSinkTraitCatalog
|
typedef |
SingleResourceSourceTraitCatalog
|
typedef |
TimestampType
|
typedef EventOptions 中包含的時間戳記有效性和類型。 |
TraitDataHandle
|
typedefuint16_t
|
duration_t
|
nl::Weave::Profiles::DataManagement_Current::duration_tuint32_t
用來說明持續時間的類型 (以毫秒為單位)。 |
event_id_t
|
nl::Weave::Profiles::DataManagement_Current::event_id_tuint32_t
事件 ID 的類型。 |
timestamp_t
|
nl::Weave::Profiles::DataManagement_Current::timestamp_tuint32_t
用來描述時間戳記的類型 (以毫秒為單位)。 |
utc_timestamp_t
|
nl::Weave::Profiles::DataManagement_Current::utc_timestamp_tuint64_t
用來說明世界標準時間時間戳記的類型 (以毫秒為單位)。 |
變數 |
|
|---|---|
sInstance
|
|
sLogFileName = "topazlog"[]
|
char
|
函式 |
|
|---|---|
BdxErrorHandler(nl::Weave::Profiles::BulkDataTransfer::BDXTransfer *aXfer, WEAVE_ERROR aErrorCode)
|
void
|
BdxGetBlockHandler(nl::Weave::Profiles::BulkDataTransfer::BDXTransfer *aXfer, uint64_t *aLength, uint8_t **aDataBlock, bool *aIsLastBlock)
|
void
|
BdxRejectHandler(nl::Weave::Profiles::BulkDataTransfer::BDXTransfer *aXfer, nl::Weave::Profiles::StatusReporting::StatusReport *aReport)
|
void
|
BdxSendAcceptHandler(nl::Weave::Profiles::BulkDataTransfer::BDXTransfer *aXfer, nl::Weave::Profiles::BulkDataTransfer::SendAccept *aSendAcceptMsg)
|
|
BdxXferDoneHandler(nl::Weave::Profiles::BulkDataTransfer::BDXTransfer *aXfer)
|
void
|
BdxXferErrorHandler(nl::Weave::Profiles::BulkDataTransfer::BDXTransfer *aXfer, nl::Weave::Profiles::StatusReporting::StatusReport *aXferError)
|
void
|
CreatePropertyPathHandle(PropertySchemaHandle aPropertyPathSchemaId, PropertyDictionaryKey aPropertyPathDictionaryKey)
|
|
EventWriterTLVCopy(TLVWriter & ioWriter, uint8_t inDataTag, void *appData)
|
這個輔助函式可將已經序列化的事件資料元素轉譯為事件緩衝區。
|
GetPropertyDictionaryKey(PropertyPathHandle aHandle)
|
PropertyDictionaryKey
|
GetPropertySchemaHandle(PropertyPathHandle aHandle)
|
PropertySchemaHandle
|
IsNullPropertyPathHandle(PropertyPathHandle aHandle)
|
bool
|
IsRootPropertyPathHandle(PropertyPathHandle aHandle)
|
bool
|
IsVersionNewer(const DataVersion & aVersion, const DataVersion & aReference)
|
bool
這個演算法是最佳化的演算法實作方式,可比較不同版本的演算法。
|
IsVersionNewerOrEqual(const DataVersion & aVersion, const DataVersion & aReference)
|
bool
|
Locate(TraitDataHandle aTraitDataHandle, const TraitCatalogBase< TraitDataSink > *aDataSinkCatalog)
|
這個公用程式函式可找出 TraitDataSink 目錄中的 TraitUpdatableDataSink。
|
LogEvent(const EventSchema & inSchema, nl::Weave::TLV::TLVReader & inData)
|
記錄預先序列化表單中的事件。
|
LogEvent(const EventSchema & inSchema, nl::Weave::TLV::TLVReader & inData, const EventOptions *inOptions)
|
記錄預先序列化表單的事件,包含額外選項。
|
LogEvent(const EventSchema & inSchema, EventWriterFunct inEventWriter, void *inAppData)
|
透過回呼記錄事件。
|
LogEvent(const EventSchema & inSchema, EventWriterFunct inEventWriter, void *inAppData, const EventOptions *inOptions)
|
透過回呼記錄事件,並提供選項。
|
LogFreeform(ImportanceType inImportance, const char *inFormat, ...)
|
LogFreeform 會向預設事件串流發出任意形式的字串。
|
LookForElementWithTag(const nl::Weave::TLV::TLVReader & aSrcReader, const uint64_t aTagInApiForm, nl::Weave::TLV::TLVReader *apDstReader)
|
|
PlainTextWriter(TLVWriter & ioWriter, uint8_t inDataTag, void *appData)
|
這個輔助函式可將任意形式的文字發出為偵錯事件。
|
PlainTextWriter(::nl::Weave::TLV::TLVWriter & ioWriter, uint8_t inDataTag, void *appData)
|
這個輔助函式可將任意形式的文字發出為偵錯事件。
|
operator!=(const ResourceIdentifier & lhs, const ResourceIdentifier & rhs)
|
bool
|
operator==(const ResourceIdentifier & lhs, const ResourceIdentifier & rhs)
|
bool
|
聯合工會 |
|
|---|---|
|
nl:: |
提供應用程式集系統或世界標準時間時間戳記的聯集。 |
列舉
100 次
@100
kNestDebug_StringLogEntryEvent 的標記。
| 屬性 | |
|---|---|
kTag_Message
|
包含實際偵錯訊息的字串。 |
kTag_Region
|
32 位元無正負號,代表記錄區域,也就是記錄訊息相關的模組。 |
@101
@101
kNestDebug_TokenizedLogEntryEvent 的標記。
| 屬性 | |
|---|---|
kTag_Args
|
要與權杖訊息一併傳送的引數陣列。 |
kTag_Token
|
對應至權杖的 32 位元無正負號值。 |
@102
@102
保留事件的標記。
@104
@104
WDM 設定檔訊息類型。
這些值會在資料管理規格中呼叫。
@105
@105
WDM 專屬狀態碼。
147 次
@147
95 人
@95
記錄設定代碼。
| 屬性 | |
|---|---|
kTag_CurrentImportance
|
目前記錄重要性,值為 ImportanceType。 |
kTag_ImportanceExpiration
|
目前進階記錄設定還原為預設值的時間 (以世界標準時間為準)。 |
kTag_LoggingDestination
|
表示記錄上傳目的地的網址。 |
kTag_MaximumLogUploadInterval
|
自動觸發的記錄檔上傳嘗試之間的最長持續時間 (以秒為單位)。 |
kTag_MinimumLogUploadInterval
|
每次自動觸發記錄上傳嘗試之間的最短時間 (以秒為單位)。 |
kTag_TraitLoggingImportance
|
選擇性的陣列,可選擇性地將所選設定檔對應至較高記錄層級。 陣列中的每個元素都採用形式 (profile、path、loggingimportance),以選擇性地提高系統子集的記錄。改善設定檔記錄優先順序只有在記錄優先順序超過目前重要性的範圍,且其到期時間與目前重要性相同時,系統才會判斷設定檔記錄優先順序。 |
96 分
@96
記錄功能的標記,
| 屬性 | |
|---|---|
kTag_LogBufferingCapacity
|
32 位元無正負號整數,說明以 KB 為單位的記錄緩衝區容量。 |
kTag_LoggingVolume
|
32 位元無正負號整數,說明預期的記錄量 (以 KB/天為單位)。 |
kTag_SupportedLogTransports
|
支援的記錄傳輸機制陣列。 |
kTag_SupportsNonVolatileStorage
|
布林值,指出裝置是否支援非揮發性記錄檔儲存空間。 |
kTag_SupportsPerTraitVerbosity
|
布林值,指出裝置是否支援個別特徵的詳細程度設定。 |
kTag_SupportsStreaming
|
布林值,表示裝置是否支援串流記錄。 |
97 人
@97
事件中繼資料的標記。
如需標記值的完整語意,請參閱事件設計規格。
| 屬性 | |
|---|---|
kTag_EventData
|
選用設定。事件資料本身。如果留空,系統會預設為空白結構。 |
kTag_EventDeltaSystemTime
|
WDM 內部標記,與編碼中前一個事件的時間差。 |
kTag_EventDeltaUTCTime
|
WDM 內部標記,與編碼中前一個事件的時間差。 |
kTag_EventID
|
事件的序列編號,以 64 位元未簽署數量表示。 序列須為序列,序列中的跳躍表示事件間隔。 |
kTag_EventImportance
|
活動的重要性。 |
kTag_EventResourceID
|
選用設定。 這個值是事件相關的資源 ID。省略時,這個值會與 kTag_EventSource 的值相同 |
kTag_EventSource
|
產生事件的裝置的 NodeID。 |
kTag_EventSystemTimestamp
|
選用設定。事件的系統時間戳記,以毫秒為單位。 |
kTag_EventTraitInstanceID
|
非必要,產生事件的特徵例項。 |
kTag_EventTraitProfileID
|
必要欄位。32 位元無正負號整數,等於特徵的 ProfileID。 |
kTag_EventType
|
必要欄位。16 位元無正負號整數,等於此事件類型的 wdl.event.id。 |
kTag_EventUTCTimestamp
|
選用設定。事件的世界標準時間時間戳記,以毫秒為單位。 |
kTag_ExternalEventStructure
|
外部事件的內部標記。切勿透過線路傳輸,切勿在 Weave 程式庫外使用。 |
kTag_RelatedEventID
|
選用設定。 與這個事件相關的事件 ID。如果省略,此值等於 kTag_EventID 的值。 |
kTag_RelatedEventImportance
|
選用設定。 相關事件的重要性。如果省略,此值等於 kTag_EventImportance 的值。 |
98 人
@98
偵錯特徵的設定檔定義。
99 人
@99
Nest Debug 特徵的事件類型。
| 屬性 | |
|---|---|
kNestDebug_StringLogEntryEvent
|
任意形式字串偵錯訊息的事件。 |
kNestDebug_TokenizedHeaderEntryEvent
|
傳送代碼化標頭資訊的事件。 |
kNestDebug_TokenizedLogEntryEvent
|
代碼化偵錯訊息的事件。 |
CommandFlags
CommandFlags
| 屬性 | |
|---|---|
kCommandFlag_ActionTimeValid
|
設定動作時間有效時。 |
kCommandFlag_ExpiryTimeValid
|
設定到期時間。 |
kCommandFlag_InitiationTimeValid
|
設定啟動時間有效時間。 |
kCommandFlag_IsOneWay
|
在指令為單向時設定。 |
kCommandFlag_MustBeVersionValid
|
在版本欄位有效時設定。 |
ImportanceType
ImportanceType
記錄項目的重要性。
重要性可在事件實際發送到記錄前,先行篩選。記錄中的事件之後,系統不會再提供進一步的規定,無法將其從記錄中清除。重要性等級是用來優先儲存事件儲存空間。如果系統在完整緩衝區中加入高重要性的事件,系統就會按照重要性 (和年齡) 的順序捨棄事件,以便配合該事件。因此重要性等級只會有相對值。如果系統只使用一個重要程度等級,系統只會按照年齡順序捨棄事件 (例如環形緩衝區)。
| 屬性 | |
|---|---|
Debug
|
偵錯重要性代表系統開發人員感興趣的記錄項目,主要用於開發階段。 偵錯重要性記錄,不會計入受限裝置的頻寬或耗電量因此,只能在實際工作環境系統中使用。 |
Info
|
資訊重要性代表記錄項目,為運作中的系統提供額外的深入分析和診斷資訊。 資訊記錄等級可以在生產系統中延長使用,也可以當做實際測試的預設記錄層級。在受限裝置上,資訊等級記錄的項目必須根據頻寬和記憶體預算考慮,而不是在電源預算中。 |
Production
|
實際工作環境重要性代表 Nest 生態系統持續監控及維護的記錄項目。 在受到限制的裝置上,由於系統一律會記錄並卸載「生產」重要性記錄的項目,這類項目必須一併計入耗電量和記憶體預算中。 |
ProductionCritical
|
實際工作環境的重要性 - 表示損失會直接影響客戶端功能的事件。 應用程式可能會運用遺失的正式環境事件來表示系統故障。在受到限制的裝置上,由於系統一律會記錄並卸載「實際工作環境重大」重要性的項目,其電力和記憶體預算都必須一併計入。 |
LoggingManagementStates
LoggingManagementStates
| 屬性 | |
|---|---|
kLoggingManagementState_Holdoff
|
記錄卸載作業已完成;等到保留期結束後,系統才會重新記錄。 |
kLoggingManagementState_Idle
|
沒有正在執行記錄檔卸載,記錄檔卸載作業可以開始,不受任何限制。 |
kLoggingManagementState_InProgress
|
記錄卸載中。 |
kLoggingManagementState_Shutdown
|
無法執行任何記錄作業。 |
Typedefs
CommandFlags
enum nl::Weave::Profiles::DataManagement_Current::CommandFlags CommandFlags
DataVersion
uint64_t DataVersion
EventProcessor
void * EventProcessor
EventWriterFunct
WEAVE_ERROR(* EventWriterFunct)(nl::Weave::TLV::TLVWriter &ioWriter, uint8_t inDataTag, void *appData)
為事件記錄子系統提供 eventData 元素的函式。
此類型的函式應能為事件記錄子系統提供 eventData 元素。事件子系統產生所有必要的事件中繼資料後,會呼叫此類型的函式。系統會使用 nl::Weave::TLV::TLVWriter 物件呼叫該函式,該物件會輸出一個標記為 kTag_EventData 的 TLV 元素。該元素的值「必須」是包含事件資料的結構。事件資料本身必須使用內容標記的結構。
| 詳細資料 | |||||||
|---|---|---|---|---|---|---|---|
| 參數 |
|
||||||
| 傳回值 |
|
||||||
PlainTextWriter
EventWriterTLVCopy
FetchExternalEventsFunct
WEAVE_ERROR(* FetchExternalEventsFunct)(EventLoadOutContext *aContext)
用於擷取事件資料的平台回呼的函式原型。
與 FetchEvents 論 類似,此擷取函式會透過 ExternalEvents.mLastEventID 傳回 EventLoadOutContext.mBeginEventID 中的所有事件。
結構定義指標屬於 FetchExternalEventsContext 類型。其中包括 EventLoadOutContext,並包含一些 TLV 格式的輔助變數。同時也包括在登錄回呼時建立的 ExternalEvents 結構指標。這會指定回呼的事件 ID 範圍。
從函式傳回時,EventLoadOutContext.mCurrentEventID 應反映第一個尚未成功寫入 TLV 緩衝區的事件 ID。平台必須使用 EventLogging 通訊協定指定的正確格式,將事件標頭與資料寫入 TLV 寫入器。平台也必須維持事件和時間戳記的唯一性。
所有 TLV 錯誤都應套用至較高層級。舉例來說,緩衝區空間用盡時,將觸發已傳送的訊息,接著又對回呼 (不論還有哪個事件 ID) 呼叫。
| 詳細資料 | |||||||||
|---|---|---|---|---|---|---|---|---|---|
| 傳回值 |
|
||||||||
GenericTraitSinkCatalog
GenericTraitCatalogImpl< TraitDataSink > GenericTraitSinkCatalog
GenericTraitSourceCatalog
GenericTraitCatalogImpl< TraitDataSource > GenericTraitSourceCatalog
ImportanceType
enum nl::Weave::Profiles::DataManagement_Current::ImportanceType ImportanceType
記錄項目的重要性。
重要性可在事件實際發送到記錄前,先行篩選。記錄中的事件之後,系統不會再提供進一步的規定,無法將其從記錄中清除。重要性等級是用來優先儲存事件儲存空間。如果系統在完整緩衝區中加入高重要性的事件,系統就會按照重要性 (和年齡) 的順序捨棄事件,以便配合該事件。因此重要性等級只會有相對值。如果系統只使用一個重要程度等級,系統只會按照年齡順序捨棄事件 (例如環形緩衝區)。
IteratorCallback
void(* IteratorCallback)(void *aTraitInstance, TraitDataHandle aHandle, void *aContext)
特徵處理疊代器。
LoggingBufferHandler
WEAVE_ERROR(* LoggingBufferHandler)(void *inAppState, PacketBuffer *inBuffer)
NotifyExternalEventsDeliveredFunct
void(* NotifyExternalEventsDeliveredFunct)(ExternalEvents *inEv, event_id_t inLastDeliveredEventID, uint64_t inRecipientNodeID)
將外部事件傳送至遠端訂閱者時,所叫用回呼的函式原型。
當外部事件傳送到遠端訂閱者時,引擎會通知外部事件提供者。回呼會包含已送達的最後一個 ID 事件,以及接收事件的訂閱者 ID。
| 詳細資料 | |||||||
|---|---|---|---|---|---|---|---|
| 參數 |
|
||||||
NotifyExternalEventsEvictedFunct
void(* NotifyExternalEventsEvictedFunct)(ExternalEvents *inEv)
從緩衝區中移除外部事件時,所叫用回呼的函式原型。
將外部事件物件從傳出訊息緩衝區移出後,引擎會向外部事件供應器傳送通知。回呼包含要移除的外部事件。
| 詳細資料 | |||
|---|---|---|---|
| 參數 |
|
||
PropertyDictionaryKey
uint16_t PropertyDictionaryKey
PropertyPathHandle
uint32_t PropertyPathHandle
PropertyPathHandle 是相對於特徵執行個體根的 WDM 路徑獨有的 32 位元數值雜湊。
當中包含兩個部分:
- 對應至結構定義靜態部分的 16 位元數值下限。
- 而在較低的 16 位元版本參照字典元素中的路徑時,會顯示上限 16 位元的數字,代表與該元素相關聯的字典金鑰。如果較低 16 位元參照的是非字典元素,則上限 16 位元應為 0。
部分特徵:
- 每個特徵都有專屬的屬性路徑控點空間。
- 每個不重複的 WDM 子路徑路徑都會有相似但不重複的 PropertyPathHandle。
- PropertyPathHandle 是由 IDL 的特徵編譯器自動產生 (目前需手動完成),並在對應特徵的標頭檔案中以列舉清單表示。
- 採用這種結構,應用程式邏輯就不必直接處理 WDM 路徑。他們與 WDM 的互動只能透過這些控制代碼執行。
- 路徑控點有兩個保留值,具有特定意義:
- 0 代表「NULL」帳號代碼
- 1 表示指向特徵執行個體根的控點。
PropertySchemaHandle
uint16_t PropertySchemaHandle
SchemaVersion
uint16_t SchemaVersion
SingleResourceSinkTraitCatalog
SingleResourceTraitCatalog< TraitDataSink > SingleResourceSinkTraitCatalog
SingleResourceSourceTraitCatalog
SingleResourceTraitCatalog< TraitDataSource > SingleResourceSourceTraitCatalog
TimestampType
enum nl::Weave::Profiles::DataManagement_Current::TimestampType TimestampType
EventOptions 中包含的時間戳記有效性和類型。
TraitDataHandle
uint16_t TraitDataHandle
duration_t
uint32_t duration_t
用來說明持續時間的類型 (以毫秒為單位)。
event_id_t
uint32_t event_id_t
事件 ID 的類型。
timestamp_t
uint32_t timestamp_t
用來描述時間戳記的類型 (以毫秒為單位)。
utc_timestamp_t
uint64_t utc_timestamp_t
用來說明世界標準時間時間戳記的類型 (以毫秒為單位)。
變數
sInstance
LoggingManagement sInstance
sLogFileName
char sLogFileName[] = "topazlog"
函式
BdxErrorHandler
void BdxErrorHandler( nl::Weave::Profiles::BulkDataTransfer::BDXTransfer *aXfer, WEAVE_ERROR aErrorCode )
BdxGetBlockHandler
void BdxGetBlockHandler( nl::Weave::Profiles::BulkDataTransfer::BDXTransfer *aXfer, uint64_t *aLength, uint8_t **aDataBlock, bool *aIsLastBlock )
BdxRejectHandler
void BdxRejectHandler( nl::Weave::Profiles::BulkDataTransfer::BDXTransfer *aXfer, nl::Weave::Profiles::StatusReporting::StatusReport *aReport )
BdxSendAcceptHandler
WEAVE_ERROR BdxSendAcceptHandler( nl::Weave::Profiles::BulkDataTransfer::BDXTransfer *aXfer, nl::Weave::Profiles::BulkDataTransfer::SendAccept *aSendAcceptMsg )
BdxXferDoneHandler
void BdxXferDoneHandler( nl::Weave::Profiles::BulkDataTransfer::BDXTransfer *aXfer )
BdxXferErrorHandler
void BdxXferErrorHandler( nl::Weave::Profiles::BulkDataTransfer::BDXTransfer *aXfer, nl::Weave::Profiles::StatusReporting::StatusReport *aXferError )
CreatePropertyPathHandle
PropertyPathHandle CreatePropertyPathHandle( PropertySchemaHandle aPropertyPathSchemaId, PropertyDictionaryKey aPropertyPathDictionaryKey )
EventWriterTLVCopy
WEAVE_ERROR EventWriterTLVCopy( TLVWriter & ioWriter, uint8_t inDataTag, void *appData )
這個輔助函式可將已經序列化的事件資料元素轉譯為事件緩衝區。
| 詳細資料 | |||||||
|---|---|---|---|---|---|---|---|
| 參數 |
|
||||||
| 傳回值 |
|
||||||
GetPropertyDictionaryKey
PropertyDictionaryKey GetPropertyDictionaryKey( PropertyPathHandle aHandle )
GetPropertySchemaHandle
PropertySchemaHandle GetPropertySchemaHandle( PropertyPathHandle aHandle )
IsNullPropertyPathHandle
bool IsNullPropertyPathHandle( PropertyPathHandle aHandle )
IsRootPropertyPathHandle
bool IsRootPropertyPathHandle( PropertyPathHandle aHandle )
IsVersionNewer
bool IsVersionNewer( const DataVersion & aVersion, const DataVersion & aReference )
這個演算法是最佳化的演算法實作方式,可比較不同版本的演算法。
在用戶端上,從服務接收的版本一律是最新版本。
IsVersionNewerOrEqual
bool IsVersionNewerOrEqual( const DataVersion & aVersion, const DataVersion & aReference )
定位
TraitUpdatableDataSink * Locate( TraitDataHandle aTraitDataHandle, const TraitCatalogBase< TraitDataSink > *aDataSinkCatalog )
這個公用程式函式可找出 TraitDataSink 目錄中的 TraitUpdatableDataSink。
| 詳細資料 | |||||
|---|---|---|---|---|---|
| 參數 |
|
||||
| 傳回 |
TraitUpdatableDataSink 的指標。如果控點不存在,或指向無法更新的 TraitDataSink,則為 NULL。
|
||||
LogEvent
event_id_t LogEvent( const EventSchema & inSchema, nl::Weave::TLV::TLVReader & inData )
記錄預先序列化表單中的事件。
函式會記錄以 nl::Weave::TLV::TLVReader 表示的事件。這表示事件資料表示法已在 nl::Weave::TLV::TLVReader 基礎儲存空間中序列化。nl::Weave::TLV::TLVReader 應該包含至少一個資料元素,而該元素必須是結構。系統會將讀取到的第一個元素視為事件資料,並儲存在事件記錄中。事件資料「必須包含」要在由 inProfileID 和 inEventType 識別的結構定義中解讀的事件資料。系統會忽略第一個元素的標記。事件記錄系統就會換成 eventData 代碼。
如果事件的「重要性」超過 LoggingConfiguration 中指定的記錄門檻,就會記錄該事件。如果事件的重要性未達目前的門檻,系統就會捨棄該事件,且函式會傳回 0 做為產生的事件 ID。
這個叫用的變體會間接指定所有預設事件選項:
- 事件會加上呼叫時的目前時間時間戳記
- 事件會標示為與發出呼叫的裝置相關,
- 活動為獨立活動,與任何其他事件無關
- 將活動標示為非緊急
| 詳細資料 | |||||
|---|---|---|---|---|---|
| 參數 |
|
||||
| 傳回 |
event_id_t 事件 ID (如果事件寫入記錄),否則為 0。
|
||||
LogEvent
event_id_t LogEvent( const EventSchema & inSchema, nl::Weave::TLV::TLVReader & inData, const EventOptions *inOptions )
記錄預先序列化表單的事件,包含額外選項。
函式會記錄以 nl::Weave::TLV::TLVReader 表示的事件。這表示事件資料表示法已在 nl::Weave::TLV::TLVReader 基礎儲存空間中序列化。nl::Weave::TLV::TLVReader 應該包含至少一個資料元素,而該元素必須是結構。系統會將讀取到的第一個元素視為事件資料,並儲存在事件記錄中。事件資料「必須包含」要在由 inProfileID 和 inEventType 識別的結構定義中解讀的事件資料。系統會忽略第一個元素的標記。事件記錄系統就會換成 eventData 代碼。
如果事件的「重要性」超過 LoggingConfiguration 中指定的記錄門檻,就會記錄該事件。如果事件的重要性未達目前的門檻,系統就會捨棄該事件,且函式會傳回 0 做為產生的事件 ID。
此叫用的變體允許呼叫端設定任何 EventOptions 的組合:
- 時間戳記 (如果 0 預設為呼叫時的目前時間),
- 「根」事件來源的區段 (事件來源和特徵 ID);如果為 NULL,則預設為目前的裝置。事件會標示為與發出呼叫的裝置相關,
- 用於分組事件 ID 的相關事件 ID;當相關事件 ID 為 0 時,該事件會標示為與任何其他事件無關;
- 急迫性;預設為不會緊急
| 詳細資料 | |||||||
|---|---|---|---|---|---|---|---|
| 參數 |
|
||||||
| 傳回 |
event_id_t 事件 ID (如果事件寫入記錄),否則為 0。
|
||||||
LogEvent
event_id_t LogEvent( const EventSchema & inSchema, EventWriterFunct inEventWriter, void *inAppData )
透過回呼記錄事件。
該函式會記錄以 EventWriterFunct 表示的事件,以及應用程式專屬的 appData 情境。函式會寫入事件中繼資料,並使用 nl::Weave::TLV::TLVWriter 參照和 inAppData 結構定義呼叫 inEventWriter,如此一來,使用者程式碼就可以將事件資料直接發送到事件記錄中。這種形式的事件記錄會使記憶體用量降到最低,因為事件資料會直接序列化到目標緩衝區中。事件資料「必須」包含要在 inProfileID 和 inEventType 識別的結構定義中解讀的事件資料。系統會忽略第一個元素的標記。事件記錄系統就會換成 eventData 代碼。
如果事件的「重要性」超過 LoggingConfiguration 中指定的記錄門檻,就會記錄該事件。如果事件的重要性未達目前的門檻,系統就會捨棄該事件,且函式會傳回 0 做為產生的事件 ID。
這個叫用的變體會間接指定所有預設事件選項:
- 事件會加上呼叫時的目前時間時間戳記
- 事件會標示為與發出呼叫的裝置相關,
- 活動為獨立活動,與任何其他事件無關
- 將活動標示為非緊急
| 詳細資料 | |||||||
|---|---|---|---|---|---|---|---|
| 參數 |
|
||||||
| 傳回 |
event_id_t 事件 ID (如果事件寫入記錄),否則為 0。
|
||||||
LogEvent
event_id_t LogEvent( const EventSchema & inSchema, EventWriterFunct inEventWriter, void *inAppData, const EventOptions *inOptions )
透過回呼記錄事件,並提供選項。
該函式會記錄以 EventWriterFunct 表示的事件,以及應用程式專屬的 appData 情境。函式會寫入事件中繼資料,並使用 nl::Weave::TLV::TLVWriter 參照和 inAppData 結構定義呼叫 inEventWriter,如此一來,使用者程式碼就可以將事件資料直接發送到事件記錄中。這種形式的事件記錄會使記憶體用量降到最低,因為事件資料會直接序列化到目標緩衝區中。事件資料「必須」包含要在 inProfileID 和 inEventType 識別的結構定義中解讀的事件資料。系統會忽略第一個元素的標記。事件記錄系統就會換成 eventData 代碼。
如果事件的「重要性」超過 LoggingConfiguration 中指定的記錄門檻,就會記錄該事件。如果事件的重要性未達目前的門檻,系統就會捨棄該事件,且函式會傳回 0 做為產生的事件 ID。
此叫用的變體允許呼叫端設定任何 EventOptions 的組合:
- 時間戳記 (如果 0 預設為呼叫時的目前時間),
- 「根」事件來源的區段 (事件來源和特徵 ID);如果為 NULL,則預設為目前的裝置。事件會標示為與發出呼叫的裝置相關,
- 用於分組事件 ID 的相關事件 ID;當相關事件 ID 為 0 時,該事件會標示為與任何其他事件無關;
- 急迫性;預設為不會緊急
| 詳細資料 | |||||||||
|---|---|---|---|---|---|---|---|---|---|
| 參數 |
|
||||||||
| 傳回 |
event_id_t 事件 ID (如果事件寫入記錄),否則為 0。
|
||||||||
LogFreeform
event_id_t LogFreeform( ImportanceType inImportance, const char *inFormat, ... )
LogFreeform 會向預設事件串流發出任意形式的字串。
此字串會封裝在偵錯事件結構中,結構與其他記錄的字串相同。事件設定檔 ID 會是 Nest Debug 事件,事件類型則是 kNestDebug_StringLogEntryEvent。
| 詳細資料 | |||||
|---|---|---|---|---|---|
| 參數 |
|
||||
| 傳回 |
event_id_t 事件 ID (如果事件寫入記錄),否則為 0。
|
||||
LookForElementWithTag
WEAVE_ERROR LookForElementWithTag( const nl::Weave::TLV::TLVReader & aSrcReader, const uint64_t aTagInApiForm, nl::Weave::TLV::TLVReader *apDstReader )
PlainTextWriter
WEAVE_ERROR PlainTextWriter( TLVWriter & ioWriter, uint8_t inDataTag, void *appData )
這個輔助函式可將任意形式的文字發出為偵錯事件。
偵錯事件是一個含有記錄區域和任意形式文字的結構。
| 詳細資料 | |||||||
|---|---|---|---|---|---|---|---|
| 參數 |
|
||||||
| 傳回值 |
|
||||||
PlainTextWriter
WEAVE_ERROR PlainTextWriter( ::nl::Weave::TLV::TLVWriter & ioWriter, uint8_t inDataTag, void *appData )
這個輔助函式可將任意形式的文字發出為偵錯事件。
偵錯事件是一個含有記錄區域和任意形式文字的結構。
| 詳細資料 | |||||||
|---|---|---|---|---|---|---|---|
| 參數 |
|
||||||
| 傳回值 |
|
||||||