📄 login.lst
字号:
C51 COMPILER V7.08 LOGIN 12/11/2004 15:40:15 PAGE 1
C51 COMPILER V7.08, COMPILATION OF MODULE LOGIN
OBJECT MODULE PLACED IN LOGIN.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE LOGIN.C OPTIMIZE(9,SIZE) REGFILE(.\gprsnew.ORC) BROWSE DEBUG OBJECTEXTEND
line level source
1 //-----login.c-----------------------
2 #include <reg52.h>
3 #include "MENUADDRESS.H"
4 #include <string.h>
5
6 #define uchar unsigned char
7 #define uint unsigned int
8
9 #define ATI_PARS "AT+IPARS\r"
10
11 //------main.c-----------------------
12 extern unsigned char idata input[32];
13 extern unsigned char idata tempbuf[16];
14 extern uint idata CrcSend ;
15 extern unsigned char idata WORKTYPE;
16 extern unsigned long data TempCount;
17
18 extern bit Crc_Flag ;
19 extern bit Frame_Flag;
20 extern void Delay(uint x);
21 extern unsigned long GET_COUNT();
22
23 sbit D3 = P1^2;
24 sbit D4 = P3^5;
25 sbit D5 = P3^4;
26
27 //-----eeprom.c----------------------
28 extern void ReadUserBlock(uchar idata *input,uint Address,uchar Number);
29
30 //-----COMM.c----------------------
31 extern void _EXP_Fram_Init(void);
32 extern void _EXP_Puts(uchar *p);
33 extern uint CrcData(uint CrcBuff, uchar dd);
34 extern void _Get_CMIP(uchar *input,uchar Lenth);
35 extern uchar idata DTUID[7];
36 extern uchar idata CtrlData;
37 extern uint idata CrcBuff;
38 #define DEF_CRC_OK 0xB8F0
39
40 //-----GsmModem.c--------------------
41 extern unsigned char ModuleRst();
42 extern unsigned char InitModem();
43 extern void ModemSend(uchar *String);
44 extern void _EXP_Put(uchar ucValue);
45 extern unsigned char ModemExpect(uchar *ExpectString,uint timeout);
46 extern unsigned int String_To_Int(unsigned char *p);
47
48
49 /********************************
50 ** if WORKMODE == 1 or 2
51 ** return 1: finished sending string
52 ** return 0: failed.......
53 ********************************/
54 uchar AT_log_CM(uchar *IP,uchar *Port)
55 {
C51 COMPILER V7.08 LOGIN 12/11/2004 15:40:15 PAGE 2
56 1 uchar i = 0,j = 0;
57 1
58 1 for(i = 0;i<4;i++)
59 1 {
60 2 ModemSend("AT+IHSRV=");
61 2 ModemSend(IP); //send fixed ip
62 2 ModemSend(":");
63 2 ModemSend(Port);
64 2 ModemSend("\r"); //send fixed ip
65 2 Delay(10);
66 2 if( ModemExpect("I/OK",200) )
67 2 {
68 3 ModemSend(ATI_PARS);
69 3 Delay(10);
70 3 if( ModemExpect("I/OK",200))
71 3 {
72 4 ModemSend("AT+I!SNMD\r");
73 4 Delay(10);
74 4 if( ModemExpect("I/OK",200))return 1;
75 4 }
76 3 }
77 2 }
78 1 return 0;
79 1 }
80
81 void Log_CM_Fram(uint DATA)
82 {
83 1 uchar Tdata;
84 1 uchar i;
85 1
86 1 _EXP_Puts("GPRS");
87 1 ReadUserBlock(input,Ser_Number,sizeof(input)); //read DTUID
88 1 if(Crc_Flag) CrcSend = 0xFFFF;
89 1 for(i = 0;i<6;i++)
90 1 {
91 2 Tdata = input[i];
92 2 if(Crc_Flag) CrcSend = CrcData(CrcSend, Tdata);
93 2 _EXP_Put(Tdata);
94 2 }
95 1 if(Crc_Flag) /* send Control Data*/
96 1 {
97 2 CrcSend = CrcData(CrcSend,0x90);
98 2 _EXP_Put( 0x90);
99 2 }
100 1 else _EXP_Put( 0x10);
101 1
102 1 Tdata = (uchar)(( DATA >> 8) & 0xFF); /* send Heart Beat */
103 1 if(Crc_Flag) CrcSend = CrcData(CrcSend,Tdata);
104 1 _EXP_Put(Tdata);
105 1
106 1 Tdata = (uchar)(DATA & 0xFF);
107 1 if(Crc_Flag) CrcSend = CrcData(CrcSend,Tdata);
108 1 _EXP_Put(Tdata);
109 1
110 1 if(Crc_Flag)
111 1 {
112 2 CrcSend = CrcSend ^ 0xFFFF;
113 2 Tdata = CrcSend >> 8;
114 2 _EXP_Put(Tdata);
115 2 Tdata = CrcSend & 0xFF;
116 2 _EXP_Put(Tdata);
117 2 }
C51 COMPILER V7.08 LOGIN 12/11/2004 15:40:15 PAGE 3
118 1 }
119
120 uchar login_CM_ack(uchar *IP,uchar *Port,uchar Ctrl_Data,uint DATA)
121 {
122 1 uchar i;
123 1
124 1 // for(i = 0;i<3;i++)
125 1 // {
126 1 // if(ModuleRst())
127 1 // if(InitModem())
128 1 // if(AT_log_CM(IP,Port)) break;
129 1 // }
130 1 Delay(10);
131 1 // if(i == 3)return 0;
132 1 {
133 2 for(i=0;i<3;i++)
134 2 {
135 3 _EXP_Fram_Init();
136 3 Log_CM_Fram(DATA);
137 3 TempCount = GET_COUNT();
138 3 while(GET_COUNT() - TempCount <300)
139 3 {
140 4 if(Frame_Flag)
141 4 {
142 5 Frame_Flag = 0;
143 5 if( (CtrlData & 0x11) != Ctrl_Data )break;
144 5 else if (( Crc_Flag == 1 ) && ( CrcBuff != DEF_CRC_OK )) break;
145 5 else
146 5 {
147 6 ReadUserBlock(input,Ser_Number,sizeof(input)); //read DTUID
148 6 if(strcmp(input,DTUID) == 0)
149 6 return 1;
150 6 else break;
151 6 }
152 5 }
153 4 }
154 3 }
155 2 return 0 ;
156 2 }
157 1 }
*** WARNING C280 IN LINE 120 OF LOGIN.C: 'IP': unreferenced local variable
*** WARNING C280 IN LINE 120 OF LOGIN.C: 'Port': unreferenced local variable
158
159 /*************************************************
160 ** return 1: successed to communicate with the CM.
161 ** return 0: failed ....
162 *************************************************/
163 uchar login_ack()
164 {
165 1 uchar i;
166 1 uint j;
167 1
168 1 if(WORKTYPE != 3)
169 1 {
170 2 ReadUserBlock( input, Heart_Time,sizeof(input));
171 2 j = String_To_Int(input);
172 2 if(WORKTYPE ==1)
173 2 ReadUserBlock( input,Fixed_IP,sizeof(input));
174 2 if(WORKTYPE ==2)
175 2 ReadUserBlock( input,Host_Name,sizeof(input));
176 2 ReadUserBlock(tempbuf,CM_Port,sizeof(tempbuf));
177 2 i = login_CM_ack(input,tempbuf,0x11,j);
C51 COMPILER V7.08 LOGIN 12/11/2004 15:40:15 PAGE 4
178 2 return i;
179 2 }
180 1 else
181 1 {
182 2 ReadUserBlock(input,Cm_Id,sizeof(input)); /* send CMID; 6 numbers! */
183 2 j = String_To_Int(input);
184 2 ReadUserBlock( input,CsFixed_IP1,sizeof(input));
185 2 ReadUserBlock(tempbuf,CM_Port,sizeof(tempbuf));
186 2 i = login_CM_ack(input,tempbuf,0x01,j);
187 2 if(i)
188 2 {
189 3 ReadUserBlock( input, Heart_Time,sizeof(input));
190 3 j = String_To_Int(input);
191 3 _Get_CMIP(input,sizeof(input));
192 3 if(strcmp(input,"0.0.0.0") )
193 3 {
194 4 ReadUserBlock(tempbuf,CM_Port,sizeof(tempbuf));
195 4 i = login_CM_ack(input,tempbuf,0x11,j);
196 4 if(i)return 1;
197 4 }
198 3 }
199 2 ReadUserBlock(input,Cm_Id,sizeof(input)); /* send CMID; 6 numbers! */
200 2 j = String_To_Int(input);
201 2 ReadUserBlock( input,CsFixed_IP2,sizeof(input));
202 2 ReadUserBlock(tempbuf,CM_Port,sizeof(tempbuf));
203 2 i = login_CM_ack(input,tempbuf,0x01,j);
204 2 if(i)
205 2 {
206 3 ReadUserBlock( input, Heart_Time,sizeof(input));
207 3 j = String_To_Int(input);
208 3 _Get_CMIP(input,sizeof(input));
209 3 if(strcmp(input,"0.0.0.0") )
210 3 {
211 4 ReadUserBlock(tempbuf,CM_Port,sizeof(tempbuf));
212 4 i = login_CM_ack(input,tempbuf,0x11,j);
213 4 return i;
214 4 }
215 3 }
216 2 return 0;
217 2 }
218 1 }
219
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 757 ----
CONSTANT SIZE = 53 ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = ---- 24
IDATA SIZE = ---- ----
BIT SIZE = ---- ----
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 2 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -