?? 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 + -