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

📄 analyse.c

📁 一种电话遥控板的原程序
💻 C
字号:
#define MACRO_ENDFLAG  0x23
uchar SerialDBuf[25] ;
uchar SerialDLength ; 
void Serial_DealInit()
{
	SerialDLength = 0 ;
}
uchar TransLate(uchar indata)
{
	if((indata>=0x30)&&(indata<=0x39))
		indata -= 0x30 ;
	else if(indata == '*')
		indata = 0xe ;
	else if(indata == '#')
		indata = 0xf ;
	else if((indata == 'a')||(indata == 'A'))
		indata = 0xa ;
	else if((indata == 'b')||(indata == 'B'))
		indata = 0xb ;
	else if((indata == 'c')||(indata == 'C'))
		indata = 0xc ;
	else if((indata == 'd')||(indata == 'D'))
		indata = 0xd ;
	return indata ;
}
void Serial_Deal(uchar indata)
{
	uchar command ,i;
	
	if(indata != MACRO_ENDFLAG)
	{
		if((indata == 'a')||(indata == 'A'))
		{
			SerialDLength = 0 ;
		}
		SerialDBuf[SerialDLength] = indata ;
		if(SerialDLength<24) SerialDLength++ ;
		return ;
	}	
	else
	{
		if(SerialDLength<3) goto ERRORDEAL  ;
		if((SerialDBuf[0] != 'A')&&(SerialDBuf[0] != 'a')) goto ERRORDEAL ;
		if((SerialDBuf[1] != 'T')&&(SerialDBuf[1] != 't')) goto ERRORDEAL ;
		command = SerialDBuf[2] ;
		switch(command)
		{
			case 'Z':
			case 'z':
				if(Is_TongHua_flag == 1)
				{
					Serial_SendCommand("ATZERROR#",9) ;
					break ;
				}
				if(IsInputRing != 1)
				{
					OTel_RP_ZJ() ;
					Phone_ToneCtrl(TRUE) ;
					delay(100) ;
					disp_buf = 0x0a ;
/*					for(i=0;i<25;i++)
					{
						if(ToneKind == 0x31) break ;
						if(ToneKind == 0x30) break ;
//						if(ToneKind == 0x32) break ;
						delay(100) ;
					}
					if(ToneKind == 0x31) */
						Serial_SendCommand("ATZOK#",6) ;
//					else
//						Serial_SendCommand("ATZERROR#",9) ;
				}
				else
				{
					OTel_RP_ZJ() ;
					Is_TongHua_flag = 1 ;
					Serial_SendCommand("ATZOK#",6) ;
				}
				Busy_analyse_flag = 1 ;
				Phone_ToneCtrl(TRUE) ;
				break ;
			case 'H':
			case 'h':
				OTel_RP_GJ() ;
				disp_buf = 0xff ;
				Serial_SendCommand("ATHOK#",6) ;
				break ;
/*			case 'C':
			case 'c':
				Serial_SendCommand("ATCOK#",6) ;
				break ;*/
			case 'D':
			case 'd':
				if(Is_TongHua_flag == 1)
				{
					Serial_SendCommand("ATDERROR#",9) ;
					break ;
				}
				disp_buf = 19 ;
				if(SerialDLength < 4)	goto ERRORDEAL  ;
				for(i=3;i<SerialDLength;i++)
				{
					if((SerialDBuf[i]<0x30)||(SerialDBuf[i]>0x39))	goto ERRORDEAL  ;
				}
				Busy_analyse_flag = 0 ;
				for(i=3;i<SerialDLength;i++)
					Send_Code(TransLate(SerialDBuf[i])) ; 
				delay(100) ;
//				Phone_ToneCtrl(FALSE) ;
				Busy_analyse_flag = 1 ;
				Is_TongHua_flag = 1 ;
				Phone_ToneCtrl(TRUE) ;
				for(i=0;i<200;i++)
				{
//					if(ToneKind == 0x31) break ;
					if(ToneKind == 0x30) break ;
					if(ToneKind == 0x32) break ;
					delay(100) ;
				}
				if(ToneKind == 0x32)
				{
					Huilingying_flag = 1 ;
					Serial_SendCommand("ATDOK#",6) ;
//					Phone_ToneCtrl(TRUE) ;
//					i = Sys_TimerReqire(OTimerID1,170,0) ;		//超时处理

				}
				else
				{
					Serial_SendCommand("ATDERROR#",9) ;
				}
				break ;
			case 'F':
			case 'f':
				disp_buf = 17 ;
				if(SerialDLength == 4)
				{
					i = SerialDBuf[3]-0x30 ;
					if(i>9)	goto ERRORDEAL  ;
				}
				else if(SerialDLength == 5)
				{
					SerialDBuf[3] -= 0x30 ;
					SerialDBuf[4] -= 0x30 ;
					if((SerialDBuf[3]>9)||(SerialDBuf[4]>9))	goto ERRORDEAL  ;
					i = SerialDBuf[3]*10+SerialDBuf[4] ;
				}
				else	goto ERRORDEAL ;
				Send_Play_Play(YuYin_TiShi[i].YuYinlen,YuYin_TiShi[i].YuYinCmd) ;
				Checked_playend_flag = 1 ;
				break ;
			case 'r':
			case 'R':
				if((ToneKind >= 0x30)&&(ToneKind <= 0x32))
					i = ToneKind - 0x30 ;
				else
					i = 3 ;
				Serial_SendCommand("ATR",3) ;
				Serial_SendCommand(&i,1) ;
				Serial_SendCommand("#",1) ;
				break ;
			default:
				break ;
		}
	}
	SerialDLength = 0 ;
	return ;
ERRORDEAL :
	SerialDLength = 0 ;
	Serial_SendCommand("ATCOMMANDERROR#",15) ;
}

⌨️ 快捷键说明

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