⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 gprs.lst

📁 通过车载终端采集GPS数据
💻 LST
📖 第 1 页 / 共 3 页
字号:
C51 COMPILER V7.09   GPRS                                                                  08/22/2008 14:26:33 PAGE 1   


C51 COMPILER V7.09, COMPILATION OF MODULE GPRS
OBJECT MODULE PLACED IN .\output\gprs.obj
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE gprs\gprs.c LARGE BROWSE INCDIR(audio\;eeprom\;extendUART\;flash\;gps\;inte
                    -r\;key\;mcu\;menu\;usb\;gprs\;main\;1wire\) DEBUG OBJECTEXTEND PRINT(.\output\gprs.lst) OBJECT(.\output\gprs.obj)

line level    source

   1          
   2          #include "w77e532.h"
   3          #include "16c554.h"
   4          #include "gprs.h"
   5          #include "mcuInit.h"
   6          
   7          #include "string.h"
   8          #include "stdio.h"
   9          
  10          #include "global.h"
  11          #include "commoninterface.h"
  12          
  13          extern Uchar volatile xdata D12_Y5;
  14          extern idata Uchar D18CS;//D12_Y5的寄存器
  15          
  16          //#define PWRKEY_PIN      P3_5    /*工作时为高电平*/
  17          //#define PWRENABLE_PIN   P1_5    /*工作时为高电平*/    
  18          //#define RESET_ALL       P1_5    /*工作时为高电平*/
  19          
  20          
  21          AT_STRING_STRUCT code at_cmd[]
  22                  ={
  23                      {"AT\r",0},
  24                      {"ATE0+COLP=1\r",1}, /**/
  25                      {"AT+CCID\r", 2},
  26                      {"AT+CIPSTART=\"UDP\",", 3},
  27                      {"AT+CIPSEND=", 4},
  28                      {"AT+CIPCLOSE\r", 5},
  29                      {"ATD", 6},
  30                      {"ATA\r", 7},
  31                      {"ATH\r", 8},
  32                      {"AT+CSTT", 9},
  33                      {"AT+CIICR\r", 10},
  34                      {"AT+CIFSR\r", 11},
  35                      {"AT+CLVL=100;+CMIC=0,6\r", 12},
  36                      {"AT+CIPSTATUS\r", 13},
  37          //AT+CIPSHUT 
  38                      {"",}
  39                   };
  40          
  41          AT_STRING_STRUCT code at_ret[]
  42                  ={ 
  43                      {"\r\n",AT_RET_CRLF},
  44                      {"OK\r\n",AT_RET_OK},
  45                      {"8986",AT_RET_CCID},
  46                      {"CONNECT OK\r\n",AT_RET_CONNECT_OK},
  47                      {">", AT_RET_PROMPT},
  48                      {"SEND OK",AT_RET_SEND_OK},
  49                      {"CLOSE OK",AT_RET_CLOSE_OK},
  50                      {"+CSQ:",AT_RET_CSQ},
  51                      {"NJPT", AT_RET_NJPT},
  52                      {"STATE:CONNECT OK",AT_RET_STATE_OK},
  53                      {"ALREADY CONNECT",AT_RET_ALREADY_CONNECT},
  54                      {"RING",AT_RET_RING},
C51 COMPILER V7.09   GPRS                                                                  08/22/2008 14:26:33 PAGE 2   

  55                      {"NO CARRIER",AT_RET_NO_CARRIER},
  56                      {"BUSY",AT_RET_BUSY},
  57                      {"+COLP:",AT_RET_COLP},
  58                      {"AT",AT_RET_AT},
  59                      {"AT+CSQ", AT_RET_ATCSQ},
  60                      {"+CLVL", AT_RET_VOLUME},
  61          //AT+CSQ
  62          //SEND FAIL
  63                      {"",0}       /*end of struct*/
  64                   };
  65          
  66          
  67          char gprsRcvBuffer[1024];
  68          GPRS_INFO_STRUCT gprsInfo;
  69          IP_INFO_STRUCT ipInfo;
  70          /*************************cj add 时间:2007年3月21日
  71          *为了保证处于振铃状态下,如果20秒内还没有连续的振铃,则表示此时已经没有必要再等待振铃*/
  72          #define MAX_RINGLENG  21
  73          unsigned char gRingClock = 0;
  74          void set_ringtimeout()
  75          {
  76   1          gRingClock = MAX_RINGLENG;
  77   1      }
  78          
  79          void ringClockTimeout()
  80          {
  81   1          if (gprsInfo.state == STATE_VOICE_RING)
  82   1          {
  83   2              gRingClock--;
  84   2              if (0 == gRingClock)
  85   2                  gprsInfo.state = STATE_IDLE;;
  86   2          }
  87   1      }
  88          //extern char debug_msg[1024];
  89          /*****以上内容填加结束*********************/
  90          void debugDump(char flag, char *ptr, unsigned char len)
  91          {
  92   1          //for debug
  93   1      /*    if (0 == flag)
  94   1          {
  95   1              memcpy(debug_msg, ptr, len);
  96   1              sioc_send(debug_msg, len);
  97   1          }*/
  98   1      }
*** WARNING C280 IN LINE 90 OF GPRS\GPRS.C: 'flag': unreferenced local variable
*** WARNING C280 IN LINE 90 OF GPRS\GPRS.C: 'ptr': unreferenced local variable
*** WARNING C280 IN LINE 90 OF GPRS\GPRS.C: 'len': unreferenced local variable
  99          
 100          void gprs_reset(unsigned char nPos)
 101          {
 102   1      //    sprintf(debug_msg, "模块重启:%2bd;%2bd;%2bd;%2bd\r\n", nPos, ipInfo.rxTimer, gprsInfo.txTimer, gprsI
             -nfo.state);
 103   1      //    sioc_send(debug_msg, strlen(debug_msg));
 104   1          ipInfo.rxTimer = 0;
 105   1          gprsInfo.state = STATE_BEGIN;
 106   1      }
*** WARNING C280 IN LINE 100 OF GPRS\GPRS.C: 'nPos': unreferenced local variable
 107          
 108          void gprs_init(void)
 109          {
 110   1          D18CS = 0x03;
 111   1          D12_Y5 = D18CS;
C51 COMPILER V7.09   GPRS                                                                  08/22/2008 14:26:33 PAGE 3   

 112   1          tl16c554_init();
 113   1      
 114   1      
 115   1      
 116   1          clear_ram(gprsRcvBuffer,sizeof(gprsRcvBuffer));
 117   1          clear_ram((char *)&ipInfo, sizeof(ipInfo) );
 118   1          clear_ram((char *)&gprsInfo, sizeof(gprsInfo) );
 119   1      
 120   1          gprsInfo.valid = 0;
 121   1          gprsInfo.rxBytes = 0;
 122   1          gprsInfo.rxPtr = gprsRcvBuffer;
 123   1      
 124   1          gprs_reset(1);
 125   1      
 126   1      }
 127          
 128          char gprs_packet_send(char *ptr, unsigned int len)
 129          {
 130   1          /*xhb_debug 1*/
 131   1          if (len > 256)
 132   1              debugDump(1, ptr, 250);
 133   1          else
 134   1              debugDump(1, ptr, len);
 135   1      
 136   1          gprsInfo.txTimer = 60;
 137   1          at_serial_send(ptr, len);
 138   1      
 139   1          return(0);
 140   1      }
 141          
 142          void gprs_send_apn(void)
 143          {
 144   1          clear_ram(gprsInfo.cmdBuffer,sizeof(gprsInfo.cmdBuffer) );
 145   1          strcpy(gprsInfo.cmdBuffer, "AT+CSTT=\"GJGS.RZ.SD\",\"\",\"\"\r");//strcpy(gprsInfo.cmdBuffer, "AT+CSTT
             -=\"bus8-xit.he\",\"\",\"\"\r");
 146   1      
 147   1          gprs_packet_send(gprsInfo.cmdBuffer, strlen(gprsInfo.cmdBuffer));
 148   1      }
 149          
 150          
 151          void gprs_send_connect(void)
 152          {
 153   1          char *ptr;
 154   1          unsigned char ipAddr[6];
 155   1          unsigned int ipPort;
 156   1      
 157   1          clear_ram(gprsInfo.cmdBuffer,sizeof(gprsInfo.cmdBuffer) );
 158   1          strcpy(gprsInfo.cmdBuffer, at_cmd[AT_CMD_CONNECT].str);
 159   1          get_serverIp(ipAddr);
 160   1          ipPort = ipAddr[4] * 256 + ipAddr[5];
 161   1      
 162   1          ptr = gprsInfo.cmdBuffer + strlen(gprsInfo.cmdBuffer);
 163   1          sprintf(ptr, "\"%bu.%bu.%bu.%bu\",\"%u\"\r", \
 164   1                  ipAddr[0],ipAddr[1],ipAddr[2],ipAddr[3],ipPort);
 165   1      
 166   1          gprs_packet_send(gprsInfo.cmdBuffer, strlen(gprsInfo.cmdBuffer));
 167   1      }
 168          
 169          void gprs_transmit_process(void)
 170          {
 171   1          char *ptr;
 172   1          static unsigned char count;
C51 COMPILER V7.09   GPRS                                                                  08/22/2008 14:26:33 PAGE 4   

 173   1      
 174   1          switch(gprsInfo.state )
 175   1          {
 176   2              case STATE_BEGIN:
 177   2                  count = 0;  /*关闭GPRS电源1秒*/ 
 178   2                  gprsInfo.state = STATE_RESET;
 179   2      
 180   2                  gprsInfo.resetCount ++;
 181   2                  gprsInfo.errorCount = 0;
 182   2                  gprsInfo.txTimer = 0;
 183   2                  ipInfo.rxTimer = 0;
 184   2                  break;
 185   2      
 186   2              case STATE_RESET:
 187   2                  count ++;
 188   2                  D18CS &= 0x0b;
 189   2                  D12_Y5 = D18CS;
 190   2                //  PWRENABLE_PIN = 0;
 191   2                  
 192   2                  if( count >= 20*2 )
 193   2                  {
 194   3                      count = 0;
 195   3                      gprsInfo.state = STATE_POWER_HOLD;
 196   3                  }
 197   2                      
 198   2                  break;
 199   2      
 200   2              case STATE_POWER_HOLD:  /**/
 201   2                  count ++;
 202   2                  D18CS |= 0x0c;
 203   2                  D12_Y5 = D18CS;
 204   2              /*    PWRKEY_PIN = 1;
 205   2                  PWRENABLE_PIN = 1;*/
 206   2      
 207   2                  if( count >= 20*3 )  //2
 208   2                  {
 209   3                      count = 0;
 210   3                      gprsInfo.state = STATE_PWRKEY_LOW;
 211   3                  }
 212   2      
 213   2                  break;
 214   2      
 215   2              case STATE_PWRKEY_LOW:  /*要保持低电平2秒*/
 216   2                  count ++;
 217   2                  D18CS &= 0x07;
 218   2                  D12_Y5 = D18CS;
 219   2         //         PWRKEY_PIN = 0;
 220   2      
 221   2                  if( count >= 20*3 )
 222   2                  {
 223   3                      count = 0;
 224   3                      gprsInfo.state = STATE_PWRKEY_HIGH;
 225   3                  }
 226   2      
 227   2                  break;
 228   2      
 229   2              case STATE_PWRKEY_HIGH:  /*要保持高电平1秒*/
 230   2                  count ++;
 231   2                  D18CS |= 0x08;
 232   2                  D12_Y5 = D18CS;
 233   2             //     PWRKEY_PIN = 1;
 234   2      
C51 COMPILER V7.09   GPRS                                                                  08/22/2008 14:26:33 PAGE 5   

 235   2                  if( count >= 20*3 )  //5
 236   2                  {
 237   3                      count = 0;
 238   3                      gprsInfo.state = STATE_SEND_PREINIT;
 239   3                  }
 240   2      
 241   2                  break;
 242   2      
 243   2              case STATE_SEND_PREINIT:
 244   2                  gprsInfo.state = STATE_RECEIVE_PREINIT;
 245   2      
 246   2                  ptr = at_cmd[AT_CMD_AT].str;
 247   2                  gprs_packet_send(ptr, strlen(ptr) );
 248   2                  gprsInfo.txTimer = 20;
 249   2                  break;
 250   2      
 251   2      
 252   2              case STATE_SEND_INIT:
 253   2                  gprsInfo.state = STATE_RECEIVE_INIT;
 254   2      
 255   2                  ptr = at_cmd[AT_CMD_INIT].str;
 256   2                  gprs_packet_send(ptr, strlen(ptr) );
 257   2                  break;
 258   2      
 259   2              /****cj add for set volume***/
 260   2              case STATE_SEND_SET_VOLUME:
 261   2                  gprsInfo.state = STATE_RECIEVE_SET_VOLUME;
 262   2      
 263   2                  ptr = at_cmd[AT_CMD_SET_VOLUME].str;
 264   2                  gprs_packet_send(ptr, strlen(ptr) );
 265   2                  break; 
 266   2              /***end of add *****/
 267   2      
 268   2              case STATE_SEND_CCID:
 269   2                  gprsInfo.state = STATE_RECEIVE_CCID;
 270   2                  ptr = at_cmd[AT_CMD_CCID].str;
 271   2                  gprs_packet_send(ptr, strlen(ptr) );
 272   2                  break;
 273   2      
 274   2              case STATE_SEND_APN:
 275   2      #if 1  
 276   2      /*不是APN接入时采用此段程序*/          
 277   2                  count ++;
 278   2                  gprsInfo.txTimer = 0;
 279   2      
 280   2                  if( count >= 20*10 )  
 281   2                  {
 282   3                      count = 0;
 283   3                      gprsInfo.state = STATE_SEND_CONNECT;
 284   3                  }
 285   2                  break;
 286   2      #endif
 287   2                  gprsInfo.state = STATE_RECEIVE_APN;
 288   2      
 289   2                  gprs_send_apn();
 290   2                  break;
 291   2      
 292   2              case STATE_SEND_ACTIVE:
 293   2                  gprsInfo.state = STATE_RECEIVE_ACTIVE;
 294   2      
 295   2                  ptr = at_cmd[AT_CMD_GPRS_ACTIVE].str;

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -