📄 http.lst
字号:
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 + -