📄 display.c
字号:
pVar->LNCount=pVar->LNCount+5;
if(pVar->LNCount+5>=pVar->maxlnnum) pVar->LNCount=pVar->maxlnnum-5;
};
if(pVar->KeyID==MINUSKEY)// PageUPKEY
{
pVar->KeyID=NULLKEY;
pVar->action=NOUSE;
if(pVar->LNCount>4) pVar->LNCount=pVar->LNCount-5;
else pVar->LNCount=0;
}
if(pVar->KeyID==DOWNKEY)// " V " 向下键
{
pVar->KeyID=NULLKEY;
pVar->action=NOUSE;
pVar->LNCount=pVar->LNCount+1;
if(pVar->LNCount+5>=pVar->maxlnnum) pVar->LNCount=pVar->maxlnnum-5;
}
if(pVar->KeyID==UPKEY)// " ^ " 向上键
{
pVar->KeyID=NULLKEY;
pVar->action=NOUSE;
if(pVar->LNCount>0) pVar->LNCount=pVar->LNCount-1;
};
if(pVar->maxlnnum<5)
{
for(i=0;i<5;i++)
{
StrBuf[i*5+4]=66;
StrBuf[i*5+3]=66;
StrBuf[i*5+2]=66;
StrBuf[i*5+1]=66;
StrBuf[i*5+0]=174;
}
OutString(StrBuf,0,DatLNAdr,1);
}else
{
for(i=0;i<5;i++)
{
switch(DatBuf[i])
{
case 0://Ua Uab
case 1://Ub
case 2://Uc Ucb
l=(long)LNLIB[ChBuf[i]].Value[DatBuf[i]];
l=l*5;
l=l/20;
StrBuf[5+i*6]=31;//V
StrBuf[4+i*6]=l%10; l=l/10;
StrBuf[3+i*6]=(l%10)+150; l=l/10;
StrBuf[2+i*6]=l%10; l=l/10;
StrBuf[1+i*6]=l%10;
StrBuf[0+i*6]=68;
break;
case 3://Ia
case 4://Ib
case 5://Ic
l=(long)LNLIB[ChBuf[i]].Value[DatBuf[i]];
l=l*5;
l=l/4;
StrBuf[5+i*6]=10;//A
StrBuf[4+i*6]=l%10; l=l/10;
StrBuf[3+i*6]=l%10; l=l/10;
StrBuf[2+i*6]=l%10; l=l/10;
StrBuf[1+i*6]=(l%10)+150; l=l/10;
StrBuf[0+i*6]=68;
break;
case 9://P
case 13://Q
l=(long)LNLIB[ChBuf[i]].Value[DatBuf[i]];
if(l>=0)
{
StrBuf[0+i*6]=68;//
}else
{
StrBuf[0+i*6]=66;// -
l=-l;
}
l=l*5;
l=l/4;
StrBuf[5+i*6]=32;//W
StrBuf[4+i*6]=l%10; l=l/10;
StrBuf[3+i*6]=(l%10)+150; l=l/10;
StrBuf[2+i*6]=l%10; l=l/10;
StrBuf[1+i*6]=l%10;
break;
case 14://COS
l=(long)LNLIB[ChBuf[i]].Value[DatBuf[i]];
if(l>=0)
{
StrBuf[0+i*6]=68;//
}else
{
StrBuf[0+i*6]=66;// -
l=-l;
}
StrBuf[5+i*6]=68;//
StrBuf[4+i*6]=l%10; l=l/10;
StrBuf[3+i*6]=l%10; l=l/10;
StrBuf[2+i*6]=l%10; l=l/10;
StrBuf[1+i*6]=(l%10)+150;
break;
}
}//for
OutString(StrBuf,0,DatLNAdr,1);
}
};//open
}
void TEMPERMenu(void) // 温度显示
{
int i;
if(pVar->action==NOUSE)
{
LcdClr();
DspMenu(12,0,12,3);
pVar->action=OPEN;
};
if(pVar->action==OPEN)
{ //-----OPEN
HITESC(YC_MENU);
i=pVar->TemperValue;
if(i>=0)
{
StrBuf[0]=39; //空格
}else
{
i=-i;
StrBuf[0]=44; //-
}
StrBuf[5]=i%10; i=i/10;
StrBuf[3]=i%10; i=i/10;
StrBuf[2]=i%10; i=i/10;
StrBuf[1]=i%10;
StrBuf[4]=45; //.
StrBuf[6]=46;
StrBuf[7]=12; //C
OutString(StrBuf,0,TemperAdr,4);
};//open
}
int YXSTS(unsigned int yxcount)
{
unsigned int x,y;
int i;
unsigned char ch;
x=(yxcount)/8;
y=(yxcount)%8;
ch=YXBUF[x];
ch=ch>>y;
ch=ch%2;
if(ch==0) i=0;
else i=0xff;
return i;
}
void YXMenu(void) // 遥信显示
{
int i,n,s,j;
unsigned int z,x,y,k;
if(pVar->action==NOUSE)
{
LcdClr();
DspMenu(13,0,13,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(32, 0, 32, 60, 1);
Line(64, 0, 64, 60, 1);
Line(96, 0, 96, 60, 1);
pVar->action=OPEN;
if(pVar->yxsum>0)
{
if(pVar->YXCount*10>=pVar->yxsum) pVar->YXCount=(pVar->yxsum-10)/10;
}else
{
pVar->YXCount=0;
}
for(i=0;i<10;i++)
{
s=3*i;
n=pVar->YXCount*10+i+1;
DatBuf[s+2]=n%10; n=n/10;
DatBuf[s+1]=n%10; n=n/10;
DatBuf[s+0]=n%10;
}
OutString(DatBuf,0,YXNumAdr,1);
}
if(pVar->action==OPEN)
{ //-----OPEN
HITESC(MAIN_MENU);
if(pVar->KeyID==DOWNKEY)// " V " 向下键
{
pVar->KeyID=NULLKEY;
pVar->action=NOUSE;
pVar->YXCount=pVar->YXCount+1;
if(pVar->yxsum>0)
{
if(pVar->YXCount*10>=pVar->yxsum) pVar->YXCount=(pVar->yxsum-10)/10;
}else
{
pVar->YXCount=0;
}
}
if(pVar->KeyID==UPKEY)// " ^ " 向上键
{
pVar->KeyID=NULLKEY;
pVar->action=NOUSE;
if(pVar->YXCount>0) pVar->YXCount=pVar->YXCount-1;
};
z=pVar->YXCount*10;
for(i=0;i<10;i++)
{//--------for--------
j=YXSTS(z);
if(j==0) StrBuf[i]=15;
else StrBuf[i]=17;
if(z+1>pVar->yxsum) StrBuf[i]=66;
z=z+1;
};//--------------end--of----for------------
OutString(StrBuf,0,YXDatAdr,1);
}; //open
}
void YKDraw(void)
{
Line(0, 0, 127, 0, 1);
Line(0, 15, 127, 15, 1);
Line(0, 31, 127, 31, 1);
Line(0, 63, 127, 63, 1);
Line(127, 0, 127, 63, 1);
Line(0, 0, 0, 63, 1);
Line(32, 0, 32, 31, 1);
Line(64, 0, 64, 31, 1);
Line(96, 0, 96, 31, 1);
}
void YKMOVE(unsigned int fullfg)
{
unsigned int TYPE,TT;
if(fullfg!=0) { TYPE=0x85; TT=0X82;}
else { TYPE=0x02; TT=0X02;}
switch(pVar->YKCursor)
{
case 0x00: DspMenu(25,0,25,TYPE); //遥控选择
break;
case 0x01: DspMenu(26,0,26,TYPE); //遥控取消
break;
case 0x02: DspMenu(27,0,27,TYPE); //遥控执行
break;
case 0x03: DspMenu(28,0,28,TT); //遥控设置
break;
default: pVar->YKCursor=0;
DspMenu(24,0,24,TYPE); //闭锁
break;
}
}
void YKMenu(void) // 遥控操作
{
int i,n,s,j;
unsigned int z,x,y,k;
unsigned char ch;
if(pVar->Letter_Flag!=0)
{//接收到1个邮件
pVar->Letter_Flag=0;
if(pVar->Letter[5]==0xE1)
{
if((pVar->Letter[6]==0xCC)||(pVar->Letter[6]==0x33))
{
DspMenu(21,0,21,2);//正确
pVar->ykrtn=1;
}else
{
DspMenu(22,0,22,2); //错误
pVar->ykrtn=2;
}
}else DspMenu(23,0,23,2); //空格
}
if(pVar->action==NOUSE)
{
LcdClr();
DspMenu(14,0,14,2);
pVar->action=OPEN;
if(pVar->maxyknum!=0)
{
if(pVar->YKCount+1>pVar->maxyknum) pVar->YKCount=pVar->maxyknum-1;
pVar->yksz=0;
}else pVar->yksz=0xff;
n=pVar->YKCount+1;
DatBuf[2]=n%10; n=n/10;
DatBuf[1]=n%10; n=n/10;
DatBuf[0]=n%10;
OutString(DatBuf,0,YKNumAdr,4);
if(pVar->ykcmd==0) DspMenu(15,0,15,2); //合闸
else DspMenu(16,0,16,2); //跳闸
if(YKYXType[pVar->YXCount]==0xAA)
{
if(YXSTS(pVar->YXCount)==0) DspMenu(18,0,18,2); //合位
else DspMenu(19,0,19,2); //跳位
}else DspMenu(20,0,20,2);//空格
if(pVar->ykbs==0)
{
DspMenu(23,0,23,2); //空格
}
YKMOVE(1);
YKDraw();
}
if(pVar->action==OPEN)
{ //-----OPEN
HITESC(MAIN_MENU);
if(pVar->KeyID==DOWNKEY)// " V " 向下键
{
pVar->KeyID=NULLKEY;
pVar->action=NOUSE;
pVar->YKCursor=pVar->YKCursor+2;
if(pVar->YKCursor>3) pVar->YKCursor=0;
}
if(pVar->KeyID==UPKEY)// " ^ " 向上键
{
pVar->KeyID=NULLKEY;
pVar->action=NOUSE;
if(pVar->YKCursor>=2) pVar->YKCursor=pVar->YKCursor-2;
else{
if(pVar->ykbs==0)
{
if(pVar->YKCursor==0)
{ // 修改状态
YKMOVE(0);
pVar->action=FLASH;
pVar->NewCursorOffset=0;
pVar->OldCursorOffset=0;
CursorGotoXy(DatBuf,YKNumAdr,4);
Line(0, 31, 127, 31, 1);
}
}
}
};
if(pVar->KeyID==RIGHTKEY)
{
pVar->KeyID=NULLKEY;
pVar->action=NOUSE;
pVar->YKCursor=pVar->YKCursor+1;
if(pVar->YKCursor>3) pVar->YKCursor=0;
};
if(pVar->KeyID==PLUSKEY)
{
pVar->KeyID=NULLKEY;
pVar->action=NOUSE;
if(pVar->ykbs==0)
{
if(pVar->YKCursor==0)
{
if(pVar->ykcmd==0) pVar->ykcmd=0xff;
else pVar->ykcmd=0x00;
}
}
};
if(pVar->KeyID==LEFTKEY)
{
pVar->KeyID=NULLKEY;
pVar->action=NOUSE;
if(pVar->YKCursor>0) pVar->YKCursor=pVar->YKCursor-1;
};
if(pVar->KeyID==OKKEY)
{
pVar->KeyID=NULLKEY;
switch(pVar->YKCursor)
{
case 0x00: if(pVar->ykbs==0)//遥控选择
{
pVar->ykdelay=0;
pVar->ykbs=0xff;
pVar->YKFlash=0xff;
pVar->YKFlashTime=0;
pVar->YKMTrnLetter[0]=0x08;
pVar->YKMTrnLetter[1]=0x00;
pVar->YKMTrnLetter[2]=0x00;
pVar->YKMTrnLetter[3]=YkTaskNo;
pVar->YKMTrnLetter[4]=DisplayTaskNo;
pVar->YKMTrnLetter[5]=0xE0;
if(pVar->ykcmd==0) pVar->YKMTrnLetter[6]=0xCC;
else pVar->YKMTrnLetter[6]=0x33;
pVar->YKMTrnLetter[7]=pVar->YKCount;
pVar->YKMRecLetter[5]=0;
pVar->ykrtn=0;
TWrite(pVar->YKMTrnLetter);
yktest[0]++;
}
break;
case 0x01: pVar->ykbs=0; //遥控取消
pVar->ykdelay=0;
pVar->YKFlash=0;
pVar->YKFlashTime=0;
if(pVar->ykcmd==0) DspMenu(15,0,15,2);
else DspMenu(16,0,16,2);
Line(0, 31, 127, 31, 1);
pVar->YKMTrnLetter[0]=0x08;
pVar->YKMTrnLetter[1]=0x00;
pVar->YKMTrnLetter[2]=0x00;
pVar->YKMTrnLetter[3]=YkTaskNo;
pVar->YKMTrnLetter[4]=DisplayTaskNo;
pVar->YKMTrnLetter[5]=0xE3;
pVar->YKMTrnLetter[6]=0x55;
pVar->YKMTrnLetter[7]=pVar->YKCount;
pVar->YKMRecLetter[5]=0;
pVar->ykrtn=0;
TWrite(pVar->YKMTrnLetter);
break;
case 0x02: //遥控执行
if(pVar->ykrtn==1)
{
pVar->ykbs=0;
pVar->ykdelay=0;
pVar->YKFlash=0;
pVar->YKFlashTime=0;
pVar->YKMTrnLetter[0]=0x08;
pVar->YKMTrnLetter[1]=0x00;
pVar->YKMTrnLetter[2]=0x00;
pVar->YKMTrnLetter[3]=YkTaskNo;
pVar->YKMTrnLetter[4]=DisplayTaskNo;
pVar->YKMTrnLetter[5]=0xE2;
pVar->YKMTrnLetter[6]=0xAA;
pVar->YKMTrnLetter[7]=pVar->YKCount;
pVar->YKMRecLetter[5]=0;
pVar->ykrtn=0;
TWrite(pVar->YKMTrnLetter);
}
break;
case 0x03: //遥控设置
break;
default:
break;
}
}
if(pVar->ykbs!=0)
{
if(pVar->YKFlash!=0)
{ //遥控等待
pVar->YKFlashTime++;
if(pVar->YKFlashTime==4)
{
if(pVar->ykcmd==0) DspMenu(15,0,15,2); //合闸
else DspMenu(16,0,16,2); //跳闸
Line(0, 31, 127, 31, 1);
}
if(pVar->YKFlashTime>=8)
{
DspMenu(17,0,17,2); //空格
Line(0, 31, 127, 31, 1);
pVar->YKFlashTime=0;
}
}else
{
if(pVar->ykcmd==0) DspMenu(15,0,15,2); //合闸
else DspMenu(16,0,16,2); //跳闸
Line(0, 31, 127, 31, 1);
}
}else
{
pVar->YKFlash=0;
}
}; //open
if(pVar->action==FLASH)
{//------------------FLASH-----------------------
FlashESC();
if(pVar->KeyID==RIGHTKEY)
{
pVar->KeyID=NULLKEY;
pVar->NewCursorOffset++;
if(pVar->NewCursorOffset>2)pVar->NewCursorOffset=2;
CursorGotoXy(DatBuf,YKNumAdr,4);
Line(0, 31, 127, 31, 1);
};
if(pVar->KeyID==LEFTKEY)
{
pVar->KeyID=NULLKEY;
if(pVar->NewCursorOffset>0)pVar->NewCursorOffset--;
CursorGotoXy(DatBuf,YKNumAdr,4);
Line(0, 31, 127, 31, 1);
};
if(pVar->KeyID==MINUSKEY)// "-"=PageUPKEY
{
pVar->KeyID=NULLKEY;
if(DatBuf[pVar->NewCursorOffset]!=0) DatBuf[pVar->NewCursorOffset]=DatBuf[pVar->NewCursorOffset]-1;
else DatBuf[pVar->NewCursorOffset]=0x09;
CursorGotoXy(DatBuf,YKNumAdr,4);
Line(0, 31, 127, 31, 1);
};
if(pVar->KeyID==PLUSKEY)// "+"=PageDown
{
pVar->KeyID=NULLKEY;
DatBuf[pVar->NewCursorOffset]++;
if(DatBuf[pVar->NewCursorOffset]>9)DatBuf[pVar->NewCursorOffset]=0;
CursorGotoXy(DatBuf,YKNumAdr,4);
Line(0, 31, 127, 31, 1);
};
if(pVar->KeyID==DOWNKEY)
{
pVar->KeyID=NULLKEY;
pVar->action=NOUSE;
pVar->YKCursor=0;
pVar->YKCount=DatBuf[0]*100+DatBuf[1]*10+DatBuf[2];
if(pVar->YKCount!=0) pVar->YKCount--;
};
}
}
void YMMenu(void) // 遥脉显示
{
int i;
if(pVar->action==NOUSE)
{
LcdClr();
if(pVar->YMMenuCount>=1) pVar->YMMenuCount=0;
if(pVar->YMCursorCount>1)pVar->YMCursorCount=0;
DspMenu(29, pVar->YMMenuCount*0x05,29,3);
DspMenuCur(29,(pVar->YMMenuCount+pVar->YMCursorCount)*0x05+1,29, (pVar->YMCursorCount*10)+2,4, 0x83);
DspMenu(30,0,30,3);//JM30+0,Adr30, Type=3 遥脉显示
pVar->action=OPEN;
}
if(pVar->action==OPEN)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -