modify protocol

This commit is contained in:
zhangsheng 2025-05-14 10:34:21 +08:00
parent 74784e2e40
commit 1bd94f5f77

View File

@ -282,124 +282,161 @@ typedef struct TMRRelay_{
} TMRRelay;
#pragma pack(1)
typedef struct {
uint8_t head[3]; // 固定值0xAA55AA
uint8_t cmd; // 命令
int len; // 数据长度
uint8_t crc; // 数据 CRC 校验和
char data[0]; // 文件内容
} PackageHead;
// kUpgradeCard
typedef struct {
uint8_t head[3]; // 固定值0xAA55AA
uint8_t cmd;
uint8_t code;
uint8_t version; // 版本号默认为1
int len;
} CommonRsp;
typedef struct {
uint8_t card_id; // 0xff是本机其它子卡是115
uint8_t card_id;
uint8_t crc;
char data[0];
} UpgradeCardReq;
typedef struct {
uint8_t code; // 0: 上传成功
uint8_t head[3]; // 固定值0xAA55AA
uint8_t cmd;
uint8_t version; // 版本号默认为1
uint8_t code; // 0: 上传成功
} UpgradeRsp;
// kUpgradeProgress
typedef struct {
uint8_t card_id; // 0xff是本机其它子卡是115
uint8_t head[3]; // 固定值0xAA55AA
uint8_t cmd;
uint8_t version; // 版本号默认为1
uint8_t progress;
} UpgradeProgress;
// kGetVersionInfo
typedef struct {
uint8_t head[3]; // 固定值0xAA55AA
uint8_t cmd;
uint8_t version; // 版本号默认为1
uint8_t card_id;
} GetVersionReq;
typedef struct {
uint8_t fpga; // fpga版本号
uint8_t sw; // 软件版本号
char fpga_data[9]; // fpga版本日期
uint8_t head[3]; // 固定值0xAA55AA
uint8_t cmd;
uint8_t version; // 版本号默认为1
uint8_t fpga; // fpga版本号
uint8_t sw; // 软件版本号
char fpga_date[9]; // fpga版本日期
} VersionRsp;
// kRelaySetting
typedef struct {
uint8_t card_id; // 0xff是本机其它子卡是115
uint8_t led_id; // ok 灯 0xff,rx/tx 灯 0xf1,板卡测试模式 0xee,板卡状态 0xe1,其他 1 ~ 16
uint8_t head[3]; // 固定值0xAA55AA
uint8_t cmd;
uint8_t version; // 版本号默认为1
uint8_t card_id; // 0xff是本机其它子卡是115
uint8_t led_id; // ok 灯 0xff,rx/tx 灯 0xf1,板卡测试模式 0xee,板卡状态 0xe1,其他 1 ~ 16
uint8_t led_operate; // 0 OFF,1 ON,2 红色,3 绿色,4 红色1Hz闪烁,5 红色2Hz闪烁,6 绿色闪烁,7 测试状态,8 手动状态,9 工作状态
} RelaySettingReq;
typedef struct {
uint8_t head[3]; // 固定值0xAA55AA
uint8_t cmd;
uint8_t version; // 版本号默认为1
uint8_t code;
} RelaySettingRsp;
// kRelayStatus
typedef struct {
uint8_t card_id; // 0xff是本机其它子卡是115
uint8_t head[3]; // 固定值0xAA55AA
uint8_t cmd;
uint8_t version; // 版本号默认为1
uint8_t card_id;
} RelayStatusReq;
typedef struct {
uint8_t head[3]; // 固定值0xAA55AA
uint8_t cmd;
uint8_t version; // 版本号默认为1
uint8_t code; // 0: 成功 其它:失败
uint8_t status; // 7 测试状态,8 手动状态,9 工作状态
} RelayStatusRsp;
// kUploadConfigFile
typedef struct {
uint8_t head[3]; // 固定值0xAA55AA
uint8_t cmd;
uint8_t version; // 版本号默认为1
int len;
uint8_t sub_cmd; // 0: 仅上传配置文件,不配置子板 1配置所有子板
uint8_t crc;
char data[0];
} UploadConfigReq, DownloadConfigRsp;
} UploadConfigReq;
typedef struct {
uint8_t head[3]; // 固定值0xAA55AA
uint8_t cmd;
uint8_t version; // 版本号默认为1
uint8_t code; // 子板配置错误码
uint8_t subcard_id; // 子板编号从1开始
uint8_t stage; // 0: 配置开始 1配置结束
} UploadConfigProgress;
// kDownloadConfigFile
typedef struct {
uint8_t head[3]; // 固定值0xAA55AA
uint8_t cmd;
uint8_t version; // 版本号默认为1
} DownloadConfigReq;
typedef struct {
uint8_t head[3]; // 固定值0xAA55AA
uint8_t cmd;
uint8_t version; // 版本号默认为1
uint8_t code;
} UploadConfigRsp, DownloadConfigReq;
int len;
uint8_t crc;
char data[0];
} DownloadConfigRsp;
// kConfigSubCard
typedef struct {
uint8_t head[3]; // 固定值0xAA55AA
uint8_t cmd;
uint8_t version; // 版本号默认为1
uint8_t card_id;
} ConfigSubCardReq;
typedef struct {
uint8_t code; // 0: success 1: 无配置文件 2失败
} ConfigSubCardRsp;
uint8_t head[3]; // 固定值0xAA55AA
uint8_t cmd;
uint8_t version; // 版本号默认为1
uint8_t code; // 子板配置错误码
uint8_t subcard_id; // 子板编号从1开始
uint8_t stage; // 0: 配置开始 1配置结束
} ConfigSubCardProgress;
// kRS485BaudrateGet
typedef struct {
uint8_t head[3]; // 固定值0xAA55AA
uint8_t cmd;
uint8_t version; // 版本号默认为1
} BaudrateGetReq;
typedef struct {
uint8_t baudrate; // kRS485BaudrateSet, kRS485BaudrateGet
} BaudrateSetReq, BaudrateGetRsp;
uint8_t head[3]; // 固定值0xAA55AA
uint8_t cmd;
uint8_t version; // 版本号默认为1
uint8_t baudrate;
} BaudrateGetRsp;
//kRS485BaudrateSet
typedef struct {
uint8_t head[3]; // 固定值0xAA55AA
uint8_t cmd;
uint8_t version; // 版本号默认为1
uint8_t baudrate;
} BaudrateSetReq;
typedef struct {
uint8_t code; // 0: success
uint8_t head[3]; // 固定值0xAA55AA
uint8_t cmd;
uint8_t version; // 版本号默认为1
uint8_t code;
} BaudrateSetRsp;
// cmd: kConfigIPv4
typedef struct {
uint8_t ethn; // 0: eth0, 1: eth1
char ip[16];
char netmask[16];
char gw[16];
} ConfigIPv4Req;
// 配置IP的响应结构为CommonRsp
// cmd: kConfigMac
typedef struct {
uint8_t ethn; // 0: eth0, 1: eth1
char mac[18];
} ConfigMacReq;
// 配置MAC的响应结构为CommonRsp
// cmd: kRebootCard
typedef struct {
uint8_t card_id; // 0: cpu板卡 115对应相应槽位
} RebootCardReq;
// 此命令无响应,可观察各板卡灯的变化情况
// cmd: kGetCardDcValue
typedef struct {
uint8_t card_id; // 1 ~ 15
} GetCardDcValueReq;
typedef struct {
float dc_value[4];
} GetCardDcValueRsp;
// cmd: kGetRelayStatus
typedef struct {
uint8_t card_id;
} GetRelayStatusReq;
typedef struct {
uint8_t card_id;
uint16_t status; // 0: 正常 1开出, 从低位到高位分别为继电器的通道1 16
} GetRelayStatusRsp;
#pragma pack()
#endif // DATA_CONFIG_H