Zustandsdiagramm
Im folgenden Diagram sehen Sie die einzelnen Zustände, in dem sich Ihr Evrlast-Gerät befinden kann. Jeder Zustand hat seine eigene Aufgabe. Unterhalb des Schaubilds werden die wichtigsten Zustände näher beschrieben.
stateDiagram-v2
Init: Init
Startup: Startup
note left of Startup
Power-On Modem
Initialize Modem
end note
Connect: Connect
note left of Connect
Connect to network
end note
Standby: Standby
FirmwareUpdate: FirmwareUpdate
note right of FirmwareUpdate
Download Firmware
end note
CollectData: CollectData
note left of CollectData
Activate Power for Layers
Read all sensors
Persist measurement to bufFs
end note
EvaluateRules: EvaluateRules
SendData: SendData
RemoteConfiguration: RemoteConfiguration
PrepareSleep: PrepareSleep
note left of PrepareSleep
Set wakeup Alarm
end note
DataFailure: DataFailure
note left of DataFailure
Format BufFs
end note
FailRecovery: FailRecovery
note left of FailRecovery
Set alarm (60s)
end note
Sleep: Sleep
note left of Sleep
Set Modem to PSM
Activate/Deativate Interrups
end note
Ringing: Ringing
note left of Ringing
Check for UDP command
end note
Wakeup: Wakeup
ManualTrigger: ManualTrigger
note left of ManualTrigger
setting forcedSend flag
end note
SensorWakeup: SensorWakeup
[*] --> Init: Power on
Init --> Startup
Startup --> Connect: Modem initialized
Connect --> Startup: Connection failed
Connect --> Standby: connected
Standby --> FirmwareUpdate: if config says firmware needed
FirmwareUpdate --> [*]: Reboot
Standby --> CollectData: configuration present
CollectData --> EvaluateRules
EvaluateRules --> SendData: if time is ready to send
SendData --> RemoteConfiguration: corrupt data detected server want new configuration
SendData --> PrepareSleep: succesfull
SendData --> DataFailure
DataFailure --> FailRecovery
SendData --> FailRecovery
RemoteConfiguration --> FailRecovery: if configuration failed
RemoteConfiguration --> PrepareSleep: if it just were an update
PrepareSleep --> Sleep
FailRecovery --> Sleep
Sleep --> Ringing: modem ringing
Ringing --> Sleep
Ringing --> Wakeup: command detected
Sleep --> Wakeup: rtc alarm
Sleep --> ManualTrigger: on button event
Sleep --> SensorWakeup: sensor interrupt
Wakeup --> Standby
FirmwareUpdate --> FailRecovery: failed
Startup
Im Startup Zustand werden wichtige Komponenten wie z.B. das Modem initialisiert und auf die bevorstehenden Aufgaben vorbereitet. Während Startup blinkt der LED-Ring(C) türkis.
Standby & Evaluate Rules
In Standby und Evaluate Rules werden die erstellten Echtzeit-Alarme geprüft. Wenn das Gerät erkennt, dass ein Echtzeit-Alarm ausgelöst werden muss, wird sofort in den Send Data Zustand gewechselt, um die Daten so schnell wie möglich an die Cloud zu versenden und den Alarm auszulösen.
Sleep
Im Sleep Zustand fällt das Gerät in den "Schlaf", um Energie zu sparen. Nach dem angegebenen Messintervall wacht das Gerät auf und begibt sich in den Collect Data Zustand.
Collect Data
Im Collect Data Zustand werden die Sensoren ausgelesen. Während Collect Data leuchtet der LED-Ring(C) gelb.
Send Data
Im Send Data Zustand werden die gemessenen Sensordaten per CoAP/HTTP an die Cloud Anwendung gesendet. Während Send Data leuchtet der LED-Ring(C) orange. Ist die Sendung der Daten erfolgreich, blinkt der LED-Ring(C) kurzzeitig grün auf. Ist die Sendung erfolglos, blink der LED-Ring(C) kurzzeitig rot auf und nach kurzer Zeit wird erneut probiert die Sensordaten zu versenden.
Firmware Update
Der Firmware Update Zustand wird eingenommen, wenn ein neues Firmware Update für das Gerät verfügbar ist. Hier wird dann per CoAP die Firmware in mehreren Sequenzen vom Server geladen und installiert. Wenn das Firmware update erfolgreich war, blinkt der LED-Ring(C) grün.