📄 common.h
字号:
//-------------时间----------------------------
#define _ID_TIMER 901
#define _ID_TIMER_HIST ( _ID_TIMER+1 )
#define _ID_TIMER_CARDCOM ( _ID_TIMER+2 )
#define _ID_TIMER_ALARM ( _ID_TIMER+3 )
long nowseconds;
long oldseconds;
unsigned int counter_temp;//定时自动退出
//-----------页面-------------------------
#define WIDTH 640
#define HEIGHT 480
#define TOP 40
#define TOP2 40
#define LEFT 80
#define BOTTOM 40
#define BOTTOM2 40
#define LEFT_W 80
#define LEFT_H 74 //440/6
#define LEFT_BN_H LEFT_H
#define BN_ 80
#define BNX BN_
#define BNY 0
#define BNWidth 60
#define BNHeight 30
#define ST_W 60 //静态控件宽度
#define ST_H 25
#define CONFIG_MODE 0
#define PACT_MODE 1 //默认页面
#define DIGITAL_MODE 2 //数显页面
#define BAR_MODE 3
#define RTCURVE_MODE 4
#define STATIC_MODE 5
#define HIST_MODE 6
#define CUMUL_MODE 7
#define ALERT_MODE 5
#define ES_DIGIT_ONLY 1 //文本框仅仅允许输入数字的属性
#define ES_ALPHA_ONLY 2
BOOL bLeftShow; //左侧菜单是否在显示
BOOL bDoorOpen; //底侧门已经开了bLeftShow=1
BOOL bfresh_conf; //更新组态总页面标志
BOOL Bfreshdisp;
unsigned short last_mode; //上一页面的显示模式
unsigned short gdisp_mode; //range: 0-5, 0表示不是显示模式
#define PCHAN_MAX 6 // 显示通道的页面总数
/*定义按键响应*/
int keydowned;
//组态页面焦点移动
#define KEY_UP SCANCODE_W
#define KEY_DOWN SCANCODE_S
#define KEY_LEFT SCANCODE_A
#define KEY_RIGHT SCANCODE_D
#define KEY_ENTER SCANCODE_ENTER
#define KEY_EXIT (SCANCODE_Q)
#define KEY_PAGE SCANCODE_W
#define KEY_MODE SCANCODE_S
#define KEY_HIST SCANCODE_A
#define KEY_EVENT SCANCODE_D
#define KEY_STAT SCANCODE_ENTER
#define KEY_DOWNLOAD (SCANCODE_F3)
#define KEY_CLEAR (SCANCODE_F4)
#define KEY_OPERATE (SCANCODE_F5)
#define KEY_CONF (SCANCODE_F6)
#define KEY_CUMUL (SCANCODE_F7)
#define KEY_SEARCH (SCANCODE_F7)
#define KEY_SHUT SCANCODE_ESCAPE
#define KEY_LAST (SCANCODE_F3)
#define KEY_NEXT (SCANCODE_F4)
#define KEY_PARA (SCANCODE_F5)
#define KEY_CARD (SCANCODE_F6)
#define KEY_SET (SCANCODE_F7)
#define KEY_RETURN SCANCODE_ESCAPE
#define KEY_OPEN (SCANCODE_F9)
#define KEY_DLEFT (SCANCODE_F3)
#define KEY_DRIGHT (SCANCODE_F4)
//-----------顶端状态栏-------------------
RECT top_rect; //状态栏区域
unsigned char memo[10]; //顶端状态栏 存储百分比
unsigned char evnt[10];
unsigned char topinfo[40];
unsigned char str_time[20];
unsigned char str_date[20];
unsigned short hour,minu,seco,mont,days;
unsigned short year;
#define dim(x) (sizeof(x) /sizeof(x[0]))
#define MSG_USER1 (MSG_USER+3)
#define MSG_COM (MSG_USER + 1)
#define MSG_READRECORD (MSG_USER + 2)
int RealIndex; //绘图点的 下标
int RealIndex_max; //点数目最大值
BOOL fullscr;
unsigned short ai_chan_sum;//ai通道总数
unsigned short math_chan_sum;
unsigned short gchannum;//所有通道总数
unsigned short gchanpage;//通道页面数,变量
unsigned short gchanpage_sum;//总页面数
//----------系统用----------------
BITMAP direction_bmp[6];
BITMAP hist_bmp[6];
BITMAP save_bmp;
BITMAP lamp_bmp[3];
BITMAP staticbmp[6];
BITMAP event_bmp[6];
BITMAP formulabmp[24];
BITMAP BarAlertBmp[6];
HWND gMainWnd;
BOOL bSave;
int interval;
//报警页面全局变量
unsigned int alarm_id_type;
unsigned short alarm_test_id;
//显示页面有关的变量
int disp_mode;
int disp_direction;
gal_pixel backcolor;
int gzoom;
unsigned short histzoom;
int VLinePos;
BOOL bdispcurve;
//组态页面初始化公共部分
BOOL bmath_dlg;//数学页面对话框是否已经显示
BOOL bai_dlg;
BOOL bdi_dlg;
BOOL b_ai_close;
BOOL b_math_close;
BOOL b_di_close;
HWND math_dlg;
HWND ai_dlg;
HWND di_dlg;
//----------通讯有关---------------------------
/*从仪表来的数据*/
int id;
int channel_max;
BOOL devices_registed;//设备已经注册then =1
BOOL b_com_timeout;
BOOL channel_confisted;//通道已经注册then =1,inited in ChanInit();
BOOL b_wr_config; //读写组态信息状态,当不是读写组态时候,更新实时数据
#define TIMEOUT_COMMUTION 10
int wait_flag;
/*与显示有关*/
unsigned char *line_color; //显示曲线的颜色
int line_width ; //显示曲线的宽度
int line_hidth ; //显示曲线的高度
int display_low; //通道显示低限值
int display_high; //通道显示高限值
int display_mode; //显示模式
BOOL display_horv; // 1:水平显示;0:垂直显示
unsigned char display_bcolar; // 背景颜色
/*与工作类型有关*/
BOOL enable_record; // 1:开始记录量测值;0:停止记录量测值
BOOL enable_alert; // 1: 记录警报的发生(在事件/警报报表上);0:记录警报的不发生(在事件/警报报表上)
BOOL enable_event; // 1: 记录事件的发生(在事件/警报报表上);0:记录事件的不发生(在事件/警报报表上)
BOOL enable_sound; // 1: 蜂鸣器发生;0: 不发生。(可按任意键停)
BOOL enable_report; // 1:将计数器和加总器的结果汇入报告清单
BOOL start_DO; //启动数字输出固定在ON状态
int start_OFF; //启动数字输出固定在OFF状态
int start_DOtoOFF; //启动数字ON,但事件接触后即回复OFF
int start_timer; //启动定时器
int start_add_moren; //启动累加器,以默认值为基数开始累加
int start_add_zero; //启动累加器,以0为基数开始累加
int start_add; //启动累加器
int stop_add; //关闭累加器
int start_count_up; //启动计数器,累加计数
int start_count_up; //启动计数器,递减计数
int start_count_moren; //启动计数器, 以默认值为基数开始计数
int start_count_zero; //启动计数器, 以0为基数开始计数
unsigned short do_chan_sum;//do通道总数
//设备相关used in : sysinfo.c meter.c
#define SetValue(x,y) (SendDlgItemMessage(hDlg,x,CB_SETCURSEL,y,0))
//---------------------------------------
typedef struct{
unsigned short dev_id; //通道所属设备地址
unsigned short x; //总览页面的坐标
unsigned short y; //总览页面的坐标
unsigned short width; //总览页面的数据区宽
unsigned short height; //总览页面的数据区高
int number; //通道号码
int ipv;
int dot;
float fpv;
unsigned char data[20] ; //数据PV
unsigned short point[640];//曲线显示的点位置,1 屏幕 640 个点
unsigned short oldpoint[640]; //用来曲线显示调用时非同时性赋值用
gal_pixel color; //通道颜色包括曲线
gal_pixel color_old;
int pen_width;//曲线宽度
}CHANDISP;//
CHANDISP *channel_disp; //显示显示设置用
typedef struct{
unsigned char desc[20]; //描述
unsigned short fontsize; //数据字体大小
unsigned char unit[6]; //单位
unsigned short enable;
int pv_addr;
int id;
unsigned char data[20] ; //数据PV
unsigned char str_pv[12];
unsigned char name[10]; //记录文件用,用通道的名字命名
float fpv;
unsigned char formation[30] ;
short ipv;
int pv;
unsigned short dot;
float hh_alarm;//400
unsigned short line1_job1; //报警上上限
unsigned short line1_job2;
unsigned short hh_relay; //磁滞
float h_alarm; //300 inited in the digital.c
unsigned short line2_job1; //报警上限
unsigned short line2_job2;
unsigned short h_relay; //磁滞
float l_alarm;//20 //报警下下限
unsigned short line3_job1;
unsigned short line3_job2;
unsigned short l_relay; //磁滞
float ll_alarm;//10//报警下下限
unsigned short line4_job1;
unsigned short line4_job2;
unsigned short ll_relay; //磁滞
BOOL h_enabled; //报警登陆使能
BOOL hh_enabled;
BOOL l_enabled;
BOOL ll_enabled;
unsigned short alarm_state; //报警 状态
unsigned int alarm_num; //警报条数
float offset; //偏移值
float gain; //倍增值
float low;//量程
int h_limit;//500 棒图显示范围的上限,与PV值对应
int l_limit;
unsigned short interval;//单位
float high;
}CHANCONF;//
CHANCONF *channel_conf; // 通讯注册用
typedef struct{
long first; //数据PV
long last;//记录文件用,用通道的名字命名
unsigned short interval;//单位
int number ;
unsigned short point[30];
} STRURECORD;
typedef struct{
unsigned char data[20] ; //数据PV
unsigned char name[10];//记录文件用,用通道的名字命名
unsigned char unit[5];//单位
short ipv;
unsigned short dot;
short point[640];
unsigned short guage_x;//刻度
unsigned short guagedata;//刻度
unsigned short number ; //本通道历史页面有效点个数
unsigned short index_num ; //显示需要的索引总个数
STRURECORD *record;
short record_type; //0: 关闭记录,1表示实时,2 平均// 3表示最小,4表示最大值
int interval; //不同的记录间隔 ==speed
FILE *fd;
} CHANNALHIST;
CHANNALHIST *channel_hist;
//累积信息
typedef struct{
unsigned char name[5]; //累积通道的名字
int interval; //累积通道的时间间隔
int s_year; //累积通道的开始时间
int s_month;
int s_day;
int s_hour;
int s_minute;
int s_second;
} CU_DATA;
CU_DATA cu_data[10];
struct channel{
unsigned char channel_name[5]; //这个通道的名字
unsigned char *pv;
float pvvalue;
};
struct thermo {
unsigned char *name; //传感器的名字
unsigned char *unit; //传感器的单位
int ranged; //传感器的量程下限
int rangeu; //传感器的量程上限
};
//设备属性
typedef struct{
int PV1;
int PV2;
int PV3;
int PV4;
unsigned int wp_type ; //WP.DEV中的TYPE值。设备类型 ."000" -"999"方便查询wp.dev文件
int enable; //设备使能
int boudrate; //通讯波特率
int dev_addr; //设备地址
int dev_total_channel; //本设备启用了的通道总数
int first_channel_id;//本设备第一个通道的ID
int dev_id; //序号ID
int dev_type;// 取 WP-R协议中类型值 51 表示流浪卡,11表示数显卡
char dev_name[30]; //仪表的名字
int erro_type;//通讯错误类型
}DEVICES_STRU;
DEVICES_STRU * devicesinfo;
typedef DEVICES_STRU *pDEVICES_STRU;
typedef struct{
BOOL flag;//是否有输出
int dev_id; //来源哪个设备
}DO_STRU;
DO_STRU * doinfo;
typedef struct{
BOOL flag;
} TIMERINFO;
TIMERINFO *timer_stat; //显示用
//公用的逻辑结构
typedef struct{
unsigned char* spClassName; //Control name
DWORD dwStyle; //style
int conx; //x position
int cony; //y position
int conw; //width
int conh; //height
int conID; //control ID
unsigned char* spCaption; //Caption name
int list_height;
HWND hwndControl;
}CTL;
//初始化用到的参数
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -