# MXMESH 指令集
#AT+XMSVC
设置和查询 MXMesh 属性数据库中的服务。
#指令格式
AT+XMSVC? +XMSVC:<svc-idx>,<type> OK
AT+XMSVC=<svc-idx>,<type> OK
#参数
参数 | 类型 | 描述 |
svc-idx | Number | 服务编号,0-7 |
type | String | 服务类型,2位的十六进制数的字符串形式 |
#说明
- 若 AT+SYSSTORE=1,配置更改将保存在 KV 区。
- 设置相同服务编号,会移除之前的同编号服务。
- 如果有多个服务,查询会显示多行,每行显示一个服务。
#AT+XMATT
设置和查询 MXMesh 属性数据库中的属性。
#指令格式
AT+XMATT? +XMATT:<att-idx>,<type>,<rw>,<upload>,<format>,[length],[cp] OK
AT+XMATT=<att-idx>,<type>,<rw>,<upload>,<format>,[length],[cp] OK
#参数
参数 | 类型 | 描述 |
att-idx | Number | 属性编号,0-7 |
type | String | 服务类型,4位的十六进制数的字符串形式 |
rw | Number | 与配置文件中的 "OPT" 键功能相同 功能选项,数字的各个BIT位表示不同的功能,功能可以多选。 BIT(0): 属性可以被读取。 BIT(1): 属性可以被写入。 BIT(2):核心属性,读取属性时,如果不包含读取的属性类型,则在应答时用核心属性作为读取的应答。 |
upload | Number | 与配置文件中的 "UP" 键功能相同。 通过AT指令更新(AT+XMUPDATE指令)属性值时,模组自动将新值发送到组播地址(D003)或者网关地址的行为定义: 0: NONE,关闭更新后自动发送属性的功能。 1: TRIGGER,立即发送到组播地址(D003),通常用于触发联动,并且更新相同的值后,可以连续触发联动。 2: LOGGER,不管属性是否改变,经过随机延时,再通过单播发送给网关。如果网关不存在,就不发送。 3: PUBLISH,经过随机延时,并且再次比较属性值是否改变后,再发送到组播地址。 4: STATE TRIGGER,如果设备值改变,立即发送到组播地址。因此和TRIGGER相比,不能连续触发相同的联动。 |
format | Number/String | 与配置文件中的 "F" 键功能相同。如果是数字类型,表示一种单一的属性类型,0-13。 如果是字符串类型,字符形式为"format,format,...",表示属性类型是结构体,结构体公的元素的格式由format表示 属性定义: 0: BOOLEAN, 1: UINT8, 2: UINT16, 3: UINT32, 4: INT8, 5: INT16, 6: INT32 7: UINT16_1F, 8: UINT16_2F, 9: INT16_1F, 10: INT16_2F, 11: FLOAT, 12: DATA 13: STRING |
length | Number | 如果属性格式是DATA或者STRING,表示属性的数据长度。其他属性格式数据不需要。 |
cp | Number | 可选,0/空:普通属性,1:控制点属性 注意:虽然可以定义控制定属性,但是当前还不支持对这类属性的读写。 |
#说明
- 若 AT+SYSSTORE=1,配置更改将保存在 KV 区。
- 如果有多个属性,查询会显示多行,每行显示一个属性。
#示例
AT+XMATT? +XMATT:0,"0100",7,3,0,1,0 +XMATT:1,"010A",3,3,1,1,0 +XMATT:2,"0116",3,3,2,2,0 +XMATT:3,"0119",3,3,4,1,0 +XMATT:4,"010E",3,3,9,2,0 +XMATT:5,"0102",3,3,13,16,0 +XMATT:6,"0160",3,3,"8 8 11",8,0 OK AT+XMATT=0,"0100",7,3,0,1,0 OK
#AT+XMINS
设置和查询 MXMesh 属性数据库中的属性实例。
#指令格式
AT+XMINS? +XMINS:<svc-idx>,<att-idx> OK
AT+XMINS=<svc-idx>,<att-idx>[,<svc-idx>,<att-idx>...] OK
#参数
参数 | 类型 | 描述 |
svc-idx | Number | 服务编号,0-7 |
att-idx | Number | 属性编号,0-7 |
#说明
- 若 AT+SYSSTORE=1,配置更改将保存在 KV 区。
- 设置属性示例时,需要将所有属性一次性全部写入,而不是每次设置一个实例。
- 查询属性示例时,如果有多个实例,查询会显示多行,每行显示一个实例。
#示例
AT+XMINS? +XMINS:0,0,0 +XMINS:1,0,1 +XMINS:2,0,2 +XMINS:3,0,3 +XMINS:4,0,4 +XMINS:5,0,5 +XMINS:6,0,6 OK AT+XMINS=0,0,0,1,0,2,0,3,0,4,0,5,0,6 OK
#AT+XMINSPRI
设置和查询 MXMesh 属性数据库中的主属性实例。主属性实例会包含在心跳包中,为了保证网络性能,设置为主属性实例的数据长度不应超过5个字节,以防止心跳包出现分片。
#指令格式
AT+XMINSPRI? +XMINSPRI:<ins-idx> OK
AT+XMINSPRI=<ins-idx> OK
#参数
参数 | 类型 | 描述 |
ins-idx | Number | 属性实例编号 |
#说明
- 若 AT+SYSSTORE=1,配置更改将保存在 KV 区。
#AT+XMUPDATE
更新属性实例的值。
#指令格式
AT+XMUPDATE=[<ins-idx>, <value>,...] OK
#参数
参数 | 类型 | 描述 |
ins-idx | Number | 属性实例编号 |
value | String | 属性值 |
#说明
- 需要在MXMesh系统运行起来之后才能执行,可以设置成启动自动运行,或者发送
AT+XMSTART
命令来启动 MXMesh 系统。在启动 MXMesh 系统之前,应保证属性数据库已经完成设置。 - 一条指令中可以包含多个“属性/值”来更新多个属性的数据。
- 属性值按照真实值填写,不需要根据属性格式转换成在MXMesh协议中实际传输的值。例如一个格式是uint16_1f的属性,如要发送数值23.4,value应该是"23.4"而不是"234"。
- 如果属性格式是Struct类型,value中包含多个属性,这些属性用空格隔开。即,属性值的格式是"value1 value2 value3..."。
- 如果属性格式是String类型,属性值可以是任意的字符。
- 如果属性格式是Data类型,属性值是由16进制数据转换成的字符串,例如:发送 0x12,0x34 两个字节的数据,value值是长度为4个字节的字符:"1234"。
#示例
AT+XMUPDATE=0,"0",1,"1",2,"4332",3,"-33",4,"26.9" OK AT+XMUPDATE=5,"Hello world" //更新字符串类型属性 OK AT+XMUPDATE=6,"220 2.5 550" //更新结构体类型属性 OK
#AT+XMSEND
主动发送属性实例。
#指令格式
AT+XMSEND=<addr>,[<ins-idx>] OK
#参数
参数 | 类型 | 描述 |
addr | Number | 0: 组播地址 D003。 1: 网关的单播地址,必须在设备发现网关后才能执行成功。 |
ins-idx | Number | 属性实例编号。如果为空,则发送所有属性。 |
#说明
- 发送到组播地址 D003 数据可以到达网络中的其他所有设备,只要 XMMesh 启动后就行执行。不仅可以通过网关上报到云端还可以触发本地设备的联动。
- 发送到网关的单播地址,必须在设备发现网关后才能执行成功。单播发送数据,带有等待应答并且重发机制,所以消息的发送成功率比组播发送高。
#AT+XMSHADOW
获取存储在 XMMesh 数据库中的属性实例包含的数据。用查询指令获取所有属性值,用设置指令获取特定的属性实例的属性值。
#指令格式
AT+XMSHADOW? +XMSHADOW:[<ins-idx>, <value>,...] OK
AT+XMSHADOW=<ins-idx>,[<ins-idx>,...] +XMSHADOW:[<ins-idx>, <value>,...] OK
#参数
参数 | 类型 | 描述 |
ins-idx | Number | 属性实例编号。如果为空,则发送所有属性。 |
value | String | 属性值 |
#示例
AT+XMSHADOW? +XMSHADOW:0,"0",1,"1",2,"4332",3,"-33",4,"26.9",5,"Hello world",6,"220.00 2.50 550.000000" OK AT+XMSHADOW=4 +XMSHADOW:4,"26.9" OK
#AT+XMERASE
将配网信息从Flash中抹除。
#指令格式
AT+XMERASE OK
#AT+XMPROV
让设备进入配网模式,并且配网信息从Flash中抹除。执行完当前命令后,会引起模组重启。
#指令格式
AT+XMPROV OK
#AT+FACTORY
将所有配置信息从Flash中抹除,恢复到出厂状态。
#指令格式
AT+FACTORY OK
#AT+XMSTART
启动 MXMesh 系统,并且给属性实例赋予初始值。
#指令格式
AT+XMSTART OK
AT+XMSTART=[<ins-idx>, <value>,...] OK
#参数
参数 | 类型 | 描述 |
ins-idx | Number | 属性实例编号 |
value | String | 属性值 |
#说明
- 设置指令中,给属性实例赋予初值的方法。请参考 AT+XMUPDATE 中更新属性值的方法
- 如果 MXMesh 属性数据库设备不正确会导致 XMMesh 系统运行异常。
#示例
AT+XMSTART=0,"0",1,"1",2,"4332",3,"-33",4,"26.9" OK +XM_STARTED
#AT+XMAUTO
设置在设备启动是,时候自动启动 MXMesh 系统。
#指令格式
AT+XMAUTO=<auto> OK
#参数
参数 | 类型 | 描述 |
auto | Number | 0: 上电不自动启动 MXMesh 系统 1: 上电自动启动 MXMesh 系统 |
#说明
- 如果 MXMesh 属性数据库设备不正确会导致 XMMesh 系统运行异常。
#AT+XMEVENT
查询和设置 MXMesh 系统的事件反馈
#指令格式
AT+XMEVENT? +XMEVENT:<event> OK
AT+XMEVENT=<event> OK
#参数
参数 | 类型 | 描述 |
event | Number | BIT[0]:
|
#AT+BLENAME
查询/设置 Bluetooth LE 设备名称
#指令格式
命令:
AT+BLENAME? +BLENAME:<device_name> OK
响应:
AT+BLENAME=<device_name> OK
#参数
参数 | 类型 | 描述 |
device_name | String | MXMersh 设备名称,最大长度:32字节,默认名称为 “xMesh Node vx.x”。x.x是固件版本。 |
#说明
- 若 AT+SYSSTORE=1,配置更改将保存在 KV 区。
#示例
AT+BLENAME="Hello" OK AT+BLENAME? +BLENAME:"Hello" OK
#AT+BLEADDR
查询设备的BLE公共静态地址,也是设备自带的mac地址。
#查询命令
命令:
AT+BLEADDR? +BLEADDR:<public_addr> OK
#参数
参数 | 类型 | 描述 |
public_addr | String | BLE公共静态地址,也是设备自带的mac地址。字符串格式,用 |
#示例
AT+BLEADDR? +BLEADDR:"D0:BA:E4:8F:07:E2" OK
#AT+FOGKEY
设置和查询 FogCloud 云平台的接入凭证。
#指令格式
AT+FOGKEY? +FOGKEY:<PK>,<PS>,<DN>,<DS> OK
AT+FOGKEY=<PK>,<PS>,<DN>,<DS> OK
#参数
参数 | 类型 | 描述 |
PK | String | Product key |
PS | String | Product secret |
DN | String | Device name |
DS | String | Device secret |
#说明
- 若 AT+SYSSTORE=1,配置更改将保存在 KV 区。
- 若设备同时写入Fogkey和Linkkey,那么在设备配网发现广播包中包含的是飞燕平台的产品类型。
#示例
AT+FOGKEY="e64e9016","48b7954abfa5456fb6846a6b7f454603","00000000","3044720584c05fa1ec0aa6fe57ebcba3" OK AT+FOGKEY? +FOGKEY:"e64e9016","48b7954abfa5456fb6846a6b7f454603","00000000","3044720584c05fa1ec0aa6fe57ebcba3" OK
#AT+LINKKEY
设置和查询 阿里云生活平台(飞燕) 的接入凭证。
#指令格式
AT+LINKKEY? +LINKKEY:<PK>,<DN>,<DS>,<PS>,<PID> OK
AT+LINKKEY=<PK>,<DN>,<DS>,<PS>,<PID> OK
#参数
参数 | 类型 | 描述 |
PK | String | Product key |
DN | String | Device name |
DS | String | Device secret |
PS | String | Product secret |
PID | String | Product ID |
#说明
- 若 AT+SYSSTORE=1,配置更改将保存在 KV 区。