📄 3kmenu6.c
字号:
/********************
Filename: 3KMENU6.C
History&Datetime:
DateTime: 2007-2-7 05:25下午
JOB-TODO:除电机开关页之外 通道点击的范围偏小 将其鼠标点击范围在menu()函数中
放大为Button + Edit 都可点击响应
********************/
#include "ST3000.H"
#include "STRUC_3K.H"
#include "CORE_VGA.H"
#include "CORE_COM.H"
#include "3KDEFN.H"
static char *szptr_m6_1[15][2] = {
{"纵向报警值", "V-ALARM"},
{"纵向微调值","V-TUNE"},
{"纵向增益P值","V-GAIN P"},
{"纵向增益D值","V-GAIN D"},
{"纵向平均值","V-AVERAGE"},
{"纵向周期频数","V-CYCLE"},
{"纵向不工作区","V-DEAD ZONE"},
{"纵向电机开关","V-MOT SWITCH"},
{"横向报警值", "H-ALARM"},
{"横向微调值","H-TUNE"},
{"横向增益P值","H-GAIN P"},
{"横向增益D值","H-GAIN D"},
{"横向平均值","H-AVERAGE"},
{"横向周期频数","H-CYCLE"},
{"横向不工作区","H-DEAD ZONE"}
};
/**************** local variables ****************/
unsigned char vStdSEL6;
/* vStdSEL6=1 表示标准一;
=2 表示标准二;
=3 表示单标记. */
int vNewPageSEL6,vOldPageSEL6;
int vNewUnitSEL6,vOldUnitSEL6;
/**************** extern constants ****************/
extern const _tagMenuAttr MenuAttr;
extern const _tagInstAttr InstAttr;
extern const _tagSizeAttr SizeAttrB;
extern const _tagSizeAttr SizeAttrE;
extern const _tagSizeAttr SizeConfig;
extern void _Query_jzCmdList(void);
extern int REC_sub1com;
/***
本屏幕的所有页牵扯到PD值、报警值、微调值、平均值等等 需要即改即发
或者换页 换屏发送处理函数
***/
void SyncCMD_M6(void)
{
//换屏检查命令发送情况 可以预料到的命令包含:
//纵横向报警值 CmdFlags[?].bits.bit3; //09H command
//纵向控制参数 CmdFlags[?].bits.bit4; //0AH command
//横向控制参数 CmdFlags[?].bits.bit5; //0BH command
int t;
for(t=1; t<VarST3000.UnitCounts; t++)
{
if( CmdFlags[t].bits.bit3 ) { SendCnlData(t, 0x09);}
}
delay(30);
for(t=1; t<VarST3000.UnitCounts; t++)
{
if( CmdFlags[t].bits.bit4 ) { SendCnlData(t, 0x0a);}
}
delay(30);
for(t=1; t<VarST3000.UnitCounts; t++)
{
if( CmdFlags[t].bits.bit5 ) { SendCnlData(t, 0x0b);}
}
}
/***
标准页选择
***/
void SyncSTDSEL_M6(const int IDsel)
{
int heightofcaps=25;
char *szSTD[3][2]={
"标准一","STD1",
"标准二","STD2",
"单标记","OMK"
};
//major box rectangle of left
MoveTo(MenuAttr.sX+MenuAttr.tW+20, MenuAttr.sY+MenuAttr.bH-20);
LineTo(MenuAttr.sX+MenuAttr.tW+20, MenuAttr.sY+20+heightofcaps, 255, 255, 255);
//major box rectangle of right and bottom
MoveTo(MenuAttr.sX+MenuAttr.tW+20, MenuAttr.sY+MenuAttr.bH-20);
LineTo(MenuAttr.sX+MenuAttr.tW+MenuAttr.bW-20, MenuAttr.sY+MenuAttr.bH-20, 128, 128, 128);
LineTo(MenuAttr.sX+MenuAttr.tW+MenuAttr.bW-20, MenuAttr.sY+20+heightofcaps, 128, 128, 128);
Bar(MenuAttr.sX+MenuAttr.tW+20, MenuAttr.sY+18,
MenuAttr.sX+MenuAttr.tW+171, MenuAttr.sY+19+heightofcaps, 192, 192, 192);
if(IDsel==1)
{ // 标准1
//page1
MoveTo(MenuAttr.sX+MenuAttr.tW+21, MenuAttr.sY+20+heightofcaps);
LineTo(MenuAttr.sX+MenuAttr.tW+69, MenuAttr.sY+20+heightofcaps, 192, 192, 192);
//
MoveTo(MenuAttr.sX+MenuAttr.tW+20, MenuAttr.sY+20+heightofcaps);
LineTo(MenuAttr.sX+MenuAttr.tW+20, MenuAttr.sY+18, 255, 255, 255); //20-2
LineTo(MenuAttr.sX+MenuAttr.tW+70, MenuAttr.sY+18, 255, 255, 255);
LineTo(MenuAttr.sX+MenuAttr.tW+70, MenuAttr.sY+20+heightofcaps, 128, 128, 128);
LineTo(MenuAttr.sX+MenuAttr.tW+MenuAttr.bW-20, MenuAttr.sY+20+heightofcaps, 255, 255, 255);
if(VarST3000.Language)
{ ShowASCMem(MenuAttr.sX+MenuAttr.tW+29, MenuAttr.sY+22, szSTD[0][1], 255, 20, 20);}
else
{ ShowGB2312(MenuAttr.sX+MenuAttr.tW+22, MenuAttr.sY+22, szSTD[0][0], 255, 20, 20);}
//page2
MoveTo(MenuAttr.sX+MenuAttr.tW+71, MenuAttr.sY+20);
LineTo(MenuAttr.sX+MenuAttr.tW+120, MenuAttr.sY+20, 255, 255, 255);
LineTo(MenuAttr.sX+MenuAttr.tW+120, MenuAttr.sY+19+heightofcaps, 128, 128, 128);
if(VarST3000.Language)
{ ShowASCMem(MenuAttr.sX+MenuAttr.tW+80, MenuAttr.sY+22, szSTD[1][1], 0, 0, 0);}
else
{ ShowGB2312(MenuAttr.sX+MenuAttr.tW+73, MenuAttr.sY+22, szSTD[1][0], 0, 0, 0);}
//page3
MoveTo(MenuAttr.sX+MenuAttr.tW+121, MenuAttr.sY+19+heightofcaps);
LineTo(MenuAttr.sX+MenuAttr.tW+121, MenuAttr.sY+20, 255, 255, 255);
LineTo(MenuAttr.sX+MenuAttr.tW+170, MenuAttr.sY+20, 255, 255, 255);
LineTo(MenuAttr.sX+MenuAttr.tW+170, MenuAttr.sY+19+heightofcaps, 128, 128, 128);
if(VarST3000.Language)
{ ShowASCMem(MenuAttr.sX+MenuAttr.tW+130, MenuAttr.sY+22, szSTD[2][1], 0, 0, 0);}
else
{ ShowGB2312(MenuAttr.sX+MenuAttr.tW+123, MenuAttr.sY+22, szSTD[2][0], 0, 0, 0);}
}
else if(IDsel==2)
{ // 标准2
//page2
MoveTo(MenuAttr.sX+MenuAttr.tW+71, MenuAttr.sY+20+heightofcaps);
LineTo(MenuAttr.sX+MenuAttr.tW+119, MenuAttr.sY+20+heightofcaps, 192, 192, 192);
//
MoveTo(MenuAttr.sX+MenuAttr.tW+20, MenuAttr.sY+20+heightofcaps);
LineTo(MenuAttr.sX+MenuAttr.tW+70, MenuAttr.sY+20+heightofcaps, 255, 255, 255);
LineTo(MenuAttr.sX+MenuAttr.tW+70, MenuAttr.sY+18, 255, 255, 255);
LineTo(MenuAttr.sX+MenuAttr.tW+120, MenuAttr.sY+18, 255, 255, 255);
LineTo(MenuAttr.sX+MenuAttr.tW+120, MenuAttr.sY+20+heightofcaps, 128, 128, 128);
LineTo(MenuAttr.sX+MenuAttr.tW+MenuAttr.bW-20, MenuAttr.sY+20+heightofcaps, 255, 255, 255);
if(VarST3000.Language)
{ ShowASCMem(MenuAttr.sX+MenuAttr.tW+80, MenuAttr.sY+22, szSTD[1][1], 255, 20, 20);}
else
{ ShowGB2312(MenuAttr.sX+MenuAttr.tW+73, MenuAttr.sY+22, szSTD[1][0], 255, 20, 20);}
//page1
MoveTo(MenuAttr.sX+MenuAttr.tW+22, MenuAttr.sY+19+heightofcaps);
LineTo(MenuAttr.sX+MenuAttr.tW+22, MenuAttr.sY+20, 255, 255, 255);
LineTo(MenuAttr.sX+MenuAttr.tW+69, MenuAttr.sY+20, 255, 255, 255);
if(VarST3000.Language)
{ ShowASCMem(MenuAttr.sX+MenuAttr.tW+29, MenuAttr.sY+22, szSTD[0][1], 0, 0, 0);}
else
{ ShowGB2312(MenuAttr.sX+MenuAttr.tW+22, MenuAttr.sY+22, szSTD[0][0], 0, 0, 0);}
//page3
MoveTo(MenuAttr.sX+MenuAttr.tW+121, MenuAttr.sY+20);
LineTo(MenuAttr.sX+MenuAttr.tW+170, MenuAttr.sY+20, 255, 255, 255);
LineTo(MenuAttr.sX+MenuAttr.tW+170, MenuAttr.sY+19+heightofcaps, 128, 128, 128);
if(VarST3000.Language)
{ ShowASCMem(MenuAttr.sX+MenuAttr.tW+130, MenuAttr.sY+22, szSTD[2][1], 0, 0, 0);}
else
{ ShowGB2312(MenuAttr.sX+MenuAttr.tW+123, MenuAttr.sY+22, szSTD[2][0], 0, 0, 0);}
}
else if(IDsel==3)
{ // 单标记
//page3
MoveTo(MenuAttr.sX+MenuAttr.tW+121, MenuAttr.sY+20+heightofcaps);
LineTo(MenuAttr.sX+MenuAttr.tW+169, MenuAttr.sY+20+heightofcaps, 192, 192, 192);
//
MoveTo(MenuAttr.sX+MenuAttr.tW+20, MenuAttr.sY+20+heightofcaps);
LineTo(MenuAttr.sX+MenuAttr.tW+120, MenuAttr.sY+20+heightofcaps, 255, 255, 255);
LineTo(MenuAttr.sX+MenuAttr.tW+120, MenuAttr.sY+18, 255, 255, 255);
LineTo(MenuAttr.sX+MenuAttr.tW+170, MenuAttr.sY+18, 255, 255, 255);
LineTo(MenuAttr.sX+MenuAttr.tW+170, MenuAttr.sY+20+heightofcaps, 128, 128, 128);
LineTo(MenuAttr.sX+MenuAttr.tW+MenuAttr.bW-20, MenuAttr.sY+20+heightofcaps, 255, 255, 255);
if(VarST3000.Language)
{ ShowASCMem(MenuAttr.sX+MenuAttr.tW+130, MenuAttr.sY+22, szSTD[2][1], 255, 20, 20);}
else
{ ShowGB2312(MenuAttr.sX+MenuAttr.tW+123, MenuAttr.sY+22, szSTD[2][0], 255, 20, 20);}
//page1
MoveTo(MenuAttr.sX+MenuAttr.tW+22, MenuAttr.sY+19+heightofcaps);
LineTo(MenuAttr.sX+MenuAttr.tW+22, MenuAttr.sY+20, 255, 255, 255);
LineTo(MenuAttr.sX+MenuAttr.tW+69, MenuAttr.sY+20, 255, 255, 255);
LineTo(MenuAttr.sX+MenuAttr.tW+69, MenuAttr.sY+19+heightofcaps, 128, 128, 128);
if(VarST3000.Language)
{ ShowASCMem(MenuAttr.sX+MenuAttr.tW+29, MenuAttr.sY+22, szSTD[0][1], 0, 0, 0);}
else
{ ShowGB2312(MenuAttr.sX+MenuAttr.tW+22, MenuAttr.sY+22, szSTD[0][0], 0, 0, 0);}
//page2
MoveTo(MenuAttr.sX+MenuAttr.tW+70, MenuAttr.sY+19+heightofcaps);
LineTo(MenuAttr.sX+MenuAttr.tW+70, MenuAttr.sY+20, 255, 255, 255);
LineTo(MenuAttr.sX+MenuAttr.tW+119, MenuAttr.sY+20, 255, 255, 255);
if(VarST3000.Language)
{ ShowASCMem(MenuAttr.sX+MenuAttr.tW+80, MenuAttr.sY+22, szSTD[1][1], 0, 0, 0);}
else
{ ShowGB2312(MenuAttr.sX+MenuAttr.tW+73, MenuAttr.sY+22, szSTD[1][0], 0, 0, 0);}
}
}
/***
刷新选中标准页内所有通道指定内容的显示
***/
void SyncDispbySTD_M6(void)
{
int t,xfrom=MenuAttr.sX+MenuAttr.tW+InstAttr.x_offset+SizeAttrB.w+InstAttr.v_instance;
char szE[10];
unsigned char eSTL;
switch( vNewPageSEL6 )
{
case 3: // 纵向增益P值
for(t=1; t<VarST3000.UnitCounts; t++)
{
eSTL=0x0f;
memset(szE, 0, 10);
sprintf(szE, "%5d", unit[t].submenu2.VPlus_P[vStdSEL6-1]);
if( t==(vNewUnitSEL6-1) ) { eSTL|=0x40;}
Edit(xfrom, MenuAttr.sY+InstAttr.y_offset+t*(SizeAttrB.h+InstAttr.h_instance),
SizeAttrE.w, SizeAttrE.h, eSTL, szE);
}
break;
case 4: // 纵向增益D值
for(t=1; t<VarST3000.UnitCounts; t++)
{
eSTL=0x0f;
memset(szE, 0, 10);
sprintf(szE, "%5d", unit[t].submenu2.VPlus_D[vStdSEL6-1]);
if( t==(vNewUnitSEL6-1) ) { eSTL|=0x40;}
Edit(xfrom, MenuAttr.sY+InstAttr.y_offset+t*(SizeAttrB.h+InstAttr.h_instance),
SizeAttrE.w, SizeAttrE.h, eSTL, szE);
}
break;
case 5: // 纵向平均值
for(t=1; t<VarST3000.UnitCounts; t++)
{
eSTL=0x0f;
memset(szE, 0, 10);
sprintf(szE, "%5d", unit[t].submenu2.VHaver[vStdSEL6-1].VAver);
if( t==(vNewUnitSEL6-1) ) { eSTL|=0x40;}
Edit(xfrom, MenuAttr.sY+InstAttr.y_offset+t*(SizeAttrB.h+InstAttr.h_instance),
SizeAttrE.w, SizeAttrE.h, eSTL, szE);
}
break;
case 6: // 纵向周期频数
for(t=1; t<VarST3000.UnitCounts; t++)
{
eSTL=0x0f;
memset(szE, 0, 10);
sprintf(szE, "%5d", unit[t].submenu2.VFps[vStdSEL6-1]);
if( t==(vNewUnitSEL6-1) ) { eSTL|=0x40;}
Edit(xfrom, MenuAttr.sY+InstAttr.y_offset+t*(SizeAttrB.h+InstAttr.h_instance),
SizeAttrE.w, SizeAttrE.h, eSTL, szE);
}
break;
case 7: // 纵向不工作区
for(t=1; t<VarST3000.UnitCounts; t++)
{
eSTL=0x0f;
memset(szE, 0, 10);
sprintf(szE, "%6.2f", unit[t].submenu2.VDeadZone[vStdSEL6-1]/100.0);
if( t==(vNewUnitSEL6-1) ) { eSTL|=0x40;}
Edit(xfrom, MenuAttr.sY+InstAttr.y_offset+t*(SizeAttrB.h+InstAttr.h_instance),
SizeAttrE.w, SizeAttrE.h, eSTL, szE);
}
break;
case 11: // 横向增益P值
for(t=1; t<VarST3000.UnitCounts; t++)
{
eSTL=0x0f;
memset(szE, 0, 10);
sprintf(szE, "%5d", unit[t].submenu2.HPlus_P[vStdSEL6-1]);
if( t==(vNewUnitSEL6-1) ) { eSTL|=0x40;}
Edit(xfrom, MenuAttr.sY+InstAttr.y_offset+t*(SizeAttrB.h+InstAttr.h_instance),
SizeAttrE.w, SizeAttrE.h, eSTL, szE);
}
break;
case 12: // 横向增益D值
for(t=1; t<VarST3000.UnitCounts; t++)
{
eSTL=0x0f;
memset(szE, 0, 10);
sprintf(szE, "%5d", unit[t].submenu2.HPlus_D[vStdSEL6-1]);
if( t==(vNewUnitSEL6-1) ) { eSTL|=0x40;}
Edit(xfrom, MenuAttr.sY+InstAttr.y_offset+t*(SizeAttrB.h+InstAttr.h_instance),
SizeAttrE.w, SizeAttrE.h, eSTL, szE);
}
break;
case 13: // 横向平均值
for(t=1; t<VarST3000.UnitCounts; t++)
{
eSTL=0x0f;
memset(szE, 0, 10);
sprintf(szE, "%5d", unit[t].submenu2.VHaver[vStdSEL6-1].HAver);
if( t==(vNewUnitSEL6-1) ) { eSTL|=0x40;}
Edit(xfrom, MenuAttr.sY+InstAttr.y_offset+t*(SizeAttrB.h+InstAttr.h_instance),
SizeAttrE.w, SizeAttrE.h, eSTL, szE);
}
break;
case 14: // 横向周期频数
for(t=1; t<VarST3000.UnitCounts; t++)
{
eSTL=0x0f;
memset(szE, 0, 10);
sprintf(szE, "%5d", unit[t].submenu2.HFps[vStdSEL6-1]);
if( t==(vNewUnitSEL6-1) ) { eSTL|=0x40;}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -