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

📄 3kmenu7.c

📁 嵌入式开发 嵌入式开发 嵌入式开发
💻 C
📖 第 1 页 / 共 5 页
字号:
            {
                //Button(xHitLeft, 434, 100, 50, 0x10, NULL, 192, 192, 192); 
                Rect(xHitLeft, 434, 100, 50, 1);
                delay(15);
                Button(xHitLeft, 434, 100, 50, uStyle, szptr_m7_turns[3][VarST3000.Language], 192, 192, 192);
                NO=3;
            }
            else if( (ClickCol>=xHitLeft && ClickCol<=xHitLeft+100) &&
                (ClickRow>=504 && ClickRow<=554) )
            {
                //Button(xHitLeft, 504, 100, 50, 0x10, NULL, 192, 192, 192); 
                Rect(xHitLeft, 504, 100, 50, 1);
                delay(15);
                Button(xHitLeft, 504, 100, 50, uStyle, szptr_m7_turns[4][VarST3000.Language], 192, 192, 192);
                NO=4;
            }
            if( NO!=100 )
            {   // 表示用户选择有效
                eStyle=(VarST3000.Language?0x0b:0x03);
                Edit(MenuAttr.sX+MenuAttr.tW+InstAttr.x_offset+SizeAttrB.w+InstAttr.v_instance,
                    MenuAttr.sY+InstAttr.y_offset+(vNewUnitSEL7-1)*(SizeAttrB.h+InstAttr.h_instance),
                    SizeAttrE.w, SizeAttrE.h, eStyle|0x40, szptr_m7_turns[NO][VarST3000.Language]);
                if( Bjob==1 && unit[vNewUnitSEL7-1].submenu1.unitworksnum.j)
                {   unit[vNewUnitSEL7-1].submenu1.bitTurns.turnsoflabsA=NO+1; BCUTurns=NO+1;}
                else if( Bjob==2 && unit[vNewUnitSEL7-1].submenu1.unitworksnum.j)
                {   unit[vNewUnitSEL7-1].submenu1.bitTurns.turnsoflabsB=NO+1; BCUTurns=NO+1;}                
                REC_Sub1(vNewUnitSEL7-1, 7);                
                //___judge turnsoflabs of current selected item's legality.
                if( BCUTurns==3 )
                {   // 当前通道单标记
                    CommandData[vNewUnitSEL7-1].Cmd6[3]=0x01; // 单标记
                    /*
                    直接影响到纵向电机的正反转
                    */
                    if( unit[vNewUnitSEL7-1].submenu1.bitTurns.omk_motorreverse )
                    {   CommandData[vNewUnitSEL7-1].Cmd6[6]|=0x04;}
                    else
                    {   CommandData[vNewUnitSEL7-1].Cmd6[6]&=0xfb;}
                    /*
                    如果原先通道横向打开
                    单标记的时候需要取消掉横向工作
                    */
                    if( unit[vNewUnitSEL7-1].submenu1.bitfield.hcontrol )
                    {
                        unit[vNewUnitSEL7-1].submenu1.bitfield.hcontrol=0;
                        unit[vNewUnitSEL7-1].submenu1.bitfield.h_motorruning=0;
                        CommandData[vNewUnitSEL7-1].Cmd6[6]&=0xdd; // 横向开关和横向电机都为关闭
                        SetEntireFlags(vNewUnitSEL7-1, 0x20, 0); // 清除横向的报警标志hjHAlarmFlags
                        REC_Sub1(vNewUnitSEL7-1, 8);
                        /*
                        由于横向的关闭
                        可能导致整机的自动手动状态发生改变
                        */
                        if( GetEntireAuto(Bjob) )
                        {   // 整机装态确实发生改变
                            BEntireAuto=((Bjob==1) ? EntireStatus.EntireAuto_A : EntireStatus.EntireAuto_B);
                            for(t=1; t<VarST3000.UnitCounts; t++)
                            {
                                if( unit[t].submenu1.unitworksnum.i==Bjob &&
                                    unit[t].submenu1.unitworksnum.j )
                                {
                                    CommandData[t].Cmd6[2]&=0xFC; // bit1bit0=00
                                    if( unit[t].submenu1.bitfield.hand_auto )
                                    {   CommandData[t].Cmd6[2]|=0x01;} // 通道自动
                                    if( BEntireAuto )
                                    {   CommandData[t].Cmd6[2]|=0x02;} // 整机自动
                                    if( unit[t].submenu1.bitfield.hcontrol &&
                                        unit[t].submenu1.bitfield.h_motorruning )
                                    {   CommandData[t].Cmd6[6]|=0x20;} // 横向电机开 [0010 0000]
                                    else
                                    {   CommandData[t].Cmd6[6]&=0xdf;} // 横向电机关 [1101 1111]
                                    CmdFlags[t].bits.bit0=1;
                                }
                            }
                        }
                    }
                    /*
                    无论整机是否发生改变
                    当前通道确实已经改变了6#命令
                    */
                    CmdFlags[vNewUnitSEL7-1].bits.bit0=1;
                }
                else
                {   // 非单标记的标记排列形式
                    CommandData[vNewUnitSEL7-1].Cmd6[3]=0x00;
                    /*
                    纵向电机的正反转
                    */
                    if( unit[vNewUnitSEL7-1].submenu1.bitfield.vmotorreverse )
                    {   CommandData[vNewUnitSEL7-1].Cmd6[6]|=0x04;}
                    else
                    {   CommandData[vNewUnitSEL7-1].Cmd6[6]&=0xfb;}
                    /*
                    整机的标记顺逆序改变状况
                    */
                    BEntireTurns=GetEntireTurns(Bjob);
                    for(t=1; t<VarST3000.UnitCounts; t++)
                    {
                        if( unit[t].submenu1.unitworksnum.i==Bjob &&
                        	unit[t].submenu1.unitworksnum.j)
                        {   UpdateCmd6Turns(t, BEntireTurns); CmdFlags[t].bits.bit0=1;}
                    }
                    CmdFlags[vNewUnitSEL7-1].bits.bit0=1;                                                    
                }
				
				// BCUTurns 目前记录的是当前通道的标记排列形式
				BFlag=0; // 认为相同
				for(t=1; t<VarST3000.UnitCounts; t++)
				{
					if( unit[t].submenu1.unitworksnum.i==Bjob &&
						unit[t].submenu1.unitworksnum.j )
					{	// 仅取当前系属的通道进行比较
						if( (Bjob==1 ? unit[t].submenu1.bitTurns.turnsoflabsA : unit[t].submenu1.bitTurns.turnsoflabsB)!=BCUTurns )
						{	// 已经发现出现了不相同的标记排列设置
							BFlag=1; break;
						}
					}
				}
				if( !BFlag )
				{	// 标记排列相同
					// 请查询当前系属的标记排列形式是否一致
					BFlag=(Bjob==1 ? SysSet.bitTurns.TurnofLabsA : SysSet.bitTurns.TurnofLabsB );
					if( BFlag!=BCUTurns )
					{	// 和当前设置不一致 需要将内容直接更新
						if( Bjob==1 )
						{
							SysSet.bitTurns.TurnofLabsA=BCUTurns;
						}
						else
						{
							SysSet.bitTurns.TurnofLabsB=BCUTurns;
						}
					}
				}
            }
        }
        break;
    case 2: //标准色序
        if(VarST3000.UnitCounts>0 && vNewUnitSEL7>0)
        {
            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, uStyle|0x10, szptr_m7_3[0][VarST3000.Language], 192, 192, 192); //色序加
                delay(15);
                Button(xHitLeft, 224, 100, 50, uStyle, szptr_m7_3[0][VarST3000.Language], 192, 192, 192);  //色序加
                if(unit[vNewUnitSEL7-1].submenu1.ColorNum<unit[vNewUnitSEL7-1].submenu1.unitworksnum.j)
                {   unit[vNewUnitSEL7-1].submenu1.ColorNum++;
                    eStyle=0x4f;
                    memset(echar7, 0, 20);
                    sprintf(echar7, "%02d", unit[vNewUnitSEL7-1].submenu1.ColorNum);
                    Edit(MenuAttr.sX+MenuAttr.tW+InstAttr.x_offset+SizeAttrB.w+InstAttr.v_instance,
                            MenuAttr.sY+InstAttr.y_offset+(vNewUnitSEL7-1)*(SizeAttrB.h+InstAttr.h_instance),
                            SizeAttrE.w, SizeAttrE.h, eStyle, echar7);
                    //___
                    CommandData[vNewUnitSEL7-1].Cmd6[5]=unit[vNewUnitSEL7-1].submenu1.ColorNum;
                    CmdFlags[vNewUnitSEL7-1].bits.bit0=1;
                }
            }
            else if((ClickCol>=xHitLeft && ClickCol<=xHitLeft+100) &&
                    (ClickRow>=294 && ClickRow<=344))
            {
                Button(xHitLeft, 294, 100, 50, uStyle|0x10, szptr_m7_3[1][VarST3000.Language], 192, 192, 192); //色序减
                delay(15);
                Button(xHitLeft, 294, 100, 50, uStyle, szptr_m7_3[1][VarST3000.Language], 192, 192, 192);  //色序减
                if(unit[vNewUnitSEL7-1].submenu1.ColorNum>1)
                {   unit[vNewUnitSEL7-1].submenu1.ColorNum--;
                    eStyle=0x4f;
                    memset(echar7, 0, 20);
                    sprintf(echar7, "%02d", unit[vNewUnitSEL7-1].submenu1.ColorNum);
                    Edit(MenuAttr.sX+MenuAttr.tW+InstAttr.x_offset+SizeAttrB.w+InstAttr.v_instance,
                            MenuAttr.sY+InstAttr.y_offset+(vNewUnitSEL7-1)*(SizeAttrB.h+InstAttr.h_instance),
                            SizeAttrE.w, SizeAttrE.h, eStyle, echar7);
                    //___
                    CommandData[vNewUnitSEL7-1].Cmd6[5]=unit[vNewUnitSEL7-1].submenu1.ColorNum;
                    CmdFlags[vNewUnitSEL7-1].bits.bit0=1;
                }
            }
        }
        break;
    case 3: //波门宽度
        if(VarST3000.UnitCounts>0 && vNewUnitSEL7>0)
        {
            NO=RespNumKBoard();
            if(NO!=100)
            {
                if(NO==205) //ENTER
                {
                    if(strlen(Dispbuf))
                    {
                        tmpi7=atoi(Dispbuf);
                        if(tmpi7>=5 && tmpi7<=20)
                        {
                            if(unit[vNewUnitSEL7-1].submenu2.ValueWidth!=tmpi7)
                            {   CmdFlags[vNewUnitSEL7-1].bits.bit2=1;}
                            unit[vNewUnitSEL7-1].submenu2.ValueWidth=tmpi7;
                        }
                        else
                        {   MessageBox( (VarST3000.Language ? "Range from 5 to 20" : "范围从5到20") );}
                    }
                    //显示内容
                    memset(echar7, 0, 20);
                    sprintf(echar7, "%5d", unit[vNewUnitSEL7-1].submenu2.ValueWidth);
                    eStyle=0x4f;
                    Edit(MenuAttr.sX+MenuAttr.tW+InstAttr.x_offset+SizeAttrB.w+InstAttr.v_instance,
                            MenuAttr.sY+InstAttr.y_offset+(vNewUnitSEL7-1)*(SizeAttrB.h+InstAttr.h_instance),
                            SizeAttrE.w, SizeAttrE.h, eStyle, echar7);
                    ClearKBuffer();
                }
                else        //INPUTING...
                {   ProcNumKBinp(NO);
                    eStyle=0xcf;//(VarST3000.Language?0xcf:0xc3);
                    Edit(MenuAttr.sX+MenuAttr.tW+InstAttr.x_offset+SizeAttrB.w+InstAttr.v_instance,
                            MenuAttr.sY+InstAttr.y_offset+(vNewUnitSEL7-1)*(SizeAttrB.h+InstAttr.h_instance),
                            SizeAttrE.w, SizeAttrE.h, eStyle, Dispbuf);
                }
            }
        }
        break;
    case 4: //标准设定和角度 色标间距
        syncflag7=0;
        syncflag_standard=0;
        uStyle=(VarST3000.Language?0x81:0x03);
        if( ( ClickCol>=355 && ClickCol<=455 ) )
        {//A系列
        	  
        	if( (ClickRow>=220 && ClickRow<=255) && vNewPNoSEL7!=1 )
        	{//标准选择        	  	 
        	  	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]);
                vNewPNoSEL7=1;
                syncflag7=1;
                //vSErSEL7=1;
            }
            else if( (ClickRow>=270 && ClickRow<=305)&& vNewPNoSEL7!=2 )
            {//标记角度
            	  eStyle=0x0F;
                memset(echar7, 0, 20);
                sprintf(echar7, "%5d", SysSet.ASignTangle);
                Edit(355, 270, 100, 35, eStyle|0x40, echar7);
                /*memset(echar7, 0, 10);
                sprintf(echar7, "%5d", SysSet.BSignTangle);
                Edit(505, 270, 100, 35, eStyle, echar7);*/
                vNewPNoSEL7=2;
                syncflag7=1;
                //vSErSEL7=1;
            	 // 清除输入缓冲区 屏蔽小数和符号输入 限定为2有效数长度
                ClearKBuffer();
                g_Klength=2; g_Kmask=0x03;
            }
            else if( (ClickRow>=320 && ClickRow<=355) && vNewPNoSEL7!=3 )
            {//色标间距
            	  eStyle=0x0F;
                memset(echar7, 0, 20);
                sprintf(echar7, "%5.2f", SysSet.ColorWidthA/100.0);
                Edit(355, 320, 100, 35, eStyle|0x40, echar7);
                /*memset(echar7, 0, 10);
                sprintf(echar7, "%5.2f", SysSet.ColorWidthB/100.0);
                Edit(505, 320, 100, 35, eStyle, echar7);*/
                vNewPNoSEL7=3;
                syncflag7=1;
                //vSErSEL7=1;
            }
        }	
        else if( (ClickCol>=505 && ClickCol<=605) )
        {//B系列
        	  
        	if( (ClickRow>=220 && ClickRow<=255) && vNewPNoSEL7!=4 )
        	{//标准选择
        	  	eStyle=(VarST3000.Language?0x01:0x03);
                Edit(505, 220, 100, 35, eStyle|0x40, szptr_m7_2[4+SysSet.bitStand.BsetStandard][VarST3000.Language]);
                //Edit(355, 220, 100, 35, eStyle, szptr_m7_2[4+SysSet.bitStand.AsetStandard][VarST3000.Language]);
                vNewPNoSEL7=4;
                syncflag7=1;
                //vSErSEL7=2;
            }
            else if( (ClickRow>=270 && ClickRow<=305) && vNewPNoSEL7!=5 )
            {//标记角度
            	eStyle=0x0F;
                memset(echar7, 0, 20);
                sprintf(echar7, "%5d", SysSet.BSignTangle);
                Edit(505, 270, 100, 35, eStyle|0x40, echar7);
                /*memset(echar7, 0, 10);
                sprintf(echar7, "%5d", SysSet.ASignTangle);
                Edit(355, 270, 100, 35, eStyle, echar7);*/
                vNewPNoSEL7=5;
                syncflag7=1;
                //vSErSEL7=2;
            	 // 清除输入缓冲区 屏蔽小数和符号输入 限定为2有效数长度
                ClearKBuffer();
                g_Klength=2; g_Kmask=0x03;
            }
            else if( (ClickRow>=320 && ClickRow<=355) && vNewPNoSEL7!=6 )
            {//色标间距
            	eStyle=0x0f;
                memset(echar7, 0, 20);
                sprintf(echar7, "%5.2f", SysSet.ColorWidthB/100.0);
                Edit(505, 320, 100, 35, eStyle|0x40, echar7);
                /*memset(echar7, 0, 10);
                sprintf(echar7, "%5.2f", SysSet.ColorWidthA/100.0);
                Edit(355, 320, 100, 35, eStyle, echar7);*/
            	vNewPNoSEL7=6;
                syncflag7=1;
                //vSErSEL7=2;
            }
        }	 

        
        else if((ClickCol>=MenuAttr.sX+MenuAttr.tW+MenuAttr.bW+50 && ClickCol<=MenuAttr.sX+MenuAttr.tW+MenuAttr.bW+150) &&
                (ClickRow>=450 && ClickRow<=500) && (vNewPNoSEL7==1||vNewPNoSEL7==4) )
        {   //标准1
            uStyle=(VarST3000.Language?0x81:0x03);    //暂时表示按钮风格
            eStyle=(VarST3000.Language?0x01:0x03);
            Button(MenuAttr.sX+MenuAttr.tW+MenuAttr.bW+50, 450, 100, 50,
                    uStyle|0x10, szptr_m7_2[4][VarST3000.Language], 192, 192, 192);   //标准一
            delay(15);
            Button(MenuAttr.sX+MenuAttr.tW+MenuAttr.bW+50, 450, 100, 50,
                    uStyle, szptr_m7_2[4][VarST3000.Language], 192, 192, 192);    //标准一
            if(vNewPNoSEL7==1)
            {   //A系列
                if(SysSet.bitStand.AsetStandard!=0)
             

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -