# YAT 通信协议与指令集

#一、软件协议

串口协议自下而上分为SLIP层、IMC层。SLIP层负责原始数据的封包和解包。IMC层负责业务逻辑处理。

#1.1 SLIP(Serial Line Internet Packet)层

...

START

PAYLOAD

END

...

START

PAYLOAD

END

...

1 Byte

2...1026 Byte

1 Byte

1 Byte

2...1026 Byte

1 Byte

START

起始符,标志数据包的开始,定义十六进制:0xC0

PAYLOAD

载荷数据。

其中:

  • 0xC0 ****要替换为 0xDB 0xDC
  • 0xDB ****要替换为 0xDB 0xDD
  • 0xD0 ****要替换为 0xDB 0xDE

END

结束符,标志数据包的结束,定义十六进制:0xD0

#1.2 IMC(inter MCU Communication)层

TYPE

PAYLOAD

CRC8

1 Byte

0...1024 Byte

1 Byte

命令

载荷数据

PAYLOAD 的CRC校验值

CRC8校验算法见附件

数据传输采用小端模式,如:timeout_s=0x3C00 表示 60s.

#二、串口配置

#2.1 默认配置

  • Band rate: 115200
  • Data bites: 8
  • Parity: None
  • Stop bites: 1

#2.2 修改方法

串口的波特率及引脚是可以修改。

方法一:

调试阶段可以在debug串口输入cli命令 uart [bandrate] ,uart <rx_pin>|<tx_pin> &lt;pin num&gt;

查看波特率命令 uart

设置波特率为9600,命令 uart 9600 .

设置uart的rx引脚,命令 uart rx_pin 12.

设置uart的tx引脚,命令 uart tx_pin 11.

方法二:

生产阶段使用BAT批量生产时,通过配置文件的方式烧录。id类型选择 UCPP(一型一密) 。

json文件:📎uart_profile.json

{
    "yat.uart.baudrate": "9600",
  	"yat.uart.rx.pin": "12",
  	"yat.uart.tx.pin": "11"
}

#三、指令集

#1\. 基础指令集

#0x01 测试指令

MCU端可以通过这条指令验证串口通讯是否正常。

MCU->WiFi

TYPE

PAYLOAD

说明

0x01

n Byte

echo.  n取值范围 1~1024

Wifi->MCU

TYPE

PAYLOAD

说明

0x01

n Byte

echo.  n取值范围 1~1024

#0x02 重启指令

MCU->WiFi

TYPE

PAYLOAD

说明

0x02

0x00

预留

WiFi->MCU

TYPE

PAYLOAD

说明

0x02

0x00

设置成功

0x01

设置错误

说明:重启指令回复ACK后,延时500ms后重启系统。 模组重启时间至少1s。

#0x03 恢复出厂设置

恢复出厂设置,只能恢复通过指令设置的参数。

MCU->WiFi

TYPE

PAYLOAD

说明

0x03

0x01

清除配网参数,并重启设备(ssid pwd等)

0x02

清除配网参数,清除配网类型, 配网超时时间,并重启设备

WiFi->MCU

TYPE

PAYLOAD

说明

0x03

0x00

设置成功

0x01

设置错误

#0x04 设置云平台产品配置参数

平台产品参数可以不通过指令设置,可以是WiFi模组固件的出厂时默认配置,如果默认请联系mxchip。

MCU->WiFi

TYPE

PAYLOAD

说明

Cloud code

CONFIG

0x04

1 Byte

n Byte

Cloud code:云平台识别码

CONFIG:云平台配置,格式见附件

WiFi->MCU

TYPE

PAYLOAD

说明

0x04

0x00

设置成功

0x01

设置错误

#0x05查询云平台产品配置参数

只能查询通过指令配置平台产品配置参数。

MCU->WiFi

TYPE

PAYLOAD

说明

0x05

 1 Byte

PAYLOAD为云平台识别码

WiFi->MCU

TYPE

PAYLOAD

说明

Cloud Code

CONFIG

0x05

 1 Byte

n Byte

Cloud Code:云平台识别码

CONFIG:云平台配置,格式见附件

#0x06 设置产品属性配置表

属性配置表可以通过指令设置,也可以在固件中出厂默认设置。

如果云平台支持透传方式,强烈建议使用透传方式,模组中就不需要属性配置表。

属性配置表由mxchip生成。配置文件大于 512 Bytes 后需要分片传输。

MCU->WiFi

TYPE

PAYLOAD

说明

File length

Start Addr

End Addr

0x06

2 Byte

2 Byte

2 Byte

File length : 属性配置表长度

Start Addr : 文件起始地址

End Addr : 文件截止地址

WiFi->MCU

TYPE

PAYLOAD

说明

0x06

0x00

设置成功

0x01

设置错误

如:

配置文件长度为 606 Bytes,文件大于 512 Bytes,需要分包传输。第一包发送512 Bytes 数据,第二包发送 94 Bytes 数据。

  1. MCU->WiFi : 06 5E 02 00 00 00 02 <省略512 Bytes>CRC8
  2. WiFi->MCU : 06 00 00
  3. MCU->WiFi : 06 5E 02 00 02 5E 02 <省略512 Bytes>CRC8
  4. WiFi->MCU : 06 00 00

Note:

  • 配置文件可以由MXCHIP烧录,也可以由客户自己烧录
  • 当配置文件小于4K,配置文件与固件分开烧录,配置文件烧录在KV中
  • 当配置文件大于4k,配置文件与固件一起烧录,配置文件与固件合成新固件,属于定制固件

#0x07 查询模组软件版本

MCU->WiFi

TYPE

PAYLOAD

说明

0x07

0x00

预留

WiFi->MCU

TYPE

PAYLOAD

说明

0x07

n Byte

获取模组软件版本号,string类型

#0x0A LOTA 配置 MCU 信息

本指令主要用于生产阶段,通过无线工具将产品信息通过模组传输给MCU(比如产品序列号等信息)

指令超时时间1s

WiFi->MCU

TYPE

PAYLOAD

说明

Method

Data

0x0A

0x01

1-512 byte

配置写入

0x02

读取配置

  • 当 Method = 0x01 时

MCU->WiFi

TYPE

PAYLOAD

说明

Method

Res

0x0A

0x01

0x00

配置写入成功

0x01

配置写入失败

  • 当 Method = 0x02 时

MCU->WiFi

TYPE

PAYLOAD

说明

Method

Data

0x0A

0x02

1-512 byte

配置查询结果

#1\. LOTA 配置写入格式

# Lota 配置的json格式
{
  "method": "mcu_set",
  "mcu_set": {
    "sn": "1234567",
    "cmei": "asdfgh"
  }
}

# mcu 收到的json格式
{
  "sn": "1234567",
  "cmei": "asdfgh"
}

# Lota 的返回值.  0:成功 1:失败
{
  "method":"mcu_res",
  "mcu_res": 0,
}

#2\. LOTA 配置查询格式

# Lota 配置的json格式
{
  "method": "mcu_get",
  "mcu_get": [
    "sn",
    "cmei"
  ]
}

# mcu 收到的json格式
[
  "sn",
  "cmei"
]

#3\. LOTA 配置查询上报格式

# mcu上报的格式
{
  "sn": "1234567",
  "cmei": "asdfgh"
}

# Lota接收到的格式
{
  "method": "mcu_reply",
  "mcu_reply":{
    "sn": "1234567",
    "cmei": "asdfgh"
  }
}

#2\. 网络指令集

#0x11 WiFi模组网络状态主动下发

当模组的网络状态发生改变时,模组将状态主动下发给MCU。

WiFi->MCU

TYPE

PAYLOAD

说明

0x11

0x00

路由器连接断开

0x01

路由器连接成功

0x02

配网状态下,模组收到手机发来的ssid,并开始连接路由器

MCU->WiFi

#0x12 查询WiFi模组的网络状态 MCU->WiFi

MCU->WiFi

TYPE

PAYLOAD

说明

0x12

0x00

预留

WiFi->MCU

TYPE

PAYLOAD

说明

WiFi Status

RSSI

0x12

0x00

1 Byte

初始状态

0x01

1 Byte

配网状态

0x02

1 Byte

正在连接路由器

0x03

1 Byte

连接到路由器

当模组未连接到路由器时 RSSI=0x00。

当模组连接到路由器时 RSSI的取值范围时 -100~0,int8_t类型。

状态说明:

  • 0x00 出厂状态,或者恢复出厂设置后的状态
  • 0x01 表示配网状态,该状态维持到连上路由器
  • 0x02 表示重连路由器的状态。已经连上过路由器,又与路由器断开连接,模块会尝试重新连接路由器。
  • 0x03 表示模块已经连上路由器

#0x13 配网指令

MCU->WiFi

TYPE

PAYLOAD

说明

Cloud Code

Type

TimeOut

0x13

0x00

0x00

2 Byte

默认配网方式,不限制平台

1 Byte

0x01

2 Byte

一键配网

0x02

2 Byte

设备热点配网

0x03

2 Byte

蓝牙配网

0x04

2 Byte

MESH配网

0xFF

2 Byte

停止配网

Cloud Code: 平台识别码。

TimeOut:配网超时时间,单位秒。TimeOut=0, 表示不超时。

不同平台对应的配网方式不同,详见附件。

WiFi模组收到配网指令后,重新启动,进入相应的配网模式。配网超时 或 Type=0xFF(停止配网),若模组配置过WiFi,模组将尝试回连;若模组未配置过WiFi,模组将恢复到初始状态。

WiFi->MCU

TYPE

PAYLOAD

说明

0x13

0x00

设置成功

0x01

设置错误

#0x14 扫描热点指令

热点扫描的超时时间是3秒。

MCU->WiFi

TYPE

PAYLOAD

说明

0x14

0x00

扫描热点信息

n Bytes

扫描指定SSID的热点信息, n的取值范围 1~32,String类型

WiFI-MCU

TYPE

PAYLOAD

说明

ap_num

ap_list

0x14

1 Byte

ap_num * 33 Byte

扫描结果

ap_num:AP热点数,最多20个

ap_list:AP热点信息表

# ap_list 结构体

typedef struct _ap_list
{
    char ssid[32];
    int8_t rssi;
} ap_list_t;

#0x15 产测指令

模组端扫描指定路由器,“mxchip_qc_test”,模组端判断信号强度,如果rssi<-70dbm,返回MCU失败。如果rssi>-70dbm,返回MCU产测成功。

MCU->WiFi

TYPE

PAYLOAD

说明

0x15

0x00

mxchip指定的产测路由器

n Bytes

客户指定的产测路由器, n的取值范围 1~32,String类型

WiFi->MCU

TYPE

PAYLOAD

说明

0x15

0x00

产测成功

0x01

产测失败

  • 产测流程图:

#0x16 WiFi开关指令

MCU->WiFi

TYPE

PAYLOAD

说明

0x16

0x00

关闭 WiFi

0x01

开启WiFi

WiFi->MCU

TYPE

PAYLOAD

说明

0x16

0x00

设置成功

0x01

设置失败

说明:指令发送成功后,WiFi模组会重启。

1、如果模组配置过wifi和cloud,MCU 发送 0x16 0x01 指令后,模组重启,尝试连接配置过的WiFi和Cloud。

2、如果MCU发送 0x16 0x00,模组先断开wifi和cloud,然后重启模组;模组重启或重新上电,都不会去尝试连接WiFi及Cloud。

#0x17 WiFi低功耗指令

设置命令

MCU->WiFi

TYPE

PAYLOAD

说明

Set

Status

0x17

0x00

0x00

关闭低功耗功能

0x01

开启低功耗功能

WiFi->MCU

TYPE

PAYLOAD

说明

Set

Status

0x17

0x00

0x00

设置成功

0x01

设置失败

获取状态指令

MCU->WiFi

TYPE

PAYLOAD

说明

Get

Status

0x17

0x01

0x00

获取低功耗状态

WiFi->MCU

TYPE

PAYLOAD

说明

Get

Status

0x17

0x01

0x00

低功耗功能关闭

0x01

低功耗功能开启

#0x18 获取模组的WiFi信息

获取指令

MCU->WiFi

TYPE

PAYLOAD

说明

0x18

0x00

查询模组的WiFi信息

WiFi->MCU

TYPE

PAYLOAD

说明

0x18

n bytes

WiFi相关信息,json格式 后续会扩展

{
	"mac": "C89346000001",
	"ssid": "mxchip-ae",
  "pwd": "emc3080",
	"ip": "192.168.1.1"
}

当某个字段没有时,不返回该字段。比如出厂状态时,查询WiFi信息时,仅返回mac字段。

#3\. 云平台指令集

#0x21 WiFi模组服务器状态主动下发

当模组的网络状态发生改变时,模组将状态主动下发给MCU。

WiFi->MCU

TYPE

PAYLOAD

说明

Cloud Code

Status

0x21

1 Byte

0x00

服务器连接断开

0x01

服务器连接成功

0x02

绑定通知,由平台决定

0x03

解绑通知,由平台决定

MCU->WiFi

#0x22 查询WiFi模组的服务器连接状态

MCU->WiFi

TYPE

PAYLOAD

说明

0x22

0x00

所有平台的连接状态

1 Byte

Cloud Code

WiFi->MCU

TYPE

PAYLOAD

说明

Cloud Code

Status

0x22

1 Byte

0x00

未连接到服务器

0x01

连接到服务器

#0x23 解绑指令

解除设备与手机APP的绑定关系。

MCU->WiFi

TYPE

PAYLOAD

说明

0x23

0x00

解绑所以平台

1 Byte

PAYLOAD为云平台识别码,解绑对应的平台

WiFi->MCU

TYPE

PAYLOAD

说明

0x23

0x00

设置成功

0x01

设置错误

#0x24 查询UTC时间

MCU->WiFi

TYPE

PAYLOAD

说明

0x24

0x00

String

0x01

Hex

WiFi->MCU

TYPE

PAYLOAD

说明

0x24

n Byte

获取UTC时间, String类型

8 Byte

对应MCU请求0x01,

Byte 0:获取成功标志,成功为1

Byte 1:为年份,0x00表示2000年

Byte 2:为月份,1-12

Byte 3:为日期,1-31

Byte 4:为时钟,0-23

Byte 5:为分钟,0-59

Byte 6:为秒钟,0-59

Byte 7:为星期,1-7

#0x25 控制指令-TLV格式

如果模组与云平台交互协议选择非透传方式进行通信,设备上报属性可以采用TLV格式,模组端必须设置属性配置表,属性配置表由mxchip生成。

MCU可以单属性上报,也可以多属性上报。

建议当模组每次连上服务器后,将设备的所有状态都上报一次。

#1\. 设备属性上报

MCU->WiFi

TYPE

PAYLOAD

说明

TYPE

LENTH

VALUE

0x25

1 Byte

1 Byte

n Byte

  • TYPE: 属性索引值
  • LENTH: 属性长度
  • VALUE: 属性值

WiFi->MCU

#2\. 模组属性下发

模组下发属性采用TLV格式,模组下发单属性还是多属性,由平台决定。

WiFi->MCU

TYPE

PAYLOAD

说明

TYPE

LENTH

VALUE

0x25

1 Byte

1 Byte

n Byte

  • TYPE: 属性索引值
  • LENTH: 属性长度
  • VALUE: 属性值

MCU->WiFi

#0x26 控制指令-透传格式

如果模组与云平台交互协议选择透传方式进行通信,如果云端脚本由mxchip提供,设备上报属性必须采用TLV格式。用户也可以自定义数据格式,云端脚本自行开发。

MCU可以单属性上报,也可以多属性上报。

建议当模组每次连上服务器后,将设备的所有状态都上报一次。

#1\. 设备属性上报

MCU->WiFi

TYPE

PAYLOAD

说明

TYPE

LENTH

VALUE

0x26

1 Byte

1 Byte

n Byte

  • TYPE: 属性索引值
  • LENTH: 属性长度
  • VALUE: 属性值

WiFi->MCU

#2\. 模组属性下发

WiFi->MCU

TYPE

PAYLOAD

说明

TYPE

LENTH

VALUE

0x26

1 Byte

1 Byte

n Byte

  • TYPE: 属性索引值
  • LENTH: 属性长度
  • VALUE: 属性值

WiFi->MCU

<span class="ne-text">无</span>

#0x27 控制指令JSON格式

如果模组与云平台交互协议选择非透传方式进行通信,设备上报属性可以采用JSON格式,模组端不需要设置属性配置表。

MCU可以单属性上报,也可以多属性上报。

建议当模组每次连上服务器后,将设备的所有状态都上报一次。

#1\. 设备属性上报

MCU->WiFi

TYPE

PAYLOAD

说明

0x27

n Byte

上报JSON格式数据  n取值范围 1~1024

WiFi->MCU

<span class="ne-text">无</span>

#2\. 模组属性下发

MCU->WiFi

TYPE

PAYLOAD

说明

0x27

n Byte

下发JSON格式数据  n取值范围 1~1024

WiFi->MCU

<span class="ne-text">无</span>

#0x29 指定平台id的控制指令-透传格式

#1\. 数据上报

MCU->WiFi

TYPE

PAYLOAD

说明

Cloud Code

Data

0x29

1 byte

n Byte

不限格式 n取值范围 1~1023

WiFi->MCU

#2\. 数据下发

MCU->WiFi

TYPE

PAYLOAD

说明

Cloud Code

Data

0x29

1 byte

n Byte

不限格式  n取值范围 1~1023

WiFi->MCU

#4\. BT & BLE Mesh 指令集

#0x51 BT 模式开关指令

注:Master模式暂不支持

MCU->WiFi:

TYPE

PAYLOAD

说明

0x51

0x00

关闭蓝牙功能

0x01

开启BT LE Slave模式

0x02

开启BT MESH模式

WiFi->MCU:

TYPE

PAYLOAD

说明

0x51

0x00

设置成功

0x01

设置错误

#0x52 BT 模式开关状态查询指令

MCU->WiFi:

TYPE

PAYLOAD

说明

0x52

0x00

查询BLE开关状态

WiFi->MCU:

TYPE

PAYLOAD

说明

0x52

0x00

蓝牙功能关闭

0x01

BT LE Slave开启

0x02

BT MESH模式开启

#0x53 BT 连接状态主动下发指令

WiFi->MCU:

TYPE

PAYLOAD

说明

0x53

0x00

当 BT模式为BLE Slave,表示断开;当BT模式为MESH,表示未配网

0x01

当 BT模式为BLE Slave,表示连接;当BT模式为MESH,表示配网成功

#0x54 BT 连接状态查询指令

MCU->WiFi:

TYPE

PAYLOAD

说明

0x54

0x00

查询BLE Slave SPP 连接状态

WiFi->MCU:

TYPE

PAYLOAD

说明

0x54

0x00

当 BT模式为BLE Slave,表示断开;当BT模式为MESH,表示未配网

0x01

当 BT模式为BLE Slave,表示连接;当BT模式为MESH,表示配网成功

#0x55 BT 属性上报与下发(only BT)

#a. 数据上报-RAW

MCU->BLE:

TYPE

PAYLOAD

说明

0x55

n Bytes

数据接收

BLE->MCU:

注释:数据只在BT通道传输

#b. 数据下发-RAW

BLE->MCU:

TYPE

PAYLOAD

说明

0x55

n Bytes

数据接收

MCU->BLE:

#0x56 BT 属性上报与下发(BT&WiFi)

#a. 数据上报-RAW

MCU->BT&WiFi:

TYPE

PAYLOAD

说明

0x56

n Bytes

数据接收

BLE->MCU:

注释:数据在BLE和WiFi通道同时传输

#b. 数据下发-RAW

BT数据下发,通过命令 0x55

WiFi数据下发,参数通用指令集。

#0x57 BT 属性查询

BT->MCU

TYPE

PAYLOAD

说明

0x57

n Bytes

属性查询

#四、附件

#云平台识别码

电商

云平台

识别码

阿里

飞燕/启明星

0x01

京东

小京鱼

0x02

苏宁

苏宁智能

0x03

国美

国美智能

0x04

华为

Hilink/HormonyOS

0x05

小米

米家

0x06

腾讯

腾讯连连

0x07

BT

BT LE Slave

0x08

BT

BT MESH

0x09

杭研

和家亲

0x0A

#CRC8算法

#计算法

//CRC-8 x8+x2+x+1
unsigned char crc8(unsigned char *vptr, unsigned char len)
{
    const unsigned char *data = vptr;
    unsigned crc = 0;
    int i, j;
    for (j = len; j; j--, data++) {
        crc ^= (*data << 8);
        for (i = 8; i; i--) {
            if (crc & 0x8000)
                crc ^= (0x1070 << 3);
            crc <<= 1;
        }
    }
    return (unsigned char)(crc >> 8);
}

#查表法

//CRC-8 x8+x2+x+1

unsigned char CRC8_Table[256] = {
0x00, 0x07, 0x0E, 0x09, 0x1C, 0x1B, 0x12, 0x15, 0x38, 0x3F,
0x36, 0x31, 0x24, 0x23, 0x2A, 0x2D, 0x70, 0x77, 0x7E, 0x79,
0x6C, 0x6B, 0x62, 0x65, 0x48, 0x4F, 0x46, 0x41, 0x54, 0x53,
0x5A, 0x5D, 0xE0, 0xE7, 0xEE, 0xE9, 0xFC, 0xFB, 0xF2, 0xF5,
0xD8, 0xDF, 0xD6, 0xD1, 0xC4, 0xC3, 0xCA, 0xCD, 0x90, 0x97,
0x9E, 0x99, 0x8C, 0x8B, 0x82, 0x85, 0xA8, 0xAF, 0xA6, 0xA1,
0xB4, 0xB3, 0xBA, 0xBD, 0xC7, 0xC0, 0xC9, 0xCE, 0xDB, 0xDC,
0xD5, 0xD2, 0xFF, 0xF8, 0xF1, 0xF6, 0xE3, 0xE4, 0xED, 0xEA,
0xB7, 0xB0, 0xB9, 0xBE, 0xAB, 0xAC, 0xA5, 0xA2, 0x8F, 0x88,
0x81, 0x86, 0x93, 0x94, 0x9D, 0x9A, 0x27, 0x20, 0x29, 0x2E,
0x3B, 0x3C, 0x35, 0x32, 0x1F, 0x18, 0x11, 0x16, 0x03, 0x04,
0x0D, 0x0A, 0x57, 0x50, 0x59, 0x5E, 0x4B, 0x4C, 0x45, 0x42,
0x6F, 0x68, 0x61, 0x66, 0x73, 0x74, 0x7D, 0x7A, 0x89, 0x8E,
0x87, 0x80, 0x95, 0x92, 0x9B, 0x9C, 0xB1, 0xB6, 0xBF, 0xB8,
0xAD, 0xAA, 0xA3, 0xA4, 0xF9, 0xFE, 0xF7, 0xF0, 0xE5, 0xE2,
0xEB, 0xEC, 0xC1, 0xC6, 0xCF, 0xC8, 0xDD, 0xDA, 0xD3, 0xD4,
0x69, 0x6E, 0x67, 0x60, 0x75, 0x72, 0x7B, 0x7C, 0x51, 0x56,
0x5F, 0x58, 0x4D, 0x4A, 0x43, 0x44, 0x19, 0x1E, 0x17, 0x10,
0x05, 0x02, 0x0B, 0x0C, 0x21, 0x26, 0x2F, 0x28, 0x3D, 0x3A,
0x33, 0x34, 0x4E, 0x49, 0x40, 0x47, 0x52, 0x55, 0x5C, 0x5B,
0x76, 0x71, 0x78, 0x7F, 0x6A, 0x6D, 0x64, 0x63, 0x3E, 0x39,
0x30, 0x37, 0x22, 0x25, 0x2C, 0x2B, 0x06, 0x01, 0x08, 0x0F,
0x1A, 0x1D, 0x14, 0x13, 0xAE, 0xA9, 0xA0, 0xA7, 0xB2, 0xB5,
0xBC, 0xBB, 0x96, 0x91, 0x98, 0x9F, 0x8A, 0x8D, 0x84, 0x83,
0xDE, 0xD9, 0xD0, 0xD7, 0xC2, 0xC5, 0xCC, 0xCB, 0xE6, 0xE1,
0xE8, 0xEF, 0xFA, 0xFD, 0xF4, 0xF3 };

unsigned char crc8(unsigned char *p, char counter)
{
    unsigned char crc = 0;

    for (; counter > 0; counter--) {
        crc = CRC8_Table[crc ^ *p]; //查表得到CRC码
        p++;
    }
    return crc;
}

#TLV编码介绍

TLV是指由数据的类型Tag,数据的长度Length,数据的值Value组成的结构体,几乎可以描任意数据类型,TLV的Value也可以是一个TLV结构,正因为这种嵌套的特性,可以让我们用来包装协议的实现。

T

L

V

Tag

Length

Value

Tag

Length

Value

Tag在本协议中表示属性ID。

# One TLV Object is shown as follow:
#
#          1Byte    1Byte    $Length Bytes
#		 +-------+----------+-------------+  			
#        |  Tag  |  Length  |    Value    |
#        +-------+----------+-------------+
#
# Serial TLV Objects can be connected like this:
#
#          1Byte    1Byte    $Length Bytes  1Byte    1Byte    $Length Bytes
#		 +-------+----------+-------------+-------+----------+-------------+			
#        |  Tag  |  Length  |    Value    |  Tag  |  Length  |    Value    |
#        +-------+----------+-------------+-------+----------+-------------+
#
# You can also put a TLV Object into another TLV Object, like this:
#
#          1Byte    1Byte   |---------$Length Bytes----------|
#                             1Byte    1Byte    $Length Bytes
#		 +-------+----------+-------+----------+-------------+			
#        |  Tag  |  Length  |  Tag  |  Length  |    Value    |
#        +-------+----------+-------+----------+-------------+
#

#数据类型

value的数据类型:

类型

标识符

大小

布尔型

bool

1 Byte

枚举

enum

1 Byte

字符型

char

1 Byte

短整型

short

2 Bytes

整型

int

4 Bytes

单精度浮点型

float

4 Bytes

双精度浮点型

double

8 Bytes

文本型

text

1-254 Bytes

嵌套型

struct

1-254 Bytes

#变更记录

版本

说明

日期

2.5

  1. 更新文档格式
  2. 更新组包示意图

2022.12.6

2.4

增加Hex格式的UTC时间

2021.8.24

2.3

修改配网指令,适配停止配网功能

2021.6.4

2.2

增加WiFi低功耗指令

2021.2.3

2.1

1 增加WiFi开关指令

2 可以通过cli或bat配置uart的引脚

2020.12.30

2.0

1 增加BT相关指令

2 增加MESH配网指令

2020.12.11

1.1

增加串口配置文件,支持BAT烧写

2020.8.21

1.0

初次发布

2020.7.20

更新时间: 2023/11/29 13:52:34