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

📄 3kmenu6.c

📁 嵌入式开发 嵌入式开发 嵌入式开发
💻 C
📖 第 1 页 / 共 5 页
字号:
            Edit(xfrom, MenuAttr.sY+InstAttr.y_offset+t*(SizeAttrB.h+InstAttr.h_instance),
                SizeAttrE.w, SizeAttrE.h, eSTL, szE);
        }
        break;
    case 15: // 横向不工作区
        for(t=1; t<VarST3000.UnitCounts; t++)
        {
            eSTL=0x0f;
            memset(szE, 0, 10);
            sprintf(szE, "%6.2f", unit[t].submenu2.HDeadZone[vStdSEL6-1]/100.0);
            if( t==(vNewUnitSEL6-1) ) {   eSTL|=0x40;}
            Edit(xfrom, MenuAttr.sY+InstAttr.y_offset+t*(SizeAttrB.h+InstAttr.h_instance),
                SizeAttrE.w, SizeAttrE.h, eSTL, szE);
        }
        break;
    default:
        break;
    }
}

/***
 纵向电机开关按钮响应
 Vertical-Motor-Switch Menu:6 Page:8
***/
void SyncVMS_68(const int iCNL)
{
    char szchar[20]={0};
    unsigned char vStyle=0x03;
    if(unit[iCNL].submenu1.bitfield.v_motorruning)
    {
        vStyle|=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);}
    }
    Button(MenuAttr.sX+MenuAttr.tW+MenuAttr.bW/2-63,
        MenuAttr.sY+InstAttr.y_offset+iCNL*(SizeAttrB.h+InstAttr.h_instance),
        125, SizeAttrB.h, vStyle, szchar, 192, 192, 192);
}

/***
 根据接收到的9#命令 刷新界面
***/
void UpdateM6_C9(const int iPAGE, const int iCNL)
{
    char szE[10]={0};
    int x=MenuAttr.sX+MenuAttr.tW+InstAttr.x_offset+SizeAttrB.w+InstAttr.v_instance;
    int y=MenuAttr.sY+InstAttr.y_offset+(iCNL)*(SizeAttrB.h+InstAttr.h_instance);
    switch( iPAGE )
    {
    case 1: // 纵向报警值
        sprintf(szE, "%6.2f", unit[iCNL].submenu1.v_alarm/100.0);
        break;
    case 2: // 纵向微调值
        sprintf(szE, "%6.2f", unit[iCNL].submenu1.v_adjust/100.0);
        break;
    case 9: // 横向报警值
        sprintf(szE, "%6.2f", unit[iCNL].submenu1.h_alarm/100.0);
        break;
    case 10: // 横向微调值
        sprintf(szE, "%6.2f", unit[iCNL].submenu1.h_adjust/100.0);
        break;
    default:
        return;
    }
    if( iCNL==(vNewUnitSEL6-1) )
    {   Edit(x, y, SizeAttrE.w, SizeAttrE.h, 0x4f, szE); ClearKBuffer();}
    else
    {   Edit(x, y, SizeAttrE.w, SizeAttrE.h, 0x0f, szE);}
}

/***
 由于接收命令要刷新指定屏幕指定通道的参数显示 (保留当前光标)
***/
void UpdateM6_CAB(const int iCNL, char *ptr)
{
    int x=MenuAttr.sX+MenuAttr.tW+InstAttr.x_offset+SizeAttrB.w+InstAttr.v_instance;
    int y=MenuAttr.sY+InstAttr.y_offset+(iCNL)*(SizeAttrB.h+InstAttr.h_instance);
    if( iCNL==vNewUnitSEL6-1 )
    {   Edit(x, y, SizeAttrE.w, SizeAttrE.h, 0x4f, ptr); ClearKBuffer();}
    else
    {   Edit(x, y, SizeAttrE.w, SizeAttrE.h, 0x0f, ptr);}
}

/***
 设置键盘输入限制
***/
void SetKState6(const int pageID)
{
    switch( pageID )
    {
    case 1: // 纵向报警值
    case 9: // 横向报警值
        g_Klength=3; g_Kmask=0x02;
        break;
    case 2: // 纵向微调值
    case 10: // 横向微调值
        g_Klength=4; g_Kmask=0x00;
        break;
    case 3: // 纵向增益P值
    case 4: // 纵向增益D值
    case 11: // 横向增益P值
    case 12: // 横向增益D值
        g_Klength=2; g_Kmask=0x03;
        break;
    case 5: // 纵向平均值
    case 13: // 横向平均值
        g_Klength=1; g_Kmask=0x03;
        break;
    case 6: // 纵向周期频数
    case 14: // 横向周期频数
        g_Klength=1; g_Kmask=0x03;
        break;
    case 7: // 纵向不工作区
    case 15: // 横向不工作区
        g_Klength=3; g_Kmask=0x02;
        break;
    default:
        g_Klength=0; g_Kmask=0x03;
        break;
    }
    ClearKBuffer();
}

/***
 单页标题背景
***/
void SubM6_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_m6_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_m6_1[IDsel-1][0], 0, 0, 0);
    }
}

/***
 单页前景
***/
void SubM6_fr(const int IDsel)
{
    int jcnl,xfrom,yfrom;
    char szB[10],szE[10];
    unsigned char uSTL,eSTL;
    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_m6_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_m6_1[IDsel-1][0], 200, 50, 50);
    }
    vOldUnitSEL6=vNewUnitSEL6=0;
    if( IDsel!=8 ) {   DrawNumKBoard(690, 100);}
    switch( IDsel )
    {
    case 1: // 纵向报警值
        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.v_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 2: // 纵向微调值
        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.v_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 3: // 纵向增益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.VPlus_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 4: // 纵向增益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.VPlus_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 5: // 纵向平均值
        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].VAver);
            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 6: // 纵向周期频数
        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.VFps[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 7: // 纵向不工作区
        SyncSTDSEL_M6(vStdSEL6);
        xfrom=MenuAttr.sX+MenuAttr.tW+InstAttr.x_offset;
        yfrom=MenuAttr.sY+InstAttr.y_offset;
        for(jcnl=1; jcnl<VarST3000.UnitCounts; jcnl++)
        {

⌨️ 快捷键说明

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