Files
secs2-bootloader/usr/protocol/proto_HSMS.h

64 lines
1.8 KiB
C
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#ifndef _PROTO_HSMS_H_
#define _PROTO_HSMS_H_
#include "main.h"
#include "proto_Modbus.h"
#define PROTO_HSMS_ENDIAN BIG_ENDIAN
/*表示类型 PType*/
#define proto_HSMS_PTYPE_SECS2 0 /*SECS-II 编码格式*/
/*会话类型 SType*/
#define PROTO_HSMS_STYPE_Data_Message 0 /*数据消息*/
#define PROTO_HSMS_STYPE_Select_Req 1 /*选择请求*/
#define PROTO_HSMS_STYPE_Select_Rsq 2 /*选择响应*/
#define PROTO_HSMS_STYPE_Deselect_Req 3 /*取消选择请求*/
#define PROTO_HSMS_STYPE_Deselect_Rsq 4 /*取消选择响应*/
#define PROTO_HSMS_STYPE_Linktest_Req 5 /*连接测试请求*/
#define PROTO_HSMS_STYPE_Linktest_Rsp 6 /*连接测试响应*/
#define PROTO_HSMS_STYPE_Reject_Req 7 /*拒绝请求*/
#define PROTO_HSMS_STYPE_Separate_Req 9 /*断开请求*/
typedef struct
{
u32 Data_Len; /*字节长度*/
u16 Device_Id; /*会话/设备标识*/
union
{
struct
{
u8 Stream: 7;
u8 Wait: 1; /*指令是否需要回复*/
}Analysis_Data;
u8 ALL_Data;
}Header_Byte2;
u8 Header_Byte3; /*头部字节3*/
u8 PType; /*表示类型*/
u8 SType; /*会话类型*/
u32 Sys_Byte; /*系统字节标记这次指令的ID通常用于超时判断响应时依据发送者指令的最后4字节作为回复发送时生成不重复的4个字节*/
}proto_HSMS_Header_Data_t;
typedef struct
{
u16 Device_Id; /*会话/设备标识*/
}proto_HSMS_Flash_Data_t;
typedef struct
{
proto_HSMS_Header_Data_t Rx_Header_Data; /*接收解析的头部数据*/
proto_HSMS_Header_Data_t Tx_Header_Data; /*发送时的头部数据*/
proto_HSMS_Flash_Data_t Flash_ConfigData; /*存入Flash的配置参数*/
void (*Init)(void);
void (*Tx_RsqData)(proto_HSMS_Header_Data_t *,u8 *,u16 ,void *);
}proto_HSMS_t;
extern proto_HSMS_t HSMS;
#endif