nl:: Weave:: Profiles:: DataManagement_Current
這個命名空間包含 Weave 中目前支援實際工作環境的所有 Weave Data Management (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
AssetPathHandle 是 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
用於說明世界標準時間時間戳記 (以毫秒為單位) 的類型。 |
Variables |
|
---|---|
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)
|
這個輔助函式會將已序列化的 eventdata 元素轉譯為事件緩衝區。
|
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
|
選擇性將所選設定檔對應至較高記錄層級的選用陣列。 陣列中的每個元素都會採用表單 (設定檔、路徑、記錄重要性) 來選擇性提升系統部分的記錄。提高的設定檔記錄優先順序只會在記錄優先順序超過目前重要性時,且到期時間與目前重要性相同。 |
@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
|
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)
用於擷取事件資料的平台回呼函式原型。
與 FetchEventsEvents 類似,這個擷取函式會透過 ExternalEvents.mLastEventID 傳回 EventLoadOutContext.m 自起事件 ID 的所有事件。
內容指標屬於 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
AssetPathHandle 是 WDM 路徑的專屬 32 位元數值雜湊,相對於特徵執行個體的根目錄。
其中包含兩個部分:
- 對應至結構定義靜態部分的 16 位元數值。
- 如果較低的 16 位元數參照字典元素中的路徑,系統會優先顯示 16 位元數字,代表與該元素相關聯的字典鍵。如果較低的 16 位元參照非字典元素,則前 16 位元應為 0。
以下列舉幾項特點:
- 每個特徵都有自己的屬性路徑控點空間。
- 每個不重複的 WDM 子路徑路徑都會有相似的屬性路徑處理常式。
- 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
用於說明世界標準時間時間戳記 (以毫秒為單位) 的類型。
Variables
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 )
這個輔助函式會將已序列化的 eventdata 元素轉譯為事件緩衝區。
詳細說明 | |||||||
---|---|---|---|---|---|---|---|
參數 |
|
||||||
傳回值 |
|
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 代碼取代該標記。
如果事件的 inImportance 超過 LoggingConfiguration 中指定的記錄門檻,系統就會記錄該事件。如果事件的重要性不符合目前的門檻,系統會捨棄該事件,且函式會傳回 0
做為產生的事件 ID。
此叫用變數會以隱含方式指定所有預設事件選項:
- 事件和呼叫當下的時間時間戳記
- 事件已標示為與撥打電話的裝置相關,
- 為獨立事件,與任何其他事件無關
- 將活動標示為非緊急
詳細說明 | |||||
---|---|---|---|---|---|
參數 |
|
||||
傳回 |
event_id_t 事件 ID (如果事件寫入記錄中),則事件 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 代碼取代該標記。
如果事件的 inImportance 超過 LoggingConfiguration 中指定的記錄門檻,系統就會記錄該事件。如果事件的重要性不符合目前的門檻,系統會捨棄該事件,且函式會傳回 0
做為產生的事件 ID。
這個叫用變數允許呼叫端設定任何 EventOptions
組合:
- 時間戳記,如果 0 預設為呼叫當下的目前時間,
- 事件來源 (事件來源和特徵 ID) 的「根」區段;如果為 NULL,則會預設為目前的裝置。事件會標示為與進行通話的裝置相關,
- 用來分組事件 ID 的相關事件 ID;當相關事件 ID 為 0 時,系統會將該事件標示為與任何其他事件無關;
- 緊急狀況;預設為非緊急。
詳細說明 | |||||||
---|---|---|---|---|---|---|---|
參數 |
|
||||||
傳回 |
event_id_t 事件 ID (如果事件寫入記錄中),則事件 ID 為 0。
|
LogEvent
event_id_t LogEvent( const EventSchema & inSchema, EventWriterFunct inEventWriter, void *inAppData )
透過回呼記錄事件。
這個函式會記錄以 EventWriterFunct 表示的事件,以及應用程式專屬的 appData
背景資訊。這個函式會寫入事件中繼資料,並呼叫 inEventWriter
參照 nl::Weave::TLV::TLVWriter 參照和 inAppData
結構定義,讓使用者程式碼直接將事件資料發至事件記錄檔。由於事件資料會直接序列化到目標緩衝區,因此這種形式的事件記錄功能可將記憶體用量降到最低。事件資料「必須」包含要解讀的結構定義標記 (由 inProfileID
和 inEventType
識別)。系統會忽略第一個元素的標記;事件記錄系統會用 eventData 代碼取代該標記。
如果事件的 inImportance 超過 LoggingConfiguration 中指定的記錄門檻,系統就會記錄該事件。如果事件的重要性不符合目前的門檻,系統會捨棄該事件,且函式會傳回 0
做為產生的事件 ID。
此叫用變數會以隱含方式指定所有預設事件選項:
- 事件和呼叫當下的時間時間戳記
- 事件已標示為與撥打電話的裝置相關,
- 為獨立事件,與任何其他事件無關
- 將活動標示為非緊急
詳細說明 | |||||||
---|---|---|---|---|---|---|---|
參數 |
|
||||||
傳回 |
event_id_t 事件 ID (如果事件寫入記錄中),則事件 ID 為 0。
|
LogEvent
event_id_t LogEvent( const EventSchema & inSchema, EventWriterFunct inEventWriter, void *inAppData, const EventOptions *inOptions )
透過回呼記錄事件,並提供選項。
這個函式會記錄以 EventWriterFunct 表示的事件,以及應用程式專屬的 appData
背景資訊。這個函式會寫入事件中繼資料,並呼叫 inEventWriter
參照 nl::Weave::TLV::TLVWriter 參照和 inAppData
結構定義,讓使用者程式碼直接將事件資料發至事件記錄檔。由於事件資料會直接序列化到目標緩衝區,因此這種形式的事件記錄功能可將記憶體用量降到最低。事件資料「必須」包含要解讀的結構定義標記 (由 inProfileID
和 inEventType
識別)。系統會忽略第一個元素的標記;事件記錄系統會用 eventData 代碼取代該標記。
如果事件的 inImportance 超過 LoggingConfiguration 中指定的記錄門檻,系統就會記錄該事件。如果事件的重要性不符合目前的門檻,系統會捨棄該事件,且函式會傳回 0
做為產生的事件 ID。
這個叫用變數允許呼叫端設定任何 EventOptions
組合:
- 時間戳記,如果 0 預設為呼叫當下的目前時間,
- 事件來源 (事件來源和特徵 ID) 的「根」區段;如果為 NULL,則會預設為目前的裝置。事件會標示為與進行通話的裝置相關,
- 用來分組事件 ID 的相關事件 ID;當相關事件 ID 為 0 時,系統會將該事件標示為與任何其他事件無關;
- 緊急狀況;預設為非緊急。
詳細說明 | |||||||||
---|---|---|---|---|---|---|---|---|---|
參數 |
|
||||||||
傳回 |
event_id_t 事件 ID (如果事件寫入記錄中),則事件 ID 為 0。
|
LogFreeform
event_id_t LogFreeform( ImportanceType inImportance, const char *inFormat, ... )
LogFreeform 會將任意形式字串發送至預設事件串流。
字串會封裝在偵錯事件結構中,結構與其他記錄字串相同。事件設定檔 ID 會是 Nest Debug 事件,事件類型為 kNestDebug_StringLogEntryEvent
。
詳細說明 | |||||
---|---|---|---|---|---|
參數 |
|
||||
傳回 |
event_id_t 事件 ID (如果事件寫入記錄中),則事件 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 )
將任意形式文字輸出為偵錯事件的輔助函式。
偵錯事件是包含記錄區域和任意形式文字的結構。
詳細說明 | |||||||
---|---|---|---|---|---|---|---|
參數 |
|
||||||
傳回值 |
|