fome-fw/firmware/controllers/algo/engine_configuration_genera...

157 lines
2.2 KiB
C
Raw Normal View History

2015-01-21 14:04:08 -08:00
typedef struct {
/**
* offset 0
*/
2015-01-22 17:05:54 -08:00
float baseFuel;
2015-01-21 14:04:08 -08:00
/**
* This value controls what RPM values we consider 'cranking' (any RPM below 'crankingRpm')
* Anything above 'crankingRpm' would be 'running'
* offset 4
*/
2015-01-22 17:05:54 -08:00
int16_t rpm;
2015-01-21 14:04:08 -08:00
/**
* need 4 byte alignment
* offset 6
*/
uint8_t alignmentFill[2];
/** total size 8*/
} cranking_parameters_s;
/**
* @brief Thermistor curve parameters
*/
typedef struct {
/**
* these values are in Celcuus
* offset 0
*/
float tempC_1;
/**
* offset 4
*/
float tempC_2;
/**
* offset 8
*/
float tempC_3;
/**
* offset 12
*/
float resistance_1;
/**
* offset 16
*/
float resistance_2;
/**
* offset 20
*/
float resistance_3;
/**
* offset 24
*/
float bias_resistor;
/**
* offset 28
*/
float s_h_a;
/**
* offset 32
*/
float s_h_b;
/**
* offset 36
*/
float s_h_c;
/** total size 40*/
} ThermistorConf;
2015-01-21 15:06:34 -08:00
typedef struct {
/**
* kPa value at zero volts
* offset 0
2015-01-23 10:06:12 -08:00
*/
2015-01-22 17:05:54 -08:00
float valueAt0;
2015-01-21 15:06:34 -08:00
/**
* kPa value at 5 volts
* offset 4
2015-01-23 10:06:12 -08:00
*/
2015-01-22 17:05:54 -08:00
float valueAt5;
2015-01-21 15:06:34 -08:00
/**
* offset 8
2015-01-23 10:06:12 -08:00
*/
2015-01-22 17:05:54 -08:00
air_pressure_sensor_type_e type;
2015-01-21 15:06:34 -08:00
/**
* offset 12
2015-01-23 10:06:12 -08:00
*/
2015-01-21 15:06:34 -08:00
adc_channel_e hwChannel;
2015-01-23 10:06:12 -08:00
/** total size 16*/
2015-01-21 15:06:34 -08:00
} air_pressure_sensor_config_s;
2015-01-23 10:06:12 -08:00
/**
* @brief MAP averaging configuration
2015-01-21 15:06:34 -08:00
2015-01-23 10:06:12 -08:00
*/
2015-01-21 15:06:34 -08:00
typedef struct {
/**
* offset 0
2015-01-23 10:06:12 -08:00
*/
2015-01-21 15:06:34 -08:00
float samplingAngleBins[MAP_ANGLE_SIZE];
/**
* @brief MAP averaging sampling start angle, by RPM
* offset 32
2015-01-23 10:06:12 -08:00
*/
2015-01-21 15:06:34 -08:00
float samplingAngle[MAP_ANGLE_SIZE];
/**
* offset 64
2015-01-23 10:06:12 -08:00
*/
2015-01-21 15:06:34 -08:00
float samplingWindowBins[MAP_WINDOW_SIZE];
/**
* @brief MAP averaging angle duration, by RPM
* offset 96
2015-01-23 10:06:12 -08:00
*/
2015-01-21 15:06:34 -08:00
float samplingWindow[MAP_WINDOW_SIZE];
/**
* offset 128
2015-01-23 10:06:12 -08:00
*/
2015-01-21 15:06:34 -08:00
air_pressure_sensor_config_s sensor;
2015-01-23 10:06:12 -08:00
/** total size 144*/
2015-01-21 15:06:34 -08:00
} MAP_sensor_config_s;
2015-01-23 10:06:12 -08:00
/**
* @brief Trigger wheel(s) configuration
*/
typedef struct {
/**
* offset 0
*/
trigger_type_e type;
/**
* offset 4
*/
int customIsSynchronizationNeeded;
/**
* offset 8
*/
int customTotalToothCount;
/**
* offset 12
*/
int customSkippedToothCount;
/**
* offset 16
*/
float customSyncRatioFrom;
/**
* offset 20
*/
float customSyncRatioTo;
/**
* offset 24
*/
int customUseRiseEdge;
/** total size 28*/
} trigger_config_s;