*** Hearrate task state machine *** GoToSleep StopMeasurement ┌───────────────┐ ┌─────────────────────────────┐ ▼ │ ▼ │ ┌──────┐ ┌──┴──────┐ ┌─────┴─────┐ │ │ WakeUp │ │ StartMeasurement │ │ │ Idle ├───────►│ Running ├─────────────────►│ Measuring │ │ │ │ │ │ │ └──────┘ └─────────┘ └─────┬─────┘ ▲ ▲ │ │ StopMeasurement │ │ ├──────────────────────────────────┐ │ │ GoToSleep │ │ WakeUp │ │ │ ┌────────────────────────────┼─────────┤ │ │ │ │ │ ▼ ┌──┴─────┴──────────┐ ┌┴─────────┴──────────┐ │ │ measured │ │ │ BackgroundWaiting │◄───────────────┤ BackgroundMeasuring │ │ │ │ │ └┬─────────────────┬┘ └─────────────────────┘ │ ▲ │ ▲ └────────┘ └────────────────────────────┘ wait time < interval wait time >= interval