📄 3kmenu2x.c
字号:
unit[jcnl].submenu1.bitfield.hand_auto=vNewWKS;
CommandData[jcnl].Cmd6[2]=(vNewWKS?0x03:0x00);
if(unit[jcnl].submenu1.bitfield.hcontrol)
{ //横向开关
unit[jcnl].submenu1.bitfield.h_motorruning=vNewWKS;
if(vNewWKS)
{ CommandData[jcnl].Cmd6[6]|=0x20;}
else
{ CommandData[jcnl].Cmd6[6]&=0xdf;}
}
//对于智能开的一定要关掉
if(unit[jcnl].submenu1.bitfield.autowork)
{ unit[jcnl].submenu1.bitfield.autowork=0;
SetwjrSearAddrFlags(jcnl, 0);
CommandData[jcnl].Cmd6[1]&=0x09;
}
vMustSyncFlags[jcnl]=1;
//___刷新标记
SetWrkMark23(jcnl, 1);
}
}
if(vNewWKS)
{ NotifyCU789AB(VarST3000.jobAB);} //自动. 这里面没有发送6号工作命令
else //手动
{
if(VarST3000.jobAB==1)
{ EntireStatus.EntireIntelligent_A=0;}
else
{ EntireStatus.EntireIntelligent_B=0;}
//____整机智能关闭
Button(30, 240, 85, 45, 0x00, NULL, 192, 192, 192);
ShowICO3232(3, 53, 246);
//____本组智能关闭
Button(870, 380, 85, 45, 0x00, NULL, 192, 192, 192);
ShowICO3232(16, 894, 386);
}
_SetVWS_M23(); //___纵向自动手动图标
if( unit[UnitSEL-1].submenu1.bitfield.hcontrol )
{ _SetHWS_M23();} //___横向自动手动图标
//___通知控制单元更新状态
for(jcnl=1; jcnl<VarST3000.UnitCounts; jcnl++)
{
if( unit[jcnl].submenu1.unitworksnum.i==VarST3000.jobAB &&
unit[jcnl].submenu1.unitworksnum.j && vMustSyncFlags[jcnl])
{ SendCnlData(jcnl, 0x06);}
}
}
/***
波形显示放大
***/
void RespZOOM(void)
{
unsigned tCofBan=( (VarST3000.jobAB==1) ? SysSet.CofBanA : SysSet.CofBanB );
//Button(870, 310, 85, 45, 0x10, NULL, 192, 192, 192);
Rect(870,310,85,45,1);//2007-4-12 10:43
delay(BTN_DELAY);
Button(870, 310, 85, 45, 0x00, NULL, 192, 192, 192);
if( Scaling==1 )
{
if( tCofBan>=5000 ) { Scaling=4;}
else { Scaling=2;}
if( Scaling==MaxScale )
{ ShowICO3232(13, 894, 316);}
else
{ ShowICO3232(14, 894, 316);}
}
else if( Scaling==2 )
{
Scaling=1;
if( tCofBan>=5000 )
{ ShowICO3232(15, 894, 316);}
else
{ ShowICO3232(14, 894, 316);}
}
else if( Scaling==4 )
{
Scaling=2;
ShowICO3232(14, 894, 316);
}
ResetWavAttrib(UnitSEL-1, 1);
DrawWAVbk();
DrawRuler();
DrawGate();
MoveTo(displaybar[UnitSEL-1]+displaywidth[UnitSEL-1]/(Scaling*2), 468);
LineTo(displaybar[UnitSEL-1]+displaywidth[UnitSEL-1]/(Scaling*2), 668, 0, 0, 255);
if( adresult )
{ DrawWAVfr(lineheader[UnitSEL-1]); DrawZ();}
}
/******************************
描述: 显示指定通道的内容显示
******************************/
void DispYTZFact_M21(const int iCNL)
{
char tSZ[10]={0};
float vFLOAT;
unsigned int vCBRec;
unsigned char vSEL,hSEL;
unsigned char vSErRec=unit[iCNL].submenu1.unitworksnum.i;
if(vSErRec==1)
{ vSEL=ytzVSELa; hSEL=ytzHSELa; vCBRec=SysSet.CofBanA;}
else
{ vSEL=ytzVSELb; hSEL=ytzHSELb; vCBRec=SysSet.CofBanB;}
//___纵向实际值显示
if(vSEL==0) //纵向重复值
{ sprintf(tSZ, "%6.2f", unit[iCNL].submenu6.VRepeatValue/100.0);}
else if(vSEL==1) //纵向计算值
{ vFLOAT=unit[iCNL].submenu6.length/100.0+0.005;
if(vFLOAT<50) { vFLOAT+=(vCBRec/10.0);}
sprintf(tSZ, "%8.2f", vFLOAT);
}
else //if(vSEL==2) //纵向设定值
{ sprintf(tSZ, "%6.2f", unit[iCNL].submenu6.VSetupValue/100.0);}
Edit(270, 138+40*iCNL, 85, 32, 0x05, tSZ);
//___横向实际值显示
if( unit[iCNL].submenu1.bitfield.hcontrol )
{
if(hSEL==0) //横向重复值
{ sprintf(tSZ, "%6.2f", unit[iCNL].submenu6.HRepeatValue/100.0);}
else //if(hSEL==1) //横向设定值
//{ sprintf(tSZ, "%6.2f", unit[iCNL].submenu6.HSetupValue/100.0);}
{ sprintf(tSZ, "%6.2f", (unit[iCNL].submenu6.HSetupValue+unit[iCNL].submenu6.HMaxValue)/100.0);}
Edit(470, 138+40*iCNL, 85, 32, 0x05, tSZ);
}
}
/******************************
描述: 预套准(选择值刷新屏幕)
******************************/
void SyncVSEL_YTZ(const int iSEL)
{
if( !GetJOB_ytz(VarST3000.jobAB) )
{ //表示有通道并且没有处于开始状态
switch(iSEL)
{
case 1: //设定值
{
int jcnl;
char tSZ[10];
unsigned char sty_b=(VarST3000.Language?0x01:0x03);
hjYTZButton(1, (sty_b)); //___纵向重复值未选
hjYTZButton(4, (sty_b)); //___横向重复值未选
hjYTZButton(2, (sty_b)); //___纵向计算值未选
hjYTZButton(3, (sty_b|0x10)); //___纵向设定值选中
hjYTZButton(5, (sty_b|0x10)); //___横向设定值选中
if(VarST3000.jobAB==1)
{ ytzVSELa=2; ytzHSELa=1;}
else
{ ytzVSELb=2; ytzHSELb=1;}
ytzSetTitle(3); //___纵向设定
ytzSetTitle(5); //___横向设定
for(jcnl=1; jcnl<VarST3000.UnitCounts; jcnl++)
{
if( unit[jcnl].submenu1.unitworksnum.i==VarST3000.jobAB &&
unit[jcnl].submenu1.unitworksnum.j)
{ //whitebackground
//___纵向设定值
memset(tSZ, 0, 10);
sprintf(tSZ, "%6.2f", unit[jcnl].submenu6.VSetupValue/100.0);
Edit(270, 138+40*jcnl, 85, 32, 0x00, NULL);
Edit(370, 138+40*jcnl, 85, 32, 0x05, tSZ);
//___横向设定值
memset(tSZ, 0, 10);
//sprintf(tSZ, "%6.2f", unit[jcnl].submenu6.HSetupValue/100.0);
sprintf(tSZ, "%6.2f", (unit[jcnl].submenu6.HSetupValue+unit[jcnl].submenu6.HMaxValue)/100.0);
Edit(470, 138+40*jcnl, 85, 32, 0x00, NULL);
Edit(570, 138+40*jcnl, 85, 32, 0x05, tSZ);
}
}
}
break;
case 2: //重复值
{
int jcnl;
char tSZ[10];
unsigned char sty_b=(VarST3000.Language?0x01:0x03);
hjYTZButton(1, (sty_b|0x10)); //___纵向重复值选中
hjYTZButton(4, (sty_b|0x10)); //___横向重复值选中
hjYTZButton(2, (sty_b)); //___纵向计算值未选
hjYTZButton(3, (sty_b)); //___纵向设定值未选
hjYTZButton(5, (sty_b)); //___横向设定值未选
if(VarST3000.jobAB==1)
{ ytzVSELa=0; ytzHSELa=0;}
else
{ ytzVSELb=0; ytzHSELb=0;}
ytzSetTitle(1); //___纵向重复
ytzSetTitle(4); //___横向重复
for(jcnl=1; jcnl<VarST3000.UnitCounts; jcnl++)
{
if( unit[jcnl].submenu1.unitworksnum.i==VarST3000.jobAB &&
unit[jcnl].submenu1.unitworksnum.j)
{ //whitebackground
//___纵向实际和纵向重复
memset(tSZ, 0, 10);
sprintf(tSZ, "%6.2f", unit[jcnl].submenu6.VRepeatValue/100.0);
Edit(270, 138+40*jcnl, 85, 32, 0x00, NULL);
Edit(370, 138+40*jcnl, 85, 32, 0x05, tSZ);
//___横向实际和横向重复
memset(tSZ, 0, 10);
sprintf(tSZ, "%6.2f", unit[jcnl].submenu6.HRepeatValue/100.0);
Edit(470, 138+40*jcnl, 85, 32, 0x00, NULL);
Edit(570, 138+40*jcnl, 85, 32, 0x05, tSZ);
}
}
}
break;
case 3: //计算值
{
int jcnl;
char tSZ[10];
float vFLOAT;
unsigned char sty_b=(VarST3000.Language?0x01:0x03);
unsigned int vCBRec=(VarST3000.jobAB==1?SysSet.CofBanA:SysSet.CofBanB);
hjYTZButton(1, (sty_b)); //___弹起纵向重复值
hjYTZButton(2, (sty_b|0x10)); //___选中纵向计算值
hjYTZButton(3, (sty_b)); //___弹起纵向设定值
if(VarST3000.jobAB==1)
{ ytzVSELa=1;}
else
{ ytzVSELb=1;}
ytzSetTitle(2); //纵向计算值
for(jcnl=1; jcnl<VarST3000.UnitCounts; jcnl++)
{
if( unit[jcnl].submenu1.unitworksnum.i==VarST3000.jobAB &&
unit[jcnl].submenu1.unitworksnum.j)
{ //whitebackground
//vert(ONLY)
vFLOAT = unit[jcnl].submenu6.length/100.0+0.005;
if(vFLOAT<50) { vFLOAT+=(vCBRec/10.0);}
memset(tSZ, 0, 10);
sprintf(tSZ, "%8.2f", vFLOAT);
Edit(270, 138+40*jcnl, 85, 32, 0x00, NULL);
Edit(370, 138+40*jcnl, 85, 32, 0x05, tSZ);
}
}
}
break;
default:
break;
}
}
}
/******************************
描述: 横向报警区域(带清除背景的功能)
******************************/
void SyncNewCNLh_Range(void)
{
int vX,vY;
int vAlrNew,hAlrNew;
vAlrNew=unit[UnitSEL-1].submenu1.v_alarm;
hAlrNew=unit[UnitSEL-1].submenu1.h_alarm;
if(vAlrNew>=100) { vAlrNew=100;}
if(hAlrNew>=100) { hAlrNew=100;}
//clear background of range border
Bar(AlrAdjBox_M23_X+26, AlrAdjBox_M23_Y+26,
AlrAdjBox_M23_X+AlrAdjBox_M23_W-26, AlrAdjBox_M23_Y+AlrAdjBox_M23_H-26, 192, 192, 192);
//horzation border
Line(AlrAdjBox_M23_X+26, AlrAdjBox_M23_Y+AlrAdjBox_M23_W/2,
AlrAdjBox_M23_X+AlrAdjBox_M23_W-26, AlrAdjBox_M23_Y+AlrAdjBox_M23_H/2, 0, 0, 0);
//vertical border
Line(AlrAdjBox_M23_X+AlrAdjBox_M23_W/2, AlrAdjBox_M23_Y+26,
AlrAdjBox_M23_X+AlrAdjBox_M23_W/2, AlrAdjBox_M23_Y+AlrAdjBox_M23_H-26, 0, 0, 0);
//left.right & top.bottom range border
vX=AlrAdjBox_M23_X+AlrAdjBox_M23_W/2;
vY=AlrAdjBox_M23_Y+AlrAdjBox_M23_H/2;
Rectangle(vX-5-hAlrNew, vY-5-vAlrNew, vX+5+hAlrNew, vY+5+vAlrNew, 0, 0, 0);
}
/******************************
描述: 纵向报警区域(带清除背景的功能)
******************************/
void SyncNewCNLv_Range(void)
{
int vX,vY;
int vAlrNew;
vAlrNew=unit[UnitSEL-1].submenu1.v_alarm;
if(vAlrNew>=100) { vAlrNew=100;}
vX=AlrAdjBox_M23_X+AlrAdjBox_M23_W/2;
vY=AlrAdjBox_M23_Y+AlrAdjBox_M23_H/2;
//clear background of range border
Bar(AlrAdjBox_M23_X+26, AlrAdjBox_M23_Y+26,
AlrAdjBox_M23_X+AlrAdjBox_M23_W-26, AlrAdjBox_M23_Y+AlrAdjBox_M23_H-26, 192, 192, 192);
//left.right border
Line(vX-10, AlrAdjBox_M23_Y+26, vX-10, AlrAdjBox_M23_Y+AlrAdjBox_M23_H-26, 0, 0, 0);
Line(vX+10, AlrAdjBox_M23_Y+26, vX+10, AlrAdjBox_M23_Y+AlrAdjBox_M23_H-26, 255, 255, 255);
//top.bottom range border
Line(vX-9, vY-5-vAlrNew, vX+9, vY-5-vAlrNew, 0, 0, 0);
Line(vX-9, vY+5+vAlrNew, vX+9, vY+5+vAlrNew, 0, 0, 0);
}
/******************************
描述: 设置预套准命令
参数:
-ichanel 通道号
-value 值
-flag 纵向 还是 横向
******************************/
void RespAddrEnable23(void)
{
int vICO;
unsigned char vStyle;
if(SysSet.AddEnable)
{ SysSet.AddEnable=0;
vICO=11; vStyle=0x00;
}
else
{ SysSet.AddEnable=1;
vICO=12; vStyle=0x10;
}
Button(870, 240, 85, 45, vStyle, NULL, 192, 192, 192);
ShowICO3232(vICO, 894, 246);
}
/******************************
描述: 左移波门
******************************/
void RespMoveGateL(void)
{
unsigned char _tofSysTurns;
Button(30, 402, 80, 45, (VarST3000.Language?0x11:0x13), szptr_leftright[0][VarST3000.Language], 192, 192, 192); //left
delay(15);
Button(30, 402, 80, 45, (VarST3000.Language?0x01:0x03), szptr_leftright[0][VarST3000.Language], 192, 192, 192); //left
unit[UnitSEL-1].submenu1.addressofwav--;
if( unit[UnitSEL-1].submenu1.addressofwav<0 )
{ unit[UnitSEL-1].submenu1.addressofwav+=2000;}
addrpoint=unit[UnitSEL-1].submenu1.addressofwav*MaxScale/2;
if(VarST3000.jobAB==1)
{ _tofSysTurns=SysSet.bitTurns.TurnofLabsA;}
else
{ _tofSysTurns=SysSet.bitTurns.TurnofLabsB;}
if(_tofSysTurns==2 || _tofSysTurns==5) //逆序
{ lineheader[UnitSEL-1]=addrpoint-2*RulerLength;}
else
{ lineheader[UnitSEL-1]=addrpoint+2*RulerLength+displaywidth[UnitSEL-1]-1000*Scaling;}
displaybar[UnitSEL-1]=12+(addrpoint-lineheader[UnitSEL-1])/Scaling;
if(lineheader[UnitSEL-1]<0)
{ lineheader[UnitSEL-1]+=1000*MaxScale;}
//
SendCnlData(UnitSEL-1, 0x08);
//
DispGateAddr();
//
DrawWAVbk();
DrawGate();
if(adresult)
{
DrawWAVfr(lineheader[UnitSEL-1]);
DrawZ();
}
}
/******************************
描述: 右移波门
******************************/
void RespMoveGateR(void)
{
unsigned char _tofSysTurns;
Button(200,402, 80, 45, (VarST3000.Language?0x11:0x13), szptr_leftright[1][VarST3000.Language], 192, 192, 192); //right
delay(15);
Button(200,402, 80, 45, (VarST3000.Language?0x01:0x03), szptr_leftright[1][VarST3000.Language], 192, 192, 192); //right
unit[UnitSEL-1].submenu1.addressofwav++;
if( unit[UnitSEL-1].submenu1.addressofwav>=2000 )
{ unit[UnitSEL-1].submenu1.addressofwav-=2000;}
addrpoint=unit[UnitSEL-1].submenu1.addressofwav*MaxScale/2;
if(VarST3000.jobAB==1)
{ _tofSysTurns=SysSet.bitTurns.TurnofLabsA;}
else
{ _tofSysTurns=SysSet.bitTurns.TurnofLabsB;}
if(_tofSysTurns==2 || _tofSysTurns==5) //逆序
{ lineheader[UnitSEL-1]=addrpoint-2*RulerLength;}
else
{ lineheader[UnitSEL-1]=addrpoint+2*RulerLength+displaywidth[UnitSEL-1]-1000*Scaling;}
displaybar[UnitSEL-1]=12+(addrpoint-lineheader[UnitSEL-1])/Scaling;
if(lineheader[UnitSEL-1]<0)
{ lineheader[UnitSEL-1]+=1000*MaxScale;}
//
SendCnlData(UnitSEL-1, 0x08);
//
DispGateAddr();
//
DrawWAVbk();
DrawGate();
if(adresult)
{
DrawWAVfr(lineheader[UnitSEL-1]);
DrawZ();
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -