There are four startup scenarios that requires synchronization between the Host and Module:
...
The diagrams in this section illustrate the Startup Synchronization sequence.
First Time Startup Configuration Sequence
Figure (1) illustrates the expected Startup Synchronization sequence following the first power up of the Module from its factory default state. In this diagram, the Configuration and Updates phase from the previous figure has been expanded to show key operations performed by the Host.
Anchor | ||||
---|---|---|---|---|
|
Startup Synchronization Request Retries
Figure (2) illustrates the sequence when the Module initializes before the Host (described in scenario (2)). In this scenario the Module starts sending Startup Sync Request periodically(every 5 seconds) to ensure that the Host receives the message even if the Host starts up slower than the Module. You can see in the figure, the Host Startup Ready command is sent after the Startup Sync Request. The Module is required to send a final Startup Sync Request after receiving the Host Startup Ready command. The Host can now start the Configuration sequence.
Upon the Host completing synchronization (by performing all necessary configurations and updates) it will transmit the Startup Sync Complete command to the Module, at which point the Module will initiate the full application, i.e., commence network activities, etc.
Anchor | ||||
---|---|---|---|---|
|
Subsequent Startup Configuration Sequence
Figure (3) illustrates the Startup Synchronization sequence after power up of a configured Module (i.e., subsequent to the state achieved in the previous figure 2). The application device type does not need to be defined as it is preserved in non-volatile memory. All configured endpoints, clusters and attributes are stored in volatile memory and must be re-configured after any soft or hard reset of the Module.
Anchor | ||||
---|---|---|---|---|
|
Host Startup Configuration Flow Chart
Figure (4) is a flow chart of how the Host may implement its startup sequence to synchronize with the Module.
Anchor | ||||
---|---|---|---|---|
|
...
*Startup Sync due to unexpected Host reset (Module Running State = Already Running)
The first byte of the Startup Sync Request Command(see payload for Startup Sync Request ) indicate the current running state of the module i.e., Running State indicates whether the Module has just powered up or is already running. If the Running State indicates the latter, it signifies that the Host experienced a unilateral reset. In this case, the Module will have retained all its application cache and attribute values, but will suspend network operations and return to the Startup Synchronization phase. The module will go through the following phases:
- Send out the current state (running, configured)
- Switch to Startup Sync phase
- Send out the current state (startup sync, configured)
Note: If the Running State of the Module is Already Running the Host is not required to configure endpoints, clusters and attributes and perform updates on the values of the latter. Instead, the Host should query attribute values and cached event data from the Module in order to synchronize its internal state with that of the application.