- 增加STM8 Bootloader工程及出厂固件恢复流程\n- 增加W25Q64外部Flash驱动和OTA分包接收、CRC16校验、断点续传状态管理\n- 增加固件版本查询、升级结果上报与主机确认机制\n- 将业务帧从55 AA帧头调整为发送方Mesh短地址+CMD+LEN+DATA+CRC16\n- 修正JDY-28M外层地址与业务发送方地址的职责划分,支持广播请求定向应答\n- 同步更新硬件引脚、存储分区、OTA流程和主机通信协议文档\n- 已使用SDCC重新编译,应用代码大小为5512字节,链接地址为0x8800
37 lines
1.1 KiB
C
37 lines
1.1 KiB
C
/**
|
|
* @file mesh_frame.h
|
|
* @brief JDY-28M Mesh 外层帧解析和发送接口。
|
|
*/
|
|
#ifndef MESH_FRAME_H
|
|
#define MESH_FRAME_H
|
|
|
|
#include <stdint.h>
|
|
|
|
/** JDY-28M 外层完整帧最大长度,包含帧头、地址、数据和 0D 0A。 */
|
|
#define JDY_MESH_FRAME_MAX_LENGTH 20u
|
|
|
|
/** 初始化 JDY-28M 外层帧状态机。 */
|
|
void MeshFrame_Init(void);
|
|
|
|
/** 从 UART 接收并解析 JDY-28M 外层帧。 */
|
|
void MeshFrame_Task(void);
|
|
|
|
/** 返回最近一帧合法外层数据携带的目标短地址,仅用于诊断。 */
|
|
uint16_t MeshFrame_GetLastTargetAddress(void);
|
|
|
|
/**
|
|
* 封装并发送一帧 Mesh 业务数据。
|
|
*
|
|
* @param target_address 目标短地址,0xFFFF 表示广播。
|
|
* @param command 业务命令。
|
|
* @param data 业务数据,可为 NULL(此时 length 必须为 0)。
|
|
* @param length 业务数据长度,当前不能超过 4 字节。
|
|
* @return 1 表示已发送,0 表示参数超出 20 字节外层限制。
|
|
*/
|
|
uint8_t MeshFrame_SendBusiness(uint16_t target_address,
|
|
uint8_t command,
|
|
const uint8_t *data,
|
|
uint8_t length);
|
|
|
|
#endif
|