04. Operational Flow
This article provides an overview of the operation flow of the NEQTO Engine.
*The bold frame in the figure indicates the starting point of the operation mode description.
The NEQTO Engine has the following major modes.
Script Execution Mode
In this mode, the operation script is executed in the basic operation of the NEQTO Engine.Safe Mode
In this mode, if an exception such as a throw or a syntax error occurs while executing the script, wait for the script to be modified.Firmware Update Mode
This mode updates the NEQTO Engine software.
It also updates the firmware of the user device with the NEQTO Machine Driver.
The operation flow of each mode is described below.
Script Execution Mode
Normal Booting Operation
Script execution mode is the basic operation of the NEQTO Engine.
The NEQTO Engine will initialize after booting.
After initialization, connect to the network.
After connecting to the network, access NEQTO Console and authenticate.
When the authentication is completed, download and execute the script.
Booting Operation when unable to connect to a Network
If the NEQTO Engine cannot connect to the network when the NEQTO Engine starts, retry the network connection.
In this state, the operation script will not be executed.
Booting Operation when not registered to a Node
If the NEQTO Engine is started without registering to a node on NEQTO Console, authentication will fail.
In this state, the operation script will not be executed.
Script Reload Operation
"Script Reload" is the operation to terminate the script once and download and execute the updated script.
Basically, when all the main routines have completed and all resources waiting for callbacks such as timers and nqMQTT objects have been released, the script reload will be performed.
On the other hand, there are two ways to perform a script reload without waiting for resources to be released.
Use trigger command (push notification) from NEQTO Console
Perform "Reload Script" using the trigger command from NEQTO Console.
When the NEQTO Engine receives the "Reload Script" instruction from NEQTO Console, it forcibly terminates the script and downloads and executes the updated script.
It can be used to update the script or to intentionally restart the script remotely.Use a throw statement that contains a specific hashtag
By executing the throw statement below, you can start reloading spontaneously from within the script.
It can be used to check if the script is updated regularly or to intentionally restart the script.throw '#nqEXIT';
throw new Error('#nqEXIT');
Booting Operation when Express mode is enabled
In normal booting operation, network connection, certification, and script downloading are required until the scripts are launched. The Express mode is a feature that bypasses these prerequisites and allows scripts to be launched.
After the NEQTO Engine is booted, it will first attempt to connect to the network, but it is expected that it may take some time for the network to connect due to factors such as the wireless environment. However, there are times when scripts need to run as quickly as possible, and Express mode can be utilized for this purpose.
When Express mode is enabled, network connection wait timeout processing is enabled.
If the network is connected before the timeout, the normal booting operation continues: certification, script download, and script launch.
If a timeout occurs, certification, script download is bypassed and the previously downloaded script stored in the NEQTO Engine is launched. Even after the network connection wait timeout, the network connection process continues, and functions that require communication functions can be used from the time the network connection is established.
Express mode configuration
Express mode is enabled/disabled from the NEQTO Console. Refer to here.
Network connection wait timeout value
The timeout value can be changed using the .setExpressConf() method. The default value is 15
seconds. If 0
is specified, in effect, there is no waiting for a network connection, and the previously downloaded script can be launched immediately.
Safe Mode
Safe Mode Operation
If an exception such as a throw or a syntax error occurs while executing the script, wait for the script to be modified. This state is called safe mode.
Check and correct the script, and perform "Reload Script" using the trigger command from NEQTO Console.
When the NEQTO Engine receives the "Reload Script" instruction from NEQTO Console, it will download and execute the updated script.
In addition, the NEQTO Engine automatically checks if the script has been updated during safe mode. The check interval increases in the order of 1 minute, 2 minutes, 4 minutes, 8 minutes, 16 minutes, and 30 minutes. And finally it will be every 30 minutes.
Firmware Update Mode
User device firmware update operation using Machine Driver
When the NEQTO Engine receives the Machine Driver update instruction from NEQTO Console, it downloads and executes the Machine Driver script.
The Machine Driver script downloads the firmware image file and updates the user device firmware.
When the Machine Driver script processing is completed, the operation script execution returns.
NEQTO Engine software update operation
When the NEQTO Engine receives the firmware update instruction from NEQTO Console, it downloads and updates its own software.
When the software update is complete, the NEQTO Engine will automatically reboot and return to normal operation.
If the software has already been updated, the update process will be skipped.
Caution: Please do not turn off the power to the Linux device while updating the software.
About system time synchronization
The NEQTO Engine gets the time information from NEQTO Console and corrects the system time.
The timing of time synchronization is as follows.
Automatic system time synchronization is only performed when the automatic time correction setting is enabled.
This is disabled by default in NEQTO Engine for Linux.
Category | Phase | Time update timing |
---|---|---|
Auto | When NEQTO Console authentication is done | When the authentication sequence is executed, such as at NEQTO Engine startup |
Auto | During operation script execution | Regularly once a day |
Manual | When the time correction method of the nqService object is executed | Any timing |