Revision as of 11:18, 1 March 2013

Commands

This page references all generic commands used by the platform. The commands are serialized and sent using M3DA Protocol.

This is an "applicative level" specification opposed to the "serialization level" specification from the M3DA Protocol document.

In order to send command from the server to the device, or from the device to the server, an M3DA data writing is to be done on a node path, encapsulated into an M3DA::Message object as stated into the protocol specification.

Command Name

Command Argumentsname -> description (type)

Comments

Main

ReadNode

"1" -> path.of.the.node.to.read (string),

...

"n" -> path.of.the.node.to.read (string)

Read a node or several nodes and its/their children (if any) from a tree. The node can be either terminal (a leaf: to get the value of a property) or have sub nodes. In the later case the content of the node and all its sub nodes will be transmitted. This command provokes the sending of Data Messages that will contain the data associated to that node. The data of the message is composed of a map that hold the properties as key, and their value as value.

If a node contains a child, Data Messages will be sent recursively in order to present all the data of the sub nodes as well. If the specified node does not exist or contains no data, a nil value will be sent.

Note: path.of.the.node.to.read is a path that is not necessarily linked to the device or asset topology. In particular, the assetID is not repeated in that path. Ex: Request bearer configuration it should use: "ReadNode config.network.bearers"

Connect

Ask the Mihini Agent to connect to the platform server.
The command must be addressed to the device (M3DA::Message.path = "@sys").

Reboot

Ask the device or one of its asset to reboot. The device or the asset is designated thanks to the path of the M3DA::Message that wrap this command.

( depending on the differences between defaultconfig.lua and persisted config, this operation may impact: server url, hearbeat, ..., or any ReadyAgent config parameter)

Treemgr mapping are reset: it will be regenerated from .map files on next boot

Persisted M3DA data: asset and device data are reset

Applications installed in ApplicationContainer are erased

Update module:

deletion of any update in progress

software version list is cleared

Not impacted modules/functionalities:

M3DA security credentials are not cleared

Note:

This command is dependent on ReadyAgent integration, so ResetToFactoryDefault command implementation can differ from a device to another to fit integration needs, ReadyAgent product provides a generic implementation matching previous remarks

-> If this is a boolean value and it is true, it requests the agent to be restarted with a default timeout (6 seconds)
-> If this is a number and it is greater than zero, it requests the agent to be restarted in "restart" seconds

Software Update

ExecuteScript

"url" | "1" -> url to retrieve the Lua script (string)

signature | "2" -> signature of the script (string)

-> url to retrieve the Lua script The Lua script can be either Lua source file or precompiled Lua bytecode file. -> signature of Lua Script The signature will fit the security level defined within the ReadyAgent. First step: Signature will be MD5 hash, and will be sent in hexa in an ascii string.

SoftwareUpdate

"url" | "1" -> url to download the package (string)

"signature" | "2" -> signature of the package (string)

-> url provided by the server where the Software Update Package can be downloaded. Must not end by a trailing "/" character, unless archive name contains one (not recommended) -> signature of the Software Update Package The signature will fit the security level defined within the ReadyAgent. First step: Signature will be MD5 hash, and will be sent in hexa in an ascii string which size must be 32 chars (prefixing zeros chars must be sent!), and in lower case only.

The url where the logs are to be uploaded. Has to be of the form "ftp://" to request ftp upload, else "http://" for HTTP Post upload string equal to: "ram" to retrieve logs in ram (i.e. only from current ReadyAgent execution), or "flash" to get the logs from flash space Note: The content of flash or ram buffer depends on the log policy defined in ReadyAgent Config