FuelConfig.h 4.97 KB
Newer Older
hu's avatar
hu committed
1 2
#ifndef _FUELCONFIG_H
#define _FUELCONFIG_H
hu's avatar
hu committed
3 4

typedef unsigned short INT16U;
hu's avatar
hu committed
5
typedef unsigned char INT8U;
hu's avatar
hu committed
6 7
typedef unsigned int INT32U;

hu's avatar
hu committed
8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50
#define DISPLAY_BOUNDARY_ES         1500
#define DISPLAY_BOUNDARY_1          1500
#define DISPLAY_BOUNDARY_2          1373
#define DISPLAY_BOUNDARY_3          1191
#define DISPLAY_BOUNDARY_4          1009
#define DISPLAY_BOUNDARY_5          848
#define DISPLAY_BOUNDARY_6          697
#define DISPLAY_BOUNDARY_7          545
#define DISPLAY_BOUNDARY_8          436
#define DISPLAY_BOUNDARY_9          345
#define DISPLAY_BOUNDARY_10         254
#define DISPLAY_BOUNDARY_11         188
#define DISPLAY_BOUNDARY_12         132
#define DISPLAY_BOUNDARY_13         84
#define DISPLAY_BOUNDARY_FS         65

#define BOUNDARY_FUEL_ES            0
#define BOUNDARY_FUEL_1             400
#define BOUNDARY_FUEL_2             720
#define BOUNDARY_FUEL_3             860
#define BOUNDARY_FUEL_4             1040
#define BOUNDARY_FUEL_5             1428
#define BOUNDARY_FUEL_6             2577
#define BOUNDARY_FUEL_7             3750
#define BOUNDARY_FUEL_8             4931
#define BOUNDARY_FUEL_9             5536
#define BOUNDARY_FUEL_10            5724
#define BOUNDARY_FUEL_11            6491
#define BOUNDARY_FUEL_12            6850
#define BOUNDARY_FUEL_13            7199
#define BOUNDARY_FUEL_FS            7600

#define FUEL_R_MIN_VAL 40   // 10 X ohm
#define FUEL_R_MAX_VAL 3000 // 10 X ohm

// Fuel Config
typedef struct _FuelStruct
{
    INT16U FuelShortCircuitR;
    INT16U FuelOpenCircuitR;
    INT16U DisplayZoneBoundary[22];
    INT16U FuelCapacityBoundary[22];
} FuelStruct;
hu's avatar
hu committed
51 52

extern void InitFuelParamter(FuelStruct *para);
hu's avatar
hu committed
53
extern INT8U *GetFuelLibVersion(void);
hu's avatar
hu committed
54

hu's avatar
hu committed
55
extern void FuelFSM(INT16U FuelResistance); // unit:ohm,accuracy:0.1
hu's avatar
hu committed
56

hu's avatar
hu committed
57
extern void SetMaxFuelBlockNum(INT8U n); // call after InitFuelParamter(),default 12,max 20
hu's avatar
hu committed
58

hu's avatar
hu committed
59 60 61
extern void SetFuelSensorRecoverGroupCnt(INT16U n);      // 1:500ms,2:1000ms,3:1500ms.......,range:5s(10)-30min(3600)
extern void SetFuelSensorOpenCircuitGroupCnt(INT16U n);  // 1:500ms,2:1000ms,3:1500ms.......,range:5s(10)-30min(3600)
extern void SetFuelSensorShortCircuitGroupCnt(INT16U n); // 1:500ms,2:1000ms,3:1500ms.......,range:5s(10)-30min(3600)
hu's avatar
hu committed
62 63

extern void SetPowerSt(INT8U n);
hu's avatar
hu committed
64 65
extern INT8U GetFuelSeg(void);  // Segment, range:0~8
extern INT8U GetFuelStep(void); // Pointer or Mono TFT stepless,range:0,10~((MaxFuelBlockNum + 1) * 10)  0,10:E,   ((MaxFuelBlockNum + 1) * 10):F
hu's avatar
hu committed
66

hu's avatar
hu committed
67
extern INT16U GetFuelCapacityVal(void); // unit:L,accuracy:0.1
hu's avatar
hu committed
68

hu's avatar
hu committed
69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84
enum
{
    FuelSensorNormal,
    FuelSensorShortCircuit,
    FuelSensorOpenCircuit,
    FuelSensorPreFault,
};
extern INT8U GetFuelSensorState(void);

enum
{
    FUEL_ST_IGN_ON_PROCESS = 1, // 1
    FUEL_ST_POWER_ON_ADD_FUEL,  // 2
    FUEL_ST_VEHICLE_RUN,        // 3
    FUEL_ST_IGN_OFF_PROCESS,    // 4
    FUEL_ST_IGN_OFF,            // 5
hu's avatar
hu committed
85 86
};
extern INT8U GetFuelFSM_St(void);
hu's avatar
hu committed
87
extern INT16U GetFuelResistance(void); // unit:ohm,accuracy:0.1
hu's avatar
hu committed
88

hu's avatar
hu committed
89 90
extern void SetPowerDnStep(INT8U step); // call every ign on  (after InitFuelParamter())
extern INT8U GetPowerDnStep(void);      // every 10km or ign off or refuel(FUEL_ST_POWER_ON_ADD_FUEL->FUEL_ST_VEHICLE_RUN) record
hu's avatar
hu committed
91 92

// AFC & DrivingRange
hu's avatar
hu committed
93 94 95 96 97 98 99 100 101
typedef struct _AFC_INIT
{
    INT8U CalcAFCMaxNum;  // max 100km,default 50
    INT16U AFCMin;        // unit:L,accuracy:0.1
    INT16U AFCMax;        // unit:L,accuracy:0.1
    INT16U AFCPreinstall; // unit:L,accuracy:0.1
    INT32U CurODO;        // unit:m,accuracy:1
    INT32U MaxDRMileage;  // unit:km,accuracy:0.01
} AFC_INIT;
hu's avatar
hu committed
102 103 104
extern void InitAFC(AFC_INIT *data);
extern void ResetAFC(AFC_INIT *data);

hu's avatar
hu committed
105 106 107 108 109 110 111
typedef struct _AFC_PARA
{
    INT32U CurODO;      // unit:m,accuracy:1
    INT16U FuleConsume; // unit:ul,accuracy:1
    INT16U RPM;         // unit:RPM,accuracy:1
    INT8U Speed;        // unit:km/h,accuracy:1
} AFC_PARA;
hu's avatar
hu committed
112 113
extern void SetAFCPara(AFC_PARA *data);

hu's avatar
hu committed
114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134
typedef struct _DAFC_PARA
{
    INT32U DAFC_FuelConsumeSum; // unit:ul    (ul:m->ml:km->L:1000km)
    INT32U DAFC_ODO;            // unit:m
} DAFC_PARA;
extern void DAFC_GetPowerDownPara(DAFC_PARA *data); // call every 10km or ign off or reset afc
extern void DAFC_SetPowerDownPara(DAFC_PARA *data); // call every KL30 OFF -> KL30 ON (after InitAFC())

typedef struct _DR_PARA
{
    INT32U DR_FuelConsumeSum; // unit:ul    (ul:m->ml:km->L:1000km)
    INT32U DR_Mileage;        // unit:km,accuracy:0.01
} DR_PARA;
extern void DR_GetPowerDownPara(DR_PARA *data); // call every 10km or ign off
extern void DR_SetPowerDownPara(DR_PARA *data); // call every KL30 OFF -> KL30 ON (after InitAFC())

extern void AFCTimerCall(void);   // must per 10ms interrupt
extern INT16U GetDRMileage(void); // unit:km,accuracy:1
extern INT16U GetCurAFC(void);    // unit:L,accuracy:0.1

// display afc
hu's avatar
hu committed
135
extern void DAFC_Reset(AFC_INIT *data);
hu's avatar
hu committed
136 137
extern INT16U DAFC_GetAFC(void); // unit:L,accuracy:0.1
// display afc end
hu's avatar
hu committed
138

hu's avatar
hu committed
139
extern void SetIgnOffRefuelThreshold(uint8_t data);
hu's avatar
hu committed
140

hu's avatar
hu committed
141
#endif