📄 3kmenu7.c
字号:
}
}
if(onceflag78) { return;}
//判断是否点击系统编号栏
w_sysno=(SizeConfig.w*2/3)/3;
x_machno=x+SizeConfig.w/3+3;
if( (ClickCol>=x_machno && ClickCol<=x_machno+w_sysno-8) &&
(ClickRow>=y+SizeConfig.h+40 && ClickRow<=y+SizeConfig.h+75) && vItemSEL7!=100)
{ //年
if(vItemSEL7>0 && vItemSEL7<=VarST3000.UnitActuals)
{
Bar(x+SizeConfig.w*4/5+4, y+vItemSEL7*30-1,
x+SizeConfig.w*4/5+SizeConfig.w/5-2, 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);
}
else if(vItemSEL7==110)
{
Bar(x_machno+w_sysno, y+SizeConfig.h+41,
x_machno+w_sysno*2-8, y+SizeConfig.h+74, 255, 255, 255);
memset(vchar, 0, 20);
sprintf(vchar, "%02d", system1[0].sub1.B2);
ShowGB2312(x_machno+w_sysno+(w_sysno-40)/2, y+SizeConfig.h+50, vchar, 0, 0, 0);
}
else if(vItemSEL7==120)
{
Bar(x_machno+w_sysno*2, y+SizeConfig.h+41,
x_machno+w_sysno*3-5, y+SizeConfig.h+74, 255, 255, 255);
memset(vchar, 0, 20);
sprintf(vchar, "%03d", system1[0].sub1.B3);
ShowGB2312(x_machno+w_sysno*2+(w_sysno-48)/2, y+SizeConfig.h+50, vchar, 0, 0, 0);
}
vItemSEL7=100;
Bar(x_machno, y+SizeConfig.h+41,
x_machno+w_sysno-8, y+SizeConfig.h+74, 255, 0, 0);
memset(vchar, 0, 20);
sprintf(vchar, "%02d", system1[0].sub1.B1);
ShowGB2312(x_machno+(w_sysno-40)/2, y+SizeConfig.h+50, vchar, 255, 255, 255);
ClearKBuffer();
return;
}
else if((ClickCol>=x_machno+w_sysno && ClickCol<=x_machno+w_sysno*2-8) &&
(ClickRow>=y+SizeConfig.h+40 && ClickRow<=y+SizeConfig.h+75) && vItemSEL7!=110)
{ //月
if(vItemSEL7>0 && vItemSEL7<=VarST3000.UnitActuals)
{
Bar(x+SizeConfig.w*4/5+4, y+vItemSEL7*30-1,
x+SizeConfig.w*4/5+SizeConfig.w/5-2, 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);
}
else if(vItemSEL7==100)
{
Bar(x_machno, y+SizeConfig.h+41,
x_machno+w_sysno-8, y+SizeConfig.h+74, 255, 255, 255);
memset(vchar, 0, 20);
sprintf(vchar, "%02d", system1[0].sub1.B1);
ShowGB2312(x_machno+(w_sysno-40)/2, y+SizeConfig.h+50, vchar, 0, 0, 0);
}
else if(vItemSEL7==120)
{
Bar(x_machno+w_sysno*2, y+SizeConfig.h+41,
x_machno+w_sysno*3-5, y+SizeConfig.h+74, 255, 255, 255);
memset(vchar, 0, 20);
sprintf(vchar, "%03d", system1[0].sub1.B3);
ShowGB2312(x_machno+w_sysno*2+(w_sysno-48)/2, y+SizeConfig.h+50, vchar, 0, 0, 0);
}
vItemSEL7=110;
Bar(x_machno+w_sysno, y+SizeConfig.h+41,
x_machno+w_sysno*2-8, y+SizeConfig.h+74, 255, 0, 0);
memset(vchar, 0, 20);
sprintf(vchar, "%02d", system1[0].sub1.B2);
ShowGB2312(x_machno+w_sysno+(w_sysno-40)/2, y+SizeConfig.h+50, vchar, 255, 255, 255);
ClearKBuffer();
return;
}
else if((ClickCol>=x_machno+w_sysno*2 && ClickCol<=x_machno+w_sysno*3-5) &&
(ClickRow>=y+SizeConfig.h+40 && ClickRow<=y+SizeConfig.h+75) && vItemSEL7!=120)
{ //编号
if(vItemSEL7>0 && vItemSEL7<=VarST3000.UnitActuals)
{
Bar(x+SizeConfig.w*4/5+4, y+vItemSEL7*30-1,
x+SizeConfig.w*4/5+SizeConfig.w/5-2, 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);
}
else if(vItemSEL7==100)
{
Bar(x_machno, y+SizeConfig.h+41,
x_machno+w_sysno-8, y+SizeConfig.h+74, 255, 255, 255);
memset(vchar, 0, 20);
sprintf(vchar, "%02d", system1[0].sub1.B1);
ShowGB2312(x_machno+(w_sysno-40)/2, y+SizeConfig.h+50, vchar, 0, 0, 0);
}
else if(vItemSEL7==110)
{
Bar(x_machno+w_sysno, y+SizeConfig.h+41,
x_machno+w_sysno*2-8, y+SizeConfig.h+74, 255, 255, 255);
memset(vchar, 0, 20);
sprintf(vchar, "%02d", system1[0].sub1.B2);
ShowGB2312(x_machno+w_sysno+(w_sysno-40)/2, y+SizeConfig.h+50, vchar, 0, 0, 0);
}
vItemSEL7=120;
Bar(x_machno+w_sysno*2, y+SizeConfig.h+41,
x_machno+w_sysno*3-5, y+SizeConfig.h+74, 255, 0, 0);
memset(vchar, 0, 20);
sprintf(vchar, "%03d", system1[0].sub1.B3);
ShowGB2312(x_machno+w_sysno*2+(w_sysno-48)/2, y+SizeConfig.h+50, vchar, 255, 255, 255);
ClearKBuffer();
return;
}
kNO=SimKB_MS78_Resp(690, 100);
if(kNO!=100)
{
if(kNO==12 || kNO==13)
{ //ENT .or. OK
if(strlen(Dispbuf))
{
kInteger7=atoi(Dispbuf);
if(vItemSEL7==100)
{
if(kInteger7>=0 && kInteger7<100)
{ //年
system1[0].sub1.B1=kInteger7;
}
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, 0, 0);
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, 255, 255, 255);
ClearKBuffer();
}
else if(vItemSEL7==110)
{
if(kInteger7>0 && kInteger7<13)
{ //月
system1[0].sub1.B2=kInteger7;
}
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, 0, 0);
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, 255, 255, 255);
ClearKBuffer();
}
else if(vItemSEL7==120)
{ //编号无限制
system1[0].sub1.B3=kInteger7;
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, 0, 0);
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, 255, 255, 255);
ClearKBuffer();
}
else if(vItemSEL7>0 && vItemSEL7<=VarST3000.UnitActuals)
{
if(kInteger7>1 && kInteger7<=MAXCNL_3K)
{ //有效
checkbuffer[vItemSEL7].buffer[3]=kInteger7-1;
}
Bar(x+SizeConfig.w*4/5+5-1, y+vItemSEL7*30-1,
x+SizeConfig.w*4/5+5+SizeConfig.w/5-7, y+vItemSEL7*30+23, 255, 0, 0);
memset(vchar, 0, 20);
sprintf(vchar, "%02d", checkbuffer[vItemSEL7].buffer[3]+1);
ShowGB2312(x+SizeConfig.w-32, y+vItemSEL7*30+3, vchar, 255, 255, 255);
ClearKBuffer();
}
}
if(kNO==13)
{ //OK 下发更改通道命令
if( CheckREPEAT() )
{ //重复了 给出提示
MessageBox( (VarST3000.Language ? "MACH-NO repeated" : "机组号重复") );
}
else
{ //可以更新
for(j=1; j<=VarST3000.UnitActuals; j++)
{
checkbuffer[j].buffer[0]=system1[0].sub1.B1;
checkbuffer[j].buffer[1]=system1[0].sub1.B2;
checkbuffer[j].buffer[2]=system1[0].sub1.B3;
memcpy(smsg1.data, checkbuffer[j].buffer, 7);
smsg1.id =0x02; //2号命令
smsg1.id+=(checkbuffer[j].unitnumber*64);
smsg1.rtr=0;
smsg1.dlen=7;
CAN_SendMsg(smsg1);
}
for(j=1; j<=VarST3000.UnitActuals; j++)
{ //同步单元号
checkbuffer[j].unitnumber=checkbuffer[j].buffer[3];
}
ReSortCURecv();
DrawCfgTable(MenuAttr.sX+MenuAttr.tW+(MenuAttr.bW-SizeConfig.w)/2, MenuAttr.sY+80);
////最大通道号被更改
//if(VarST3000.UnitCounts!=checkbuffer[VarST3000.UnitActuals].buffer[3]+1)
//{ VarST3000.UnitCounts=checkbuffer[VarST3000.UnitActuals].buffer[3]+1;}
//___系统配置表中的存在的通道号 都发送789ab命令
for(j=1; j<=VarST3000.UnitActuals; j++)
{
CmdFlags[checkbuffer[j].unitnumber].B|=0x3f; //___发送6789aB命令
}
}
}
}
else
{ SimKB_MS78_Proc(kNO);
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, 128, 128);
ShowGB2312(x+SizeConfig.w/3+3+(((SizeConfig.w*2/3)/3)-40)/2,
y+SizeConfig.h+50, Dispbuf, 0, 0, 198);
}
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, 128, 128);
ShowGB2312(x+SizeConfig.w/3+3+((SizeConfig.w*2/3)/3)+(((SizeConfig.w*2/3)/3)-40)/2,
y+SizeConfig.h+50, Dispbuf, 0, 0, 198);
}
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, 128, 128);
ShowGB2312(x+SizeConfig.w/3+3+((SizeConfig.w*2/3)/3)*2+(((SizeConfig.w*2/3)/3)-48)/2,
y+SizeConfig.h+50, Dispbuf, 0, 0, 198);
}
else if(vItemSEL7>0 && vItemSEL7<=VarST3000.UnitActuals)
{
Bar(x+SizeConfig.w*4/5+5-1, y+vItemSEL7*30-1,
x+SizeConfig.w*4/5+5+SizeConfig.w/5-7, y+vItemSEL7*30+23, 255, 128, 128);
ShowGB2312(x+SizeConfig.w-32, y+vItemSEL7*30+3, Dispbuf, 0, 0, 198);
}
}
}
}
/******************************
描述: 对于横向开关和下位机控制单元之间的同步相应
******************************/
void Synchronize_HCtrl(const int iCNL)
{
int jcnl;
unsigned char virtualWS,syncflag[MAXCNL_3K]={0};
unsigned char vJOB_SER = unit[iCNL].submenu1.unitworksnum.i;
syncflag[iCNL]=1; //___需要发送
if( GetEntireAuto(vJOB_SER) )
{ //___whole machine work status changed.
virtualWS=((vJOB_SER==1) ? EntireStatus.EntireAuto_A : EntireStatus.EntireAuto_B); // record current job-ser whole work status.
for(jcnl=1; jcnl<VarST3000.UnitCounts; jcnl++)
{
if( unit[jcnl].submenu1.unitworksnum.i==vJOB_SER && unit[jcnl].submenu1.unitworksnum.j )
{
CommandData[jcnl].Cmd6[2]&=0xfc; //___整机 本组手动
if( virtualWS ) { CommandData[jcnl].Cmd6[2]|=0x02;} //___整机自动
if( unit[jcnl].submenu1.bitfield.hand_auto ) { CommandData[jcnl].Cmd6[2]|=0x01;} //___纵向自动
CommandData[jcnl].Cmd6[6]&=0xdf; //___横向手动
if( unit[jcnl].submenu1.bitfield.hcontrol && unit[jcnl].submenu1.bitfield.h_motorruning )
{ CommandData[jcnl].Cmd6[6]|=0x20;} //___横向自动
syncflag[jcnl]=1;
}
}
}
for(jcnl=1; jcnl<VarST3000.UnitCounts; jcnl++)
{
if( syncflag[jcnl] )
{ SendCnlData(jcnl, 0x06); delay(10);}
}
}
/******************************
描述: 单页事件处理函数
说明: 第07页:系统配置表 单独函数处理(RespPAGE7_M7)
******************************/
void RespPAGE_M7(const int iPAGE)
{
int xNew,yNew,xHitLeft,BFlag,BFlag1;
int NO,jcnl,tmpi7;
char uchar7[20],echar7[20];
long tmpl7;
float tmpf7;
unsigned char syncflag7=0;
unsigned char syncflag_standard=0;
unsigned char uStyle,eStyle;
int t,BCUTurns,BEntireTurns,BEntireAuto,Bjob=unit[vNewUnitSEL7-1].submenu1.unitworksnum.i;
switch(iPAGE)
{
case 1: // 标记排列
if( (VarST3000.UnitCounts>0) && (vNewUnitSEL7>0) )
{
NO=100;
xHitLeft=MenuAttr.sX+MenuAttr.tW+MenuAttr.bW+50;
uStyle=(VarST3000.Language?0x81:0x03); // 暂时表示按钮风格
if( (ClickCol>=xHitLeft && ClickCol<=xHitLeft+100) &&
(ClickRow>=224 && ClickRow<=274) )
{
//Button(xHitLeft, 224, 100, 50, 0x10, NULL, 192, 192, 192);
Rect(xHitLeft, 224, 100, 50, 1);
delay(15);
Button(xHitLeft, 224, 100, 50, uStyle, szptr_m7_turns[0][VarST3000.Language], 192, 192, 192);
NO=0;
}
else if( (ClickCol>=xHitLeft && ClickCol<=xHitLeft+100) &&
(ClickRow>=294 && ClickRow<=344) )
{
//Button(xHitLeft, 294, 100, 50, 0x10, NULL, 192, 192, 192);
Rect(xHitLeft, 294, 100, 50, 1);
delay(15);
Button(xHitLeft, 294, 100, 50, uStyle, szptr_m7_turns[1][VarST3000.Language], 192, 192, 192);
NO=1;
}
else if( (ClickCol>=xHitLeft && ClickCol<=xHitLeft+100) &&
(ClickRow>=364 && ClickRow<=414) )
{
//Button(xHitLeft, 364, 100, 50, 0x10, NULL, 192, 192, 192);
Rect(xHitLeft, 364, 100, 50, 1);
delay(15);
Button(xHitLeft, 364, 100, 50, uStyle, szptr_m7_turns[2][VarST3000.Language], 192, 192, 192);
NO=2;
}
else if( (ClickCol>=xHitLeft && ClickCol<=xHitLeft+100) &&
(ClickRow>=434 && ClickRow<=484) )
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -