📄 rspgprs.c
字号:
#ifdef _CVI_#include <ansi_c.h>#endif#include "stdlib.h"#include "string.h"#include "rspindparser.h"#include "rspindhandler.h"#include "cq.h"#include "gprs_a.h"unsignedchar * getfield ( unsigned char * p, unsigned char * pfield, int nbytes );typedef struct { int socket; int protocol; int recvbufsize; int sendbufsize; int bytes;} t_aipw;typedef struct { int socket; int protocol; int recvbufsize; int sendbufsize; int bytes; unsigned char * pdata;} t_aipr; t_aipw aipw = { -1, 0, 0, 0, 0};#define SIZE_BUFFER 32t_aipr aipr = { -1, 0, 0, 0, 0, 0};/*+AIPW: 1,0,7300,5840,3OK+AIPRTCP:1,0,7300,5840,3,"414243"*/unsignedchar szField[ SIZE_BUFFER + 1 ];staticvoid RspInd_AIPW ( unsigned char * pRspInd, unsigned char * pField, int nSize ){unsignedchar * p;t_aipw * pWt = &aipw; p = pRspInd + strlen ( "+AIPW: " ); pWt->socket = -1; pWt->protocol = 0; pWt->recvbufsize = 0; pWt->sendbufsize = 0; pWt->bytes = 0; if (!p || !*p ) return; p = getfield ( p, pField, nSize ); if ( pField[ 0 ] ) { pWt->socket = atoi ( (char *)pField ); } if (!p || !*p ) return; p = getfield ( p, pField, nSize ); if ( pField[ 0 ] ) { pWt->protocol = atoi ( (char *)pField ); } if (!p || !*p ) return; p = getfield ( p, pField, nSize ); if ( pField[ 0 ] ) { pWt->recvbufsize = atoi ( (char *)pField ); } if (!p || !*p ) return; p = getfield ( p, pField, nSize ); if ( pField[ 0 ] ) { pWt->sendbufsize = atoi ( (char *)pField ); } if (!p || !*p ) return; p = getfield ( p, pField, nSize ); if ( pField[ 0 ] ) { pWt->bytes = atoi ( (char *)pField ); }}void logfile ( char * plogfile, unsigned char * p, int size );int ftp_log ( unsigned char * p, int nbytes, int seek );staticvoid RspInd_AIPR ( unsigned char * pRspInd, unsigned char * pField, int nSize ){unsignedchar * p;t_aipr * pRd = &aipr;#ifdef _CVI_ logfile ( "aipr.log", pRspInd, strlen ( pRspInd ) ); logfile ( "aipr.log", "\n", 1 );#endif// p = pRspInd + strlen ( "+AIPRxxx:" ); p = (unsigned char *)strchr ( (char *)pRspInd, ':' ); if ( p == 0 ) return; p++; pRd->socket = -1; pRd->protocol = 0; pRd->recvbufsize = 0; pRd->sendbufsize = 0; pRd->bytes = 0; pRd->pdata = 0; if ( pRd->pdata ) pRd->pdata[ 0 ] = 0; if (!p || !*p ) return; p = getfield ( p, pField, nSize ); if ( pField[ 0 ] ) { pRd->socket = atoi ( (char *)pField ); } if (!p || !*p ) return; p = getfield ( p, pField, nSize ); if ( pField[ 0 ] ) { pRd->protocol = atoi ( (char *)pField ); } if (!p || !*p ) return; p = getfield ( p, pField, nSize ); if ( pField[ 0 ] ) { pRd->recvbufsize = atoi ( (char *)pField ); } if (!p || !*p ) return; p = getfield ( p, pField, nSize ); if ( pField[ 0 ] ) { pRd->sendbufsize = atoi ( (char *)pField ); } if (!p || !*p ) return; p = getfield ( p, pField, nSize ); if ( pField[ 0 ] ) { pRd->bytes = atoi ( (char *)pField ); } if (!p || !*p ) return;#ifdef _DBG_ ftp_log ( (unsigned char *)"\r\nIP DATA :\r\n", strlen ( "\r\nIP DATA :\r\n" ), -1 ); ftp_log ( (unsigned char *)p, (pRd->bytes << 1) + 2, -1 ); ftp_log ( (unsigned char *)"\r\n", 2, -1 );#endif if ( *p == '"' ) p++; pRd->pdata = p;#if 0 if ( *p == '"' ) p++; else return; pRd->pdata = p; if ( pRd->pdata[ pRd->bytes << 1 ] != '"' ) return;#endif socket_recv2buffer ( pRd->socket, pRd->pdata, pRd->bytes << 1 );#if 0 p = getfield ( p, pField, nSize ); if ( pField[ 0 ] ) { strcpy ( pRd->pdata, (char *)pField ); }#endif}staticvoid RspInd_AIPRIPI ( unsigned char * pRspInd, unsigned char * pField, int nSize ){unsignedchar * p;t_aipr * pRd = &aipr; p = pRspInd + strlen ( "+AIPRIPI:" ); pRd->socket = -1; pRd->protocol = 0; pRd->recvbufsize = 0; pRd->sendbufsize = 0; pRd->bytes = 0; pRd->pdata = 0; if ( pRd->pdata ) pRd->pdata[ 0 ] = 0; if (!p || !*p ) return; p = getfield ( p, pField, nSize ); if ( pField[ 0 ] ) { pRd->socket = atoi ( (char *)pField ); }#if 0 if (!p || !*p ) return; p = getfield ( p, pField, nSize ); if ( pField[ 0 ] ) { pRd->protocol = atoi ( (char *)pField ); }#endif if ( pRd->socket > 0 ) { socket_ind ( pRd->socket ); }}int mystrncmpnocase ( char * p, char * q, int n );int mystrcmpnocase ( char * p, char * q );int Handler_RSP_IND_AIP ( t_rsp_ind_parser * p ){#ifdef _DBG_// echo_rsp ( (unsigned char *)"H+AIP\r\n" );#endif if (!p->RspData ) return 1; else if ( mystrncmpnocase ( (char *)p->RspData, "+AIPW: ", strlen ( "+AIPW: " ) ) == 0 ) {#ifdef _DBG_// echo_rsp ( (unsigned char *)"H+AIPW\r\n" );#endif RspInd_AIPW ( p->RspData, szField, SIZE_BUFFER );#ifndef _DBG_// return 0;#endif } else if ( mystrncmpnocase ( (char *)p->RspData, "+AIPRIPI:", strlen ( "+AIPRIPI:" ) ) == 0 ) {#ifdef _DBG_// echo_rsp ( (unsigned char *)"H+AIPRIPI\r\n" );#endif RspInd_AIPRIPI ( p->RspData, szField, SIZE_BUFFER );#ifndef _DBG_// return 0;#endif } else if ( mystrncmpnocase ( (char *)p->RspData, "+AIPR", strlen ( "+AIPR" ) ) == 0 ) {#ifdef _DBG_// echo_rsp ( (unsigned char *)"H+AIPR\r\n" );#endif RspInd_AIPR ( p->RspData, szField, SIZE_BUFFER );#ifndef _DBG_// return 0;#endif } return (1==1);}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -