C#写的一键自动测灯带的应用 AI帮写的。
通讯协议V1.00
版本 日期 修订说明
V1.00 2025-8-23 初稿
目录
一、 前言 2
1、 通讯方式: 2
2、 协议介绍: 2
3、 设备类型列表: 2
二、 通用协议 2
1、获取设备版本 2
2、升级包 2
3、设备重启 3
4、设置灯带颜色 3
5、保存灯带设置 3
三、 升级流程 3
1、方式一: 3
2、方式二: 4
一、前言
1、通讯方式:
采用HID通讯方式;
2、协议介绍:
方向 协议头(2byte) 设备类型 (2byte) 命令字(2byte) 数据长度
(2byte) 数据内容(nbyte) 校验值(2byte)
PC->设备 0x5A 0xA5 - - - - -
设备->PC 0x5A 0xA5 - - - - -
校验方式:CRC16(CCITT标准-0x1021),参与计算的内容从设备类型开始到数据内容结束。
数据长度:数据内容的长度
所有协议均为高字节在前
3、设备类型列表:
注:本项目固定用0x0002
二、通用协议
1、获取设备版本
方向 协议头(2byte) 设备类型 (2byte) 命令字(2byte) 数据长度
(2byte) 数据内容(nbyte) 校验值(2byte)
PC->设备 0x5A 0xA5 - 0x00 0x00 0x00 0x00 无 CRC16
设备->PC 0x5A 0xA5 - 0x00 0x00 - 内容 CRC16
内容说明 如:Boot:”boot V1.00” 或 App:”app V1.00”
2、升级包
方向 协议头(2byte) 设备类型 (2byte) 命令字(2byte) 数据长度
(2byte) 数据内容(nbyte) 校验值(2byte)
PC->设备 0x5A 0xA5 - 0x00 0x03 n 内容 CRC16
设备->PC 0x5A 0xA5 - 0x00 0x03 0x00 0x02 内容 CRC16
内容说明 发送内容:2byte总包数+2byte当前包+1byte类型(此项目固定1)+程序包(需能被4整除,不足末尾补0xFF)
返回内容:成功返回当前包号 失败返回:0xFFFF
此命令只在boot生效,此命令可适当的将超时时间放长,设备擦除跟写入需要时间
3、设备重启
方向 协议头(2byte) 设备类型 (2byte) 命令字(2byte) 数据长度
(2byte) 数据内容(nbyte) 校验值(2byte)
PC->设备 0x5A 0xA5 - 0x00 0x05 0x00 0x00 无 CRC16
设备->PC 0x5A 0xA5 - 0x00 0x05 0x00 0x02 0xAA[成功] 0x55[失败] CRC16
4、设置灯带颜色
方向 协议头(2byte) 设备类型 (2byte) 命令字(2byte) 数据长度
(2byte) 数据内容(nbyte) 校验值(2byte)
PC->设备 0x5A 0xA5 0x02 0x00 0xA1 - 内容 CRC16
设备->PC 0x5A 0xA5 0x02 0x00 0xA1 - 内容 CRC16
内容说明 发送内容:
Data[0]:预留固定0x01
Data[1]:灯带R值,0-255
Data[2]:灯带G值,0-255
Data[3]:灯带B值,0-255
Data[4]:模式,0=常亮 1=呼吸
Data[5]:周期,单位100ms,如呼吸灯灭-亮-灭为一个周期
返回内容:成功返回当0xAA 失败返回:0x55
5、保存灯带设置
方向 协议头(2byte) 设备类型 (2byte) 命令字(2byte) 数据长度
(2byte) 数据内容(nbyte) 校验值(2byte)
PC->设备 0x5A 0xA5 - 0x00 0xA2 0x00 0x00 无 CRC16
设备->PC 0x5A 0xA5 - 0x00 0xA2 0x00 0x02 0xAA[成功] 0x55[失败] CRC16
三、升级流程
1、方式一:
(1)、设备上电,进入boot
(2)、在boot检测升级n秒
(3)、若无升级,超时跳转到app
(4)、若存在升级,则接收更新,更新完成后进入app
2、方式二:
(1)、设备处于app,发送重启指令
(2)、设备复位重启,后续流程同方式一