#ifndef _TELLTALES_H_
#define _TELLTALES_H_
#include "GUI.h"
#include "CAN_Communication_Matrix.h"
#include "Line_In.h"
#include "LED.h"
#include "Flash_synchronizer.h"
#include "System_Status_Monitor.h"
#include "Non_volatile_Memorys.h"
#include "IO_Manager.h"
#include "Warning_Processor.h"
#include "Sound_List.h"
#include "Sound_Scheduler.h"
#include "Sound_Player.h"
#include "main.h"
typedef struct
{
uint8_t LastLeft;
uint8_t LastRight;
uint8_t Delay;
} TelltaleLRCtrlStruct;
typedef struct
{
uint8_t Enable;
uint8_t Filter;
uint8_t Timer;
uint8_t Output;
} TelltaleLRSimulateStruct;
extern INT32U BD83790A;
extern INT32U BD83790B;
extern INT32U BD83790C;
extern INT32U OldBD83790A;
extern INT32U OldBD83790B;
extern INT32U OldBD83790C;
extern uint8_t SEATBELT_Count;
extern uint8_t Break_nodown_Count;
extern uint8_t BREAK_FLUID_Count;
extern uint8_t BREAK_Count;
extern uint8_t Break_down_count;
extern uint8_t RR_HOOVES_Count;
extern uint8_t RF_HOOVES_Count;
extern uint8_t DoorSts_Count;
extern uint8_t OVER_SPEED_Count;
extern uint8_t CAB_LOCK_Count ;
extern uint8_t CollantAir_Count;
extern uint8_t Drivability_Count;
extern uint8_t PTO_Count;
extern uint8_t BreakLight_Count;
extern uint8_t FILT_BLOCK_Count;
extern uint8_t CHARGE_Count;
extern uint8_t EngineSeriousFailure_Count;
extern uint8_t Coolant_Temp_Count;
extern uint8_t EngOilPress_Count;
extern uint8_t DPF_Lamp_Count;
extern uint8_t Led_DPF_Count;
extern uint8_t DPF_Forbidden_Count;
extern uint8_t Stop_Start_System_Count;
extern uint8_t EPB_Count ;
extern uint8_t AEB_Count ;
extern uint8_t AMT_Count;
extern uint8_t LowBrakeLuidLevel_temp;
extern uint8_t LowBrakeLuidLevel_timp;
extern uint8_t SafetyBeltSt_temp;
extern uint8_t MaintainSignal_temp;
extern uint8_t ParkingBrakeSwitch_temp;
extern uint8_t CabLockSt_temp;
extern uint8_t PositionLightSts;
extern uint8_t DriveDoorSts;
extern uint8_t PsngrDoorSts;
extern uint8_t LED_T_BOX_RVM;
extern uint8_t TelltaleLCD_Flag33;
//��Ļָʾ��״̬��ʶ
typedef union
{
uint32_t Telltale;
struct
{
uint8_t LCD01 : 1; // 1
uint8_t LCD02 : 1; // 2
uint8_t LCD03 : 1; // 3
uint8_t LCD04 : 1; // 4
uint8_t LCD05 : 1; // 5
uint8_t LCD06 : 1; // 6
uint8_t LCD07 : 1; // 7
uint8_t LCD08 : 1; // 8
uint8_t LCD09 : 1; // 9
uint8_t LCD10 : 1; // 10
uint8_t LCD11 : 1; // 11
uint8_t LCD12 : 1; // 12
uint8_t LCD13 : 1; // 13
uint8_t LCD14 : 1; // 14
uint8_t LCD15 : 1; // 15
uint8_t LCD16 : 1; // 16
uint8_t LCD17 : 1; // 17
uint8_t LCD18 : 1; // 18
uint8_t LCD19 : 1; // 19
uint8_t LCD20 : 1; // 20
uint8_t LCD21 : 1; // 21
uint8_t LCD22 : 1; // 22
uint8_t LCD23 : 1; // 23
uint8_t LCD24 : 1; // 24
uint8_t LCD25 : 1; // 25
uint8_t LCD26 : 1; // 26
uint8_t LCD27 : 1; // 27
uint8_t LCD28 : 1; // 28
uint8_t LCD29 : 1; // 29
uint8_t LCD30 : 1; // 30
uint8_t LCD31 : 1; // 31
uint8_t LCD32 : 1; // 32
} Sig;
} TelltaleLCD;
extern TelltaleLCD TelltaleLCDFlag;
/******************************************************************************
ָʾ����˸ͬ��
******************************************************************************/
#define LED_FLASH_1Hz FLASH_SYNC_1Hz ? LED_ON : LED_OFF
#define LED_FLASH_2Hz FLASH_SYNC_2Hz ? LED_ON : LED_OFF
#define LED_FLASH_7Hz FLASH_SYNC_7Hz ? LED_ON : LED_OFF
/******************************************************************************
��������
******************************************************************************/
void Telltales_Management(void); //50ms
void Telltales_Left_Right_Management_Service(void);
#endif