📄 configmeter.c
字号:
}
/*
显示流量卡基本页面的信息
动态数据
报警情况
*/
void ShowFPage1(HWND hDlg,HDC hdc)
{
int dev_id;
unsigned char str[20];
unsigned char str_temp[20];
HDC hmemDC;
//
//隐藏上页面控件
//显示本页面控件
hmemDC=hdc;
// SetBrushColor(hmemDC,PIXEL_lightgray);//lightwhite
SetBkMode(hmemDC,BM_TRANSPARENT);//? SetBkMode
//设置字体颜色
SetTextColor(hmemDC,PIXEL_black); //矩形图TAG
SelectFont(hmemDC,songgb16font);
//读取流量板卡的信息
strcpy(str_temp,"基本信息1/3");
TextOut(hmemDC,CARDINFO_X,CARDINFO_Y,str_temp);
TextOut(hmemDC,MET_X1-60,MET_Y1+5," 名称 :");
//TextOut(hmemDC,MET_X1,MET_Y1+5,card_flux_reg[id].name);
TextOut(hmemDC,MET_X2,MET_Y1+5,"通讯地址:");
TextOut(hmemDC,MET_X2,MET_Y2,"通讯状态:");
if(card_flux_reg[flux_id].enabled)
TextOut(hmemDC,MET_X3,MET_Y2,"通讯正常");
else
TextOut(hmemDC,MET_X3,MET_Y2,"板卡不存在");
TextOut(hmemDC,MET_X1-40,MET_Y2,"波特率:");
TextOut(hmemDC,MET_X1-40,REAL_Y1,"补偿温度:");
TextOut(hmemDC,MET_X1-40,REAL_Y2,"补偿压力:");
TextOut(hmemDC,MET_X1-40,REAL_Y3," 流量:");
TextOut(hmemDC,MET_X1-40,REAL_Y4,"瞬时流量:");
TextOut(hmemDC,MET_X1-40,REAL_Y5,"累积流量:");
TextOut(hmemDC,MET_X2+10,REAL_Y1,"第一报警状态:");
TextOut(hmemDC,MET_X2+10,REAL_Y2,"第二报警状态:");
//单位
strcpy(str,table_unit[card_flux_reg[flux_id].DT]);
TextOut(hmemDC,MET_X1+GROD_W-100,REAL_Y1,str);
strcpy(str,table_unit[card_flux_reg[flux_id].DP]);
TextOut(hmemDC,MET_X1+GROD_W-100,REAL_Y2,str);
strcpy(str,table_unit[card_flux_reg[flux_id].DCA]);
TextOut(hmemDC,MET_X1+GROD_W-100,REAL_Y3,str);
strcpy(str,table_unit[card_flux_reg[flux_id].SV]);
TextOut(hmemDC,MET_X1+GROD_W-100,REAL_Y4,str);
strcpy(str,table_unit[card_flux_reg[flux_id].PV]);
TextOut(hmemDC,MET_X1+GROD_W-100,REAL_Y5,str);
//给编辑框赋值
SetDlgItemText(hDlg, CT1_NAME,card_flux_reg[id].name);
SelectFont(hmemDC,songgb16font);
//实时值
bzero(str,sizeof(str));
sprintf(str,"%.4f",card_flux_reg[flux_id].temperature);
TextOut(hmemDC,MET_X1+40, REAL_Y1, str);
sprintf(str,"%.4f",card_flux_reg[flux_id].pressure);
TextOut(hmemDC,MET_X1+40, REAL_Y2, str);
sprintf(str,"%.4f",card_flux_reg[flux_id].flux);
TextOut(hmemDC,MET_X1+40, REAL_Y3, str);
sprintf(str,"%.4f",card_flux_reg[flux_id].instant_flux);
TextOut(hmemDC,MET_X1+40, REAL_Y4, str);
//将 Hcumul_flux,Lcumul_flux计算到cumul_flux
card_flux_reg[flux_id].cumul_flux=(card_flux_reg[flux_id].Hcumul_flux)*(2^32)+(card_flux_reg[flux_id].Lcumul_flux);
sprintf(str,"%.4f",card_flux_reg[flux_id].cumul_flux);
TextOut(hmemDC,MET_X1+40, REAL_Y5, str);
//报警状态
if(card_flux_reg[flux_id].alarm1_status==1)
{
FillBoxWithBitmap(hmemDC,MET_X2+120,REAL_Y1 ,16,16,&staticbmp[0]); //red
}
else
FillBoxWithBitmap(hmemDC,MET_X2+120,REAL_Y1 ,16,16,&staticbmp[1]); //green
if(card_flux_reg[flux_id].alarm2_status==1)
{
FillBoxWithBitmap(hmemDC,MET_X2+120,REAL_Y2 ,16,16,&staticbmp[0]); //red
}
else
FillBoxWithBitmap(hmemDC,MET_X2+120,REAL_Y2 ,16,16,&staticbmp[1]); //green
TextOut(hmemDC,120,360,"操作提示:设置本卡其他参数请按页面切换键.");
}
/*
显示流量卡第二个页面参数信息
*/
void ShowFPage2(HWND hDlg,HDC hdc)
{
int dev_id;
unsigned char str[20];
unsigned char str_temp[30];
HDC hmemDC;
//隐藏上页面控件
//显示本页面控件
hmemDC=hdc;
// SetBrushColor(hmemDC,PIXEL_lightgray);//lightwhite
// SetBkMode(hmemDC,BM_TRANSPARENT);//? SetBkMode
// FillBox(hmemDC,0,0,WIDTH-LEFT,HEIGHT-TOP-BOTTOM);
SetBkMode(hmemDC,BM_TRANSPARENT);//? SetBkMode
//设置字体颜色
SetTextColor(hmemDC,PIXEL_black); //矩形图TAG
SelectFont(hmemDC,songgb16font);
//读取流量板卡的信息
bzero(str_temp,sizeof(str_temp));
//strcpy(str_temp,"流量卡参数设定页面");
TextOut(hmemDC,CARDINFO_X,CARDINFO_Y,"参数设定页面2/3");
TextOut(hmemDC,CT2_X0,90,"B1:被测量介质 :");
TextOut(hmemDC,CT2_X0,120,"B2:流量输入类型:");
TextOut(hmemDC,CT2_X0,150,"B5:质量体积流量:");
TextOut(hmemDC,CT2_X0,180,"D3:流量信号类型:");
TextOut(hmemDC,CT2_X2,CT2_Y1+2,"D1:温度信号类型:");
TextOut(hmemDC,CT2_X2,CT2_Y2+2,"D2:压力信号类型:");
TextOut(hmemDC,CT2_X2,CT2_Y3+2,"A1:介质补偿系数1:");
TextOut(hmemDC,CT2_X2,CT2_Y4+2,"A2:介质补偿系数2:");
TextOut(hmemDC,CT2_X0,CT2_Y5+10,"K1:流量系数1:");
TextOut(hmemDC,CT2_X0,CT2_Y6+10,"K2:流量系数2:");
TextOut(hmemDC,CT2_X0,CT2_Y7+10,"K3:流量系数3:");
TextOut(hmemDC,CT2_X0,CT2_Y8+10,"K4:流量系数4:");
TextOut(hmemDC,CT2_X0,CT2_Y9+10,"参数组合选择:");
TextOut(hmemDC,CT2_X2,CT2_Y9+10,"计算公式:");
FillBoxWithBitmap(hmemDC,CT2_X2+80,CT2_Y9-40 ,160,80,&formulabmp[1]); //green
TextOut(hmemDC,CT2_X2,CT2_Y5+5,"P :介质密度 :");
TextOut(hmemDC,CT2_X2,CT2_Y6+5,"P20:标况密度 :");
TextOut(hmemDC,CT2_X2,CT2_Y7+5,"PA :工作点大气压:");
TextOut(hmemDC,CT2_X3+55,CT2_Y5+5,"kg/m3");
TextOut(hmemDC,CT2_X3+55,CT2_Y6+5,"kg/m3");
TextOut(hmemDC,CT2_X3+55,CT2_Y7+5,"MPa");
//根据通讯数据赋值
SetDlgItemInt(hDlg, CT2_K1,card_flux_reg[flux_id].K1,0);
SendDlgItemMessage(hDlg,CT2_B1,CB_SETCURSEL,1,0);
// BitBlt(hmemDC,0,0,0,HEIGHT-TOP-BOTTOM,hdc,0,0,0);
// DeleteCompatibleDC(hmemDC);
}
/*
显示流量卡第3个页面参数信息
*/
void ShowFPage3(HWND hDlg,HDC hdc)
{
int dev_id;
unsigned char str[20];
unsigned char str_temp[30];
HDC hmemDC;
hmemDC=hdc;
SetBkMode(hmemDC,BM_TRANSPARENT);//? SetBkMode
//设置字体颜色
SetTextColor(hmemDC,PIXEL_black); //矩形图TAG
SelectFont(hmemDC,songgb16font);
//读取流量板卡的信息
//strcpy(str_temp,"流量卡参数设定页面");
TextOut(hmemDC,CARDINFO_X,CARDINFO_Y," 参数设定页面3/3");
TextOut(hmemDC,CT3_X1,CT3_Y1,"C1:瞬时流量时间单位" );
TextOut(hmemDC,CT3_X1,CT3_Y2,"C2:累计流量显示精度" );
TextOut(hmemDC,CT3_X1,CT3_Y3,"C3:瞬时流量的小数点" );
TextOut(hmemDC,CT3_X1,CT3_Y4, "C4:补偿温度的小数点");
TextOut(hmemDC,CT3_X1,CT3_Y5, "C5:补偿压力的小数点");
TextOut(hmemDC,CT3_X1,CT3_Y6, "C6:流量的小数点" );
TextOut(hmemDC,CT3_X3,CT3_Y1,"PB1:补偿温度的零点" );
TextOut(hmemDC,CT3_X3,CT3_Y2, "KK1:补偿温度的比例" );
TextOut(hmemDC,CT3_X3,CT3_Y3, "TL/TH:补偿温度的范围");
TextOut(hmemDC,CT3_X3,CT3_Y4+10, "PB2:补偿压力的零点");
TextOut(hmemDC,CT3_X3,CT3_Y5+10, "KK2:补偿压力的比例");
TextOut(hmemDC,CT3_X3,CT3_Y6+10, "PL/PH:补偿压力的范围");
TextOut(hmemDC,CT3_X1,CT3_Y7+8, "PB3:流量的信号零点");
TextOut(hmemDC,CT3_X1,CT3_Y8+8, "KK3:流量的信号比例");
TextOut(hmemDC,CT3_X1,CT3_Y9+8, "CA: 输入量程");
TextOut(hmemDC,CT3_X1,CT3_Y10+8, "CAA:流量的小信号切除");
TextOut(hmemDC,CT3_X1,CT3_Y11+8, "S: 输出量程");
TextOut(hmemDC,CT3_X3,CT3_Y7+5, "DCA:流量" );
TextOut(hmemDC,CT3_X3+135,CT3_Y7+5, "累计流量");
TextOut(hmemDC,CT3_X3,CT3_Y8+5, "DT:补偿温度 ");
TextOut(hmemDC,CT3_X3,CT3_Y9+5, "DP:补偿压力" );
TextOut(hmemDC,CT3_X3,CT3_Y10+5, "SV:瞬时流量" );
TextOut(hmemDC,CT3_X3,CT3_Y11+5, "AT:打印间隔时间" );
//实时值
// BitBlt(hmemDC,0,0,0,HEIGHT-TOP-BOTTOM,hdc,0,0,0);
// DeleteCompatibleDC(hmemDC);
}
//参数页面切换
void ShowNextPage(HWND hDlg,int page)
{
if(page==0){HideT3(hDlg);ShowT1(hDlg);
page_base=CT1_NAME;
}
else if(page==1){HideT1(hDlg);ShowT2(hDlg);
page_base=CT2_B1;
}
else if(page==2){HideT2(hDlg);ShowT3(hDlg);
page_base=CT3_C1;
}
}
//填充初始化信息
void InitFluxCard(HWND hDlg)
{
int i;
int id;
unsigned char str[20];
//板卡不存在时候
flux_id=0;
id=flux_id;
if(flux_number>0)
{
card_flux_reg=(CARDFLUXINFO *)malloc(flux_number*sizeof(CARDFLUXINFO));
card_flux_reg[id].enabled=1;
card_flux_reg[id].dev_addr=devicesinfo[FluxReged[flux_id]].dev_addr;
card_flux_reg[id].dev_borate=devicesinfo[FluxReged[flux_id]].boudrate;
}
else {
card_flux_reg=(CARDFLUXINFO *)malloc(1*sizeof(CARDFLUXINFO));
card_flux_reg[id].enabled=0;
card_flux_reg[id].dev_addr=1;
card_flux_reg[id].dev_borate=4800;
}
//第一页
card_flux_reg[id].temperature=100;
card_flux_reg[id].pressure =100;
card_flux_reg[id].flux=100;
card_flux_reg[id].instant_flux=100;
card_flux_reg[id].Hcumul_flux=100;
card_flux_reg[id].Lcumul_flux=100;
card_flux_reg[id].alarm1_status=0;
card_flux_reg[id].alarm2_status =0;
//第2页
card_flux_reg[id].K1=100;
card_flux_reg[id].K2=100;
card_flux_reg[id].K3=100;
card_flux_reg[id].K4=200;
card_flux_reg[id].A1=1;
card_flux_reg[id].A2=1;
card_flux_reg[id].P=0.928;
card_flux_reg[id].P20=1.091;
card_flux_reg[id].PA=1.601;
//第三页
card_flux_reg[id].C1=0;
card_flux_reg[id].C2=1;
card_flux_reg[id].C3=4;
card_flux_reg[id].C4=2;
card_flux_reg[id].C5=2;
card_flux_reg[id].C6=2;
card_flux_reg[id].DCA=19;
card_flux_reg[id].PV=16;
card_flux_reg[id].DT=7;
card_flux_reg[id].DP=3;
card_flux_reg[id].SV=15;
strcpy(card_flux_reg[id].name,"WP智能流量卡031");
//为BOX框填充内容
//table_B1[card_flux_reg[flux_id].B1]
for(i=0;i<dim(table_BT);i++)
SendDlgItemMessage(hDlg,CT1_BT,CB_ADDSTRING,0, (LPARAM)table_BT[i]) ;
//SendDlgItemMessage(hDlg,CT2_B1,CB_SETCURSEL,2,0);
}
//给下一个页初始化
void InitFCardP2(HWND hDlg)
{
int i;
int id;
unsigned char str[20];
//板卡不存在时候
flux_id=0;
id=flux_id;
for(i=0;i<3;i++)
SendDlgItemMessage(hDlg,CT2_B1,CB_ADDSTRING,0, (LPARAM)table_B1[i]) ;
for(i=0;i<dim(table_B2);i++)
SendDlgItemMessage(hDlg,CT2_B2,CB_ADDSTRING,0, (LPARAM)table_B2[i]) ;
for(i=0;i<6;i++)
SendDlgItemMessage(hDlg,CT2_B5,CB_ADDSTRING,0, (LPARAM)table_B3[i]) ;
for(i=0;i<8;i++)
SendDlgItemMessage(hDlg,CT2_D3,CB_ADDSTRING,0, (LPARAM)table_D3[i]) ;
for(i=0;i<dim(table_D1);i++)
SendDlgItemMessage(hDlg,CT2_D1,CB_ADDSTRING,0, (LPARAM)table_D1[i]) ;
for(i=0;i<dim(table_D2);i++)
SendDlgItemMessage(hDlg,CT2_D2,CB_ADDSTRING,0, (LPARAM)table_D2[i]) ;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -