📄 setplay.c
字号:
//
// File name =DISPLAY.CPP LCD显示器操作文件
// 设计 何风涛
//#include"class.h"
#include"classext.h"
//线路系数
const unsigned char ccc[8]=
{
0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80
};
void SDSETMenu(void) //系统配置
{
if(pVar->action==NOUSE)
{
LcdClr();
DspMenu(34,0,34,3);//JM34+0,Adr34, Type=3 系统配置
DspMenu(35,pVar->ScfgMenuCount*0x05,35,3);
DspMenuCur(35,(pVar->ScfgMenuCount+pVar->ScfgCursorCount)*0x05+1,35,(pVar->ScfgCursorCount*10)+2,4, 0x83);
pVar->action=OPEN;
}
if(pVar->action==OPEN)
{//-----OPEN
HITESC(MAIN_MENU);
if(pVar->KeyID==PLUSKEY)// "+"=PageDown
{
pVar->KeyID=NULLKEY;
pVar->action=NOUSE;
pVar->ScfgMenuCount=pVar->ScfgMenuCount+4;
if(pVar->ScfgMenuCount>0x05) pVar->ScfgMenuCount=0x05;
};
if(pVar->KeyID==MINUSKEY)// "-"=PageUPKEY
{
pVar->KeyID=NULLKEY;
pVar->action=NOUSE;
if(pVar->ScfgMenuCount>0x03) pVar->ScfgMenuCount=pVar->ScfgMenuCount-4;
else pVar->ScfgMenuCount=0;
};
if(pVar->KeyID==DOWNKEY)// " V " 向下键
{
pVar->KeyID=NULLKEY;
pVar->action=NOUSE;
if(pVar->ScfgCursorCount>=3)
{
pVar->ScfgMenuCount=pVar->ScfgMenuCount+1;
pVar->ScfgCursorCount=3;
}else pVar->ScfgCursorCount++;
if(pVar->ScfgMenuCount>0x05) pVar->ScfgMenuCount=0x05;
};
if(pVar->KeyID==UPKEY)// " ^ " 向上键
{
pVar->KeyID=NULLKEY;
pVar->action=NOUSE;
if(pVar->ScfgCursorCount==0)
{
if(pVar->ScfgMenuCount>0x00) pVar->ScfgMenuCount=pVar->ScfgMenuCount-1;
pVar->ScfgCursorCount=0;
}else pVar->ScfgCursorCount--;
};
if(pVar->KeyID==OKKEY) //确认键
{
switch(pVar->ScfgMenuCount+pVar->ScfgCursorCount)
{
case 0x00: pVar->MenuMode=SSET_MENU; // 系统设置
break;
case 0x01: pVar->MenuMode=MODESET_MENU; // 模式设置
break;
case 0x02: pVar->MenuMode=LINESET_MENU; // 线路配置
break;
case 0x03: pVar->MenuMode=JCSET_MENU; // 交流系数设置
break;
case 0x04: pVar->MenuMode=DCSET_MENU; // 直流系数设置
break;
case 0x05: pVar->MenuMode=YCSET_MENU; // 线路系数
break;
case 0x06: pVar->MenuMode=KRDSET_MENU; // KR配置
break;
case 0x07: pVar->MenuMode=COMSET_MENU; // 通信设置
break;
case 0x08: pVar->MenuMode=DWSET_MENU; // 档位设置
break;
case 0x09: pVar->MenuMode=YMSET_MENU; // 遥脉设置
break;
case 0x0A: pVar->MenuMode=YKDSET_MENU; // 遥控配置
break;
case 0x0B: pVar->MenuMode=YKSET_MENU; // 遥控设置
break;
case 0x0C: pVar->MenuMode=BHCOM_MENU; // 保护配置
break;
case 0x0D: pVar->MenuMode=BHSET_MENU; // 保护设置
break;
default: break;
};
pVar->KeyID=NULLKEY;
pVar->action=NOUSE;
};
};//-------OPEN
}
void SSETMenu(void) //系统设置
{
int i,n;
unsigned ui;
if(pVar->action==NOUSE)
{
LcdClr();
DspMenu(66,0,66,3);
pVar->action=OPEN;
ui=yxnum;//遥信板个数
if(ui>6) ui=0;
StrBuf[1]=ui%10; ui=ui/10;
StrBuf[0]=ui%10;
ui=ymnum;//遥脉板个数
if(ui>12) ui=0;
StrBuf[3]=ui%10; ui=ui/10;
StrBuf[2]=ui%10;
ui=kcnum;//开出板个数
if(ui>10) ui=0;
StrBuf[5]=ui%10; ui=ui/10;
StrBuf[4]=ui%10;
ui=mrnum;//模入板个数
if(ui>7) ui=0;
StrBuf[7]=ui%10; ui=ui/10;
StrBuf[6]=ui%10;
OutString(StrBuf,0,SysSet,4);
}
if(pVar->action==OPEN)
{//-----OPEN
HITESC(SDSET_MENU);
if(pVar->KeyID==F1)// 修改状态
{
pVar->KeyID=NULLKEY;
pVar->action=FLASH;
pVar->NewCursorOffset=0;
pVar->OldCursorOffset=0;
CursorGotoXy(StrBuf,SysSet,4);
return;
}
}
if(pVar->action==FLASH)
{//------------------FLASH-----------------------
FlashESC();
if(pVar->KeyID==MINUSKEY)// "-"=PageUPKEY
{
pVar->KeyID=NULLKEY;
if(StrBuf[pVar->NewCursorOffset]!=0) StrBuf[pVar->NewCursorOffset]=StrBuf[pVar->NewCursorOffset]-1;
else StrBuf[pVar->NewCursorOffset]=9;
CursorGotoXy(StrBuf,SysSet,4);
};
if(pVar->KeyID==PLUSKEY)// "+"=PageDown
{
pVar->KeyID=NULLKEY;
StrBuf[pVar->NewCursorOffset]++;
if(StrBuf[pVar->NewCursorOffset]>9)StrBuf[pVar->NewCursorOffset]=0;
CursorGotoXy(StrBuf,SysSet,4);
};
if(pVar->KeyID==LEFTKEY)// " < " 键
{
pVar->KeyID=NULLKEY;
if(pVar->NewCursorOffset>0) pVar->NewCursorOffset=pVar->NewCursorOffset-1;
CursorGotoXy(StrBuf,SysSet,4);
};
if(pVar->KeyID==RIGHTKEY)// " > " 键
{
pVar->KeyID=NULLKEY;
pVar->NewCursorOffset=pVar->NewCursorOffset+1;
if(pVar->NewCursorOffset>7) pVar->NewCursorOffset=0;
CursorGotoXy(StrBuf,SysSet,4);
};
if(pVar->KeyID==OKKEY)// " < " + " > " 修改完成
{
pVar->KeyID=NULLKEY;
pVar->action=NOUSE;
flashwrite_h(PSD_FLASH_BASE);
for(i=0;i<4;i++)
{
n=i*2;
ui=StrBuf[n]*10+StrBuf[n+1];
switch(i)
{
case 0x00:if(ui>6) ui=6; //遥信板个数
pVar->flash_dat[((unsigned int)(&yxnum)-PSD_FLASH_BASE)/2]=ui;
break;
case 0x01:if(ui>4) ui=4; //遥脉板个数
pVar->flash_dat[((unsigned int)(&ymnum)-PSD_FLASH_BASE)/2]=ui;
break;
case 0x02:if(ui>8) ui=0; //开出板个数
pVar->flash_dat[((unsigned int)(&kcnum)-PSD_FLASH_BASE)/2]=ui;
break;
case 0x03:if(ui>4) ui=0; //模入板个数
pVar->flash_dat[((unsigned int)(&mrnum)-PSD_FLASH_BASE)/2]=ui;
break;
}
}
flashwrite_a(PSD_FLASH_BASE);
pVar->yxsum=yxnum*20;
pVar->ymsum=ymnum*20;
switch(yxnum)
{
case 0x01:yx_num=0x01;
break;
case 0x02:yx_num=0x03;
break;
case 0x03:yx_num=0x07;
break;
case 0x04:yx_num=0x0F;
break;
case 0x05:yx_num=0x1F;
break;
case 0x06:yx_num=0x3F;
break;
default: yx_num=0x00;
break;
}
switch(ymnum)
{
case 0x01:ym_num=0x01;
break;
case 0x02:ym_num=0x03;
break;
case 0x03:ym_num=0x07;
break;
case 0x04:ym_num=0x0F;
break;
default: ym_num=0x00;
break;
}
};
InitYx();
};//-------------------FALSH--------------------
}
void COMSetMenu(void)// 通信设置
{
if(pVar->action==NOUSE)
{
LcdClr();
DspMenu(36,0,36,3);//JM36+0,Adr36, Type=3 通信设置
DspMenu(37,pVar->ComMenuCount*0x05,37,3);
DspMenuCur(37,(pVar->ComMenuCount+pVar->ComSetCursorCount)*0x05+1,37,(pVar->ComSetCursorCount*10)+2,4, 0x83);
pVar->action=OPEN;
};
if(pVar->action==OPEN)
{//-----OPEN
HITESC(SDSET_MENU);
if(pVar->KeyID==PLUSKEY)// "+"=PageDown
{
pVar->KeyID=NULLKEY;
pVar->action=NOUSE;
pVar->ComMenuCount=pVar->ComMenuCount+4;
if(pVar->ComMenuCount>0x04) pVar->ComMenuCount=0x04;
};
if(pVar->KeyID==MINUSKEY)// "-"=PageUPKEY
{
pVar->KeyID=NULLKEY;
pVar->action=NOUSE;
if(pVar->ComMenuCount>0x03) pVar->ComMenuCount=pVar->ComMenuCount-4;
else pVar->ComMenuCount=0;
};
if(pVar->KeyID==DOWNKEY)// " V " 向下键
{
pVar->KeyID=NULLKEY;
pVar->action=NOUSE;
if(pVar->ComSetCursorCount>=3)
{
pVar->ComMenuCount=pVar->ComMenuCount+1;
pVar->ComSetCursorCount=3;
}else pVar->ComSetCursorCount++;
if(pVar->ComMenuCount>0x04) pVar->ComMenuCount=0x04;
};
if(pVar->KeyID==UPKEY)// " ^ " 向上键
{
pVar->KeyID=NULLKEY;
pVar->action=NOUSE;
if(pVar->ComSetCursorCount==0)
{
if(pVar->ComMenuCount>0x00) pVar->ComMenuCount=pVar->ComMenuCount-1;
pVar->ComSetCursorCount=0;
}else pVar->ComSetCursorCount--;
};
if(pVar->KeyID==OKKEY) //确认键
{
pVar->MenuMode=COMCFG_MENU;
pVar->COMID=pVar->ComMenuCount+pVar->ComSetCursorCount;
pVar->KeyID=NULLKEY;
pVar->action=NOUSE;
};
};//-------OPEN
}
void ComCfgMenu(void) //通信设置
{
unsigned int ui;
int i;
if(pVar->action==NOUSE)
{
LcdClr();
for(i=0;i<4;i++)
{
ui=pVar->ComCount+i;
DspMenuCurxy(38,ui*0x05,38,(ui*10),pVar->ComCount*2,5, 0x03);
}
ui=pVar->ComCount+pVar->ComCursorCount;
DspMenuCurxy(38,ui*0x05+1,38,(ui*10)+2,pVar->ComCount*2,4, 0x83);
DspMenu(39,pVar->COMID*0x04,39,3);
pVar->action=OPEN;
}
if(pVar->action==OPEN)
{//-----OPEN
HITESC(COMSET_MENU);
if(pVar->KeyID==PLUSKEY)// "+"=PageDown
{
pVar->KeyID=NULLKEY;
pVar->action=NOUSE;
pVar->ComCount=pVar->ComCount+4;
if(pVar->ComCount>0x08) pVar->ComCount=0x08;
}
if(pVar->KeyID==MINUSKEY)// "-"=PageUPKEY
{
pVar->KeyID=NULLKEY;
pVar->action=NOUSE;
if(pVar->ComCount>0x03) pVar->ComCount=pVar->ComCount-4;
else pVar->ComCount=0;
}
if(pVar->KeyID==DOWNKEY)// " V " 向下键
{
pVar->KeyID=NULLKEY;
pVar->action=NOUSE;
if(pVar->ComCursorCount>=3)
{
pVar->ComCount=pVar->ComCount+1;
pVar->ComCursorCount=3;
}else pVar->ComCursorCount++;
if(pVar->ComCount>0x08) pVar->ComCount=0x08;
}
if(pVar->KeyID==UPKEY)// " ^ " 向上键
{
pVar->KeyID=NULLKEY;
pVar->action=NOUSE;
if(pVar->ComCursorCount==0)
{
if(pVar->ComCount>0x00) pVar->ComCount=pVar->ComCount-1;
pVar->ComCursorCount=0;
}else pVar->ComCursorCount--;
}
if(pVar->KeyID==OKKEY) //确认键
{
switch(pVar->ComCount+pVar->ComCursorCount)
{
case 0x00: pVar->MenuMode=NODESET_MENU; // 节 点 号
break;
case 0x01: pVar->MenuMode=SETUP_MENU; // 启动方式
break;
case 0x02: pVar->MenuMode=COMSPEED_MENU;// 通信速率
break;
case 0x03: pVar->MenuMode=COMPRO_MENU; // 通信规约
break;
case 0x04: pVar->MenuMode=COMJUST_MENU; // 奇偶校验
break;
case 0x05: pVar->MenuMode=COMSYN_MENU; // 传输方式
break;
case 0x06: pVar->MenuMode=COMDATB_MENU; // 数 据 位
break;
case 0x07: pVar->MenuMode=COMSTOPB_MENU;// 停 止 位
break;
case 0x08: pVar->MenuMode=COMFLW_MENU; // 流 控 制
break;
case 0x09: pVar->MenuMode=COMREP_MENU; // 重发帧数
break;
case 0x0A: pVar->MenuMode=COMOVW_MENU; // 超时等待
break;
case 0x0B: pVar->MenuMode=COMWORD_MENU; // 同 步 字
break;
default: break;
}
pVar->KeyID=NULLKEY;
pVar->action=NOUSE;
}
}//-------OPEN
}
void NodeSetMenu(void)// 节 点 号
{
int i;
unsigned ui;
if(pVar->action==NOUSE)
{
LcdClr();
DspMenu(40,0,40,3);
pVar->action=OPEN;
ui=comset[pVar->COMID].node;
ui=ui & 0x00ff;
StrBuf[2]=ui%10;ui=ui/10;
StrBuf[1]=ui%10;ui=ui/10;
StrBuf[0]=ui%10;
OutString(StrBuf,0,NodeSet,4);
}
if(pVar->action==OPEN)
{//-----OPEN
HITESC(COMCFG_MENU);
if(pVar->KeyID==F1)// 修改状态
{
pVar->KeyID=NULLKEY;
pVar->action=FLASH;
pVar->NewCursorOffset=0;
pVar->OldCursorOffset=0;
CursorGotoXy(StrBuf,NodeSet,4);
return;
}
}
if(pVar->action==FLASH)
{//------------------FLASH-----------------------
FlashESC();
if(pVar->KeyID==MINUSKEY)// "-"=PageUPKEY
{
pVar->KeyID=NULLKEY;
if(StrBuf[pVar->NewCursorOffset]!=0) StrBuf[pVar->NewCursorOffset]=StrBuf[pVar->NewCursorOffset]-1;
else StrBuf[pVar->NewCursorOffset]=9;
if(StrBuf[0]>2)
{
StrBuf[0]=2;
}else
{
if(StrBuf[0]==2)
{
if(StrBuf[1]>=5)
{
StrBuf[1]=5;
if(StrBuf[2]>=5) StrBuf[2]=5;
}
}
}
CursorGotoXy(StrBuf,NodeSet,4);
};
if(pVar->KeyID==PLUSKEY)// "+"=PageDown
{
pVar->KeyID=NULLKEY;
StrBuf[pVar->NewCursorOffset]++;
if(StrBuf[pVar->NewCursorOffset]>9)StrBuf[pVar->NewCursorOffset]=0;
if(StrBuf[0]>2)
{
StrBuf[0]=2;
}else
{
if(StrBuf[0]==2)
{
if(StrBuf[1]>=5)
{
StrBuf[1]=5;
if(StrBuf[2]>=5) StrBuf[2]=5;
}
}
}
CursorGotoXy(StrBuf,NodeSet,4);
};
if(pVar->KeyID==LEFTKEY)// " < " 键
{
pVar->KeyID=NULLKEY;
if(pVar->NewCursorOffset>0) pVar->NewCursorOffset=pVar->NewCursorOffset-1;
CursorGotoXy(StrBuf,NodeSet,4);
};
if(pVar->KeyID==RIGHTKEY)// " > " 键
{
pVar->KeyID=NULLKEY;
pVar->NewCursorOffset=pVar->NewCursorOffset+1;
if(pVar->NewCursorOffset>2) pVar->NewCursorOffset=0;
CursorGotoXy(StrBuf,NodeSet,4);
};
if(pVar->KeyID==OKKEY)// " < " + " > " 修改完成
{
pVar->KeyID=NULLKEY;
pVar->action=NOUSE;
ui=StrBuf[0]*100+StrBuf[1]*10+StrBuf[2];
flashwrite((unsigned int)(&(comset[pVar->COMID].node)),ui);
};
};//-------------------FALSH--------------------
}
void SetUpMenu(void) // 启动方式
{
int i;
unsigned ui;
if(pVar->action==NOUSE)
{
LcdClr();
DspMenu(41,0,41,3);
pVar->action=OPEN;
if(comset[pVar->COMID].setup==0)
{
DspMenu(42,0,42,3);
}else
{
DspMenu(43,0,43,3);
}
}
if(pVar->action==OPEN)
{//-----OPEN
HITESC(COMCFG_MENU);
if(pVar->KeyID==F1)// 修改状态
{
pVar->KeyID=NULLKEY;
pVar->action=FLASH;
if(comset[pVar->COMID].setup==0)
{
DspMenuCurxy(42,0,42,0,0,2, 0x83);
StrBuf[0]=0;
}else
{
DspMenuCurxy(43,0,43,0,0,2, 0x83);
StrBuf[0]=1;
}
return;
}
}
if(pVar->action==FLASH)
{//------------------FLASH-----------------------
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -