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

📄 setplay.c

📁 电力变电站RTU监控软件(80C196NT单片机) 遥控
💻 C
📖 第 1 页 / 共 5 页
字号:
	   if(StrBuf[0]>=2)StrBuf[0]=StrBuf[0]-2;
	}
	DspMenuCurxy(55,StrBuf[0]*5,55,0,0,5, 0x84);
     }

     if(pVar->KeyID==DOWNKEY)
     {
	pVar->KeyID=NULLKEY;
	if(StrBuf[0]>2)
	{
	   StrBuf[0]=0;
	}else
	{
	   StrBuf[0]++;
	   if(StrBuf[0]>2)  StrBuf[0]=2;
	}
	DspMenuCurxy(55,StrBuf[0]*5,55,0,0,5, 0x84);
     }
     if(pVar->KeyID==UPKEY)
     {
	pVar->KeyID=NULLKEY;
	if(StrBuf[0]>2)
	{
	   StrBuf[0]=0;
	}else
	{
	   if(StrBuf[0]!=0)StrBuf[0]--;
	}
	DspMenuCurxy(55,StrBuf[0]*5,55,0,0,5, 0x84);
     };
     if(pVar->KeyID==OKKEY)// " < " + " > "  修改完成
     {
	pVar->KeyID=NULLKEY;
	pVar->action=NOUSE;
	flashwrite((unsigned int)(&(comset[pVar->COMID].stopbit)),(unsigned int)StrBuf[0]);
     };
  };//-------------------FALSH--------------------
}

void ComFlwMenu(void)// 流 控 制
{
  int i;
  unsigned ui;
  if(pVar->action==NOUSE)
  {
     LcdClr();
     DspMenu(56,0,56,3);
     pVar->action=OPEN;
     StrBuf[0]=comset[pVar->COMID].flowcontrol;    //流 控 制
     ui=StrBuf[0];
     if(ui>2)  ui=2;
     DspMenuCurxy(57,ui*8,57,0,0,8, 0x04);
  }
  if(pVar->action==OPEN)
  {//-----OPEN
     HITESC(COMCFG_MENU);
     if(pVar->KeyID==F1)// 修改状态
     {
	 pVar->KeyID=NULLKEY;
	 pVar->action=FLASH;
	 StrBuf[0]=comset[pVar->COMID].flowcontrol;    //流 控 制
	 ui=StrBuf[0];
	 if(ui>2)  ui=2;
	 DspMenuCurxy(57,ui*8,57,0,0,8, 0x84);
	 return;
     }
  }
  if(pVar->action==FLASH)
  {//------------------FLASH-----------------------
     FlashESC();
     if(pVar->KeyID==PLUSKEY)
     {
	pVar->KeyID=NULLKEY;
	if(StrBuf[0]>2)
	{
	   StrBuf[0]=0;
	}else
	{
	   StrBuf[0]=StrBuf[0]+2;
	   if(StrBuf[0]>2)  StrBuf[0]=2;
	}
	DspMenuCurxy(57,StrBuf[0]*8,57,0,0,8, 0x84);
     }
     if(pVar->KeyID==MINUSKEY)
     {
	pVar->KeyID=NULLKEY;
	if(StrBuf[0]>2)
	{
	   StrBuf[0]=0;
	}else
	{
	   if(StrBuf[0]>=2)StrBuf[0]=StrBuf[0]-2;
	}
	DspMenuCurxy(57,StrBuf[0]*8,57,0,0,8, 0x84);
     }

     if(pVar->KeyID==DOWNKEY)
     {
	pVar->KeyID=NULLKEY;
	if(StrBuf[0]>2)
	{
	   StrBuf[0]=0;
	}else
	{
	   StrBuf[0]++;
	   if(StrBuf[0]>2)  StrBuf[0]=2;
	}
	DspMenuCurxy(57,StrBuf[0]*8,57,0,0,8, 0x84);
     }
     if(pVar->KeyID==UPKEY)
     {
	pVar->KeyID=NULLKEY;
	if(StrBuf[0]>2)
	{
	   StrBuf[0]=0;
	}else
	{
	   if(StrBuf[0]!=0)StrBuf[0]--;
	}
	DspMenuCurxy(57,StrBuf[0]*8,57,0,0,8, 0x84);
     };
     if(pVar->KeyID==OKKEY)// " < " + " > "  修改完成
     {
	pVar->KeyID=NULLKEY;
	pVar->action=NOUSE;
	flashwrite((unsigned int)(&(comset[pVar->COMID].flowcontrol)),(unsigned int)StrBuf[0]);
     };
  };//-------------------FALSH--------------------
}

void ComRepMenu(void)// 重发帧数
{
  int i;
  unsigned ui;
  if(pVar->action==NOUSE)
  {
     LcdClr();
     DspMenu(58,0,58,3);
     pVar->action=OPEN;
     ui=comset[pVar->COMID].reframe;	    //重发帧数
     ui=ui  % 100;
     StrBuf[1]=ui%10;ui=ui/10;
     StrBuf[0]=ui%10;
     OutString(StrBuf,0,ReframeSet,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,ReframeSet,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,ReframeSet,4);

     };
     if(pVar->KeyID==PLUSKEY)// "+"=PageDown
     {
	pVar->KeyID=NULLKEY;
	StrBuf[pVar->NewCursorOffset]++;
	if(StrBuf[pVar->NewCursorOffset]>9)StrBuf[pVar->NewCursorOffset]=0;
	CursorGotoXy(StrBuf,ReframeSet,4);
     };
     if(pVar->KeyID==LEFTKEY)// " <  " 键
     {
	pVar->KeyID=NULLKEY;
	if(pVar->NewCursorOffset>0) pVar->NewCursorOffset=pVar->NewCursorOffset-1;
	CursorGotoXy(StrBuf,ReframeSet,4);
     };
     if(pVar->KeyID==RIGHTKEY)// " >  " 键
     {
	pVar->KeyID=NULLKEY;
	pVar->NewCursorOffset=pVar->NewCursorOffset+1;
	if(pVar->NewCursorOffset>1)   pVar->NewCursorOffset=0;
	CursorGotoXy(StrBuf,ReframeSet,4);
     };
     if(pVar->KeyID==OKKEY)// " < " + " > "  修改完成
     {
	pVar->KeyID=NULLKEY;
	pVar->action=NOUSE;
	ui=StrBuf[0]*10+StrBuf[1];
	flashwrite((unsigned int)(&(comset[pVar->COMID].reframe)),ui);
     };
  };//-------------------FALSH--------------------
}

void ComOVWMenu(void)// 超时等待
{
  int i;
  unsigned ui;
  if(pVar->action==NOUSE)
  {
     LcdClr();
     DspMenu(59,0,59,3);
     DspMenu(60,0,60,4);
     pVar->action=OPEN;
     ui=comset[pVar->COMID].overwait;	    //超时等待
     ui=ui  % 10000;
     StrBuf[3]=ui%10;ui=ui/10;
     StrBuf[2]=ui%10;ui=ui/10;
     StrBuf[1]=ui%10;ui=ui/10;
     StrBuf[0]=ui%10;

     OutString(StrBuf,0,OvWait,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,OvWait,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,OvWait,4);

     };
     if(pVar->KeyID==PLUSKEY)// "+"=PageDown
     {
	pVar->KeyID=NULLKEY;
	StrBuf[pVar->NewCursorOffset]++;
	if(StrBuf[pVar->NewCursorOffset]>9)StrBuf[pVar->NewCursorOffset]=0;
	CursorGotoXy(StrBuf,OvWait,4);
     };
     if(pVar->KeyID==LEFTKEY)// " <  " 键
     {
	pVar->KeyID=NULLKEY;
	if(pVar->NewCursorOffset>0) pVar->NewCursorOffset=pVar->NewCursorOffset-1;
	CursorGotoXy(StrBuf,OvWait,4);
     };
     if(pVar->KeyID==RIGHTKEY)// " >  " 键
     {
	pVar->KeyID=NULLKEY;
	pVar->NewCursorOffset=pVar->NewCursorOffset+1;
	if(pVar->NewCursorOffset>3)   pVar->NewCursorOffset=0;
	CursorGotoXy(StrBuf,OvWait,4);
     };
     if(pVar->KeyID==OKKEY)// " < " + " > "  修改完成
     {
	pVar->KeyID=NULLKEY;
	pVar->action=NOUSE;
	ui=StrBuf[0]*1000+StrBuf[1]*100+StrBuf[2]*10+StrBuf[3];
	flashwrite((unsigned int)(&(comset[pVar->COMID].overwait)),ui);
     };
  };//-------------------FALSH--------------------
}

void ComWordMenu(void)// 同 步 字
{
  int i;
  unsigned ui,fdat[5];
  if(pVar->action==NOUSE)
  {
     LcdClr();
     DspMenu(61,0,61,3);
     pVar->action=OPEN;
     ui=comset[pVar->COMID].synword;  //内同步字
     StrBuf[3]=ui%16;ui=ui/16;
     StrBuf[2]=ui%16;ui=ui/16;
     StrBuf[1]=ui%16;ui=ui/16;
     StrBuf[0]=ui%16;
     ui=comset[pVar->COMID].synword1; //外同步字1
     StrBuf[7]=ui%16;ui=ui/16;
     StrBuf[6]=ui%16;ui=ui/16;
     StrBuf[5]=ui%16;ui=ui/16;
     StrBuf[4]=ui%16;
     ui=comset[pVar->COMID].synword2; //外同步字2
     StrBuf[11]=ui%16;ui=ui/16;
     StrBuf[10]=ui%16;ui=ui/16;
     StrBuf[9] =ui%16;ui=ui/16;
     StrBuf[8] =ui%16;
     ui=comset[pVar->COMID].synword3; //外同步字3
     StrBuf[15]=ui%16;ui=ui/16;
     StrBuf[14]=ui%16;ui=ui/16;
     StrBuf[13]=ui%16;ui=ui/16;
     StrBuf[12]=ui%16;
     OutString(StrBuf,0,SynAdr,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,SynAdr,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]=15;
	CursorGotoXy(StrBuf,SynAdr,4);

     };
     if(pVar->KeyID==PLUSKEY)// "+"=PageDown
     {
	pVar->KeyID=NULLKEY;
	StrBuf[pVar->NewCursorOffset]++;
	if(StrBuf[pVar->NewCursorOffset]>15)StrBuf[pVar->NewCursorOffset]=0;
	CursorGotoXy(StrBuf,SynAdr,4);
     };
     if(pVar->KeyID==UPKEY)// " UP " 键
     {
	pVar->KeyID=NULLKEY;
	if(pVar->NewCursorOffset>3) pVar->NewCursorOffset=pVar->NewCursorOffset-4;
	CursorGotoXy(StrBuf,SynAdr,4);
     };
     if(pVar->KeyID==DOWNKEY)// " DOWN " 键
     {
	pVar->KeyID=NULLKEY;
	if(pVar->NewCursorOffset<12) pVar->NewCursorOffset=pVar->NewCursorOffset+4;
	CursorGotoXy(StrBuf,SynAdr,4);
     };
     if(pVar->KeyID==LEFTKEY)// " <  " 键
     {
	pVar->KeyID=NULLKEY;
	if(pVar->NewCursorOffset>0) pVar->NewCursorOffset=pVar->NewCursorOffset-1;
	CursorGotoXy(StrBuf,SynAdr,4);
     };
     if(pVar->KeyID==RIGHTKEY)// " >  " 键
     {
	pVar->KeyID=NULLKEY;
	pVar->NewCursorOffset=pVar->NewCursorOffset+1;
	if(pVar->NewCursorOffset>15)   pVar->NewCursorOffset=0;
	CursorGotoXy(StrBuf,SynAdr,4);
     };
     if(pVar->KeyID==OKKEY)// " < " + " > "  修改完成
     {
	pVar->KeyID=NULLKEY;
	pVar->action=NOUSE;
	fdat[0]=4;
	fdat[1]=((unsigned int)StrBuf[0])*4096 +((unsigned int)StrBuf[1])*256 +StrBuf[2]*16 +StrBuf[3];
	fdat[2]=((unsigned int)StrBuf[4])*4096 +((unsigned int)StrBuf[5])*256 +StrBuf[6]*16 +StrBuf[7];
	fdat[3]=((unsigned int)StrBuf[8])*4096 +((unsigned int)StrBuf[9])*256 +StrBuf[10]*16+StrBuf[11];
	fdat[4]=((unsigned int)StrBuf[12])*4096+((unsigned int)StrBuf[13])*256+StrBuf[14]*16+StrBuf[15];
	fpwrite((unsigned int)(&(comset[pVar->COMID].synword)),fdat);
     };
  };//-------------------FALSH--------------------
}

void LINESetMenu(void)// 线路配置
{
  unsigned int	    j, k, n,it;
  int		    i;
  if(pVar->action==NOUSE)
  {
     LcdClr();
     DspMenu(70,0,70,3);
     DspMenu(71,0,71,1);
     Line(0,0, 127,0, 1);
     Line(0,28,127,28,1);
     Line(64,0,64,60,1);
     Line(0,0,0,60,1);
     Line(0,60,127,60,1);
     Line(127,0,127,60,1);
     pVar->action=OPEN;
     if(pVar->LineCount>=MAXLINENUM) pVar->LineCount=0;
     k=pVar->LineCount;
     n=k+1;
     DatBuf[2]=n%10;n=n/10;
     DatBuf[1]=n%10;n=n/10;
     DatBuf[0]=n%10;
     OutString(DatBuf,0,LNSetNumAdr,4);
     if(LINETYPE[pVar->LineCount]==0) DspMenu(90,0,90,4);//P=U*I
	  else			      DspMenu(91,0,91,4);//U=U-I
  };
  if(pVar->action==OPEN)
  {  //-----OPEN
     HITESC(SDSET_MENU);
     if(pVar->KeyID==PLUSKEY)// "+"=PageDown
     {
	pVar->KeyID=NULLKEY;
	pVar->action=NOUSE;
	pVar->LineCount=pVar->LineCount+5;
	if(pVar->LineCount>=MAXLINENUM) pVar->LineCount=0;
     };
     if(pVar->KeyID==MINUSKEY)// "-"=PageUPKEY
     {
	pVar->KeyID=NULLKEY;
	pVar->action=NOUSE;
	if(pVar->LineCount>4) pVar->LineCount=pVar->LineCount-5;
	    else	      pVar->LineCount=0;
     }
     if(pVar->KeyID==DOWNKEY)// " V " 向下键
     {
	pVar->KeyID=NULLKEY;
	pVar->action=NOUSE;
	pVar->LineCount=pVar->LineCount+1;
	if(pVar->LineCount>=MAXLINENUM) pVar->LineCount=0;
     }
     if(pVar->KeyID==UPKEY)// " ^ " 向上键
     {
	pVar->KeyID=NULLKEY;
	pVar->action=NOUSE;
	if(pVar->LineCount>0) pVar->LineCount=pVar->LineCount-1;
     };
     if(pVar->KeyID==F1)// 修改状态
     {
	 pVar->KeyID=NULLKEY;
	 pVar->action=FLASH;
	 pVar->NewCursorOffset=0;
	 pVar->OldCursorOffset=0;
	 CursorGotoXy(StrBuf,LineSetAdr,1);
	 return;
     }
     for(i=0;i<6;i++)
     {
	n=LineSetdata[pVar->LineCount][i];
	StrBuf[i*2+1]=n%10; n=n/10;
	StrBuf[i*2+0]=n%10;
     }
     OutString(StrBuf,0,LineSetAdr,1);
     if(LINETYPE[pVar->LineCount]==0) DspMenu(90,0,90,4);//P=U*I
	  else			      DspMenu(91,0,91,4);//U=U-I
     pVar->line_type_flag=LINETYPE[pVar->LineCount];
  };//open
  if(pVar->action==FLASH)
  {//------------------FLASH-----------------------
     FlashESC();
     if(pVar->KeyID==MINUSKEY)//  "-"=PageUPKEY
     {
	pVar->KeyID=NULLKEY;
	if(pVar->NewCursorOffset==12)
	{
	   if(pVar->line_type_flag==0) pVar->line_type_flag=0xff;
		   else 	       pVar->line_type_flag=0;
	   if(pVar->line_type_flag==0) DspMenu(90,0,90,0x84);//P=U*I
		else		       DspMenu(91,0,91,0x84);//U=U-I
	}else
	{
	   if(StrBuf[pVar->NewCursorOffset]!=0) StrBuf[pVar->NewCursorOffset]=StrBuf[pVar->NewCursorOffset]-1;
	      else				StrBuf[pVar->NewCursorOffset]=9;
	   CursorGotoXy(StrBuf,LineSetAdr,1);
	}
     };
     if(pVar->KeyID==PLUSKEY)// "+"=PageDown
     {
	pVar->KeyID=NULLKEY;
	if(pVar->NewCursorOffset==12)
	{
	   if(pVar->line_type_flag==0) pVar->line_type_flag=0xff;
		   else 	       pVar->line_type_flag=0;
	   if(pVar->line_type_flag==0) DspMenu(90,0,90,0x84);//P=U*I
		else		       DspMenu(91,0,91,0x84);//U=U-I
	}else
	{
	   StrBuf[pVar->NewCursorOffset]++;
	   if(StrBuf[pVar->NewCursorOffset]>9)StrBuf[pVar->NewCursorOffset]=0;
	   CursorGotoXy(StrBuf,LineSetAdr,1);
	}
     };
     if(pVar->KeyID==LEFTKEY)// " <  " 键
     {
	pVar->KeyID=NULLKEY;
	if(pVar->NewCursorOffset>0) pVar->NewCursorOffset=pVar->NewCursorOffset-1;
	CursorGotoXy(StrBuf,LineSetAdr,1);
	if(pVar->line_type_flag==0) DspMenu(90,0,90,0x04);//P=U*I
	     else		    DspMenu(91,0,91,0x04);//U=U-I
     };
     if(pVar->KeyID==RIGHTKEY)// " >  " 键
     {
	pVar->KeyID=NULLKEY;
	pVar->NewCursorOffset=pVar->NewCursorOffset+1;
	if(pVar->NewCursorOffset==12)
	{
	   if(pVar->line_type_flag==0) DspMenu(90,0,90,0x84);//P=U*I
		else		       DspMenu(91,0,91,0x84);//U=U-I
	}else
	{
	   CursorGotoXy(StrBuf,LineSetAdr,1);
	   if(LINETYPE[pVar->LineCount]==0) DspMenu(90,0,90,0x04);//P=U*I
		else			    DspMenu(91,0,91,0x04);//U=U-I
	}
     };
     if(pVar->KeyID==OKKEY)// " < " + " > "  修改完成
     {
	pVar->KeyID=NULLKEY;
	pVar->action=NOUSE;
	flashwrite_h(PSD_FLASH_BASE);
	for(i=0;i<6;i++)
	{
	  n=StrBuf[0+i*2]*10+StrBuf[1+i*2];
	  pVar->flash_dat[((unsigned int)(&LineSetdata[pVar->LineCount][i])-PSD_FLASH_BASE)/2]=n;
	}
	pVar->flash_dat[((unsigned int)(&LINETYPE[pVar->LineCount])-PSD_FLASH_BASE)/2]=pVar->line_type_flag;
	flashwrite_a(PSD_FLASH_BASE);
	InitYC();
     };

⌨️ 快捷键说明

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