📄 configtool.c
字号:
#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 <minigui/mgext.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 "configtool.h"
const unsigned char *tool_job1[]={
"开始记录","停止记录",
"记录报警","记录事件",
"不动作"
};
const unsigned char *tool_job2[]={
"启动DO","启动AO","启动DO",
"启动定时器","启动计数器","启动累加器",
"不动作"
};
unsigned char *func_init[]={
"关闭","启动"
};
/*包含了定时器,计数器,累加器*/
void ConfTimerInit(HWND hDlg)
{
int i;
unsigned char str[10];
unsigned char *type_init[]={
"每日","每周","每月"
};
printf("sizeof()=%d",sizeof(*func_init));
for (i=0;i<=3;i++){
SendDlgItemMessage(hDlg,TBOX_TYPE,CB_ADDSTRING,0,(LPARAM)type_init[i]);
}
for (i=0;i<=2;i++){
SendDlgItemMessage(hDlg,TBOX_FUNC,CB_ADDSTRING,0,(LPARAM)func_init[i]);
}
for (i=0;i<=31;i++){
sprintf(str,"%02d",i);
SendDlgItemMessage(hDlg,TBOX_DAYS,CB_ADDSTRING,0,(LPARAM)str);
}
for (i=0;i<=24;i++){
sprintf(str,"%02d",i);
SendDlgItemMessage(hDlg,TBOX_HOUR,CB_ADDSTRING,0,(LPARAM)str);
}
for (i=0;i<=59;i++){
sprintf(str,"%02d",i);
SendDlgItemMessage(hDlg,TBOX_MINU ,CB_ADDSTRING,0,(LPARAM)str);
}
for (i=0;i<=5;i++){
//sprintf(str,"%02d",i);
SendDlgItemMessage(hDlg,TBOX_JOB1,CB_ADDSTRING,0,(LPARAM)tool_job1[i]);
}
for (i=0;i<=7;i++){
// sprintf(str,"%02d",i);
SendDlgItemMessage(hDlg,TBOX_JOB2,CB_ADDSTRING,0,(LPARAM)tool_job2[i]);
}
SendDlgItemMessage(hDlg,TBOX_DAYS,CB_SETCURSEL,1,0);
SendDlgItemMessage(hDlg,TBOX_HOUR,CB_SETCURSEL,8,0);
SendDlgItemMessage(hDlg,TBOX_MINU,CB_SETCURSEL,59,0);
//先假设AI总数为16
ai_chan_sum=16;
}
int ToolTimerDialogProc (HWND hDlg, int message, WPARAM wParam, LPARAM lParam)
{
int id;
int nc;
static BOOL flag_entered;
static int tool_bn_focus;
static int ctrl_tool_id,box_index,num;
id= LOWORD (wParam);//控件编号
nc=HIWORD(wParam); //控件通知码
switch (message)
{
case MSG_INITDIALOG:
box_index=1;
ConfTimerInit(hDlg);
SendDlgItemMessage(hDlg, TOOL_BN1, BM_SETSTATE , BST_PUSHED ,0);
SetFocusChild( GetDlgItem(hDlg,TBOX_TYPE));
ctrl_tool_id=TBOX_TYPE;
tool_bn_focus=TOOL_BN1;
return 1;
case MSG_DESTROY:
bt_dlg=0;
break;
case MSG_SHOWWINDOW:
{
}
break;
case MSG_KEYDOWN:
if(!keydowned)
{
if(id==KEY_LEFT)SendDlgItemMessage(hDlg, TOOL_TIMER_LEFT, MSG_LBUTTONDOWN, 0,0);
if(id==KEY_RIGHT)SendDlgItemMessage(hDlg, TOOL_TIMER_RIGHT, MSG_LBUTTONDOWN, 0,0);
if(id==KEY_UP)SendDlgItemMessage(hDlg, TOOL_TIMER_UP, MSG_LBUTTONDOWN, 0,0);
if(id==KEY_DOWN)SendDlgItemMessage(hDlg, TOOL_TIMER_DOWN, MSG_LBUTTONDOWN, 0,0);
if(id==KEY_ENTER)SendDlgItemMessage(hDlg, TOOL_TIMER_ENTER, MSG_LBUTTONDOWN, 0,0);
if(id==SCANCODE_F3)SendDlgItemMessage(hDlg, TOOL_TIMER_DLEFT, BM_SETSTATE , BST_PUSHED ,0);
if(id==SCANCODE_F4)
SendDlgItemMessage(hDlg, TOOL_TIMER_DRIGHT, BM_SETSTATE , BST_PUSHED ,0);
if(id==SCANCODE_F5)SendDlgItemMessage(hDlg, TOOL_ADD_TIMER, BM_SETSTATE , BST_PUSHED ,0);
if(id==SCANCODE_F6)
SendDlgItemMessage(hDlg, TOOL_ADD_COUNTER, BM_SETSTATE , BST_PUSHED ,0);
if(id==SCANCODE_F7)SendDlgItemMessage(hDlg, TOOL_ADD_ADD, BM_SETSTATE , BST_PUSHED ,0);
keydowned=1;
}
break;
case MSG_KEYUP:
keydowned=0;
{
if(id==SCANCODE_F1) EndDialog (hDlg, 0);
if(id==KEY_EXIT) EndDialog (hDlg, 0);
if(id==KEY_LEFT)
{
SendDlgItemMessage(hDlg, TOOL_TIMER_LEFT, MSG_LBUTTONUP, 0,0);
ctrl_tool_id=ttimer_id_left[ctrl_tool_id-TBOX_TYPE];
SetFocusChild( GetDlgItem(hDlg,ctrl_tool_id));
}
if(id==KEY_RIGHT)
{
SendDlgItemMessage(hDlg, TOOL_TIMER_RIGHT, MSG_LBUTTONUP, 0,0);
ctrl_tool_id=ttimer_id_right[ctrl_tool_id-TBOX_TYPE];
SetFocusChild( GetDlgItem(hDlg,ctrl_tool_id));
}
if(id==KEY_UP)
{
SendDlgItemMessage(hDlg, TOOL_TIMER_UP, MSG_LBUTTONUP, 0,0);
if(flag_entered)//按过ENTER后选择BOX里面内容
{
SendDlgItemMessage(hDlg,ctrl_tool_id,MSG_KEYDOWN,SCANCODE_PAGEDOWN,0);
// box_index=SendDlgItemMessage(hDlg,ctrl_tool_id,CB_GETCURSEL,0,0);
box_index--;if(box_index<1)box_index=num;
SendDlgItemMessage(hDlg,ctrl_tool_id,CB_SETCURSEL,box_index,0);
}
else
{
ctrl_tool_id=ttimer_id_up[ctrl_tool_id-TBOX_TYPE];
SetFocusChild( GetDlgItem(hDlg,ctrl_tool_id));
}
}
if(id==KEY_DOWN)
{
SendDlgItemMessage(hDlg, TOOL_TIMER_DOWN, MSG_LBUTTONUP, 0,0);
if(flag_entered)//按过ENTER后选择BOX里面内容
{
SendDlgItemMessage(hDlg,ctrl_tool_id,MSG_KEYDOWN,SCANCODE_PAGEDOWN,0);
// num=SendDlgItemMessage(hDlg,ctrl_tool_id,CB_GETCOUNT,0,0);
// box_index=SendDlgItemMessage(hDlg,ctrl_tool_id,CB_GETCURSEL,0,0);
box_index++;if(box_index==num)box_index=0;
SendDlgItemMessage(hDlg,ctrl_tool_id,CB_SETCURSEL,box_index,0);
}
else
{
ctrl_tool_id=ttimer_id_down[ctrl_tool_id-TBOX_TYPE];
SetFocusChild( GetDlgItem(hDlg,ctrl_tool_id));
}
}
if(id==KEY_ENTER)
{
SendDlgItemMessage(hDlg, TOOL_TIMER_ENTER, MSG_LBUTTONUP, 0,0);
if(flag_entered)
{
// SendDlgItemMessage(hDlg,ctrl_tool_id,MSG_KEYDOWN,SCANCODE_PAGEDOWN,0);
flag_entered=0;
box_index=0;
num=0;
SetFocusChild( GetDlgItem(hDlg,ctrl_tool_id));
}
else
{
SendDlgItemMessage(hDlg,ctrl_tool_id,MSG_KEYDOWN,SCANCODE_PAGEDOWN,0);
flag_entered=1;
num=SendDlgItemMessage(hDlg,ctrl_tool_id,CB_GETCOUNT,0,0);
}
}
if(id==SCANCODE_F3)
{
SendDlgItemMessage(hDlg, TOOL_TIMER_DLEFT, BM_SETSTATE , 0 ,0);
SendMessage(hDlg,MSG_COMMAND,TOOL_TIMER_DLEFT,0);
}
if(id==SCANCODE_F4)
{
SendDlgItemMessage(hDlg, TOOL_TIMER_DRIGHT, BM_SETSTATE , 0 ,0);
SendMessage(hDlg,MSG_COMMAND,TOOL_TIMER_DRIGHT,0);
}
if(id==SCANCODE_F5)
{SendDlgItemMessage(hDlg, TOOL_TIMER_TIMER, BM_SETSTATE , 0 ,0);
}
if(id==SCANCODE_F6)
{SendDlgItemMessage(hDlg, TOOL_TIMER_COUNTER, BM_SETSTATE , 0 ,0);
SendMessage(hDlg,MSG_COMMAND,TOOL_TIMER_COUNTER,0);
}
if(id==SCANCODE_F7)
{SendDlgItemMessage(hDlg, TOOL_TIMER_ADD, BM_SETSTATE , 0 ,0);
SendMessage(hDlg,MSG_COMMAND,TOOL_TIMER_ADD,0);
}
}
break;
case MSG_COMMAND:
{
int id ;
id= LOWORD (wParam);
//if(id==TOOL_TIMER_TIMER)
if(id==TOOL_TIMER_COUNTER)
{
if(!bc_dlg) DlgConfCounter( hDlg);
else {bt_dlg=0;EndDialog (hDlg, 0);}
}
if(id==TOOL_TIMER_ADD)
{
if(!ba_dlg) DlgConfAdd( hDlg);
else {bt_dlg=0;EndDialog (hDlg, 0);}
}
if(id==TOOL_TIMER_DBACK) EndDialog (hDlg, 0);
if(id==TOOL_TIMER_DRIGHT)
{
SendMessage(GetDlgItem(hDlg,tool_bn_focus), BM_SETSTATE , 0 ,0);
tool_bn_focus++;
if(tool_bn_focus>TOOL_BN6)tool_bn_focus=TOOL_BN1;
SendMessage(GetDlgItem(hDlg,tool_bn_focus), BM_SETSTATE , BST_PUSHED ,0);
}
if(id==TOOL_TIMER_DLEFT)
{
SendMessage(GetDlgItem(hDlg,tool_bn_focus), BM_SETSTATE , 0 ,0);
tool_bn_focus --;
if(tool_bn_focus <TOOL_BN1 ) tool_bn_focus =TOOL_BN6;
SendDlgItemMessage(hDlg, tool_bn_focus, BM_SETSTATE , BST_PUSHED ,0);
}
}
break;
}
return DefaultDialogProc (hDlg, message, wParam, lParam);
}
void DlgConfToolTimer (HWND hWnd)
{
bt_dlg=1;
DlgToolTimer.controls = ctrl_tool_timer;
DialogBoxIndirectParam (&DlgToolTimer, hWnd, ToolTimerDialogProc, 0L);
}
void ConfCounterInit(HWND hDlg)
{
int i;
unsigned char str[10];
unsigned char *counter_type_init[]={
"HH","H","L","LL","No"
};
SetDlgItemText(hDlg, CTEDIT_NAME,"Counter1" );
SetDlgItemText(hDlg, CTEDIT_DESC,"计数器1" );
SetDlgItemText(hDlg, CTEDIT_UNIT,"默认" );
SetDlgItemText(hDlg, CTEDIT_DEFA,"0" );
SetDlgItemText(hDlg, CTEDIT1_SET,"100" );
SetDlgItemText(hDlg, CTEDIT2_SET,"100" );
for (i=0;i<5;i++){
SendDlgItemMessage(hDlg,CTBOX1_TYPE,CB_ADDSTRING,0,(LPARAM)counter_type_init[i]);
}
for (i=0;i<5;i++){
SendDlgItemMessage(hDlg,CTBOX2_TYPE,CB_ADDSTRING,0,(LPARAM)counter_type_init[i]);
}
for (i=0;i<5;i++){
SendDlgItemMessage(hDlg,CTBOX1_JOB1,CB_ADDSTRING,0,(LPARAM)tool_job1[i]);
}
for (i=0;i<5;i++){
SendDlgItemMessage(hDlg,CTBOX2_JOB1,CB_ADDSTRING,0,(LPARAM)tool_job2[i]);
}
for (i=0;i<7;i++){
SendDlgItemMessage(hDlg,CTBOX1_JOB2,CB_ADDSTRING,0,(LPARAM)tool_job1[i]);
}
for (i=0;i<7;i++){
SendDlgItemMessage(hDlg,CTBOX2_JOB2,CB_ADDSTRING,0,(LPARAM)tool_job2[i]);
}
}
int ToolCounterDialogProc (HWND hDlg, int message, WPARAM wParam, LPARAM lParam)
{
int id;
int nc;
static int ct_bn_focus;
static int ctrl_tool_id;
static int box_index;
static int num;
id= LOWORD (wParam);//控件编号
nc=HIWORD(wParam); //控件通知码
switch (message)
{
case MSG_INITDIALOG:
ConfCounterInit(hDlg);
ct_bn_focus=CT_BN1;
return 1;
case MSG_DESTROY:
bc_dlg=0;
break;
case MSG_SHOWWINDOW:
{
}
break;
case MSG_KEYDOWN:
if(id==KEY_LEFT)SendDlgItemMessage(hDlg, TOOL_CT_LEFT, MSG_LBUTTONDOWN, 0,0);
if(id==KEY_RIGHT)SendDlgItemMessage(hDlg, TOOL_CT_RIGHT, MSG_LBUTTONDOWN, 0,0);
if(id==KEY_UP)SendDlgItemMessage(hDlg, TOOL_CT_UP, MSG_LBUTTONDOWN, 0,0);
if(id==KEY_DOWN)SendDlgItemMessage(hDlg, TOOL_CT_DOWN, MSG_LBUTTONDOWN, 0,0);
if(id==KEY_ENTER)SendDlgItemMessage(hDlg, TOOL_CT_ENTER, MSG_LBUTTONDOWN, 0,0);
if(id==SCANCODE_F3)SendDlgItemMessage(hDlg, TOOL_CT_DLEFT, BM_SETSTATE , BST_PUSHED ,0);
if(id==SCANCODE_F4)
SendDlgItemMessage(hDlg, TOOL_CT_DRIGHT, BM_SETSTATE , BST_PUSHED ,0);
if(id==SCANCODE_F5)SendDlgItemMessage(hDlg, TOOL_ADD_TIMER, BM_SETSTATE , BST_PUSHED ,0);
if(id==SCANCODE_F6)
SendDlgItemMessage(hDlg, TOOL_ADD_COUNTER, BM_SETSTATE , BST_PUSHED ,0);
if(id==SCANCODE_F7)SendDlgItemMessage(hDlg, TOOL_ADD_ADD, BM_SETSTATE , BST_PUSHED ,0);
break;
case MSG_KEYUP:
{
if(id==KEY_EXIT) EndDialog (hDlg, 0);
if(id==SCANCODE_F1) EndDialog (hDlg, 0);
if(id==KEY_LEFT)
{
SendDlgItemMessage(hDlg, TOOL_CT_LEFT, MSG_LBUTTONUP, 0,0);
ctrl_tool_id=ct_id_left[ctrl_tool_id-CTEDIT_NAME];
SetFocusChild( GetDlgItem(hDlg,ctrl_tool_id));
}
if(id==KEY_RIGHT)
{
SendDlgItemMessage(hDlg, TOOL_CT_RIGHT, MSG_LBUTTONUP, 0,0);
ctrl_tool_id=ct_id_right[ctrl_tool_id-CTEDIT_NAME];
SetFocusChild( GetDlgItem(hDlg,ctrl_tool_id));
}
if(id==KEY_UP)
{
SendDlgItemMessage(hDlg, TOOL_CT_UP, MSG_LBUTTONUP, 0,0);
if(flag_entered)//按过ENTER后选择BOX里面内容
{
SendDlgItemMessage(hDlg,ctrl_tool_id,MSG_KEYDOWN,SCANCODE_PAGEDOWN,0);
// box_index=SendDlgItemMessage(hDlg,ctrl_tool_id,CB_GETCURSEL,0,0);
box_index--;if(box_index<1)box_index=num;
SendDlgItemMessage(hDlg,ctrl_tool_id,CB_SETCURSEL,box_index,0);
}
else
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -