📄 configequip.c
字号:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <time.h>
#include <unistd.h>
#include <pwd.h>
#include <minigui/common.h>
#include <minigui/minigui.h>
#include <minigui/gdi.h>
#include <minigui/window.h>
#include <minigui/control.h>
#include <minigui/mgext.h>
#include <sys/types.h>
#include <sys/shm.h>
#include <sys/ipc.h>
#include <sys/time.h>
#include <ctype.h>
#include "common.h"
#include "configequip.h"
unsigned char * lcd[]={"COM1","COM2"};
unsigned char *stopbit[]={"1","1.5","2"};
unsigned char *language[]={"简体中文","English"};
unsigned char *storagemedia[]={"U盘","64MB CF卡","128MB CF卡"};
unsigned char *keypadsound[]={"无声","小声","中声","大声"};
unsigned char *check[]={"无校验","奇校验","偶校验"};
unsigned char *data[]={"4","5","6","7","8"};
unsigned char *ip[]={"DHCP","自定"};
unsigned char * borate[]={"1200","2400","4800","9600","19200","38400"};
unsigned char *edit_init_equip[]={"MEMO","192.168.0.0","0.0.0.0","255.255.255.0"};
int edit_id[4]={EDIT_NAME , EDIT_IP, EDIT_NETW , EDIT_MASK};
int ctrl_id[15]={EDIT_NAME, BOX_EVEN ,BOX_ALERT,BOX_LCD,BOX_BORATE,BOX_STOP,EDIT_IP,EDIT_NETW,
BOX_LANG,BOX_MEMO, BOX_SOUN,BOX_CHECK,BOX_DATA,BOX_DHCP,EDIT_MASK};
//int combobox_id[]=
//unsigned char *ScreenSaver[]={"1","10","20","30","40","50","60"};
//unsigned char * DataStyle[]={"月月/日日/年年","日日/月月/年年"};
//unsigned char *PCTransfer[]={"Ethernet","RS232","RS422","RS485"};
void ConfigEquipInit(HWND hDlg)
{
int i;
unsigned char buf[20];
SetDlgItemText(hDlg,BOX_EVEN,"1000");
SetDlgItemText(hDlg,BOX_ALERT,"1000");
//初始化组合框
for (i=0;i<2;i++)
SendDlgItemMessage(hDlg,BOX_LCD,CB_ADDSTRING,0,(LPARAM)lcd[i]);
for (i=0;i<5;i++)
SendDlgItemMessage(hDlg,BOX_BORATE,CB_ADDSTRING,0,(LPARAM)borate[i]);
for (i=0;i<3;i++)
SendDlgItemMessage(hDlg,BOX_STOP,CB_ADDSTRING,0,(LPARAM)stopbit[i]);
for (i=0;i<2;i++)
SendDlgItemMessage(hDlg,BOX_LANG ,CB_ADDSTRING,0,(LPARAM)language[i]);
for (i=0;i<2;i++)
SetWindowText(GetDlgItem(hDlg,BOX_MEMO),storagemedia[i]);
for (i=0;i<4;i++)
SendDlgItemMessage(hDlg,BOX_SOUN,CB_ADDSTRING,0,(LPARAM)keypadsound[i]);
for (i=0;i<3;i++)
SendDlgItemMessage(hDlg,BOX_CHECK,CB_ADDSTRING,0,(LPARAM)check[i]);
for (i=0;i<5;i++)
SendDlgItemMessage(hDlg, BOX_DATA ,CB_ADDSTRING,0,(LPARAM)data[i]);
for (i=0;i<2;i++)
SendDlgItemMessage( hDlg,BOX_DHCP,CB_ADDSTRING,0,(LPARAM)ip[i]);
//初始化编辑框
for (i=0;i<4;i++)
{
sprintf(buf,edit_init_equip[i]);
SetDlgItemText(hDlg,edit_id[i],buf);
}
}
static void Combobox_proc(HWND hWnd,int id , int nc, DWORD add_data)
{
// if (nc==CBN_SELCHANGE)
}
int EquipDialogProc (HWND hDlg, int message, WPARAM wParam, LPARAM lParam)
{
HWND hButton;
int id;
int nc;
static int ctl_equip_id;
static int index;
static int num ;
static BOOL flag_entered;
id= LOWORD (wParam);//控件编号
nc=HIWORD(wParam); //控件通知码
switch (message)
{
case MSG_INITDIALOG:
//初始化数据
keydowned=0;
flag_entered=0;
index=0;
ConfigEquipInit(hDlg);
//SetCaretPos(GetDlgItem(hDlg,EDIT_NAME),0,0);
SetFocusChild(GetDlgItem(hDlg,EDIT_NAME));
ctl_equip_id=GetDlgCtrlID(GetFocusChild(hDlg));
printf("ctl_equip_id=%d inited \n",ctl_equip_id);
//ShowCaret(GetDlgItem(hDlg,EDIT_NAME));
//SetNotificationCallback(GetDlgItem(hDlg, BOX_EVEN),Combobox_proc);
return 1;
case MSG_SHOWWINDOW:
{
}
break;
case MSG_KEYDOWN:
if(!keydowned)
{
if(id==KEY_LEFT)SendDlgItemMessage(hDlg, CONF_EQUIP_LEFT, MSG_LBUTTONDOWN, 0,0);
if(id==KEY_RIGHT)SendDlgItemMessage(hDlg, CONF_EQUIP_RIGHT, MSG_LBUTTONDOWN, 0,0);
if(id==KEY_UP)SendDlgItemMessage(hDlg, CONF_EQUIP_UP, MSG_LBUTTONDOWN, 0,0);
if(id==KEY_DOWN)SendDlgItemMessage(hDlg, CONF_EQUIP_DOWN, MSG_LBUTTONDOWN, 0,0);
if(id==KEY_ENTER)SendDlgItemMessage(hDlg, CONF_EQUIP_ENTER, MSG_LBUTTONDOWN, 0,0);
keydowned=1;
}
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, CONF_EQUIP_LEFT, MSG_LBUTTONUP, 0,0);
ctl_equip_id=equip_id_left[ctl_equip_id-EQ_F];
SetFocusChild( GetDlgItem(hDlg,ctl_equip_id));
}
if(id==KEY_RIGHT)
{
SendDlgItemMessage(hDlg, CONF_EQUIP_RIGHT, MSG_LBUTTONUP, 0,0);
ctl_equip_id=equip_id_right[ctl_equip_id-EQ_F];
SetFocusChild( GetDlgItem(hDlg,ctl_equip_id));
}
if(id==KEY_UP)
{
SendDlgItemMessage(hDlg, CONF_EQUIP_UP, MSG_LBUTTONUP, 0,0);
if(flag_entered)//按过ENTER后选择BOX里面内容
{
SendDlgItemMessage(hDlg,ctl_equip_id,MSG_KEYDOWN,SCANCODE_PAGEDOWN,0);
index--;if(index<0)index=num-1;
SendDlgItemMessage(hDlg,ctl_equip_id,CB_SETCURSEL,index,0);
}
else
{
ctl_equip_id=equip_id_up[ctl_equip_id-EQ_F];
SetFocusChild( GetDlgItem(hDlg,ctl_equip_id));
}
}
if(id==KEY_DOWN)
{
SendDlgItemMessage(hDlg, CONF_EQUIP_DOWN, MSG_LBUTTONUP, 0,0);
if(flag_entered)//按过ENTER后选择BOX里面内容
{
SendDlgItemMessage(hDlg,ctl_equip_id,MSG_KEYDOWN,SCANCODE_PAGEDOWN,0);
index++;if(index==num)index=0;
SendDlgItemMessage(hDlg,ctl_equip_id,CB_SETCURSEL,index,0);
}
else
{
ctl_equip_id=equip_id_down[ctl_equip_id-EQ_F];
SetFocusChild( GetDlgItem(hDlg,ctl_equip_id));
}
}
if(id==KEY_ENTER)
{
SendDlgItemMessage(hDlg, CONF_EQUIP_ENTER, MSG_LBUTTONUP, 0,0);
if(flag_entered)
{
flag_entered=0;
SetFocusChild( GetDlgItem(hDlg,ctl_equip_id));
}
else
{
if((ctl_equip_id==BOX_EVEN)||(ctl_equip_id==BOX_ALERT))
DigitalConfig (hDlg ); //弹出数字键盘
else
{
SendDlgItemMessage(hDlg,ctl_equip_id,MSG_KEYDOWN,SCANCODE_PAGEDOWN,0);
flag_entered=1;
index=SendDlgItemMessage(hDlg,ctl_equip_id,CB_GETCURSEL,0,0);
num=SendDlgItemMessage(hDlg,ctl_equip_id,CB_GETCOUNT,0,0);
}
}
}
break;
case MSG_COMMAND:
{
if(nc==EN_CLICKED)//被设置了焦点
{
ctl_equip_id=GetDlgCtrlID(GetFocusChild(hDlg));
//printf("ctl_equip_id=%d EN_CLICKED \n",ctl_equip_id);
}
if (id == EN_CHANGE)
{
SetDlgItemText(hDlg, ctl_equip_id,(unsigned char *)lParam);
}
if ( id==CONF_EQUIP_DBACK)
{SaveEquipData(hDlg);
EndDialog (hDlg, 0);
}
}
}
return DefaultDialogProc (hDlg, message, wParam, lParam);
}
void DlgConfEquip (HWND hWnd)
{
DlgEquip.controls = CtrlEquip;
DialogBoxIndirectParam (&DlgEquip, hWnd, EquipDialogProc, 0L);
}
void SaveEquipData(HWND hDlg)
{
unsigned char str_resource[20];
unsigned char str_goal[20];
int id;
int i;
char * config[]={"Name","AlertMax","LCD","BaudRate","StopBit","IP","NetW",
"Language","StorageMedia","Sound","AlarmLimit","Check",
"TestBit","DHCP","Mask"};
for (i=0;i<16;i++)
{
GetDlgItemText(hDlg,EDIT_NAME+i,str_goal,20);
sprintf(str_resource,"%s","Config");
SetValueToEtcFile("system.conf",str_resource,config[i],str_goal);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -