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

📄 menu_task_motor.c

📁 电力系统中的保护装置全部代码
💻 C
📖 第 1 页 / 共 5 页
字号:
        				}
        				if(set>(int)psets[current_y]->set_high_limit)
        				{
        					set = psets[current_y]->set_high_limit;	
        				}
						else if(set<(int)psets[current_y]->set_lower_limit)
        				{
        					set = psets[current_y]->set_lower_limit;	
        				}
        				setting_buf[sets_counter]=(float)set;
        				break;
        		}
			    setting_disp[current_y] = setting_buf[sets_counter];
			    break;
		    }

            case KCR:
		    {
				for(i=0;i<total_set;i++)
        		{
        			psets_pointer = &pprotect -> pro_setting[i];
                	psets_pointer->set_value_zone[zone] = setting_buf[i];
        		}
        		uSaveSetZone= set_zone;
                uSaveRequest |= SAVE_SETTING;
				Lcd_Clear_Memory();
                Lcd_Draw_Cchar(pchar2,0,24,1);
				Lcd_Display_Executive();
				NU_Sleep(1000*NU_TICKS);
				return;
			}

			case KESC:
		    {
				i = 1;
				if(flag!=0x55aa)  
					return;
				temp=Save_result();
			    Lcd_Clear_Memory();
		        if(temp==0x55aa)
			    {
				    for(i=0;i<total_set;i++)
        		    {
        			    psets_pointer = &pprotect -> pro_setting[i];
                	    psets_pointer->set_value_zone[zone] = setting_buf[i];
        			}
                    uSaveSetZone= set_zone;
                    uSaveRequest |= SAVE_SETTING;
                    Lcd_Draw_Cchar(pchar2,0,24,1);
			    }
			    else
			    {
				    Lcd_Draw_Cchar(pchar3,16,24,1);
			    }
                Lcd_Display_Executive();
			    NU_Sleep(1000*NU_TICKS); 
			    return;
		    } 
		}//switch
	}//while
}
		 
/********************************************************************************/
/*                                      	2001-12-3               	        */
/*  入口:                        			出口:无返回值                 	    */
/*  说明:                                        				                */
/*                                                     				            */
/********************************************************************************/
void Change_Zone1()
{
	
	char  *pchar1="密码错误";
	char  *pchar2="请重新输入!";
    int    temp;

	while(1)
	{
		temp = Password();        
        if(temp==QUIT)break;
        if(temp==NOT_EQU)
        {
            Lcd_Clear_Memory();
            Lcd_Draw_Cchar(pchar1,32,14,1);
			Lcd_Draw_Cchar(pchar2,16,34,1);
			Lcd_Display_Executive();
			NU_Sleep(1000*NU_TICKS); 
            continue;
        }
        if(temp==EQU)
        {
            Change_Zone2();
		    break;        
        }
	}
}

/********************************************************************************/
/*  修改当前定值区子程序                        		2002-3-22              		*/
/*  入口: ( )             						    出口:=         				*/
/*  说明:                                           								*/
/*                                                   							*/
/********************************************************************************/
void Change_Zone2()
{

    char *pchar3="当前定值区号:";
    char *pchar6="请修改!";
    char *pchar5="定值区切换成功!";
    char *pchar4="定值区未切换!";
    int  new_currentzone,temp,current_x,flag;
    char addr_buf[6];
	
	flag = 0;
	current_x=0;

    while(1)
    {
	    if((iLONC_SetZoneNum >9)||(iLONC_SetZoneNum <0))
		{
		 	iLONC_SetZoneNum=0;
		 	uSaveRequest |= SAVE_SETZONE;
		}
	    if(flag!=0x55aa)
	    {
    		new_currentzone=iLONC_SetZoneNum;
    	} 
		Lcd_Clear_Memory();
        Lcd_Draw_Cchar(pchar3,8,8,1);
		Lcd_Draw_Cchar(pchar6,32,40,1); 
		sprintf(addr_buf,"%02d",new_currentzone);
		Lcd_Draw_Echar(addr_buf,54,28,1);
	    
		switch(current_x)
		{
			case	1:	Lcd_Draw_Line(55,36,62,36,1);break;	
			case	0:  Lcd_Draw_Line(63,36,70,36,1);break;
			default:break;
		}
		
		Lcd_Display_Executive();
		Delay_Key();
		
		if(key_current==KESC)
		{
			if(flag!=0x55aa)
				return;
			temp=Save_result();
			Lcd_Clear_Memory();
			if(temp==0x55aa)
			{
				iLONC_SetZoneNum=new_currentzone; 
				uSaveRequest |= SAVE_SETZONE;
                Lcd_Draw_Cchar(pchar5,0,24,1);
			}
			else
			{
				Lcd_Draw_Cchar(pchar4,16,24,1);
			}
            Lcd_Display_Executive();
			NU_Sleep(1000*NU_TICKS); 
			return;
		}
		if((key_current==KRIGHT)||(key_current==KDOWN))
		{
			if(current_x==1)
			    current_x=0;
			continue;
		}
		if((key_current==KLEFT)||(key_current==KUP))
		{
			if(current_x==0)
			    current_x=1;
			continue;
		}
		if(key_current==KINC)
		{
			flag=0x55aa;
			switch(current_x)
			{
				case	0:new_currentzone+=1;break;	
				case	1:new_currentzone+=10;break;      
				default :break;
			}
			if(new_currentzone>=SETTING_MAX_ZONE)
				new_currentzone=0;
			continue;	
		}
		if(key_current==KDEC)
		{
			flag=0x55aa;
			switch(current_x)
			{
				case	0:new_currentzone-=1;break;	
				case	1:new_currentzone-=10;break;      
				default:break;
			}       
			if(new_currentzone<0)
				new_currentzone=SETTING_MAX_ZONE-1;
			continue;	
		}
		if(key_current==KCR)
		{
			iLONC_SetZoneNum=new_currentzone; 
			uSaveRequest |= SAVE_SETZONE;
			Lcd_Clear_Memory();
			Lcd_Draw_Cchar(pchar5,0,24,1); 
			Lcd_Display_Executive();
			NU_Sleep(1000*NU_TICKS); 
			return;
		}          
}
}

/********************************************************************************/
/*  保存修改结果子程序                        			2002-3-22              		*/
/*  入口: ( )             						    出口:=         				*/
/*  说明:                                           								*/
/*                                                   							*/
/********************************************************************************/
int Save_result()
{
	
    int  current_x,value;
	char *pchar1="修改是否固化:";
	char *pchar2="固化";
    char *pchar3="不固化";
    
	current_x=1;
	while(1)
	{
		Lcd_Clear_Memory();
        Lcd_Draw_Cchar(pchar1,0,12,1);
		if(current_x==1)
		{
			Lcd_Draw_Cchar(pchar2,16,36,0);
            Lcd_Draw_Cchar(pchar3,64,36,1);
		}
		else
		{
			Lcd_Draw_Cchar(pchar2,16,36,1);
            Lcd_Draw_Cchar(pchar3,64,36,0);
        }
					
        Lcd_Display_Executive();
		Delay_Key();
		if((key_current==KLEFT) ||( key_current==KUP))
		{
		    current_x=1;
		    continue;
		}
		if((key_current==KRIGHT) ||( key_current==KDOWN))
		{
		     current_x=2;
		     continue;
		}
		if(key_current==KCR)
		{
			if(current_x==1)
            {
                 value=0x55aa;
            }
			else
			{
				value=0; 
			}
			return(value);  
        }   
        }
}

/********************************************************************************/
/*  修改压板子程序                                    	2001-12-3               */
/*  入口:                        			出口:无返回值                 	    */
/*  说明:                                        				                */
/*                                                     				            */
/********************************************************************************/
void LP_Status()
{
	
	char  *pchar1="密码错误";
	char  *pchar2="请重新输入!";
    int    temp;

	while (1)
	{
		temp = Password();        
        if (temp==QUIT)
        {
        	break;
        }
        if (temp==NOT_EQU)
        {
            Lcd_Clear_Memory();
            Lcd_Draw_Cchar(pchar1,32,14,1);
			Lcd_Draw_Cchar(pchar2,16,34,1);
			Lcd_Display_Executive();
			NU_Sleep(1000*NU_TICKS); 
            continue;
        }
        if (temp==EQU)
        {
            Select_Protect(0,Change_Soft_Jumper);
		    break;        
        }
	}
}

/*************************************************/
/*                                               */
/*                                               */
/*************************************************/
void Change_Soft_Jumper(int set_zone,void *pPROTECT)
{
	
	PROTECT *Pro_Ptr;
	char *pchar1="没有软件压板!";
    char *pchar2="投入";
    char *pchar3="退出";
    char *pchar4="软件压板投退:";
    char *pchar6="压板固化成功!";
	char *pchar7="压板固化失败!";
    int  signal_jumper,j,flag,temp;

	flag = 0;
	Pro_Ptr=(PROTECT *)pPROTECT;
	if(Pro_Ptr->pro_jumper_number==0)
	{
	 	Lcd_Clear_Memory();
	 	Lcd_Draw_Cchar(pchar1,8,24,1); 
	 	Lcd_Display_Executive();
	 	NU_Sleep(1000*NU_TICKS); 
	 	return;
	}
	if(Pro_Ptr->pro_jumper->jum_status>1)
	{
		signal_jumper=1; 
		flag=0x55aa;
	}
	else if(Pro_Ptr->pro_jumper->jum_status)
	{
		signal_jumper=1;
	}
	else
	{
		signal_jumper  =0; 
	}
    
    while(1)
	{
       Lcd_Clear_Memory();
	   Lcd_Draw_Cchar(pchar4,2,8,1);
	   if(signal_jumper)
       {
           Lcd_Draw_Cchar(pchar2,16,32,0);
           Lcd_Draw_Cchar(pchar3,80,32,1);
       }
       else
       {
           Lcd_Draw_Cchar(pchar2,16,32,1);
           Lcd_Draw_Cchar(pchar3,80,32,0);
       }
	   Lcd_Display_Executive();
       Delay_Key();

	   if((key_current==KLEFT)||(key_current==KUP)
           ||(key_current==KRIGHT)||(key_current==KDOWN))
       {
		   flag = 0x55aa;
		   switch(signal_jumper)
           {
               	case	0:signal_jumper=1;break;
               	default:  signal_jumper=0;break;
           }
           continue;
       }
	 
	   if(key_current==KCR)
       {
	
           Pro_Ptr->pro_jumper->jum_status=signal_jumper;
		   uSaveRequest |= SAVE_JUMPER;
		   JUMPER_Change(Pro_Ptr->pro_jumper);
		   Lcd_Clear_Memory();
		   if(Pro_Ptr->pro_jumper->jum_status==signal_jumper)
           {
			   Lcd_Draw_Cchar(pchar6,8,24,1);
		   }
           else
		   {
	           Lcd_Draw_Cchar(pchar7,8,24,1);
		   }
           Lcd_Display_Executive();
		   NU_Sleep(1000*NU_TICKS);
		   break;
	   }

	   if(key_current==KESC) 
	   {
		   if(flag!=0x55aa)
				return;
			temp=Save_result();
			Lcd_Clear_Memory();
			if(temp==0x55aa)
			{
			
                Pro_Ptr->pro_jumper->jum_status=signal_jumper;
		        uSaveRequest |= SAVE_JUMPER; 
		        JUMPER_Change(Pro_Ptr->pro_jumper);
		        if(Pro_Ptr->pro_jumper->jum_status==signal_jumper)
                {
			        Lcd_Draw_Cchar(pchar6,8,24,1);
		        }
                else
		        {
	                Lcd_Draw_Cchar(pchar7,8,24,1);
		        }
			}
			else
			{
				Lcd_Draw_Cchar(pchar7,8,24,1);
			}
            Lcd_Display_Executive();
			NU_Sleep(1000*NU_TICKS); 
			return;
	  }  
    }
}


/********************************************************************************/
/*  显示报告子程序                            2002-4-3               				*/
/*  入口:                        			出口:无返回值                 	    */
/*  说明:                                        				                */
/*                                                     				            */
/********************************************************************************/
void Display_Report()
{
	
	char *pchar1="[报告]:动作报告处理";                      
    char *pchar2="动作报告处理";                      
    char *pchar3="1:查看报告";
    char *pchar4="2

⌨️ 快捷键说明

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