?? analyse.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 + -