📄 process.lst
字号:
244 1 switch(len)
245 1 {
246 2 case 0:
247 2 SenBuf[6]=0x05;
248 2
249 2 for(i=0;i<5;i++)
250 2 SenBuf[7+i]=Send_WaterLevel[i];
251 2 break;
252 2
253 2 case 1:
254 2 SenBuf[6]=0x07;
255 2
256 2 SenBuf[8]=0x30;
257 2
258 2 for(i=0;i<5;i++)
259 2 SenBuf[8+len+i]=Send_WaterLevel[i];
260 2 break;
261 2
262 2 case 2 :
263 2 //add by jxf 060807
264 2 SenBuf[6]=0x0b;
265 2 SenBuf[7]=0x32;
266 2
267 2 for(i=0;i<5;i++)
268 2 SenBuf[8+i]=Send_WaterLevel[i];
269 2
270 2 for(i=0;i<5;i++)
271 2 SenBuf[13+i]=last_waterlevel[i];
272 2
273 2 for(i=0;i<5;i++)
274 2 last_waterlevel[i]=Send_WaterLevel[i];
275 2
276 2 break;
277 2 }
278 1
279 1
280 1 for(i=0;i<SenBuf[6]+7;i++)
281 1 cs+=SenBuf[i];
282 1
283 1 SenBuf[7+SenBuf[6]]=cs;
284 1
285 1 SenBuf[8+SenBuf[6]]=FRAME_END_CHAR;
286 1 Senlen=SenBuf[6]+9;
287 1
288 1 return 1;
289 1 }
290
291
292 /*******************************************************************
293 召测数据函数
294 函数原型: char Rd_collect(void)
295 功 能:
296
297 ********************************************************************/
298 char Rd_collect(void)
299 {
300 1 char ii=0,i=0;
301 1
302 1 switch(RecBuf[3])
303 1 {
C51 COMPILER V7.50 PROCESS 10/08/2006 08:51:41 PAGE 6
304 2 case 1 :
305 2 ii=RainFall_Process(RecBuf[5],Scan_RainFall,i);//将RainFall 换为Scan_RainFall by xupeng
306 2 //去掉了RainFall=0;
307 2 return ii;
308 2
309 2 case 2 :
310 2 ii=Waterlevel(RecBuf[5],i);
311 2 return ii;
312 2 }
313 1
314 1 }
315
316
317 /*******************************************************************
318 自报雨量函数
319 函数原型: void Rep_rainfall(void)
320 功 能:
321
322 ********************************************************************/
323 void Rep_rainfall(void)
324 {
325 1 unsigned char fc,i=2;
326 1
327 1 SenBuf[0]=FRAME_START_CHAR;
328 1 SenBuf[1]=add[0];
329 1 SenBuf[2]=add[1];
330 1 SenBuf[4]=FRAME_START_CHAR;
331 1
332 1 fc=0x03;
333 1 RainFall_Process(fc,RainFall,i);
334 1
335 1 RainFall=0;
336 1
337 1 Rec_to_Send();
338 1 }
339
340
341 /*******************************************************************
342 自报水位函数
343 函数原型: void Rep_waterlevel(void)
344 功 能:
345
346 ********************************************************************/
347 void Rep_waterlevel(void)
348 {
349 1 unsigned char fc,i=2;
350 1
351 1 SenBuf[0]=FRAME_START_CHAR;
352 1 SenBuf[1]=add[0];
353 1 SenBuf[2]=add[1];
354 1 SenBuf[4]=FRAME_START_CHAR;
355 1
356 1 fc=0x03;
357 1 Waterlevel(fc,i);
358 1
359 1 Rec_to_Send();
360 1 }
361
362 /*******************************************************************
363 加报雨量函数
364 函数原型: void Add_rainfall(unsigned long int sum_rainfall,unsigned char add_data)
365 功 能:
C51 COMPILER V7.50 PROCESS 10/08/2006 08:51:41 PAGE 7
366
367 ********************************************************************/
368
369 void Add_rainfall(unsigned long int sum_rainfall,unsigned char add_data)
370 {
371 1 unsigned char fc,k;
372 1 k=1;
373 1
374 1 SenBuf[0]=FRAME_START_CHAR;
375 1 SenBuf[1]=add[0];
376 1 SenBuf[2]=add[1];
377 1 SenBuf[4]=FRAME_START_CHAR;
378 1
379 1 SenBuf[7]=add_data+0x30;
380 1
381 1 if(add_data>9)
382 1 SenBuf[7]=SenBuf[7]+0x07;
383 1
384 1 fc=0x08;
385 1 RainFall_Process(fc,sum_rainfall,k);
386 1
387 1 Rec_to_Send();
388 1 }
389
390
391 /*******************************************************************
392 加报水位函数
393 函数原型: void Add_waterlevel(unsigned char add_data)
394 功 能:
395
396 ********************************************************************/
397
398 void Add_waterlevel(unsigned char add_data)
399 {
400 1 unsigned char fc,k;
401 1
402 1 k=1;
403 1
404 1 SenBuf[0]=FRAME_START_CHAR;
405 1 SenBuf[1]=add[0];
406 1 SenBuf[2]=add[1];
407 1 SenBuf[4]=FRAME_START_CHAR;
408 1
409 1 SenBuf[7]=add_data+0x30;
410 1
411 1 if(add_data>9)
412 1 SenBuf[7]=SenBuf[7]+0x07;
413 1
414 1 fc=0x08;
415 1 Waterlevel(fc,k);
416 1
417 1 Rec_to_Send();
418 1 }
419
420 /*******************************************************************
421 配置基本水位函数
422 函数原型: char config_basic_waterlevel(void)
423 功 能:
424
425 ********************************************************************/
426 char config_basic_waterlevel(void)
427 {
C51 COMPILER V7.50 PROCESS 10/08/2006 08:51:41 PAGE 8
428 1 unsigned char i;
429 1 unsigned char xdata b_level[5];
430 1
431 1 cs=0;
432 1
433 1 for(i=0;i<5;i++)
434 1 {
435 2 b_level[i]=0;
436 2 }
437 1
438 1 if((RecBuf[7]>=0x30)&&(RecBuf[7]<=0x39)&&(RecBuf[8]>=0x30)&&(RecBuf[8]<=0x39)&&
439 1 (RecBuf[9]>=0x30)&&(RecBuf[9]<=0x39)&&(RecBuf[10]>=0x30)&&(RecBuf[10]<=0x39)&&
440 1 (RecBuf[11]>=0x30)&&(RecBuf[11]<=0x39)&&(RecBuf[6]==0x05))
441 1 {
442 2 for(i=0;i<5;i++)
443 2 b_level[i]=RecBuf[7+i];
444 2
445 2 Basic_WaterLevel=CHAR_TO_LONG(b_level,5);
446 2
447 2 W_block(WPAGE5,i2c_addr_basic_level,&b_level,5);
448 2
449 2 cl_ack_ct(RecBuf[5],RecBuf[3],1);
450 2 }
451 1 else
452 1 cl_ack_ct(RecBuf[5],RecBuf[3],0);
453 1
454 1 return 1;
455 1 }
456
457
458 /*******************************************************************
459 配置雨量倍数函数
460 函数原型: char config_Multiplier_rainfall(void)
461 功 能:
462
463 ********************************************************************/
464 char config_Multiplier_rainfall(void)
465 {
466 1 cs=0;
467 1
468 1 if((RecBuf[7]>=0x30)&&(RecBuf[7]<=0x39)&&(RecBuf[6]==0x01)&&(RecBuf[3]==0x01))
469 1 {
470 2 Mult_Rainfall=CHAR_TO_LONG(&RecBuf[7],1);
471 2
472 2 W_block(WPAGE5,i2c_addr_mult_rainfall,&Mult_Rainfall,1);
473 2
474 2 cl_ack_ct(RecBuf[5],RecBuf[3],1);
475 2 }
476 1 else
477 1 cl_ack_ct(RecBuf[5],RecBuf[3],0);
478 1
479 1 return 1;
480 1 }
481
482 /*******************************************************************
483 写配置函数
484 函数原型: char Wr_cfg(void)
485 功 能:
486
487 ********************************************************************/
488 char Wr_cfg(void)
489 {
C51 COMPILER V7.50 PROCESS 10/08/2006 08:51:41 PAGE 9
490 1 unsigned char i;
491 1 unsigned char xdata cr_cfg[3],new_cfg[3];
492 1
493 1 cs=0;
494 1
495 1 for(i=0;i<3;i++)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -