📄 3kmenu2.c
字号:
/********************
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 + -