📄 comm.lst
字号:
428 1 }
429 //--------------------------------------------------------------------------------------------------
430 //函数名称:void ReportChannelCurrentStatus(unsigned char uchCh,unsigned char uchStatus,unsigned int uiVal
-ue,int uiGap)
431 //功 能:上报通道的状态,实时测量值和间隙电压
432 //输入参数:通道,状态,实时测量值和间隙电压
433 //返 回:无
434 //完成日期:4/16/2007
435 //--------------------------------------------------------------------------------------------------
436 void ReportChannelCurrentStatus(unsigned char uchCh,unsigned char uchStatus,unsigned int uiValue,int uiGap
-)
437 {
438 1 static unsigned char uchCountData = 0;
439 1
440 1 uchCountData++;
441 1 if (uchCountData == 3)
442 1 {
443 2 RunLEDStartControl(); //灯控制
444 2 }
445 1 else if (uchCountData >= 6)
446 1 {
447 2 RunLEDStopControl();
448 2 uchCountData = 0;
449 2 } //CAN运行灯控制临时添加,判断分析通信上报的状态
450 1
451 1 uchSendBuf[0] = 0;
452 1 uchSendBuf[1] = 0;
453 1 uchSendBuf[2] = 7;
454 1 uchSendBuf[3] = 0x21;
455 1 uchSendBuf[4] = uchCh;
456 1 uchSendBuf[5] = uchStatus;
457 1 *((unsigned int*)&uchSendBuf[6]) = uiValue;
458 1 *((unsigned int*)&uchSendBuf[8]) = uiGap;
459 1
460 1 if (uchCPUAddressStatus == 0)
461 1 {
462 2 uchCh = uchCh;
463 2 }
464 1 else if (uchCPUAddressStatus == 1)
465 1 {
466 2 uchCh = uchCh - 2;
467 2 }
468 1
469 1 if (uchAlarmStatusJudge[uchCh - 1] == uchAlarmStatusJudgeBAK[uchCh - 1])
470 1 {
471 2 SendPackage(3,0x01,uchSendBuf);
472 2 }
473 1 else if (uchAlarmStatusJudge[uchCh - 1] != uchAlarmStatusJudgeBAK[uchCh - 1])
474 1 {
475 2 SendPackage(1,0x01,uchSendBuf);
476 2 uchAlarmStatusJudgeBAK[uchCh - 1] = uchAlarmStatusJudge[uchCh - 1];
477 2 } //状态不相等,则优先级提高
478 1 }
479
480 //--------------------------------------------------------------------------------------------------
481 //函数名称:void ReportModuleType(unsigned char uchModuleType, unsigned int uchAddress)
482 //功 能:每个槽地址为偶数的CPU上报模块类型
483 //输入参数:模块类型,Can通讯地址
484 //返 回:无
485 //完成日期:6/22/2007
C51 COMPILER V7.10 COMM 09/18/2008 14:09:30 PAGE 9
486 //--------------------------------------------------------------------------------------------------
487 void ReportModuleType(unsigned char uchModuleType, unsigned int uchAddress)
488 {
489 1 unsigned int xdata i;
490 1 if(uchAddress % 2 == 0)
491 1 {
492 2 uchSendBuf[0] = 0;
493 2 uchSendBuf[1] = 0;
494 2 uchSendBuf[2] = 3;
495 2 uchSendBuf[3] = 0x11;
496 2 *(unsigned int *)&uchSendBuf[4] = uchModuleType;
497 2 SendPackage(1,1,uchSendBuf);
498 2 }
499 1 if (uchAddress % 2 == 1)
500 1 {
501 2 for (i=0; i<250; i++)
502 2 {
503 3 ;
504 3 }
505 2 }
506 1 }
507
508 //--------------------------------------------------------------------------------------------------
509 //函数名称:void SetAlarmStatusCOMM(unsigned char uchChannel, unsigned char uchAlarmStatus)
510 //功 能:将报警模块的报警状态设置到通信处理模块中来
511 //输入参数:通道号,报警状态
512 //返 回:无
513 //完成日期:6/22/2007
514 //--------------------------------------------------------------------------------------------------
515 void SetAlarmStatusCOMM(unsigned char uchChannel, unsigned char uchAlarmStatus)
516 {
517 1 uchAlarmStatusJudge[uchChannel - 1] = uchAlarmStatus;
518 1 }
519
520 //--------------------------------------------------------------------------------------------------
521 //函数名称:void InitCOMMModulePara(void)
522 //功 能:初始化通信模块中的变量参数
523 //输入参数:无
524 //返 回:无
525 //完成日期:6/22/2007
526 //--------------------------------------------------------------------------------------------------
527 void InitCOMMModulePara(void)
528 {
529 1 uchModuleConfigStatus = 0x00;
530 1 }
531
532 //--------------------------------------------------------------------------------------------------
533 //函数名称:void SetCPUAddressFlagCOMM(unsigned char uchCPUAddressFlag)
534 //功 能:将CPU地址的状态设置到通信模块中
535 //输入参数:CPU地址状态
536 //返 回:无
537 //完成日期:6/22/2007
538 //--------------------------------------------------------------------------------------------------
539 void SetCPUAddressFlagCOMM(unsigned char uchCPUAddressFlag)
540 {
541 1 uchCPUAddressStatus = uchCPUAddressFlag;
542 1 }
543
544 //--------------------------------------------------------------------------------------------------
545 //函数名称:void ReportSystemEvent(unsigned char uchChannel,unsigned int uiSystemEvent)
546 //功 能:上报系统事件
547 //输入参数:系统事件
C51 COMPILER V7.10 COMM 09/18/2008 14:09:30 PAGE 10
548 //返 回:无
549 //完成日期:6/22/2007
550 //--------------------------------------------------------------------------------------------------
551 void ReportSystemEvent(unsigned char uchChannel,unsigned int uiSystemEvent)
552 {
553 1 uchSendBuf[0] = 0;
554 1 uchSendBuf[1] = 0;
555 1 uchSendBuf[2] = 4; //数据长度
556 1 uchSendBuf[3] = 0x0E;
557 1
558 1 if (uchChannel == 0) //通道号为零,则是普通系统事件,不区分上下CPU
559 1 {
560 2 uchSendBuf[4] = uchChannel;
561 2 }
562 1 else //通道号不为零,则是特殊系统事件,要区分上下CPU
563 1 {
564 2 if (uchCPUAddressStatus == 0) //放在这判断是为了压缩程序代码
565 2 {
566 3 uchSendBuf[4] = uchChannel;
567 3 }
568 2 else if (uchCPUAddressStatus == 1)
569 2 {
570 3 uchSendBuf[4] = uchChannel + 2;
571 3 }
572 2
573 2 }
574 1
575 1 // uchSendBuf[4] = uchChannel; //后删除20080514
576 1
577 1 *((unsigned int*)&uchSendBuf[5]) = uiSystemEvent;
578 1
579 1 SendPackage(0,1,uchSendBuf);
580 1 return;
581 1 }
582
583 //--------------------------------------------------------------------------------------------------
584 //函数名称:void SetConfigChannelStatus(unsigned char uchChannel,unsigned char uchChannelStatusFlag)
585 //功 能:判断通道参数配置是否正确
586 //输入参数:通道号,通道配置标志 0:没配置过 1:配置不正确 2:配置正确 3:通道不存在
587 //返 回:无
588 //完成日期:6/22/2007
589 //--------------------------------------------------------------------------------------------------
590 /*void SetConfigChannelStatus(unsigned char uchChannel,unsigned char uchChannelStatusFlag)
591 {
592 uchConfigChannelStatus[uchChannel - 1] = uchChannelStatusFlag;
593 } */
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
C51 COMPILER V7.10 COMM 09/18/2008 14:09:30 PAGE 11
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 3721 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = 112 2
PDATA SIZE = ---- ----
DATA SIZE = 3 10
IDATA SIZE = ---- 6
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 + -