~aleteoryx/muditaos

muditaos/module-services/service-cellular/doc/cellular_state_machine.puml -rw-r--r-- 2.0 KiB
a405cad6Aleteoryx trim readme 6 days ago
                                                                                
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
@startuml
skinparam BackgroundColor F0F0F0

[*] --> WaitForStartPermission

WaitForStartPermission -> PowerDown : PowerDownRequest && !isModemActive

WaitForStartPermission --> PowerUpRequest : PowerUpRequest

PowerDown --> PowerUpRequest : PowerUpRequest

PowerUpRequest --> PowerUpProcedure : board == T3 | Linux

PowerUpRequest -> StatusCheck : board == T4

StatusCheck --> PowerUpInPorgress : modemActive

StatusCheck -> PowerUpProcedure : !modemActive

PowerUpProcedure --> CellularConfProcedure : hotStart

PowerUpProcedure --> PowerUpInPorgress : coldStart || event: modem ACTIVE

PowerUpInPorgress --> BaudDetect

BaudDetect -> CellularConfProcedure : Success

BaudDetect --> ModemFatalFailure : Failure

CellularConfProcedure --> AudioConfigurationProcedure : Success

CellularConfProcedure -> Failed : Failed

AudioConfigurationProcedure -> AudioConfigurationProcedure : Failed

AudioConfigurationProcedure --> Failed : Baud setup fail | radio enabling/disabling fail

AudioConfigurationProcedure ---> Idle : reset called

AudioConfigurationProcedure --> APNConfProcedure : Success

APNConfProcedure --> SanityCheck

SanityCheck --> ModemOn : Success

SanityCheck --> ModemFatalFailure : Failure

ModemOn -> URCReady

Event:CellularSimProcedure --> SimSelect 

Event:SIM_READY --> SimInit

SimInit --> Failed : Failure

SimInit --> Ready : Success

Event:PowerDownDeregistering --> PowerDownStarted : state != PowerDownWaiting

Event:PowerDownDeregistered --> PowerDownWaiting

Event:PowerDownRequest -> PowerDownWaiting

PowerDownWaiting ---> PowerDown : (If T3 && timeout) \n || Event:modemInactive

PowerDown --> PowerUpRequest : nextPowerStateChangeAwaiting \n && nextPowerState == on

BaudDetect ---> PowerDownWaiting : nextPowerStateChangeAwaiting \n && nextPowerState == off

Event:PowerUpProcedureComplete --> CellularConfProcedure : board == T3 || Linux

Event:modemActive --> PowerDown : state != PowerUpProcedure

Event:powerDownRequest --> PowerDown : state != PowerDown,PowerDownWaiting,\n PowerUpProcedure,PowerUpInProgress

@enduml