nl:: Weave:: Profiles:: DataManagement_Current
Dieser Namespace umfasst alle Schnittstellen in Weave für das WDM-Profil (Weave Data Management), die derzeit für die Produktion unterstützt werden.
Zusammenfassung
Typedefs |
|
---|---|
CommandFlags
|
typedef. |
DataVersion
|
typedef.uint64_t
|
EventProcessor
|
typedef.void *
|
EventWriterFunct)(nl::Weave::TLV::TLVWriter &ioWriter, uint8_t inDataTag, void *appData)
|
typedef. Eine Funktion, die das Element „eventData“ für das Ereignisprotokollierungs-Subsystem bereitstellt. |
FetchExternalEventsFunct)(EventLoadOutContext *aContext)
|
typedef. Ein Funktionsprototyp für Plattform-Callbacks zum Abrufen von Ereignisdaten. |
GenericTraitSinkCatalog
|
typedef. |
GenericTraitSourceCatalog
|
typedef. |
ImportanceType
|
typedef. Die Wichtigkeit des Logeintrags. |
IteratorCallback)(void *aTraitInstance, TraitDataHandle aHandle, void *aContext)
|
typedef.void(*
Iterator für Trait-Handles. |
LoggingBufferHandler)(void *inAppState, PacketBuffer *inBuffer)
|
typedef. |
NotifyExternalEventsDeliveredFunct)(ExternalEvents *inEv, event_id_t inLastDeliveredEventID, uint64_t inRecipientNodeID)
|
typedef.void(*
Ein Funktionsprototyp für einen Callback, der aufgerufen wird, wenn externe Ereignisse an den Remote-Abonnenten gesendet werden. |
NotifyExternalEventsEvictedFunct)(ExternalEvents *inEv)
|
typedef.void(*
Ein Funktionsprototyp für einen Callback, der aufgerufen wird, wenn externe Ereignisse aus den Zwischenspeichern entfernt werden. |
PropertyDictionaryKey
|
typedef.uint16_t
|
PropertyPathHandle
|
typedef.uint32_t
Ein PropertyPathHandle ist ein eindeutiger 32-Bit-Hash-Wert eines WDM-Pfads relativ zum Stamm einer Trait-Instanz. |
PropertySchemaHandle
|
typedef.uint16_t
|
SchemaVersion
|
typedef.uint16_t
|
SingleResourceSinkTraitCatalog
|
typedef. |
SingleResourceSourceTraitCatalog
|
typedef. |
TimestampType
|
typedef. Die Gültigkeit und den Typ des Zeitstempels, der in EventOptions enthalten ist. |
TraitDataHandle
|
typedef.uint16_t
|
duration_t
|
nl::Weave::Profiles::DataManagement_Current::duration_tuint32_t
Typ zur Beschreibung der Dauer in Millisekunden. |
event_id_t
|
nl::Weave::Profiles::DataManagement_Current::event_id_tuint32_t
Der Typ der Ereignis-ID. |
timestamp_t
|
nl::Weave::Profiles::DataManagement_Current::timestamp_tuint32_t
Typ, mit dem der Zeitstempel in Millisekunden beschrieben wird. |
utc_timestamp_t
|
nl::Weave::Profiles::DataManagement_Current::utc_timestamp_tuint64_t
Typ, mit dem der UTC-Zeitstempel in Millisekunden beschrieben wird. |
Variablen |
|
---|---|
sInstance
|
|
sLogFileName = "topazlog"[]
|
char
|
Funktionen |
|
---|---|
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)
|
Eine Hilfsfunktion, die ein bereits serialisiertes eventdata-Element in den Ereignispuffer übersetzt.
|
GetPropertyDictionaryKey(PropertyPathHandle aHandle)
|
PropertyDictionaryKey
|
GetPropertySchemaHandle(PropertyPathHandle aHandle)
|
PropertySchemaHandle
|
IsNullPropertyPathHandle(PropertyPathHandle aHandle)
|
bool
|
IsRootPropertyPathHandle(PropertyPathHandle aHandle)
|
bool
|
IsVersionNewer(const DataVersion & aVersion, const DataVersion & aReference)
|
bool
Dies ist eine optimierte Implementierung des Algorithmus zum Vergleichen von Versionen.
|
IsVersionNewerOrEqual(const DataVersion & aVersion, const DataVersion & aReference)
|
bool
|
Locate(TraitDataHandle aTraitDataHandle, const TraitCatalogBase< TraitDataSink > *aDataSinkCatalog)
|
Dienstprogrammfunktion, die eine TraitUpdatableDataSink in einem TraitDataSink-Katalog findet.
|
LogEvent(const EventSchema & inSchema, nl::Weave::TLV::TLVReader & inData)
|
Ereignis aus einem vorserialisierten Formular protokollieren.
|
LogEvent(const EventSchema & inSchema, nl::Weave::TLV::TLVReader & inData, const EventOptions *inOptions)
|
Protokolliert ein Ereignis aus einem vorserialisierten Formular mit zusätzlichen Optionen.
|
LogEvent(const EventSchema & inSchema, EventWriterFunct inEventWriter, void *inAppData)
|
Protokolliere ein Ereignis über einen Callback.
|
LogEvent(const EventSchema & inSchema, EventWriterFunct inEventWriter, void *inAppData, const EventOptions *inOptions)
|
Protokolliere ein Ereignis über einen Callback mit Optionen.
|
LogFreeform(ImportanceType inImportance, const char *inFormat, ...)
|
LogFreeform gibt einen freien String an den Standard-Ereignisstream aus.
|
LookForElementWithTag(const nl::Weave::TLV::TLVReader & aSrcReader, const uint64_t aTagInApiForm, nl::Weave::TLV::TLVReader *apDstReader)
|
|
PlainTextWriter(TLVWriter & ioWriter, uint8_t inDataTag, void *appData)
|
Eine Hilfsfunktion zum Ausgeben eines freien Texts als Debug-Ereignis.
|
PlainTextWriter(::nl::Weave::TLV::TLVWriter & ioWriter, uint8_t inDataTag, void *appData)
|
Eine Hilfsfunktion zum Ausgeben eines freien Texts als Debug-Ereignis.
|
operator!=(const ResourceIdentifier & lhs, const ResourceIdentifier & rhs)
|
bool
|
operator==(const ResourceIdentifier & lhs, const ResourceIdentifier & rhs)
|
bool
|
Gewerkschaften |
|
---|---|
nl:: |
Die Union, die einen Anwendungs-Set-System- oder UTC-Zeitstempel bereitstellt. |
Aufzählungen
@100
@100
Tags für das kNestDebug_StringLogEvent.
Attribute | |
---|---|
kTag_Message
|
Ein String, der die eigentliche Debug-Meldung enthält. |
kTag_Region
|
Ein unsigniertes 32-Bit-Objekt, das die Logregion angibt, d.h. das Modul, auf das sich die Lognachricht bezieht. |
@101
@101
Tags für das kNestDebug_TokenizedLogEntryEvent.
Attribute | |
---|---|
kTag_Args
|
Ein Array von Argumenten, die zusammen mit der Tokennachricht gesendet werden sollen. |
kTag_Token
|
Ein vorzeichenloser 32-Bit-Wert, der dem Token entspricht. |
@102
@102
Tags für persistente Ereignisse.
@104
@104
Die Nachrichtentypen im WDM-Profil.
Diese Werte werden in der Datenverwaltungsspezifikation angegeben.
@105
@105
WDM-spezifische Statuscodes
@147
@147
@95
@95
Logging-Einstellungs-Tags.
Attribute | |
---|---|
kTag_CurrentImportance
|
Aktuelle Logging-Wichtigkeit; der Wert ist vom Typ "WichtiganceType". |
kTag_ImportanceExpiration
|
Zeitpunkt in UTC-Sekunden, wenn die aktuellen erweiterten Logging-Einstellungen auf die Standardwerte zurückgesetzt werden. |
kTag_LoggingDestination
|
Eine URL, die das Ziel des Protokolluploads angibt. |
kTag_MaximumLogUploadInterval
|
Maximale Dauer in Sekunden zwischen automatisch ausgelösten Logupload-Versuchen. |
kTag_MinimumLogUploadInterval
|
Minimale Dauer in Sekunden zwischen automatisch ausgelösten Logupload-Versuchen. |
kTag_TraitLoggingImportance
|
Ein optionales Array, das ausgewählte Profile selektiv den höheren Logging-Ebenen zuordnet. Jedes Element im Array hat eine bestimmte Form (profile,path,loggingwichtigkeit), um das Logging selektiv von einer Teilmenge des Systems zu optimieren. Die Protokollierungspriorität für erhöhte Profile ist nur dann von Bedeutung, wenn die Protokollierungspriorität die der aktuellen Wichtigkeit überschreitet und die gleiche Ablaufzeit wie für die aktuelle Wichtigkeit gilt. |
@96
@96
Tags für Logging-Funktionen.
Attribute | |
---|---|
kTag_LogBufferingCapacity
|
Eine vorzeichenlose 32-Bit-Ganzzahl, die die Pufferkapazität des Logs in kB angibt. |
kTag_LoggingVolume
|
Eine vorzeichenlose 32-Bit-Ganzzahl, die das erwartete Logging-Volumen in kB/Tag angibt. |
kTag_SupportedLogTransports
|
Ein Array unterstützter Logtransportmechanismen. |
kTag_SupportsNonVolatileStorage
|
Ein boolescher Wert, der angibt, ob das Gerät nichtflüchtigen Protokollspeicher unterstützt. |
kTag_SupportsPerTraitVerbosity
|
Ein boolescher Wert, der angibt, ob das Gerät Ausführlichkeitseinstellungen nach Trait unterstützt. |
kTag_SupportsStreaming
|
Ein boolescher Wert, der angibt, ob das Gerät Streaming-Logs unterstützt. |
@97
@97
Tags für Ereignismetadaten.
Die vollständige Semantik der Tag-Werte finden Sie in der Spezifikation für das Ereignisdesign.
Attribute | |
---|---|
kTag_EventData
|
Optional. Die Ereignisdaten selbst. Wenn das Feld leer ist, wird standardmäßig eine leere Struktur verwendet. |
kTag_EventDeltaSystemTime
|
Internes WDM-Tag: Zeitunterschied zum vorherigen Ereignis in der Codierung |
kTag_EventDeltaUTCTime
|
Internes WDM-Tag: Zeitunterschied zum vorherigen Ereignis in der Codierung |
kTag_EventID
|
Sequenznummer des Ereignisses, ausgedrückt als 64-Bit-Anzahl ohne Vorzeichen. Die Reihenfolge muss aufeinanderfolgen. Sprünge in der Sequenz weisen auf Ereignislücken hin. |
kTag_EventImportance
|
Bedeutung des Ereignisses |
kTag_EventResourceID
|
Optional. Der Wert ist die ID der Ressource, auf die sich das Ereignis bezieht. Wenn er weggelassen wird, entspricht der Wert dem Wert von kTag_EventSource. |
kTag_EventSource
|
NodeID des Geräts, das das Ereignis generiert hat. |
kTag_EventSystemTimestamp
|
Optional. System-Zeitstempel des Ereignisses in Millisekunden. |
kTag_EventTraitInstanceID
|
Optional die Instanz des Traits, die das Ereignis generiert hat. |
kTag_EventTraitProfileID
|
Obligatorisch. Vorzeichenlose 32-Bit-Ganzzahl, die der ProfileID des Merkmals entspricht. |
kTag_EventType
|
Obligatorisch. Vorzeichenlose 16-Bit-Ganzzahl, die für diesen Ereignistyp der wdl.event.id entspricht. |
kTag_EventUTCTimestamp
|
Optional. UTC-Zeitstempel des Ereignisses in Millisekunden. |
kTag_ExternalEventStructure
|
Internes Tag für externe Ereignisse. Wird niemals über ein Kabel übertragen und sollte niemals außerhalb der Weave-Bibliothek verwendet werden. |
kTag_RelatedEventID
|
Optional. ID eines Ereignisses, auf das sich dieses Ereignis bezieht. Wenn keine Angabe gemacht wird, entspricht der Wert dem Wert von kTag_EventID. |
kTag_RelatedEventImportance
|
Optional. Bedeutung des zugehörigen Ereignisses Wenn keine Angabe gemacht wird, entspricht der Wert dem Wert von „kTag_EventImportance“. |
@98
@98
Profildefinitionen für das Debug-Trait.
@99
@99
Ereignistypen für die Eigenschaft „Nest Debug“.
Attribute | |
---|---|
kNestDebug_StringLogEntryEvent
|
Ein Ereignis für eine Debug-Meldung für einen String im freien Format. |
kNestDebug_TokenizedHeaderEntryEvent
|
Ein Ereignis zum Übermitteln der tokenisierten Header-Informationen. |
kNestDebug_TokenizedLogEntryEvent
|
Ein Ereignis für eine tokenisierte Debug-Nachricht. |
CommandFlags
CommandFlags
Attribute | |
---|---|
kCommandFlag_ActionTimeValid
|
Legt fest, wann die Aktionszeit gültig ist. |
kCommandFlag_ExpiryTimeValid
|
Legt fest, wann die Ablaufzeit gültig ist. |
kCommandFlag_InitiationTimeValid
|
Legt fest, wann die Initialisierungszeit gültig ist. |
kCommandFlag_IsOneWay
|
Wird festgelegt, wenn der Befehl in eine Richtung erfolgt. |
kCommandFlag_MustBeVersionValid
|
Legt fest, wann das Versionsfeld gültig ist. |
ImportanceType
ImportanceType
Die Wichtigkeit des Logeintrags.
Mithilfe der Wichtigkeit können Ereignisse gefiltert werden, bevor sie tatsächlich in das Protokoll ausgegeben werden. Sobald das Ereignis im Protokoll eingetragen ist, können wir es nicht mehr aus dem Protokoll entfernen. Die Prioritätsstufe dient dazu, die Speicherung von Ereignissen zu priorisieren. Wenn ein Ereignis von hoher Wichtigkeit zu einem kompletten Zwischenspeicher hinzugefügt wird, werden Ereignisse nach Wichtigkeit (und Alter) sortiert, um das Ereignis aufzunehmen. Daher haben Prioritätsstufen nur einen relativen Wert. Wenn ein System nur eine Prioritätsstufe verwendet, werden Ereignisse nur nach dem Alter gelöscht, z. B. ein Ringpuffer.
Attribute | |
---|---|
Debug
|
Die Debug-Wichtigkeit kennzeichnet Logeinträge, die für die Entwickler des Systems von Interesse sind. Sie wird hauptsächlich in der Entwicklungsphase verwendet. Logs zur Debug-Wichtigkeit werden bei der Bandbreiten- oder Energiebudgets der eingeschränkten Geräte nicht berücksichtigt. Daher dürfen sie nur über einen begrenzten Zeitraum in Produktionssystemen verwendet werden. |
Info
|
Die Infowichtigkeit kennzeichnet Logeinträge, die zusätzliche Einblicke und Diagnosen zum laufenden System bieten. Die Informations-Logging-Ebene kann über einen längeren Zeitraum in einem Produktionssystem oder als Standard-Logebene in einem Feldtest verwendet werden. Auf den eingeschränkten Geräten müssen die mit dem Info-Level protokollierten Einträge in der Bandbreite und dem Arbeitsspeicherbudget berücksichtigt werden, aber nicht im Energiebudget. |
Production
|
Die Wichtigkeit der Produktion bezeichnet die Logeinträge, die für die laufende Überwachung und Wartung des Nest-Systems verwendet werden. Auf eingeschränkten Geräten müssen Einträge, die mit der Wichtigkeit "Produktion" protokolliert werden, im Energie- und Speicherbudget berücksichtigt werden, da sie erwartungsgemäß immer vom Gerät protokolliert und ausgelagert werden. |
ProductionCritical
|
Die produktionskritische Bedeutung bezieht sich auf Ereignisse, deren Verlust sich direkt auf kundenseitige Funktionen auswirken würde. Anwendungen können den Verlust von produktionskritischen Ereignissen nutzen, um einen Systemausfall anzuzeigen. Auf eingeschränkten Geräten müssen Einträge, die mit der Wichtigkeitsstufe „Produktion kritisch“ protokolliert werden, im Energie- und Arbeitsspeicherbudget berücksichtigt werden, da davon ausgegangen wird, dass sie immer protokolliert und vom Gerät ausgelagert werden. |
LoggingManagementStates
LoggingManagementStates
Attribute | |
---|---|
kLoggingManagementState_Holdoff
|
Logauslagerung ist abgeschlossen. wird das Protokoll erst neu gestartet, wenn der Holdoff abläuft. |
kLoggingManagementState_Idle
|
Keine Log-Auslagerung läuft. Die Log-Auslagerung kann ohne Einschränkungen beginnen. |
kLoggingManagementState_InProgress
|
Logauslagerung läuft. |
kLoggingManagementState_Shutdown
|
Kann keinen Logging-Vorgang ausführen. |
TimestampType
TimestampType
Die Gültigkeit und den Typ des Zeitstempels, der in EventOptions enthalten ist.
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)
Eine Funktion, die das Element „eventData“ für das Ereignisprotokollierungs-Subsystem bereitstellt.
Von Funktionen dieses Typs wird erwartet, dass sie das Element „eventData“ für das Subsystem der Ereignisprotokollierung bereitstellen. Die Funktionen dieses Typs werden aufgerufen, nachdem das Ereignissubsystem alle erforderlichen Ereignismetadaten generiert hat. Die Funktion wird mit einem nl::Weave::TLV::TLVWriter-Objekt aufgerufen, an das sie ein einzelnes TLV-Element mit dem Tag „kTag_EventData“ ausgibt. der Wert dieses Elements MUSS eine Struktur mit den Ereignisdaten sein. Die Ereignisdaten selbst müssen mit Kontext-Tags strukturiert sein.
Details | |||||||
---|---|---|---|---|---|---|---|
Parameter |
|
||||||
Rückgabewerte |
|
PlainTextWriter
EventWriterTLVCopy
FetchExternalEventsFunct
WEAVE_ERROR(* FetchExternalEventsFunct)(EventLoadOutContext *aContext)
Ein Funktionsprototyp für Plattform-Callbacks zum Abrufen von Ereignisdaten.
Ähnlich wie „FetchEventsDa“ gibt diese Abruffunktion alle Ereignisse von EventLoadOutContext.mStartingEventID bis ExternalEvents.mLastEventID zurück.
Der Kontextzeiger ist vom Typ "FetchExternalEventsContext". Dazu gehört auch EventLoadOutContext mit einigen Hilfsvariablen für das Format der TLV. Sie enthält auch einen Zeiger auf die Struktur ExternalEvents, die bei der Registrierung des Callbacks erstellt wurde. Gibt den Ereignis-ID-Bereich für den Callback an.
Nach der Rückgabe von der Funktion sollte EventLoadOutContext.mCurrentEventID die erste Ereignis-ID widerspiegeln, die nicht erfolgreich in den TLV-Zwischenspeicher geschrieben wurde. Die Plattform muss den Ereignisheader und die Ereignisdaten im TLV-Schreiber im richtigen Format schreiben, das im EventLogging-Protokoll angegeben ist. Außerdem muss die Plattform die Eindeutigkeit von Ereignissen und Zeitstempeln beibehalten.
Alle TLV-Fehler sollten an höhere Ebenen weitergegeben werden. Wenn beispielsweise der Speicherplatz im Zwischenspeicher ausgeht, wird eine gesendete Nachricht ausgelöst, gefolgt von einem weiteren Aufruf des Callbacks mit der jeweils verbleibenden Ereignis-ID.
Details | |||||||||
---|---|---|---|---|---|---|---|---|---|
Rückgabewerte |
|
GenericTraitSinkCatalog
GenericTraitCatalogImpl< TraitDataSink > GenericTraitSinkCatalog
GenericTraitSourceCatalog
GenericTraitCatalogImpl< TraitDataSource > GenericTraitSourceCatalog
ImportanceType
enum nl::Weave::Profiles::DataManagement_Current::ImportanceType ImportanceType
Die Wichtigkeit des Logeintrags.
Mithilfe der Wichtigkeit können Ereignisse gefiltert werden, bevor sie tatsächlich in das Protokoll ausgegeben werden. Sobald das Ereignis im Protokoll eingetragen ist, können wir es nicht mehr aus dem Protokoll entfernen. Die Prioritätsstufe dient dazu, die Speicherung von Ereignissen zu priorisieren. Wenn ein Ereignis von hoher Wichtigkeit zu einem kompletten Zwischenspeicher hinzugefügt wird, werden Ereignisse nach Wichtigkeit (und Alter) sortiert, um das Ereignis aufzunehmen. Daher haben Prioritätsstufen nur einen relativen Wert. Wenn ein System nur eine Prioritätsstufe verwendet, werden Ereignisse nur nach dem Alter gelöscht, z. B. ein Ringpuffer.
IteratorCallback
void(* IteratorCallback)(void *aTraitInstance, TraitDataHandle aHandle, void *aContext)
Iterator für Trait-Handles.
LoggingBufferHandler
WEAVE_ERROR(* LoggingBufferHandler)(void *inAppState, PacketBuffer *inBuffer)
NotifyExternalEventsDeliveredFunct
void(* NotifyExternalEventsDeliveredFunct)(ExternalEvents *inEv, event_id_t inLastDeliveredEventID, uint64_t inRecipientNodeID)
Ein Funktionsprototyp für einen Callback, der aufgerufen wird, wenn externe Ereignisse an den Remote-Abonnenten gesendet werden.
Wenn die externen Ereignisse an einen Remote-Abonnenten gesendet werden, sendet die Engine eine Benachrichtigung an den externen Ereignisanbieter. Der Callback enthält das Ereignis der letzten übermittelten ID und die ID des Abonnenten, der das Ereignis empfangen hat.
Details | |||||||
---|---|---|---|---|---|---|---|
Parameter |
|
NotifyExternalEventsEvictedFunct
void(* NotifyExternalEventsEvictedFunct)(ExternalEvents *inEv)
Ein Funktionsprototyp für einen Callback, der aufgerufen wird, wenn externe Ereignisse aus den Zwischenspeichern entfernt werden.
Wenn das externe Ereignisobjekt aus dem Zwischenspeicher für ausgehende Nachrichten entfernt wird, sendet die Engine eine Benachrichtigung an den externen Ereignisanbieter. Der Callback enthält das externe Ereignis, das entfernt werden soll.
Details | |||
---|---|---|---|
Parameter |
|
PropertyDictionaryKey
uint16_t PropertyDictionaryKey
PropertyPathHandle
uint32_t PropertyPathHandle
Ein PropertyPathHandle ist ein eindeutiger 32-Bit-Hash-Wert eines WDM-Pfads relativ zum Stamm einer Trait-Instanz.
Sie besteht aus zwei Teilen:
- Eine niedrigere 16-Bit-Zahl, die dem statischen Teil des Schemas zugeordnet ist.
- Wenn sich die unteren 16-Bits auf einen Pfad innerhalb eines Wörterbuchelements beziehen, ist eine obere 16-Bit-Zahl vorhanden, die den mit diesem Element verknüpften Wörterbuchschlüssel darstellt. Wenn sich die unteren 16 Bits auf ein Element beziehen, das kein Wörterbuch ist, sollten die oberen 16 Bit 0 sein.
Einige Merkmale:
- Jedes Trait hat einen eigenen Handle-Bereich für den Eigenschaftspfad.
- Jeder eindeutige WDM-Unterpfadpfad hat einen ähnlich eindeutigen PropertyPathHandle.
- PropertyPathHandles werden von einem Trait-Compiler aus IDL automatisch generiert (vorerst manuell erledigt) und als Aufzählungsliste in der entsprechenden Headerdatei der entsprechenden Trait dargestellt.
- Bei diesem Konstrukt muss die Anwendungslogik nie direkt mit WDM-Pfaden umgehen. Ihre Interaktionen mit WDM erfolgen ausschließlich über diese Aliasse.
- Es gibt zwei reservierte Werte für Pfad-Handles, die eine bestimmte Bedeutung haben:
- 0 steht für NULL. Alias
- 1 gibt einen Handle an, der auf den Stamm der Trait-Instanz verweist.
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
Die Gültigkeit und den Typ des Zeitstempels, der in EventOptions enthalten ist.
TraitDataHandle
uint16_t TraitDataHandle
duration_t
uint32_t duration_t
Typ zur Beschreibung der Dauer in Millisekunden.
event_id_t
uint32_t event_id_t
Der Typ der Ereignis-ID.
timestamp_t
uint32_t timestamp_t
Typ, mit dem der Zeitstempel in Millisekunden beschrieben wird.
utc_timestamp_t
uint64_t utc_timestamp_t
Typ, mit dem der UTC-Zeitstempel in Millisekunden beschrieben wird.
Variablen
sInstance
LoggingManagement sInstance
sLogFileName
char sLogFileName[] = "topazlog"
Funktionen
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 )
Eine Hilfsfunktion, die ein bereits serialisiertes eventdata-Element in den Ereignispuffer übersetzt.
Details | |||||||
---|---|---|---|---|---|---|---|
Parameter |
|
||||||
Rückgabewerte |
|
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 )
Dies ist eine optimierte Implementierung des Algorithmus zum Vergleichen von Versionen.
Auf Clientseite ist eine vom Dienst empfangene Version immer die neueste.
IsVersionNewerOrEqual
bool IsVersionNewerOrEqual( const DataVersion & aVersion, const DataVersion & aReference )
Suchen
TraitUpdatableDataSink * Locate( TraitDataHandle aTraitDataHandle, const TraitCatalogBase< TraitDataSink > *aDataSinkCatalog )
Dienstprogrammfunktion, die eine TraitUpdatableDataSink in einem TraitDataSink-Katalog findet.
Details | |||||
---|---|---|---|---|---|
Parameter |
|
||||
Rückgabe |
Ein Verweis auf TraitUpdatableDataSink. NULL, wenn das Handle nicht vorhanden ist oder auf eine nicht aktualisierbare TraitDataSink verweist.
|
LogEvent
event_id_t LogEvent( const EventSchema & inSchema, nl::Weave::TLV::TLVReader & inData )
Ereignis aus einem vorserialisierten Formular protokollieren.
Die Funktion protokolliert ein Ereignis, das als nl::Weave::TLV::TLVReader dargestellt wird. Das bedeutet, dass die Darstellung der Ereignisdaten bereits im Speicher serialisiert ist, der nl::Weave::TLV::TLVReader zugrunde liegt. nl::Weave::TLV::TLVReader muss mindestens ein einzelnes Datenelement enthalten. Dieses Element muss eine Struktur sein. Das erste aus dem Reader ausgelesene Element wird als Ereignisdaten behandelt und im Ereignisprotokoll gespeichert. Die Ereignisdaten MÜSSEN Kontext-Tags enthalten, die innerhalb des durch inProfileID und inEventType identifizierten Schemas interpretiert werden müssen. Das Tag des ersten Elements wird ignoriert. ersetzt das Ereignisprotokollierungssystem es durch das Tag „eventData“.
Das Ereignis wird protokolliert, wenn seine Wichtigkeit den in LoggingConfiguration angegebenen Protokollierungsschwellenwert überschreitet. Wenn die Wichtigkeit des Ereignisses den aktuellen Grenzwert nicht erreicht, wird es verworfen und die Funktion gibt eine 0
als resultierende Ereignis-ID zurück.
In dieser Variante des Aufrufs werden implizit alle Standardereignisoptionen angegeben:
- wird das Ereignis mit der aktuellen Uhrzeit zum Zeitpunkt des Aufrufs versehen.
- wird gekennzeichnet, dass das Ereignis zu dem Gerät gehört, das den Anruf tätigt,
- die Veranstaltung eigenständig ist und nicht mit anderen Ereignissen in Verbindung steht.
- der Termin als nicht dringend gekennzeichnet ist,
Details | |||||
---|---|---|---|---|---|
Parameter |
|
||||
Rückgabe |
event_id_t: Die Ereignis-ID, wenn das Ereignis in das Protokoll geschrieben wurde, andernfalls 0.
|
LogEvent
event_id_t LogEvent( const EventSchema & inSchema, nl::Weave::TLV::TLVReader & inData, const EventOptions *inOptions )
Protokolliert ein Ereignis aus einem vorserialisierten Formular mit zusätzlichen Optionen.
Die Funktion protokolliert ein Ereignis, das als nl::Weave::TLV::TLVReader dargestellt wird. Das bedeutet, dass die Darstellung der Ereignisdaten bereits im Speicher serialisiert ist, der nl::Weave::TLV::TLVReader zugrunde liegt. nl::Weave::TLV::TLVReader muss mindestens ein einzelnes Datenelement enthalten. Dieses Element muss eine Struktur sein. Das erste aus dem Reader ausgelesene Element wird als Ereignisdaten behandelt und im Ereignisprotokoll gespeichert. Die Ereignisdaten MÜSSEN Kontext-Tags enthalten, die innerhalb des durch inProfileID und inEventType identifizierten Schemas interpretiert werden müssen. Das Tag des ersten Elements wird ignoriert. ersetzt das Ereignisprotokollierungssystem es durch das Tag „eventData“.
Das Ereignis wird protokolliert, wenn seine Wichtigkeit den in LoggingConfiguration angegebenen Protokollierungsschwellenwert überschreitet. Wenn die Wichtigkeit des Ereignisses den aktuellen Grenzwert nicht erreicht, wird es verworfen und die Funktion gibt eine 0
als resultierende Ereignis-ID zurück.
Diese Variante des Aufrufs erlaubt dem Aufrufer, eine beliebige Kombination aus EventOptions
festzulegen:
- Zeitstempel, wenn 0 standardmäßig auf die aktuelle Zeit zum Zeitpunkt des Aufrufs eingestellt ist,
- „Stamm“ Abschnitt der Ereignisquelle (Ereignisquelle und Trait-ID) Wenn NULL, wird standardmäßig das aktuelle Gerät verwendet. wird gekennzeichnet, dass das Ereignis zu dem Gerät gehört, das den Anruf tätigt,
- eine zugehörige Ereignis-ID zum Gruppieren von Ereignis-IDs Wenn die zugehörige Ereignis-ID 0 ist, wird das Ereignis so markiert, dass es nicht mit anderen Ereignissen in Zusammenhang steht.
- Dringlichkeit; standardmäßig nicht dringend.
Details | |||||||
---|---|---|---|---|---|---|---|
Parameter |
|
||||||
Rückgabe |
event_id_t: Die Ereignis-ID, wenn das Ereignis in das Protokoll geschrieben wurde, andernfalls 0.
|
LogEvent
event_id_t LogEvent( const EventSchema & inSchema, EventWriterFunct inEventWriter, void *inAppData )
Protokolliere ein Ereignis über einen Callback.
Die Funktion protokolliert ein Ereignis, das als EventWriterFunct dargestellt wird, und einen anwendungsspezifischen appData
-Kontext. Die Funktion schreibt die Ereignismetadaten und ruft die inEventWriter
mit einer nl::Weave::TLV::TLVWriter-Referenz und einem inAppData
-Kontext auf, sodass der Nutzercode die Ereignisdaten direkt an das Ereignisprotokoll senden kann. Diese Form der Ereignisprotokollierung minimiert den Arbeitsspeicherverbrauch, da Ereignisdaten direkt im Zielpuffer serialisiert werden. Die Ereignisdaten MÜSSEN Kontext-Tags enthalten, die innerhalb des durch inProfileID
und inEventType
angegebenen Schemas interpretiert werden können. Das Tag des ersten Elements wird ignoriert. ersetzt das Ereignisprotokollierungssystem es durch das Tag „eventData“.
Das Ereignis wird protokolliert, wenn seine Wichtigkeit den in LoggingConfiguration angegebenen Protokollierungsschwellenwert überschreitet. Wenn die Wichtigkeit des Ereignisses den aktuellen Grenzwert nicht erreicht, wird es verworfen und die Funktion gibt eine 0
als resultierende Ereignis-ID zurück.
In dieser Variante des Aufrufs werden implizit alle Standardereignisoptionen angegeben:
- wird das Ereignis mit der aktuellen Uhrzeit zum Zeitpunkt des Aufrufs versehen.
- wird gekennzeichnet, dass das Ereignis zu dem Gerät gehört, das den Anruf tätigt,
- die Veranstaltung eigenständig ist und nicht mit anderen Ereignissen in Verbindung steht.
- der Termin als nicht dringend gekennzeichnet ist,
Details | |||||||
---|---|---|---|---|---|---|---|
Parameter |
|
||||||
Rückgabe |
event_id_t: Die Ereignis-ID, wenn das Ereignis in das Protokoll geschrieben wurde, andernfalls 0.
|
LogEvent
event_id_t LogEvent( const EventSchema & inSchema, EventWriterFunct inEventWriter, void *inAppData, const EventOptions *inOptions )
Protokolliere ein Ereignis über einen Callback mit Optionen.
Die Funktion protokolliert ein Ereignis, das als EventWriterFunct dargestellt wird, und einen anwendungsspezifischen appData
-Kontext. Die Funktion schreibt die Ereignismetadaten und ruft die inEventWriter
mit einer nl::Weave::TLV::TLVWriter-Referenz und einem inAppData
-Kontext auf, sodass der Nutzercode die Ereignisdaten direkt an das Ereignisprotokoll senden kann. Diese Form der Ereignisprotokollierung minimiert den Arbeitsspeicherverbrauch, da Ereignisdaten direkt im Zielpuffer serialisiert werden. Die Ereignisdaten MÜSSEN Kontext-Tags enthalten, die innerhalb des durch inProfileID
und inEventType
angegebenen Schemas interpretiert werden können. Das Tag des ersten Elements wird ignoriert. ersetzt das Ereignisprotokollierungssystem es durch das Tag „eventData“.
Das Ereignis wird protokolliert, wenn seine Wichtigkeit den in LoggingConfiguration angegebenen Protokollierungsschwellenwert überschreitet. Wenn die Wichtigkeit des Ereignisses den aktuellen Grenzwert nicht erreicht, wird es verworfen und die Funktion gibt eine 0
als resultierende Ereignis-ID zurück.
Diese Variante des Aufrufs erlaubt dem Aufrufer, eine beliebige Kombination aus EventOptions
festzulegen:
- Zeitstempel, wenn 0 standardmäßig auf die aktuelle Zeit zum Zeitpunkt des Aufrufs eingestellt ist,
- „Stamm“ Abschnitt der Ereignisquelle (Ereignisquelle und Trait-ID) Wenn NULL, wird standardmäßig das aktuelle Gerät verwendet. wird gekennzeichnet, dass das Ereignis zu dem Gerät gehört, das den Anruf tätigt,
- eine zugehörige Ereignis-ID zum Gruppieren von Ereignis-IDs Wenn die zugehörige Ereignis-ID 0 ist, wird das Ereignis so markiert, dass es nicht mit anderen Ereignissen in Zusammenhang steht.
- Dringlichkeit; standardmäßig nicht dringend.
Details | |||||||||
---|---|---|---|---|---|---|---|---|---|
Parameter |
|
||||||||
Rückgabe |
event_id_t: Die Ereignis-ID, wenn das Ereignis in das Protokoll geschrieben wurde, andernfalls 0.
|
LogFreeform
event_id_t LogFreeform( ImportanceType inImportance, const char *inFormat, ... )
LogFreeform gibt einen freien String an den Standard-Ereignisstream aus.
Der String wird in eine Debug-Ereignisstruktur gekapselt, die strukturell identisch mit anderen protokollierten Strings ist. Die Ereignisprofil-ID ist die eines Nest Debug-Ereignisses und der Ereignistyp ist kNestDebug_StringLogEntryEvent
.
Details | |||||
---|---|---|---|---|---|
Parameter |
|
||||
Rückgabe |
event_id_t: Die Ereignis-ID, wenn das Ereignis in das Protokoll geschrieben wurde, andernfalls 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 )
Eine Hilfsfunktion zum Ausgeben eines freien Texts als Debug-Ereignis.
Das Debug-Ereignis ist eine Struktur mit einer Logregion und einem freien Text.
Details | |||||||
---|---|---|---|---|---|---|---|
Parameter |
|
||||||
Rückgabewerte |
|
PlainTextWriter
WEAVE_ERROR PlainTextWriter( ::nl::Weave::TLV::TLVWriter & ioWriter, uint8_t inDataTag, void *appData )
Eine Hilfsfunktion zum Ausgeben eines freien Texts als Debug-Ereignis.
Das Debug-Ereignis ist eine Struktur mit einer Logregion und einem freien Text.
Details | |||||||
---|---|---|---|---|---|---|---|
Parameter |
|
||||||
Rückgabewerte |
|