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

📄 3kmenu5.c

📁 嵌入式开发 嵌入式开发 嵌入式开发
💻 C
📖 第 1 页 / 共 5 页
字号:
            Button(txB, tyBE, SizeAttrB.w, SizeAttrB.h, bSTL, szB, 192, 192, 192);
            SyncHMotorM5_11(txE, tyBE+(SizeAttrB.h/2), t);
        }
        MotorKey_M5(1,0);
        MotorKey_M5(4,0);
        MotorKey_M5(5,0);
        break;
    case 12: // 预套准纵横向调整系数
        nCoefChoice=0;
        if( VarST3000.Language )
        {
            Button(250, 200, 120, 30, 0x11, "V-Coefficient", 192, 192, 192);
            Button(250, 250, 120, 30, 0x01, "H-Coefficient", 192, 192, 192);
        }
        else
        {
            Button(250, 200, 120, 30, 0x13, "纵向调整系数", 192, 192, 192);
            Button(250, 250, 120, 30, 0x03, "横向调整系数", 192, 192, 192);
        }
        memset(szE, 0, 10);
        sprintf(szE, "%4.2f", SysSet.VCoef/100.0);
        Edit(400, 200, 150, 30, 0x4f, szE);
        memset(szE, 0, 10);
        sprintf(szE, "%4.2f", SysSet.HCoef/100.0);
        Edit(400, 250, 150, 30, 0x0f, szE);
        break;
    case 13:
        if( Edition3K.YtzMachID==1 )
        {   SubM5_Fr13A();}
        else
        {   SubM5_Fr13B();}
        tyBE =MenuAttr.sY+80;
        txB=(MenuAttr.bW-240)/3; //这里表示的是按钮之间空白区域的宽
        Rect(MenuAttr.sX+MenuAttr.tW+txB, tyBE+400, 120, 70, (Edition3K.YtzMachID==1?1:0));
        ShowICO4064(1, MenuAttr.sX+MenuAttr.tW+txB+40, tyBE+403);
        Rect(MenuAttr.sX+MenuAttr.tW+txB*2+120, tyBE+400, 120, 70, (Edition3K.YtzMachID==2?1:0));
        ShowICO4064(2, MenuAttr.sX+MenuAttr.tW+txB*2+160, tyBE+403);
        txB =MenuAttr.sX+MenuAttr.tW+MenuAttr.bW+50;
        bSTL=(VarST3000.Language ? 0x81 : 0x03);
        Button(txB, 450, 100, 50, bSTL, szptr_okcancel[0][VarST3000.Language], 192, 192, 192); // OK
        txB+=120;
        Button(txB, 450, 100, 50, bSTL, szptr_okcancel[1][VarST3000.Language], 192, 192, 192); // CANCEL
        break;
    default:
        break;
    }
    
}

/***
 处理每个页的事件响应
***/
void RespPAGE_M5(const int iPAGE)
{
    int nVAL0,nVAL1,NO;
    long lVAL0,lVAL1;
    float fVAL0;
    unsigned char szTemp[20]={0};
    switch( iPAGE )
    {
    case 2: // 纵向重复值
        if( vNewUnitSEL5 )
        {
            NO=RespNumKBoard();
            if( NO!=100 )
            {
                if( NO==205 )
                {   // Enter
                    if(strlen(Dispbuf))
                    {
                        fVAL0=atof(Dispbuf)*100;
                        lVAL0=(long)fVAL0;
                        if(lVAL0>=-100000 && lVAL0<=99900)
                        {
                            unit[vNewUnitSEL5-1].submenu6.VRepeatValue=lVAL0;
                            REC_Sub6(vNewUnitSEL5-1, 3);
                        }
                        else
                        {   MessageBox( (VarST3000.Language ? "Range from -1000 to 999.0" : "范围从-1000到999.0") );}
                    }
                    sprintf(szTemp, "%6.2f", unit[vNewUnitSEL5-1].submenu6.VRepeatValue/100.0);
                    Edit(MenuAttr.sX+MenuAttr.tW+InstAttr.x_offset+SizeAttrB.w+InstAttr.v_instance,
                        MenuAttr.sY+InstAttr.y_offset+(vNewUnitSEL5-1)*(SizeAttrB.h+InstAttr.h_instance),
                        SizeAttrE.w, SizeAttrE.h, 0x4f, szTemp);
                    ClearKBuffer();
                }
                else
                {   // 显示输入内容
                    ProcNumKBinp(NO);
                    Edit(MenuAttr.sX+MenuAttr.tW+InstAttr.x_offset+SizeAttrB.w+InstAttr.v_instance,
                        MenuAttr.sY+InstAttr.y_offset+(vNewUnitSEL5-1)*(SizeAttrB.h+InstAttr.h_instance),
                        SizeAttrE.w, SizeAttrE.h, 0xcf, Dispbuf);
                }
            }
        }
        break;
    case 3: // 纵向修正值
        if( vNewUnitSEL5 )
        {
            NO=RespNumKBoard();
            if( NO!=100 )
            {
                if( NO==205 )
                {   // Enter
                    if(strlen(Dispbuf))
                    {
                        fVAL0=atof(Dispbuf)*100;
                        lVAL0=(long)fVAL0;
                        if(lVAL0>=-2000000 && lVAL0<=2000000)
                        {
                            lVAL1=unit[vNewUnitSEL5-1].submenu6.VAdjustValue;
                            unit[vNewUnitSEL5-1].submenu6.VAdjustValue=lVAL0;
                            REC_Sub6(vNewUnitSEL5-1, 4);
                            if( !Gen_ytzCAL(Edition3K.YtzMachID) )
                            {
                                MessageBox( (VarST3000.Language ? "System parameter error." : "系统机械参数错误,请核实!") );
                                unit[vNewUnitSEL5-1].submenu6.VAdjustValue=lVAL1;
                            }
                        }
                        else
                        {   MessageBox( (VarST3000.Language ? "Range from -20000 to 20000" : "范围从-20000到20000") );}
                    }
                    sprintf(szTemp, "%7.2f", unit[vNewUnitSEL5-1].submenu6.VAdjustValue/100.0);
                    Edit(MenuAttr.sX+MenuAttr.tW+InstAttr.x_offset+SizeAttrB.w+InstAttr.v_instance,
                        MenuAttr.sY+InstAttr.y_offset+(vNewUnitSEL5-1)*(SizeAttrB.h+InstAttr.h_instance),
                        SizeAttrE.w, SizeAttrE.h, 0x4f, szTemp);
                    ClearKBuffer();
                }
                else
                {   // 显示输入内容
                    ProcNumKBinp(NO);
                    Edit(MenuAttr.sX+MenuAttr.tW+InstAttr.x_offset+SizeAttrB.w+InstAttr.v_instance,
                        MenuAttr.sY+InstAttr.y_offset+(vNewUnitSEL5-1)*(SizeAttrB.h+InstAttr.h_instance),
                        SizeAttrE.w, SizeAttrE.h, 0xcf, Dispbuf);
                }
            }
        }
        break;
    case 4: // 纵向设定值
        if( vNewUnitSEL5 )
        {
            NO=RespNumKBoard();
            if( NO!=100 )
            {
                if( NO==205 )
                {   // Enter
                    if(strlen(Dispbuf))
                    {
                        fVAL0=atof(Dispbuf)*100;
                        lVAL0=(long)fVAL0;
                        if(lVAL0>=0 && lVAL0<=250000)
                        {
                            unit[vNewUnitSEL5-1].submenu6.VSetupValue=lVAL0;
                            REC_Sub6(vNewUnitSEL5-1, 5);
                        }
                        else
                        {   MessageBox( (VarST3000.Language ? "Range from 0 to 2500" : "范围从0到2500") );}
                    }
                    sprintf(szTemp, "%6.2f", unit[vNewUnitSEL5-1].submenu6.VSetupValue/100.0);
                    Edit(MenuAttr.sX+MenuAttr.tW+InstAttr.x_offset+SizeAttrB.w+InstAttr.v_instance,
                        MenuAttr.sY+InstAttr.y_offset+(vNewUnitSEL5-1)*(SizeAttrB.h+InstAttr.h_instance),
                        SizeAttrE.w, SizeAttrE.h, 0x4f, szTemp);
                    ClearKBuffer();
                }
                else
                {   //显示输入内容
                    ProcNumKBinp(NO);
                    Edit(MenuAttr.sX+MenuAttr.tW+InstAttr.x_offset+SizeAttrB.w+InstAttr.v_instance,
                        MenuAttr.sY+InstAttr.y_offset+(vNewUnitSEL5-1)*(SizeAttrB.h+InstAttr.h_instance),
                        SizeAttrE.w, SizeAttrE.h, 0xcf, Dispbuf);
                }
            }
        }
        break;
    case 5: //纵向电机
        {
            int x,y;
            if( (ClickCol>=MenuAttr.sX+MenuAttr.tW+MenuAttr.bW+80 &&
                 ClickCol<=MenuAttr.sX+MenuAttr.tW+MenuAttr.bW+180) &&
                (ClickRow>=MenuAttr.sY+180 && ClickRow<=MenuAttr.sY+230) &&
                unit[vNewUnitSEL5-1].submenu1.unitworksnum.i &&
                unit[vNewUnitSEL5-1].submenu1.unitworksnum.j &&
                unit[vNewUnitSEL5-1].submenu1.bitfield.hand_auto==0 &&
                unit[vNewUnitSEL5-1].submenu6.VMotorControls!=1)
            {   //上
                HideMouse();
                MotorKey_M5(2,1);
                delay(5);
                MotorKey_M5(2,0);
                ShowMouse();
                unit[vNewUnitSEL5-1].submenu6.VMotorControls=1;
                //
                x=MenuAttr.sX+MenuAttr.tW+InstAttr.x_offset+SizeAttrB.w+25;
                y=MenuAttr.sY+InstAttr.y_offset+(vNewUnitSEL5-1)*(SizeAttrB.h+InstAttr.h_instance)+(SizeAttrB.h/2);
                Bar(x-10, y-10, x+10, y+10, 192, 192, 192);
                //
                SyncVMotorM5_5(x, y, vNewUnitSEL5-1);
                if( (unit[vNewUnitSEL5-1].submenu1.unitworksnum.i==1 &&
                     unit[vNewUnitSEL5-1].submenu1.bitTurns.turnsoflabsA==3) ||
                    (unit[vNewUnitSEL5-1].submenu1.unitworksnum.i==2 &&
                     unit[vNewUnitSEL5-1].submenu1.bitTurns.turnsoflabsB==3) )
                {
                    if(unit[vNewUnitSEL5-1].submenu1.bitTurns.omk_motorreverse)
                    {   CommandData[vNewUnitSEL5-1].CmdC[0]=0xff;}
                    else
                    {   CommandData[vNewUnitSEL5-1].CmdC[0]=0x7f;}
                }
                else
                {
                    if(unit[vNewUnitSEL5-1].submenu1.bitfield.vmotorreverse)
                    {   CommandData[vNewUnitSEL5-1].CmdC[0]=0xff;}
                    else
                    {   CommandData[vNewUnitSEL5-1].CmdC[0]=0x7f;}
                }
                CommandData[vNewUnitSEL5-1].CmdC[1]=0xff;
                CommandData[vNewUnitSEL5-1].CmdC[2]=0xff;
                SendCnlData(vNewUnitSEL5-1, 0x0C);
                MotorFlags[vNewUnitSEL5-1]|=0x01;   //记录纵向
            }
            else if((ClickCol>=MenuAttr.sX+MenuAttr.tW+MenuAttr.bW+80 &&
                     ClickCol<=MenuAttr.sX+MenuAttr.tW+MenuAttr.bW+180) &&
                    (ClickRow>=MenuAttr.sY+250 && ClickRow<=MenuAttr.sY+300) &&
                    unit[vNewUnitSEL5-1].submenu1.unitworksnum.i &&
                    unit[vNewUnitSEL5-1].submenu1.unitworksnum.j &&
                    unit[vNewUnitSEL5-1].submenu1.bitfield.hand_auto==0 &&
                    unit[vNewUnitSEL5-1].submenu6.VMotorControls!=0)
            {   //停
                HideMouse();
                MotorKey_M5(1,1);
                delay(5);
                MotorKey_M5(1,0);
                ShowMouse();
                unit[vNewUnitSEL5-1].submenu6.VMotorControls=0;
                //
                x=MenuAttr.sX+MenuAttr.tW+InstAttr.x_offset+SizeAttrB.w+25;
                y=MenuAttr.sY+InstAttr.y_offset+(vNewUnitSEL5-1)*(SizeAttrB.h+InstAttr.h_instance)+(SizeAttrB.h/2);
                Bar(x-10, y-10, x+10, y+10, 192, 192, 192);
                //
                SyncVMotorM5_5(x, y, vNewUnitSEL5-1);
                CommandData[vNewUnitSEL5-1].CmdC[0]=0x00;
                CommandData[vNewUnitSEL5-1].CmdC[1]=0x00;
                CommandData[vNewUnitSEL5-1].CmdC[2]=0x00;
                SendCnlData(vNewUnitSEL5-1, 0x0C);
                MotorFlags[vNewUnitSEL5-1]&=0x10;   //清除纵向保留横向
            }
            else if((ClickCol>=MenuAttr.sX+MenuAttr.tW+MenuAttr.bW+80 &&
                     ClickCol<=MenuAttr.sX+MenuAttr.tW+MenuAttr.bW+180) &&
                    (ClickRow>=MenuAttr.sY+320 && ClickRow<=MenuAttr.sY+370) &&
                    unit[vNewUnitSEL5-1].submenu1.unitworksnum.i &&
                    unit[vNewUnitSEL5-1].submenu1.unitworksnum.j &&
                    unit[vNewUnitSEL5-1].submenu1.bitfield.hand_auto==0 &&
                    unit[vNewUnitSEL5-1].submenu6.VMotorControls!=2)
            {   //下
                HideMouse();
                MotorKey_M5(3,1);
                delay(5);
                MotorKey_M5(3,0);
                ShowMouse();
                unit[vNewUnitSEL5-1].submenu6.VMotorControls=2;
                //
                x=MenuAttr.sX+MenuAttr.tW+InstAttr.x_offset+SizeAttrB.w+25;
                y=MenuAttr.sY+InstAttr.y_offset+(vNewUnitSEL5-1)*(SizeAttrB.h+InstAttr.h_instance)+(SizeAttrB.h/2);
                Bar(x-10, y-10, x+10, y+10, 192, 192, 192);
                //
                SyncVMotorM5_5(x, y, vNewUnitSEL5-1);
                if( (unit[vNewUnitSEL5-1].submenu1.unitworksnum.i==1 &&
                     unit[vNewUnitSEL5-1].submenu1.bitTurns.turnsoflabsA==3) ||
                    (unit[vNewUnitSEL5-1].submenu1.unitworksnum.i==2 &&
                     unit[vNewUnitSEL5-1].submenu1.bitTurns.turnsoflabsB==3) )
                {
                    if(unit[vNewUnitSEL5-1].submenu1.bitTurns.omk_motorreverse)
                    {   CommandData[vNewUnitSEL5-1].CmdC[0]=0x7f;}
                    else
                    {   CommandData[vNewUnitSEL5-1].CmdC[0]=0xff;}
                }
                else
                {
                    if(unit[vNewUnitSEL5-1].submenu1.bitfield.vmotorreverse)
                    {   CommandData[vNewUnitSEL5-1].CmdC[0]=0x7f;}
                    else
                    {   CommandData[vNewUnitSEL5-1].CmdC[0]=0xff;}
                }
                CommandData[vNewUnitSEL5-1].CmdC[1]=0xff;
                CommandData[vNewUnitSEL5-1].CmdC[2]=0xff;
                SendCnlData(vNewUnitSEL5-1, 0x0C);
                MotorFlags[vNewUnitSEL5-1]|=0x01;   //记录纵向
            }
        }
        break;
    case 6: //横向重复值
        if(vNewUnitSEL5>0)
        {
            NO=RespNumKBoard();
            if(NO!=100)
            {
                if(NO==205) //Enter
                {   //显示确认后的内容
                    if(strlen(Dispbuf))
                    {
                        fVAL0=atof(Dispbuf)*100;
                        lVAL0=(long)fVAL0;
                        if(lVAL0>=-100000 && lVAL0<=99900)
                        {
                            unit[vNewUnitSEL5-1].submenu6.HRepeatValue=lVAL0;
                            REC_Sub6(vNewUnitSEL5-1, 6); //记录横向重复值
                        }
                        else
                        {   MessageBox( (VarST3000.Language ? "Range from -1000 to 999.0" : "范围从-1000到999.0") );}
                    }
                    sprintf(szTemp, "%6.2f", unit[vNewUnitSEL5-1].submenu6.HRepeatValue/100.0);
                    Edit(MenuAttr.sX+MenuAttr.tW+InstAttr.x_offset+SizeAttrB.w+InstAttr.v_instance,
                        MenuAttr.sY+InstAttr.y_offset+(vNewUnitSEL5-1)*(SizeAttrB.h+InstAttr.h_instance),
                        SizeAttrE.w, SizeAttrE.h, 0x4f, szTemp);
                    ClearKBuffer();
                }
                else
                {   //显示输入内容
                    ProcNumKBinp(NO);
                    Edit(MenuAttr.sX+MenuAttr.tW+InstAttr.x_offset+SizeAttrB.w+InstAttr.v_instance,
                        MenuAttr.sY+InstAttr.y_offset+(vNewUnitSEL5-1)*(SizeAttrB.h+InstAttr.h_instance),
                        SizeAttrE.w, SizeAttrE.h, 0xcf, Dispbuf);
                }
            }
        }
        break;
    case 7: //横向设定值
        if( vNewUnitSEL5 )
        {
            NO=RespNu

⌨️ 快捷键说明

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