📄 gps_collect.lst
字号:
218 1 }
219 /*
220 上传GPS数据函数
221 读取存储器中的GPS数据,并发到串口B通道上
222 上传过程中可以通过按取消键退出
223 上传完也要按取消键才能退出
224 */
225
226 void process_upgps(void)
227 {
228 1 unsigned char up[6]="上行";
229 1 unsigned char down[6]="下行";
230 1
231 1 Uint32 pos,page;
232 1 Uint16 tem;
233 1 Byte i;
234 1 Byte *pp;
235 1 up[4]=down[4]='\r';
236 1 up[5]=down[5]='\n';
237 1 menu_up_gps_record();
238 1 nf_read_tobuf(0x00000000,sysinfo,8*sizeof(GPS_LINE_INFO));
239 1 memcpy(&gps_8line[0],sysinfo,8*sizeof(GPS_LINE_INFO));
C51 COMPILER V7.09 GPS_COLLECT 09/25/2008 11:56:21 PAGE 5
240 1 page=0;
241 1 tem= gps_8line[tmp_line].gps_counter_up;
242 1 menu_display_char(11,0,tem/1000+'0',0);
243 1 menu_display_char(12,0,tem/100%10+'0',0);
244 1 menu_display_char(13,0,tem/10%10+'0',0);
245 1 menu_display_char(14,0,tem%10+'0',0);
246 1 if(tem)
247 1 siob_send(up, 6);
248 1 while(tem)
249 1 {
250 2 pos= page*256+tmp_line*0x00100000+0x00200000;
251 2 nf_read_tobuf(pos,gps_data_buf,240);
252 2 i=0;
253 2 while(i<3)
254 2 {
255 3 menu_display_char(6,0,tem/1000+'0',0);
256 3 menu_display_char(7,0,tem/100%10+'0',0);
257 3 menu_display_char(8,0,tem/10%10+'0',0);
258 3 menu_display_char(9,0,tem%10+'0',0);
259 3 if(get_key()==KEY_CODE_ESC) return;
260 3 if(tem)
261 3 {
262 4 pp=gps_data_buf+i*80;
263 4 siob_send(pp, strlen(pp));
264 4 }
265 3 else break;
266 3 tem--;
267 3 i++;
268 3 }
269 2
270 2 page++;
271 2
272 2 }
273 1 page=0;
274 1 tem= gps_8line[tmp_line].gps_counter_down;
275 1 menu_display_char(11,1,tem/1000+'0',0);
276 1 menu_display_char(12,1,tem/100%10+'0',0);
277 1 menu_display_char(13,1,tem/10%10+'0',0);
278 1 menu_display_char(14,1,tem%10+'0',0);
279 1 if(tem)
280 1 siob_send(down, 6);
281 1 while(tem)
282 1 {
283 2 pos= page*256+tmp_line*0x00100000+0x00280000;
284 2 nf_read_tobuf(pos,gps_data_buf,240);
285 2 i=0;
286 2 while(i<3)
287 2 {
288 3 menu_display_char(6,1,tem/1000+'0',0);
289 3 menu_display_char(7,1,tem/100%10+'0',0);
290 3 menu_display_char(8,1,tem/10%10+'0',0);
291 3 menu_display_char(9,1,tem%10+'0',0);
292 3 if(get_key()==KEY_CODE_ESC) return;
293 3 if(tem)
294 3 {
295 4 pp=gps_data_buf+i*80;
296 4 siob_send(pp, strlen(pp));
297 4 }
298 3 else break;
299 3 tem--;
300 3 i++;
301 3 }
C51 COMPILER V7.09 GPS_COLLECT 09/25/2008 11:56:21 PAGE 6
302 2
303 2 page++;
304 2
305 2 }
306 1 menu_process_over();
307 1 while(get_key()!=KEY_CODE_ESC);
308 1
309 1 }
310 /*
311 线路选择处理函数
312
313 */
314 void process_line(void)
315 {
316 1 unsigned char key;
317 1 tmp_line=0xff;
318 1 menu_line(); //显示线路选择界面
319 1 while(1)
320 1 {
321 2 key=get_key();
322 2 switch(key)
323 2 {
324 3 //按对应数字键,反显数字,并记下线路序号.
325 3 case KEY_CODE_NUM1:
326 3 case KEY_CODE_NUM2:
327 3 case KEY_CODE_NUM3:
328 3 case KEY_CODE_NUM4:
329 3 case KEY_CODE_NUM5:
330 3 case KEY_CODE_NUM6:
331 3 case KEY_CODE_NUM7:
332 3 case KEY_CODE_NUM8:
333 3 menu_line(); //显示线路选择界面
334 3 if(key<5)
335 3 menu_display_char(0,key-1,key+'0',1);
336 3 else
337 3 menu_display_char(8,key-5,key+'0',1);
338 3 tmp_line=key-1;
339 3 break;
340 3
341 3 case KEY_CODE_ESC:
342 3 return;
343 3 break;
344 3
345 3 case KEY_CODE_ENTER:
346 3 if(tmp_line>7) return;
347 3 if( cur_menu_status==11)
348 3 {
349 4 process_direction(); //显示上下行选择界面
350 4 }
351 3 else if(cur_menu_status==13)
352 3 {
353 4 process_direction(); //显示上下行选择界面
354 4 }
355 3 else if(cur_menu_status==14)
356 3 {
357 4 process_upgps();
358 4
359 4
360 4 }
361 3 menu_line(); //显示线路选择界面
362 3 tmp_line=0xff;
363 3 break;
C51 COMPILER V7.09 GPS_COLLECT 09/25/2008 11:56:21 PAGE 7
364 3
365 3 case KEY_CODE_FUNC:
366 3 if(tmp_line>7)break;
367 3 if( cur_menu_status==11)
368 3 {
369 4 process_inputline();
370 4 menu_line(); //显示菜单界面
371 4 tmp_line=0xff;
372 4 }
373 3 break;
374 3 default:
375 3
376 3 break;
377 3 }
378 2
379 2 }
380 1 }
381 //main函数调用,显示菜单界面,按1,2,3,4键有效,按取消或确定键退出
382 void main_process(void)
383 {
384 1 unsigned char key;
385 1 menu_fun(); //显示菜单界面
386 1 while(1)
387 1 {
388 2 key=get_key();
389 2 switch(key)
390 2 {
391 3 case KEY_CODE_NUM1:
392 3 cur_menu_status=11;
393 3 process_line(); //线路选择处理函数
394 3 menu_fun(); //显示菜单界面
395 3 cur_menu_status=1;
396 3 break;
397 3 case KEY_CODE_NUM2:
398 3 // if(gps_8line[cur_line].gps_counter_up==6000)
399 3 gps_receive_flg=!gps_receive_flg;
400 3 menu_fun(); //显示菜单界面
401 3 break;
402 3 case KEY_CODE_NUM3:
403 3 cur_menu_status=13;
404 3 process_line(); //线路选择处理函数
405 3 menu_fun(); //显示菜单界面
406 3 cur_menu_status=1;
407 3
408 3 break;
409 3 case KEY_CODE_NUM4:
410 3 cur_menu_status=14;
411 3 process_line(); //线路选择处理函数
412 3 menu_fun(); //显示菜单界面
413 3 cur_menu_status=1;
414 3
415 3 break;
416 3
417 3 case KEY_CODE_ESC:
418 3 case KEY_CODE_ENTER:
419 3 return;
420 3 break;
421 3
422 3 default:
423 3
424 3 break;
425 3 }
C51 COMPILER V7.09 GPS_COLLECT 09/25/2008 11:56:21 PAGE 8
426 2
427 2 }
428 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 2701 ----
CONSTANT SIZE = 12 ----
XDATA SIZE = 538 43
PDATA SIZE = ---- ----
DATA SIZE = ---- ----
IDATA SIZE = ---- ----
BIT SIZE = ---- ----
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -