📄 sysinfo.c
字号:
/*
本文件包括以下模块:
1. 系统信息页面 ,主函数为:DlgConfSystem
2. 底部按钮相应的下载对话框页面
主函数为:DlgDownload
3. 底部按钮相应的清除对话框页面
主函数为:DlgClean
*/
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <time.h>
#include <unistd.h>
#include <pwd.h>
#include <math.h>
#include <minigui/common.h>
#include <minigui/minigui.h>
#include <minigui/gdi.h>
#include <minigui/window.h>
#include <minigui/control.h>
#include <sys/types.h>
#include <sys/shm.h>
#include <sys/ipc.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include "common.h"
#include "fonts.h"
#include "sysinfo.h"
DLGTEMPLATE DlgSetSystem =
{
WS_VISIBLE,
WS_EX_NONE,
0, TOP,WIDTH, HEIGHT-TOP,
"系统数据",
0, 0,
6 , NULL,
0
};
void ShowSysInfo(HDC hdc)
{
int dev_id;
unsigned char str_stat[10];
unsigned char str_temp[10];
static unsigned char * info [6] =
{ "系统版本: Ver1.0",
"存储空间剩余容量/全部容量: 55345KB/24533kb",
"插槽1: AI1 AI2 AI3 AI4 AI5 AI6 ",
"插槽2: AI7 AI8 AI9 AI10 AI11 AI12 AI13 ",
"插槽3: DI1 DI2 DI3 DI4 DI5 DI6 AI7 ",
"插槽4: No Card"
};
HDC hmemDC;
hmemDC=CreateCompatibleDC(hdc);
SetBrushColor(hmemDC,PIXEL_lightgray);//lightwhite
SetBkMode(hmemDC,BM_TRANSPARENT);//? SetBkMode
FillBox(hmemDC,0,0,WIDTH-LEFT,HEIGHT-TOP-BOTTOM);
SetBkMode(hmemDC,BM_TRANSPARENT);
//设置字体颜色
SetTextColor(hmemDC,PIXEL_black); //矩形图TAG
SelectFont(hmemDC,songgb16font);
//读取设备信息
strcpy(str_temp,"系统信息");
TextOut(hmemDC,140,60+dev_id*25,str_temp);
for(dev_id=0;dev_id<6;dev_id++)
{
devicesinfo[dev_id].dev_addr= dev_id+1;
devicesinfo[dev_id].first_channel_id=0;
devicesinfo[dev_id].dev_total_channel=6;
devicesinfo[dev_id].enable=1;
devicesinfo[dev_id].boudrate=4800;
//strcat(str_stat,str_temp);
TextOut(hmemDC,100,60+dev_id*35,info[dev_id]);
}
BitBlt(hmemDC,0,0,WIDTH-LEFT,HEIGHT-TOP-BOTTOM,hdc,LEFT,TOP,0);
DeleteCompatibleDC(hmemDC);
}
int SystemDialogProc (HWND hDlg, int message, WPARAM wParam, LPARAM lParam)
{
HDC hdc;
gal_pixel bar_back_color,bar_rect_color,bar_text_color;
int id;
id= LOWORD (wParam);
switch (message)
{
case MSG_INITDIALOG:
return 1;
case MSG_SHOWWINDOW:
{
}
break;
case MSG_PAINT:
hdc = BeginPaint(hDlg);
ShowSysInfo(hdc ) ;
EndPaint(hDlg,hdc);
break;
case MSG_KEYDOWN:
if(!keydowned)
{
if(id==KEY_LEFT)SendDlgItemMessage(hDlg, SYSINFO_LEFT, MSG_LBUTTONDOWN, 0,0);
if(id==KEY_RIGHT)SendDlgItemMessage(hDlg, SYSINFO_RIGHT, MSG_LBUTTONDOWN, 0,0);
if(id==KEY_UP)SendDlgItemMessage(hDlg, SYSINFO_UP, MSG_LBUTTONDOWN, 0,0);
if(id==KEY_DOWN)SendDlgItemMessage(hDlg, SYSINFO_DOWN, MSG_LBUTTONDOWN, 0,0);
if(id==KEY_ENTER)SendDlgItemMessage(hDlg, SYSINFO_ENTER, MSG_LBUTTONDOWN, 0,0);
if(id==KEY_DLEFT)SendDlgItemMessage(hDlg, SYSINFO_DLEFT, BM_SETSTATE , BST_PUSHED ,0);
if(id==KEY_DRIGHT)SendDlgItemMessage(hDlg, SYSINFO_DRIGHT, BM_SETSTATE , BST_PUSHED ,0);
keydowned=1;// SYSINFO_DLEFT
}
break;
case MSG_KEYUP:
{
keydowned=0;
if(id==KEY_EXIT) EndDialog (hDlg, 0);
if(id==SCANCODE_F1) EndDialog (hDlg, 0);
if(id==KEY_LEFT)SendDlgItemMessage(hDlg, SYSINFO_LEFT, MSG_LBUTTONUP, 0,0);
if(id==KEY_RIGHT)SendDlgItemMessage(hDlg, SYSINFO_RIGHT, MSG_LBUTTONUP, 0,0);
if(id==KEY_UP)SendDlgItemMessage(hDlg, SYSINFO_UP, MSG_LBUTTONUP, 0,0);
if(id==KEY_DOWN)SendDlgItemMessage(hDlg, SYSINFO_DOWN, MSG_LBUTTONUP, 0,0);
if(id==KEY_ENTER)SendDlgItemMessage(hDlg, SYSINFO_ENTER, MSG_LBUTTONUP, 0,0);
if(id==KEY_DLEFT)SendDlgItemMessage(hDlg, SYSINFO_DLEFT, BM_SETSTATE, 0,0);
if(id==KEY_DRIGHT)SendDlgItemMessage(hDlg, SYSINFO_DRIGHT, BM_SETSTATE, 0,0);
}
break;
case MSG_COMMAND:
{
if(id==CONF_System_DBACK)
EndDialog (hDlg, 0);
}
break;
}
return DefaultDialogProc (hDlg, message, wParam, lParam);
}
void DlgConfSystem (HWND hWnd)
{
DlgSetSystem.controls = ctrl_conf_system;
DialogBoxIndirectParam (&DlgSetSystem, hWnd, SystemDialogProc, 0L);
}
//--------下载对话框页面 -----------------------------------------
//
void InitDownLoadDlg(HWND hDlg)
{ int i;
unsigned char str[5];
int id;
int firsttime;
int lasttime;
long time;
//init the dlg
for (i=0;i<=(year-2000);i++){
sprintf(str,"%04d",2000+i);
SendDlgItemMessage(hDlg,DL_YEAR,CB_ADDSTRING,0,(LPARAM)str);
}
for (i=0;i<=12;i++){
sprintf(str,"%02d",i);
SendDlgItemMessage(hDlg,DL_MONT,CB_ADDSTRING,0,(LPARAM)str);
}
for (i=0;i<=31;i++){
sprintf(str,"%02d",i);
SendDlgItemMessage(hDlg,DL_DATE,CB_ADDSTRING,0,(LPARAM)str);
}
for (i=0;i<=24;i++){
sprintf(str,"%02d",i);
SendDlgItemMessage(hDlg,DL_HOUR,CB_ADDSTRING,0,(LPARAM)str);
}
for (i=0;i<=59;i++){
sprintf(str,"%02d",i);
SendDlgItemMessage(hDlg,DL_MINU,CB_ADDSTRING,0,(LPARAM)str);
}
//得到当前时间
SendMessage(GetDlgItem(hDlg,DL_YEAR),CB_SETCURSEL,(WPARAM)(year-2000),0);
SendMessage(GetDlgItem(hDlg,DL_MONT),CB_SETCURSEL,(WPARAM)(mont),0);
SendMessage(GetDlgItem(hDlg,DL_DATE),CB_SETCURSEL,(WPARAM)(days),0);
SendMessage(GetDlgItem(hDlg,DL_HOUR),CB_SETCURSEL,(WPARAM)(hour),0);
SendMessage(GetDlgItem(hDlg,DL_MINU),CB_SETCURSEL,(WPARAM)(minu),0);
}
/*下载按钮的弹出页面*/
int DownloadDialogProc (HWND hDlg, int message, WPARAM wParam, LPARAM lParam)
{
HDC hdc,hmemDC;
int id;
id= LOWORD (wParam);
switch (message)
{
case MSG_INITDIALOG:
return 1;
case MSG_SHOWWINDOW:
{
InitDownLoadDlg(hDlg);
}
break;
case MSG_PAINT:
hdc = BeginPaint(hDlg);
SetTextColor(hdc,PIXEL_black);
SetBkColor(hdc,PIXEL_lightgray);
SelectFont(hdc,songgb16font);
SetTextColor(hdc,PIXEL_black);
SetBkColor(hdc,PIXEL_lightgray);
TextOut(hdc, 20,40, "存储卡的状态:");
TextOut(hdc, 20,40, "请输入需要下载的数据通道号:");
TextOut(hdc, 20,60, "请输入要下载的记录时段:");
TextOut(hdc, 5,DL_Y1, "年:");
TextOut(hdc, 100,DL_Y1, "月:");
TextOut(hdc, 210,DL_Y1, "日:");
TextOut(hdc, 5,DL_Y2, "时");
TextOut(hdc, 100,DL_Y2, "分");
TextOut(hdc, 20,70+20, "时段:");
TextOut(hdc, 140,70+80, "全部数据下载");
EndPaint(hDlg,hdc);
break;
case MSG_KEYDOWN:
{
if(id==SCANCODE_F7)SendDlgItemMessage(hDlg, DL_ENTER, MSG_LBUTTONDOWN, BST_PUSHED,0);
if(id==SCANCODE_F8)SendDlgItemMessage(hDlg, DL_CANCEL, MSG_LBUTTONDOWN, BST_PUSHED,0);
keydowned=1;
}
break;
case MSG_KEYUP:
keydowned=0;
if(id==KEY_EXIT) EndDialog (hDlg, 0);
if(id==SCANCODE_F7)
{
//SendDlgItemMessage(hDlg, DL_ENTER , MSG_LBUTTONDOWN, 0,0);
SendMessage (hDlg, MSG_COMMAND, DL_ENTER,0);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -