# 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]: +WRITE事件的形式

<span class="ne-text">0: 一个</span>`+WRITE`<span class="ne-text" style="font-size: 14px">事件包含一次写入的多个属性。不产生</span>`+XM_WRITE_START`<span class="ne-text">和</span>`+XM_WRITE_FINISHED`<span class="ne-text">事件</span>

<span class="ne-text" style="font-size: 14px">1:</span> <span class="ne-text">一个</span>`+WRITE`<span class="ne-text" style="font-size: 14px">事件包含一个属性,当写入开始时,产生</span>`+XM_WRITE_START`<span class="ne-text">事件,写入结束后,产生</span>`+XM_WRITE_FINISHED`<span class="ne-text">事件。</span>

#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 区。
更新时间: 2023/7/12 14:10:31