📄 configmeter.c
字号:
SetDlgItemInt(hDlg, CT2_K1,card_flux_reg[id].K1,0);
SetDlgItemInt(hDlg, CT2_K2,card_flux_reg[id].K2,0);
SetDlgItemInt(hDlg, CT2_K3,card_flux_reg[id].K3,0);
SetDlgItemInt(hDlg, CT2_K4,card_flux_reg[id].K4,0);
SetDlgItemInt(hDlg, CT2_A1,card_flux_reg[id].A1,0);
SetDlgItemInt(hDlg, CT2_A2,card_flux_reg[id].A2,0);
sprintf(str,"%0.4f",card_flux_reg[id].P);
SetDlgItemText(hDlg, CT2_P,str);
sprintf(str,"%0.4f",card_flux_reg[id].P20);
SetDlgItemText(hDlg, CT2_P20,str);
sprintf(str,"%0.4f",card_flux_reg[id].PA);
SetDlgItemText(hDlg, CT2_PA,str);
}
//给下一个页初始化
void InitFCardP3(HWND hDlg)
{
int i;
int id;
unsigned char str[20];
//板卡不存在时候
flux_id=0;
id=flux_id;
for(i=0;i< dim(table_C1) ;i++)
SendDlgItemMessage(hDlg,CT3_C1,CB_ADDSTRING,0, (LPARAM)table_C1[i]) ;
for(i=0;i<dim(table_C2);i++)
SendDlgItemMessage(hDlg,CT3_C2,CB_ADDSTRING,0, (LPARAM)table_C2[i]) ;
for(i=0;i<dim(table_C3);i++)
SendDlgItemMessage(hDlg,CT3_C3,CB_ADDSTRING,0, (LPARAM)table_C3[i]) ;
for(i=0;i<dim(table_C4);i++)
SendDlgItemMessage(hDlg,CT3_C4,CB_ADDSTRING,0, (LPARAM)table_C4[i]) ;
for(i=0;i<dim(table_C5);i++)
SendDlgItemMessage(hDlg,CT3_C5,CB_ADDSTRING,0, (LPARAM)table_C5[i]) ;
for(i=0;i<dim(table_C6);i++)
SendDlgItemMessage(hDlg,CT3_C6,CB_ADDSTRING,0, (LPARAM)table_C6[i]) ;
for(i=0;i<dim(table_DCA);i++)
SendDlgItemMessage(hDlg,CT3_DCA,CB_ADDSTRING,0, (LPARAM)table_DCA[i]) ;
for(i=0;i<dim(table_PV);i++)
SendDlgItemMessage(hDlg,CT3_PV,CB_ADDSTRING,0, (LPARAM)table_PV[i]) ;
for(i=0;i<dim(table_DT);i++)
SendDlgItemMessage(hDlg,CT3_DT,CB_ADDSTRING,0, (LPARAM)table_DT[i]) ;
for(i=0;i<dim(table_DP);i++)
SendDlgItemMessage(hDlg,CT3_DP,CB_ADDSTRING,0, (LPARAM)table_DP[i]) ;
for(i=0;i<dim(table_SV);i++)
SendDlgItemMessage(hDlg,CT3_SV,CB_ADDSTRING,0, (LPARAM)table_SV[i]) ;
for(i=0;i<dim(table_PV);i++)
SendDlgItemMessage(hDlg,CT3_PV,CB_ADDSTRING,0, (LPARAM)table_PV[i]) ;
SetDlgItemInt(hDlg, CT3_PB1,card_flux_reg[flux_id].PB1,0);
SetDlgItemInt(hDlg, CT3_KK1,card_flux_reg[flux_id].KK1,0);
SetDlgItemInt(hDlg, CT3_PB2,card_flux_reg[flux_id].PB2,0);
SetDlgItemInt(hDlg, CT3_KK2,card_flux_reg[flux_id].KK1,0);
SetDlgItemInt(hDlg, CT3_PL,card_flux_reg[flux_id].PL,0);
SetDlgItemInt(hDlg, CT3_PH,card_flux_reg[flux_id].PH,0);
SetDlgItemInt(hDlg, CT3_TL,card_flux_reg[flux_id].TL,0);
SetDlgItemInt(hDlg, CT3_TH,card_flux_reg[flux_id].TH,0);
SetDlgItemInt(hDlg, CT3_PB3,card_flux_reg[flux_id].PB3,0);
SetDlgItemInt(hDlg, CT3_KK3,card_flux_reg[flux_id].KK1,0);
SetDlgItemInt(hDlg, CT3_CAL,card_flux_reg[flux_id].CAL,0);
SetDlgItemInt(hDlg, CT3_CAH,card_flux_reg[flux_id].CAH,0);
SetDlgItemInt(hDlg, CT3_CAA,card_flux_reg[flux_id].CAA,0);
SetDlgItemInt(hDlg, CT3_SL,card_flux_reg[flux_id].SL,0);
SetDlgItemInt(hDlg, CT3_SH,card_flux_reg[flux_id].SH,0);
}
int MeterDialogProc (HWND hDlg, int message, WPARAM wParam, LPARAM lParam)
{
HDC hdc;
HDC hmemDC;
gal_pixel bar_back_color,bar_rect_color,bar_text_color;
int id ;
static int nowpage=0;//记录参数页面按钮按下的次数
static int ctrl_flux_id;//按键ID号或者是文本焦点号码
static BOOL flag_entered;//是否按下了ENTER键
static int index;//上下键选择
static int num ;
static BOOL keydowned;
id= LOWORD (wParam);
switch (message)
{
case MSG_INITDIALOG:
CreateT1(hDlg);
CreateT2(hDlg);
CreateT3(hDlg);
InitFluxCard(hDlg);//填充初始化信息
InitFCardP2(hDlg);
InitFCardP3(hDlg);
HideT2( hDlg);
HideT3( hDlg);
//设置焦点
SendDlgItemMessage(hDlg, CARD_FB1, BM_SETSTATE , BST_PUSHED ,0);
SetFocusChild( GetDlgItem(hDlg,CT1_NAME));
page_base=CT1_NAME;
ctrl_flux_id=CT1_NAME;//初始化
EnableWindow(GetDlgItem(hDlg,CARD_FB2 ),FALSE);
EnableWindow(GetDlgItem(hDlg,CARD_FB3),FALSE);
EnableWindow(GetDlgItem(hDlg,CARD_FB4 ),FALSE);
// MeterDlgInit(hDlg);
SetTimer(hDlg,_ID_TIMER_CARDCOM,1000);
return 1;
case MSG_CREATE:
break;
case MSG_SHOWWINDOW:
{
if(flux_number>0)//表示存在流量卡
{
flux_id=0;
ReadFPage1(flux_id);//从通讯读取第一个卡
}
}
break;
case MSG_TIMER:
// SetRect (&top_rect, 80,0,640,40);
//InvalidateRect (hDlg, &top_rect, FALSE);
if((card_flux_reg[flux_id].enabled)&&(nowpage==0))
ReadFPage1(flux_id);
break;
case MSG_PAINT:
hdc = BeginPaint(hDlg);
if(nowpage==0)
{ ShowFPage1(hDlg,hdc);
}
else if(nowpage==1) ShowFPage2( hDlg, hdc);
else if(nowpage==2) ShowFPage3( hDlg, hdc);
EndPaint(hDlg,hdc);
break;
case MSG_KEYDOWN:
if(!keydowned)
{
if(id==KEY_LEFT)
SendDlgItemMessage(hDlg, METER_LEFT, MSG_LBUTTONDOWN, 0,0);
if(id==KEY_RIGHT)SendDlgItemMessage(hDlg, METER_RIGHT, MSG_LBUTTONDOWN, 0,0);
if(id==KEY_UP)SendDlgItemMessage(hDlg, METER_UP, MSG_LBUTTONDOWN, 0,0);
if(id==KEY_DOWN)SendDlgItemMessage(hDlg, METER_DOWN, MSG_LBUTTONDOWN, 0,0);
if(id==KEY_ENTER)SendDlgItemMessage(hDlg, METER_ENTER, MSG_LBUTTONDOWN, 0,0);
if(id==KEY_LAST)SendDlgItemMessage(hDlg, MT_BOT_LEFT, BM_SETSTATE, BST_PUSHED,0);
if(id==KEY_NEXT)SendDlgItemMessage(hDlg, MT_BOT_RIGHT, BM_SETSTATE, BST_PUSHED,0);
if(id==KEY_PARA)SendDlgItemMessage(hDlg, MT_BOT_PAGE, BM_SETSTATE, BST_PUSHED,0);
if(id==KEY_CARD)SendDlgItemMessage(hDlg, MT_BOT_CARD, BM_SETSTATE, BST_PUSHED,0);
if(id==KEY_SET)SendDlgItemMessage(hDlg, MT_BOT_SET, BM_SETSTATE, BST_PUSHED,0);
if(id==KEY_RETURN)SendDlgItemMessage(hDlg, MT_BOT_RETURN, BM_SETSTATE, BST_PUSHED,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, METER_LEFT, MSG_LBUTTONUP, 0,0);
ctrl_flux_id=ct1_id_left[ctrl_flux_id-page_base];
SetFocusChild( GetDlgItem(hDlg,ctrl_flux_id));
}
if(id==KEY_RIGHT)
{
SendDlgItemMessage(hDlg, METER_RIGHT, MSG_LBUTTONUP, 0,0);
ctrl_flux_id=ct1_id_right[ctrl_flux_id-page_base];
SetFocusChild( GetDlgItem(hDlg,ctrl_flux_id));
}
if(id==KEY_UP)
{
SendDlgItemMessage(hDlg, METER_UP, MSG_LBUTTONUP, 0,0);
if(flag_entered)//按过ENTER后选择BOX里面内容
{
SendDlgItemMessage(hDlg,ctrl_flux_id,MSG_KEYDOWN,SCANCODE_PAGEDOWN,0);
index--;if(index<0)index=num-1;
SendDlgItemMessage(hDlg,ctrl_flux_id,CB_SETCURSEL,index,0);
}
else
{
ctrl_flux_id=ct1_id_up[ctrl_flux_id-page_base];
SetFocusChild( GetDlgItem(hDlg,ctrl_flux_id));
}
}
if(id==KEY_DOWN)
{
SendDlgItemMessage(hDlg, METER_DOWN, MSG_LBUTTONUP, 0,0);
if(flag_entered)//按过ENTER后选择BOX里面内容
{
SendDlgItemMessage(hDlg,ctrl_flux_id,MSG_KEYDOWN,SCANCODE_PAGEDOWN,0);
index++;if(index==num)index=0;
SendDlgItemMessage(hDlg,ctrl_flux_id,CB_SETCURSEL,index,0);
}
else
{
ctrl_flux_id=ct1_id_down[ctrl_flux_id-page_base];
SetFocusChild( GetDlgItem(hDlg,ctrl_flux_id));
}
}
if(id==KEY_ENTER){
SendDlgItemMessage(hDlg, METER_ENTER, MSG_LBUTTONUP, 0,0);
if(flag_entered)
{
flag_entered=0;
SetFocusChild( GetDlgItem(hDlg,ctrl_flux_id));
}
else
{//3
if((ctrl_flux_id==CT1_ADDR)||
((ctrl_flux_id>=CT2_A1)&&(ctrl_flux_id<=CT2_PA))||
((ctrl_flux_id>=CT3_PB3)&&(ctrl_flux_id<=CT3_PH))
)
DigitalConfig (hDlg ); //弹出数字键盘
else
{
SendDlgItemMessage(hDlg,ctrl_flux_id,MSG_KEYDOWN,SCANCODE_PAGEDOWN,0);
flag_entered=1;
index=SendDlgItemMessage(hDlg,ctrl_flux_id,CB_GETCURSEL,0,0);
num=SendDlgItemMessage(hDlg,ctrl_flux_id,CB_GETCOUNT,0,0);
}
}
}
if(id==KEY_LAST){
SendDlgItemMessage(hDlg, MT_BOT_LEFT, BM_SETSTATE, 0,0);
}
if(id==KEY_NEXT){
SendDlgItemMessage(hDlg, MT_BOT_RIGHT, BM_SETSTATE, 0,0);
}
if(id==KEY_PARA){nowpage++;if(nowpage>2)nowpage=0;
SendDlgItemMessage(hDlg, MT_BOT_PAGE, BM_SETSTATE, 0,0);
ShowNextPage(hDlg,nowpage);
InvalidateRect(hDlg,NULL,TRUE);
}
if(id==KEY_CARD){
SendDlgItemMessage(hDlg, MT_BOT_CARD, BM_SETSTATE, 0,0);
DlgPIDConf(hDlg);
}
if(id==KEY_SET){
SendDlgItemMessage(hDlg, MT_BOT_SET, BM_SETSTATE, 0,0);
//得到地址
//得到波特率
//发送通讯命令下去
SendCmd(hDlg,ctrl_flux_id);
//重新读取命令
//更新页面
}
if(id==KEY_RETURN){
SendDlgItemMessage(hDlg, MT_BOT_RETURN, BM_SETSTATE, 0,0);
}
}
break;
case MSG_COMMAND:
{
if (id == EN_CHANGE)
{
SetDlgItemText(hDlg, ctrl_flux_id,(unsigned char *)lParam);
}
if(id==METER_DBACK)
EndDialog (hDlg, 0);
if(id==MT_BOT_RETURN)
EndDialog (hDlg, 0);
if(id==MT_BOT_CARD)
DlgPIDConf(hDlg);
}
break;
case MSG_DESTROY:
printf("CARDCOM timer keilled!/n");
KillTimer(hDlg,_ID_TIMER_CARDCOM);
DestroyAllControls(hDlg);
break;
case MSG_CLOSE:
EndDialog (hDlg, 0);
break;
}
return DefaultDialogProc (hDlg, message, wParam, lParam);
}
void DlgMeterConf (HWND hWnd)
{
Dlg_meter.controls = ctrl_meter;
DialogBoxIndirectParam (&Dlg_meter, hWnd, MeterDialogProc, 0L);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -