2024-12-11 01:11:04 +08:00
2024-12-11 01:11:04 +08:00
2024-12-11 01:11:04 +08:00
2022-08-18 00:44:49 +08:00
2022-08-21 21:27:19 +08:00
2020-03-15 20:23:43 +08:00
2024-12-11 01:11:04 +08:00

BabyOS_Protocol

介绍

使用QTCreate编写的上位机配合BabyOS的通用协议b_mod_protocol使用。上位机协议格式配置如下

头部 ID 长度 指令 参数 校验
1Byte 4Bytes 2Bytes 1Byte 0~nBytes 1Byte

上位机的设备ID为 0x1314


测试指令

指令 参数(7Bytes)
0x1 "BabyOS"

设置时间指令

指令 参数(4Bytes)
0x2 UTC

通知新固件信息 触发OTA

(上位机==>设备)

指令 参数(72Bytes)
0x3 文件大小4Bytes CRC32校验值(4Bytes) 固件名64Bytes

固件名长度不足64字节时补0

typedef struct
{
	uint32_t size;
	uint32_t crc32;
	char filename[64];
}fwinfo_t;

回复OTA通知

(设备==>上位机)

指令 参数(0)
0x3 无参数

请求分包数据指令

(设备==>上位机)

指令 参数(2Bytes)
0x4 分包序号2Bytes

分包序号从0开始

回复分包数据指令

(上位机==>设备)

指令 参数(514Bytes)
0x4 分包序号2Bytes 数据长度512Bytes

剩余长度不足512字节时补0


上报升级/传输文件结果指令

(设备==>上位机)

指令 参数(1Bytes)
0x5 升级结果1Bytes

校验成功0 校验失败1 固件名不匹配2 文件长度不合理3 超时4

确认升级结果指令

(上位机==>设备)

指令 参数(0Bytes)
0x5 无参数

传输文件至FLASH

(上位机==>设备)

指令 参数(16Bytes)
0x6 文件大小4Bytes CRC32校验值(4Bytes) 设备号4Bytes偏移地址4Bytes
typedef struct
{
	uint32_t size;
	uint32_t crc32;
	uint32_t dev_no;
    uint32_t offset;
}file_trans_t;

通过指令4获取文件数据。

获取UID

(上位机==>设备)

指令 参数(0Bytes)
0x7 无参数

(设备=回复=>上位机)

指令 UID长度(1Bytes) UID(nBytes)
0x7 UID内容

写入SN

(上位机==>设备)

指令 SN长度(1Bytes) SN内容(nBytes)
0x8

(设备=回复=>上位机)

指令 无参数
0x8
Description
No description provided
Readme MIT 53 MiB
Languages
C 72%
C++ 26.4%
QMake 1.6%