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

📄 3kmenu2.c

📁 嵌入式开发 嵌入式开发 嵌入式开发
💻 C
📖 第 1 页 / 共 5 页
字号:
/********************
 Filename: 3KMENU2.C
 History&Datetime:
 DateTime: 2007-3-5
 JOB-TODO: 当A,B系都没有预套准时,如果A系有通道进入A系 ,B系有通道进入B系
 	都有则A系优先。
 DateTime: 2007-6-11 14:33
 JOB-TODO: 在改板周长后 点Ent按钮后,调用Gen_ytzCAL(Edition3K.YtzMachID)函数, 重新计算预套准的计算值,
	点OK 按钮也调用函数,重新计算预套准的计算值
********************/
#include "ST3000.H"
#include "STRUC_3K.H"
#include "CORE_VGA.H"
#include "CORE_COM.H"
#include "3KDEFN.H"

int addrpoint;
int UnitSEL,UnitSEL_Old; // 当前通道和最后一次选择的通道
unsigned RulerLength; // 刻度距离
unsigned char adresult,tcflag=0; // A/D标志
unsigned char Scaling=1,MaxScale=1; // 放大比例
unsigned char trnSEL,mrkSEL; // 标记排列选择ID 和 标记形式选择ID
unsigned char ytzVSELa,ytzHSELa; // 预套准A系纵横向选择
unsigned char ytzVSELb,ytzHSELb; // 预套准B系纵横向选择
unsigned char bFlagsINPUT22=0; // bit0=1输入参数; bit4=1输入版辊周长

extern void DrawM2fr(const int mID);
extern void UpdateScr21(void);
extern void DrawWAVfr(const int start);
extern void RespUDLR23(const int idxUDLR);
extern void SetWrkMark23(const int iCNL, const int iSHOW);
extern void DispVErr_M23(const int vDAT);
extern void DispHErr_M23(const int vDAT, const int hDAT);


extern void StartStop_button(const int vID, const unsigned char vSTYLE);
extern void hjYTZButton(const int bID, const unsigned char bSTYLE);
extern void SetSTurnsBDISP_M22(const int bID, const unsigned char bSELECTED);
extern void ShowAllShapeBTN(void);
extern int GetEntireAuto(const int iSER);
extern int GetEntireIntelligent(const int iSER);
extern void wjrUAdj323(const int x, const int y, const int evnt);
extern void wjrDAdj323(const int x, const int y, const int evnt);
extern void wjrLAdj323(const int x, const int y, const int evnt);
extern void wjrRAdj323(const int x, const int y, const int evnt);
extern void DispVAdj_M23(void);
extern void DispHAdj_M23(void);
extern void SyncLapseMark(const unsigned char visible);
extern void DrawWAVbk(void);
extern void DrawRuler(void);
extern void DispGateAddr(void);
extern void DrawGate(void);
extern void DrawZ(void);
extern void SyncVSEL_YTZ(const int iSEL);
extern void RespAllWorkStatus(void);
extern void RespEntireINTEL23(void);
extern void RespAlarmBugle23(void);
extern void RespAddrEnable23(void);
extern void RespVertStatus23(void);
extern void RespHorzStatus23(void);
extern void RespZOOM(void);
extern void SyncCNLSEL23(void);
extern void RespMoveGateL(void);
extern void RespMoveGateR(void);
extern void RespManuSearch23(const int hotX);
extern void RespINTEL23(void);
extern void SetEntireFlags(const int iCNL, const unsigned char iSAT, const int iVAL);

extern void _Query_jzCmdList(void);

extern int REC_sub1com;
/***
 根据选中的色标顺序在对应的单元编辑框中显示汉字
 -vCNL 通道号
 -vPID 标记排列形式按钮编号
***/
void SyncTurnsDISP(const int vCNL, const unsigned char vPID)
{
    int vAID;
    char *szTDISP_M22[][2]={
        {"纵顺","V-FOR"},
        {"纵逆","V-REV"},
        {"横顺","H-FOR"},
        {"横逆","H-REV"},
        {"单标记","SINGLE"}
    };
    if(vPID==1)      { vAID=0;} //___纵顺
    else if(vPID==2) { vAID=1;} //___纵逆
    else if(vPID==3) { vAID=4;} //___单标记
    else if(vPID==4) { vAID=2;} //___横顺
    else if(vPID==5) { vAID=3;} //___横逆
    else //if(vPID<1||vPID>5)2007-2-9 11:27上午
    {   
        if(unit[vCNL].submenu1.unitworksnum.i==1 &&
                 unit[vCNL].submenu1.unitworksnum.j)
        { 
            unit[vCNL].submenu1.bitTurns.turnsoflabsA=SysSet.bitTurns.TurnofLabsA ;
        }
        else if(unit[vCNL].submenu1.unitworksnum.i==2 &&
                     unit[vCNL].submenu1.unitworksnum.j)
        {
            unit[vCNL].submenu1.bitTurns.turnsoflabsB=SysSet.bitTurns.TurnofLabsB;
        } 
        else  return;     
    } 
    Edit(160, 95+45*vCNL, 125, 35, (VarST3000.Language?0x01:0x03), szTDISP_M22[vAID][VarST3000.Language]);
}

/***
 通道参数项选择按钮
 初始化 (使用到全局变量g_SimParaID);
 目前只有针对
***/
unsigned char cNewSEL22=0,cOldSEL22=0;
void SyncSimPSEL22(const unsigned char resetfocus)
{
    int jcnl,jfirst=0;
    char szB[20],szE[20];
    char *szSimPara[][2]={
        {"色组设置","COL SET"},
        {"标准色序","STD ORD"},
        {"纵向报警","V-ALARM"},
        {"波门地址","GATE ADDR"},
        {"波门宽度","GATE WIDTH"}
    };
    if( !(g_SimParaID>=0 && g_SimParaID<=4) )
    {   g_SimParaID=0;}
    Button(120, 80, 120, 45, (VarST3000.Language?0x01:0x03),
        szSimPara[g_SimParaID][VarST3000.Language], 192, 192, 192);
    // 看是否要重新设定光标位置
    if( resetfocus )
    {
        cOldSEL22=cNewSEL22=0;
        for(jcnl=1; jcnl<VarST3000.UnitCounts; jcnl++)
        {
            if( unit[jcnl].submenu1.unitworksnum.i==VarST3000.jobAB)  
            {   Circle(22, 113+45*jcnl, 7, 128, 255, 128);}
            else
            {   Circle(22, 113+45*jcnl, 7, 192, 192, 192);}
        }
    }
    // 对应参数项目的显示
    switch(g_SimParaID)
    {
    case 0: //标记排列(色组设置)
        for(jcnl=1; jcnl<VarST3000.UnitCounts; jcnl++)
        {
            memset(szB, 0, 20);
            sprintf(szB, "%dU", jcnl+1);
            Button(50, 95+45*jcnl, 90, 35, 0x81, szB, 192, 192, 192);
            // 显示标记排列形式
            if( unit[jcnl].submenu1.unitworksnum.i==VarST3000.jobAB &&
                unit[jcnl].submenu1.unitworksnum.j)
            {   SyncTurnsDISP(jcnl, (VarST3000.jobAB==1?unit[jcnl].submenu1.bitTurns.turnsoflabsA:unit[jcnl].submenu1.bitTurns.turnsoflabsB));}
            else
            {   Edit(160, 95+45*jcnl, 125, 35, 0x00, NULL);}
        }
        cNewSEL22=cOldSEL22=0;
        bFlagsINPUT22=0x00;
        break;
    case 1: // 标准色序
        for(jcnl=1; jcnl<VarST3000.UnitCounts; jcnl++)
        {
            memset(szB, 0, 20);
            sprintf(szB, "%dU", jcnl+1);
            if( unit[jcnl].submenu1.unitworksnum.i==VarST3000.jobAB &&
                unit[jcnl].submenu1.unitworksnum.j)
            {
                Button(50, 95+45*jcnl, 90, 35, 0x81, szB, 192, 192, 192);
                if(jfirst==0) { jfirst=jcnl;} // 由于从色标排列切换过来可能没有原始光标
                if(unit[jcnl].submenu1.ColorNum)
                {
                    memset(szE, 0, 20);
                    sprintf(szE, "%02d", unit[jcnl].submenu1.ColorNum);
                    Edit(160, 95+45*jcnl, 125, 35, 0x0f, szE);
                }
                else
                {   Edit(160, 95+45*jcnl, 125, 35, 0x00, NULL);}
            }
            else
            {
                Button(50, 95+45*jcnl, 90, 35, 0x85, szB, 192, 192, 192);
                Edit(160, 95+45*jcnl, 125, 35, 0x80, NULL);
            }
        }
        if(jfirst>0)
        {
            cNewSEL22=cOldSEL22=jfirst;
            memset(szB, 0, 20);
            sprintf(szB, "%dU", cNewSEL22+1);
            Button(50, 95+45*cNewSEL22, 90, 35, 0x91, szB, 192, 192, 192);
            memset(szE, 0, 20);
            sprintf(szE, "%02d", unit[cNewSEL22].submenu1.ColorNum);
            Edit(160, 95+45*cNewSEL22, 125, 35, 0x4f, szE);
            bFlagsINPUT22=0x01; g_Klength=2; g_Kmask=0x03; ClearKBuffer();
        }
        else
        {   cNewSEL22=cOldSEL22=0; bFlagsINPUT22=0x00;}
        break;
    case 2: //纵向报警
        for(jcnl=1; jcnl<VarST3000.UnitCounts; jcnl++)
        {
            memset(szB, 0, 20);
            sprintf(szB, "%dU", jcnl+1);
            if( unit[jcnl].submenu1.unitworksnum.i==VarST3000.jobAB &&
                unit[jcnl].submenu1.unitworksnum.j)
            {
                Button(50, 95+45*jcnl, 90, 35, 0x81, szB, 192, 192, 192);
                if( (resetfocus) && (jfirst==0) )
                {   jfirst=jcnl; cNewSEL22=cOldSEL22=jfirst;}
                memset(szE, 0, 20);
                sprintf(szE, "%4.2f", unit[jcnl].submenu1.v_alarm/100.0);
                Edit(160, 95+45*jcnl, 125, 35, 0x0f, szE);
            }
            else
            {
                Button(50, 95+45*jcnl, 90, 35, 0x85, szB, 192, 192, 192);
                Edit(160, 95+45*jcnl, 125, 35, 0x80, NULL);
            }
        }
        if(cNewSEL22)
        {
            memset(szB, 0, 20);
            sprintf(szB, "%dU", cNewSEL22+1);
            Button(50, 95+45*cNewSEL22, 90, 35, 0x91, szB, 192, 192, 192);
            memset(szE, 0, 20);
            sprintf(szE, "%4.2f", unit[cNewSEL22].submenu1.v_alarm/100.0);
            Edit(160, 95+45*cNewSEL22, 125, 35, 0x4f, szE);
            bFlagsINPUT22=0x01; g_Klength=3; g_Kmask=0x02; ClearKBuffer();
        }
        else
        {   cNewSEL22=cOldSEL22=0; bFlagsINPUT22=0x00;}
        break;
    case 3: //波门地址
        for(jcnl=1; jcnl<VarST3000.UnitCounts; jcnl++)
        {
            memset(szB, 0, 20);
            sprintf(szB, "%dU", jcnl+1);
            if( unit[jcnl].submenu1.unitworksnum.i==VarST3000.jobAB &&
                unit[jcnl].submenu1.unitworksnum.j)
            {
                Button(50, 95+45*jcnl, 90, 35, 0x81, szB, 192, 192, 192);
                if( (resetfocus) && (jfirst==0) )
                {   jfirst=jcnl; cNewSEL22=cOldSEL22=jfirst;}
                memset(szE, 0, 20);
                sprintf(szE, "%5d", unit[jcnl].submenu1.addressofwav);
                Edit(160, 95+45*jcnl, 125, 35, 0x0f, szE);
            }
            else
            {
                Button(50, 95+45*jcnl, 90, 35, 0x85, szB, 192, 192, 192);
                Edit(160, 95+45*jcnl, 125, 35, 0x80, NULL);
            }
        }
        if(cNewSEL22)
        {
            memset(szB, 0, 20);
            sprintf(szB, "%dU", cNewSEL22+1);
            Button(50, 95+45*cNewSEL22, 90, 35, 0x91, szB, 192, 192, 192);
            memset(szE, 0, 20);
            sprintf(szE, "%5d", unit[cNewSEL22].submenu1.addressofwav);
            Edit(160, 95+45*cNewSEL22, 125, 35, 0x4f, szE);
            bFlagsINPUT22=0x01; g_Klength=4; g_Kmask=0x03; ClearKBuffer();
        }
        else
        {   cNewSEL22=cOldSEL22=0; bFlagsINPUT22=0x00;}
        break;
    case 4: //波门宽度
        for(jcnl=1; jcnl<VarST3000.UnitCounts; jcnl++)
        {
            memset(szB, 0, 20);
            sprintf(szB, "%dU", jcnl+1);
            if( unit[jcnl].submenu1.unitworksnum.i==VarST3000.jobAB &&
                unit[jcnl].submenu1.unitworksnum.j)
            {
                Button(50, 95+45*jcnl, 90, 35, 0x81, szB, 192, 192, 192);
                if( (resetfocus) && (jfirst==0) )
                {   jfirst=jcnl; cNewSEL22=cOldSEL22=jfirst;}
                memset(szE, 0, 20);
                sprintf(szE, "%5d", unit[jcnl].submenu2.ValueWidth);
                Edit(160, 95+45*jcnl, 125, 35, 0x0f, szE);
            }
            else
            {
                Button(50, 95+45*jcnl, 90, 35, 0x85, szB, 192, 192, 192);
                Edit(160, 95+45*jcnl, 125, 35, 0x80, NULL);
            }
        }
        if(cNewSEL22)
        {
            memset(szB, 0, 20);
            sprintf(szB, "%dU", cNewSEL22+1);
            Button(50, 95+45*cNewSEL22, 90, 35, 0x91, szB, 192, 192, 192);
            memset(szE, 0, 20);
            sprintf(szE, "%5d", unit[cNewSEL22].submenu2.ValueWidth);
            Edit(160, 95+45*cNewSEL22, 125, 35, 0x4f, szE);
            bFlagsINPUT22=0x01; g_Klength=2; g_Kmask=0x03; ClearKBuffer();
        }
        else
        {   cNewSEL22=cOldSEL22=0; bFlagsINPUT22=0x00;}
        break;
    default:
        ClearKBuffer();
        break;
    }
}

/***
 同步版辊周长显示
***/
void SyncC_Disp22(const int iGetSEL, const unsigned iC)
{
    char szChar[10]={0};
    sprintf(szChar, "%5.1f", iC/10.0);
    Edit(830, 455, 120, 40, (iGetSEL ? 0x4F : 0x0F), szChar);
}

/***
 丢失光标
***/
void SyncCNL_LOS22(void)
{
    char szB[20]={0},szE[20]={0};
    if( (g_SimParaID>0) && (g_SimParaID<5) )
    {   //1.2.3.4
        sprintf(szB, "%dU", cNewSEL22+1);
        Button(50, 95+45*cNewSEL22, 90, 35, 0x81, szB, 192, 192, 192);
        if(g_SimParaID==1)      //___标准色序
        {   sprintf(szE, "%02d", unit[cNewSEL22].submenu1.ColorNum);}
        else if(g_SimParaID==2) //___纵向报警
        {   sprintf(szE, "%4.2f", unit[cNewSEL22].submenu1.v_alarm/100.0);}
        else if(g_SimParaID==3) //___波门地址
        {   sprintf(szE, "%5d", unit[cNewSEL22].submenu1.addressofwav);}
        else if(g_SimParaID==4) //___波门宽度
        {   sprintf(szE, "%5d", unit[cNewSEL22].submenu2.ValueWidth);}
        Edit(160, 95+45*cNewSEL22, 125, 35, 0x0f, szE);
    }
}

/***
 通道参数项选择按钮 初始化 (使用到全局变量g_SimParaID);
***/
void SyncCNL_SEL22(void)
{
    char szB[20],szE[20];
    switch( g_SimParaID )
    {
    case 1: // 标准色序
        if( bFlagsINPUT22&0x10 )
        {   SyncC_Disp22(0, (VarST3000.jobAB==1?SysSet.CofBanA:SysSet.CofBanB));}
        if( cNewSEL22!=cOldSEL22 )
        {   // 恢复原先选择的
            memset(szB, 0, 20);
            sprintf(szB, "%dU", cOldSEL22+1);
            Button(50, 95+45*cOldSEL22, 90, 35, 0x81, szB, 192, 192, 192);
            memset(szE, 0, 20);
            sprintf(szE, "%02d", unit[cOldSEL22].submenu1.ColorNum);
            Edit(160, 95+45*cOldSEL22, 125, 35, 0x0f, szE);
        }
        // 当前选中
        memset(szB, 0, 20);
        sprintf(szB, "%dU", cNewSEL22+1);
        Button(50, 95+45*cNewSEL22, 90, 35, 0x91, szB, 192, 192, 192);
        memset(szE, 0, 20);

⌨️ 快捷键说明

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