#ifndef _FUELCONFIG_H #define _FUELCONFIG_H #include "g_includes.h" #define FUEL_R_MIN_VAL 20 //10 X ohm #define FUEL_R_MAX_VAL 3500 //10 X ohm #define DISPLAY_BOUNDARY_FIRST 3000 #define DISPLAY_BOUNDARY_SECOND 2690 #define DISPLAY_BOUNDARY_THIRD 1979 #define DISPLAY_BOUNDARY_FOURTH 1491 #define DISPLAY_BOUNDARY_FIFTH 1136 #define DISPLAY_BOUNDARY_SIXTH 865 #define DISPLAY_BOUNDARY_SEVENTH 652 #define DISPLAY_BOUNDARY_EIGHTH 480 #define DISPLAY_BOUNDARY_NINTH 345 #define DISPLAY_BOUNDARY_TENTH 215 #define DISPLAY_BOUNDARY_ELEVENTH 150 #define BOUNDARY_FUEL_FIRST 3000 #define BOUNDARY_FUEL_SECOND 4800 #define BOUNDARY_FUEL_THIRD 10200 #define BOUNDARY_FUEL_FOURTH 15600 #define BOUNDARY_FUEL_FIFTH 21000 #define BOUNDARY_FUEL_SIXTH 26400 #define BOUNDARY_FUEL_SEVENTH 31800 #define BOUNDARY_FUEL_EIGHTH 37200 #define BOUNDARY_FUEL_NINTH 42600 #define BOUNDARY_FUEL_TENTH 48000 #define BOUNDARY_FUEL_ELEVENTH 50400 //Fuel Config typedef struct _FuelStruct { uint16_t FuelShortCircuitR; uint16_t FuelOpenCircuitR; uint16_t LowFuelWarningResistance; uint16_t LowFuelWarningReleaseResistance; uint32_t LowFuelWarningFuelCapacity; uint16_t RefuleDteFuelChangeThreshold; //ml uint32_t FullFuelStopCapacity; //S/F uint32_t EmptyFuelStopCapacity; //S/E uint16_t DisplayZoneBoundary[11]; uint32_t FuelCapacityBoundary[11]; }FuelStruct; extern void InitFuelParamter(FuelStruct *para); extern uint8_t *GetFuelSaveData(uint16_t *len); extern void SetFuelSaveData(uint8_t *data, uint16_t len); extern void SaveSampleVal(uint16_t FuelResistance); //unit:ohm,accuracy:0.1 extern void FuelFSM(uint16_t FuelResistance); extern void SetFuelSensorRecoverGroupCnt(uint16_t n); //1:500ms,2:1000ms,3:1500ms.......,range:5s(10)-30min(3600) extern void SetFuelSensorOpenCircuitGroupCnt(uint16_t n); //1:500ms,2:1000ms,3:1500ms.......,range:5s(10)-30min(3600) extern void SetFuelSensorShortCircuitGroupCnt(uint16_t n); //1:500ms,2:1000ms,3:1500ms.......,range:5s(10)-30min(3600) extern void SetRefuleDteFuelChangeThreshold(uint16_t ml); extern uint32_t ResistanceToCapacity(uint16_t Resistance); extern uint32_t StepToCapacity(uint8_t Step); extern void SetPowerSt(uint8_t n); extern void SetSpeed(uint16_t n); extern void SetRefuelThreshold(uint32_t data); /* 2000 ~ 50000:2L ~ 50L, default:6L */ extern uint8_t GetFuelSeg(void); //���� extern uint8_t GetFuelStep(void); //ָ�� extern uint8_t GetFuelStepPointer(void); extern uint32_t GetFuelCapacityVal(void); extern uint8_t GetFuelLFW(void); extern uint16_t GetRefuelVrefResistance(void); extern uint8_t GetFuelDestStep(void); extern uint8_t GetOutputFuelStep(void); extern void SetFuelInit(void); extern void ExecFuel(void); enum { FuelSensorNormal, FuelSensorShortCircuit, FuelSensorOpenCircuit, FuelSensorPreFault, }; extern uint8_t GetFuelSensorState(void); enum { FUEL_ST_BATTERY_RESET, FUEL_ST_REFUEL, FUEL_ST_VEHICLE_RUN, }; extern uint8_t GetFuelFSM_St(void); extern uint16_t GetFuelResistance(void); // AFC & DrivingRange typedef struct _AFC_INIT { uint8_t CalcAFCMaxNum; //max 100km,default 50 uint16_t AFCMin; //unit:L,accuracy:0.1 uint16_t AFCMax; //unit:L,accuracy:0.1 uint16_t AFCPreinstall; //unit:L,accuracy:0.1 uint32_t CurODO; // unit:m,accuracy:1 uint32_t MaxDRMileage; //unit:km,accuracy:0.01 }AFC_INIT; extern void InitAFC(AFC_INIT *data); extern uint8_t *GetDrivingRangeSaveData(uint16_t *len); extern void SetDrivingRangeSaveData(uint8_t *data, uint16_t len); extern void ResetAFC(AFC_INIT *data); typedef struct _AFC_PARA { uint32_t CurODO; // unit:m,accuracy:1 uint16_t FuleConsume; // unit:ul,accuracy:1 uint16_t RPM; // unit:RPM,accuracy:1 uint16_t Speed; // unit:km/h,accuracy:0.1 }AFC_PARA; extern void SetAFCPara(AFC_PARA *data); extern void AFCTimerCall(void); //must per 10ms interrupt extern uint16_t GetDRMileage(void); //unit:km,accuracy:1 extern uint16_t GetDR_Ori(void); extern uint16_t GetCurAFC(void); //unit:L,accuracy:0.1 extern uint16_t GetAFCSumH(void); extern uint16_t GetAFCSumL(void); extern uint16_t GetRefuelResistance(void); extern void DisplayLongAFC_InitFuelconsume(uint16_t DataH, uint16_t DataL); extern void DisplayLongAFC_InitODO(uint16_t DataH, uint16_t DataL); extern void CalcDisplayLongAFC(void); extern uint16_t GetDisplayLongAFC(void); extern void DisplayLongAFC_InitFuelconsume_1(uint16_t DataH, uint16_t DataL); extern void DisplayLongAFC_InitODO_1(uint16_t DataH, uint16_t DataL); extern void CalcDisplayLongAFC_1(void); extern uint16_t GetDisplayLongAFC_1(void); #if 1 void FuelSleep(void); void FuelWake(void); void GET_Data_For_YB(void); void FuelAFCTimeCall(void); void Fuel_RangeDis(void); uint8_t GetFuelCapacity_Val(void); void Data_Fuel_Display(void); uint8_t Get_Fuel_curPosition(void); void Data_Fuel_Display_Init(void); uint8_t Get_Fuel_Valid(void); void ExecFuel_Init(void); uint8_t GET_Fuel_Sensor_Resistance_High(void); uint8_t GET_Fuel_Sensor_Resistance_Low(void); //void Data_InsFuel_KM_ADD(INT16U Inc); typedef struct { uint32_t FuelMaxResistance; uint32_t FuelMinResistance; uint32_t MaxFuelMileage; uint32_t MinFuelMileage; uint32_t Capacity_Val; }_BackFuelData; typedef struct { uint8_t Icon; uint16_t FastModeCnt; Data_Renew_Mode_Enum Mode; uint8_t DampT; uint8_t DampTCnt; uint8_t destPosition; uint8_t curPosition; }_MinFuelDis; extern _MinFuelDis MinFuelMeter; typedef struct { uint8_t Sensor_State; uint16_t Res_Pre_Get; uint16_t Step_Get_Value; uint16_t Step_Get_Valid; uint16_t Capacity_PerCent_Export; uint16_t FuelExecTime; uint16_t AFC; uint16_t Capacity_Val; uint32_t ChangeDisplayZoneBoundary[11]; uint32_t ChangeCapacityBoundary[11]; uint16_t ChangeOpenRes; uint16_t ChangeShortRse; uint16_t AFCPreinstall; uint8_t Fuel_Sensor_Resistance_High; uint8_t Fuel_Sensor_Resistance_Low; }_MinFuel_Data_Struct; extern _MinFuel_Data_Struct MinFuelData; typedef struct { uint8_t DestPosition; uint8_t DisStep; uint16_t Range; uint16_t RangeDis; uint16_t LastRange; uint8_t RangeValid; uint8_t Flg_18FEF200; }_FuelDis; extern _FuelDis FuelMeter; typedef struct { uint16_t FreshTime; uint8_t Valid; uint8_t First_Distance; uint32_t Value; uint32_t Display_Value; uint32_t Distance; uint32_t Time; uint32_t RateSum; uint8_t Flg_18FEF200; uint32_t Value_Last; uint16_t V_Speed_backup; uint8_t Display_Flag; uint8_t Display_Unit; }_Data_InsFuel_Struct; extern _Data_InsFuel_Struct Data_InsFuel; #endif #endif