Telltales_user.c 22.2 KB
Newer Older
李俭双's avatar
李俭双 committed
1 2 3 4 5 6 7 8


#include "Telltales_Lib.h"
#include "Telltales_user.h"
#include "Line_In\Line_In_user.h"
#include "Application.h"
#include "CAN_APP\CAN_CH0_CAN_Communication_Matrix.h"
#include "Components.h"
李俭双's avatar
李俭双 committed
9 10
#include "LED_Driver_Interface.h"

李俭双's avatar
李俭双 committed
11 12 13

static Tellib_uint16_t LED_High_Beam_Judgement(void);
static void            LED_High_Beam_Execution(Tellib_uint16_t led_status);
李俭双's avatar
李俭双 committed
14 15 16 17 18 19
static Tellib_uint16_t LED_FAULT_ELECTROSPRAY_Judgement(void);
static void            LED_FAULT_ELECTROSPRAY_Execution(Tellib_uint16_t led_status);
static Tellib_uint16_t LED_ABS_Judgement(void);
static void            LED_ABS_Execution(Tellib_uint16_t led_status);
static Tellib_uint16_t LED_Oil_Pressure_Judgement(void);
static void            LED_Oil_Pressure_Execution(Tellib_uint16_t led_status);
李俭双's avatar
李俭双 committed
20 21
static Tellib_uint16_t LED_Fuel_Judgement(void);
static void            LED_Fuel_Execution(Tellib_uint16_t led_status);
李俭双's avatar
李俭双 committed
22 23 24 25 26 27 28 29
static Tellib_uint16_t LED_Coolant_Judgement(void);
static void            LED_Coolant_Execution(Tellib_uint16_t led_status);
static Tellib_uint16_t LED_Bluetooth_Judgement(void);
static void            LED_Bluetooth_Execution(Tellib_uint16_t led_status);
static Tellib_uint16_t LED_TCS_Judgement(void);
static void            LED_TCS_Execution(Tellib_uint16_t led_status);
static Tellib_uint16_t LED_Auto_Start_Judgement(void);
static void            LED_Auto_Start_Execution(Tellib_uint16_t led_status);
30 31
//static Tellib_uint16_t LED_Keys_Judgement(void);
//static void            LED_Keys_Execution(Tellib_uint16_t led_status);
李俭双's avatar
李俭双 committed
32 33 34 35 36 37 38 39
static Tellib_uint16_t LED_Maintain_Judgement(void);
static void            LED_Maintain_Execution(Tellib_uint16_t led_status);
static Tellib_uint16_t LED_Low_Batt_Judgement(void);
static void            LED_Low_Batt_Execution(Tellib_uint16_t led_status);
static Tellib_uint16_t LED_Lateral_Strut_Judgement(void);
static void            LED_Lateral_Strut_Execution(Tellib_uint16_t led_status);
static Tellib_uint16_t LED_Tire_Pressure_Judgement(void);
static void            LED_Tire_Pressure_Execution(Tellib_uint16_t led_status);
40 41
//static Tellib_uint16_t LED_Navigato_Judgement(void);
//static void            LED_Navigato_Execution(Tellib_uint16_t led_status);
李俭双's avatar
李俭双 committed
42

李俭双's avatar
李俭双 committed
43

李俭双's avatar
李俭双 committed
44
Led_HighBeam_Count HighBeam_Timer;
45
Tellib_uint16_t LED_Battery_Voltage = 0;
46
Tellib_uint16_t Battery_Voltage_valid = 0;
李俭双's avatar
李俭双 committed
47 48 49
const LED_Attribute_st LED_Attribute [ LED_Max ] = {
    /*  指示灯索引                  是否自检          外部信号自检           工作电源状态       自检开始时间    自检持续时间       指示灯点亮条件                           指示灯执行函数               */
    
李俭双's avatar
李俭双 committed
50 51 52 53 54 55 56 57 58
    {em_LED_High_Beam,              SelfCheck,     NoExterNalCheck,        LED_IGN_ON,             0u,         3000ul,         LED_High_Beam_Judgement,            LED_High_Beam_Execution},
    {em_LED_FAULT_ELECTROSPRAY,     SelfCheck,     NoExterNalCheck,        LED_IGN_ON,             0u,         3000ul,         LED_FAULT_ELECTROSPRAY_Judgement,   LED_FAULT_ELECTROSPRAY_Execution},
    {em_LED_ABS,                    SelfCheck,     NoExterNalCheck,        LED_IGN_ON,             0u,         3000ul,         LED_ABS_Judgement,                  LED_ABS_Execution},
    {em_LED_Oil_Pressure,           SelfCheck,     NoExterNalCheck,        LED_IGN_ON,             0u,         3000ul,         LED_Oil_Pressure_Judgement,         LED_Oil_Pressure_Execution},
    {em_LED_Fuel,                   SelfCheck,     NoExterNalCheck,        LED_IGN_ON,             0u,         3000ul,         LED_Fuel_Judgement,                 LED_Fuel_Execution},
    {em_LED_Coolant,                SelfCheck,     NoExterNalCheck,        LED_IGN_ON,             0u,         3000ul,         LED_Coolant_Judgement,              LED_Coolant_Execution},
    {em_LED_Bluetooth,              SelfCheck,     NoExterNalCheck,        LED_IGN_ON,             0u,         3000ul,         LED_Bluetooth_Judgement,            LED_Bluetooth_Execution},
    {em_LED_TCS,                    SelfCheck,     NoExterNalCheck,        LED_IGN_ON,             0u,         3000ul,         LED_TCS_Judgement,                  LED_TCS_Execution},
    {em_LED_Auto_Start_Stop,        SelfCheck,     NoExterNalCheck,        LED_IGN_ON,             0u,         3000ul,         LED_Auto_Start_Judgement,           LED_Auto_Start_Execution},
59
    //{em_LED_Keys,                   SelfCheck,     NoExterNalCheck,        LED_IGN_ON,             0u,         3000ul,         LED_Keys_Judgement,                 LED_Keys_Execution},
李俭双's avatar
李俭双 committed
60 61 62
    {em_LED_Maintain,               SelfCheck,     NoExterNalCheck,        LED_IGN_ON,             0u,         3000ul,         LED_Maintain_Judgement,             LED_Maintain_Execution},
    {em_LED_Low_Batt_Vol,           SelfCheck,     NoExterNalCheck,        LED_IGN_ON,             0u,         3000ul,         LED_Low_Batt_Judgement,             LED_Low_Batt_Execution},
    {em_LED_Lateral_Strut,          SelfCheck,     NoExterNalCheck,        LED_IGN_ON,             0u,         3000ul,         LED_Lateral_Strut_Judgement,        LED_Lateral_Strut_Execution},
63
#if(IC_Current == TY200_080000b_ty)
李俭双's avatar
李俭双 committed
64
    {em_LED_Tire_Pressure_Alarm,    SelfCheck,     NoExterNalCheck,        LED_IGN_ON,             0u,         3000ul,         LED_Tire_Pressure_Judgement,        LED_Tire_Pressure_Execution},
65
    //{em_LED_Navigator,              SelfCheck,     NoExterNalCheck,        LED_IGN_ON,             0u,         3000ul,         LED_Navigato_Judgement,             LED_Navigato_Execution},
66
#endif
李俭双's avatar
李俭双 committed
67 68 69 70 71 72 73 74 75 76 77
};


Tellib_uint8_t Tel_Mem [ Tel_MEM_Block_Size * LED_Max + Tel_MEM_Block_Addition ];

void Telltales_Init(void)
{
    TelExtPara m_ExtPara;
    m_ExtPara.TotalLength           = LED_Max;
    m_ExtPara.LED_PowerOFF_TimerCbk = Common_GetIgnOffTime;
    m_ExtPara.LED_PowerON_TimerCbk  = Common_GetIgnOnTime;
李俭双's avatar
李俭双 committed
78
    m_ExtPara.LED_PowerCbk          = Common_Get_IG_Sts;    
李俭双's avatar
李俭双 committed
79
    Telltales_KL30_Wakeup_Init(Tel_Mem, LED_Attribute, &m_ExtPara);
李俭双's avatar
李俭双 committed
80 81 82 83
    
}
void Telltales_UserInit(void)
{
李俭双's avatar
李俭双 committed
84 85
    HighBeam_Timer.LED_Turnon       = 0;
    HighBeam_Timer.LED_Turnoff      = 0;
86
    LED_Battery_Voltage             = 0;
87
    Battery_Voltage_valid           = 0;
李俭双's avatar
李俭双 committed
88 89 90 91 92 93 94 95
}
  
static Tellib_uint16_t LED_High_Beam_Judgement(void)
{
    Tellib_uint16_t LED_STATE = 0u;
    if (Line_In_Get_Status(LINE_IN_HighBeam))
    {
        LED_STATE = 1;
96 97 98 99 100 101 102 103 104
        //if(HighBeam_Timer.LED_Turnon < 10 )
        //{
        //    HighBeam_Timer.LED_Turnon ++;
        //}
        //else 
        //{
        //    HighBeam_Timer.LED_Turnon = 10;
        //    HighBeam_Timer.LED_Turnoff = 0;
        //}
李俭双's avatar
李俭双 committed
105
        
李俭双's avatar
李俭双 committed
106 107 108 109
    }
    else
    {
        LED_STATE = 0;
110 111 112 113 114 115 116 117 118
        //if(HighBeam_Timer.LED_Turnoff < 10 )
        //{
        //    HighBeam_Timer.LED_Turnoff ++;
        //}
        //else 
        //{
        //    HighBeam_Timer.LED_Turnoff = 10;
        //    HighBeam_Timer.LED_Turnon = 0;
        //}
李俭双's avatar
李俭双 committed
119
        
李俭双's avatar
李俭双 committed
120 121 122 123 124 125 126
    }
    return LED_STATE;
}
static void LED_High_Beam_Execution(Tellib_uint16_t led_status)
{
    if ( led_status == 1u )
    {
127
        LED_Driver_Channel_Set(LampChannel_0, LampCh0_29_High_Beam, LED_ON);
128
        SEG_SET_LED_STS(em_SEG_High_Beam, 1);
李俭双's avatar
李俭双 committed
129 130 131
    }
    else
    {
132
        LED_Driver_Channel_Set(LampChannel_0, LampCh0_29_High_Beam, LED_OFF);
133
        SEG_SET_LED_STS(em_SEG_High_Beam, 0);
李俭双's avatar
李俭双 committed
134 135
    }
}
李俭双's avatar
李俭双 committed
136
static Tellib_uint16_t LED_FAULT_ELECTROSPRAY_Judgement(void)
李俭双's avatar
李俭双 committed
137 138
{
    Tellib_uint16_t LED_STATE = 0u;
李俭双's avatar
李俭双 committed
139
    if (Line_In_Get_Status(LINE_IN_FAULT_ELECTROSPRAY))
李俭双's avatar
李俭双 committed
140
    {
李俭双's avatar
李俭双 committed
141
        LED_STATE = 1;
李俭双's avatar
李俭双 committed
142 143 144
    }
    else
    {
李俭双's avatar
李俭双 committed
145
        LED_STATE = 0;
李俭双's avatar
李俭双 committed
146 147 148
    }
    return LED_STATE;
}
李俭双's avatar
李俭双 committed
149
static void LED_FAULT_ELECTROSPRAY_Execution(Tellib_uint16_t led_status)
李俭双's avatar
李俭双 committed
150
{
李俭双's avatar
李俭双 committed
151
    if (led_status == 1u)
李俭双's avatar
李俭双 committed
152
    {
李俭双's avatar
李俭双 committed
153
        LED_Driver_Channel_Set(LampChannel_0, LampCh0_32_Fault_Diagnosis, LED_ON);
154
        SEG_SET_LED_STS(em_SEG_FAULT_ELECTROSPRAY, 1);
李俭双's avatar
李俭双 committed
155 156 157
    }
    else
    {
李俭双's avatar
李俭双 committed
158
        LED_Driver_Channel_Set(LampChannel_0, LampCh0_32_Fault_Diagnosis, LED_OFF);
159
        SEG_SET_LED_STS(em_SEG_FAULT_ELECTROSPRAY, 0);
李俭双's avatar
李俭双 committed
160 161
    }
}
李俭双's avatar
李俭双 committed
162
static Tellib_uint16_t LED_ABS_Judgement(void)
李俭双's avatar
李俭双 committed
163
{
李俭双's avatar
李俭双 committed
164
    Tellib_uint16_t LED_STATE = 0u;
165
    if((CAN_MSG_Status(&CAN_CH0_CanMsgOp, CAN_CH0_ID_CAN_0x120_Msg_Count) == CAN_SIG_LOST) )
李俭双's avatar
李俭双 committed
166
    {
167
        LED_STATE = 1;
李俭双's avatar
李俭双 committed
168 169 170
    }
    else
    {
171 172 173 174 175 176 177 178
        if (Line_In_Get_Status(LINE_IN_Fault_ABS))
        {
            LED_STATE = 0;
        }
        else
        {
            LED_STATE = 1;
        }
李俭双's avatar
李俭双 committed
179
    }
180
    
李俭双's avatar
李俭双 committed
181 182
    return LED_STATE;
}
李俭双's avatar
李俭双 committed
183
static void LED_ABS_Execution(Tellib_uint16_t led_status)
李俭双's avatar
李俭双 committed
184
{
李俭双's avatar
李俭双 committed
185 186 187
    if (led_status == 1u)
    {
        LED_Driver_Channel_Set(LampChannel_0, LampCh0_12_ABS_Alarm, LED_ON);
188
        SEG_SET_LED_STS(em_SEG_ABS, 1);
189
    }    
李俭双's avatar
李俭双 committed
190 191
    else
    {
李俭双's avatar
李俭双 committed
192
        LED_Driver_Channel_Set(LampChannel_0, LampCh0_12_ABS_Alarm, LED_OFF);
193
        SEG_SET_LED_STS(em_SEG_ABS, 0);
李俭双's avatar
李俭双 committed
194 195
    }
}
李俭双's avatar
李俭双 committed
196
static Tellib_uint16_t LED_Oil_Pressure_Judgement(void)
李俭双's avatar
李俭双 committed
197 198
{
    Tellib_uint16_t LED_STATE = 0u;
李俭双's avatar
李俭双 committed
199
    if (Line_In_Get_Status(LINE_IN_Oil_Pressure))
李俭双's avatar
李俭双 committed
200
    {
李俭双's avatar
李俭双 committed
201
        LED_STATE = 1;
李俭双's avatar
李俭双 committed
202 203 204
    }
    else
    {
李俭双's avatar
李俭双 committed
205
        LED_STATE = 0;
李俭双's avatar
李俭双 committed
206 207 208
    }
    return LED_STATE;
}
李俭双's avatar
李俭双 committed
209
static void LED_Oil_Pressure_Execution(Tellib_uint16_t led_status)
李俭双's avatar
李俭双 committed
210
{
李俭双's avatar
李俭双 committed
211
    if (led_status == 1u)
李俭双's avatar
李俭双 committed
212
    {
李俭双's avatar
李俭双 committed
213
        LED_Driver_Channel_Set(LampChannel_0, LampCh0_22_Oil_Pressure, LED_ON);
214
        SEG_SET_LED_STS(em_SEG_Oil_Pressure, 1);
李俭双's avatar
李俭双 committed
215 216 217
    }
    else
    {
李俭双's avatar
李俭双 committed
218
        LED_Driver_Channel_Set(LampChannel_0, LampCh0_22_Oil_Pressure, LED_OFF);
219
        SEG_SET_LED_STS(em_SEG_Oil_Pressure, 0);
李俭双's avatar
李俭双 committed
220 221 222 223 224 225 226 227 228 229 230 231 232 233 234
    }
}
static Tellib_uint16_t LED_Fuel_Judgement(void)
{
    Tellib_uint16_t LED_STATE = 0u;
    if (Common_GetIgnOnTime() >= 3000)
    {
        if(Get_Fuel_Sensor_State() == FuelSensorNormal)
        {
            if(Get_CurFuelSetp() > 1)
            {
                LED_STATE = 3;//白灯
            }
            else 
            {
李俭双's avatar
李俭双 committed
235
                LED_STATE = 2;//格小于等于1,黄灯闪
李俭双's avatar
李俭双 committed
236 237 238 239
            }
        }
        else
        {
240
            LED_STATE = 2;//开路,黄灯闪
李俭双's avatar
李俭双 committed
241 242 243 244
        }
    }
    else
    {
245
        LED_STATE = 1;   //黄灯常亮
李俭双's avatar
李俭双 committed
246 247 248 249 250 251 252
    }
    return LED_STATE;
}
static void LED_Fuel_Execution(Tellib_uint16_t led_status)
{
    if ( led_status == 3u )
    {
李俭双's avatar
李俭双 committed
253 254
        LED_Driver_Channel_Set(LampChannel_0, LampCh0_21_Fuel_W, LED_ON);  
        LED_Driver_Channel_Set(LampChannel_0, LampCh0_20_Fuel_Y, LED_OFF);  
255
        SEG_SET_LED_STS(em_SEG_Fuel,1);      
李俭双's avatar
李俭双 committed
256 257 258 259 260
    }
    else if ( led_status == 2u )
    {
        if (FLASH_SYNC_1Hz)
        {
李俭双's avatar
李俭双 committed
261
            LED_Driver_Channel_Set(LampChannel_0, LampCh0_20_Fuel_Y, LED_ON);
262
            SEG_SET_LED_STS(em_SEG_Fuel,1);
李俭双's avatar
李俭双 committed
263 264 265
        }
        else
        {
李俭双's avatar
李俭双 committed
266
            LED_Driver_Channel_Set(LampChannel_0, LampCh0_20_Fuel_Y, LED_OFF);
267
            SEG_SET_LED_STS(em_SEG_Fuel,0);
李俭双's avatar
李俭双 committed
268
        }
李俭双's avatar
李俭双 committed
269
        LED_Driver_Channel_Set(LampChannel_0, LampCh0_21_Fuel_W, LED_OFF);  
李俭双's avatar
李俭双 committed
270 271 272 273
        
    }
    else if ( led_status == 1u )
    {
李俭双's avatar
李俭双 committed
274
        LED_Driver_Channel_Set(LampChannel_0, LampCh0_20_Fuel_Y, LED_ON);
275
        SEG_SET_LED_STS(em_SEG_Fuel,1);
李俭双's avatar
李俭双 committed
276
        LED_Driver_Channel_Set(LampChannel_0, LampCh0_21_Fuel_W, LED_OFF);  
李俭双's avatar
李俭双 committed
277 278 279
    }
    else 
    {
李俭双's avatar
李俭双 committed
280 281
        LED_Driver_Channel_Set(LampChannel_0, LampCh0_21_Fuel_W, LED_OFF); 
        LED_Driver_Channel_Set(LampChannel_0, LampCh0_20_Fuel_Y, LED_OFF);
282
        //SEG_SET_LED_STS(em_SEG_Fuel,0);
李俭双's avatar
李俭双 committed
283 284
    }
}
李俭双's avatar
李俭双 committed
285
static Tellib_uint16_t LED_Coolant_Judgement(void)
李俭双's avatar
李俭双 committed
286 287
{
    Tellib_uint16_t LED_STATE = 0u;
288 289 290 291 292 293 294 295 296 297
    if(GET_DataCollantTempWarnflg() == 2)
    {
        LED_STATE = 2;
    }
    else if (GET_DataCollantTempWarnflg() == 1)
    {
        LED_STATE = 3;
    }
    else
    {
298
        LED_STATE = 1;
299
    }
李俭双's avatar
李俭双 committed
300 301
    return LED_STATE;
}
李俭双's avatar
李俭双 committed
302
static void LED_Coolant_Execution(Tellib_uint16_t led_status)
李俭双's avatar
李俭双 committed
303
{
304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331
    if ( led_status == 2u )
    {
        LED_Driver_Channel_Set(LampChannel_0, LampCh0_13_Temp_AlarmW, LED_OFF);
        if (FLASH_SYNC_1Hz)
        {
            LED_Driver_Channel_Set(LampChannel_0, LampCh0_11_Temp_AlarmR, LED_ON);
            SEG_SET_LED_STS(em_SEG_Coolant, 1);
        }
        else
        {
            LED_Driver_Channel_Set(LampChannel_0, LampCh0_11_Temp_AlarmR, LED_OFF);
            SEG_SET_LED_STS(em_SEG_Coolant, 0);
        }
    }
    else if ( led_status == 3u )
    {
        LED_Driver_Channel_Set(LampChannel_0, LampCh0_11_Temp_AlarmR, LED_OFF);
        if (FLASH_SYNC_1Hz)
        {
            LED_Driver_Channel_Set(LampChannel_0, LampCh0_13_Temp_AlarmW, LED_ON);
            SEG_SET_LED_STS(em_SEG_Coolant, 1);
        }
        else
        {
            LED_Driver_Channel_Set(LampChannel_0, LampCh0_13_Temp_AlarmW, LED_OFF);
            SEG_SET_LED_STS(em_SEG_Coolant, 0);
        }
    }
332
    else if ( led_status == 1u )
333
    {
334 335
        LED_Driver_Channel_Set(LampChannel_0, LampCh0_13_Temp_AlarmW, LED_ON);
        LED_Driver_Channel_Set(LampChannel_0, LampCh0_11_Temp_AlarmR, LED_OFF);
336 337 338 339
        SEG_SET_LED_STS(em_SEG_Coolant, 1);
    }   
    else
    {
340 341 342
        LED_Driver_Channel_Set(LampChannel_0, LampCh0_13_Temp_AlarmW, LED_OFF);
        LED_Driver_Channel_Set(LampChannel_0, LampCh0_11_Temp_AlarmR, LED_OFF);
        SEG_SET_LED_STS(em_SEG_Coolant, 0);
343
    }
李俭双's avatar
李俭双 committed
344 345 346 347
}
static Tellib_uint16_t LED_Bluetooth_Judgement(void)
{
    Tellib_uint16_t LED_STATE = 0u;
348
    if (BlueTooth.BLE_St)
349 350 351 352 353 354 355
    {
        LED_STATE = 1u;
    }
    else
    {
        LED_STATE = 0u;
    }
李俭双's avatar
李俭双 committed
356 357 358 359
    return LED_STATE;
}
static void LED_Bluetooth_Execution(Tellib_uint16_t led_status)
{
360 361 362
    if ( led_status == 1u )
    {
        LED_Driver_Channel_Set(LampChannel_0, LampCh0_23_Bluetooth, LED_ON);
363
        SEG_SET_LED_STS(em_SEG_Bluetooth, 1);
364 365 366 367
    }
    else
    {
        LED_Driver_Channel_Set(LampChannel_0, LampCh0_23_Bluetooth, LED_OFF);
368
        SEG_SET_LED_STS(em_SEG_Bluetooth, 0);
369 370
    }

李俭双's avatar
李俭双 committed
371 372 373 374
}
static Tellib_uint16_t LED_TCS_Judgement(void)
{
    Tellib_uint16_t LED_STATE = 0u;
375
    if (Get_Dis_Tcs_Val() == 1)
376
    {
377
        if((CAN_MSG_Status(&CAN_CH0_CanMsgOp, CAN_CH0_ID_CAN_0x120_Msg_Count) == CAN_SIG_LOST) )
378
        {
379 380 381 382 383
            LED_STATE = 1; 
        }
        else
        {
            
384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399
            if((Get_CAN_CH0_ID_120_Sig_TCSStatus() == 1) || (Get_CAN_CH0_ID_120_Sig_TCSStatus() == 2) || (Get_CAN_CH0_ID_120_Sig_TCSStatus() == 3) || (Get_CAN_CH0_ID_120_Sig_TCSStatus() == 5))
            {
               LED_STATE = 1; 
            }
            else if (Get_CAN_CH0_ID_120_Sig_TCSStatus() == 4)
            {
                LED_STATE = 2;  //1HZ闪烁
            }
            else if (Get_CAN_CH0_ID_120_Sig_TCSStatus() == 6)
            {
                LED_STATE = 3;  //2HZ闪烁
            }
            else if ((Get_CAN_CH0_ID_120_Sig_TCSStatus() == 0) || (Get_CAN_CH0_ID_120_Sig_TCSStatus() == 7))
            {
                LED_STATE = 0;
            }
400
            
401 402
        }
    }
403 404 405 406 407
    else
    {
        LED_STATE = 0;
    }
    
408
    
李俭双's avatar
李俭双 committed
409 410 411 412
    return LED_STATE;
}
static void LED_TCS_Execution(Tellib_uint16_t led_status)
{
413 414 415
    if ( led_status == 1u )
    {
        LED_Driver_Channel_Set(LampChannel_0, LampCh0_25_TCS_Alarm, LED_ON);
416
        SEG_SET_LED_STS(em_SEG_TCS, 1);
417 418 419 420 421 422
    }
    else if ( led_status == 2u )
    {
        if (FLASH_SYNC_1Hz)
        {
            LED_Driver_Channel_Set(LampChannel_0, LampCh0_25_TCS_Alarm, LED_ON);
423
            SEG_SET_LED_STS(em_SEG_TCS, 1);
424 425 426 427
        }
        else
        {
            LED_Driver_Channel_Set(LampChannel_0, LampCh0_25_TCS_Alarm, LED_OFF);
428
            SEG_SET_LED_STS(em_SEG_TCS, 0);
429 430 431 432 433 434 435
        }
    }
    else if ( led_status == 3u )
    {
        if (FLASH_SYNC_2Hz)
        {
            LED_Driver_Channel_Set(LampChannel_0, LampCh0_25_TCS_Alarm, LED_ON);
436
            SEG_SET_LED_STS(em_SEG_TCS, 1);
437 438 439 440
        }
        else
        {
            LED_Driver_Channel_Set(LampChannel_0, LampCh0_25_TCS_Alarm, LED_OFF);
441
            SEG_SET_LED_STS(em_SEG_TCS, 0);
442 443 444 445 446
        }
    }
    else
    {
        LED_Driver_Channel_Set(LampChannel_0, LampCh0_25_TCS_Alarm, LED_OFF);
447
        SEG_SET_LED_STS(em_SEG_TCS, 0);
448
    }
李俭双's avatar
李俭双 committed
449 450 451 452
}
static Tellib_uint16_t LED_Auto_Start_Judgement(void)
{
    Tellib_uint16_t LED_STATE = 0u;
453 454 455 456 457 458 459 460
    if (Line_In_Get_Status(LINE_IN_Auto_Start_Stop))
    {
        LED_STATE = 1;
    }
    else
    {
        LED_STATE = 0;
    }
李俭双's avatar
李俭双 committed
461 462 463 464
    return LED_STATE;
}
static void LED_Auto_Start_Execution(Tellib_uint16_t led_status)
{
465 466 467
    if ( led_status == 1u )
    {
        LED_Driver_Channel_Set(LampChannel_0, LampCh0_28_Auto_Star_Stop, LED_ON);
468
        SEG_SET_LED_STS(em_SEG_Auto_Start_Stop, 1);
469 470 471 472
    }
    else
    {
        LED_Driver_Channel_Set(LampChannel_0, LampCh0_28_Auto_Star_Stop, LED_OFF);
473
        SEG_SET_LED_STS(em_SEG_Auto_Start_Stop, 0);
474
    }
李俭双's avatar
李俭双 committed
475
}
476 477 478 479 480 481 482 483 484
//static Tellib_uint16_t LED_Keys_Judgement(void)
//{
//    Tellib_uint16_t LED_STATE = 0u;
//    return LED_STATE;
//}
//static void LED_Keys_Execution(Tellib_uint16_t led_status)
//{
//    ;
//}
李俭双's avatar
李俭双 committed
485 486 487
static Tellib_uint16_t LED_Maintain_Judgement(void)
{
    Tellib_uint16_t LED_STATE = 0u;
488 489 490 491 492 493 494 495
    if(Get_Data_Maintenace_Interval_Processing() == 0)
    {
        LED_STATE = 1;
    }
    else
    {
        LED_STATE = 0;
    }
李俭双's avatar
李俭双 committed
496 497 498 499
    return LED_STATE;
}
static void LED_Maintain_Execution(Tellib_uint16_t led_status)
{
500 501 502 503 504 505 506 507 508 509
    if ( led_status == 1u )
    {
        LED_Driver_Channel_Set(LampChannel_0, LampCh0_33_Upkeep, LED_ON);
        SEG_SET_LED_STS(em_SEG_Upkeep, 1);
    }
    else
    {
        LED_Driver_Channel_Set(LampChannel_0, LampCh0_33_Upkeep, LED_OFF);
        SEG_SET_LED_STS(em_SEG_Upkeep, 0);
    }
李俭双's avatar
李俭双 committed
510 511 512 513
}
static Tellib_uint16_t LED_Low_Batt_Judgement(void)
{
    Tellib_uint16_t LED_STATE = 0u;
514
    Tellib_uint16_t Battery_Voltage = 0u;
515
    
516 517 518 519
    Battery_Voltage = Get_CAN_CH0_ID_401_Sig_ECU_Battery_Voltage();
    if((CAN_MSG_Status(&CAN_CH0_CanMsgOp, CAN_CH0_ID_CAN_0x401_Msg_Count) == CAN_SIG_LOST) )
    {
        LED_Battery_Voltage = 1; 
520
        Battery_Voltage_valid = 0;
521 522 523
    }
    else
    {
524
        if(Battery_Voltage_valid == 1)
525
        {
526 527 528 529 530 531 532 533 534 535 536 537 538
            Battery_Voltage_valid = 1;
            if (Get_Battery_Voltage() < 118)
            {
                LED_Battery_Voltage = 1; 
            }
            else if (Get_Battery_Voltage() >= 120)
            {
                LED_Battery_Voltage = 0;
            }
            else
            {
                ;
            }
539 540 541
        }
        else
        {
542 543 544 545 546 547 548 549 550
            Battery_Voltage_valid = 1;
            if (Get_Battery_Voltage() < 118)
            {
                LED_Battery_Voltage = 1; 
            }
            else
            {
                LED_Battery_Voltage = 0; 
            }
551
        }
552
        
553 554
    }
    LED_STATE = LED_Battery_Voltage;
李俭双's avatar
李俭双 committed
555 556 557 558
    return LED_STATE;
}
static void LED_Low_Batt_Execution(Tellib_uint16_t led_status)
{
559 560 561
    if ( led_status == 1u )
    {
        LED_Driver_Channel_Set(LampChannel_0, LampCh0_31_Low_Voltage, LED_ON);
562
        SEG_SET_LED_STS(em_SEG_Low_Batt_Vol, 1);
563 564 565 566
    }
    else
    {
        LED_Driver_Channel_Set(LampChannel_0, LampCh0_31_Low_Voltage, LED_OFF);
567
        SEG_SET_LED_STS(em_SEG_Low_Batt_Vol, 0);
568
    }
李俭双's avatar
李俭双 committed
569
}
李俭双's avatar
李俭双 committed
570 571 572
static Tellib_uint16_t LED_Lateral_Strut_Judgement(void)
{
    Tellib_uint16_t LED_STATE = 0u;
573 574 575 576 577 578 579 580 581 582 583 584 585 586 587 588 589 590 591 592 593 594 595 596 597 598
    Tellib_uint16_t SideStand = 0u;
    Tellib_uint16_t SideStand_State = 0u;
    SideStand = Get_CAN_CH0_ID_111_Sig_ISG_SideStand();
    SideStand_State = Get_CAN_CH0_ID_111_Sig_ISG_SideStand_State();
    if((CAN_MSG_Status(&CAN_CH0_CanMsgOp, CAN_CH0_ID_CAN_0x111_Msg_Count) == CAN_SIG_LOST) )
    {
        LED_STATE = 0; 
    }
    else
    {
        if ( SideStand_State == 1)
        {
            LED_STATE = 0;
        }
        else
        {
            if (SideStand == 1)
            {
                LED_STATE = 1;
            }
            else
            {
                LED_STATE = 0;
            }
        }
    }
李俭双's avatar
李俭双 committed
599 600 601 602
    return LED_STATE;
}
static void LED_Lateral_Strut_Execution(Tellib_uint16_t led_status)
{
603 604 605 606 607 608 609 610 611 612
    if ( led_status == 1u )
    {
        LED_Driver_Channel_Set(LampChannel_0, LampCh0_30_Lateral_Support, LED_ON);
        SEG_SET_LED_STS(em_SEG_Lateral_Strut, 1);
    }
    else
    {
        LED_Driver_Channel_Set(LampChannel_0, LampCh0_30_Lateral_Support, LED_OFF);
        SEG_SET_LED_STS(em_SEG_Lateral_Strut, 0);
    }
李俭双's avatar
李俭双 committed
613 614 615 616
}
static Tellib_uint16_t LED_Tire_Pressure_Judgement(void)
{
    Tellib_uint16_t LED_STATE = 0u;
617 618 619 620 621 622
    if(Get_Led_TPMS_Waring() == 1)
    {
        LED_STATE = 1;
    }
    else
    {
623
        LED_STATE = 2;
624
    }
李俭双's avatar
李俭双 committed
625 626 627 628
    return LED_STATE;
}
static void LED_Tire_Pressure_Execution(Tellib_uint16_t led_status)
{
629 630 631 632
    if ( led_status == 1u )
    {
        LED_Driver_Channel_Set(LampChannel_0, LampCh0_27_Tire_PressureY, LED_ON);
        LED_Driver_Channel_Set(LampChannel_0, LampCh0_26_Tire_PressureW, LED_OFF);
633
        SEG_SET_LED_STS(em_SEG_Tire_Pressure_Alarm, 1);
634
    }
635
    else if ( led_status == 2u )
636 637 638
    {
        LED_Driver_Channel_Set(LampChannel_0, LampCh0_26_Tire_PressureW, LED_ON);
        LED_Driver_Channel_Set(LampChannel_0, LampCh0_27_Tire_PressureY, LED_OFF);
639
        SEG_SET_LED_STS(em_SEG_Tire_Pressure_Alarm, 1);
640
    }
641 642 643 644 645 646
    else
    {
        LED_Driver_Channel_Set(LampChannel_0, LampCh0_26_Tire_PressureW, LED_OFF);
        LED_Driver_Channel_Set(LampChannel_0, LampCh0_27_Tire_PressureY, LED_OFF);
        SEG_SET_LED_STS(em_SEG_Tire_Pressure_Alarm, 0);
    }
647

李俭双's avatar
李俭双 committed
648 649 650 651 652 653 654 655 656 657 658 659
}
static Tellib_uint16_t LED_Navigato_Judgement(void)
{
    Tellib_uint16_t LED_STATE = 0u;
    return LED_STATE;
}
static void LED_Navigato_Execution(Tellib_uint16_t led_status)
{
    ;
}


李俭双's avatar
李俭双 committed
660 661 662

void Turn_Left_Right_Lamp(void)
{
663 664
    if ( SYS_OPR_STAT_IGN_ON )
    {
665
        if ((Common_GetIgnOnTime() >= 3000) && (ClearODO_Flag == 0))
666 667 668 669
        {
            if (Line_In_Get_Status(LINE_IN_TurnLeft))
            {
                LED_Driver_Channel_Set(LampChannel_0, LampCh0_06_Turn_Left, LED_ON);
670
                SEG_SET_LED_STS(em_SEG_Turn_Left, 1);
671 672 673 674
            }
            else
            {
                LED_Driver_Channel_Set(LampChannel_0, LampCh0_06_Turn_Left, LED_OFF);
675
                SEG_SET_LED_STS(em_SEG_Turn_Left, 0);
676 677 678 679
            }
            if (Line_In_Get_Status(LINE_IN_TurnRight))
            {
                LED_Driver_Channel_Set(LampChannel_0, LampCh0_05_Turn_Right, LED_ON);
680
                SEG_SET_LED_STS(em_SEG_Turn_Right, 1);
681 682 683 684
            }
            else
            {
                LED_Driver_Channel_Set(LampChannel_0, LampCh0_05_Turn_Right, LED_OFF);
685
                SEG_SET_LED_STS(em_SEG_Turn_Right, 0);
686 687 688 689 690
            }
        }
        else
        {
            LED_Driver_Channel_Set(LampChannel_0, LampCh0_06_Turn_Left, LED_ON);
691
            SEG_SET_LED_STS(em_SEG_Turn_Left, 1);
692
            LED_Driver_Channel_Set(LampChannel_0, LampCh0_05_Turn_Right, LED_ON);
693
            SEG_SET_LED_STS(em_SEG_Turn_Right, 1);
694 695 696 697 698
        }
    }
    else
    {
        LED_Driver_Channel_Set(LampChannel_0, LampCh0_06_Turn_Left, LED_OFF);
699
        SEG_SET_LED_STS(em_SEG_Turn_Left, 0);
700
        LED_Driver_Channel_Set(LampChannel_0, LampCh0_05_Turn_Right, LED_OFF);
701
        SEG_SET_LED_STS(em_SEG_Turn_Right, 0);
702
    }
李俭双's avatar
李俭双 committed
703
}