⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 3kmenu7.c

📁 嵌入式开发 嵌入式开发 嵌入式开发
💻 C
📖 第 1 页 / 共 5 页
字号:
    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 + -