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

📄 3kmenu5.c

📁 嵌入式开发 嵌入式开发 嵌入式开发
💻 C
📖 第 1 页 / 共 5 页
字号:
                    vItemSEL5=i+1;
                    SetFocus513(0x11, vItemSEL5);
                    ClearKBuffer();
                    return;
                }
            }
        }
        if( (ClickCol>=MenuAttr.sX+MenuAttr.tW+385 && ClickCol<=MenuAttr.sX+MenuAttr.tW+485) &&
            (ClickRow>=MenuAttr.sY+260 && ClickRow<=MenuAttr.sY+295))
        {
            if( Str6xtcs.flag==1 )
            {   Str6xtcs.flag=0;
                Button(MenuAttr.sX+MenuAttr.tW+385, MenuAttr.sY+260, 100, 35,
                    (VarST3000.Language?0x81:0x03), szptr_pw_1[17][VarST3000.Language], 192, 192, 192);
            }
            else
            {   Str6xtcs.flag=1;
                Button(MenuAttr.sX+MenuAttr.tW+385, MenuAttr.sY+260, 100, 35,
                    (VarST3000.Language?0x91:0x13), szptr_pw_1[16][VarST3000.Language], 192, 192, 192);
            }
            return;
        }
        if( (ClickCol>=MenuAttr.sX+MenuAttr.tW+(MenuAttr.bW-240)/3 &&
             ClickCol<=MenuAttr.sX+MenuAttr.tW+(MenuAttr.bW-240)/3+120) &&
            (ClickRow>=MenuAttr.sY+480 && ClickRow<=MenuAttr.sY+550))
        {   // 标准1
            Edition3K.YtzMachID=1;
            ClearM5_Fr13();
            SubM5_Fr13A();
            Rect(MenuAttr.sX+MenuAttr.tW+((MenuAttr.bW-240)/3), MenuAttr.sY+480, 120, 70, 1);
            Rect(MenuAttr.sX+MenuAttr.tW+((MenuAttr.bW-240)/3)*2+120, MenuAttr.sY+480, 120, 70, 0);
            REC_Version();
            return;
        }
        kNO=RespNumKBoard();
        if( kNO!=100 )
        {
            if( kNO==205 )
            {   // Enter
                if(strlen(Dispbuf))
                {
                    fVAL=atof(Dispbuf);
                    if(vItemSEL5==1) {   Str6xtcs.x1=fVAL;}
                    else if(vItemSEL5==2) {   Str6xtcs.y1=fVAL;}
                    else if(vItemSEL5==3) {   Str6xtcs.x5=fVAL;}
                    else if(vItemSEL5==4) {   Str6xtcs.y5=fVAL;}
                    else if(vItemSEL5==5) {   Str6xtcs.x6=fVAL;}
                    else if(vItemSEL5==6) {   Str6xtcs.y6=fVAL;}
                    else if(vItemSEL5==7) {   Str6xtcs.d1=fVAL;}
                    else if(vItemSEL5==8) {   Str6xtcs.d3=fVAL;}
                    else if(vItemSEL5==9) {   Str6xtcs.m=fVAL;}
                }
                SetFocus513(0x11, vItemSEL5);
                ClearKBuffer();
            }
            else
            {
                ProcNumKBinp(kNO);
                SyncInputing513(0x10, vItemSEL5, Dispbuf);
            }
        }
    }
    if( (ClickCol>=MenuAttr.sX+MenuAttr.tW+MenuAttr.bW+50 &&
         ClickCol<=MenuAttr.sX+MenuAttr.tW+MenuAttr.bW+150) &&
        (ClickRow>=450 && ClickRow<=500) )
    {   // OK
        //Button(MenuAttr.sX+MenuAttr.tW+MenuAttr.bW+50, 450, 100, 50, 0x10, NULL, 192, 192, 192); 
        Rect(MenuAttr.sX+MenuAttr.tW+MenuAttr.bW+50, 450, 100, 50, 1);
        delay(BTN_DELAY);
        Button(MenuAttr.sX+MenuAttr.tW+MenuAttr.bW+50, 450, 100, 50,
                (VarST3000.Language?0x81:0x03), szptr_okcancel[0][VarST3000.Language], 192, 192, 192);
        if( !Gen_ytzCAL(Edition3K.YtzMachID) )
        {   MessageBox( (VarST3000.Language ? "System parameter error." : "系统机械参数错误,请核实!") );}
        else
        {
            fseek(DataFile, (long)sizeof(Units)*MAXCNL_3K+sizeof(SystemSettings), SEEK_SET);
            fwrite(&Str6xtcs, sizeof(Str6xt), 1, DataFile);
            fclose(DataFile);
            DataFile=fopen("SysData.dat", "rb+");
        }
    }
    else if((ClickCol>=MenuAttr.sX+MenuAttr.tW+MenuAttr.bW+170 &&
             ClickCol<=MenuAttr.sX+MenuAttr.tW+MenuAttr.bW+270) &&
            (ClickRow>=450 && ClickRow<=500) )
    {   // CANCEL
        //Button(MenuAttr.sX+MenuAttr.tW+MenuAttr.bW+170, 450, 100, 50, 0x10, NULL, 192, 192, 192); 
        Rect(MenuAttr.sX+MenuAttr.tW+MenuAttr.bW+170, 450, 100, 50,1);
        delay(BTN_DELAY);
        Button(MenuAttr.sX+MenuAttr.tW+MenuAttr.bW+170, 450, 100, 50,
                (VarST3000.Language?0x81:0x03), szptr_okcancel[1][VarST3000.Language], 192, 192, 192);
        fseek(DataFile, (long)sizeof(Units)*MAXCNL_3K+sizeof(SystemSettings), SEEK_SET);
        fread(&Str6xtcs, sizeof(Str6xt), 1, DataFile);
        if( Edition3K.YtzMachID==1 )
        {   SubM5_Fr13A();}
        else
        {   SubM5_Fr13B();}
    }
}

/*
void ___Process4OtherPages___(void)
*/
/******************************
 描述: 纵向电机运动方向
******************************/
void SyncVMotorM5_5(const int x0, const int y0, const int iCNL)
{
    int shape[6];
    switch(unit[iCNL].submenu6.VMotorControls)
    {
    case 0:
        Circle(x0, y0, 10, 0, 0, 255);
        break;
    case 1:
        shape[0]=x0;
        shape[1]=y0-10;
        shape[2]=x0-10;
        shape[3]=y0+10;
        shape[4]=x0+10;
        shape[5]=y0+10;
        FillPoly(3, shape, 0, 255, 0);
        break;
    case 2:
        shape[0]=x0-10;
        shape[1]=y0-10;
        shape[2]=x0+10;
        shape[3]=y0-10;
        shape[4]=x0;
        shape[5]=y0+10;
        FillPoly(3, shape, 0, 255, 0);
        break;
    default:
        break;
    }
}

/******************************
 描述: 横向电机运动方向
******************************/
void SyncHMotorM5_11(const int x0, const int y0, const int iCNL)
{
    int shape[6];
    switch(unit[iCNL].submenu6.HMotorControls)
    {
    case 0:
        Circle(x0,y0,10,0,0,255);
        break;
    case 1:
        shape[0]=x0-10;
        shape[1]=y0-10;
        shape[2]=x0-10;
        shape[3]=y0+10;
        shape[4]=x0+10;
        shape[5]=y0;
        FillPoly(3,shape,0,255,0);
        break;
    case 2:
        shape[0]=x0+10;
        shape[1]=y0-10;
        shape[2]=x0+10;
        shape[3]=y0+10;
        shape[4]=x0-10;
        shape[5]=y0;
        FillPoly(3,shape,0,255,0);
        break;
    default:
        break;
    }
}

/******************************
 描述: 同步非手动电机页的通道按钮选择 带有编辑框显示内容的刷新
******************************/
void SyncUnitSEL_M5(void)
{
    int tmpnewx,tmpnewy;
    char szChar[10]={0};
    /*
    需要恢复的光标
    */
    if( vNewUnitSEL5!=vOldUnitSEL5 && vOldUnitSEL5>0 )
    {
        tmpnewx=MenuAttr.sX+MenuAttr.tW+InstAttr.x_offset;
        tmpnewy=MenuAttr.sY+InstAttr.y_offset+(vOldUnitSEL5-1)*(SizeAttrB.h+InstAttr.h_instance);
        memset(szChar, 0, 10);
        sprintf(szChar, "%dU", vOldUnitSEL5);
        Button(tmpnewx, tmpnewy, SizeAttrB.w, SizeAttrB.h, 0x81, szChar, 192, 192, 192);
        memset(szChar, 0, 10);
        if( vNewPageSEL5==2 )
        {   // 纵向重复值
            sprintf(szChar, "%6.2f", unit[vOldUnitSEL5-1].submenu6.VRepeatValue/100.0);
            Edit(tmpnewx+SizeAttrB.w+InstAttr.v_instance, tmpnewy, SizeAttrE.w, SizeAttrE.h, 0x0f, szChar);
        }
        else if(vNewPageSEL5==3)
        {   // 纵向修正值
            sprintf(szChar, "%7.2f", unit[vOldUnitSEL5-1].submenu6.VAdjustValue/100.0);
            Edit(tmpnewx+SizeAttrB.w+InstAttr.v_instance, tmpnewy, SizeAttrE.w, SizeAttrE.h, 0x0f, szChar);
        }
        else if(vNewPageSEL5==4)
        {   // 纵向设定值
            sprintf(szChar, "%6.2f", unit[vOldUnitSEL5-1].submenu6.VSetupValue/100.0);
            Edit(tmpnewx+SizeAttrB.w+InstAttr.v_instance, tmpnewy, SizeAttrE.w, SizeAttrE.h, 0x0f, szChar);
        }
        else if(vNewPageSEL5==6)
        {   // 横向重复值
            sprintf(szChar, "%6.2f", unit[vOldUnitSEL5-1].submenu6.HRepeatValue/100.0);
            Edit(tmpnewx+SizeAttrB.w+InstAttr.v_instance, tmpnewy, SizeAttrE.w, SizeAttrE.h, 0x0f, szChar);
        }
        else if(vNewPageSEL5==7)
        {   // 横向设定值
            sprintf(szChar, "%6.2f", unit[vOldUnitSEL5-1].submenu6.HSetupValue/100.0);
            Edit(tmpnewx+SizeAttrB.w+InstAttr.v_instance, tmpnewy, SizeAttrE.w, SizeAttrE.h, 0x0f, szChar);
        }
        else if(vNewPageSEL5==8)
        {   // 横向行程
            sprintf(szChar, "%6.2f", unit[vOldUnitSEL5-1].submenu6.HMaxValue/100.0);
            Edit(tmpnewx+SizeAttrB.w+InstAttr.v_instance, tmpnewy, SizeAttrE.w, SizeAttrE.h, 0x0f, szChar);
        }
        else if(vNewPageSEL5==9)
        {   // 横辊宽度
            sprintf(szChar, "%6.2f", unit[vOldUnitSEL5-1].submenu6.HWidth/100.0);
            Edit(tmpnewx+SizeAttrB.w+InstAttr.v_instance, tmpnewy, SizeAttrE.w, SizeAttrE.h, 0x0f, szChar);
        }
        else if(vNewPageSEL5==10)
        {   // 压轮直径
            sprintf(szChar, "%6d", unit[vOldUnitSEL5-1].submenu6.DofRoll);
            Edit(tmpnewx+SizeAttrB.w+InstAttr.v_instance, tmpnewy, SizeAttrE.w, SizeAttrE.h, 0x0f, szChar);
        }
    }
    /*
    需要设置的光标
    */
    tmpnewx=MenuAttr.sX+MenuAttr.tW+InstAttr.x_offset;
    tmpnewy=MenuAttr.sY+InstAttr.y_offset+(vNewUnitSEL5-1)*(SizeAttrB.h+InstAttr.h_instance);
    memset(szChar, 0, 10);
    sprintf(szChar, "%dU", vNewUnitSEL5);
    Button(tmpnewx, tmpnewy, SizeAttrB.w, SizeAttrB.h, 0x91, szChar, 192, 192, 192);
    memset(szChar, 0, 10);
    if(vNewPageSEL5==2)
    {   // 纵向重复值
        sprintf(szChar, "%6.2f", unit[vNewUnitSEL5-1].submenu6.VRepeatValue/100.0);
        Edit(tmpnewx+SizeAttrB.w+InstAttr.v_instance, tmpnewy, SizeAttrE.w, SizeAttrE.h, 0x4f, szChar);
    }
    else if(vNewPageSEL5==3)
    {   // 纵向修正值
        sprintf(szChar, "%7.2f", unit[vNewUnitSEL5-1].submenu6.VAdjustValue/100.0);
        Edit(tmpnewx+SizeAttrB.w+InstAttr.v_instance, tmpnewy, SizeAttrE.w, SizeAttrE.h, 0x4f, szChar);
    }
    else if(vNewPageSEL5==4)
    {   // 纵向设定值
        sprintf(szChar, "%6.2f", unit[vNewUnitSEL5-1].submenu6.VSetupValue/100.0);
        Edit(tmpnewx+SizeAttrB.w+InstAttr.v_instance, tmpnewy, SizeAttrE.w, SizeAttrE.h, 0x4f, szChar);
    }
    else if(vNewPageSEL5==6)
    {   // 横向重复值
        sprintf(szChar, "%6.2f", unit[vNewUnitSEL5-1].submenu6.HRepeatValue/100.0);
        Edit(tmpnewx+SizeAttrB.w+InstAttr.v_instance, tmpnewy, SizeAttrE.w, SizeAttrE.h, 0x4f, szChar);
    }
    else if(vNewPageSEL5==7)
    {   // 横向设定值
        sprintf(szChar, "%6.2f", unit[vNewUnitSEL5-1].submenu6.HSetupValue/100.0);
        Edit(tmpnewx+SizeAttrB.w+InstAttr.v_instance, tmpnewy, SizeAttrE.w, SizeAttrE.h, 0x4f, szChar);
    }
    else if(vNewPageSEL5==8)
    {   // 横向行程
        sprintf(szChar, "%6.2f", unit[vNewUnitSEL5-1].submenu6.HMaxValue/100.0);
        Edit(tmpnewx+SizeAttrB.w+InstAttr.v_instance, tmpnewy, SizeAttrE.w, SizeAttrE.h, 0x4f, szChar);
    }
    else if(vNewPageSEL5==9)
    {   // 横辊宽度
        sprintf(szChar, "%6.2f", unit[vNewUnitSEL5-1].submenu6.HWidth/100.0);
        Edit(tmpnewx+SizeAttrB.w+InstAttr.v_instance, tmpnewy, SizeAttrE.w, SizeAttrE.h, 0x4f, szChar);
    }
    else if(vNewPageSEL5==10)
    {   // 压轮直径
        sprintf(szChar, "%6d", unit[vNewUnitSEL5-1].submenu6.DofRoll);
        Edit(tmpnewx+SizeAttrB.w+InstAttr.v_instance, tmpnewy, SizeAttrE.w, SizeAttrE.h, 0x4f, szChar);
    }
    vOldUnitSEL5=vNewUnitSEL5;
    ClearKBuffer();
}

/******************************
 描述: 同步手动电机页的通道按钮选择 PAGE_5 . PAGE_11
******************************/
void SyncUnitSEL_P511(void)
{
    unsigned char szChar[10]={0};
    int tmpnewx=MenuAttr.sX+MenuAttr.tW+InstAttr.x_offset;
    int tmpnewy=MenuAttr.sY+InstAttr.y_offset+(vOldUnitSEL5-1)*(SizeAttrB.h+InstAttr.h_instance);
    /* 旧 */
    sprintf(szChar, "%dU", vOldUnitSEL5);
    Button(tmpnewx, tmpnewy, SizeAttrB.w, SizeAttrB.h, 0x81, szChar, 192, 192, 192);
    /* 新 */
    tmpnewy=MenuAttr.sY+InstAttr.y_offset+(vNewUnitSEL5-1)*(SizeAttrB.h+InstAttr.h_instance);
    memset(szChar, 0, 10);
    sprintf(szChar, "%dU", vNewUnitSEL5);
    Button(tmpnewx, tmpnewy, SizeAttrB.w, SizeAttrB.h, 0x91, szChar, 192, 192, 192);
    vOldUnitSEL5=vNewUnitSEL5;
}

/***
 设置键盘输入限制
***/
void SetKState5(const int pageID)
{
    switch( pageID )
    {
    case 2: // 纵向重复值
    case 6: // 横向重复值
        g_Klength=6; g_Kmask=0x00;
        break;
    case 3: // 纵向修正值
        g_Klength=7; g_Kmask=0x00;
        break;
    case 4: // 纵向设定值
        g_Klength=6; g_Kmask=0x02;
        break;
    case 7: // 横向设定值
        g_Klength=5; g_Kmask=0x02;
        break;
    case 8: // 横辊修正量
        g_Klength=5; g_Kmask=0x00;
        break;
    case 9: // 横辊行程
        g_Klength=5; g_Kmask=0x02;
        break;
    case 10: // 压轮直径
        g_Klength=3; g_Kmask=0x03;
        break;
    case 12: // 预套准纵横向调整系数

⌨️ 快捷键说明

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