⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 alarm.h

📁 采用MINIGUI开发的一套GUI界面
💻 H
字号:



	    int dev_id;	       		//板卡号
	    int channel_id;    		//通道号
	    int clear_alert_flag;       //消报标志
	    int alert_type;              //报警类型
#define    LO  	           0                //报警类型
#define    HI	                  1
#define    LOLO	           2         
#define    HIHI                3
#define    UP_R               4
#define    DOWN_R         5
#define    NORMAL          6        

#define  ON_RECORD  1
#define  STOP_RECORD    2
#define  ON_ALARM  3
#define  ON_EVENT  4
#define  ON_SOUND   5


#define  ON_DO     1
#define  OFF_DO    2

#define  ON_T1  3
#define  ON_C1  15
#define  ON_ADD  27
#define  OFF_ADD  27
#define  ON_REPORT  28

#define  ALARM_  800
#define  ALARM_ALERT_LIST		(ALARM_+1)
#define  ALARM_REPORT_LIST		(ALARM_+2)
#define  ALARM_ALARM          		(ALARM_+3)
#define  ALARM_REPORT        		(ALARM_+4)
#define  ALARM_LAST            		(ALARM_+5)
#define  ALARM_NEXT         		(ALARM_+6)
#define  ALARM_DATE      			(ALARM_+7)
#define  ALARM_MODE     			(ALARM_+8)
#define  ALARM_FIRST  			(ALARM_+9)
#define  ALARM_UP             		(ALARM_+10)
#define  ALARM_DOWN       		(ALARM_+11)
#define  ALARM_ENTER       		(ALARM_+12)
#define  ALARM_BACK         		(ALARM_+13)
#define  ALARM_MYBUTTON 		(ALARM_+14)

#define  ALARM_DOWNLOAD  		(ALARM_+15)
#define  ALARM_CLEAR          		(ALARM_+16)
#define  ALARM_OPREATE      		(ALARM_+17)
#define  ALARM_CONFIGURE  		(ALARM_+18)
#define  ALARM_CTRL            		(ALARM_+19)
#define  ALARM_CLOSE          		(ALARM_+20) 


#define    ALARM_LIST            6
#define    REPORT_LIST		  5
#define    MAX_ALARM_NUM	 24
#define    DAY	        0
#define    WEEK	        1
#define    MONTH	        2
#define    LIGHTBLUE        180
static int alarm_number  ;
 int period  ;


typedef struct _lsthdr
  {
    struct _lsthdr *pNext;
    int x;
    int y;
    int width;
    int height;
    BOOL up;
    //SORTTYPE sort;
    unsigned char *pTitle;

  }
  LSTHDR;
  typedef LSTHDR *PLSTHDR;
  typedef struct _subitemdata
  {
    struct _subitemdata *pNext;
    unsigned char *pszInfo;
  }
  SUBITEMDATA;
  typedef SUBITEMDATA *PSUBITEMDATA;
typedef struct _itemdata
  {
    struct _itemdata *pNext;
    int nTextColor;
    BOOL bSelected;
    int nRows;//used for item selected ,valid is bSelected = true
    PSUBITEMDATA pSubItemHead;
  }
  ITEMDATA;
  typedef ITEMDATA *PITEMDATA;
typedef struct _lstvwdata
  {
    int nCols;
    int nRows;
    int nVisableRows;
    int nFirstVisableRow;
    int nOriginalX;
    int nOriginalY;
    BOOL bBorderDraged;
    BOOL bItemClicked;
    //static BOOL bMouseInBorder = FALSE;

    PLSTHDR pItemDraged;
    PLSTHDR pItemClicked;
    PITEMDATA pItemSelected;
    int oldMouseX, oldMouseY;
    int nItemDraged;
    int nItemSelected;
    int nItemHeight;
    int nHeadHeight;

    HWND hWnd;
    PLSTHDR pLstHead;
    PITEMDATA pItemHead;
  }
  LSTVWDATA;
  typedef LSTVWDATA *PLSTVWDATA;

typedef struct _ALARMTABLE{
int num;
unsigned char * type;
unsigned char * from;
float value;
}ALARMTABLE;
typedef ALARMTABLE* PALARMTABLE;

ALARMTABLE alarm_table;

typedef struct _DATE{
int year;
int month;
int day;
}DATE;
typedef DATE* PDATE;
DATE report_date;
//按键定义

#define  KEYE_MODE	   SCANCODE_W
#define  KEYE_UPDOWN 	SCANCODE_S
#define  KEYE_UP 	SCANCODE_A
#define  KEYE_DOWN 	SCANCODE_D
#define  KEYE_ENTER 	SCANCODE_ENTER
#define  KEYE_BACK 	SCANCODE_Q


#define  KEYE_SHUT 	SCANCODE_ESCAPE

//左边的按钮
#define LBUTTON_X 2
#define LBUTTON_Y 0
#define LBUTTON_W 80
#define LBUTTON_H 73 //(HEIGHT-top/6) 

//底部的按钮
#define BBUTTON_X 82//(LBUTTON_X+LBUTTON_W)
#define BBUTTON_Y 398   //(HEIGHT-LEFT-BOTTOM)
#define BBUTTON_W 80  //((WIDTH-LEFT)/7)   (640-80)/7
#define BBUTTON_H 40
//列表框
#define LV_X 82
#define LV_Y 32
#define LV_W  550    //640-80
#define LV_H  365

static CTRLDATA CtrlEvent[] =
{
    { "listview",  WS_BORDER | WS_CHILD | WS_VSCROLL |WS_VISIBLE ,LV_X, LV_Y, LV_W, LV_H,ALARM_ALERT_LIST, "",0 },
    {"listview",WS_BORDER | WS_CHILD |WS_VSCROLL,LV_X, LV_Y+40, LV_W, LV_H-40, ALARM_REPORT_LIST, "", 0},
    {CTRL_STATIC,SS_CENTER, 240, 35, 200, 25, ALARM_DATE, "03/12/2005",  },

    { "button",WS_CHILD | BS_PUSHBUTTON,LV_X, 35, 40, 25, ALARM_LAST, "<",0},
    {"button",WS_CHILD | BS_PUSHBUTTON,630-40, 35, 40, 25,ALARM_NEXT, ">",0 },	
    {"button",WS_CHILD | WS_VISIBLE | BS_PUSHBUTTON,  LV_X, 5, 80, 25,ALARM_ALARM, "事件/警报",0},
    {"button",WS_CHILD | WS_VISIBLE | BS_PUSHBUTTON, LV_X+90, 5, 80, 25,ALARM_REPORT, "      报告      ",0},
//左边的按钮
    { "button", WS_CHILD | WS_VISIBLE | BS_PUSHBUTTON |BS_MULTLINE, LBUTTON_X, LBUTTON_Y, LBUTTON_W, LBUTTON_H, ALARM_MODE, "\n事件\n模式\n W",  0 },
    { "mybutton",WS_CHILD|BS_BITMAP| BS_PUSHBUTTON|WS_TABSTOP|WS_VISIBLE,  LBUTTON_X, LBUTTON_Y+LBUTTON_H, LBUTTON_W, LBUTTON_H,ALARM_FIRST,  "\n\n首尾\n S",(DWORD)(&event_bmp[0]) },
    {"mybutton",WS_CHILD|BS_BITMAP| BS_PUSHBUTTON|WS_TABSTOP|WS_VISIBLE, LBUTTON_X, LBUTTON_Y+LBUTTON_H*2, LBUTTON_W, LBUTTON_H,  ALARM_UP,    "\n\n上移 \n A",    (DWORD)(&event_bmp[1])  },
    {"mybutton",WS_CHILD|BS_BITMAP| BS_PUSHBUTTON|WS_TABSTOP|WS_VISIBLE,LBUTTON_X, LBUTTON_Y+LBUTTON_H*3, LBUTTON_W, LBUTTON_H,ALARM_DOWN, "\n下移 \n D", (DWORD)(&event_bmp[2])},
    { "mybutton",WS_CHILD|BS_BITMAP| BS_PUSHBUTTON|WS_TABSTOP|WS_VISIBLE , LBUTTON_X, LBUTTON_Y+LBUTTON_H*4, LBUTTON_W, LBUTTON_H, ALARM_ENTER, "\n确认 \nEnter",  (DWORD)(&event_bmp[3]) },
    { "button", WS_CHILD | WS_VISIBLE | BS_PUSHBUTTON|BS_MULTLINE,LBUTTON_X, LBUTTON_Y+LBUTTON_H*5, LBUTTON_W, LBUTTON_H, ALARM_BACK,     "\n返回 \nQ",    0  },
//底部的按钮
    { "button", WS_CHILD | WS_VISIBLE | BS_PUSHBUTTON|BS_MULTLINE,BBUTTON_X,BBUTTON_Y,BBUTTON_W,BBUTTON_H,ALARM_DOWNLOAD, "下载\nF3",  0},
    {"button", WS_CHILD | WS_VISIBLE | BS_PUSHBUTTON|BS_MULTLINE, BBUTTON_X+BBUTTON_W,BBUTTON_Y,BBUTTON_W,BBUTTON_H,ALARM_CLEAR,"清除\nF4",0},
    {  "button",WS_CHILD | WS_VISIBLE | BS_PUSHBUTTON|BS_MULTLINE,BBUTTON_X+BBUTTON_W*2,BBUTTON_Y,BBUTTON_W,BBUTTON_H,ALARM_OPREATE,  "操作\nF5",0},
    {"button",WS_CHILD | WS_VISIBLE | BS_PUSHBUTTON|BS_MULTLINE,BBUTTON_X+BBUTTON_W*3,BBUTTON_Y,BBUTTON_W,BBUTTON_H, ALARM_CONFIGURE, "组态\nF6",0 },
    { "button",WS_CHILD | WS_VISIBLE | BS_PUSHBUTTON,BBUTTON_X+BBUTTON_W*4,BBUTTON_Y,BBUTTON_W,BBUTTON_H,ALARM_CTRL,  "", 0 },
    { "button",WS_CHILD | WS_VISIBLE | BS_PUSHBUTTON|BS_MULTLINE, BBUTTON_X+BBUTTON_W*6,BBUTTON_Y,BBUTTON_W,BBUTTON_H,ALARM_CLOSE,"关机\nESC", 0 },


    
};
static DLGTEMPLATE DlgEvent =
{
     WS_VISIBLE,
    WS_EX_NONE,
    0, TOP, WIDTH, HEIGHT-TOP,
    "Event/Alert",
    0, 0,
    19, NULL,
    0
};
static void DownloadItem(HWND hDlg );
static void AlarmHappen(HWND hDlg, unsigned short palarm_type,int id);
static void AlarmSolve(HWND hDlg ,int num);
static void AlarmOver(HWND hDlg ,int num);
static void AlarmClear(HWND hDlg );
static void AlarmInit(HWND hDlg);
static void ForwardDate(HWND hDlg);
static void BackDate(HWND hDlg);
int  EventProc (HWND hDlg, int message, WPARAM wParam, LPARAM lParam);


void DlgConfAlert(HWND hWnd);

void CheckMemory(void);
BOOL DealAlarmReport(HWND hDlg,unsigned int alarm_type);
unsigned int GetAlarmType(int id);
void SecondToTime(long seconds);

long GetSecond(void);
static void AlarmHappenTest(HWND hDlg);//PALARMTABLE alarm ,




void CheckMemory(void);


⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -