#ifndef _DATA_AverageSpeed_H_
#define _DATA_AverageSpeed_H_



#define DATA_AVG_SPEED_TOTAL_KM 50


typedef struct 
{
    uint32_t Mileage; //100m
    uint32_t DrTime; //100ms
    uint32_t MileageBackUp;
    uint32_t Val;
    uint32_t Dis;
    uint8_t Valid;
    uint32_t Safety_Belt_DrTime;
    uint32_t Speed;
}_AvgSpeed_Struct;
extern _AvgSpeed_Struct AvgSpeed;


typedef struct 
{
    uint16_t Value;
    uint8_t Valid;
}_AvgPower_Struct;

extern _AvgPower_Struct AvgPower;


typedef struct 
{
    uint32_t Hour; 
    uint32_t Minute; 

}_DriverTime;


uint8_t Get_OFF_AvgSpeed_Time(void);
extern void AvgSpeed_DriTime_Add(uint32_t Inc);
extern void Data_Avg_Speed_Processing(void);
void AvgSpeed_Milleage_Add(uint32_t Inc);
uint32_t GetDriverTime(void);
uint32_t GetDriverMilleage(void);
uint16_t GetAvgSpeed(void);
uint8_t GetAvgSpeed_Valid(void);
void Data_Avg_Speed_Reset(void);
uint16_t Get_AvgPower_Value(void);
uint8_t Get_AvgPower_Valid(void);
void Clear_DriverTime(uint8_t Set);
void Clear_AvgSpeed(uint8_t Set);
void Set_AvgSpeedDisTime(uint8_t Set);
void Data_AverageSpeed_KL30_Init(void);
//void Data_AverageSpeed_KL15_Init(void);
void Safety_Belt_DriTime_Add(uint32_t Inc);
uint8_t Get_EngSpeed_Start_Flag(void);
void AvgSpeed_Speed_Add(uint32_t Inc);
#endif