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

📄 mstate.c.bak

📁 Linux的实时性如何得到改观
💻 BAK
📖 第 1 页 / 共 3 页
字号:


#include "RS232.h"
#include "KeyPad.h"
#include "LCD.h"
#include "Timer.h"
#include "RTC.h"
#include "MState.h"
#include "GLib.h"
#include "ADC.h"
#include "Flash.h"
#include "FileSys.h"
#include "Config.h"
//------------------------------
struct MSTATE_struct MState_inf;

unsigned char MState_msg[10];
unsigned char MState_again[10];
unsigned char Pswd[7] = {6,'0','0','0','4','3','0'};
//==============================
//-----------------------

void Delay_ms(int time)
{
	int i,j;
	
	i = 0;
	do{
		for(j=0;j<100;j++){;}
		i++;
	}while(i<time);
	
}

void MState_switch_face(unsigned char key )
{
	if( key == KEY_F2 ){
		MState_inf.State	= MACHINE_STATE_MAIN;
		MState_inf.Func		= FUNC_MAIN;
		
		MState_inf.Fresh	= FRESH_ON;		
	}
}
//-----------------------
void MState_switch_main(unsigned char key )
{
	switch( key )
	{
		case '1':
		{
			MState_inf.State	= MACHINE_STATE_COM;
			MState_inf.Func		= FUNC_COM;
			MState_inf.Step		= STEP_COM_MENU;
			MState_inf.Fresh	= FRESH_ON;			
			break;
		}		
		case '2':
		{
			MState_inf.State	= MACHINE_STATE_SYSINF;
			MState_inf.Func		= FUNC_SYSINF;
			MState_inf.Step		= STEP_SYSINF_MENU;
			MState_inf.Fresh	= FRESH_ON;			
			break;
		}	
		case '3':
		{
			MState_inf.State	= MACHINE_STATE_CONFIG;
			MState_inf.Func		= FUNC_CONFIG;
			MState_inf.Step		= STEP_CONFIG_MENU;
			MState_inf.Fresh	= FRESH_ON;			
			break;
		}
		case '4':
		{
			MState_inf.State	= MACHINE_STATE_TEST;
			MState_inf.Func		= FUNC_TEST;
			MState_inf.Step		= STEP_TEST_MENU;
			MState_inf.Fresh	= FRESH_ON;			
			break;
		}	
		case '5':
		{
			MState_inf.State	= MACHINE_STATE_RUN;
			MState_inf.Func		= FUNC_RUN;
			MState_inf.Step		= STEP_RUN_GETFILE;
			MState_inf.Fresh	= FRESH_ON;			
			break;
		}	
		case KEY_CLS:
		{
			MState_inf.State	= MACHINE_STATE_FACE;
			MState_inf.Func		= FUNC_FACE;
			MState_inf.Fresh	= FRESH_ON;			
			break;
		}
		default:
			break;
					
	}
	
}
//-----------------------
void MState_switch_sysinf(unsigned char key )
{
	if( MState_inf.Func == FUNC_SYSINF )
	{
		switch( key )
		{
			case '1':
			{
				MState_inf.Func		= FUNC_SYSINF_MACH_INF;
				MState_inf.Step		= STEP_SYSINF_MACH_INF;
				MState_inf.Fresh	= FRESH_ON;			
				break;
			}	
			case '2':
			{
				MState_inf.Func		= FUNC_SYSINF_FILE_INF;
				MState_inf.Step		= STEP_SYSINF_FILE_INF;
				MState_inf.Fresh	= FRESH_ON;			
				break;
			}	
			case '3':
			{
				MState_inf.Func		= FUNC_SYSINF_TIME_INF;
				MState_inf.Step		= STEP_SYSINF_TIME_INF;
				MState_inf.Fresh	= FRESH_ON;			
				break;
			}	
			case '4':
			{
				MState_inf.Func		= FUNC_SYSINF_BATT_INF;
				MState_inf.Step		= STEP_SYSINF_BATT_INF;
				MState_inf.Fresh	= FRESH_ON;			
				break;
			}	
			case KEY_CLS:
			{
				MState_inf.State	= MACHINE_STATE_MAIN;
				MState_inf.Func		= FUNC_MAIN;
				MState_inf.Fresh	= FRESH_ON;			
				break;
			}
			default:
				break;					
		}
		
	}else{
		if( key == KEY_CLS ){
			MState_inf.State	= MACHINE_STATE_SYSINF;
			MState_inf.Func		= FUNC_SYSINF;
			MState_inf.Fresh	= FRESH_ON;
		}			
	}
}
//-----------------------
void MState_switch_config(unsigned char key )
{
	unsigned char i;
	int rt;
	struct CONFIG_struct 	Config_inf;
	
	rt = Config_inf_read( &Config_inf );
	 
	if( MState_inf.Func == FUNC_CONFIG )
	{
		for(i=0; i<10; i++)	MState_msg[i] = 0;
		
		switch( key )
		{
			case '1':
			{
				MState_inf.Func		= FUNC_CONFIG_LCD;
				MState_inf.Step		= STEP_CONFIG_LCD_CHNG;
				MState_inf.Fresh	= FRESH_ON;	
				
				if( (rt>=0)&&((Config_inf.LCD_const)<=7) ) {
					MState_msg[0] = Config_inf.LCD_const;
				}else{
					MState_msg[0] = 4;
				}
						
				break;
			}	
			case '2':
			{
				MState_inf.Func		= FUNC_CONFIG_PRINT;
				MState_inf.Step		= STEP_CONFIG_PRINT_CHNG;
				MState_inf.Fresh	= FRESH_ON;	
				
				if( (rt>=0)&&((Config_inf.Print_deep)<=7) ) {
					MState_msg[0] = Config_inf.Print_deep;
				}else{
					MState_msg[0] = 4;
				}
						
				break;
			}	
			case '3':
			{
				MState_inf.Func		= FUNC_CONFIG_FORMAT;
				MState_inf.Step		= STEP_CONFIG_FORMAT_PSWD;
				MState_inf.Fresh	= FRESH_ON;			
				break;
			}	
			case '4':
			{
				MState_inf.Func		= FUNC_CONFIG_PSWD;
				MState_inf.Step		= STEP_CONFIG_PSWD_OLD;
				MState_inf.Fresh	= FRESH_ON;			
				break;
			}	
			case KEY_CLS:
			{
				MState_inf.State	= MACHINE_STATE_MAIN;
				MState_inf.Func		= FUNC_MAIN;
				MState_inf.Fresh	= FRESH_ON;			
				break;
			}
			default:
				break;					
		}
		
	}else if( MState_inf.Func == FUNC_CONFIG_LCD ){
		
		switch( key )
		{
			case KEY_UP:
			{
				if( MState_msg[0] >= 7 ){
					MState_msg[0] = 7;
				}else{
					MState_msg[0]++;
				}
				
				MState_inf.Func		= FUNC_CONFIG_LCD;
				MState_inf.Step		= STEP_CONFIG_LCD_CHNG;
				MState_inf.Fresh	= FRESH_ON;	
				LCD_gray_set(MState_msg[0]);	
				break;
			}	
			case KEY_DOWN:
			{
				if( MState_msg[0] > 0 ){
					MState_msg[0]--;
				}
				
				MState_inf.Func		= FUNC_CONFIG_LCD;
				MState_inf.Step		= STEP_CONFIG_LCD_CHNG;
				MState_inf.Fresh	= FRESH_ON;
				LCD_gray_set(MState_msg[0]);			
				break;
			}	
			case KEY_ENTER:
			{
				//Config_save(FUNC_CONFIG_LCD,tmp);
				
				MState_inf.State	= MACHINE_STATE_CONFIG;
				MState_inf.Func		= FUNC_CONFIG;
				MState_inf.Fresh	= FRESH_ON;	
				
				Config_inf.LCD_const = MState_msg[0];
				Config_inf_save( (rt+1),&Config_inf );
						
				break;
			}	
			case KEY_CLS:
			{
				//recover_LCD_value();
				
				MState_inf.State	= MACHINE_STATE_CONFIG;
				MState_inf.Func		= FUNC_CONFIG;
				MState_inf.Fresh	= FRESH_ON;		
				break;
			}
			default:
				break;
		}

	}else if( MState_inf.Func == FUNC_CONFIG_PRINT ){
		switch( key )
		{
			case KEY_UP:
			{
				if( MState_msg[0] >= 7 ){
					MState_msg[0] = 7;
				}else{
					MState_msg[0]++;
				}
				
				MState_inf.Func		= FUNC_CONFIG_PRINT;
				MState_inf.Step		= STEP_CONFIG_PRINT_CHNG;
				MState_inf.Fresh	= FRESH_ON;
				break;
			}	
			case KEY_DOWN:
			{
				if( MState_msg[0] > 0 ){
					MState_msg[0]--;
				}
								
				MState_inf.Func		= FUNC_CONFIG_PRINT;
				MState_inf.Step		= STEP_CONFIG_PRINT_CHNG;
				MState_inf.Fresh	= FRESH_ON;
				break;
			}	
			case KEY_ENTER:
			{
				//Config_save(FUNC_CONFIG_PRINT,tmp);
				
				MState_inf.State	= MACHINE_STATE_CONFIG;
				MState_inf.Func		= FUNC_CONFIG;
				MState_inf.Fresh	= FRESH_ON;	
				
				Config_inf.Print_deep = MState_msg[0];
				Config_inf_save( (rt+1),&Config_inf );
							
				break;
			}	
			case KEY_CLS:
			{
				//recover_print_value();
				
				MState_inf.State	= MACHINE_STATE_CONFIG;
				MState_inf.Func		= FUNC_CONFIG;
				MState_inf.Fresh	= FRESH_ON;		
				break;
			}
			default:
				break;
		}
		
	}else if( MState_inf.Func == FUNC_CONFIG_FORMAT ){//===>>Flash Format
		if( MState_inf.Step	== STEP_CONFIG_FORMAT_PSWD )
		{	//--->>check password
			switch( key )
			{
				case '0':
				case '1':
				case '2':
				case '3':
				case '4':
				case '5':
				case '6':
				case '7':
				case '8':
				case '9':				
				{
					if( MState_msg[0] < 7 ){
						MState_msg[0]++;						
						MState_msg[ (MState_msg[0]) ] = key;
						MState_inf.Fresh	= FRESH_ON;
					}
					break;
				}
				case KEY_ENTER:
				{
					for(i=1; i<=(Pswd[0]); i++){
						if( MState_msg[i] != Pswd[i] )	break;
					}
					
					if( i>(Pswd[0]) ){
						//MState_inf.State	= MACHINE_STATE_CONFIG;
						//MState_inf.Func		= FUNC_CONFIG_FORMAT;
						MState_inf.Step		= STEP_CONFIG_FORMAT_WARN;
						MState_inf.Fresh	= FRESH_ON;
					}else{
						//MState_inf.State	= MACHINE_STATE_CONFIG;
						//MState_inf.Func		= FUNC_CONFIG_FORMAT;
						MState_inf.Step		= STEP_CONFIG_FORMAT_PSER;
						MState_inf.Fresh	= FRESH_ON;						
					}
									
					break;
				}	
				case KEY_CLS:
				{					
					MState_inf.State	= MACHINE_STATE_CONFIG;
					MState_inf.Func		= FUNC_CONFIG;
					MState_inf.Fresh	= FRESH_ON;		
					break;
				}
				default:
					break;
			}
								
		}else if( MState_inf.Step == STEP_CONFIG_FORMAT_PSER ) {
			//--->>if password error,any key to return
			for(i=0; i<10; i++)	MState_msg[i] = 0;
			
			MState_inf.State 	= MACHINE_STATE_CONFIG;
			MState_inf.Func		= FUNC_CONFIG_FORMAT;
			MState_inf.Step		= STEP_CONFIG_FORMAT_PSWD;
			MState_inf.Fresh	= FRESH_ON;
			
		}else if( MState_inf.Step == STEP_CONFIG_FORMAT_WARN ) {
			//--->> operator warning
			switch( key )
			{
				case KEY_ENTER:	//--->>Enter: format run
				{
					FS_format();
					MState_inf.Step		= STEP_CONFIG_FORMAT_RUN;
					MState_inf.Fresh	= FRESH_ON;	
					break;
				}	
				case KEY_CLS:	//--->>Esc: quit
				{					
					MState_inf.State	= MACHINE_STATE_CONFIG;
					MState_inf.Func		= FUNC_CONFIG;
					MState_inf.Fresh	= FRESH_ON;		
					break;
				}
				default:
					break;
			}
			
		}else if( MState_inf.Step == STEP_CONFIG_FORMAT_RUN ) {			
			//--->>any key to return
			MState_inf.State	= MACHINE_STATE_CONFIG;
			MState_inf.Func		= FUNC_CONFIG;
			MState_inf.Fresh	= FRESH_ON;
		}
		
	}else if( MState_inf.Func == FUNC_CONFIG_PSWD ){//===>> Change PassWord
		if( MState_inf.Step	== STEP_CONFIG_PSWD_OLD )
		{	//--->>check password
			switch( key )
			{
				case '0':
				case '1':
				case '2':
				case '3':
				case '4':
				case '5':
				case '6':
				case '7':
				case '8':
				case '9':				
				{
					if( MState_msg[0] < 7 ){
						MState_msg[0]++;						
						MState_msg[ (MState_msg[0]) ] = key;
						MState_inf.Fresh	= FRESH_ON;
					}
					break;
				}
				case KEY_ENTER:
				{
					for(i=1; i<=(Pswd[0]); i++){
						if( MState_msg[i] != Pswd[i] )	break;
					}
					
					if( i>(Pswd[0]) ){
						for(i=0; i<10; i++)	MState_msg[i] = 0;						
						MState_inf.Step		= STEP_CONFIG_PSWD_NEW;
						MState_inf.Fresh	= FRESH_ON;
						
					}else{
						MState_inf.Step		= STEP_CONFIG_PSWD_PSER;
						MState_inf.Fresh	= FRESH_ON;						
					}
									
					break;
				}	
				case KEY_CLS:
				{					
					MState_inf.State	= MACHINE_STATE_CONFIG;
					MState_inf.Func		= FUNC_CONFIG;
					MState_inf.Fresh	= FRESH_ON;		
					break;
				}
				default:
					break;
			}
								
		}else if( MState_inf.Step == STEP_CONFIG_PSWD_PSER ) {
			//--->>if password error,any key to return
			MState_inf.State	= MACHINE_STATE_CONFIG;
			MState_inf.Func		= FUNC_CONFIG;
			MState_inf.Fresh	= FRESH_ON;	
			
		}else if( MState_inf.Step == STEP_CONFIG_PSWD_NEW ) {
			//--->> new password
			switch( key )
			{
				case '0':
				case '1':
				case '2':
				case '3':
				case '4':
				case '5':
				case '6':
				case '7':
				case '8':
				case '9':				
				{
					if( MState_msg[0] < 7 ){
						MState_msg[0]++;						
						MState_msg[ (MState_msg[0]) ] = key;
						MState_inf.Fresh	= FRESH_ON;
					}
					break;
				}
				case KEY_ENTER:
				{
					for(i=0; i<10; i++)	MState_again[i] = 0;
					
					MState_inf.Step		= STEP_CONFIG_PSWD_AGAIN;
					MState_inf.Fresh	= FRESH_ON;
				
					break;
				}	
				case KEY_CLS:
				{					
					MState_inf.State	= MACHINE_STATE_CONFIG;
					MState_inf.Func		= FUNC_CONFIG;
					MState_inf.Fresh	= FRESH_ON;		
					break;
				}
				default:
					break;
			}
			
		}else if( MState_inf.Step == STEP_CONFIG_PSWD_AGAIN ) {
			//--->>any password again
			switch( key )
			{
				case '0':
				case '1':
				case '2':
				case '3':
				case '4':
				case '5':
				case '6':
				case '7':
				case '8':
				case '9':				
				{
					if( MState_again[0] < 7 ){
						MState_again[0]++;						
						MState_again[ (MState_again[0]) ] = key;
						MState_inf.Fresh	= FRESH_ON;
					}
					break;
				}
				case KEY_ENTER:
				{
					for(i=0; i<=(MState_msg[0]); i++){
						if( MState_msg[i] != MState_again[i] )	break;
					}
					
					if( i>(MState_msg[0]) ){
						MState_inf.Step		= STEP_CONFIG_PSWD_SAVE;
						MState_inf.Fresh	= FRESH_ON;
					}else{
						MState_inf.Step		= STEP_CONFIG_PSWD_PSER;
						MState_inf.Fresh	= FRESH_ON;						
					}
									
					break;
				}	
				case KEY_CLS:
				{					
					MState_inf.State	= MACHINE_STATE_CONFIG;
					MState_inf.Func		= FUNC_CONFIG;
					MState_inf.Fresh	= FRESH_ON;		
					break;
				}
				default:
					break;
			}
			
		}else if( MState_inf.Step == STEP_CONFIG_PSWD_SAVE ) {
			//--->>any password save
						
			MState_inf.State	= MACHINE_STATE_CONFIG;
			MState_inf.Func		= FUNC_CONFIG;
			MState_inf.Fresh	= FRESH_ON;		
		}
		
	}
		
}
//-----------------------
void MState_switch_com(unsigned char key )
{
	if( key == KEY_CLS ){
		
		MState_inf.State	= MACHINE_STATE_MAIN;
		MState_inf.Func		= FUNC_MAIN;
		MState_inf.Fresh	= FRESH_ON;
	}
}

⌨️ 快捷键说明

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