亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? gprs_sms.cpp

?? 通過GPRS的PPP拔號程序,本程序在x86下通過測試
?? CPP
字號:
#include <stdio.h>
#include <stdlib.h>
#include <dos.h>
#include <time.h>
#include <string.h>
#include <math.h>
#include "gprs_sms.h"
#include "etr232i.h"
#include "etr_ppp.h"

#define  retries       3        //# A counter for the number of retries

int   ConvertUDStr( char* InStr, char* OutStr );
void  ConvertPhoneNumber( char* InStr, char* OutStr );
int   GetRcvMSG( char* Str );
void  ToPhoneNumber( char* InStr, char* OutStr );
void  ToTime( char* InStr, char* OutStr );
int   Bit8ToStr( char* InStr, char* OutStr );
int   Bit16ToStr( char* InStr, char* OutStr );
int   GetMSGList( struct RcvSMSInfo* Info );

unsigned char str1[20], str2[200], str[200];

int SEND( char* cmdstr )
{
   int i;
   i = SendATCmdString( cmdstr );
   return i;
}

char ReturnStr[2560];
//return 0:  OK
  //     -1: fail
int CHECK( int time, char* ResultStr )
{
   int  i, i1, len, len1;
   long j, NumOf10MS;
   char abyte;

   NumOf10MS = time * 100;

   for(i=0;i<2560;i++)    ReturnStr[i] = '\0';
   len1 = strlen( ResultStr );
   for(len=0, i=0; i<NumOf10MS; i++ )
      {
      NB_Delay( 10 );
      i1 = GetATCmdEcho( );
      if( i1 == -1 )  continue;
      abyte = (char)i1;
      if( abyte == '\r' )      ReturnStr[len] = 'r';
      else if( abyte == '\n' ) ReturnStr[len] = 'n';
      else                     ReturnStr[len] = abyte;
      len++;
      ReturnStr[len] = '\0';
      if( len < len1 ) continue;
      if( strncmpi( &ReturnStr[len-len1], ResultStr, len1 )==0 )  return 0;
      if( len >= 2560 ) break;
      }

   if( i >= NumOf10MS ) return ETIMEDOUT;
   return -1;
}

int StartSerMux( )
{
   int i;
   int num=retries;

_1:
    num--;
    if( num < 0)   return -1;

_2:
   SEND( "AT\\Q3\r" );			//set hardware flow control: RTS/CTS
   i = CHECK( 2, "OKrn" );
   if( i<0 )    goto _1;

_3:
   SEND( "AT+IPR=57600\r" );
   i = CHECK( 2, "OKrn");
   if( i<0 )    goto _1;

_4:
   SEND( "AT+CMUX=0\r" );
   i = CHECK( 2, "OKrn" );
   if( i==0 )
     {
     NB_Delay(2000);
     return 0;
     }
   goto _1;

}

int GPRS_Logon( )
{
   int i, n=0;
   int num=retries;

_1:
    num--;
    if( num < 0)   return -1;

_2:
   SEND( "ATE0\r" );  				//AT command echo off
   i = CHECK( 1, "OKrn" );
   if( i<0 )    goto _7;

_3:
   n++;
   SEND( "AT+CGATT?\r" );		       //check GPRS service states
   i = CHECK( 2, "1" );
   if( i==0 )          goto _5;
   if( n>=retries )    return -2;

_4:
   SEND( "AT+CGATT=1\r" );
   i = CHECK( 10, "OKrn" );
   if( i==0 )    goto _3;
   goto _2;

_5:
   SEND( "AT+CGDCONT=1,\"IP\",\"CMNET\"\r" );
   i = CHECK( 2, "OKrn" );
   if( i<0)     goto _7;

_6:
   NB_Delay( 200 );
   SEND( "ATD*99***1#\r" );
   i = CHECK( 5, "CONNECT" );		// used to be = 10
   if( i==0 )   return 0;

_7:
   SEND( "+++\r" );
   i = CHECK( 1, "OKrn" );
   NB_Delay( 1000 );
   SEND( "ATH\r");       //  # Hang up
   i = CHECK( 1, "OKrn" );
   NB_Delay( 1000 );
   goto _1;
}

int SendSMS( char* Number, char* Content )
{
   int i, i1;
   int num=retries;

_1:
    num--;
    if( num < 0)   return -1;

_2:
   SEND( "ATE0\r" );
   i = CHECK( 2, "OKrn" );
   if( i<0 )   goto _8;


_3:
   /*SEND( "ATI\r" );
   i = CHECK( 2, "OKrn" );
   if( i<0 )   goto _8;*/

_4:

/*   SEND( "AT+CMGF=0\r" );
   i = CHECK( 2, "OKrn" );
   if( i<0 )   goto _8;

_5:
   SEND( "AT+CSCA=?\r" );
   i = CHECK( 2, "OKrn" );
   if( i<0 )   goto _8;

_6:
   ConvertPhoneNumber( Number,  str1);
   i1 = ConvertUDStr( Content, str2 );
   sprintf(str, "0001000B91%s0000%02x%s", str1, (unsigned int)i1, str2 );
   i1 = strlen( str )/2;
   sprintf( str2, "AT+CMGS=%d\r", i1 );
   SEND( str2 );
   i = CHECK( 2, ">" );
   if( i<0 )   goto _8;

_7:
   i = strlen(str);
   str[i] = 0x1A;		// Ctrl-Z
   str[i+1] = '\0';
   SEND( str );
   i = CHECK( 10, "OKrn" );
   if( i==0 )   return i;*/

   SEND( "AT+CMGF=1\r" );
   i = CHECK( 2, "OKrn" );
   if( i<0 )   goto _8;

_5:
   SEND( "AT+CSCA?\r" );
   i = CHECK( 2, "OKrn" );
   if( i<0 )   goto _8;

_6:
   sprintf( str,"AT+CMGS=%s\r", Number );
   SEND( str );
   i = CHECK( 2, ">" );
   if( i<0 )   goto _8;

_7:
   strcpy( str,Content);
   i = strlen(str);
   str[i] = 0x1A;		// Ctrl-Z
   str[i+1] = '\0';
   SEND( str );
   i = CHECK( 20, "OKrn" );
   if( i==0 )   return i;

_8:
   NB_Delay(1000);
   goto _1;
}

int ReceiveSMS( char* Content, int Index )
{
   int i, i1;
   int num=retries;

_1:
   num--;
   if( num < 0)   return -1;

_2:
   SEND( "ATE0\r" );
   i = CHECK( 2, "OKrn" );
   if( i<0 )      goto _6;

_3:
   /*SEND( "ATI\r" );
   i = CHECK( 2, "OKrn" );
   if( i<0 )     goto _6;*/

_4:
   SEND( "AT+CMGF=0\r" );
   i = CHECK( 2, "OKrn" );
   if( i<0 )      goto _6;

_5:
   sprintf( str1, "AT+CMGR=%d\r", Index );
   SEND( str1 );
   i = CHECK( 20, "OKrn" );

   if( i==0 )
      {
      i = GetRcvMSG( Content );
      sprintf( str1, "AT+CMGD=%d\r", Index );
      SEND( str1 );
      i1 = CHECK( 5, "OKrn" );
      return i;
      }
_6:
   NB_Delay(1000);
   goto _1;
}

int CheckSMS( struct RcvSMSInfo* Info )
{
   int i, i1;
   int num=retries;

_1:
   num--;
   if( num < 0)   return -1;
   /*SEND( "AT+CBAUD?\r" );
   i = CHECK( 2, "OKrn" );
   if( i!=0 )
      {
      SEND( "AT+CBAUD=8\r" );
      i = CHECK( 2, "OKrn" );
      }*/

_2:
   SEND( "ATE0\r" );
   i = CHECK( 2, "OKrn" );
   if( i<0 )      goto _6;

_3:
   /*SEND( "ATI\r" );
   i = CHECK( 2, "OKrn" );
   if( i<0 )     goto _6;*/

_4:
   SEND( "AT+CMGF=0\r" );
   i = CHECK( 2, "OKrn" );
   if( i<0 )      goto _6;

_5:
   SEND( "AT+CMGL=4\r" );
   i = CHECK( 30, "OKrn" );
   if( i==0 )
      {
      i1 = GetMSGList( Info );
      return i1;
      }
_6:
   NB_Delay(1000);
   goto _1;
}

int DelSMS( int Index )
{
   int i, i1;
   int num=retries;

_1:
   num--;
   if( num < 0)   return -1;
   /*SEND( "AT+CBAUD?\r" );
   i = CHECK( 2, "OKrn" );
   if( i!=0 )
      {
      SEND( "AT+CBAUD=8\r" );
      i = CHECK( 2, "OKrn" );
      }*/

_2:
   SEND( "ATE0\r" );
   i = CHECK( 2, "OKrn" );
   if( i<0 )      goto _6;

_3:
   /*SEND( "ATI\r" );
   i = CHECK( 2, "OKrn" );
   if( i<0 )     goto _6;*/

_4:
   SEND( "AT+CMGF=0\r" );
   i = CHECK( 2, "OKrn" );
   if( i<0 )      goto _6;

_5:
   sprintf( str1, "AT+CMGD=%d\r", Index );
   SEND( str1 );
   i = CHECK( 20, "OKrn" );

   if( i==0)     return i;
_6:
   NB_Delay(1000);
   goto _1;
}


int ConvertUDStr( char* InStr, char* OutStr )
{
   int i, m, n, l, k;
   unsigned char byte1, byte2;
   l = strlen(InStr);
   m = l/8;
   n = l%8;
   k = 0;
   for( l=0; l<m; l++ )
      {
      for( i=0; i<7; i++ )
	 {
	 byte1 = InStr[l*8+i]>>i;
	 byte2 = InStr[l*8+i+1]<<(7-i);
	 byte1 = byte1|byte2;
	 sprintf( &OutStr[k],"%02x", (unsigned int)byte1 );
	 k+=2;
	 }
      }
   for(i=0; i<n; i++ )
      {
      byte1 = InStr[m*8+i]>>i;
      if( i==n-1)  byte2 = 0;
      else         byte2 = InStr[m*8+i+1]<<(7-i);
      byte1 = byte1|byte2;
      sprintf( &OutStr[k],"%02x", (unsigned int)byte1 );
      k+=2;
      }
   OutStr[k] = '\0';

   return strlen(InStr);
}

void ConvertPhoneNumber( char* InStr, char* OutStr )
{
   int i, i1, i2;
   i1 = strlen( InStr );
   i2 = i1%2;
   i1 = i1/2;
   for( i=0; i<i1; i++ )
      {
      OutStr[2*i] = InStr[2*i+1];
      OutStr[2*i+1] = InStr[2*i];
      }
   if( i2!=0 )
      {
      OutStr[2*i] = 'f';
      OutStr[2*i+1] = InStr[2*i];
      OutStr[2*i+2] = '\0';
      }
}

void ToPhoneNumber( char* InStr, char* OutStr )
{
   int i, i1, i2;
   i1 = strlen( InStr )/2;
   for( i=0; i<i1; i++ )
      {
      OutStr[2*i] = InStr[2*i+1];
      OutStr[2*i+1] = InStr[2*i];
      if( (OutStr[2*i+1] == 'f')||(OutStr[2*i+1] == 'F') )
	 {
	 OutStr[2*i+1] = '\0';
	 }
      }
}

void ToTime( char* InStr, char* OutStr )
{
   int i, i1, i2;
   i1 = strlen( InStr )/2;
   OutStr[0] = '2';
   OutStr[1] = '0';
   for( i=0, i2=2; i<i1; i++ )
      {
      OutStr[i2] = InStr[2*i+1];
      i2++;
      OutStr[i2] = InStr[2*i];
      i2++;
      if( i<i1-1 )
	 {
	 OutStr[i2] = '-';
	 i2++;
	 }
      }
   OutStr[i2] = '\0';
}

int GetRcvMSG( char* Str )
{
   int i, i1, i2, len;
   len = strlen(ReturnStr);
   for( i=4; i<len; i++ )
      {
      if( ReturnStr[i-1]=='n' )
	 {
	 strncpy( str, &ReturnStr[i], 2 );
	 sscanf( str, "%2x", &i1 );
	 i += 2*(i1+1);
	 i+=2;
	 strncpy( str, &ReturnStr[i], 2 );
	 sscanf( str, "%2x", &i1 );
	 if( (i1%2)!=0 )  i1++;
	 i+=4;
	 strncpy( str, &ReturnStr[i], i1 );
	 i += i1;
	 break;
	 }
      }
   ToPhoneNumber( str, str1 );
   i+=2;
   strncpy( str, &ReturnStr[i], 2 );
   sscanf( str, "%2x", &i1 );
   i+=2;
   strncpy( str, &ReturnStr[i], 14 );
   str[14] = '\0';
   ToTime( str, str2 );
   i+=16;
   for(i2=0;;i++)
      {
      str[i2] = ReturnStr[i];
      i2++;
      str[i2] = '\0';
      if( strncmpi( &ReturnStr[i+1], "rn", 2 )==0 )    break;
      }
   if( i1==0)    i2 = Bit8ToStr( str, Str );
   else          i2 = Bit16ToStr( str, Str );
   strcpy( str, Str );
   sprintf( Str, "%s From:%s Time:%s", str, str1, str2 );
   return i2;
}

int Bit8ToStr( char* InStr, char* OutStr )
{
   int i, i1, m, n, l;
   unsigned char byte1, byte2;
   char Str[200];
   l = strlen( InStr )/2;
   strcpy( Str, InStr );
   for( i=0,i1=0; i<l; i++ )
      {
      strncpy( OutStr, &Str[i1], 2 );
      OutStr[2] = '\0';
      //str[i] = atoi( str1 );
      sscanf( OutStr, "%2x", &str[i] );
      i1 +=2;
      }
   str[i] = '\0';
   m = strlen(str)/7;
   //n = strlen(str)%7;
   n = l-m*7;
   for(i=0; i<m; i++)
      {
      for(i1=0; i1<8; i1++ )
	 {
	 if( i1==0 )
	    OutStr[i*8+i1] = str[i*7+i1]&0x7f;
	 else if( i1==7 )
	    OutStr[i*8+i1] = (str[i*7+i1-1]>>1)&0x7f;
	 else
	    {
	    byte1 = str[i*7+i1]<<i1;
	    byte2 = str[i*7+i1-1]>>(8-i1);
	    OutStr[i*8+i1] = (byte1|byte2)&0x7f;
	    }
	 }
      }
   for( i1=0; i1<n; i1++ )
      {
      if( i1==0 )
	 OutStr[i*8+i1] = str[i*7+i1]&0x7f;
      else
	 {
	 byte1 = str[i*7+i1]<<i1;
	 byte2 = str[i*7+i1-1]>>(8-i1);
	 OutStr[i*8+i1] = (byte1|byte2)&0x7f;
	 }
      }
   OutStr[i*8+i1] = '\0';

   return strlen(OutStr);
}

int Bit16ToStr( char* InStr, char* OutStr )
{
   int i, i1, len;
   unsigned int ii;
   char ts[4];
   len = strlen( InStr );
   for( i=0, i1=0; i<len-4; )
      {
      if( (InStr[i]=='0')&&(InStr[i+1]=='0') )
	 {
	 strncpy( ts, &InStr[i+2], 2 );
	 ts[2] = '\0';
	 sscanf( ts, "%2x", &ii );
	 ii = ii&0x00ff;
	 OutStr[i1] = (char)ii;
	 i1++;
	 }
      else  break;
      i += 4;
      }
   OutStr[i1] = '\0';
   return strlen(OutStr);
}


int GetMSGList( struct RcvSMSInfo* Info )
{
   int i, i1, i2, len, State;
   len = strlen(ReturnStr);
   for( i=0, i1=0, State=0; i<len-7; i++ )
      {
      if( State==0 )
	 {
	 if( strncmpi( &ReturnStr[i], "+CMGL: ", 7 )==0 )
	    {
	    strncpy( str, &ReturnStr[i+7], 3 );
	    str[3] = '\0';
	    Info[i1].Index = atoi( str );
	    State = 1;
	    }
	 }
      if( State==1 )
	 {
	 if( strncmpi( &ReturnStr[i], "rn", 2 )==0 )
	    {
	    i +=2;
	    strncpy( str, &ReturnStr[i], 2 );
	    sscanf( str, "%2x", &i2 );
	    i += 2*(i2+2);
	    strncpy( str, &ReturnStr[i], 2 );
	    sscanf( str, "%2x", &i2 );
	    if( (i2%2)!=0 )  i2++;
	    i+=4;
	    strncpy( str, &ReturnStr[i], i2 );
	    i += i2;
	    ToPhoneNumber( str, Info[i1].From );
	    i1++;
	    State = 0;
	    }
	 }
      }
   return i1;
}

int GPRSPowerOff( )
{
   int i;
   i = SEND( "AT^SMSO\r" );
   i = CHECK( 2, "OKrn" );
   return i;
}

int SelectSMSSrv( )
{
   int i;

   SEND( "AT+CGSMS=3\r" );
   i = CHECK( 2, "OKrn" );

   return  i;
}

int  EnableIGT( )
{
    GPRS_AUX( 0 );
    GPRS_STB( 1 );
    return 0;
}

int  DisableIGT( )
{
    GPRS_STB( 0 );
    return 0;
}

int GPRSPowerIsOn( )
{
   unsigned char status;

  // check GPRS module power state

  status = GPRS_PWR( );
  return status;
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
久久精品国产澳门| 97se亚洲国产综合自在线| 亚洲尤物视频在线| 日韩va亚洲va欧美va久久| 久久精品72免费观看| 91精彩视频在线观看| 欧美日韩成人高清| 久久久久国产成人精品亚洲午夜| 欧美激情一区二区三区| 亚洲第四色夜色| 不卡视频一二三四| 日韩一级黄色片| 国产欧美精品一区二区色综合| 亚洲激情自拍偷拍| 国产一区久久久| 波波电影院一区二区三区| 一本一本大道香蕉久在线精品| 91丨porny丨最新| 欧美精品一区二区精品网| 亚洲视频1区2区| 日本美女视频一区二区| 不卡电影一区二区三区| 欧美一区二区三级| 一区二区在线免费观看| 国内精品国产三级国产a久久| 日本韩国视频一区二区| 欧美日韩国产高清一区二区三区 | 精品国产乱码91久久久久久网站| 中文字幕欧美三区| 老司机免费视频一区二区三区| 91毛片在线观看| 国产精品九色蝌蚪自拍| 韩国成人在线视频| 91精品国产91久久综合桃花| 国内不卡的二区三区中文字幕| 色94色欧美sute亚洲线路一久| 久久久久久日产精品| 六月丁香综合在线视频| 欧美三级蜜桃2在线观看| 最新国产成人在线观看| 成人听书哪个软件好| 26uuu色噜噜精品一区| 蜜桃久久av一区| 7777精品伊人久久久大香线蕉超级流畅| 国产精品色眯眯| 成人中文字幕合集| 国产欧美日韩卡一| 国产原创一区二区| 精品日韩欧美一区二区| 蜜桃视频第一区免费观看| 在线91免费看| 丝袜美腿亚洲色图| 欧美高清性hdvideosex| 视频一区国产视频| 91麻豆精品国产91久久久久| 亚洲午夜久久久久中文字幕久| 色综合久久久久综合99| 亚洲精品国久久99热| 97精品久久久午夜一区二区三区| 国产精品网站在线播放| 久久精品国产成人一区二区三区| 日韩精品中文字幕在线不卡尤物 | 欧美精品tushy高清| 丝袜a∨在线一区二区三区不卡| 精品视频一区三区九区| 日韩av电影天堂| 日韩无一区二区| 精品一区二区免费看| 国产亚洲成aⅴ人片在线观看| 国产成人精品在线看| 亚洲欧美在线观看| 欧美性猛交xxxxxxxx| 日韩精品久久理论片| 精品国产麻豆免费人成网站| 国产福利一区二区三区在线视频| 图片区小说区区亚洲影院| 欧美精品乱人伦久久久久久| 蜜桃av噜噜一区| 国产欧美在线观看一区| 色狠狠一区二区| 日本伊人色综合网| 欧美国产日韩a欧美在线观看| 色素色在线综合| 奇米影视一区二区三区| 国产日本欧洲亚洲| 在线观看91视频| 黄色精品一二区| 欧美韩国一区二区| 欧美在线观看视频一区二区| 麻豆极品一区二区三区| 中文一区在线播放| 色噜噜狠狠色综合欧洲selulu| 日韩精品一卡二卡三卡四卡无卡| 精品国产欧美一区二区| 91浏览器打开| 亚洲6080在线| 国产丝袜欧美中文另类| 欧美丝袜丝nylons| 国产精品主播直播| 国产视频一区在线观看| 91在线你懂得| 九九精品一区二区| 一区二区三区国产精华| 久久亚洲捆绑美女| 欧美视频在线观看一区二区| 国产成人综合自拍| 男人操女人的视频在线观看欧美| 欧美国产精品v| 日韩区在线观看| 99在线精品一区二区三区| 久久精品久久精品| 亚洲电影第三页| 亚洲欧美日韩国产成人精品影院| 欧美一卡二卡在线观看| 在线欧美日韩精品| 色综合天天综合网国产成人综合天 | 2023国产精品| 91麻豆精品91久久久久久清纯| eeuss鲁片一区二区三区| 美女视频一区二区| 香蕉成人啪国产精品视频综合网| 国产精品视频你懂的| 精品国精品自拍自在线| 91精品在线麻豆| 欧美日韩国产影片| 在线观看区一区二| 成人18视频日本| 91精彩视频在线| 色呦呦网站一区| 欧美日韩精品一区二区在线播放 | 在线免费亚洲电影| 99国产麻豆精品| 99久久精品国产一区| 成人手机在线视频| 国产成人av电影在线播放| 久久91精品久久久久久秒播| 爽好多水快深点欧美视频| 国产+成+人+亚洲欧洲自线| 极品少妇xxxx偷拍精品少妇| 天天操天天干天天综合网| 亚洲五码中文字幕| 亚洲欧美电影一区二区| 1000精品久久久久久久久| 国产精品久久久久婷婷二区次| 久久色.com| 国产日韩欧美激情| 国产女人aaa级久久久级| 日本一区二区免费在线| 亚洲欧洲成人精品av97| 一区二区三区四区高清精品免费观看| 国产精品美女视频| 亚洲最快最全在线视频| 日本视频一区二区| 黑人巨大精品欧美一区| 福利视频网站一区二区三区| 豆国产96在线|亚洲| 色噜噜狠狠成人中文综合| 欧美日韩久久一区二区| 欧美电影免费观看高清完整版在线 | 全国精品久久少妇| 免费精品视频在线| 国产精品性做久久久久久| 91片黄在线观看| 6080国产精品一区二区| 精品欧美乱码久久久久久 | 成人精品小蝌蚪| 欧美蜜桃一区二区三区| 久久久精品免费网站| 一区二区在线免费| 亚洲国产色一区| 国产河南妇女毛片精品久久久| 成人福利视频在线| 国产精品无码永久免费888| 亚洲欧美一区二区不卡| 日本视频在线一区| www.综合网.com| 91精选在线观看| 国产精品进线69影院| 日本大胆欧美人术艺术动态| 国产精品1区2区3区在线观看| 91丝袜美腿高跟国产极品老师 | 紧缚奴在线一区二区三区| 成人国产免费视频| 欧美日韩国产a| 国产精品麻豆一区二区| 日本在线不卡一区| 99久久国产综合色|国产精品| 欧美男人的天堂一二区| 日韩久久久久久| 亚洲高清免费在线| 成人一区二区三区中文字幕| 欧美成人video| 亚洲成人自拍网| 国产成都精品91一区二区三| 欧美日韩一区小说| 亚洲图片欧美色图| 国产乱码精品一区二区三区av | 亚洲欧美一区二区三区国产精品 | 欧美精品一区二区三区高清aⅴ | 久久综合九色综合久久久精品综合|