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

📄 3kmenu6.c

📁 嵌入式开发 嵌入式开发 嵌入式开发
💻 C
📖 第 1 页 / 共 5 页
字号:
            uSTL=0x81; eSTL=0x0f;
            memset(szB, 0, 10); memset(szE, 0, 10);
            sprintf(szB, "%dU", jcnl+1);
            sprintf(szE, "%6.2f", unit[jcnl].submenu2.VDeadZone[vStdSEL6-1]/100.0);
            yfrom+=(SizeAttrB.h+InstAttr.h_instance);
            if( !vNewUnitSEL6 )
            {
                uSTL|=0x10; eSTL|=0x40;
                vNewUnitSEL6=jcnl+1;
                vOldUnitSEL6=vNewUnitSEL6;
            }
            Button(xfrom, yfrom, SizeAttrB.w, SizeAttrB.h, uSTL, szB, 192, 192, 192);
            Edit(xfrom+SizeAttrB.w+InstAttr.v_instance, yfrom, SizeAttrE.w, SizeAttrE.h, eSTL, szE);
        }
        break;
    case 8: // 纵向电机开关
        Rectangle(MenuAttr.sX+MenuAttr.tW+50, MenuAttr.sY+50,
            MenuAttr.sX+MenuAttr.tW+MenuAttr.bW-50, MenuAttr.sY+MenuAttr.bH-50, 128, 128, 128);
        Rectangle(MenuAttr.sX+MenuAttr.tW+51, MenuAttr.sY+51,
            MenuAttr.sX+MenuAttr.tW+MenuAttr.bW-49, MenuAttr.sY+MenuAttr.bH-49, 255, 255, 255);
        for(jcnl=1; jcnl<VarST3000.UnitCounts; jcnl++)
        {   SyncVMS_68(jcnl);}
        break;
    case 9: // 横向报警值
        xfrom=MenuAttr.sX+MenuAttr.tW+InstAttr.x_offset;
        yfrom=MenuAttr.sY+InstAttr.y_offset;
        for(jcnl=1; jcnl<VarST3000.UnitCounts; jcnl++)
        {
            uSTL=0x81; eSTL=0x0f;
            memset(szB, 0, 10); memset(szE, 0, 10);
            sprintf(szB, "%dU", jcnl+1);
            sprintf(szE, "%6.2f", unit[jcnl].submenu1.h_alarm/100.0);
            yfrom+=(SizeAttrB.h+InstAttr.h_instance);
            if( !vNewUnitSEL6 )
            {
                uSTL|=0x10; eSTL|=0x40;
                vNewUnitSEL6=jcnl+1;
                vOldUnitSEL6=vNewUnitSEL6;
            }
            Button(xfrom, yfrom, SizeAttrB.w, SizeAttrB.h, uSTL, szB, 192, 192, 192);
            Edit(xfrom+SizeAttrB.w+InstAttr.v_instance, yfrom, SizeAttrE.w, SizeAttrE.h, eSTL, szE);
        }
        break;
    case 10:// 横向微调值
        xfrom=MenuAttr.sX+MenuAttr.tW+InstAttr.x_offset;
        yfrom=MenuAttr.sY+InstAttr.y_offset;
        for(jcnl=1; jcnl<VarST3000.UnitCounts; jcnl++)
        {
            uSTL=0x81; eSTL=0x0f;
            memset(szB, 0, 10); memset(szE, 0, 10);
            sprintf(szB, "%dU", jcnl+1);
            sprintf(szE, "%6.2f", unit[jcnl].submenu1.h_adjust/100.0);
            yfrom+=(SizeAttrB.h+InstAttr.h_instance);
            if( !vNewUnitSEL6 )
            {
                uSTL|=0x10; eSTL|=0x40;
                vNewUnitSEL6=jcnl+1;
                vOldUnitSEL6=vNewUnitSEL6;
            }
            Button(xfrom, yfrom, SizeAttrB.w, SizeAttrB.h, uSTL, szB, 192, 192, 192);
            Edit(xfrom+SizeAttrB.w+InstAttr.v_instance, yfrom, SizeAttrE.w, SizeAttrE.h, eSTL, szE);
        }
        break;
    case 11: // 横向增益P值
        SyncSTDSEL_M6(vStdSEL6);
        xfrom=MenuAttr.sX+MenuAttr.tW+InstAttr.x_offset;
        yfrom=MenuAttr.sY+InstAttr.y_offset;
        for(jcnl=1; jcnl<VarST3000.UnitCounts; jcnl++)
        {
            uSTL=0x81; eSTL=0x0f;
            memset(szB, 0, 10); memset(szE, 0, 10);
            sprintf(szB, "%dU", jcnl+1);
            sprintf(szE, "%5d", unit[jcnl].submenu2.HPlus_P[vStdSEL6-1]);
            yfrom+=(SizeAttrB.h+InstAttr.h_instance);
            if( !vNewUnitSEL6 )
            {
                uSTL|=0x10; eSTL|=0x40;
                vNewUnitSEL6=jcnl+1;
                vOldUnitSEL6=vNewUnitSEL6;
            }
            Button(xfrom, yfrom, SizeAttrB.w, SizeAttrB.h, uSTL, szB, 192, 192, 192);
            Edit(xfrom+SizeAttrB.w+InstAttr.v_instance, yfrom, SizeAttrE.w, SizeAttrE.h, eSTL, szE);
        }
        break;
    case 12: // 横向增益D值
        SyncSTDSEL_M6(vStdSEL6);
        xfrom=MenuAttr.sX+MenuAttr.tW+InstAttr.x_offset;
        yfrom=MenuAttr.sY+InstAttr.y_offset;
        for(jcnl=1; jcnl<VarST3000.UnitCounts; jcnl++)
        {
            uSTL=0x81; eSTL=0x0f;
            memset(szB, 0, 10); memset(szE, 0, 10);
            sprintf(szB, "%dU", jcnl+1);
            sprintf(szE, "%5d", unit[jcnl].submenu2.HPlus_D[vStdSEL6-1]);
            yfrom+=(SizeAttrB.h+InstAttr.h_instance);
            if( !vNewUnitSEL6 )
            {
                uSTL|=0x10; eSTL|=0x40;
                vNewUnitSEL6=jcnl+1;
                vOldUnitSEL6=vNewUnitSEL6;
            }
            Button(xfrom, yfrom, SizeAttrB.w, SizeAttrB.h, uSTL, szB, 192, 192, 192);
            Edit(xfrom+SizeAttrB.w+InstAttr.v_instance, yfrom, SizeAttrE.w, SizeAttrE.h, eSTL, szE);
        }
        break;
    case 13: // 横向平均值
        SyncSTDSEL_M6(vStdSEL6);
        xfrom=MenuAttr.sX+MenuAttr.tW+InstAttr.x_offset;
        yfrom=MenuAttr.sY+InstAttr.y_offset;
        for(jcnl=1; jcnl<VarST3000.UnitCounts; jcnl++)
        {
            uSTL=0x81; eSTL=0x0f;
            memset(szB, 0, 10); memset(szE, 0, 10);
            sprintf(szB, "%dU", jcnl+1);
            sprintf(szE, "%5d", unit[jcnl].submenu2.VHaver[vStdSEL6-1].HAver);
            yfrom+=(SizeAttrB.h+InstAttr.h_instance);
            if( !vNewUnitSEL6 )
            {
                uSTL|=0x10; eSTL|=0x40;
                vNewUnitSEL6=jcnl+1;
                vOldUnitSEL6=vNewUnitSEL6;
            }
            Button(xfrom, yfrom, SizeAttrB.w, SizeAttrB.h, uSTL, szB, 192, 192, 192);
            Edit(xfrom+SizeAttrB.w+InstAttr.v_instance, yfrom, SizeAttrE.w, SizeAttrE.h, eSTL, szE);
        }
        break;
    case 14: // 横向周期频数
        SyncSTDSEL_M6(vStdSEL6);
        xfrom=MenuAttr.sX+MenuAttr.tW+InstAttr.x_offset;
        yfrom=MenuAttr.sY+InstAttr.y_offset;
        for(jcnl=1; jcnl<VarST3000.UnitCounts; jcnl++)
        {
            uSTL=0x81; eSTL=0x0f;
            memset(szB, 0, 10); memset(szE, 0, 10);
            sprintf(szB, "%dU", jcnl+1);
            sprintf(szE, "%5d", unit[jcnl].submenu2.HFps[vStdSEL6-1]);
            yfrom+=(SizeAttrB.h+InstAttr.h_instance);
            if( !vNewUnitSEL6 )
            {
                uSTL|=0x10; eSTL|=0x40;
                vNewUnitSEL6=jcnl+1;
                vOldUnitSEL6=vNewUnitSEL6;
            }
            Button(xfrom, yfrom, SizeAttrB.w, SizeAttrB.h, uSTL, szB, 192, 192, 192);
            Edit(xfrom+SizeAttrB.w+InstAttr.v_instance, yfrom, SizeAttrE.w, SizeAttrE.h, eSTL, szE);
        }
        break;
    case 15: // 横向不工作区
        SyncSTDSEL_M6(vStdSEL6);
        xfrom=MenuAttr.sX+MenuAttr.tW+InstAttr.x_offset;
        yfrom=MenuAttr.sY+InstAttr.y_offset;
        for(jcnl=1; jcnl<VarST3000.UnitCounts; jcnl++)
        {
            uSTL=0x81; eSTL=0x0f;
            memset(szB, 0, 10); memset(szE, 0, 10);
            sprintf(szB, "%dU", jcnl+1);
            sprintf(szE, "%6.2f", unit[jcnl].submenu2.HDeadZone[vStdSEL6-1]/100.0);
            yfrom+=(SizeAttrB.h+InstAttr.h_instance);
            if( !vNewUnitSEL6 )
            {
                uSTL|=0x10; eSTL|=0x40;
                vNewUnitSEL6=jcnl+1;
                vOldUnitSEL6=vNewUnitSEL6;
            }
            Button(xfrom, yfrom, SizeAttrB.w, SizeAttrB.h, uSTL, szB, 192, 192, 192);
            Edit(xfrom+SizeAttrB.w+InstAttr.v_instance, yfrom, SizeAttrE.w, SizeAttrE.h, eSTL, szE);
        }
        break;
    default:
        break;
    }
    SetKState6(IDsel);
}

/***
 响应通道选择光标更新
***/
void SyncUSEL6(void)
{
    char szB[10],szE[10];
    int yfrom,xfrom=MenuAttr.sX+MenuAttr.tW+InstAttr.x_offset;
    if( (vNewUnitSEL6!=vOldUnitSEL6) && vOldUnitSEL6 )
    {
        yfrom=MenuAttr.sY+InstAttr.y_offset+((vOldUnitSEL6-1)*(SizeAttrB.h+InstAttr.h_instance));
        memset(szB, 0, 10); memset(szE, 0, 10);
        sprintf(szB, "%dU", vOldUnitSEL6);
        Button(xfrom, yfrom, SizeAttrB.w, SizeAttrB.h, 0x81, szB, 192, 192, 192);
        switch(vNewPageSEL6)
        {
        case 1: // 纵向报警值
            sprintf(szE, "%6.2f", unit[vOldUnitSEL6-1].submenu1.v_alarm/100.0);
            Edit(xfrom+SizeAttrB.w+InstAttr.v_instance, yfrom, SizeAttrE.w, SizeAttrE.h, 0x0f, szE);
            break;
        case 2: // 纵向微调值
            sprintf(szE, "%6.2f", unit[vOldUnitSEL6-1].submenu1.v_adjust/100.0);
            Edit(xfrom+SizeAttrB.w+InstAttr.v_instance, yfrom, SizeAttrE.w, SizeAttrE.h, 0x0f, szE);
            break;
        case 3: // 纵向增益P值
            sprintf(szE, "%5d", unit[vOldUnitSEL6-1].submenu2.VPlus_P[vStdSEL6-1]);
            Edit(xfrom+SizeAttrB.w+InstAttr.v_instance, yfrom, SizeAttrE.w, SizeAttrE.h, 0x0f, szE);
            break;
        case 4: // 纵向增益D值
            sprintf(szE, "%5d", unit[vOldUnitSEL6-1].submenu2.VPlus_D[vStdSEL6-1]);
            Edit(xfrom+SizeAttrB.w+InstAttr.v_instance, yfrom, SizeAttrE.w, SizeAttrE.h, 0x0f, szE);
            break;
        case 5: // 纵向平均值
            sprintf(szE, "%5d", unit[vOldUnitSEL6-1].submenu2.VHaver[vStdSEL6-1].VAver);
            Edit(xfrom+SizeAttrB.w+InstAttr.v_instance, yfrom, SizeAttrE.w, SizeAttrE.h, 0x0f, szE);
            break;
        case 6: // 纵向周期频数
            sprintf(szE, "%5d", unit[vOldUnitSEL6-1].submenu2.VFps[vStdSEL6-1]);
            Edit(xfrom+SizeAttrB.w+InstAttr.v_instance, yfrom, SizeAttrE.w, SizeAttrE.h, 0x0f, szE);
            break;
        case 7: // 纵向不工作区
            sprintf(szE, "%6.2f", unit[vOldUnitSEL6-1].submenu2.VDeadZone[vStdSEL6-1]/100.0);
            Edit(xfrom+SizeAttrB.w+InstAttr.v_instance, yfrom, SizeAttrE.w, SizeAttrE.h, 0x0f, szE);
            break;
        case 9: // 横向报警值
            sprintf(szE, "%6.2f", unit[vOldUnitSEL6-1].submenu1.h_alarm/100.0);
            Edit(xfrom+SizeAttrB.w+InstAttr.v_instance, yfrom, SizeAttrE.w, SizeAttrE.h, 0x0f, szE);
            break;
        case 10:// 横向微调值
            sprintf(szE, "%6.2f", unit[vOldUnitSEL6-1].submenu1.h_adjust/100.0);
            Edit(xfrom+SizeAttrB.w+InstAttr.v_instance, yfrom, SizeAttrE.w, SizeAttrE.h, 0x0f, szE);
            break;
        case 11:// 横向增益P值
            sprintf(szE, "%5d", unit[vOldUnitSEL6-1].submenu2.HPlus_P[vStdSEL6-1]);
            Edit(xfrom+SizeAttrB.w+InstAttr.v_instance, yfrom, SizeAttrE.w, SizeAttrE.h, 0x0f, szE);
            break;
        case 12:// 横向增益D值
            sprintf(szE, "%5d", unit[vOldUnitSEL6-1].submenu2.HPlus_D[vStdSEL6-1]);
            Edit(xfrom+SizeAttrB.w+InstAttr.v_instance, yfrom, SizeAttrE.w, SizeAttrE.h, 0x0f, szE);
            break;
        case 13:// 横向平均值
            sprintf(szE, "%5d", unit[vOldUnitSEL6-1].submenu2.VHaver[vStdSEL6-1].HAver);
            Edit(xfrom+SizeAttrB.w+InstAttr.v_instance, yfrom, SizeAttrE.w, SizeAttrE.h, 0x0f, szE);
            break;
        case 14:// 横向周期频数
            sprintf(szE, "%5d", unit[vOldUnitSEL6-1].submenu2.HFps[vStdSEL6-1]);
            Edit(xfrom+SizeAttrB.w+InstAttr.v_instance, yfrom, SizeAttrE.w, SizeAttrE.h, 0x0f, szE);
            break;
        case 15:// 横向不工作区
            sprintf(szE, "%6.2f", unit[vOldUnitSEL6-1].submenu2.HDeadZone[vStdSEL6-1]/100.0);
            Edit(xfrom+SizeAttrB.w+InstAttr.v_instance, yfrom, SizeAttrE.w, SizeAttrE.h, 0x0f, szE);
            break;
        default:
            break;
        }
    }
    yfrom=MenuAttr.sY+InstAttr.y_offset+((vNewUnitSEL6-1)*(SizeAttrB.h+InstAttr.h_instance));
    memset(szB, 0, 10); memset(szE, 0, 10);
    sprintf(szB, "%dU", vNewUnitSEL6);
    Button(xfrom, yfrom, SizeAttrB.w, SizeAttrB.h, 0x91, szB, 192, 192, 192);
    switch( vNewPageSEL6 )
    {
    case 1: // 纵向报警值
        sprintf(szE, "%6.2f", unit[vNewUnitSEL6-1].submenu1.v_alarm/100.0);
        Edit(xfrom+SizeAttrB.w+InstAttr.v_instance, yfrom, SizeAttrE.w, SizeAttrE.h, 0x4f, szE);
        break;
    case 2: // 纵向微调值
        sprintf(szE, "%6.2f", unit[vNewUnitSEL6-1].submenu1.v_adjust/100.0);
        Edit(xfrom+SizeAttrB.w+InstAttr.v_instance, yfrom, SizeAttrE.w, SizeAttrE.h, 0x4f, szE);
        break;
    case 3: // 纵向增益P值
        sprintf(szE, "%5d", unit[vNewUnitSEL6-1].submenu2.VPlus_P[vStdSEL6-1]);
        Edit(xfrom+SizeAttrB.w+InstAttr.v_instance, yfrom, SizeAttrE.w, SizeAttrE.h, 0x4f, szE);
        break;
    case 4: // 纵向增益D值
        sprintf(szE, "%5d", unit[vNewUnitSEL6-1].submenu2.VPlus_D[vStdSEL6-1]);
        Edit(xfrom+SizeAttrB.w+InstAttr.v_instance, yfrom, SizeAttrE.w, SizeAttrE.h, 0x4f, szE);
        break;
    case 5: // 纵向平均值
        sprintf(szE, "%5d", unit[vNewUnitSEL6-1].submenu2.VHaver[vStdSEL6-1].VAver);
        Edit(xfrom+SizeAttrB.w+InstAttr.v_instance, yfrom, SizeAttrE.w, SizeAttrE.h, 0x4f, szE);
        break;
    case 6: // 纵向周期频数
        sprintf(szE, "%5d", unit[vNewUnitSEL6-1].submenu2.VFps[vStdSEL6-1]);
        Edit(xfrom+SizeAttrB.w+InstAttr.v_instance, yfrom, SizeAttrE.w, SizeAttrE.h, 0x4f, szE);
        break;
    case 7: // 纵向不工作区
        sprintf(szE, "%6.2f", unit[vNewUnitSEL6-1].submenu2.VDeadZone[vStdSEL6-1]/100.0);
        Edit(xfrom+SizeAttrB.w+InstAttr.v_instance, yfrom, SizeAttrE.w, SizeAttrE.h, 0x4f, szE);
        break;
    case 9: // 横向报警值
        sprintf(szE, "%6.2f", unit[vNewUnitSEL6-1].submenu1.h_alarm/100.0);
        Edit(xfrom+SizeAttrB.w+InstAttr.v_instance, yfrom, SizeAttrE.w, SizeAttrE.h, 0x4f, szE);
        break;
    case 10:// 横向微调值
        sprintf(szE, "%6.2f", unit[vNewUnitSEL6-1].submenu1.h_adjust/100.0);
        Edit(xfrom+SizeAttrB.w+InstAttr.v_instance, yfrom, SizeAttrE.w, SizeAttrE.h, 0x4f, szE);
        break;
    case 11:// 横向增益P值
        sprintf(szE, "%5d", unit[vNewUnitSEL6-1].submenu2.HPlus_P[vStdSEL6-1]);
        Edit(xfrom+SizeAttrB.w+InstAttr.v_instance, yfrom, SizeAttrE.w, SizeAttrE.h, 0x4f, szE);
        break;
    case 12:// 横向增益D值
        sprintf(szE, "%5d", unit[vNewUnitSEL6-1].submenu2.HPlus_D[vStdSEL6-1]);
        Edit(xfrom+SizeAttrB.w+InstAttr.v_instance, yfrom, SizeAttrE.w, SizeAttrE.h, 0x4f, szE);
        break;
    case 13:// 横向平均值
        sprintf(szE, "%5d", unit[vNewUnitSEL6-1].submenu2.VHaver[vStdSEL6-1].HAver);
        Edit(xfrom+SizeAttrB.w+InstAttr.v_instance, yfrom, SizeAttrE.w, SizeAttrE.h, 0x4f, szE);
        break;

⌨️ 快捷键说明

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