📄 3kmenu7.c
字号:
case 1: // 标记排列
for(jcnl=1; jcnl<VarST3000.UnitCounts; jcnl++)
{
memset(uchar7, 0, 10);
memset(echar7, 0, 10);
uStyle=0x81;
eStyle=(VarST3000.Language?0x0b:0x03); //change english style from 0x0f to 0x0b.
if(unit[jcnl].submenu1.unitworksnum.i==1 &&
unit[jcnl].submenu1.unitworksnum.j)
{ //A系
sprintf(uchar7, "A%dU", jcnl+1);
if(vNewUnitSEL7==0)
{ vNewUnitSEL7=jcnl+1;
vOldUnitSEL7=vNewUnitSEL7;
uStyle|=0x10; //按下
eStyle|=0x40; //蓝色背景
}
jsuffix=unit[jcnl].submenu1.bitTurns.turnsoflabsA-1;
}
else if(unit[jcnl].submenu1.unitworksnum.i==2 &&
unit[jcnl].submenu1.unitworksnum.j)
{ //B系
sprintf(uchar7, "B%dU", jcnl+1);
if(vNewUnitSEL7==0)
{ vNewUnitSEL7=jcnl+1;
vOldUnitSEL7=vNewUnitSEL7;
uStyle|=0x10; //按下
eStyle|=0x40; //蓝色背景
}
jsuffix=unit[jcnl].submenu1.bitTurns.turnsoflabsB-1;
}
else
{ sprintf(uchar7, "%dU", jcnl+1);
uStyle=0x85;
eStyle=0x80;
jsuffix=0;
}
xNew=MenuAttr.sX+MenuAttr.tW+InstAttr.x_offset;
yNew=MenuAttr.sY+InstAttr.y_offset+jcnl*(SizeAttrB.h+InstAttr.h_instance);
Button(xNew, yNew, SizeAttrB.w, SizeAttrB.h, uStyle, uchar7, 192, 192, 192);
Edit(xNew+SizeAttrB.w+InstAttr.v_instance, yNew,
SizeAttrE.w, SizeAttrE.h, eStyle, szptr_m7_turns[jsuffix][VarST3000.Language]);
}
xNew=MenuAttr.sX+MenuAttr.tW+MenuAttr.bW+50;
uStyle=(VarST3000.Language?0x81:0x03); //暂时表示按钮风格
Button(xNew, 224, 100, 50, uStyle, szptr_m7_turns[0][VarST3000.Language], 192, 192, 192);
Button(xNew, 294, 100, 50, uStyle, szptr_m7_turns[1][VarST3000.Language], 192, 192, 192);
Button(xNew, 364, 100, 50, uStyle, szptr_m7_turns[2][VarST3000.Language], 192, 192, 192);
Button(xNew, 434, 100, 50, uStyle, szptr_m7_turns[3][VarST3000.Language], 192, 192, 192);
Button(xNew, 504, 100, 50, uStyle, szptr_m7_turns[4][VarST3000.Language], 192, 192, 192);
break;
case 2: //标准色序
SyncDisp_M73(vSErSEL7);
xNew=MenuAttr.sX+MenuAttr.tW+MenuAttr.bW+50;
uStyle=(VarST3000.Language?0x81:0x03); //暂时表示按钮风格
Button(xNew, 224, 100, 50, uStyle, szptr_m7_3[0][VarST3000.Language], 192, 192, 192); //色序加
Button(xNew, 294, 100, 50, uStyle, szptr_m7_3[1][VarST3000.Language], 192, 192, 192); //色序减
break;
case 3: //波门宽度
DrawNumKBoard(690, 100);
for(jcnl=1; jcnl<VarST3000.UnitCounts; jcnl++)
{
memset(uchar7, 0, 10);
memset(echar7, 0, 10);
sprintf(uchar7, "%dU", jcnl+1);
sprintf(echar7, "%5d", unit[jcnl].submenu2.ValueWidth);
uStyle=0x81;
eStyle=0x0f;//(VarST3000.Language?0x0f:0x03);
if( unit[jcnl].submenu1.unitworksnum.i &&
unit[jcnl].submenu1.unitworksnum.j)
{
if(vNewUnitSEL7==0)
{ vNewUnitSEL7=jcnl+1;
vOldUnitSEL7=vNewUnitSEL7;
uStyle|=0x10; //按下
eStyle|=0x40; //蓝色背景
}
}
xNew=MenuAttr.sX+MenuAttr.tW+InstAttr.x_offset;
yNew=MenuAttr.sY+InstAttr.y_offset+jcnl*(SizeAttrB.h+InstAttr.h_instance);
Button(xNew, yNew, SizeAttrB.w, SizeAttrB.h, uStyle, uchar7, 192, 192, 192);
Edit(xNew+SizeAttrB.w+InstAttr.v_instance, yNew, SizeAttrE.w, SizeAttrE.h, eStyle, echar7);
}
// 清除输入缓冲区 屏蔽符号和小数 2位有效数
ClearKBuffer();
g_Klength=2; g_Kmask=0x03;
break;
case 4: //标准设置 坐标计算复杂 20051028 14:47更新为固定坐标
DrawNumKBoard(690, 100);
vOldPNoSEL7=1; //默认选择都放在标准选择按钮上
vNewPNoSEL7=1; //默认选择都放在标准选择按钮上
//按钮
uStyle=(VarST3000.Language?0x81:0x03);
Button(205, 220, 100, 35, uStyle, szptr_m7_2[0][VarST3000.Language], 192, 192, 192); //标准选择
Button(205, 270, 100, 35, uStyle, szptr_m7_2[3][VarST3000.Language], 192, 192, 192); //标记角度
Button(205, 320, 100, 35, uStyle, szptr_m7_3[2][VarST3000.Language],192, 192, 192); //色标间距
Button(355, 170, 100, 35, uStyle, szptr_m7_2[1][VarST3000.Language], 192, 192, 192); //A系列
Button(505, 170, 100, 35, uStyle, szptr_m7_2[2][VarST3000.Language], 192, 192, 192); //B系列
//内容框
//标准选择
eStyle=(VarST3000.Language?0x01:0x03);
Edit(355, 220, 100, 35, (eStyle|0x40), szptr_m7_2[4+SysSet.bitStand.AsetStandard][VarST3000.Language]);
Edit(505, 220, 100, 35, eStyle, szptr_m7_2[4+SysSet.bitStand.BsetStandard][VarST3000.Language]);
//标记角度
eStyle=0x0F;
memset(echar7, 0, 10);
sprintf(echar7, "%5d", SysSet.ASignTangle);
Edit(355, 270, 100, 35, eStyle, echar7);
memset(echar7, 0, 10);
sprintf(echar7, "%5d", SysSet.BSignTangle);
Edit(505, 270, 100, 35, eStyle, echar7);
//色标间距
memset(echar7, 0, 10);
sprintf(echar7, "%5.2f", SysSet.ColorWidthA/100.0);
Edit(355, 320, 100, 35, eStyle, echar7);
memset(echar7, 0, 10);
sprintf(echar7, "%5.2f", SysSet.ColorWidthB/100.0);
Edit(505, 320, 100, 35, eStyle, echar7);
//
uStyle=(VarST3000.Language?0x81:0x03); //暂时表示按钮风格
Button(MenuAttr.sX+MenuAttr.tW+MenuAttr.bW+50, 450, 100, 50, uStyle, szptr_m7_2[4][VarST3000.Language], 192, 192, 192); //标准一
Button(MenuAttr.sX+MenuAttr.tW+MenuAttr.bW+170, 450, 100, 50, uStyle, szptr_m7_2[5][VarST3000.Language], 192, 192, 192); //标准二
break;
case 5: //纵横向电机正反转
xNew=MenuAttr.sX+MenuAttr.tW;
Rectangle(xNew+15, MenuAttr.sY+50, xNew+480, MenuAttr.sY+MenuAttr.bH-50, 128, 128, 128);
Rectangle(xNew+16, MenuAttr.sY+51, xNew+481, MenuAttr.sY+MenuAttr.bH-49, 255, 255, 255);
Line(xNew+170, MenuAttr.sY+52, xNew+170, MenuAttr.sY+MenuAttr.bH-51, 128, 128, 128);
Line(xNew+325, MenuAttr.sY+52, xNew+325, MenuAttr.sY+MenuAttr.bH-51, 128, 128, 128);
Bar(xNew+65, MenuAttr.sY+50, xNew+120, MenuAttr.sY+52, 192, 192, 192);
Bar(xNew+220,MenuAttr.sY+50, xNew+275, MenuAttr.sY+52, 192, 192, 192);
Bar(xNew+375,MenuAttr.sY+50, xNew+430, MenuAttr.sY+52, 192, 192, 192);
if(VarST3000.Language)
{ ShowASCMem(xNew+75, MenuAttr.sY+42, "VERT", 0, 0, 0);
ShowASCMem(xNew+230,MenuAttr.sY+42, "HORZ", 0, 0, 0);
ShowASCMem(xNew+378,MenuAttr.sY+42, "SINGLE", 0,0,0);
}
else
{ ShowGB2312(xNew+75, MenuAttr.sY+42, "纵向", 0, 0, 0);
ShowGB2312(xNew+230,MenuAttr.sY+42, "横向", 0, 0, 0);
ShowGB2312(xNew+378,MenuAttr.sY+42, "单标记", 0,0,0);
}
for(jcnl=1; jcnl<VarST3000.UnitCounts; jcnl++)
{ SyncMRev76(jcnl, 0x07);}
break;
case 6: //横向控制开关
Rectangle(MenuAttr.sX+MenuAttr.tW+50, MenuAttr.sY+50,
MenuAttr.sX+MenuAttr.tW+MenuAttr.bW-50, MenuAttr.sY+MenuAttr.bH-50, 128, 128, 128);
Rectangle(MenuAttr.sX+MenuAttr.tW+51, MenuAttr.sY+51,
MenuAttr.sX+MenuAttr.tW+MenuAttr.bW-49, MenuAttr.sY+MenuAttr.bH-49, 255, 255, 255);
for(jcnl=1; jcnl<VarST3000.UnitCounts; jcnl++)
{ SyncHCtrl77(jcnl);}
break;
/*******************************************/
case 7: // 系统配置表
{
#ifndef ST3000_TMODE
int t,iCtrlUnitID,rLEN,iCtrlExist=0;
unsigned long ttmsouts=0L;
#endif
DrawCfgTable(MenuAttr.sX+MenuAttr.tW+(MenuAttr.bW-SizeConfig.w)/2, MenuAttr.sY+80);
SimKB_MS78(690, 100);
#ifndef ST3000_TMODE
for(t=0; t<MAXCNL_3K; t++)
{
checkbuffer[t].unitnumber=0;
smsg1.id=(t<<6);
smsg1.rtr=0;
smsg1.dlen=0;
CAN_SendMsg(smsg1);
}
VarST3000.UnitCounts=VarST3000.UnitActuals=0;
ttmsouts=0L;
delay(2000);
while( (VarST3000.UnitActuals<MAXCNL_3K) && (ttmsouts<100000) )
{
if( CAN_RecvMsg(&rmsg1) )
{
if( (rmsg1.id&0x3f)==0)
{ // 确认是单元上报单元编号
iCtrlExist=0;
iCtrlUnitID=((rmsg1.id>>6)&0x0f);
if(rmsg1.dlen!=3)
{ continue;}
if( iCtrlUnitID<1 || iCtrlUnitID>MAXCNL_3K )
{ continue;}
for(t=1; t<=VarST3000.UnitActuals; t++)
{
if( rmsg1.data[0]==checkbuffer[t].buffer[4] &&
rmsg1.data[1]==checkbuffer[t].buffer[5] &&
rmsg1.data[2]==checkbuffer[t].buffer[6] &&
iCtrlUnitID==checkbuffer[t].unitnumber)
{ iCtrlExist=1; break;}
}
if( (!iCtrlExist) && (rmsg1.data[0]) )
{
VarST3000.UnitActuals++;
checkbuffer[VarST3000.UnitActuals].buffer[3] =iCtrlUnitID;
checkbuffer[VarST3000.UnitActuals].buffer[4] =rmsg1.data[0];
checkbuffer[VarST3000.UnitActuals].buffer[5] =rmsg1.data[1];
checkbuffer[VarST3000.UnitActuals].buffer[6] =rmsg1.data[2];
checkbuffer[VarST3000.UnitActuals].unitnumber=iCtrlUnitID;
ttmsouts=0L;
}
}
}
else { ttmsouts++;}
}
/*
排序 并且刷新配置表显示
*/
ReSortCURecv();
DrawCfgTable(MenuAttr.sX+MenuAttr.tW+(MenuAttr.bW-SizeConfig.w)/2, MenuAttr.sY+80);
SysSet.unitscount=VarST3000.UnitCounts=MAXCNL_3K; // 单元最大没有限制 无论多少都认为是13色的机械
#endif
// 清除输入缓冲区 屏蔽小数和符号输入 限定为2有效数长度
ClearKBuffer();
g_Klength=2; g_Kmask=0x03;
}
break;
/*******************************************/
case 8: //恢复出厂参数
xNew=MenuAttr.sX+MenuAttr.tW+(MenuAttr.bW-400)/2;
yNew=MenuAttr.sY+(MenuAttr.bH-240)*2/5;
Win32Dlg(xNew, yNew, 400, 240);
if(VarST3000.Language)
{ ShowASCMem(xNew+60, yNew+60, "RESTORE SYSTEM PARAMETER,YES OR NO?", 255, 0, 0);}
else
{ ShowGB2312(xNew+60, yNew+60, "系统将恢复出厂参数,请确认是否恢复?", 255, 0, 0);}
Button(xNew+60, yNew+180, 100, 40, 0x81, "OK", 192, 192, 192);
Button(xNew+240,yNew+180, 100, 40, 0x81, "Cancel", 192, 192, 192);
break;
case 9://二次印刷开关
Rectangle(MenuAttr.sX+MenuAttr.tW+50, MenuAttr.sY+50,
MenuAttr.sX+MenuAttr.tW+MenuAttr.bW-50, MenuAttr.sY+MenuAttr.bH-50, 128, 128, 128);
Rectangle(MenuAttr.sX+MenuAttr.tW+51, MenuAttr.sY+51,
MenuAttr.sX+MenuAttr.tW+MenuAttr.bW-49, MenuAttr.sY+MenuAttr.bH-49, 255, 255, 255);
for(jcnl=1; jcnl<VarST3000.UnitCounts; jcnl++)
{ SyncSecPrn711(jcnl);}
break;
case 10://屏幕保护
Rectangle(MenuAttr.sX+MenuAttr.tW+50, MenuAttr.sY+50,
MenuAttr.sX+MenuAttr.tW+MenuAttr.bW-50, MenuAttr.sY+MenuAttr.bH-50, 128, 128, 128);
Rectangle(MenuAttr.sX+MenuAttr.tW+51, MenuAttr.sY+51,
MenuAttr.sX+MenuAttr.tW+MenuAttr.bW-49, MenuAttr.sY+MenuAttr.bH-49, 255, 255, 255);
for(jcnl=1; jcnl<VarST3000.UnitCounts; jcnl++)
{ SyncSCRPROT712(jcnl);}
break;
default:
break;
}
}
/******************************
描述: 检查用户所修改的单元号是否有重复号
******************************/
unsigned CheckREPEAT(void)
{
int i,j;
unsigned retvalue=0;
for(i=1; i<VarST3000.UnitActuals; i++)
{
for(j=i+1; j<=VarST3000.UnitActuals; j++)
{
if(checkbuffer[i].buffer[3]==checkbuffer[j].buffer[3])
{
retvalue=1;
i=VarST3000.UnitActuals+10;
break;
}
}
}
return(retvalue);
}
/******************************
描述: 系统配置页事件处理函数
******************************/
void RespPAGE7_M7(const int x, const int y)
{
int kNO,kInteger7;
int j,w_sysno,x_machno=x+SizeConfig.w*4/5+5;
char vchar[20];
unsigned char onceflag78=0;
for(j=1; j<=VarST3000.UnitActuals; j++)
{
if( (ClickCol>=x_machno && ClickCol<=x_machno+SizeConfig.w/5-5) &&
(ClickRow>=y+j*30-1 && ClickRow<=y+j*30+23) && vItemSEL7!=j)
{
if(vItemSEL7==100)
{ //年
Bar(x+SizeConfig.w/3+3, y+SizeConfig.h+41,
x+SizeConfig.w/3+3+((SizeConfig.w*2/3)/3)-8, y+SizeConfig.h+74, 255, 255, 255);
memset(vchar, 0, 20);
sprintf(vchar, "%02d", system1[0].sub1.B1);
ShowGB2312(x+SizeConfig.w/3+3+(((SizeConfig.w*2/3)/3)-40)/2, y+SizeConfig.h+50, vchar, 0, 0, 0);
}
else if(vItemSEL7==110)
{ //月
Bar(x+SizeConfig.w/3+3+(SizeConfig.w*2/3)/3, y+SizeConfig.h+41,
x+SizeConfig.w/3+3+((SizeConfig.w*2/3)/3)*2-8, y+SizeConfig.h+74, 255, 255, 255);
memset(vchar, 0, 20);
sprintf(vchar, "%02d", system1[0].sub1.B2);
ShowGB2312(x+SizeConfig.w/3+3+((SizeConfig.w*2/3)/3)+(((SizeConfig.w*2/3)/3)-40)/2, y+SizeConfig.h+50, vchar, 0, 0, 0);
}
else if(vItemSEL7==120)
{ //编号
Bar(x+SizeConfig.w/3+3+((SizeConfig.w*2/3)/3)*2, y+SizeConfig.h+41,
x+SizeConfig.w/3+3+((SizeConfig.w*2/3)/3)*3-5, y+SizeConfig.h+74, 255, 255, 255);
memset(vchar, 0, 20);
sprintf(vchar, "%03d", system1[0].sub1.B3);
ShowGB2312(x+SizeConfig.w/3+3+((SizeConfig.w*2/3)/3)*2+(((SizeConfig.w*2/3)/3)-48)/2, y+SizeConfig.h+50, vchar, 0, 0, 0);
}
else if(vItemSEL7>0 && vItemSEL7<=VarST3000.UnitActuals)
{
Bar(x_machno-1, y+vItemSEL7*30-1,
x_machno+SizeConfig.w/5-7, y+vItemSEL7*30+23, 255, 255, 255);
memset(vchar, 0, 20);
sprintf(vchar, "%02d", checkbuffer[vItemSEL7].buffer[3]+1);
ShowGB2312(x+SizeConfig.w-32, y+vItemSEL7*30+3, vchar, 0, 0, 0);
}
Bar(x_machno-1, y+j*30-1, x_machno+SizeConfig.w/5-7, y+j*30+23, 255, 0, 0);
memset(vchar, 0, 20);
sprintf(vchar, "%02d", checkbuffer[j].buffer[3]+1);
ShowGB2312(x+SizeConfig.w-32, y+j*30+3, vchar, 255, 255, 255);
vItemSEL7=j;
onceflag78=1;
ClearKBuffer();
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -