auto-sync

This commit is contained in:
rusEfi 2014-10-31 13:05:18 -05:00
parent b695d36d28
commit ae7820f863
7 changed files with 34 additions and 16 deletions

View File

@ -51,6 +51,8 @@ void setDodgeNeon1995EngineConfiguration(engine_configuration_s *engineConfigura
engineConfiguration->algorithm = LM_ALPHA_N;
engineConfiguration->hasIatSensor = false;
// set_rpm_hard_limit 4000
engineConfiguration->rpmHardLimit = 4000; // yes, 4k. let's play it safe for now
// set_cranking_rpm 550

View File

@ -44,6 +44,8 @@ class engine_configuration2_s {
public:
engine_configuration2_s();
engine_configuration_s *engineConfiguration;
Thermistor iat;
Thermistor clt;

View File

@ -240,8 +240,10 @@ void setDefaultConfiguration(engine_configuration_s *engineConfiguration, board_
engineConfiguration->diffLoadEnrichmentCoef = 1;
engineConfiguration->hasMapSensor = TRUE;
engineConfiguration->hasCltSensor = TRUE;
engineConfiguration->hasMapSensor = true;
engineConfiguration->hasAfrSensor = true;
engineConfiguration->hasCltSensor = true;
engineConfiguration->hasBaroSensor = false;
boardConfiguration->idleSolenoidFrequency = 200;
// engineConfiguration->idleMode = IM_AUTO;

View File

@ -14,6 +14,7 @@
#include "sensor_types.h"
#include "can_header.h"
#include "rusefi_enums.h"
#include "global.h"
#define MOCK_UNDEFINED -1
@ -422,7 +423,11 @@ typedef struct {
board_configuration_s bc;
int hasMapSensor;
bool_t hasMapSensor : 1; // bit 0
bool_t hasIatSensor : 1; // bit 1
bool_t hasBaroSensor : 1; // bit 1
bool_t hasAfrSensor : 1; // bit 2
// that's the next 32 bit field
int hasCltSensor;
idle_mode_e idleMode;

View File

@ -189,11 +189,10 @@ static void cylinderCleanupControl(Engine *engine) {
}
static void handleGpio(Engine *engine, int index) {
if(boardConfiguration->gpioPins[index]==GPIO_NONE)
if (boardConfiguration->gpioPins[index] == GPIO_NONE)
return;
io_pin_e pin = (io_pin_e)((int)GPIO_0 + index);
io_pin_e pin = (io_pin_e) ((int) GPIO_0 + index);
int value = calc.getValue2(fuelPumpLogic, engine);
if (value != getOutputPinValue(pin)) {
@ -245,13 +244,13 @@ static void onEvenyGeneralMilliseconds(Engine *engine) {
// schedule next invocation
chVTSetAny(&everyMsTimer, boardConfiguration->generalPeriodicThreadPeriod * TICKS_IN_MS,
(vtfunc_t)&onEvenyGeneralMilliseconds, engine);
(vtfunc_t) &onEvenyGeneralMilliseconds, engine);
}
static void initPeriodicEvents(Engine *engine) {
// schedule first invocation
chVTSetAny(&everyMsTimer, boardConfiguration->generalPeriodicThreadPeriod * TICKS_IN_MS,
(vtfunc_t)&onEvenyGeneralMilliseconds, engine);
(vtfunc_t) &onEvenyGeneralMilliseconds, engine);
}
//static void fuelPumpOff(void *arg) {
@ -303,11 +302,15 @@ static void printAnalogChannelInfo(const char *name, adc_channel_e hwChannel) {
static void printAnalogInfo(void) {
printAnalogChannelInfo("TPS", engineConfiguration->tpsAdcChannel);
printAnalogChannelInfo("CLT", engineConfiguration->cltAdcChannel);
printAnalogChannelInfo("IAT", engineConfiguration->iatAdcChannel);
if (engineConfiguration->hasIatSensor) {
printAnalogChannelInfo("IAT", engineConfiguration->iatAdcChannel);
}
printAnalogChannelInfo("MAF", engineConfiguration->mafAdcChannel);
printAnalogChannelInfo("AFR", engineConfiguration->afrSensor.afrAdcChannel);
printAnalogChannelInfo("MAP", engineConfiguration->map.sensor.hwChannel);
printAnalogChannelInfo("BARO", engineConfiguration->baroSensor.hwChannel);
if (engineConfiguration->hasBaroSensor) {
printAnalogChannelInfo("BARO", engineConfiguration->baroSensor.hwChannel);
}
printAnalogChannelInfoExt("Vbatt", engineConfiguration->vbattAdcChannel, getVBatt());
}
@ -421,7 +424,7 @@ void initEngineContoller(Engine *engine) {
//mySetPadMode2("user-defined", boardConfiguration->gpioPins[i], PAL_STM32_MODE_OUTPUT);
io_pin_e pin = (io_pin_e)((int)GPIO_0 + i);
io_pin_e pin = (io_pin_e) ((int) GPIO_0 + i);
outputPinRegisterExt2(getPinName(pin), pin, boardConfiguration->gpioPins[i], &d);
}
}

View File

@ -34,9 +34,9 @@ float getR1InVoltageDividor(float Vout, float Vin, float r2) {
}
float getR2InVoltageDividor(float Vout, float Vin, float r1) {
if (Vout == 0) {
if (Vout == 0) {
return NAN;
}
}
return r1 / (Vin / Vout - 1);
}
@ -110,7 +110,9 @@ bool isValidIntakeAirTemperature(float temperature) {
float getCoolantTemperature(engine_configuration2_s * engineConfiguration2) {
float temperature = getTemperatureC(&engineConfiguration2->clt);
if (!isValidCoolantTemperature(temperature)) {
warning(OBD_PCM_Processor_Fault, "unrealistic CLT %f", temperature);
if (engineConfiguration2->engineConfiguration->hasCltSensor) {
warning(OBD_PCM_Processor_Fault, "unrealistic CLT %f", temperature);
}
return LIMPING_MODE_CLT_TEMPERATURE;
}
return temperature;
@ -155,7 +157,9 @@ void prepareThermistorCurve(ThermistorConf * config) {
float getIntakeAirTemperature(engine_configuration2_s * engineConfiguration2) {
float temperature = getTemperatureC(&engineConfiguration2->iat);
if (!isValidIntakeAirTemperature(temperature)) {
warning(OBD_PCM_Processor_Fault, "unrealistic IAT %f", temperature);
if (engineConfiguration2->engineConfiguration->hasIatSensor) {
warning(OBD_PCM_Processor_Fault, "unrealistic IAT %f", temperature);
}
return LIMPING_MODE_IAT_TEMPERATURE;
}
return temperature;

View File

@ -143,7 +143,7 @@ void runRusEfi(void) {
// that's dirty, this assignment should be nicer or in a better spot
engine.engineConfiguration = engineConfiguration;
engine.engineConfiguration2 = engineConfiguration2;
engineConfiguration2->engineConfiguration = engineConfiguration;
initErrorHandling();