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

📄 http.lst

📁 本程序是一个RS232转网口的。是一个透明传输的模块
💻 LST
📖 第 1 页 / 共 2 页
字号:
C51 COMPILER V7.06   HTTP                                                                  09/26/2008 13:36:02 PAGE 1   


C51 COMPILER V7.06, COMPILATION OF MODULE HTTP
OBJECT MODULE PLACED IN ..\OUT\Http.obj
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE ..\Source\Http.C BROWSE DEBUG OBJECTEXTEND PRINT(..\OUT\Http.lst) OBJECT(..
                    -\OUT\Http.obj)

stmt level    source

   1          /*
   2          *****************************************************************************************************
   3          *
   4          *  File name: http.c
   5          *****************************************************************************************************
   6          */
   7          #include "..\head\includes.h"
   8          
   9          
  10          
  11          /*
  12          *****************************************************************************************************
  13          *FUNC:
  14          *NOTE:  
  15          *****************************************************************************************************
  16          */ 
  17          unsigned char xdata *xdata ReplacePtr=NULL; 
  18          
  19          
  20          /*
  21          *****************************************************************************************************
  22          *FUNC:
  23          *NOTE:  
  24          *****************************************************************************************************
  25          */ 
  26          typedef struct _page_replace_
  27          {
  28              unsigned char *tag;    //替换目标  
  29              unsigned char length;  //替换长度
  30          }_PAGE_REPLACE_;
  31          
  32          
  33          #define GET_REPLACE_ITEM  11     //上传WEB须替换个数,提示当前配置参数
  34          
  35          _PAGE_REPLACE_  code GetPageReplace[GET_REPLACE_ITEM] =
  36          {
  37              "GET-LOCALMAC",     12,
  38              "GET-LOCALIP0000",  15,
  39              "GET-SEVERIP0000",  15,
  40              "GET-SEVERPORT",    13,
  41              "GET-GATEWAYIP00",  15,
  42                  "GET-MASKIP00000",  15,
  43          
  44              "GET-ID000000"   ,  12,
  45              "GET-BAUDRATE"   ,  12,
  46              "GET-HEARTTIME"  ,  13,
  47              "GET-DHCPMODE"   ,  12,      //自动指派模式,手动分配模式
  48                  "GET-COMCBIT"    ,  11       //串口奇偶校验位
  49          };
  50          
  51          #define POST_REPLACE_ITEM  13    //POST WEB须替换个数,提示配置正常否
  52          
  53          _PAGE_REPLACE_  code PostPageReplace[POST_REPLACE_ITEM] =
  54          {
C51 COMPILER V7.06   HTTP                                                                  09/26/2008 13:36:02 PAGE 2   

  55              "提交用户名"  ,          10,
  56              "提交密码"    ,          8,
  57              "提交网卡地址结果",      16,
  58              "提交模块IP地址结果",    18,
  59              "提交服务器IP地址结果",  20,
  60              "提交服务器端口结果",    18,
  61              "提交网关IP地址结果",    18,
  62                  "提交子网掩码结果",      16,
  63          
  64              "提交模块ID结果",        14,
  65              "提交波特率结果",        14,
  66              "提交心跳间隔结果",      16,
  67                  "提交IP分配模式结果",    18,
  68                  "提交校验位结果",        14,
  69          };
  70          
  71          #define REPLACE_STATU_NUM  13
  72          unsigned char xdata ReplaceStatu[REPLACE_STATU_NUM]; //X项是否已替换过.
  73          bit ReplaceNewIp = FALSE;                            //新IP是否已替换
  74          /*
  75          *****************************************************************************************************
  76          *FUNC:
  77          *NOTE:  
  78          *****************************************************************************************************
  79          */ 
  80          #define GET_PAGE                        0
  81          #define POST_PAGE                               1
  82          #define GET_JPEG                2
  83          #define NONE                                3
  84          
  85          
  86          /*
  87          *****************************************************************************************************
  88          *FUNC: 寻找替换
  89          *NOTE:  
  90          *****************************************************************************************************
  91          */
  92          void Replace_Loop(unsigned char xdata *body ,unsigned char request,unsigned int length)
  93          {
  94   1          unsigned char i;
  95   1      
  96   1              if (request == GET_PAGE) {                                             //提交网页
  97   2                  for (i=0; i<GET_REPLACE_ITEM; i++) {                               //替换那些参数
  98   3                          if (ReplaceStatu[i] == 0) {                                    //未替换
  99   4                              if(ReplacePtr = StrCompare(body,GetPageReplace[i].tag,length)) {  //找到要替换的
 100   5                                          ReplaceStatu[i] = 10;
 101   5                                              switch (i) {
 102   6                              case 1:       //本地IP
 103   6                                                           IpToStr(my_ip_address); //此时本地IP可能是手动分配,也可能是自动指派              
 104   6                                   ReplaceTag(ReplacePtr,IpString,GetPageReplace[i].length);
 105   6                                                           break;
 106   6                              case 4:       //网关IP
 107   6                                                           IpToStr(gateway_ip_address);       
 108   6                                   ReplaceTag(ReplacePtr,IpString,GetPageReplace[i].length);
 109   6                                                           break;
 110   6                              case 5:       //子网掩码IP
 111   6                                                           IpToStr(mask_ip_address);
 112   6                                   ReplaceTag(ReplacePtr,IpString,GetPageReplace[i].length);
 113   6                                                           break;
 114   6                              case 7:       //波特率
 115   6                                                           ReplaceTag(ReplacePtr,pBaudRate[*ConfigRegPtr[i]-0x31],GetPageReplace[i].length);
 116   6                                                           break;
C51 COMPILER V7.06   HTTP                                                                  09/26/2008 13:36:02 PAGE 3   

 117   6                              case 8:       //心跳包
 118   6                                                           ReplaceTag(ReplacePtr,pHeartTime[*ConfigRegPtr[i]-0x31],GetPageReplace[i].length);
 119   6                                                           break;
 120   6                              case 9:       //IP分配模式
 121   6                                                           ReplaceTag(ReplacePtr,pDhcpMode[*ConfigRegPtr[i]-0x30],GetPageReplace[i].length);
 122   6                                                           break;
 123   6                              case 10:      //校验位
 124   6                                                           ReplaceTag(ReplacePtr,pComcBit[*ConfigRegPtr[i]-0x30],GetPageReplace[i].length);
 125   6                                                           break;
 126   6                                                  default:      //正文用字符串替代原先准备替换的标签 ;
 127   6                                                           ReplaceTag(ReplacePtr,ConfigRegPtr[i],GetPageReplace[i].length);
 128   6                                                           break;
 129   6                                              }
 130   5                                  }
 131   4                              }                                                      
 132   3              }
 133   2                      return;
 134   2              } 
 135   1                      
 136   1              if (request == POST_PAGE) {
 137   2                  if (ReplaceNewIp == FALSE) {
 138   3                  IpToStr(my_ip_address);                            //此时本地IP可能是手动分配,也可能是自动指派
             -              
 139   3                      if (ReplacePtr = StrCompare(body,"REFRESHLOCALIP1",length)) {
 140   4                      ReplaceTag(ReplacePtr,IpString,15);            //10秒刷新新IP
 141   4                      }
 142   3       
 143   3                              #if 0
                              if (ReplacePtr = StrCompare(body,"REFRESHLOCALIP2",length)) {
                              ReplaceTag(ReplacePtr,IpString,15);            //10秒刷新新IP
                              }
                                      #endif
 148   3      
 149   3                              //以下修改于07.10.31
 150   3                              #if 1
 151   3                              if (ReplacePtr = StrCompare(body,"REFRESHLOCALIP2",length)) {
 152   4                      if (DHCPMode) {                             //自动分配,不受修改本地IP更新显示
 153   5                          ReplaceTag(ReplacePtr,IpString,15);     //10秒刷新新IP
 154   5                          } else {
 155   5                          ReplaceTag(ReplacePtr,ConfigReg.reg.LocalIpStr,15);//手动分配,更新显示IP修改
 156   5                                  }
 157   4                              }
 158   3                              #endif
 159   3                              ReplaceNewIp = TRUE;
 160   3                      }
 161   2                      for (i=0; i<POST_REPLACE_ITEM; i++) {                              //替换那些参数
 162   3                          if (ReplaceStatu[i] == 0) {                                    //未替换
 163   4                                      if (HttpAckCode[i] == VALUE_NULL) {                        //值为空不替换跳到下一个
 164   5                                      ReplaceStatu[i] = 10;                                  //置为已替换处理过 
 165   5                          continue; 
 166   5                                  }
 167   4                              if (ReplacePtr = StrCompare(body,PostPageReplace[i].tag,length)) { //找到要替换的
 168   5                          ReplaceStatu[i] = 10;
 169   5                          //if (HttpAckCode[i] == VALUE_NULL) {
 170   5                          //    ReplaceTag(ReplacePtr," ",PostPageReplace[i].length);

⌨️ 快捷键说明

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