📄 gprsmux.cpp
字号:
#include <stdio.h>
#include <string.h>
#include <conio.h>
#include <iostream.h>
#include <time.h>
#include <dos.h>
#include "etr_ppp.h"
#include "GPRS_sms.h"
#include "etr232i.h"
char RxBuf[1500];
char TxBuf[1500];
int GetIPfromSMS( char* InStr, char* IPStr );
unsigned char IPStr[20];
int main( int argc, char** argv )
{
int i, i1, i2, EndFlag;
unsigned char OwnIPStr[20];
struct RcvSMSInfo Info[50];
printf( "GPRS Mux test\n" );
_PowerOff:
if( GPRSPowerIsOn() )
{
i = InitPPPNet( );
i = GPRSPowerOff( );
if( i==0 )
{
for(;;)
{
if( !GPRSPowerIsOn() ) break;
}
}
i = TermPPPNet( );
goto _PowerOff;
}
_PowerOn:
if( !GPRSPowerIsOn( ) )
{
DisableIGT( );
NB_Delay( 200 );
EnableIGT( );
NB_Delay( 200 );
DisableIGT( );
NB_Delay( 8000 );
}
_Startup:
i = InitPPPNet( );
if( i < 0 )
{
printf( "Init failed: %d \n", i );
return -1;
}
//i = SendSMS( "13880503091", "test" );
i = SelectSMSSrv( );
//start SerMux
i = StartSerMux( );
if( i<0 )
{
i = TermPPPNet( );
NB_Delay(5000);
goto _Startup;
}
i = SetSerMuxUp( );
if( i<0 )
{
i = GPRSPowerOff( );
i = TermPPPNet( );
NB_Delay(5000);
goto _PowerOn;
}
//SerMuxUp
//i = SendSMS( "13880503091", "test1" );
_TryAgain:
i = GPRS_Logon( );
if( i<0 )
{
NB_Delay( 5000 );
//printf( "GPRS connect fail\n" );
//i = CloseSerMuxDown( );
//i = TermPPPNet( );
goto _TryAgain;
}
printf( "GPRS connect\n" );
i = SetupPPPLink( 15 );
if( i < 0 )
{
i = GPRSPowerOff( );
i = TermPPPNet( );
NB_Delay(5000);
goto _PowerOn;
}
printf( "PPP Link Up\n" );
i = GetOWNIP( OwnIPStr );
sprintf( RxBuf,"IP=%d.%d.%d.%d", OwnIPStr[0],OwnIPStr[1], OwnIPStr[2],
OwnIPStr[3] );
i = SendSMS( "13880503091", RxBuf );
//receive SMS
for(EndFlag=1;;)
{
i1 = CheckSMS( Info );
if( i1>0 )
{
for( i=0; i<i1; i++ )
{
i2 = ReceiveSMS( TxBuf, Info[i].Index );
if( i2<0 ) continue;
TxBuf[i2] = '\0';
i2 = GetIPfromSMS( TxBuf, IPStr );
if( i2==0 ) EndFlag=0;
}
}
if(EndFlag==0) break;
}
for(;;)
{
if( GetPPPState( ) != 1 ) break;
//check power is on/off
if( !GPRSPowerIsOn( ) )
{
break;
}
}
i = ForcePPPLinkDown( );
i = GPRSPowerOff( );
i = TermPPPNet( );
goto _PowerOn;
return 0;
}
int GetIPfromSMS( char* InStr, char* IPStr )
{
int n[4];
if( strncmpi( InStr, "IP=", 3 ) ) return -1;
sscanf( InStr, "IP=%d.%d.%d.%d", &n[0], &n[1], &n[2], &n[3] );
sprintf( IPStr, "%d.%d.%d.%d", n[0], n[1], n[2], n[3] );
return 0;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -