LED.c
1.98 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
#include "includes.h"
#include "hardware.h"
#include "all_value.h"
/********************闪灯原则*************************/
/*
绿灯:
1、手动模式 常亮;2、自动无任务时慢闪烁;3、自动有任务时快闪;
黄灯:
1、电量过低报警 慢闪烁;2、远距离减速触发+近距离停止触发快闪;3、电机故障 常亮;
白灯:
1、仅有激光位置 常亮;2、仅相机读码 慢闪烁;3、激光位置+有码 快闪;
组合:自动模式下通讯异常,3灯同时快速闪烁
*/
void Led_Pro(void)//三色灯输出+控制板系统指示灯
{
Flash(150);
/**************绿灯****************/
if( (Motor[2].MToPc.Home_Found==0)|(Motor[4].MToPc.Home_Found==0)){Out_LEDG=Flash2(1,30);} //舵轮原点丢失时闪烁1次
else if( (Workmode==ManuMode)&&(Motor[1].PcToM.PowerOn==0)) {Out_LEDG=Flash2(2,45);} //手动模式无使能 闪烁2次
else if( (Workmode==AutoMode)&&(Motor[1].PcToM.PowerOn==0)) {Out_LEDG=Flash2(4,45);} //自动模式取使能,闪烁4次
else if(VaIndexB_R(&AGV.OtheSta,4))Out_LEDG=Out_Flash3;//忙碌,有任务
else
{ if(Workmode==AutoMode )Out_LEDG=Out_Flash4;
else Out_LEDG=1;
}
/**************白灯****************/
if ( (VaIndexW_R(&NodeOnLine,9)) && (VaIndexW_R(&NodeOnLine,8)) && (Status_SlamLaser==2) )//下视觉和SLAM都有信息
Out_LEDW=Out_Flash3;
else if ( (VaIndexW_R(&NodeOnLine,8)) && (Status_SlamLaser==2) )
Out_LEDW=1;
else if (VaIndexW_R(&NodeOnLine,9))//下视觉有信息
// Out_LEDW=Flash2(3,40);
Out_LEDW=Out_Flash4;
else Out_LEDW=0;
/**************黄灯****************/
if((LRadar_Near | LRadar_Middle)&& ((TLaRadarDelay_Time4Nums>10)|(AGV.Line_Step>12 && AGV.Line_Step<90)) )
Out_LEDY=Out_Flash3;
else if(VaIndexB_R(&AGV.OtheSta,6)) Out_LEDY=Out_Flash4;
else if( ErrEnd_sign[0]|ErrEnd_sign[1] )Out_LEDY=1;
else Out_LEDY=0;
/**************通讯故障****************/
if ( NOT(VaIndexW_R(&NodeOnLine,13)) &&(Workmode==AutoMode) ) Out_LEDG=Out_LEDW=Out_LEDY=Out_Flash3;
/**************主板灯****************/
if( VaIndexW_R(&NodeOnLine,13) )Out_SystemLed=!Out_Flash3;
else Out_SystemLed=!Out_Flash4;
}