📄 public.h
字号:
#ifndef _MAINTAIN_STRUCT
#define _MAINTAIN_STRUCT
#define GY_FDK 1 //规约类型 fdk
#define GY_CDT 2 //规约类型 cdt
#define GY_DF0420 3 //规约类型 df0420和df0241
#define GY_MODBUS 4 //规约类型 modbus
#define GY_JDXJ 5 //规约类型 接地巡检仪
#define GY_TYPE_FLAG_DF0420 1
#define GY_TYPE_FLAG_DF0421 2
typedef struct tagSerialLineInfo
{
int m_nComNo;
int m_nComBaut;
BYTE m_nDataBit;
BYTE m_nStopBit;
BYTE m_nParity;
BYTE m_FlowControl; //流控制
//0-----无
//1-----硬件
//2-----软件
}SerialLineInfo,*LPSerialLineInfo;
const BYTE SOH = 0x01; //FDK帧头
const BYTE FUNCCODE = 0X02; //0241维护功能码
const int CANSHU_FRAME_LEN = 512;//参数上装每帧数据长度
const int BMP_FRAME_LEN = 600; //图像上装每帧数据长度
const int CANSHU_UP_DATA = 521; //参数上装时参数数据长为512字节,加上9个其他字节
const int BMP_UP_DATA = 609; //图像上装时数据长为600字节,加上9个其他字节
const int NAK = 10; //NAK长度为10
const int ACK = 8; //ACK长度为8
const int CANSHU_SEND_COUNT = 19; //参数文件的发送次数
const int CANSHU_SEND_COUNT_NEW = 80; //新格式参数文件的发送次数
const int BMP_SEND_COUNT = 16; //图像文件的发送次数
const int DATALENGTH = 1024*1024;
#define GOING _T("操作进行中,请稍候......")
#define ENDERROR _T("操作失败")
#define END _T("操作成功")
#define MSG_CONTROLRETURN WM_USER + 1 //自定义控制返回消息
#define MSG_CONTROLRETURN_MODBUS WM_USER + 2 //自定义modbus控制返回消息,因为MODBUS返回较特殊所以单独定义
const int LISTITEM_COUNT = 300; //显示得到数据的列表项数目
//**************************旧参数结构**********************************//
//为和以前的文件大小保持一致,把下面定义中unsigned int改成unsigned short//
//**************************旧参数结构**********************************//
struct ZLP_YX_COE{
char Name[17]; //名称
char Control; //通用控制
//D7=1 开关闭合时允许报警
//D6=1 开关断开时允许报警
//D3=1 状态报警
//D2=1 串行口2发送禁止
//D1=1 串行口1发送禁止
//D0=1 串行口0发送禁止
char OnPtr; //开关闭合报警指针
char OffPtr; //开关断开报警指针
};
struct ZLP_YC_COE{
char Name[17]; //名称
char Control; //通用控制
//D7=1 允许越上限报警
//D6=1 允许越下限报警
//D3=1 交流通道采直流量
//D2=1 串行口2发送禁止
//D1=1 串行口1发送禁止
//D0=1 串行口0发送禁止
unsigned short Coe; //系数
unsigned short Zero; //零点
unsigned short Scale; //满值
char Unit[7]; //单位
char Dot; //小数位数
unsigned short UnderLimit; //下限
unsigned short UpperLimit; //上限
unsigned char UnderPtr; //下限报警指针
unsigned char UpperPtr; //上限报警指针
};
struct ZLP_YK_COE{
char Name[17]; //名称
char Control; //通用控制
unsigned short ACTTime; //继电器动作时间
};
struct ZLP_YT_COE{
char Name[17]; //名称
char Control; //通用控制
};
struct ALARM_COE{
char Display[20]; //报警显示内容
char Sound[7]; //语音报警内容
char Control; //通用控制
};
struct ZLP_COE{
struct ZLP_YX_COE YX_Coe[96];
struct ZLP_YC_COE YC_Coe[96];
struct ZLP_YK_COE YK_Coe[48];
struct ZLP_YT_COE YT_Coe[16];
struct ALARM_COE Alarm_Coe[64];
unsigned short Sample_Time; //历史数据保存间隔时间,单位:分(10-60)
unsigned char FreeArea[1024];
unsigned short CheckSum;
};
const int YXCOE_COUNT = 97;
const int YCCOE_COUNT = 97;
const int YKCOE_COUNT = 49;
const int YTCOE_COUNT = 17;
const int ALARMCOE_COUNT = 65;
//**************************旧参数结构**********************************//
/************************************************************************/
/* 下面这些结构是新的0241结构,以前的也要保留 */
/************************************************************************/
struct MSU_COE{
struct ZLP_YX_COE YX_Coe[16];
struct ZLP_YC_COE YC_Coe[16];
struct ALARM_COE Alarm_Coe[16];
};
struct DCU_COE{
struct ZLP_YX_COE YX_Coe[16];
struct ZLP_YC_COE YC_Coe[8];
struct ALARM_COE Alarm_Coe[16];
};
struct ACU_COE{
struct ZLP_YX_COE YX_Coe[8];
struct ZLP_YC_COE YC_Coe[16];
struct ALARM_COE Alarm_Coe[16];
};
struct YXU_COE{
struct ZLP_YX_COE YX_Coe[56];
struct ALARM_COE Alarm_Coe[16];
};
//05-1-31新增
struct LOCAL_COE{
struct ZLP_YX_COE YX_Coe[32];
struct ZLP_YC_COE YC_Coe[32];
struct ALARM_COE Alarm_Coe[32];
};//05-1-31新增
/************************************************************************/
/*2005-10-11京顺要求把交流采集单元的遥信再增加8个,并且为了和已出厂的兼容
增加的内容要放在原来的预留字段处,因此定义下面结构 */
/************************************************************************/
struct ACU_COE_YX{
struct ZLP_YX_COE YX_Coe[8];
};
struct DF0241_COE{
struct LOCAL_COE LOCAL_Coe;
struct MSU_COE MSU_Coe[8];//充电机控制单元
struct DCU_COE DCU_Coe[8];//交直流采集单元
struct ACU_COE ACU_Coe[4];//交流采集单元
struct YXU_COE YXU_Coe[8];//遥信采集单元
unsigned short Sample_Time; //历史数据保存间隔时间,单位:分(10-60)
struct ACU_COE_YX ACU_Coe_YX[4];//交流采集单元新增遥信
unsigned char FreeArea[384];
unsigned short CheckSum;
};
/************************************************************************/
/* */
/************************************************************************/
#define SETPARA ((CMainFrame*)AfxGetMainWnd())->SetPara(p);
#define SETDF0241PARA \
((CMainFrame*)AfxGetMainWnd())->SetDF0241Para(p);\
SetModified();
const BYTE HEAD_DF0420 = 0x7E; //0420帧头
//组帧
const BYTE SMS_CALL = 100; //召唤短消息模块初始设置
const BYTE SMS_SET= 101; //短消息模块设置
const BYTE SMS_RESET= 102; //短消息模块复位
const BYTE QUERY_CLOCK = 1; //对钟
const BYTE QUERY_YK_SELECT = 2; //遥控选择
const BYTE QUERY_YK_EXECUTE = 3;//遥控执行
const BYTE QUERY_YK_CANCEL = 4; //遥控取消
const BYTE QUERY_YT = 5; //遥调
const BYTE QUERY_YCYXSOE = 6; //一般查询
const BYTE PARA_UPLOAD_MSU = 10;//MSU参数上装
const BYTE PARA_UPLOAD_DCU = 11;//DCU参数上装
const BYTE PARA_UPLOAD_ACU = 12;//ACU参数上装
const BYTE PARA_DOWNLOAD_MSU = 13;//MSU参数下装
const BYTE PARA_DOWNLOAD_DCU = 14;//DCU参数下装
const BYTE PARA_DOWNLOAD_ACU = 15;//ACU参数下装
const BYTE PARA_DOWNLOAD_ALARMER = 16;//报警控制器参数下装
const BYTE PARA_UPLOAD_ALARMER = 17;//报警控制器参数下装
const int PARA_COUNT = 34;//参数上下装对话框中的最大编辑框数目
const int PARA_COUNT_MSU = 26;
const int PARA_COUNT_DCU = 12;
const int PARA_COUNT_ACU = 10;
//参数保存后打开根据存储的个数判断是否是0241参数格式的文本,即该文本文件中至少有8+1(模块类型)
//个数值,如果以后再增加了新的类型,PARA_COUNT_MIN需要修改成最少个数的参数
const int PARA_COUNT_MIN = PARA_COUNT_ACU;
#pragma pack(1)
struct MSU_PARA{
BYTE Head; // "MSU"
unsigned short V_Over; // 均充电压(V)(带一位小数位)
unsigned short V_Out; // 浮充电压(V)(带一位小数位)
unsigned short I_Over; // 限流均充电流(A)(带一位小数位)
unsigned short I_Out; // 均充电流下限(A)(带一位小数位)
unsigned short TO_Over_V; // 转均充电压(V)(带一位小数位)
unsigned short HY_time; // 恒压均充时间(分)
unsigned short FD_To_Over; // 转均充放电时间(分)
unsigned short Charge_Period; // 电池均充周期(天)(禁止周期均充时为0)
unsigned short FLQ1Rate; // 分流器1额定电流(A)
unsigned short FLQ2Rate; // 分流器2额定电流(A)
BYTE MKI_rate; // 整流模块额定电流(A)
BYTE MK_Type; // 模块类型
BYTE DCP_To_FLQ; // DCP控制分流器选择位(0:FLQ1,1:FLQ2)
BYTE Center_Temp; // 温度补偿中心温度(℃)
BYTE Temp_width; // 温度补偿范围(℃)
unsigned short Slope; // 温度补偿系数(mV/℃)
unsigned short Battery_Cap; // 电池容量(AH)
//unsigned short V_Low; // 下限电压(V)
unsigned short Battery_cut; // 电池切断电压(V)(带一位小数位,为0时禁止切断)(48V系统)
unsigned short Load_cut; // 负载切断电压(V)(带一位小数位,为0时禁止切断)(48V系统)
unsigned short Battery_connect;// 电池恢复电压(V)(带一位小数位)(48V系统)
unsigned short Load_connect; // 负载恢复电压(V)(带一位小数位)(48V系统)
//////////////////////////////////////////////////////////////////////////
//以下是徐红春2005-6-1要求增加
BYTE YXANot; // 遥信1取反系数(某位为1取反)
BYTE YXBNot; // 遥信2取反系数(某位为1取反)
//以下是徐红春2005-6-23要求增加
BYTE MK_Num; // 模块数量
BYTE MKIS_Min; // 模块总有效电流(A)
BYTE MKI_Min; // 单模块有效电流(A)(带一位小数位)
unsigned short temp1; // 备用参数1
unsigned short temp2; // 备用参数2
unsigned short temp3; // 备用参数3
unsigned short temp4; // 备用参数4
//////////////////////////////////////////////////////////////////////////
unsigned short CheckSum;
};
struct DCU_PARA{
BYTE Head; // "DCU"
unsigned short ACV_High; // 交流电压告警上限(V)(带一位小数位,不告警时为0)
unsigned short ACV_Low; // 交流电压告警下限(V)(带一位小数位,不告警时为0)
unsigned short DCV_High[3]; // 直流电压告警上限(V)(带一位小数位,不告警时为0)
unsigned short DCV_Low[3]; // 直流电压告警下限(V)(带一位小数位,不告警时为0)
unsigned short ACI_High; // 交流电流告警上限(A)(带一位小数位,不告警时为0)
unsigned short ACI_Rate; // 交流电流互感器额定输入(A)(带一位小数位)(In/4V)
//////////////////////////////////////////////////////////////////////////
//以下是徐红春2005-6-1要求增加
BYTE YXANot; // 遥信1取反系数(某位为1取反)
BYTE YXBNot; // 遥信2取反系数(某位为1取反)
unsigned short temp1; // 备用参数1
unsigned short temp2; // 备用参数2
unsigned short temp3; // 备用参数3
unsigned short temp4; // 备用参数4
//////////////////////////////////////////////////////////////////////////
unsigned short CheckSum;
};
struct ACU_PARA{
BYTE Head; // "ACU"
unsigned short ACV_High[2]; // 交流电压告警上限(V)(带一位小数位,不告警时为0)
unsigned short ACV_Low[2]; // 交流电压告警下限(V)(带一位小数位,不告警时为0)
unsigned short ACI_High[2]; // 交流电流告警上限(A)(带一位小数位,不告警时为0)
unsigned short ACI_Rate[2]; // 交流电流互感器额定输入(A)(带一位小数位)(In/4V)
//////////////////////////////////////////////////////////////////////////
//以下是徐红春2005-6-1要求增加
BYTE YXANot; // 遥信1取反系数(某位为1取反)
BYTE YXBNot; // 遥信2取反系数(某位为1取反)
unsigned short temp1; // 备用参数1
unsigned short temp2; // 备用参数2
unsigned short temp3; // 备用参数3
unsigned short temp4; // 备用参数4
//////////////////////////////////////////////////////////////////////////
unsigned short CheckSum;
};
//=====================================================
//报警控制器参数20060310
//#pragma pack(push,GrpSta,1)
typedef struct tagGroupStationPara //
{
BYTE Head; //0x55
DWORD Alarm32s_Enable;//32路报警输入的报警允许,4Byte
BYTE FangQu_BCHControl_ID[32];//防区布撤防控制号
DWORD Alarm_Area[32];//32路报警输入的防区号,某BIT为一代表在对应防区
DWORD Node_Out[32];//32路报警输入的空节点输出号,某BIT为一代表对应此路输出
WORD Alarm_Ring_Delay;//报警停止后,响铃延时时间
DWORD ALarm_Status;//当前布撤防状态
BYTE YxNotA;
BYTE YxNotB;
BYTE YxNotC;
BYTE YxNotD;
char StandBy[15];
WORD CrcCode; // CRC校验码
}GROUPSTATION,*LPGROUPSTATION;
//============================================
#pragma pack()
//报警控制器数据返回时标识当前操作类型
const BYTE ALARMER_DOWNLOAD_FAIL = 1;
const BYTE ALARMER_DOWNLOAD_SUCCESS = 2;
const BYTE ALARMER_UPLOAD_FAIL = 3;
const BYTE ALARMER_UPLOAD_SUCCESS = 4;
#define MSG_DOWNLOADRETURN WM_USER + 3//自定义参数下装返回消息
const int MAX_BUF_LEN = 1024*2;
const int BUF_LEN = 1024;
const int SEND_EDIT_LEN = 1024;//手动发送时EDIT中字符数目
struct MODBUS_PARA{ //modbus规约中的起始地址遥测个数和遥信个数
WORD start_addr;
WORD yccount;
WORD yxcount;
};
//#pragma pack(pop,GrpSta)
/************************************************************************/
/* 短消息模块维护 */
/************************************************************************/
#define PHONE_NUM 6
typedef struct PARA_AT24C08{
BYTE Name[24]; //12个汉字的空间
BYTE Service_number[20]; //短消息服务中心号码
BYTE Password[6]; //口令 必须是数字的ASII
BYTE Cellphone_valid[PHONE_NUM]; // PHONE_NUM个手机号码的有效标志
BYTE Cellphone_NO[PHONE_NUM][20]; // PHONE_NUM个手机号码
BYTE Contol_key; //备用控制字,暂时没有使用
//unsigned short Crccode; // 校验码
}SMS_SETUP;
const BYTE GONGZHUANG_YCOUNT = 32;//工装遥测个数
const BYTE GONGZHUANG_YXOUNT = 64;//工装遥信个数
const BYTE GONGZHUANG_BOARD_MASTER = 1;//主控板
const BYTE GONGZHUANG_BOARD_SIGNAL = 2;//信号板
//工装数据返回时标识当前操作类型
const BYTE GONGZHUANG_TEST_YT = 1;
const BYTE GONGZHUANG_TEST_I2C = 2;
const BYTE GONGZHUANG_TEST_SPI = 3;
const BYTE GONGZHUANG_TEST_ADDRLINE = 4;
const BYTE GONGZHUANG_TEST_CLOCK = 5;
const BYTE GONGZHUANG_TEST_COMM = 6;
const BYTE GONGZHUANG_TEST_CLOCKCALL = 7;
const BYTE GONGZHUANG_TEST_YCYX = 8;
const BYTE GONGZHUANG_TEST_BUZZER = 9;
#define GZ_TEST_OK _T("测试结果:正确")
#define GZ_TEST_ERROR _T("测试结果:错误")
#define MSG_GZWND_DESTROY WM_USER + 4//自定义工装窗口销毁返回消息
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -