📄 define.h
字号:
/**************************************************************************
**
** 文件: Define.h
** 描述: 该文件完成一些常量的宏定义和数据类型的定义
**
*************************************************************************/
#ifndef Define_h
#define Define_h
//定义晶振频率为8000KHZ
#define XTAL 8000
//定义定时器1的分时复用标志
#define T1_Interval 1 //用于发送设备声明报文的间隔计时
#define T1_Period 2 //用于本地周期报文发送时刻计时
#define T1_NonPeriod 3 //用于非周期报文发送阶段到来计时
//定义网络中包的长度上下限
#define Max_Size 200 //EPA网络中,包的可能最大长度,本来包的最大长度为1200
#define Min_Size 60 //以太网中,包的最小长度
//定义域下载数据的最大可能长度,(2+70)*2
#define DomainDownload_Max_Size 144
//定义信息分发数据的长度
#define Dis_DataLen 70
//定义设备本身的信息,用户组态程序对这些参数只能读、不能写
#define My_DeviceID_Len 24 //本地设备ID的长度
#define Device_Type_ID 'T' //设备类型号
#define Device_Version_ID 114 //设备版本号
//定义组态信息,通过域下载服务发给下位机
#define Response_Time 400 //证实服务最大响应时间30ms
#define Macro_Cycle 200 //通信宏周期200ms
#define NonPeriodic_Offset 100 //周期报文发送总时间100ms
#define Sendtime_Offset 50 //本地周期报文发送时刻50ms
//定义重发上限
#define Max_Resend 3
//定义数据类型
#define TRUE 1
#define FALSE 0
#define uchar unsigned char
#define uint unsigned int
#define ulong unsigned long
typedef struct //二进制日期
{
uint year; //如2004就表示2004年
uchar month; //取值范围是1~12
uchar day; //取值范围是1~31
uchar hour; //取值范围是0~23
uchar minute; //取值范围是0~59
uint millisecond; //取值范围是0~59999
}BinaryDate;
typedef struct //时间差
{
uint Date; //日期差
ulong Millisecond; //以毫秒形式表示一天的小数部分
}TimeDifference;
typedef struct //错误类型
{
uchar Error_Class; //差错类型,该参数标识
uchar Error_Code; //差错编码,该参数给出了一个更加具体的错误描述
uchar Additional_Code;//附加编码,该参数是可选的,用户可以自己定义它的用途
uchar Reserved;
uchar Additional_Description[32];//附加描述,可选,用来在错误信息中增加一个文本描述
}ErrorType;
//整形或长整形数据的主机字节顺序与网络字节顺序之间的变换
#define byte_swap2(val) ((((val) & 0xff) << 8) | (((val) & 0xff00) >> 8))
#define byte_swap4(val) ((((val) & 0xff) << 24) | (((val) & 0xff00) << 8) | (((val) & 0xff0000) >> 8) | (((val) & 0xff000000) >> 24))
//Convert int or long value from host to network byte order
#define htons(x) byte_swap2(x)
#define htonl(x) byte_swap4(x)
//Convert short or long value from network to host byte order
#define ntohs(x) byte_swap2(x)
#define ntohl(x) byte_swap4(x)
#endif
/******************* End Of File **********************/
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -