📄 3kmenu7.c
字号:
memset(vchar, 0, 10);
sprintf(vchar, "%02d", system1[0].sub1.B1);
ShowGB2312(i+(xEach-40)/2, Ty+SizeConfig.h+50, vchar, 0, 0, 0);
memset(vchar, 0, 10);
sprintf(vchar, "%02d", system1[0].sub1.B2);
ShowGB2312(i+xEach+(xEach-40)/2, Ty+SizeConfig.h+50, vchar, 0, 0, 0);
memset(vchar, 0, 10);
sprintf(vchar, "%03d", system1[0].sub1.B3);
if(vItemSEL7==120)
{ Bar(i+xEach*2, Ty+SizeConfig.h+41, i+xEach*3-5, Ty+SizeConfig.h+74, 255, 0, 0);
ShowGB2312(i+xEach*2+(xEach-48)/2, Ty+SizeConfig.h+50, vchar, 255, 255, 255);
}
else
{ ShowGB2312(i+xEach*2+(xEach-48)/2, Ty+SizeConfig.h+50, vchar, 0, 0, 0);}
}
/******************************
描述: 电机正反转按钮响应 暂时固定坐标的偏移量是根据 (500-125*3)/4=31.25 取30
参数: iCNL通道号; vFlags指定的操作内容 (bit0纵向; bit1横向; bit2单标记)
******************************/
void SyncMRev76(const int iCNL, const unsigned char vFlags)
{
int xNew,yNew;
char bSZ[20];
static char *ptr_76[2][2]={{"正转","CW"},{"反转","CCW"}};
unsigned char vStyle=0x03; //___中英文都以全角字体显示
yNew=MenuAttr.sY+InstAttr.y_offset+iCNL*(SizeAttrB.h+InstAttr.h_instance);
//___纵向电机正反转
memset(bSZ, 0, 20);
if(vFlags&0x01)
{ //___纵向电机的正反转
vStyle=0x03;
xNew=MenuAttr.sX+MenuAttr.tW+30;
if(unit[iCNL].submenu1.bitfield.vmotorreverse)
{ vStyle|=0x10;
if(iCNL<9)
{ sprintf(bSZ, "%dU %s", iCNL+1, ptr_76[1][VarST3000.Language]);}
else
{ sprintf(bSZ, "%dU%s", iCNL+1, ptr_76[1][VarST3000.Language]);}
}
else
{
if(iCNL<9)
{ sprintf(bSZ, "%dU %s", iCNL+1, ptr_76[0][VarST3000.Language]);}
else
{ sprintf(bSZ, "%dU%s", iCNL+1, ptr_76[0][VarST3000.Language]);}
}
Button(xNew, yNew, 125, SizeAttrB.h, vStyle, bSZ, 192, 192, 192);
}
//___横向电机正反转
memset(bSZ, 0, 20);
if(vFlags&0x02)
{ //___横向电机的正反转
vStyle=0x03;
xNew=MenuAttr.sX+MenuAttr.tW+185;
if(unit[iCNL].submenu1.bitfield.hmotorreverse)
{ vStyle|=0x10;
if(iCNL<9)
{ sprintf(bSZ, "%dU %s", iCNL+1, ptr_76[1][VarST3000.Language]);}
else
{ sprintf(bSZ, "%dU%s", iCNL+1, ptr_76[1][VarST3000.Language]);}
}
else
{
if(iCNL<9)
{ sprintf(bSZ, "%dU %s", iCNL+1, ptr_76[0][VarST3000.Language]);}
else
{ sprintf(bSZ, "%dU%s", iCNL+1, ptr_76[0][VarST3000.Language]);}
}
Button(xNew, yNew, 125, SizeAttrB.h, vStyle, bSZ, 192, 192, 192);
}
//___单标记电机正反转
memset(bSZ, 0, 20);
if(vFlags&0x04)
{ //___单标记电机的正反转
vStyle=0x03;
xNew=MenuAttr.sX+MenuAttr.tW+340;
if(unit[iCNL].submenu1.bitTurns.omk_motorreverse)
{ vStyle|=0x10;
if(iCNL<9)
{ sprintf(bSZ, "%dU %s", iCNL+1, ptr_76[1][VarST3000.Language]);}
else
{ sprintf(bSZ, "%dU%s", iCNL+1, ptr_76[1][VarST3000.Language]);}
}
else
{
if(iCNL<9)
{ sprintf(bSZ, "%dU %s", iCNL+1, ptr_76[0][VarST3000.Language]);}
else
{ sprintf(bSZ, "%dU%s", iCNL+1, ptr_76[0][VarST3000.Language]);}
}
Button(xNew, yNew, 125, SizeAttrB.h, vStyle, bSZ, 192, 192, 192);
}
}
/******************************
描述: 电机正反转按钮响应
参数: iCNL 通道号
******************************/
void SyncHCtrl77(const int iCNL)
{
char bSZ[20]={0};
unsigned char vShape,vTurns,sty_b=0x03;
if( unit[iCNL].submenu1.bitfield.hcontrol )
{ sty_b|=0x10;
if(iCNL<9)
{ sprintf(bSZ, "%dU 开", iCNL+1);}
else
{ sprintf(bSZ, "%dU开", iCNL+1);}
}
else
{
if(iCNL<9)
{ sprintf(bSZ, "%dU 关", iCNL+1);}
else
{ sprintf(bSZ, "%dU关", iCNL+1);}
}
if(unit[iCNL].submenu1.unitworksnum.i==1)
{ vShape=SysSet.bitShape.ShapeA;
vTurns=unit[iCNL].submenu1.bitTurns.turnsoflabsA;
}
else //if(unit[iCNL].submenu1.unitworksnum.i==2)
{ vShape=SysSet.bitShape.ShapeB;
vTurns=unit[iCNL].submenu1.bitTurns.turnsoflabsB;
}
if(!(unit[iCNL].submenu1.unitworksnum.i &&
unit[iCNL].submenu1.unitworksnum.j &&
vTurns!=3 && vShape!=4))
{ sty_b|=0x04;}
Button(MenuAttr.sX+MenuAttr.tW+MenuAttr.bW/2-63,
MenuAttr.sY+InstAttr.y_offset+iCNL*(SizeAttrB.h+InstAttr.h_instance),
125, SizeAttrB.h, sty_b, bSZ, 192, 192, 192);
}
/******************************
Func: 二次印刷开关
Parameters:
-iCNL; ID of CtrlUnit.
******************************/
void SyncSecPrn711(const int iCNL)
{
char szChar[20]={0};
unsigned char bSTL=0x03,bTurns;
if( unit[iCNL].submenu1.bitfield.secondprint )
{
bSTL|=0x10;
if( iCNL<9 )
{ sprintf(szChar, "%dU 开", iCNL+1);}
else
{ sprintf(szChar, "%dU开", iCNL+1);}
}
else
{
if( iCNL<9 )
{ sprintf(szChar, "%dU 关", iCNL+1);}
else
{ sprintf(szChar, "%dU关", iCNL+1);}
}
if( unit[iCNL].submenu1.unitworksnum.i==2 )
{ bTurns = unit[iCNL].submenu1.bitTurns.turnsoflabsB;}
else // 认为随A系属的标记排列
{ bTurns = unit[iCNL].submenu1.bitTurns.turnsoflabsA;}
if( !(unit[iCNL].submenu1.unitworksnum.i && unit[iCNL].submenu1.unitworksnum.j && (bTurns!=3)) )
{ bSTL|=0x04;}
Button(MenuAttr.sX+MenuAttr.tW+MenuAttr.bW/2-63,
MenuAttr.sY+InstAttr.y_offset+iCNL*(SizeAttrB.h+InstAttr.h_instance),
125, SizeAttrB.h, bSTL, szChar, 192, 192, 192);
}
/*
void ___SCRPROTECT_FUNC___(void)
*/
/******************************
Func: 系统屏幕保护开关
Parameters:
-iCNL; 通道号
******************************/
unsigned SCR_PROTFLAG=0xFFFF; // 系统屏保开关 默认为开
int GetSCRPROT(const int iCNL)
{
unsigned uVAL=0x0001;
return ((uVAL<<iCNL)&SCR_PROTFLAG);
}
void SetSCRPROT(const int iCNL)
{
unsigned uVAL=0x0001;
SCR_PROTFLAG |= (uVAL<<iCNL);
}
void ClearSCRPROT(const int iCNL)
{
unsigned uVAL=0x0001;
SCR_PROTFLAG &= ((uVAL<<iCNL)^0xFFFF);
}
void SyncSCRPROT712(const int iCNL)
{
unsigned char bSTL=0x03,szChar[20]={0};
if( GetSCRPROT(iCNL) )
{
bSTL|=0x10;
if( iCNL<9 )
{ sprintf(szChar, "%dU 开", iCNL+1);}
else
{ sprintf(szChar, "%dU开", iCNL+1);}
}
else
{
if( iCNL<9 )
{ sprintf(szChar, "%dU 关", iCNL+1);}
else
{ sprintf(szChar, "%dU关", iCNL+1);}
}
if( !(unit[iCNL].submenu1.unitworksnum.i && unit[iCNL].submenu1.unitworksnum.j) )
{ bSTL|=0x04;}
Button(MenuAttr.sX+MenuAttr.tW+MenuAttr.bW/2-63,
MenuAttr.sY+InstAttr.y_offset+iCNL*(SizeAttrB.h+InstAttr.h_instance),
125, SizeAttrB.h, bSTL, szChar, 192, 192, 192);
}
/******************************
描述: AB系的标准色序
******************************/
void SyncDisp_M73(const unsigned char iSerSEl)
{
int jcnl,xNew,yNew;
char szu73[10],sze73[10];
char styu73,stye73;
vNewUnitSEL7=0;
vOldUnitSEL7=vNewUnitSEL7;
if(iSerSEl==1)
{ //选择A系
Button(MenuAttr.sX+MenuAttr.tW+25, MenuAttr.sY+20, 60, 35, 0x81, "A", 192, 192, 192);
for(jcnl=1; jcnl<VarST3000.UnitCounts; jcnl++)
{
memset(szu73, 0, 10);
memset(sze73, 0, 10);
sprintf(szu73, "%dU", jcnl+1);
if( unit[jcnl].submenu1.unitworksnum.i==1 &&
unit[jcnl].submenu1.unitworksnum.j)
{ //A系 正常工作的
styu73=0x81; stye73=0x0f;
sprintf(sze73, "%02d", unit[jcnl].submenu1.ColorNum);
if(vNewUnitSEL7==0)
{ vNewUnitSEL7=jcnl+1;
vOldUnitSEL7=vNewUnitSEL7;
styu73|=0x10; //按下
stye73|=0x40; //蓝色背景
}
}
else //非A系和不工作的
{ styu73=0x85; stye73=0x80;}
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, styu73, szu73, 192, 192, 192);
Edit(xNew+SizeAttrB.w+InstAttr.v_instance, yNew, SizeAttrE.w, SizeAttrE.h, stye73, sze73);
}
}
else //if(iSerSEl==2)
{ //选择B系
Button(MenuAttr.sX+MenuAttr.tW+25, MenuAttr.sY+20, 60, 35, 0x81, "B", 192, 192, 192);
for(jcnl=1; jcnl<VarST3000.UnitCounts; jcnl++)
{
memset(szu73, 0, 10);
memset(sze73, 0, 10);
sprintf(szu73, "%dU", jcnl+1);
if( unit[jcnl].submenu1.unitworksnum.i==2 &&
unit[jcnl].submenu1.unitworksnum.j)
{ //A系 正常工作的
styu73=0x81; stye73=0x0f;
sprintf(sze73, "%02d", unit[jcnl].submenu1.ColorNum);
if(vNewUnitSEL7==0)
{ vNewUnitSEL7=jcnl+1;
vOldUnitSEL7=vNewUnitSEL7;
styu73|=0x10; //按下
stye73|=0x40; //蓝色背景
}
}
else //非A系和不工作的
{ styu73=0x85; stye73=0x80;}
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, styu73, szu73, 192, 192, 192);
Edit(xNew+SizeAttrB.w+InstAttr.v_instance, yNew, SizeAttrE.w, SizeAttrE.h, stye73, sze73);
}
}
}
/******************************
描述: 单页标题背景
******************************/
void SubM7_bk(const int IDsel)
{
SubMenuPage(IDsel, 0);
if( VarST3000.Language )
{
ShowASCMemX(MenuAttr.sX+20, MenuAttr.sY+(IDsel-1)*(MenuAttr.tH+2)+(MenuAttr.tH-32)/2,
1, 2, szptr_m7_1[IDsel-1][1], 0, 0, 0);
}
else
{
ShowGB2312X(MenuAttr.sX+20, MenuAttr.sY+(IDsel-1)*(MenuAttr.tH+2)+(MenuAttr.tH-32)/2,
1, 2, szptr_m7_1[IDsel-1][0], 0, 0, 0);
}
}
/******************************
描述: 单页标题前景
******************************/
void SubM7_fr(const int IDsel)
{
int jcnl,xNew,yNew,jsuffix;
char uchar7[10],echar7[10];
unsigned char uStyle,eStyle;
SubMenuPage(IDsel, 1);
if( VarST3000.Language )
{
ShowASCMemX(MenuAttr.sX+18, MenuAttr.sY+(IDsel-1)*(MenuAttr.tH+2)+(MenuAttr.tH-32)/2-1,
1, 2, szptr_m7_1[IDsel-1][1], 200, 50, 50);
}
else
{
ShowGB2312X(MenuAttr.sX+18, MenuAttr.sY+(IDsel-1)*(MenuAttr.tH+2)+(MenuAttr.tH-32)/2-1,
1, 2, szptr_m7_1[IDsel-1][0], 200, 50, 50);
}
vOldUnitSEL7=0;
vNewUnitSEL7=0;
vSErSEL7=1; // 默认选择都放在A系上面
switch(IDsel)
{
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -