#ifndef DataProcess_H #define DataProcess_H #define VCU_COUNT_MAX 10 #define Voltage_Max 25 #define Veh_Timeover 10 /****************************************************************************** 车速 ******************************************************************************/ /*** 全局变量 ***/ extern uint16_t DataVSpeedActual; extern uint16_t DataVSpeedDisp; //extern uint16_t DataVSpeedHysteresis; extern uint8_t DataVSpeedValid; extern uint8_t DataOverSpeed; extern uint32_t VSpeedCal; extern uint32_t PowerIgnOffTimeLine; #define DATA_VEHICLE_SPEED_ACTUAL DataVSpeedActual #define DATA_VEHICLE_SPEED_DISPLAYING DataVSpeedDisp #define DATA_VEHICLE_SPEED_VALID DataVSpeedValid //#define DATA_OVER_SPEED_WARNING DataOverSpeed /*** 参数设置 ***/ #define DATA_VSPEED_DAMPING_FACTOR 4 //阻尼系数 #define DATA_VSPEED_INC_STEP 3 //速度增加时慢加速速度变化步长 #define DATA_VSPEED_DEC_STEP 8 //方向改变时急减速速度变化步长 #define DATA_VSPEED_APPR_SPEED_MIN 2 //最小逼近速度 #define DATA_VSPEED_HYSTERESIS 10 //回差 /****************************************************************************** 数据逼近方向 ******************************************************************************/ #define DATA_APPR_DIR_INC 0x00 #define DATA_APPR_DIR_DEC 0x01 /*** 控制结构 ***/ typedef struct { uint16_t Timer; uint16_t Backup; uint16_t Buffer[3]; uint8_t Cnt; uint8_t UseBackup; }DataVSpeedSamplerStruct; //车速采样结构 typedef struct { uint16_t Speed; uint16_t Delta; uint8_t Dir; }DataVSPeedDampingStruct; //车速阻尼结构 //车速 extern DataVSpeedSamplerStruct DataVSpeedSampler; extern DataVSPeedDampingStruct DataVSPeedDamping; /****************************************************************************** 发动机转速 ******************************************************************************/ /*** 控制结构 ***/ typedef struct { uint16_t Backup; uint16_t Timer; uint16_t Buffer [ 5 ]; uint8_t Cnt; } DataESpeedSamplerStruct; typedef struct { uint16_t u16Can_Actual; uint8_t u8Can_Valid; uint16_t u16Res_Actual; uint8_t u8Res_Valid; uint16_t u16FreIn_Actual; uint8_t u8FreIn_Valid; }DataESpeedStruct; typedef struct { uint32_t Buffer[5]; uint8_t Cnt; }DataFreESpeedSamplerStruct; typedef struct { uint16_t Speed; uint16_t Delta; uint8_t Dir; } DataESPeedDampingStruct; extern DataESpeedSamplerStruct DataESpeedSampler; extern uint16_t DataESpeedActual; extern uint16_t DataESpeedDisp; extern uint8_t DataESpeedValid ; #define DATA_ENGINE_SPEED_ACTUAL DataESpeedActual #define DATA_ENGINE_SPEED_DISPLAYING DataESpeedDisp #define DATA_ENGINE_SPEED_VALID DataESpeedValid #define DATA_ENGINE_RUNNING_THRESHOLD 400 #define DATA_ENGINE_STOP_THRESHOLD 300 #define DATA_ESPEED_DAMPING_FACTOR 4 #define DATA_ESPEED_INC_STEP 3 #define DATA_ESPEED_DEC_STEP 8 #define DATA_ESPEED_APPR_SPEED_MIN 2 #define DATA_ESPEED_HYSTERESIS 50 /****************************************************************************** 水温 ******************************************************************************/ typedef enum { Positive, Negative, }_Symbol; typedef enum { Fast_Mode = 0, Buffered_Mode, }Data_Renew_Mode_Enum; typedef struct { INT8U Value; INT8U Symbol; INT8U Valid; INT8U LED; uint16_t FastModeCnt; Data_Renew_Mode_Enum Mode; uint8_t DampT; uint8_t DampTCnt; uint8_t destPosition; uint8_t curPosition; }DataCoolantStruct; extern DataCoolantStruct Coolant_Temperature_st; typedef struct { INT16U Value; INT8U Icon; INT8U Valid; INT8U Dis_Value; uint16_t FastModeCnt; Data_Renew_Mode_Enum Mode; uint8_t DampT; uint8_t DampTCnt; uint8_t destPosition; uint8_t curPosition; }DataUreaStruct; extern DataUreaStruct Urea_st; typedef struct { uint8_t Value; uint8_t Valid; uint8_t Hour; uint8_t Min; }Urea_Limited_Torque_Struct; typedef struct { uint8_t Value; uint8_t Valid; uint8_t Hour; uint8_t Min; }Urea_Limited_Vehicle_Speed_Struct; typedef struct { uint8_t Value; uint8_t Symbol; uint8_t Valid; uint8_t LED; uint8_t Sound; uint8_t First_Distance; }DataSafetyBeltStruct; extern DataSafetyBeltStruct Safety_Belt_st; typedef struct{ INT32U Value; uint8_t Backup_Value; uint8_t Display_Value; INT16U TimeCnt ; uint8_t Valid; uint8_t Flg; }_InsFuel_Eng; extern _InsFuel_Eng InsFuel_Eng; extern _InsFuel_Eng AvgFuel_Eng; typedef struct { uint16_t BoardVal; uint16_t CurBoardVal; // uint16_t OldBoardVal; uint16_t OldPosition; uint16_t CurPosition; // uint16_t DestPosition; // uint16_t CalPosition; uint16_t Time; uint8_t MotorReset; // uint8_t ZeroStep; uint8_t Dir; uint8_t Update; uint8_t MakeZero; uint8_t bPhase; uint8_t CalTime; uint8_t DelayTime; uint8_t MoveEn; } _MeterPos; typedef struct { uint32_t u16SglVal; uint16_t u16DispVal; uint8_t Sign; uint16_t u16Counter; uint16_t u16SUM; uint16_t u16Flag; }_Sign_Data_Struct; extern _Sign_Data_Struct g_InstPower; extern _Sign_Data_Struct g_SOC; extern _Sign_Data_Struct g_MAX_Power; extern _Sign_Data_Struct g_Range; extern _Sign_Data_Struct g_Voltage; extern _Sign_Data_Struct g_current; extern _Sign_Data_Struct g_MAX_Voltage; extern _Sign_Data_Struct g_MIN_Voltage; extern _Sign_Data_Struct g_MAX_Battery; extern _Sign_Data_Struct g_MIN_Battery; extern _Sign_Data_Struct g_Err_Code; extern volatile INT16U g_accVeh; extern _MeterPos g_revMeter; extern _MeterPos g_vehMeter; typedef struct { INT16U CurBoardVal; INT16U BoardVal; INT16U DispVal; INT16U Time; uint8_t Time1; } _LcdVeh; extern _LcdVeh g_lcdVeh; typedef struct { uint16_t Duty; uint8_t Cycle; uint8_t LightStep; uint8_t LightCn; } _Light; extern _Light g_Light; typedef struct { uint8_t DoorOpenLast; uint32_t DoorOpenTimeCount; uint8_t DoorOpenDisplay; }_DOOR; #define DoorOpenOFFTime 3000 extern _DOOR G_Door; typedef struct { INT16U LedTime_05HZ; INT16U LedTime_1HZ; INT16U LedTime_1_5HZ; INT16U LedTime_2HZ; uint8_t LedBlink_05HZ; uint8_t LedBlink_1HZ; uint8_t LedBlink_1_5HZ; uint8_t LedBlink_2HZ; }_LED; extern _LED g_LED; typedef struct { uint8_t Sound; uint32_t Year; uint16_t BackupYear; uint8_t LeapYear; uint8_t Month; uint8_t Date; uint8_t Hour; uint8_t Minute; uint8_t Hour_Local_Offset; uint8_t Minute_Local_Offset; uint8_t Hour_Local_Offset_Symbol; uint8_t Minute_Local_Offset_Symbol; uint8_t Hour_Back; uint8_t Minute_Back; uint8_t Hour_Back_Send; uint8_t Minute_Back_Send; uint8_t Seconds; uint16_t Lost; uint8_t Ldws; }Menu_TimeSetData_Struct; extern Menu_TimeSetData_Struct MenuData; typedef struct { uint32_t RollingCounter; uint32_t BackupCounter; uint16_t Year; uint16_t BackupYear; uint8_t Month; uint8_t Date; uint8_t Hour; uint8_t Minute; uint8_t Second; uint8_t LeapYear; }RTITimingStruct; extern RTITimingStruct RealTimeClock; typedef enum { Page_SelfCheck = 0, Page_Alarm, Page_Menu, Page_Max, }_PageType_Enum; typedef struct { uint16_t Back_Time_Left; uint16_t Back_Time_Right; uint8_t Back_Time_Right_Flag; uint8_t Back_Time_Left_Flag; _PageType_Enum PageType; unsigned int u16SelfCheckTimeCnt; }_Page_Infor; typedef enum { GEAR_R = 0, GEAR_N, GEAR_P, GEAR_D, GEAR_1, GEAR_2, GEAR_3, GEAR_4, GEAR_5, GEAR_6, GEAR_7, GEAR_8, GEAR_Max, }_Gear_Mode; typedef struct { uint8_t Valid; uint8_t Blink; _Gear_Mode Mode; }_Gear_Struct; extern _Gear_Struct Gear; typedef struct { uint8_t Wheel_ID; uint8_t TPMS_Blink; uint8_t TPMS_Valid; uint8_t Press_Valid; uint8_t Press_St; INT16U Press_Value; uint8_t Temp_Valid; uint8_t Temp_St; INT16U Temp_Value; INT16U Temp_Symbol; uint8_t Sensor_Loss; uint8_t Fast_Press; uint8_t Pop_Check; uint8_t LED_Blink; uint8_t Wheel_ID_Time; uint8_t Wheel_ID_OutTime; uint8_t Wheel_ID_Time_Lost; }_TPMS_Display_Infor; extern _TPMS_Display_Infor Left_Front_Display; extern _TPMS_Display_Infor Left_Rear_Display; extern _TPMS_Display_Infor Left_Rear_Inside_Display; extern _TPMS_Display_Infor Right_Front_Display; extern _TPMS_Display_Infor Right_Rear_Display; extern _TPMS_Display_Infor Right_Rear_Inside_Display; extern _TPMS_Display_Infor TPMS_Info; extern _TPMS_Display_Infor Left_Front_Display_Backup; extern _TPMS_Display_Infor Left_Rear_Display_Backup; extern _TPMS_Display_Infor Left_Rear_Inside_Display_Backup; extern _TPMS_Display_Infor Right_Front_Display_Backup; extern _TPMS_Display_Infor Right_Rear_Display_Backup; extern _TPMS_Display_Infor Right_Rear_Inside_Display_Backup; extern _TPMS_Display_Infor TPMS_Info_Display_Backup; typedef struct { uint8_t Can_0A18A006: 1; uint8_t Can_0CF00400: 1; uint8_t Can_18FF2100: 1; uint8_t Can_18FEEE00: 1; uint8_t Can_18FEF100: 1; uint8_t Can_18FD0700: 1; uint8_t Can_18FEFF00: 1; uint8_t Can_18FEE400: 1; uint8_t Can_18FECA00: 1; uint8_t Can_18FD7C00: 1; uint8_t Can_18FF4C00: 1; //uint8_t Can_10FF4117: 1; //uint8_t Can_18FEFC17: 1; //uint8_t Can_18FEC1EE: 1; uint8_t Can_10FF1021: 1; uint8_t Can_10FF7521: 1; uint8_t Can_18FEF433: 1; uint8_t Can_18FF9CF1: 1; uint8_t Can_18FECA03: 1; uint8_t Can_18FF4453: 1; uint8_t Can_18FFA8EE: 1; uint8_t Can_18FFB078: 1; uint8_t Can_18FE4A03: 1; uint8_t Can_18F00503: 1; uint8_t Can_18FF9DF1: 1; uint8_t Can_18FE5BE8: 1; uint8_t Can_10F007E8: 1; }_Can_Receive_Struct; extern _Can_Receive_Struct CanReceive; typedef struct { uint16_t ESpeedBackup; uint16_t Timer; uint8_t Mode; } DataESpeedIdleStruct; void Vehicle_Speed_Init(void ); void Data_Vehicle_Speed_Processing_Service(void); void Engine_Speed_Init(void ); void Data_Engine_Speed_Processing_Service(void ); uint16_t Get_DataESpeedValid(void); void Coolant_Init(void ); void Data_Coolant_Temp_Processing_Service(void); void Data_Instantaneous_Fuel_Service(void ); void Data_Instantaneous_Fuel_Display_Service(void); uint16_t GetRangeDisValue(void); uint8_t GetRangeValid(void); void Common_Input_Para(void); uint32_t Common_GetIgnOnTime(void); uint32_t Common_GetIgnOffTime(void); uint16_t Common_Get_Act_V_Speed(void); uint8_t Common_Get_Act_V_Speed_Valid(void); uint16_t Get_DispVechileSpeed(void); uint16_t Get_DispEngineSpeed(void); void GUI_Light_Init(void); void GUI_Sound_Init(void); void Gui_LightProc(void); void Data_Clear_Trip(void); void Data_Clear_Odo(void); void Data_Clear_Ins_fuel(void); void Data_Clear_Avg_fuel(void); void Data_Clear_Range(void); void Data_TPMS_Value_Processing(void); void Data_TPMS_30_15KL_Processing(void); void Flash_Service(void); void Data_Urea_Processing_Service(void); void Data_Urea_Limited_Vehicle_Speed(void); void Data_Urea_Limited_Torque(void); void Flash_Init(void); void Data_30KL_Init(void); void Data_15KL_Init(void); void Instantaneous_Fuel_Init(void); void Fuel_Range_Init(void); void Urea_Init(void); void Data_Clear_TYW(void); void Can_Receive_Init(void); void Can_0A18A006_Receive(void); void Can_0CF00400_Receive(void); void Can_18FF2100_Receive(void); void Can_18FEEE00_Receive(void); void Can_18FEF100_Receive(void); void Can_18FD0700_Receive(void); void Can_18FEFF00_Receive(void); void Can_18FEE400_Receive(void); void Can_18FECA00_Receive(void); void Can_18FD7C00_Receive(void); void Can_18FF4C00_Receive(void); //void Can_10FF4117_Receive(void); //void Can_18FEFC17_Receive(void); //void Can_18FEC1EE_Receive(void); void Can_10FF1021_Receive(void); void Can_10FF7521_Receive(void); void Can_18FEF433_Receive(void); void Can_18FF9CF1_Receive(void); void Can_18FECA03_Receive(void); void Can_18FF4453_Receive(void); void Can_18FFA8EE_Receive(void); void Can_18FFB078_Receive(void); void Can_18FE4A03_Receive(void); void Can_18F00503_Receive(void); void Can_18FF9DF1_Receive(void); void Can_18FE5BE8_Receive(void); void Can_10F007E8_Receive(void); void Damping_Data_Renew_Mode(uint8_t Valid, uint8_t FastModeDurtion, uint16_t *FastModeTimeCnt, uint8_t *Mode); void Data_Coolant_Display(void); uint16_t Get_InsFuel_Value(void); uint8_t Get_InsFuel_Valid(void); uint8_t Get_Coolant_Temp_Value(void ); uint8_t Get_Coolant_Temp_Valid(void ); uint8_t Get_Coolant_Temp_Symbol(void ); uint8_t GET_Gear_Mode(void); uint8_t GET_Gear_Valid(void); uint8_t GET_Gear_Blink(void); void Data_Gear_Processing_Service(void); void Gear_Init(void); uint8_t Get_Urea_Valid(void); uint8_t Get_Coolant_curPosition(void ); uint8_t Get_Urea_curPosition(void ); void RTC_TIME_Processing_Service(void); INT8U Get_NodeConfig_TPMS(void); INT8U Get_NodeConfig_AirBag(void); INT8U Get_NodeConfig_ESP(void); INT8U Get_NodeConfig_LWDS(void); INT8U Get_NodeConfig_GearBoxType(void); void MenuData_Time_Service(void); void Can18FF9CF1_Lost (void); void Power_Management_Time_Handle(void); uint16_t Get_OFF_FUEL_Dely_Time(void); //void Data_Clear_IVECO(void); void Can_RX_ResetAllTimer_Self_Check(void); void Data_GPIO_Sleep_Init(void); void TPMS_Tyre_Lost(void); void CAN_Time_Lost(void); INT8U Get_Mcu_Abnormal_Reset(void); uint16_t Get_ActualEngineSpeed(void); #endif