模块规则
每个扩展模块对应一种特定外设,提供相应的封装指令集。通过在指令中引入 module 属性,将指令名称 action 限定在模块范围内。例如:
json
{
"module": "lcd",
"action": "config"
}模块指令遵循以下规则:
模块的指令JSON对象固定包含
module属性,标识模块名称。例如{"module": "lcd"}表示LCD模块的指令。除
config指令外,模块的应答JSON对象固定包含module属性,标识应答所属的模块。与基础指令类似,扩展模块通过各自的
config指令进行配置。所有config指令(包括基础指令与各模块的config)返回的都是全局配置信息,包括所有硬件资源和扩展模块的配置。除非特别说明,模块先要由
config指令进行配置,之后才可使用其他的操作指令。模块使用与I2C或SPI设备类似的访问方式,即通过设备名访问。同一模块可能有多个实例(设备),例如多个舵机、多个数码管。多个实例在模块内通过设备名区分。当一个模块只有单一实例时,可以省略设备名。
- json
{ "module": "foo", "action": "config", "device": [ { "name": "bar", ... } ] }device- 设备配置对象数组,包含多个设备配置对象。name- 用户定义的设备名(实例的名称)。...- 模块的配置参数(该实例的配置)。
当仅有单一设备时,可以省略设备名,并使用 单元素数组简写:
json{ "module": "foo", "action": "config", "device": { ... } }