📄 config.lst
字号:
C51 COMPILER V7.06 CONFIG 09/26/2008 13:36:16 PAGE 1
C51 COMPILER V7.06, COMPILATION OF MODULE CONFIG
OBJECT MODULE PLACED IN ..\OUT\Config.obj
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE ..\Source\Config.C BROWSE DEBUG OBJECTEXTEND PRINT(..\OUT\Config.lst) OBJEC
-T(..\OUT\Config.obj)
stmt level source
1 /*
2 *****************************************************************************************************
3 *
4 * File name: config.c
5 *****************************************************************************************************
6 */
7 #include "..\head\includes.h"
8
9
10
11 /*
12 *****************************************************************************************************
13 * 全局
14 *****************************************************************************************************
15 */
16 unsigned char code *code pBaudRate[7] = {"1200","2400","4800","9600","19200","38400","57600"};
17 unsigned char code *code pHeartTime[9] = {"1","2","3","4","5","6","7","8","9"};
18 unsigned char code *code pDhcpMode[2] = {"手动配置模式", "自动指派模式"};
19 char code *code pComcBit[3] = {"None","Odd","Even"};
20 unsigned int code vBaudRate[7] = {1200,2400,4800,9600,19200,38400,57600};
21 unsigned int code vHeartTime[9] = {60,120,180,240,300,360,420,480,540};
22
23
24 _FLASH_DATA_UNION_ xdata ConfigReg;
25 unsigned char xdata *xdata ComparePtr=NULL;
26 unsigned char xdata PingIpStr[16];
27 unsigned char xdata ModelIdBak[ID_MAX_LEN+1];
28 unsigned char xdata ComcBit=0;
29 unsigned long xdata OnLineTime=0; //连续在线时间
30 unsigned int xdata SentHeartTime=0; //发送心跳包个数
31 unsigned char DHCPMode = 255; //大于0表示是DHCP模式,=0表示是手动分配模式
32 bit ModelStatu; //配置态OR运行态
33
34 /*
35 *****************************************************************************************************
36 * 函数说明,作为函数指针用
37 *****************************************************************************************************
38 */
39
40
41
42 /*
43 *****************************************************************************************************
44 * 配置信息来源
45 *****************************************************************************************************
46 */
47 #define END_CHAR_NUM 4
48 #define UART_COM 0 //串口配置时,只保存字符串,不对字符串解析成HEX,DEC,须重启才有效
49 #define HTTP_COM 1 //WEB配置时,只保存字符串,不对字符串解析成HEX,DEC 须重启才有效
50 #define READ_COM 2 //读出FALSH内容时对字符串的IP,MAC,PORT进行解析
51 #define REMOTE_COM 3 //远程配置时,只保存字符串,不对字符串解析成HEX,DEC 须重启才有效
52 char code EndChar[END_CHAR_NUM] ={'\r','&','\0','\r'}; //结束符
53
54
C51 COMPILER V7.06 CONFIG 09/26/2008 13:36:16 PAGE 2
55 /*
56 *****************************************************************************************************
57 *FUNC: 这个配置表共被3个函数用到
58 *NOTE: 1:NetConfigInit() 用到前7个,因为保存在FALSH的信息是字符串,MCU初始化时须对其化为HEX或十进制数
59 2:ParseUartCmd() 全部用到 解析串口来的数据
60 3:ParseHttpCmd() 用到前7个 解析HTTP WEB 来的数据
61 *****************************************************************************************************
62 */
63 typedef struct _config_item_
64 {
65 unsigned char *name;
66 unsigned char *string; //返回匹配的字符串
67 unsigned char start;
68 unsigned char (*exec_func)(unsigned char com); //函数指针 ,com信息来源
69 }_CONFIG_ITEM_;
70
71
72 #define UART_CONFIG_NUM 16 //UART配置共有16个
73 #define UART_QUERY_START 11 //查询命令从第11条开始
74 #define HTTP_CONFIG_NUM 11 //HTTP配置只有前11
75
76 _CONFIG_ITEM_ code ConfigTable[UART_CONFIG_NUM] =
77 {
78 "本地网卡设置:\0" , "WP-LOCALMAC=" , 12 ,(unsigned char*)Set_Local_Mac,
79 "本地IP设置:\0" , "WP-LOCALIP=" , 11 ,(unsigned char*)Set_Local_Ip,
80 "服务器IP设置:\0" , "WP-SEVERIP=" , 11 ,(unsigned char*)Set_Sever_Ip,
81 "服务器端口设置:\0" , "WP-SEVERPORT=" , 13 ,(unsigned char*)Set_Sever_Port,
82 "网关IP设置:\0" , "WP-GATEWAYIP=" , 13 ,(unsigned char*)Set_Gateway_Ip,
83 "子网掩码设置:\0" , "WP-MASKIP=" , 10 ,(unsigned char*)Set_Mask_Ip,
84 "模块ID设置:\0" , "WP-ID=" , 6 ,(unsigned char*)Set_Model_Id,
85 "波特率设置\0:" , "WP-BAUD=" , 8 ,(unsigned char*)Set_BaudRate,
86 "心跳包时间(分钟):\0", "WP-OHRT=" , 8 ,(unsigned char*)Set_Heart_Time,
87 "IP分配模式:\0" , "WP-DHCP=" , 8 ,(unsigned char*)Set_Dhcp_Mode,
88 "校验位设置:\0" , "WP-COMC=" , 8 ,(unsigned char*)Set_Comc ,
89
90 "PING IP设置:\0" , "WP-PINGIP=" , 10 ,(unsigned char*)Set_Ping_Ip ,
91
92 "日志查询:\0" , "WP-LOG" , 0 ,(unsigned char*)Query_Log ,
93 "查询网络配置:\0" , "WP-LIST" , 0 ,(unsigned char*)Query_Net_Config ,
94 "" , "WP-DEFAULT" , 0 ,(unsigned char*)Config_Default, //恢复出厂值并重启:
95 "" , "WP-RESET" , 0 ,(unsigned char*)Mcu_Restart //模块复位重启:
96 };
97
98 /*
99 *****************************************************************************************************
100 * 函数说明,作为函数指针用
101 *****************************************************************************************************
102 */
103 #define CONFIG_PARSE_NUM 11 //存EEPROM参数共10个
104 #define READ_PARSE_NUM 6 //需要解析的有几个,IP及端口号及MAC,就是要把
105
106 #define ID_LOCALMAC 0
107 #define ID_LOCALIP 1
108 #define ID_SEVERIP 2
109 #define ID_SEVERPORT 3
110 #define ID_GETWAYIP 4
111 #define ID_MASKIP 5
112
113 #define ID_MODELID 6 //不须要转换
114 #define ID_BAUDRATE 7 //不须要转换
115 #define ID_HEARTTIME 8 //不须要转换
116 #define ID_DHCPMODE 9 //不须要转换
C51 COMPILER V7.06 CONFIG 09/26/2008 13:36:16 PAGE 3
117 #define ID_COMC 10 //不须要转换
118
119 #define ID_PINGIP CONFIG_PARSE_NUM
120 #define ID_NETSTATU 12
121 #define ID_NETCONFIG 13
122
123 unsigned char xdata *xdata ConfigRegPtr[CONFIG_PARSE_NUM]= //用来拷贝配置来的字符串信息
124 {
125 ConfigReg.reg.LocalMacStr, //本地网卡地址
126 ConfigReg.reg.LocalIpStr, //本地IP
127 ConfigReg.reg.SeverIpStr, //服务器IP
128 ConfigReg.reg.SeverPortStr, //服务器端口
129 ConfigReg.reg.GetwayIpStr, //网关IP
130 ConfigReg.reg.MaskIpStr , //子网掩码
131
132 ConfigReg.reg.ModelIdStr, //ID 号
133 ConfigReg.reg.BautRateStr, //波特率
134 ConfigReg.reg.HeartTimeStr, //心跳包间隔时间
135 ConfigReg.reg.DhcpModeStr, //DHCP模式是否开启
136 ConfigReg.reg.WPCOMC //串口校验位
137 };
138
139
140 /*
141 *****************************************************************************************************
142 *FUNC: 参数出厂值
143 *NOTE:
144 *****************************************************************************************************
145 */
146 void ParameterInit(unsigned char type) reentrant
147 {
148 1
149 1 sprintf(ConfigReg.reg.LocalIpStr, "192.168.0.99\0");
150 1 sprintf(ConfigReg.reg.SeverIpStr, "192.168.0.244\0");
151 1 sprintf(ConfigReg.reg.SeverPortStr,"8601\0");
152 1 sprintf(ConfigReg.reg.GetwayIpStr, "192.168.0.254\0");
153 1 sprintf(ConfigReg.reg.MaskIpStr, "255.255.255.0\0");
154 1 sprintf(ConfigReg.reg.ModelIdStr, "90201234\0");
155 1 sprintf(ConfigReg.reg.BautRateStr, "4\0"); //9600
156 1 sprintf(ConfigReg.reg.HeartTimeStr,"2\0"); //2分钟
157 1 sprintf(ConfigReg.reg.WPCOMC,"0"); //0: 配置传输校验位,=0为无,=1为奇,=2为偶 */
158 1
159 1 if (type == 1) { //本地配置软件出厂值重起,不改变MAC地址
160 2 sprintf(ConfigReg.reg.DhcpModeStr, "1\0");
161 2 } else if (type == 20) { //利用IO控制参数恢复出厂值时,IP为手动分配,不改变网卡地址
162 2 sprintf(ConfigReg.reg.DhcpModeStr, "0\0");
163 2 } else { //初次写FLASH,默认开启自动分配,要改变网卡地址
164 2 sprintf(ConfigReg.reg.DhcpModeStr, "1\0");
165 2 sprintf(ConfigReg.reg.LocalMacStr, "00ABCDEF0001\0");
166 2 }
167 1 }
168
169 /*
170 *****************************************************************************************************
171 *FUNC: 配置初始化, 存在FALSH的是字符串信息,初始化时要化为相应的HEX或十进制数
172 *NOTE: 1:先读出FALSH内容,判断FirstRun是否被修改,
173 2:已修改说明已配置过,对读出的字符串配置信息化为相应的HEX或十进制数
174 3:如果FirstRun未被修改,说明是第一次读FALSH,先要进行参数出厂值
175
176 *****************************************************************************************************
177 */
178 #define FIRST_RUN_VALUE 101
C51 COMPILER V7.06 CONFIG 09/26/2008 13:36:16 PAGE 4
179 void NetConfigInit(void)reentrant
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -