Full state machine of Cellular service could be found below.
In order to protect system of sudden blackout, GSM module has to be switched off below certain critical battery level. This way system voltage will not be dropped down when module is trying to acheive cellular network connection.
There are 3 modes of CSQ signal handling:
The host is constantly waiting to report data from the modem when the CSQ signal changes. This mode is active only when the user unlocks the keyboard or connects USB or connects the BT car kit.
The host waits for data to be reported from the modem when the CSQ signal changes until the data is received more frequently than parameter 'cellular::service::urcThreshold'. When the threshold is exceeded, the mode changes to Hybrid Pooling.
Data reporting is disabled. The host queries the modem for the current CSQ value every 15 minutes. Every time specified by the 'cellular::service::pollTime' parameter, the system enters Hybrid Reporting mode again.
Call request represents the string written by te user in the input window. It can be request of external phone number but also emergency call request,USSD code request or MMI request. The logic has to recognize the request and apply proper action.
Conditions for cellular to enter sleep mode:
Conditions for cellular to exit sleep mode:
Host Enables GSM Module to Enter into Power Saving Mode:
Host Enables GSM Module to Exit from Power Saving Mode:
GSM Module Enables Host to Exit from Power Saving Mode
Conditions for cellular to switch the phone mode
Connected mode
Do not Disturb
Offline mode
Messages only mode
| Connected | Do not Disturb | Offline | Message only | |
|---|---|---|---|---|
| Incoming calls | Allowed | Rejected | Not allowed | Rejected |
| Outgoing calls | Allowed | Allowed | Not allowed | Rejected |
| Incoming messages | Allowed | Allowed | Not allowed | Rejected |
| Outgoing messages | Allowed | Allowed | Not allowed | Partially allowed |