📄 display.c
字号:
StrBuf[4*i+2]=84;
StrBuf[4*i+3]=85;
}
break;
}
break;
case 0x09: switch(i)
{
case 0x00:
case 0x01:
case 0x02:
case 0x03:if(pVar->can_flag[i+3]==0)// COM2 COM3 COM4 COM5
{
StrBuf[4*i+0]=82;
StrBuf[4*i+1]=83;
StrBuf[4*i+2]=84;
StrBuf[4*i+3]=85;
}
break;
}
break;
case 0x0A: switch(i)
{
case 0x00:
case 0x01:
case 0x02:
case 0x03:if(pVar->can_flag[i+4]==0)//COM3 COM4 COM5 COM6
{
StrBuf[4*i+0]=82;
StrBuf[4*i+1]=83;
StrBuf[4*i+2]=84;
StrBuf[4*i+3]=85;
}
break;
}
break;
}
}
OutString(StrBuf,0,ZJAdr,4);
};//-------OPEN
}
void YCMenu(void)// 遥测显示
{
int i;
if(pVar->action==NOUSE)
{
LcdClr();
if(pVar->YCMenuCount>=1)pVar->YCMenuCount=0;
DspMenu(7, pVar->YCMenuCount*0x05,7,3);
DspMenuCur(7,(pVar->YCMenuCount+pVar->YCCursorCount)*0x05+1,7, (pVar->YCCursorCount*10)+2,4, 0x83);
DspMenu(8,0,8,3);//JM8+0,Adr8, Type=3 遥测显示
pVar->action=OPEN;
}
if(pVar->action==OPEN)
{//-----OPEN
HITESC(MAIN_MENU);
if(pVar->KeyID==PLUSKEY)// "+"=PageDown
{
pVar->KeyID=NULLKEY;
pVar->action=NOUSE;
pVar->YCMenuCount=3;
};
if(pVar->KeyID==MINUSKEY)// "-"=PageUPKEY
{
pVar->KeyID=NULLKEY;
pVar->action=NOUSE;
pVar->YCMenuCount=0;
}
if(pVar->KeyID==DOWNKEY)// " V " 向下键
{
pVar->KeyID=NULLKEY;
pVar->action=NOUSE;
if(pVar->YCCursorCount>=3)
{
pVar->YCMenuCount=pVar->YCMenuCount+1;
pVar->YCCursorCount=3;
}else pVar->YCCursorCount++;
if(pVar->YCMenuCount>0x03) pVar->YCMenuCount=0x03;
}
if(pVar->KeyID==UPKEY)// " ^ " 向上键
{
pVar->KeyID=NULLKEY;
pVar->action=NOUSE;
if(pVar->YCCursorCount==0)
{
if(pVar->YCMenuCount>0x00) pVar->YCMenuCount=pVar->YCMenuCount-1;
pVar->YCCursorCount=0;
}else pVar->YCCursorCount--;
};
if(pVar->KeyID==OKKEY) //确认键
{
pVar->KeyID=NULLKEY;
i=pVar->YCCursorCount+pVar->YCMenuCount;
switch(i)
{
case 0x00: pVar->MenuMode=DCPLAY_MENU; // 直流显示
pVar->KeyID=NULLKEY;
pVar->action=NOUSE;
break;
case 0x01: pVar->MenuMode=JCPLAY_MENU; // 交流显示
pVar->KeyID=NULLKEY;
pVar->action=NOUSE;
break;
case 0x02: pVar->MenuMode=LINEPLAY_MENU; // 线路显示
pVar->KeyID=NULLKEY;
pVar->action=NOUSE;
break;
case 0x03: pVar->MenuMode=TEMPERPLAY_MENU; // 温度显示
pVar->KeyID=NULLKEY;
pVar->action=NOUSE;
break;
default: break;
};
};
};//-------OPEN
}
void DCMenu(void) // 直流显示
{
unsigned int i,j,k,n;
int it;
if(pVar->action==NOUSE)
{
LcdClr();
DspMenu(9,0,9,2);
Line(0,0, 127,0, 1);
Line(0,15,127,15,1);
Line(0,60,127,60,1);
Line(0,0,0,60,1);
Line(127,0,127,60,1);
Line(26,0,26,60,1);
pVar->action=OPEN;
if(pVar->dcnum<5)
{
pVar->DCCount=0;
}else
{
if(pVar->DCCount+5>=pVar->dcnum) pVar->DCCount=pVar->dcnum-5;
}
k=pVar->DCCount;
for(i=0;i<5;i++)
{
j=3*i;
n=k+1;
DatBuf[j+2]=n%10;n=n/10;
DatBuf[j+1]=n%10;n=n/10;
DatBuf[j+0]=n%10;
k++;
}
OutString(DatBuf,0,NumAdr,1);
};
if(pVar->action==OPEN)
{ //-----OPEN
HITESC(YC_MENU);
if(pVar->KeyID==PLUSKEY)// "+"=PageDown
{
pVar->KeyID=NULLKEY;
pVar->action=NOUSE;
pVar->DCCount=pVar->DCCount+5;
if(pVar->DCCount+5>=pVar->dcnum) pVar->DCCount=pVar->dcnum-5;
};
if(pVar->KeyID==MINUSKEY)// "-"=PageUPKEY
{
pVar->KeyID=NULLKEY;
pVar->action=NOUSE;
if(pVar->DCCount>4) pVar->DCCount=pVar->DCCount-5;
else pVar->DCCount=0;
}
if(pVar->KeyID==DOWNKEY)// " V " 向下键
{
pVar->KeyID=NULLKEY;
pVar->action=NOUSE;
pVar->DCCount=pVar->DCCount+1;
if(pVar->DCCount+4>=pVar->dcnum) pVar->DCCount=pVar->dcnum-4;
}
if(pVar->KeyID==UPKEY)// " ^ " 向上键
{
pVar->KeyID=NULLKEY;
pVar->action=NOUSE;
if(pVar->DCCount>0) pVar->DCCount=pVar->DCCount-1;
};
for(i=0;i<5;i++)
{
it=ADCLIB[pVar->DCCount+i].ZVALUE[0];
if(it>=0) StrBuf[i*6+0]=169;
else {StrBuf[i*6+0]=66;it=-it;};
n=it;
StrBuf[i*6+5]=31; //V
if(pVar->dcnum<5)
{
StrBuf[i*6+4]=66;
StrBuf[i*6+3]=66;
StrBuf[i*6+2]=66;
StrBuf[i*6+1]=66;
}else
{
StrBuf[i*6+4]=n%10; n=n/10;
StrBuf[i*6+3]=n%10; n=n/10;
StrBuf[i*6+2]=n%10; n=n/10;
StrBuf[i*6+1]=(n%10)+150;
}
}
OutString(StrBuf,0,DatAdr0,1);
};//open
}
void JCMenu(void) // 交流显示
{
unsigned int i,j,k,n;
int it;
long l;
if(pVar->action==NOUSE)
{
LcdClr();
DspMenu(10,0,10,2);
Line(0,0, 127,0, 1);
Line(0,15,127,15,1);
Line(0,60,127,60,1);
Line(0,0,0,60,1);
Line(53,0,53,60,1);
Line(127,0,127,60,1);
Line(26,0,26,60,1);
pVar->action=OPEN;
if(pVar->jcnum<5)
{
pVar->JCCount=0;
}else
{
if(pVar->JCCount+5>=pVar->jcnum) pVar->JCCount=pVar->jcnum-5;
}
k=pVar->JCCount;
for(i=0;i<5;i++)
{
j=5*i;
n=k+1;
DatBuf[j+2]=n%10;n=n/10;
DatBuf[j+1]=n%10;n=n/10;
DatBuf[j+0]=n%10;
if(ACType[k]!=0)
{//CT
DatBuf[j+3]=12;//C
DatBuf[j+4]=29;//T
}else
{//PT
DatBuf[j+3]=25;//P
DatBuf[j+4]=29;//T
}
k++;
}
OutString(DatBuf,0,NumJCAdr,1);
};
if(pVar->action==OPEN)
{ //-----OPEN
HITESC(YC_MENU);
if(pVar->KeyID==PLUSKEY)// "+"=PageDown
{
pVar->KeyID=NULLKEY;
pVar->action=NOUSE;
pVar->JCCount=pVar->JCCount+5;
if(pVar->JCCount+5>=pVar->jcnum) pVar->JCCount=pVar->jcnum-5;
};
if(pVar->KeyID==MINUSKEY)// "-"=PageUPKEY
{
pVar->KeyID=NULLKEY;
pVar->action=NOUSE;
if(pVar->JCCount>4) pVar->JCCount=pVar->JCCount-5;
else pVar->JCCount=0;
}
if(pVar->KeyID==DOWNKEY)// " V " 向下键
{
pVar->KeyID=NULLKEY;
pVar->action=NOUSE;
pVar->JCCount=pVar->JCCount+1;
if(pVar->JCCount+5>=pVar->jcnum) pVar->JCCount=pVar->jcnum-5;
}
if(pVar->KeyID==UPKEY)// " ^ " 向上键
{
pVar->KeyID=NULLKEY;
pVar->action=NOUSE;
if(pVar->JCCount>0) pVar->JCCount=pVar->JCCount-1;
};
for(i=0;i<5;i++)
{
l=(long)ADCLIB[pVar->JCCount+i].AVALUE;
if(l>=0) StrBuf[i*6+0]=169;
else {StrBuf[i*6+0]=66;l=-l;};
if(ACType[pVar->JCCount+i]!=0)
{//CT
l=l*5;
l=l/4;
if(pVar->jcnum<5)
{
StrBuf[i*6+5]=66;
StrBuf[i*6+4]=66;
StrBuf[i*6+3]=66;
StrBuf[i*6+2]=66;
StrBuf[i*6+1]=66;
}else
{
StrBuf[i*6+5]=10; //A
StrBuf[i*6+4]=l%10; l=l/10;
StrBuf[i*6+3]=l%10; l=l/10;
StrBuf[i*6+2]=l%10; l=l/10;
StrBuf[i*6+1]=l%10;
}
switch(ACValueDot[pVar->JCCount+i])
{
case 0x00:StrBuf[i*6+4]=StrBuf[i*6+4];
break;
case 0x01:StrBuf[i*6+3]=StrBuf[i*6+3]+150;
break;
case 0x02:StrBuf[i*6+2]=StrBuf[i*6+2]+150;
break;
case 0x03:StrBuf[i*6+1]=StrBuf[i*6+1]+150;
break;
default: break;
};
}else
{//PT
l=l*5;
l=l/20;
if(pVar->jcnum<5)
{
StrBuf[i*6+5]=66;
StrBuf[i*6+4]=66;
StrBuf[i*6+3]=66;
StrBuf[i*6+2]=66;
StrBuf[i*6+1]=66;
}else
{
StrBuf[i*6+5]=31;//V
StrBuf[i*6+4]=l%10; l=l/10;
StrBuf[i*6+3]=l%10; l=l/10;
StrBuf[i*6+2]=l%10; l=l/10;
StrBuf[i*6+1]=l%10;
}
switch(ACValueDot[pVar->JCCount+i])
{
case 0x00:StrBuf[i*6+5]=StrBuf[i*6+5];
break;
case 0x01:StrBuf[i*6+4]=StrBuf[i*6+4]+150;
break;
case 0x02:StrBuf[i*6+3]=StrBuf[i*6+3]+150;
break;
case 0x03:StrBuf[i*6+2]=StrBuf[i*6+2]+150;
break;
case 0x04:StrBuf[i*6+1]=StrBuf[i*6+1]+150;
break;
default: break;
};
}
}
OutString(StrBuf,0,DatAdr1,1);
};//open
}
void MAXLN(unsigned int num)
{
unsigned int i,j,k,m,n,t,nn,s;
j=0;
nn=num;
s=0;
for(i=0;i<pVar->lnsum;i++)
{
m=LineSetdata[i][0];
n=LineSetdata[i][1];
if((m!=0)||(n!=0))
{
if(LINETYPE[i]!=0)
{//U=U+I
for(t=0;t<3;t++)
{
if((j>=nn)&&(j<(nn+5)))
{
switch(t)
{
case 0x00:NumBuf[3*s+0]=30; // U
NumBuf[3*s+1]=1; // 1
NumBuf[3*s+2]=68; //
ChBuf[s]=i;
DatBuf[s]=0;
break;
case 0x01:NumBuf[3*s+0]=30; //U
NumBuf[3*s+1]=2; //2
NumBuf[3*s+2]=68; //
ChBuf[s]=i;
DatBuf[s]=1;
break;
case 0x02:NumBuf[3*s+0]=30; //U
NumBuf[3*s+1]=3; // 3
NumBuf[3*s+2]=68; //
ChBuf[s]=i;
DatBuf[s]=2;
break;
}
s++;
}
j++;
}
}else
{//P=U*I
for(t=0;t<7;t++)
{
if((j>=nn)&&(j<(nn+5)))
{
switch(t)
{
case 0x00:NumBuf[3*s+0]=30; //U
NumBuf[3*s+1]=1; //1
NumBuf[3*s+2]=68; //
ChBuf[s]=i;
DatBuf[s]=0;
break;
case 0x01:NumBuf[3*s+0]=30; //U
NumBuf[3*s+1]=2; //2
NumBuf[3*s+2]=68; //
ChBuf[s]=i;
DatBuf[s]=1;
break;
case 0x02:NumBuf[3*s+0]=18; //I
NumBuf[3*s+1]=1; //1
NumBuf[3*s+2]=68; //
ChBuf[s]=i;
DatBuf[s]=3;
break;
case 0x03:NumBuf[3*s+0]=18; //I
NumBuf[3*s+1]=2; //2
NumBuf[3*s+2]=68; //
ChBuf[s]=i;
DatBuf[s]=4;
break;
case 0x04:NumBuf[3*s+0]=175; //P
NumBuf[3*s+1]=25; //
NumBuf[3*s+2]=68; //
ChBuf[s]=i;
DatBuf[s]=9;
break;
case 0x05:NumBuf[3*s+0]=175; //Q
NumBuf[3*s+1]=26; //
NumBuf[3*s+2]=68; //
ChBuf[s]=i;
DatBuf[s]=13;
break;
case 0x06:NumBuf[3*s+0]=12; //C
NumBuf[3*s+1]=24; //O
NumBuf[3*s+2]=28; //S
ChBuf[s]=i;
DatBuf[s]=14;
break;
}
s++;
}
j++;
}
}
}else { LNLIB[i].SampleType=0; break;};
}
pVar->maxlnnum=j;
}
void LINEMenu(void) // 线路显示
{
unsigned int i,j,k,n,m,t,s,DBuf[20];
int it,jj;
long l;
if(pVar->action==NOUSE)
{
LcdClr();
DspMenu(11,0,11,2);
Line(0,0, 127,0, 1);
Line(0,15,127,15,1);
Line(0,60,127,60,1);
Line(127,0,127,60,1);
Line(0,0,0,60,1);
Line(26,0,26,60,1);
Line(49,0,49,60,1);
Line(75,0,75,60,1);
pVar->action=OPEN;
MAXLN(pVar->LNCount);
if(pVar->maxlnnum<5)
{//-----------------------------------------------------------------------
for(i=0;i<5;i++)
{
s=7*i;
DatBuf[s+0]=66;
DatBuf[s+1]=66;
DatBuf[s+2]=66;
DatBuf[s+3]=66;
DatBuf[s+4]=66;
DatBuf[s+5]=66;
DatBuf[s+6]=66;
}
pVar->LNCount=0;
OutString(DatBuf,0,NumLNAdr,1);
}else
{//----------------------------------------------------------------------
if(pVar->LNCount+5>=pVar->maxlnnum) pVar->LNCount=pVar->maxlnnum-5; // 12 条 线 路
OutString(NumBuf,0,NameAdr, 1);
for(i=0;i<5;i++)
{
n=pVar->LNCount+1+i;
StrBuf[i*3+2]=n%10; n=n/10;
StrBuf[i*3+1]=n%10; n=n/10;
StrBuf[i*3+0]=n%10;
}
OutString(StrBuf,0,NumLNAdr, 1);
for(i=0;i<5;i++)
{
n=ChBuf[i] +1;
StrBuf[i*2+1]=n%10; n=n/10;
StrBuf[i*2+0]=n%10;
}
OutString(StrBuf,0,NumLNNAdr, 1);
}//----------------------------------------------------------------------
};
if(pVar->action==OPEN)
{ //-----OPEN
HITESC(YC_MENU);
if(pVar->KeyID==PLUSKEY)// PageDown
{
pVar->KeyID=NULLKEY;
pVar->action=NOUSE;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -