Mit Sammlungen den Überblick behalten Sie können Inhalte basierend auf Ihren Einstellungen speichern und kategorisieren.

nl::Weave::System::Ebene

#include <src/system/SystemLayer.h>

This provides access to timers according to the configured event handling model.

Fazit

Für WEAVE_SYSTEM_CONFIG_USE_SOCKETS wird die Benachrichtigung zur Ereignisbereitschaft über eine herkömmliche Umfrage/Auswahlimplementierung auf der Plattformanpassung verarbeitet.

Bei WEAVE_SYSTEM_CONFIG_USE_LWIP wird die Benachrichtigung zur Ereignisbereitschaft über Ereignisse / Nachrichten und plattform- und systemspezifische Webhooks für das Ereignis-/Nachrichtensystem verarbeitet.

Konstrukteur und Zerstörer

Layer(void)

Öffentliche Typen

EventHandler)(Object &aTarget, EventType aEventType, uintptr_t aArgument) Typdef
Error(*
TimerCompleteFunct)(Layer *aLayer, void *aAppState, Error aError) Typdef
void(*

Öffentliche Funktionen

AddEventHandlerDelegate(LwIPEventHandlerDelegate & aDelegate)
Error
Dadurch wird ein Ereignis-Handler-Delegat zur Systemschicht hinzugefügt, um die Fähigkeit zur Verarbeitung von LwIP-Ereignissen zu erweitern.
CancelTimer(TimerCompleteFunct aOnComplete, void *aAppState)
void
Diese Methode bricht einen Timer ab, der früher bis zum StartTimer() gestartet wurde.
DispatchEvent(Event aEvent)
Error
Dadurch wird das angegebene Ereignis zur Verarbeitung durch diese Instanz ausgelöst.
DispatchEvents(void)
Error
Dies ist ein syntaktischer Wrapper für einen plattformspezifischen Webhook, der eine Ereignisschleife betrifft. Es wird auf eine Warteschlange gewartet, die diese Instanz betreut. Ereignisse werden dann von dieser Warteschlange abgerufen und dann zur Verarbeitung ausgelöst.
GetPlatformData(void) const
void *
Damit werden alle clientspezifischen Plattformdaten zurückgegeben, die der Instanz zugewiesen sind, falls sie zuvor festgelegt wurden.
HandleEvent(Object & aTarget, EventType aEventType, uintptr_t aArgument)
Error
Damit wird die eigentliche Abfertigung und Verarbeitung des Weave System-Ereignisses implementiert.
HandlePlatformTimer(void)
Error
Verarbeiten Sie das Ereignis zum Ablaufen des Plattformtimers.
HandleSelectResult(int aSetSize, fd_set *aReadSet, fd_set *aWriteSet, fd_set *aExceptionSet)
void
I/O für einen ausgewählten Anruf verarbeiten.
Init(void *aContext)
Error
NewTimer(Timer *& aTimerPtr)
Error
PostEvent(Object & aTarget, EventType aEventType, uintptr_t aArgument)
Error
Dadurch wird ein Ereignis bzw. eine Nachricht des angegebenen Typs mit dem angegebenen Argument an die plattformspezifische Ereigniswarteschlange dieser Instanz gepostet.
PrepareSelect(int & aSetSize, fd_set *aReadSet, fd_set *aWriteSet, fd_set *aExceptionSet, struct timeval & aSleepTime)
void
Bereiten Sie die Beschreibungen für Dateien vor, mit denen select() arbeiten kann.
ScheduleWork(TimerCompleteFunct aComplete, void *aAppState)
Error
Plant eine Funktion mit einer Signatur, die mit TimerCompleteFunct identisch ist, und wird so schnell wie möglich im Weave-Thread ausgeführt.
SetPlatformData(void *aPlatformData)
void
Dadurch werden die angegebenen kundenspezifischen Plattformdaten auf die Instanz gesetzt, um sie später von der Clientplattform abzurufen.
Shutdown(void)
Error
StartTimer(uint32_t aMilliseconds, TimerCompleteFunct aComplete, void *aAppState)
Error
Diese Methode startet einen Timer mit einer Aufnahme.
State(void) const
LayerState
Gibt den aktuellen Status des Ebenenobjekts zurück.
WakeSelect(void)
void
Beenden Sie den E/A-Thread, der die Dateideskriptoren überwacht, indem Sie select() verwenden, indem Sie ein einzelnes Byte in die Wakepipe schreiben.

Öffentliche statische Funktionen

GetClock_Monotonic(void)
uint64_t
Gibt die monotone Systemdauer in Mikrosekunden zurück.
GetClock_MonotonicHiRes(void)
uint64_t
Gibt (möglicherweise) eine hochauflösende monotonische Systemzeit in Einheiten von Mikrosekunden zurück.
GetClock_MonotonicMS(void)
uint64_t
Gibt die monotone Systemzeit in Millisekunden zurück.
GetClock_RealTime(uint64_t & curTime)
Error
Gibt die aktuelle echte (Zivilzeit) Uhrzeit im Unix-Mikrozeitformat zurück.
GetClock_RealTimeMS(uint64_t & curTimeMS)
Error
Gibt die aktuelle echte (Zivilzeit) Uhrzeit im Unix-Millisekundenformat zurück.
SetClock_RealTime(uint64_t newCurTime)
Error
Legt die Plattform der aktuellen aktuellen Zivilzeit fest

Öffentliche Typen

EventHandler

Error(* EventHandler)(Object &aTarget, EventType aEventType, uintptr_t aArgument)

Timer: vollständige Wiedergabe

void(* TimerCompleteFunct)(Layer *aLayer, void *aAppState, Error aError)

Öffentliche Funktionen

AddEventHandlerDelegate

Error AddEventHandlerDelegate(
  LwIPEventHandlerDelegate & aDelegate
)

Dadurch wird ein Ereignis-Handler-Delegat zur Systemschicht hinzugefügt, um die Fähigkeit zur Verarbeitung von LwIP-Ereignissen zu erweitern.

Details
Parameter
[in] aDelegate
Eine nicht delegierte LwIP-Event-Handler-Struktur
Rückgabewerte
WEAVE_SYSTEM_NO_ERROR
Erfolg.
WEAVE_SYSTEM_ERROR_BAD_ARGS
Wenn der in einem Bevollmächtigten enthaltene Funktionszeiger NULL ist

Timer abbrechen

void CancelTimer(
  TimerCompleteFunct aOnComplete,
  void *aAppState
)

Diese Methode bricht einen Timer ab, der früher bis zum StartTimer() gestartet wurde.

Details
Parameter
[in] aOnComplete
Ein Verweis auf die Callback-Funktion, die beim Aufrufen von StartTimer() verwendet wird.
[in] aAppState
Ein Zeiger auf das Anwendungsstatusobjekt, das beim Aufrufen von StartTimer() verwendet wird.

Ereignis

Error DispatchEvent(
  Event aEvent
)

Dadurch wird das angegebene Ereignis zur Verarbeitung durch diese Instanz ausgelöst.

Die Unmarshallung des Typs und der Argumente aus dem Ereignis wird von einem plattformspezifischen Webhook verarbeitet, der für die eigentliche Weiterleitung an Layer::HandleEvent zurückkehrt.

Details
Parameter
[in] aEvent
Das plattformspezifische Ereignisobjekt zur Verarbeitung.
Rückgabe
WEAVE_SYSTEM_NO_ERROR bei Erfolg. Andernfalls ein bestimmter Fehler, der den Grund für die Initialisierung angibt.

Ereignisse

Error DispatchEvents(
  void
)

Dies ist ein syntaktischer Wrapper für einen plattformspezifischen Webhook, der eine Ereignisschleife betrifft. Es wird auf eine Warteschlange gewartet, die diese Instanz betreut. Ereignisse werden dann von dieser Warteschlange abgerufen und dann zur Verarbeitung ausgelöst.

Details
Rückgabe
WEAVE_SYSTEM_NO_ERROR bei Erfolg. Andernfalls gibt es einen bestimmten Fehler, der den Grund für die Initialisierung angibt.

Plattformdaten abrufen

void * GetPlatformData(
  void
) const 

Damit werden alle clientspezifischen Plattformdaten zurückgegeben, die der Instanz zugewiesen sind, falls sie zuvor festgelegt wurden.

Details
Rückgabe
Clientspezifische Plattformdaten, falls bereits festgelegt, andernfalls NULL.

HandleEvent

Error HandleEvent(
  Object & aTarget,
  EventType aEventType,
  uintptr_t aArgument
)

Damit wird die eigentliche Abfertigung und Verarbeitung des Weave System-Ereignisses implementiert.

Details
Parameter
[in,out] aTarget
Verweis auf das Ebenenobjekt, auf das das Ereignis ausgerichtet ist
[in] aEventType
Ereignis-/Nachrichtentyp, der verarbeitet werden soll
[in] aArgument
Das mit dem Ereignis bzw. der Nachricht verknüpfte Argument.
Rückgabewerte
WEAVE_SYSTEM_NO_ERROR
Erfolg.
WEAVE_SYSTEM_ERROR_UNEXPECTED_STATE
Wenn der Status des InetLayer-Objekts falsch ist.
WEAVE_SYSTEM_ERROR_UNEXPECTED_EVENT
Der Ereignistyp wird nicht erkannt.

HandlePlatformTimer

Error HandlePlatformTimer(
  void
)

Verarbeiten Sie das Ereignis zum Ablaufen des Plattformtimers.

Rufe nl::Weave::System::Timer::HandleAbgelaufenTimers auf, um abgelaufene Timer zu verarbeiten. Es wird davon ausgegangen, dass diese API nur in dem Thread aufgerufen wird, der das Weave System Layer-Objekt besitzt.

Details
Rückgabe
WEAVE_SYSTEM_NO_ERROR bei Erfolg, Fehlercode andernfalls.

Alias-Ergebnis

void HandleSelectResult(
  int aSetSize,
  fd_set *aReadSet,
  fd_set *aWriteSet,
  fd_set *aExceptionSet
)

I/O für einen ausgewählten Anruf verarbeiten.

Bei dieser Methode wird das ausstehende E/A-Ereignis an jedem aktiven Endpunkt registriert und dann die entsprechenden E/A-Verarbeitungsfunktionen für diese Endpunkte aufgerufen.

Details
Parameter
[in] aSetSize
Der Rückgabewert des ausgewählten Aufrufs.
[in] aReadSet
Ein Zeiger auf die Gruppe von Lesedeskriptoren.
[in] aWriteSet
Ein Zeiger auf den Satz der Schreibdeskriptoren.
[in] aExceptionSet
Ein Zeiger auf die Gruppe von Dateideskriptoren mit Fehlern.

Init

Error Init(
  void *aContext
)

Layer

 Layer(
  void
)

Neuer Timer

Error NewTimer(
  Timer *& aTimerPtr
)

Postevent

Error PostEvent(
  Object & aTarget,
  EventType aEventType,
  uintptr_t aArgument
)

Dadurch wird ein Ereignis bzw. eine Nachricht des angegebenen Typs mit dem angegebenen Argument an die plattformspezifische Ereigniswarteschlange dieser Instanz gepostet.

Details
Parameter
[in,out] aTarget
Ein Zeiger auf das Weave System Layer-Objekt, das die Post-Anfrage sendet.
[in] aEventType
Der Typ der Veranstaltung, die gepostet werden soll
[in,out] aArgument
Das Argument, das mit dem zu postenden Ereignis verknüpft ist
Rückgabewerte
WEAVE_SYSTEM_NO_ERROR
Erfolg.
WEAVE_SYSTEM_ERROR_UNEXPECTED_STATE
Wenn der Status des Layer-Objekts falsch ist.
WEAVE_SYSTEM_ERROR_NO_MEMORY
Die Ereigniswarteschlange ist bereits voll.
other
Plattformspezifische Fehler, die den Grund für den Fehler angeben

Vorbereiten

void PrepareSelect(
  int & aSetSize,
  fd_set *aReadSet,
  fd_set *aWriteSet,
  fd_set *aExceptionSet,
  struct timeval & aSleepTime
)

Bereiten Sie die Beschreibungen für Dateien vor, mit denen select() arbeiten kann.

Details
Parameter
[out] aSetSize
Der Bereich der Dateideskriptoren im Dateideskriptor.
[in] aReadSet
Ein Zeiger auf den Satz lesbarer Dateideskriptoren.
[in] aWriteSet
Ein Hinweis auf den Satz beschreibbarer Dateien.
[in] aExceptionSet
Ein Zeiger auf die Gruppe von Dateideskriptoren mit Fehlern.
[in] aSleepTime
Ein Verweis auf die maximale Schlafdauer.

Planungsarbeit

Error ScheduleWork(
  TimerCompleteFunct aComplete,
  void *aAppState
)

Plant eine Funktion mit einer Signatur, die mit TimerCompleteFunct identisch ist, und wird so schnell wie möglich im Weave-Thread ausgeführt.

Details
Parameter
[in] aComplete
Ein Zeiger auf eine Callback-Funktion, die aufgerufen werden soll, wenn dieser Timer ausgelöst wird.
[in] aAppState
Ein Zeiger auf ein Anwendungsstatusobjekt, das als Argument an die Callback-Funktion übergeben wird.
Rückgabewerte
WEAVE_SYSTEM_ERROR_UNEXPECTED_STATE
Wenn SystemLayer nicht initialisiert wurde.
WEAVE_SYSTEM_ERROR_NO_MEMORY
Wenn SystemLayer keinen neuen Timer zuweisen kann.
WEAVE_SYSTEM_NO_ERROR
Erfolg.

Daten der SetPlatform

void SetPlatformData(
  void *aPlatformData
)

Dadurch werden die angegebenen kundenspezifischen Plattformdaten auf die Instanz gesetzt, um sie später von der Clientplattform abzurufen.

Details
Parameter
[in] aPlatformData
Die kundenspezifischen Plattformdaten, die festgelegt werden sollen.

Heruntergefahren

Error Shutdown(
  void
)

StartTimer

Error StartTimer(
  uint32_t aMilliseconds,
  TimerCompleteFunct aComplete,
  void *aAppState
)

Diese Methode startet einen Timer mit einer Aufnahme.

Details
Parameter
[in] aMilliseconds
Ablaufzeit in Millisekunden.
[in] aComplete
Ein Zeiger auf die Funktion, die aufgerufen wird, wenn der Timer abläuft.
[in] aAppState
Ein Zeiger auf das Anwendungsstatusobjekt, das bei Ablauf des Timers verwendet wird.
Rückgabe
WEAVE_SYSTEM_NO_ERROR erfolgreich.
Rückgabe
WEAVE_SYSTEM_ERROR_NO_MEMORY Wenn der Timer nicht zugewiesen werden kann.
Rückgabe
Anderer Wert, der angibt, dass der Timer nicht gestartet werden konnte.

Status

LayerState State(
  void
) const 

Gibt den aktuellen Status des Ebenenobjekts zurück.

Ruhemodus

void WakeSelect(
  void
)

Beenden Sie den E/A-Thread, der die Dateideskriptoren überwacht, indem Sie select() verwenden, indem Sie ein einzelnes Byte in die Wakepipe schreiben.

Hinweis: Wenn WakeSelect() innerhalb von HandleSelectResult() aufgerufen wird, kann das Schreiben in die Wakepipe übersprungen werden, da der E/A-Thread bereits wach ist. Außerdem ist es uns nicht wichtig, wenn dieser Schreibvorgang höchstwahrscheinlich nicht erfolgreich ist, weil die Rohr voll ist. In diesem Fall wird der ausgewählte Aufrufthread aktiviert.

Öffentliche statische Funktionen

GetClock_Monotonic

uint64_t GetClock_Monotonic(
  void
)

Gibt die monotone Systemdauer in Mikrosekunden zurück.

Diese Funktion gibt eine verstrichene Zeit in Mikrosekunden seit einer beliebigen, plattformdefinierten Epoche zurück. Der zurückgegebene Wert wird zwischen Neustarts des Systems garantiert immer erhöht (d.h. niemals umschlossen). Außerdem wird die zugrunde liegende Zeitquelle in allen System-Schlafmodi, die keinen Neustart erfordern, garantiert aktiviert.

Für einige Plattformen kann ein Wert zurückgegeben werden, der die Zeit seit dem Start des Systems misst. darauf dürfen jedoch keine Anwendungen verwendet werden. Außerdem muss die Epoche für GetClock_Monotonic() nicht dieselbe sein wie bei allen anderen GetClock...-Funktionen. Daher können relative Zeitberechnungen nur für Werte ausgeführt werden, die von derselben Funktion zurückgegeben werden.

Diese Funktion ist auf allen Plattformen, die Threading verwenden, threadsicher.

Details
Rückgabe
Verstrichene Zeit in Mikrosekunden seit einer beliebigen plattformdefinierten Epoche.

GetClock_MonotonicHiResTM

uint64_t GetClock_MonotonicHiRes(
  void
)

Gibt (möglicherweise) eine hochauflösende monotonische Systemzeit in Einheiten von Mikrosekunden zurück.

Diese Funktion gibt eine verstrichene Zeit in Mikrosekunden seit einer beliebigen, plattformdefinierten Epoche zurück. Der zurückgegebene Wert wird zwischen Neustarts des Systems garantiert immer erhöht (d.h. niemals umschlossen). Der zugrunde liegende Timer ist jedoch nicht erforderlich, um während des Tiefschlafzustands fortlaufend zu reagieren.

Einige Plattformen können GetClock_MonotonicHiRes() mit einem hochauflösenden Timer implementieren, der in der Regel eine höhere Genauigkeit als GetClock_Monotonic() aufweist. Er unterliegt keinen schrittweisen Anpassungen (Uhranpassung). Systeme ohne einen solchen Timer können denselben Wert wie GetClock_Monotonic() zurückgeben.

Die Epoche, für die GetClock_MonotonicHiRes() zurückgegeben wird, muss nicht identisch mit der Dauer der anderen GetClock...-Funktionen sein, einschließlich GetClock_Monotonic().

Diese Funktion ist auf allen Plattformen, die Threading verwenden, threadsicher.

Details
Rückgabe
Verstrichene Zeit in Mikrosekunden seit einer beliebigen plattformdefinierten Epoche.

GetClock_MonotonicMS

uint64_t GetClock_MonotonicMS(
  void
)

Gibt die monotone Systemzeit in Millisekunden zurück.

Diese Funktion gibt eine verstrichene Zeit in Millisekunden seit einer beliebigen plattformdefinierten Epoche zurück. Der zurückgegebene Wert wird zwischen Neustarts des Systems garantiert immer erhöht (d.h. niemals umschlossen). Außerdem wird die zugrunde liegende Zeitquelle in allen System-Schlafmodi, die keinen Neustart erfordern, garantiert aktiviert.

Für einige Plattformen kann ein Wert zurückgegeben werden, der die Zeit seit dem Start des Systems misst. darauf dürfen jedoch keine Anwendungen verwendet werden. Außerdem muss die Epoche für GetClock_Monotonic() nicht dieselbe sein wie bei allen anderen GetClock...-Funktionen. Daher können relative Zeitberechnungen nur für Werte ausgeführt werden, die von derselben Funktion zurückgegeben werden.

Diese Funktion ist auf allen Plattformen, die Threading verwenden, threadsicher.

Details
Rückgabe
Verstrichene Zeit in Millisekunden seit einer beliebigen plattformdefinierten Epoche.

GetClock_RealTime-Programm

Error GetClock_RealTime(
  uint64_t & curTime
)

Gibt die aktuelle echte (Zivilzeit) Uhrzeit im Unix-Mikrozeitformat zurück.

Diese Methode gibt den lokalen Wert der aktuellen Plattform in Echtzeit zurück, ausgedrückt als Unix-Zeitwert in Mikrosekunden. Die zugrunde liegende Uhr wird garantiert mit einer Geschwindigkeit von mindestens ganzen Sekunden (Werte von 1.000.000) aktiviert, aber auf einigen Plattformen ist sie möglicherweise schneller.

Wenn die zugrunde liegende Plattform in Echtzeit erfasst werden kann, das System aber nicht synchronisiert ist, gibt GetClock_RealTime() den Fehler WEAVE_SYSTEM_ERROR_REAL_TIME_NOT_SYNCED zurück.

Auf Plattformen, die kein Echtzeit-Tracking ermöglichen, ist die Methode GetClock_RealTime() möglicherweise nicht vorhanden. Das führt zu einem Linkfehler für jede Anwendung, die darauf verweist. Alternativ können solche Plattformen eine Implementierung von GetClock_RealTime() bereitstellen, die immer den Fehler WEAVE_SYSTEM_ERROR_NOT_SUPPORTED zurückgibt.

Diese Funktion ist auf allen Plattformen, die Threading verwenden, threadsicher.

Details
Parameter
[out] curTime
Die aktuelle Uhrzeit als Unix-Zeit skaliert in Mikrosekunden.
Rückgabewerte
WEAVE_SYSTEM_NO_ERROR
Wenn die Methode erfolgreich war.
#WEAVE_SYSTEM_ERROR_REAL_TIME_NOT_SYNCED
Wenn die Plattform in Echtzeit erfasst werden kann, aber derzeit nicht synchronisiert ist.
#WEAVE_SYSTEM_ERROR_NOT_SUPPORTED
Wenn die Plattform nicht in Echtzeit erfasst werden kann.

GetClock_RealTimeMS

Error GetClock_RealTimeMS(
  uint64_t & curTimeMS
)

Gibt die aktuelle echte (Zivilzeit) Uhrzeit im Unix-Millisekundenformat zurück.

Diese Methode gibt den lokalen Wert der aktuellen Plattform als Unix-Zeitwert in Millisekunden zurück. Die zugrunde liegende Uhr wird garantiert mit einer Geschwindigkeit von mindestens ganzen Sekunden (Werte von 1.000.000) aktiviert, aber auf einigen Plattformen ist sie möglicherweise schneller.

Wenn die zugrunde liegende Plattform in Echtzeit erfasst werden kann, das System aber nicht synchronisiert ist, gibt GetClock_RealTimeMS() den Fehler WEAVE_SYSTEM_ERROR_REAL_TIME_NOT_SYNCED zurück.

Auf Plattformen, die kein Echtzeit-Tracking ermöglichen, ist die Methode GetClock_RealTimeMS() möglicherweise nicht vorhanden. Das führt zu einem Linkfehler für jede Anwendung, die darauf verweist. Alternativ können solche Plattformen eine Implementierung von GetClock_RealTimeMS() bereitstellen, die immer den Fehler WEAVE_SYSTEM_ERROR_NOT_SUPPORTED zurückgibt.

Diese Funktion ist auf allen Plattformen, die Threading verwenden, threadsicher.

Details
Parameter
[out] curTime
Die aktuelle Uhrzeit in Unix-Zeit in Millisekunden.
Rückgabewerte
WEAVE_SYSTEM_NO_ERROR
Wenn die Methode erfolgreich war.
#WEAVE_SYSTEM_ERROR_REAL_TIME_NOT_SYNCED
Wenn die Plattform in Echtzeit erfasst werden kann, aber derzeit nicht synchronisiert ist.
#WEAVE_SYSTEM_ERROR_NOT_SUPPORTED
Wenn die Plattform nicht in Echtzeit erfasst werden kann.

Satzuhrzeit

Error SetClock_RealTime(
  uint64_t newCurTime
)

Legt die Plattform der aktuellen aktuellen Zivilzeit fest

Anwendungen können diese Funktion aufrufen, um die Lokalisierung der aktuellen Plattform in Echtzeit festzulegen. Die neue aktuelle Uhrzeit wird als Unix-Zeitwert ausgedrückt, der auf Mikrosekunden skaliert ist.

Nach der Einstellung wird die zugrunde liegende Plattformuhr in Echtzeit mit einer Genauigkeit von mindestens ganzen Sekunden verfolgt.

Einige Plattformen schränken möglicherweise ein, welche Anwendungen oder Prozesse in Echtzeit festgelegt werden können. Wenn der Aufrufer nicht zum Ändern in Echtzeit berechtigt ist, gibt die Funktion SetClock_RealTime() den Fehler WEAVE_SYSTEM_ERROR_ACCESS_DENIED zurück.

Auf Plattformen, die kein Echtzeit-Tracking anbieten oder keine Möglichkeit bieten, Echtzeit in Echtzeit festzulegen, ist die Funktion SetClock_RealTime() möglicherweise nicht vorhanden. Das führt zu einem Linkfehler für jede App, die darauf verweist. Alternativ können solche Plattformen eine Implementierung von SetClock_RealTime() bereitstellen, die immer den Fehler WEAVE_SYSTEM_ERROR_NOT_SUPPORTED zurückgibt.

Diese Funktion ist auf allen Plattformen, die Threading verwenden, threadsicher.

Details
Parameter
[in] newCurTime
Die neue aktuelle Uhrzeit als Unix-Zeit skaliert in Mikrosekunden.
Rückgabewerte
WEAVE_SYSTEM_NO_ERROR
Wenn die Methode erfolgreich war.
#WEAVE_SYSTEM_ERROR_NOT_SUPPORTED
Wenn die Plattform nicht in Echtzeit erfasst werden kann.
#WEAVE_SYSTEM_ERROR_ACCESS_DENIED
Wenn die anrufende Anwendung nicht berechtigt ist, die aktuelle Zeit festzulegen.