📄 atframe.c
字号:
void CheckLine(void)
{
// if(WorkFG.bits.Online)
// {
if(SecCnt&0x01) return;
// }
if(Framept2.pt!=RXpt2.pt) return;
ATcipstatus();
if(WaitFrame2()!=1)
{
CheckLine_err:
WorkFG.bits.InitErr=1;
return;
}
Framept2.data=FrameEnd2.data;
R3=*(Framept2.pt-3);
COMFG2.bits.AFrame=0;
if(R3=='8')
{
if(!WorkFG.bits.Online)
{
if(ConnectOkEN)
{
ConnectOk=1;
ConnectOkEN=0;
}
WorkFG.bits.Online=1;
}
Connecting=0;
SIG_Lap=0;
return;
}
else
{
// if((R3<=0x39)&&(R3>=0x30)&&(R3!=0x38))
// {
WorkFG.bits.Online=0;
Connecting=1;
// }
}
if(!WorkFG.bits.Online)
{
if(SecRedail>=SetReSec) // if Online=0, per 16sec connect
{
if(++ReDialCnt>=3)
RUNERR();
ATcipclose();
if(WaitFrame2()!=1)
goto CheckLine_err;
ResetCOMBUF2();
ATcipstart();
if(Wait300d_2()!=1)
goto CheckLine_err;
ResetCOMBUF2();
R0=40;
while(R0--)
{
Delay50ms();
}
SecRedail=0;
ConnectOkEN=1;
}
}
}
void InitGPRS(void)
{
SendATFG.ch=0;
WorkFG.ch=0;
WorkFG.bits.TestMS=1;
ATclear();
Delay50ms();
Delay50ms();
Delay50ms();
Delay50ms();
ATev();
Delay50ms();
Delay50ms();
ResetCOMBUF1();
ResetCOMBUF2();
// ATuart();
// Delay50ms();
// Delay50ms();
// if(Wait300d_2()!=1)
// goto InitGPRS_err;
ATev();
if(Wait300d_2()!=1)
{
Nop();
InitGPRS_err:
WorkFG.bits.InitErr=1;
return;
}
ATcscs();
if(Wait300d_2()!=1)
goto InitGPRS_err;
// ATcfun();
// if(Wait300d_2()!=1) goto InitGPRS_err;
ATcmgf();
if(Wait300d_2()!=1)
goto InitGPRS_err;
ATcnmi();
if(Wait300d_2()!=1)
goto InitGPRS_err;
R0=40;
WorkFG.bits.NetERR=1;
while(R0--)
{
ATcreg();
if(WaitFrame2()!=1)
goto InitGPRS_err;
ATframe();
Delay50ms();
Delay50ms();
Delay50ms();
Delay50ms();
Delay50ms();
Delay50ms();
Delay50ms();
Delay50ms();
Delay50ms();
Delay50ms();
SecErr=0;
if(COMFG2.bits.AFrame) ATframe();
if(!WorkFG.bits.NetERR) break;
}
if(WorkFG.bits.NetERR)
goto InitGPRS_err; //*/
// ATcops();
// if(WaitFrame2()!=1) goto InitGPRS_err;
// ATframe();
/* R0=200;
while(R0--)
{
Delay50ms();
SecErr=0;
}
*/
ATcipshut();
if(WaitFrame2()!=1) goto InitGPRS_err;
Delay50ms();
Delay50ms();
ResetCOMBUF2();
ATciphead(); //1
if(Wait300d_2()!=1)
goto InitGPRS_err;
ATcipsprt(); //1
if(Wait300d_2()!=1)
goto InitGPRS_err;
ATcipflp(); //1
if(Wait300d_2()!=1)
goto InitGPRS_err;
ATcipsrip(); //0
if(Wait300d_2()!=1)
goto InitGPRS_err;
ATcdnsorip(); //0
if(Wait300d_2()!=1)
goto InitGPRS_err;
ATcipdpdp(); //=1,120,255
if(Wait300d_2()!=1)
goto InitGPRS_err;
ATcipmode();
if(Wait300d_2()!=1)
goto InitGPRS_err;
ATcipstart();
if(Wait300d_2()!=1)
goto InitGPRS_err;
ResetCOMBUF2();
WorkFG.bits.InitErr=0;
SecRedail=0;
SecCnt=0;
MinTest=0;
ReDialCnt=0;
ConnectOkEN=1;
}
void sendAT(void)
{
SendATFG.bits.ATing=1;
TXpt1.pt=ATBUF;
TXOVERTMR2=0;
while(TXOVERTMR2<30) //240ms
{
Com1Trans();
if(!SendATFG.bits.ATing)
break;
}
Nop();
}
void Serialframe(void)
{
SFrameFG.ch=0;
if(COMFG1.bits.BUF_over)
{
INTCONbits.GIE=0;
ResetCOMBUF1();
INTCONbits.GIE=1;
}
if(COMFG1.bits.FramErr)
{
INTCONbits.GIE=0;
Framept1.data=FrameErr1.data;
COMFG1.bits.FramErr=0;
COMFG1.bits.AFrame=0;
INTCONbits.GIE=1;
} //*/
INTCONbits.GIE=0;
RXptbak.pt=RXpt1.pt;
INTCONbits.GIE=1;
if(!COMFG1.bits.AFrame)
{
if(Framept1.data==RXptbak.data) return;
}
if(SendATFG.bits.Tranning)
return;
temp4.Uchp=Framept1.pt; //temp4.Uchp 存储FRAME指针
Get_char1();
if(R3=='#')
{
Get_char1();
if(R3!='#') goto check1_continue;
Get_char1();
if(R3!='#') goto check1_continue;
Get_char1();
if(R3!='*') goto check1_continue;
Get_char1();
if(R3!='*') goto check1_continue;
Get_char1();
if(R3!='*') goto check1_continue;
Get_char1();
if(!COMFG1.bits.AFrame) return;
Framept1.data=FrameEnd1.data;
COMFG1.bits.AFrame=0;
if(R3=='?')
{
Get_char1();
if(R3!='?') return; //此帧数据无效
Get_char1();
if(R3!='?') return;
if((COMFG2.ch&0x0f)||SendATFG.bits.IPDing)
return;
INTCONbits.GIE=0;
ResetCOMBUF2();
COMBUF2[0]='#';
COMBUF2[1]='#';
COMBUF2[2]='#';
COMBUF2[3]='*';
COMBUF2[4]='*';
COMBUF2[5]='*';
COMBUF2[6]=0x0d;
COMBUF2[7]=0x0a;
COMBUF2[8]=' ';
COMBUF2[9]=' ';
COMBUF2[10]='H';
COMBUF2[11]='D';
COMBUF2[12]='=';
COMBUF2[13]='0';
if(CONFIGFG.bits.enID) COMBUF2[13]='1';
COMBUF2[14]=',';
for(R0=0,R1=0;R0<12;R0++)
{
R3=HeadID[R0];
if((R3==0x0d)||(R3==' ')) R1=1;
if(R1) R3=' ';
COMBUF2[15+R0]=R3;
}
COMBUF2[27]=0x0d;
COMBUF2[28]=0x0a;
COMBUF2[29]='M';
COMBUF2[30]='O';
COMBUF2[31]='D';
COMBUF2[32]='E';
COMBUF2[33]='=';
COMBUF2[34]=Mode;
COMBUF2[35]=0x0d;
COMBUF2[36]=0x0a;
COMBUF2[37]=' ';
COMBUF2[38]='R';
COMBUF2[39]='D';
COMBUF2[40]='T';
COMBUF2[41]='=';
R0=SetReSec/100;
COMBUF2[42]=0x30+R0;
R0=(SetReSec-R0*100)/10;
COMBUF2[43]=0x30+R0;
R0=SetReSec-(SetReSec/10)*10;
COMBUF2[44]=0x30+R0;
COMBUF2[45]=0x0d;
COMBUF2[46]=0x0a;
COMBUF2[47]='T';
COMBUF2[48]='E';
COMBUF2[49]='S';
COMBUF2[50]='T';
COMBUF2[51]='=';
COMBUF2[52]='0';
if(CONFIGFG.bits.enTest) COMBUF2[52]='1';
COMBUF2[53]=',';
COMBUF2[54]=0x30+SetMinTest;
COMBUF2[55]=' ';
COMBUF2[56]=0x0d;
COMBUF2[57]=0x0a;
COMBUF2[58]=' ';
COMBUF2[59]=' ';
COMBUF2[60]='I';
COMBUF2[61]='P';
COMBUF2[62]='=';
subah=0;
subal=AT_IPadr;
IICNUM=15;
IICMEM=COMBUF2+63;
EEPR();
COMBUF2[78]=':';
subah=0;
subal=AT_IPport;
IICNUM=5;
IICMEM=COMBUF2+79;
EEPR();
COMBUF2[84]=0x0d;
COMBUF2[85]=0x0a;
COMBUF2[86]=' ';
COMBUF2[87]='B';
COMBUF2[88]='P';
COMBUF2[89]='S';
COMBUF2[90]='=';
COMBUF2[91]='0';
if(CONFIGFG.bits.Com1Bit9) COMBUF2[91]='1';
COMBUF2[92]=',';
COMBUF2[93]=' ';
if(Com1BPS==0)
{
COMBUF2[94]=' ';
COMBUF2[95]='3';
}
else if(Com1BPS==1)
{
COMBUF2[94]=' ';
COMBUF2[95]='6';
}
else if(Com1BPS==2)
{
COMBUF2[94]='1';
COMBUF2[95]='2';
}
else if(Com1BPS==3)
{
COMBUF2[94]='2';
COMBUF2[95]='4';
}
else if(Com1BPS==4)
{
COMBUF2[94]='4';
COMBUF2[95]='8';
}
else if(Com1BPS==6)
{
COMBUF2[93]='1';
COMBUF2[94]='9';
COMBUF2[95]='2';
}
else
{
COMBUF2[94]='9';
COMBUF2[95]='6';
}
COMBUF2[96]='0';
COMBUF2[97]='0';
COMBUF2[98]=0x0d;
COMBUF2[99]=0x0a;
COMBUF2[100]=' ';
COMBUF2[101]='C';
COMBUF2[102]='S';
COMBUF2[103]='Q';
COMBUF2[104]='=';
COMBUF2[105]=(NetRssi/0x10)+0x30;
COMBUF2[106]=(NetRssi&0x0f)+0x30;
COMBUF2[107]=',';
COMBUF2[108]=(NetBer/0x10)+0x30;
COMBUF2[109]=(NetBer&0x0f)+0x30;
COMBUF2[110]=0x0d;
COMBUF2[111]=0x0a;
COMBUF2[112]='V';
COMBUF2[113]='e';
COMBUF2[114]='r';
COMBUF2[115]=' ';
COMBUF2[116]='=';
COMBUF2[117]='3';
COMBUF2[118]='.';
COMBUF2[119]='0';
COMBUF2[120]=0x0d;
COMBUF2[121]=0x0a;
TXSAVED2=IPDlen=122;
IPDtran=1;
SendATFG.bits.IPDing=1;
COMFG2.bits.AFrame=1;
RXpt2.pt=COMBUF2+122;
FrameEnd2.data=RXpt2.data;
RXOVERTMR2=0;
INTCONbits.GIE=1;
return;
}
if(R3=='I')
{
Get_char1();
if(R3!='P') return; //此帧数据无效
Get_char1();
if(R3!=':') return;
Get_char1();
BFIIC[0]=R3;
Get_char1();
BFIIC[1]=R3;
Get_char1();
BFIIC[2]=R3;
Get_char1();
BFIIC[3]=R3;
Get_char1();
BFIIC[4]=R3;
Get_char1();
BFIIC[5]=R3;
Get_char1();
BFIIC[6]=R3;
Get_char1();
BFIIC[7]=R3;
Get_char1();
BFIIC[8]=R3;
Get_char1();
BFIIC[9]=R3;
Get_char1();
BFIIC[10]=R3;
Get_char1();
BFIIC[11]=R3;
Get_char1();
BFIIC[12]=R3;
Get_char1();
BFIIC[13]=R3;
Get_char1();
BFIIC[14]=R3;
Get_char1();
BFIIC[15]=R3;
Get_char1();
BFIIC[16]=R3;
Get_char1();
BFIIC[17]=R3;
Get_char1();
BFIIC[18]=R3;
Get_char1();
BFIIC[19]=R3;
Get_char1();
BFIIC[20]=R3;
if(Check_ServerIP()!=1) return; //not Number
if(SFrameFG.bits.Contin) return;
subah=0;
subal=AT_IPadr;
IICNUM=15;
IICMEM=BFIIC;
EEPW();
subah=0;
subal=AT_IPport;
IICNUM=5;
IICMEM=BFIIC+16;
EEPW();
SendATFG.bits.IPchange=1;
return;
}
if(R3=='P')
{
Get_char1();
if(R3!='A') return; //此帧数据无效
Get_char1();
if(R3!='S') return;
Get_char1();
if(R3!='S') return;
Get_char1();
if(R3!=':') return;
Get_char1();
BFIIC[0]=R3;
Get_char1();
BFIIC[1]=R3;
Get_char1();
BFIIC[2]=R3;
Get_char1();
BFIIC[3]=R3;
if(SFrameFG.bits.Contin) return;
subah=0;
subal=AT_PASS;
IICNUM=4;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -