auto-sync

This commit is contained in:
rusEfi 2015-05-24 12:12:31 -04:00
parent 5adba69501
commit 0f3cd8f320
18 changed files with 173 additions and 76 deletions

View File

@ -26,5 +26,6 @@ ENGINES_SRC_CPP = $(PROJECT_DIR)/config/engines/ford_aspire.cpp \
$(PROJECT_DIR)/config/engines/test_engine.cpp \
$(PROJECT_DIR)/config/engines/mitsubishi.cpp \
$(PROJECT_DIR)/config/engines/gm_2_2.cpp \
$(PROJECT_DIR)/config/engines/dodge_ram.cpp
$(PROJECT_DIR)/config/engines/dodge_ram.cpp \
$(PROJECT_DIR)/config/engines/vw.cpp

View File

@ -0,0 +1,23 @@
/*
* @file vw.cpp
*
* set_engine_type 32
*
* @date May 24, 2015
* @author Andrey Belomutskiy, (c) 2012-2015
*/
#include "main.h"
#include "vw.h"
#include "custom_engine.h"
EXTERN_ENGINE;
void setVwAba(DECLARE_ENGINE_PARAMETER_F) {
setCustomEngineConfiguration(PASS_ENGINE_PARAMETER_F);
setOperationMode(engineConfiguration, FOUR_STROKE_CAM_SENSOR);
}

View File

@ -0,0 +1,15 @@
/*
* @file vw.h
*
* @date May 24, 2015
* @author Andrey Belomutskiy, (c) 2012-2015
*/
#ifndef CONFIG_ENGINES_VW_H_
#define CONFIG_ENGINES_VW_H_
#include "engine.h"
void setVwAba(DECLARE_ENGINE_PARAMETER_F);
#endif /* CONFIG_ENGINES_VW_H_ */

View File

@ -78,6 +78,8 @@ case SUBARU_2003_WRX:
return "SUBARU_2003_WRX";
case TEST_ENGINE:
return "TEST_ENGINE";
case VW_ABA:
return "VW_ABA";
}
return NULL;
}

View File

@ -59,6 +59,7 @@
#include "sachs.h"
#include "gm_2_2.h"
#include "dodge_ram.h"
#include "vw.h"
EXTERN_ENGINE;
@ -363,7 +364,6 @@ void setDefaultConfiguration(DECLARE_ENGINE_PARAMETER_F) {
engineConfiguration->algorithm = LM_PLAIN_MAF;
engineConfiguration->vbattDividerCoeff = ((float) (15 + 65)) / 15;
boardConfiguration->targetVBatt = 14;
engineConfiguration->fanOnTemperature = 75;
engineConfiguration->fanOffTemperature = 70;
@ -692,6 +692,9 @@ void resetConfigurationExt(Logging * logger, engine_type_e engineType DECLARE_EN
case DODGE_RAM:
setDodgeRam1996(PASS_ENGINE_PARAMETER_F);
break;
case VW_ABA:
setVwAba(PASS_ENGINE_PARAMETER_F);
break;
case TEST_ENGINE:
setTestEngineConfiguration(PASS_ENGINE_PARAMETER_F);
break;

View File

@ -1,4 +1,4 @@
// this section was generated by config_definition.jar on Sun May 24 09:49:35 EDT 2015
// this section was generated by config_definition.jar on Sun May 24 11:16:32 EDT 2015
// begin
#include "rusefi_types.h"
typedef struct {
@ -396,11 +396,7 @@ typedef struct {
/**
* offset 232
*/
float unusedADC[15];
/**
* offset 292
*/
float targetVBatt;
float unusedADC[16];
/**
* offset 296
*/
@ -565,10 +561,9 @@ typedef struct {
*/
brain_pin_e hip9011IntHoldPin;
/**
* Turn off alternator output above specified TPS
* offset 656
*/
float alternatorOffAboveTps;
int unused113234;
/**
* offset 660
*/
@ -662,7 +657,7 @@ typedef struct {
/**
* offset 868
*/
int alternatorDT;
int unused2342342;
/** total size 872*/
} board_configuration_s;
@ -939,7 +934,7 @@ typedef struct {
/**
* offset 604
*/
float alternatorOffset;
int unused123;
/**
* @see hasBaroSensor
* offset 608
@ -1125,15 +1120,7 @@ typedef struct {
/**
* offset 1624
*/
float alternatorControlPFactor;
/**
* offset 1628
*/
float alternatorControlIFactor;
/**
* offset 1632
*/
float alternatorControlDFactor;
int unsed2342342[3];
/**
* offset 1636
*/
@ -1165,7 +1152,38 @@ typedef struct {
/**
* offset 1748
*/
int unused3[109];
int unused3[102];
/**
* offset 2156
*/
float targetVBatt;
/**
* Turn off alternator output above specified TPS
* offset 2160
*/
float alternatorOffAboveTps;
/**
* PID dTime
* offset 2164
*/
int alternatorDT;
/**
* Linear addition to PID logic
* offset 2168
*/
float alternatorOffset;
/**
* offset 2172
*/
float alternatorControlPFactor;
/**
* offset 2176
*/
float alternatorControlIFactor;
/**
* offset 2180
*/
float alternatorControlDFactor;
/**
* offset 2184
*/
@ -1345,4 +1363,4 @@ typedef struct {
} persistent_config_s;
// end
// this section was generated by config_definition.jar on Sun May 24 09:49:35 EDT 2015
// this section was generated by config_definition.jar on Sun May 24 11:16:32 EDT 2015

View File

@ -99,7 +99,9 @@ typedef enum {
DODGE_RAM = 31,
ET_UNUSED = 32,
VW_ABA = 32,
ET_UNUSED = 33,
Force_4b_engine_type = ENUM_32_BITS,
} engine_type_e;

View File

@ -196,7 +196,7 @@
#define afr_v2_offset_hex 254
#define afr_value2_offset 600
#define afr_value2_offset_hex 258
#define alternatorOffset_offset 604
#define unused123_offset 604
#define baroSensor_offset 608
#define baroSensor_offset_hex 260
#define baroSensor_valueAt0_offset 608
@ -296,8 +296,6 @@
#define digitalPotentiometerChipSelect4_offset_hex 354
#define unusedADC_offset 856
#define unusedADC_offset_hex 358
#define targetVBatt_offset 916
#define targetVBatt_offset_hex 394
#define triggerInputPins1_offset 920
#define triggerInputPins1_offset_hex 398
#define triggerInputPins2_offset 924
@ -437,8 +435,8 @@
#define fsioFrequency16_offset 1270
#define hip9011CsPin_offset 1272
#define hip9011IntHoldPin_offset 1276
#define alternatorOffAboveTps_offset 1280
#define alternatorOffAboveTps_offset_hex 500
#define unused113234_offset 1280
#define unused113234_offset_hex 500
#define fsio_setting1_offset 1284
#define fsio_setting1_offset_hex 504
#define fsio_setting2_offset 1288
@ -520,7 +518,7 @@
#define fsioDigitalInputs14_offset 1480
#define fsioDigitalInputs15_offset 1484
#define fsioDigitalInputs16_offset 1488
#define alternatorDT_offset 1492
#define unused2342342_offset 1492
#define hasMapSensor_offset 1496
#define hasIatSensor_offset 1496
#define hasBaroSensor_offset 1496
@ -603,11 +601,8 @@
#define fsioInputModes16_offset_hex 650
#define externalKnockSenseAdc_offset 1620
#define externalKnockSenseAdc_offset_hex 654
#define alternatorControlPFactor_offset 1624
#define alternatorControlPFactor_offset_hex 658
#define alternatorControlIFactor_offset 1628
#define alternatorControlDFactor_offset 1632
#define alternatorControlDFactor_offset_hex 660
#define unsed2342342_offset 1624
#define unsed2342342_offset_hex 658
#define idleStepperTotalSteps_offset 1636
#define idleStepperTotalSteps_offset_hex 664
#define stepperEnablePin_offset 1640
@ -622,6 +617,18 @@
#define baroCorrTable_offset 1684
#define baroCorrTable_offset_hex 694
#define unused3_offset 1748
#define targetVBatt_offset 2156
#define alternatorOffAboveTps_offset 2160
#define alternatorOffAboveTps_offset_hex 870
#define alternatorDT_offset 2164
#define alternatorDT_offset_hex 874
#define alternatorOffset_offset 2168
#define alternatorOffset_offset_hex 878
#define alternatorControlPFactor_offset 2172
#define alternatorControlIFactor_offset 2176
#define alternatorControlIFactor_offset_hex 880
#define alternatorControlDFactor_offset 2180
#define alternatorControlDFactor_offset_hex 884
#define tpsAccelLength_offset 2184
#define tpsAccelLength_offset_hex 888
#define tpsAccelEnrichmentThreshold_offset 2188

View File

@ -34,9 +34,9 @@ static float currentAltDuty;
static msg_t AltCtrlThread(int param) {
chRegSetThreadName("AlternatorController");
while (true) {
chThdSleepMilliseconds(boardConfiguration->alternatorDT);
chThdSleepMilliseconds(engineConfiguration->alternatorDT);
currentAltDuty = engineConfiguration->alternatorOffset + altPid.getValue(boardConfiguration->targetVBatt, getVBatt(PASS_ENGINE_PARAMETER_F), 1);
currentAltDuty = engineConfiguration->alternatorOffset + altPid.getValue(engineConfiguration->targetVBatt, getVBatt(PASS_ENGINE_PARAMETER_F), 1);
if (boardConfiguration->isVerboseAlternator) {
scheduleMsg(logger, "alt duty: %f/vbatt=%f/p=%f/i=%f/d=%f int=%f", currentAltDuty, getVBatt(PASS_ENGINE_PARAMETER_F),
altPid.getP(), altPid.getI(), altPid.getD(), altPid.getIntegration());
@ -56,11 +56,11 @@ static void applySettings(void) {
void showAltInfo(void) {
scheduleMsg(logger, "alt=%s @%s t=%dms", boolToString(engineConfiguration->isAlternatorControlEnabled),
hwPortname(boardConfiguration->alternatorControlPin),
boardConfiguration->alternatorDT);
engineConfiguration->alternatorDT);
scheduleMsg(logger, "p=%f/i=%f/d=%f offset=%f", engineConfiguration->alternatorControlPFactor,
0, 0, engineConfiguration->alternatorOffset); // todo: i & d
scheduleMsg(logger, "vbatt=%f/duty=%f/target=%f", getVBatt(PASS_ENGINE_PARAMETER_F), currentAltDuty,
boardConfiguration->targetVBatt);
engineConfiguration->targetVBatt);
}
void setAltPFactor(float p) {
@ -80,14 +80,15 @@ static void applyAlternatorPinState(PwmConfig *state, int stateIndex) {
}
void setDefaultAlternatorParameters(void) {
boardConfiguration->alternatorOffAboveTps = 120;
engineConfiguration->alternatorOffAboveTps = 120;
boardConfiguration->alternatorControlPin = GPIO_UNASSIGNED;
boardConfiguration->alternatorControlPinMode = OM_DEFAULT;
engineConfiguration->targetVBatt = 14;
engineConfiguration->alternatorOffset = 0;
engineConfiguration->alternatorControlPFactor = 30;
boardConfiguration->alternatorDT = 100;
engineConfiguration->alternatorDT = 100;
}
void initAlternatorCtrl(Logging *sharedLogger) {

View File

@ -21,12 +21,9 @@
#if EFI_INTERNAL_FLASH || defined(__DOXYGEN__)
#include "engine_controller.h"
#include "datalogging.h"
#include "engine.h"
static bool needToWriteConfiguration = false;
EXTERN_ENGINE;

View File

@ -9,10 +9,9 @@
#ifndef FLASH_MAIN_H_
#define FLASH_MAIN_H_
#include "engine_configuration.h"
#include "engine.h"
#define FLASH_DATA_VERSION 8100
#define FLASH_DATA_VERSION 8201
void readFromFlash(void);
void initFlash(Logging *sharedLogger, Engine *engine);

View File

@ -171,6 +171,8 @@ const char* getConfigurationName(engine_type_e engineType) {
return "BMWe34";
case TEST_ENGINE:
return "Test";
case VW_ABA:
return "VW_ABA";
case SACHS:
return "SACHS";
case GM_2_2:
@ -946,7 +948,7 @@ static void setValue(const char *paramStr, const char *valueStr) {
#if EFI_PROD_CODE
} else if (strEqualCaseInsensitive(paramStr, "alt_t")) {
if (valueI > 10) {
boardConfiguration->alternatorDT = valueI;
engineConfiguration->alternatorDT = valueI;
}
showAltInfo();
} else if (strEqualCaseInsensitive(paramStr, "alt_offset")) {
@ -955,7 +957,7 @@ static void setValue(const char *paramStr, const char *valueStr) {
setAltPFactor(valueF);
#endif
} else if (strEqualCaseInsensitive(paramStr, "targetvbatt")) {
boardConfiguration->targetVBatt = valueF;
engineConfiguration->targetVBatt = valueF;
}
}

View File

@ -2063,6 +2063,12 @@
<file>
<name>$PROJ_DIR$\..\config\engines\test_engine.h</name>
</file>
<file>
<name>$PROJ_DIR$\..\config\engines\vw.cpp</name>
</file>
<file>
<name>$PROJ_DIR$\..\config\engines\vw.h</name>
</file>
</group>
<group>
<name>stm32f4ems</name>
@ -2565,12 +2571,6 @@
<name>$PROJ_DIR$\..\development\test\testbmk.h</name>
</file>
</group>
<file>
<name>$PROJ_DIR$\..\development\sensor_chart.cpp</name>
</file>
<file>
<name>$PROJ_DIR$\..\development\sensor_chart.h</name>
</file>
<file>
<name>$PROJ_DIR$\..\development\engine_emulator.cpp</name>
</file>
@ -2583,6 +2583,12 @@
<file>
<name>$PROJ_DIR$\..\development\rfi_perftest.h</name>
</file>
<file>
<name>$PROJ_DIR$\..\development\sensor_chart.cpp</name>
</file>
<file>
<name>$PROJ_DIR$\..\development\sensor_chart.h</name>
</file>
<file>
<name>$PROJ_DIR$\..\development\trigger_emulator.cpp</name>
</file>

View File

@ -290,7 +290,7 @@ end_struct
afr_sensor_s afr;@see hasAfrSensor
float alternatorOffset;
int unused123;
air_pressure_sensor_config_s baroSensor;@see hasBaroSensor
@ -351,8 +351,7 @@ spi_device_e digitalPotentiometerSpiDevice;Digital Potentiometer is used by stoc
brain_pin_e[DIGIPOT_COUNT iterate] digitalPotentiometerChipSelect;
custom adc_channel_mode_e 4 bits, U32, @OFFSET@, [0:1], "Off", "Slow", "Fast", "INVALID"
float[15] unusedADC;
float targetVBatt;
float[16] unusedADC;
brain_input_pin_e[3 iterate] triggerInputPins;
@ -419,8 +418,7 @@ custom fsio_pwm_freq_t 2 scalar, U16, @OFFSET@, "Hz", 1, 0,
brain_pin_e hip9011CsPin;
brain_pin_e hip9011IntHoldPin;
float alternatorOffAboveTps;Turn off alternator output above specified TPS;"%", 1, 0, 0, 200, 2
int unused113234;
custom fsio_setting_t 4 scalar, F32, @OFFSET@, "Val", 1, 0, 0, 18000, 0
fsio_setting_t[LE_COMMAND_COUNT iterate] fsio_setting;
brain_pin_e spi1mosiPin;
@ -450,7 +448,7 @@ brain_input_pin_e vehicleSpeedSensorInputPin;
pin_input_mode_e clutchUpPinMode;
brain_pin_e[LE_COMMAND_COUNT iterate] fsioDigitalInputs;These input pins allow us to pull toggle buttons state;
int alternatorDT;
int unused2342342;
end_struct
@ -526,9 +524,7 @@ custom pin_input_mode_e 4 scalar, F32, @OFFSET@, "ms", 1, 0, 0, 200, 1
pin_input_mode_e[LE_COMMAND_COUNT iterate] fsioInputModes;
adc_channel_e externalKnockSenseAdc;
float alternatorControlPFactor;
float alternatorControlIFactor;
float alternatorControlDFactor;
int[3] unsed2342342;
int idleStepperTotalSteps;;"count", 1, 0, 5, 3000, 0
brain_pin_e stepperEnablePin;
@ -540,7 +536,15 @@ float[BARO_CORR_SIZE] baroCorrPressureBins;;"kPa", 1, 0, 0.0, 200,
float[BARO_CORR_SIZE] baroCorrRpmBins;;"RPM", 1, 0, 0.0, 18000, 2
baro_corr_table_t baroCorrTable;
int[109] unused3;
int[102] unused3;
float targetVBatt;;"Volts", 1, 0, 0,30, 1
float alternatorOffAboveTps;Turn off alternator output above specified TPS;"%", 1, 0, 0, 200, 2
int alternatorDT;PID dTime;"ms", 1, 0, 0, 3000, 0
float alternatorOffset;Linear addition to PID logic;"%", 1, 0, 0, 100, 2
float alternatorControlPFactor;;"value", 1, 0, 0, 1000, 2
float alternatorControlIFactor;;"value", 1, 0, 0, 1000, 2
float alternatorControlDFactor;;"value", 1, 0, 0, 1000, 2
int tpsAccelLength;;"len", 1, 0, 1, 200, 3
float tpsAccelEnrichmentThreshold;;"roc", 1, 0, 0, 200, 3

View File

@ -291,5 +291,5 @@ int getRusEfiVersion(void) {
return 123; // this is here to make the compiler happy about the unused array
if (UNUSED_CCM_SIZE[0] * 0 != 0)
return 3211; // this is here to make the compiler happy about the unused array
return 20150523;
return 20150524;
}

View File

@ -1,5 +1,5 @@
// This file was generated by Version2Header
// Wed Apr 29 20:09:03 EDT 2015
// Sun May 24 11:32:47 EDT 2015
#ifndef VCS_VERSION
#define VCS_VERSION "7963"
#define VCS_VERSION "8220"
#endif

View File

@ -40,7 +40,7 @@ enable2ndByteCanID = false
; see PAGE_0_SIZE in C source code
; CONFIG_DEFINITION_START
; this section was generated by ConfigDefinition.jar on Sun May 24 09:49:39 EDT 2015
; this section was generated by ConfigDefinition.jar on Sun May 24 11:16:37 EDT 2015
pageSize = 15288
page = 1
@ -143,7 +143,7 @@ page = 1
afr_value1 = scalar, F32, 592, "AFR", 1, 0.0, 0, 1000.0, 2
afr_v2 = scalar, F32, 596, "volts", 1, 0.0, 0, 10.0, 2
afr_value2 = scalar, F32, 600, "AFR", 1, 0.0, 0, 1000.0, 2
;skipping alternatorOffset offset 604
;skipping unused123 offset 604
baroSensor_valueAt0 = scalar, F32, 608, "kpa", 1, 0, 0, 450, 2
baroSensor_valueAt5 = scalar, F32, 612, "kpa", 1, 0, 0, 450, 2
baroSensor_type = bits, U32, 616, [0:2] "Custom", "DENSO183", "MPX4250", "HONDA3BAR", "NEON_2003", "22012AA090", "INVALID", "INVALID"
@ -207,7 +207,6 @@ page = 1
digitalPotentiometerChipSelect3 = bits, U32, 848, [0:6], "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6", "PE7", "PE8", "PE9", "PE10", "PE11", "PE12", "PE13", "PE14", "PE15", "NONE", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID"
digitalPotentiometerChipSelect4 = bits, U32, 852, [0:6], "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6", "PE7", "PE8", "PE9", "PE10", "PE11", "PE12", "PE13", "PE14", "PE15", "NONE", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID"
;skipping unusedADC offset 856
;skipping targetVBatt offset 916
triggerInputPins1 = bits, U32, 920, [0:6], "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "PA5", "INVALID", "INVALID", "PA8", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "PC6", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "PE5", "INVALID", "PE7", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "NONE", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID"
triggerInputPins2 = bits, U32, 924, [0:6], "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "PA5", "INVALID", "INVALID", "PA8", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "PC6", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "PE5", "INVALID", "PE7", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "NONE", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID"
triggerInputPins3 = bits, U32, 928, [0:6], "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "PA5", "INVALID", "INVALID", "PA8", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "PC6", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "PE5", "INVALID", "PE7", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "NONE", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID"
@ -316,7 +315,7 @@ page = 1
fsioFrequency16 = scalar, U16, 1270, "Hz", 1, 0, 0, 3000, 0
hip9011CsPin = bits, U32, 1272, [0:6], "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6", "PE7", "PE8", "PE9", "PE10", "PE11", "PE12", "PE13", "PE14", "PE15", "NONE", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID"
hip9011IntHoldPin = bits, U32, 1276, [0:6], "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6", "PE7", "PE8", "PE9", "PE10", "PE11", "PE12", "PE13", "PE14", "PE15", "NONE", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID"
alternatorOffAboveTps = scalar, F32, 1280, "%", 1, 0, 0, 200, 2
;skipping unused113234 offset 1280
fsio_setting1 = scalar, F32, 1284, "Val", 1, 0, 0, 18000, 0
fsio_setting2 = scalar, F32, 1288, "Val", 1, 0, 0, 18000, 0
fsio_setting3 = scalar, F32, 1292, "Val", 1, 0, 0, 18000, 0
@ -369,7 +368,7 @@ page = 1
fsioDigitalInputs14 = bits, U32, 1480, [0:6], "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6", "PE7", "PE8", "PE9", "PE10", "PE11", "PE12", "PE13", "PE14", "PE15", "NONE", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID"
fsioDigitalInputs15 = bits, U32, 1484, [0:6], "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6", "PE7", "PE8", "PE9", "PE10", "PE11", "PE12", "PE13", "PE14", "PE15", "NONE", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID"
fsioDigitalInputs16 = bits, U32, 1488, [0:6], "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6", "PE7", "PE8", "PE9", "PE10", "PE11", "PE12", "PE13", "PE14", "PE15", "NONE", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID"
;skipping alternatorDT offset 1492
;skipping unused2342342 offset 1492
hasMapSensor = bits, U32, 1496, [0:0], "false", "true"
hasIatSensor = bits, U32, 1496, [1:1], "false", "true"
hasBaroSensor = bits, U32, 1496, [2:2], "false", "true"
@ -435,9 +434,7 @@ page = 1
fsioInputModes15 = scalar, F32, 1612, "ms", 1, 0, 0, 200, 1
fsioInputModes16 = scalar, F32, 1616, "ms", 1, 0, 0, 200, 1
externalKnockSenseAdc = bits, U32, 1620, [0:3] "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PB0", "PB1", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5"
;skipping alternatorControlPFactor offset 1624
;skipping alternatorControlIFactor offset 1628
;skipping alternatorControlDFactor offset 1632
;skipping unsed2342342 offset 1624
idleStepperTotalSteps = scalar, S32, 1636, "count", 1, 0, 5, 3000, 0
stepperEnablePin = bits, U32, 1640, [0:6], "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6", "PE7", "PE8", "PE9", "PE10", "PE11", "PE12", "PE13", "PE14", "PE15", "NONE", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID"
noAccelAfterHardLimitPeriodSecs = scalar, F32, 1644, "sec", 1, 0, 0, 60, 0
@ -446,6 +443,13 @@ page = 1
baroCorrRpmBins = array, F32, 1668, [4], "RPM", 1, 0, 0.0, 18000, 2
baroCorrTable = array, F32, 1684, [4x4],"%", 1, 0, 0, 999.0, 2
;skipping unused3 offset 1748
targetVBatt = scalar, F32, 2156, "Volts", 1, 0, 0,30, 1
alternatorOffAboveTps = scalar, F32, 2160, "%", 1, 0, 0, 200, 2
alternatorDT = scalar, S32, 2164, "ms", 1, 0, 0, 3000, 0
alternatorOffset = scalar, F32, 2168, "%", 1, 0, 0, 100, 2
alternatorControlPFactor = scalar, F32, 2172, "value", 1, 0, 0, 1000, 2
alternatorControlIFactor = scalar, F32, 2176, "value", 1, 0, 0, 1000, 2
alternatorControlDFactor = scalar, F32, 2180, "value", 1, 0, 0, 1000, 2
tpsAccelLength = scalar, S32, 2184, "len", 1, 0, 1, 200, 3
tpsAccelEnrichmentThreshold = scalar, F32, 2188, "roc", 1, 0, 0, 200, 3
tpsAccelEnrichmentMultiplier = scalar, F32, 2192, "coeff", 1, 0, 0, 200, 3
@ -1194,7 +1198,18 @@ fileVersion = { 20150522 }
field = "vBatt ADC input", vbattAdcChannel
field = "Battery Input Divider Coefficient", vbattDividerCoeff
dialog = alternator, "Alternator Settings", yAxis
field = "#There could be setting the alternator"
field = "Enabled", isAlternatorControlEnabled
field = "Verbose", isVerboseAlternator
field = "Target", targetVBatt
field = "Pin", alternatorControlPin
field = "Pin Mode", alternatorControlPinMode
field = "Off Above TPS", alternatorOffAboveTps
field = "#PID control"
field = "dTime", alternatorDT
field = "offset", alternatorOffset
field = "P factor", alternatorControlPFactor
field = "I factor", alternatorControlIFactor
dialog = energySystems, "Battery and Alternator Settings", yAxis
panel = battery
panel = alternator

View File

@ -543,6 +543,8 @@ void testTriggerDecoder(void) {
testTriggerDecoder3("neon NGC", DODGE_NEON_2003, 0, 0.4786, 0.0, CHRYSLER_NGC_GAP);
testTriggerDecoder2("sachs", SACHS, 0, 0.4800, 0.000);
testTriggerDecoder2("vw ABA", VW_ABA, 0, 0.7500, 0.25);
testMazda323();
testStartupFuelPumping();