auto-sync

This commit is contained in:
rusEfi 2016-07-22 00:04:09 -04:00
parent af7ad6ef89
commit 849dbfabbe
10 changed files with 217 additions and 136 deletions

View File

@ -442,11 +442,11 @@ void setDodgeNeonNGCEngineConfiguration(DECLARE_ENGINE_PARAMETER_F) {
engineConfiguration->auxPidPins[0] = GPIOD_5; // playing with AUX PID for alternator
engineConfiguration->auxPidFrequency[0] = 300;
engineConfiguration->isVerboseAuxPid = true;
engineConfiguration->auxPid1.offset = 10;
engineConfiguration->auxPid1.pFactor = 5;
engineConfiguration->auxPid1.iFactor = 0.1;
engineConfiguration->auxPid1.dFactor = 0.1;
engineConfiguration->isVerboseAuxPid1 = true;
engineConfiguration->auxPid[0].offset = 10;
engineConfiguration->auxPid[0].pFactor = 5;
engineConfiguration->auxPid[0].iFactor = 0.1;
engineConfiguration->auxPid[0].dFactor = 0.1;
#if EFI_FSIO || defined(__DOXYGEN__)

View File

@ -30,12 +30,27 @@ extern TunerStudioOutputChannels tsOutputChannels;
static THD_WORKING_AREA(auxPidThreadStack, UTILITY_THREAD_STACK_SIZE);
static LocalVersionHolder parametersVersion;
static SimplePwm auxPid1;
static OutputPin auxPid1Pin;
static pid_s *auxPidS = &persistentState.persistentConfiguration.engineConfiguration.auxPid1;
static SimplePwm auxPidPwm[AUX_PID_COUNT];
static OutputPin auxPidPin[AUX_PID_COUNT];
static pid_s *auxPidS = &persistentState.persistentConfiguration.engineConfiguration.auxPid[0];
static Pid auxPid(auxPidS, 1, 90);
static Logging *logger;
static bool isEnabled(int index) {
// todo: implement bit arrays for configuration
switch(index) {
case 0:
return engineConfiguration->activateAuxPid1;
case 1:
return engineConfiguration->activateAuxPid2;
case 2:
return engineConfiguration->activateAuxPid3;
default:
return engineConfiguration->activateAuxPid4;
}
}
static msg_t auxPidThread(int param) {
UNUSED(param);
chRegSetThreadName("AuxPidController");
@ -62,7 +77,7 @@ static msg_t auxPidThread(int param) {
float targetValue = fsioTable1.getValue(rpm, getEngineLoadT(PASS_ENGINE_PARAMETER_F));
float pwm = auxPid.getValue(targetValue, value, 1);
if (engineConfiguration->isVerboseAuxPid) {
if (engineConfiguration->isVerboseAuxPid1) {
scheduleMsg(logger, "aux duty: %f/value=%f/p=%f/i=%f/d=%f int=%f", pwm, value,
auxPid.getP(), auxPid.getI(), auxPid.getD(), auxPid.getIntegration());
}
@ -74,7 +89,7 @@ static msg_t auxPidThread(int param) {
tsOutputChannels.debugIntField3 = 10 * targetValue;
}
auxPid1.setSimplePwmDutyCycle(pwm / 100);
auxPidPwm[0].setSimplePwmDutyCycle(pwm / 100);
}
@ -83,23 +98,29 @@ static msg_t auxPidThread(int param) {
#endif
}
static void turnAuxPidOn(int index) {
if (!isEnabled(index)) {
return;
}
if (engineConfiguration->auxPidPins[index] == GPIO_UNASSIGNED) {
return;
}
startSimplePwmExt(&auxPidPwm[index], "Aux PID", engineConfiguration->auxPidPins[index],
&auxPidPin[0],
engineConfiguration->auxPidFrequency[index], 0.1, applyPinState);
}
void initAuxPid(Logging *sharedLogger) {
chThdCreateStatic(auxPidThreadStack, sizeof(auxPidThreadStack), LOWPRIO,
(tfunc_t) auxPidThread, NULL);
logger = sharedLogger;
if (!engineConfiguration->activateAuxPid1) {
return;
for (int i = 0;i< AUX_PID_COUNT;i++) {
turnAuxPidOn(i);
}
if (engineConfiguration->auxPidPins[0] == GPIO_UNASSIGNED) {
return;
}
startSimplePwmExt(&auxPid1, "Aux PID", engineConfiguration->auxPidPins[0],
&auxPid1Pin,
engineConfiguration->auxPidFrequency[0], 0.1, applyPinState);
}
#endif

View File

@ -1,4 +1,4 @@
// this section was generated automatically by ConfigDefinition.jar based on rusefi_config.txt Thu Jul 21 22:52:35 EDT 2016
// this section was generated automatically by ConfigDefinition.jar based on rusefi_config.txt Thu Jul 21 23:14:17 EDT 2016
// begin
#ifndef ENGINE_CONFIGURATION_GENERATED_H_
#define ENGINE_CONFIGURATION_GENERATED_H_
@ -788,25 +788,25 @@ typedef struct {
bool activateAuxPid1 : 1;
/**
offset 80 bit 2 */
bool isVerboseAuxPid : 1;
bool isVerboseAuxPid1 : 1;
/**
offset 80 bit 3 */
bool issue_294_3 : 1;
bool activateAuxPid2 : 1;
/**
offset 80 bit 4 */
bool issue_294_4 : 1;
bool isVerboseAuxPid2 : 1;
/**
offset 80 bit 5 */
bool issue_294_5 : 1;
bool activateAuxPid3 : 1;
/**
offset 80 bit 6 */
bool issue_294_6 : 1;
bool isVerboseAuxPid3 : 1;
/**
offset 80 bit 7 */
bool issue_294_7 : 1;
bool activateAuxPid4 : 1;
/**
offset 80 bit 8 */
bool issue_294_8 : 1;
bool isVerboseAuxPid4 : 1;
/**
offset 80 bit 9 */
bool issue_294_9 : 1;
@ -1637,7 +1637,7 @@ typedef struct {
/**
* offset 2412
*/
pid_s auxPid1;
pid_dt auxPidDT[AUX_PID_COUNT];
/**
* Extra idle while cranking
* offset 2428
@ -1686,11 +1686,11 @@ typedef struct {
/**
* offset 2488
*/
pid_dt auxPidDT[AUX_PID_COUNT];
pid_s auxPid[AUX_PID_COUNT];
/**
* offset 2504
* offset 2552
*/
int unused[136];
int unused[124];
/** total size 3048*/
} engine_configuration_s;
@ -1905,4 +1905,4 @@ typedef struct {
#endif
// end
// this section was generated automatically by ConfigDefinition.jar based on rusefi_config.txt Thu Jul 21 22:52:35 EDT 2016
// this section was generated automatically by ConfigDefinition.jar based on rusefi_config.txt Thu Jul 21 23:14:17 EDT 2016

View File

@ -48,20 +48,20 @@
#define directSelfStimulation_offset_hex 50
#define activateAuxPid1_offset 80
#define activateAuxPid1_offset_hex 50
#define isVerboseAuxPid_offset 80
#define isVerboseAuxPid_offset_hex 50
#define issue_294_3_offset 80
#define issue_294_3_offset_hex 50
#define issue_294_4_offset 80
#define issue_294_4_offset_hex 50
#define issue_294_5_offset 80
#define issue_294_5_offset_hex 50
#define issue_294_6_offset 80
#define issue_294_6_offset_hex 50
#define issue_294_7_offset 80
#define issue_294_7_offset_hex 50
#define issue_294_8_offset 80
#define issue_294_8_offset_hex 50
#define isVerboseAuxPid1_offset 80
#define isVerboseAuxPid1_offset_hex 50
#define activateAuxPid2_offset 80
#define activateAuxPid2_offset_hex 50
#define isVerboseAuxPid2_offset 80
#define isVerboseAuxPid2_offset_hex 50
#define activateAuxPid3_offset 80
#define activateAuxPid3_offset_hex 50
#define isVerboseAuxPid3_offset 80
#define isVerboseAuxPid3_offset_hex 50
#define activateAuxPid4_offset 80
#define activateAuxPid4_offset_hex 50
#define isVerboseAuxPid4_offset 80
#define isVerboseAuxPid4_offset_hex 50
#define issue_294_9_offset 80
#define issue_294_9_offset_hex 50
#define issue_294_10_offset 80
@ -830,14 +830,13 @@
#define egoValueShift_offset_hex 964
#define unusedauxPid1DT_offset 2408
#define unusedauxPid1DT_offset_hex 968
#define auxPid1_offset 2412
#define auxPid1_pFactor_offset 2412
#define auxPid1_iFactor_offset 2416
#define auxPid1_iFactor_offset_hex 970
#define auxPid1_dFactor_offset 2420
#define auxPid1_dFactor_offset_hex 974
#define auxPid1_offset_offset 2424
#define auxPid1_offset_offset_hex 978
#define auxPidDT1_offset 2412
#define auxPidDT2_offset 2416
#define auxPidDT2_offset_hex 970
#define auxPidDT3_offset 2420
#define auxPidDT3_offset_hex 974
#define auxPidDT4_offset 2424
#define auxPidDT4_offset_hex 978
#define crankingIdleAdjustment_offset 2428
#define tChargeMinRpmMinTps_offset 2432
#define tChargeMinRpmMinTps_offset_hex 980
@ -861,11 +860,27 @@
#define storageMode_offset 2476
#define cj125SpiDevice_offset 2480
#define cj125CsPinMode_offset 2484
#define auxPidDT1_offset 2488
#define auxPidDT2_offset 2492
#define auxPidDT3_offset 2496
#define auxPidDT4_offset 2500
#define unused_offset 2504
#define auxPid1_offset 2488
#define auxPid1_pFactor_offset 2488
#define auxPid1_iFactor_offset 2492
#define auxPid1_dFactor_offset 2496
#define auxPid1_offset_offset 2500
#define auxPid2_offset 2504
#define auxPid2_pFactor_offset 2504
#define auxPid2_iFactor_offset 2508
#define auxPid2_dFactor_offset 2512
#define auxPid2_offset_offset 2516
#define auxPid3_offset 2520
#define auxPid3_pFactor_offset 2520
#define auxPid3_iFactor_offset 2524
#define auxPid3_dFactor_offset 2528
#define auxPid3_offset_offset 2532
#define auxPid4_offset 2536
#define auxPid4_pFactor_offset 2536
#define auxPid4_iFactor_offset 2540
#define auxPid4_dFactor_offset 2544
#define auxPid4_offset_offset 2548
#define unused_offset 2552
#define le_formulas1_offset 3048
#define le_formulas2_offset 3248
#define le_formulas3_offset 3448

View File

@ -852,8 +852,14 @@ static void enableOrDisable(const char *param, bool isEnabled) {
engineConfiguration->isJoystickEnabled = isEnabled;
} else if (strEqualCaseInsensitive(param, "HIP9011")) {
boardConfiguration->isHip9011Enabled = isEnabled;
} else if (strEqualCaseInsensitive(param, "auxdebug")) {
engineConfiguration->isVerboseAuxPid = isEnabled;
} else if (strEqualCaseInsensitive(param, "auxdebug1")) {
engineConfiguration->isVerboseAuxPid1 = isEnabled;
} else if (strEqualCaseInsensitive(param, "auxdebug2")) {
engineConfiguration->isVerboseAuxPid2 = isEnabled;
} else if (strEqualCaseInsensitive(param, "auxdebug3")) {
engineConfiguration->isVerboseAuxPid3 = isEnabled;
} else if (strEqualCaseInsensitive(param, "auxdebug4")) {
engineConfiguration->isVerboseAuxPid4 = isEnabled;
} else if (strEqualCaseInsensitive(param, "altdebug")) {
boardConfiguration->isVerboseAlternator = isEnabled;
} else if (strEqualCaseInsensitive(param, "tpic_advanced_mode")) {

View File

@ -184,13 +184,13 @@ injector_s injector
bit directSelfStimulation;+Should trigger emulator push data right into trigger handling logic, eliminating the need for physical jumper wires?\nPS: Funny name, right? :)
bit activateAuxPid1;
bit isVerboseAuxPid;
bit issue_294_3;
bit issue_294_4;
bit issue_294_5;
bit issue_294_6;
bit issue_294_7;
bit issue_294_8;
bit isVerboseAuxPid1;
bit activateAuxPid2;
bit isVerboseAuxPid2;
bit activateAuxPid3;
bit isVerboseAuxPid3;
bit activateAuxPid4;
bit isVerboseAuxPid4;
bit issue_294_9;
bit issue_294_10;
bit issue_294_11;
@ -506,7 +506,7 @@ bit is_enabled_spi_2
brain_pin_e acRelayPin;
pin_output_mode_e acRelayPinMode;
custom pid_dt 4 U32 "ms", 1, 0, 0, 3000, 0
custom pid_dt 4 scalar, U32, @OFFSET@, "ms", 1, 0, 0, 3000, 0
custom fsio_pwm_freq_t 2 scalar, U16, @OFFSET@, "Hz", 1, 0, 0, 3000, 0
fsio_pwm_freq_t[LE_COMMAND_COUNT iterate] fsioFrequency;
@ -717,7 +717,7 @@ float[MAP_ACCEL_TAPER] mapAccelTaperMult;;"mult", 1, 0, 0.0, 300,
float mapHighValueVoltage;MAP voltage for low point;"v", 1, 0, 0.0, 10, 2
float egoValueShift;EGO value correction;"value", 1, 0, -10.0, 10, 2
int unusedauxPid1DT
pid_s auxPid1;
pid_dt[AUX_PID_COUNT iterate] auxPidDT;
float crankingIdleAdjustment;Extra idle while cranking;"percent", 1, 0, -100.0, 100,
float tChargeMinRpmMinTps;
float tChargeMinRpmMaxTps;
@ -729,8 +729,8 @@ float[MAP_ACCEL_TAPER] mapAccelTaperMult;;"mult", 1, 0, 0.0, 300,
mass_storage_e storageMode;
spi_device_e cj125SpiDevice;
pin_output_mode_e cj125CsPinMode;
pid_dt[AUX_PID_COUNT iterate] auxPidDT;
int[136] unused;
pid_s[AUX_PID_COUNT iterate] auxPid;
int[124] unused;
end_struct

View File

@ -289,7 +289,7 @@ void firmwareError(const char *errorMsg, ...) {
}
}
static char UNUSED_RAM_SIZE[2100];
static char UNUSED_RAM_SIZE[1900];
static char UNUSED_CCM_SIZE[8500] CCM_OPTIONAL;

View File

@ -42,7 +42,7 @@ enable2ndByteCanID = false
; see PAGE_0_SIZE in C source code
; CONFIG_DEFINITION_START
; this section was generated automatically by ConfigDefinition.jar based on rusefi_config.txt Thu Jul 21 22:52:35 EDT 2016
; this section was generated automatically by ConfigDefinition.jar based on rusefi_config.txt Thu Jul 21 23:14:17 EDT 2016
pageSize = 16376
page = 1
@ -54,13 +54,13 @@ page = 1
injector_battLagCorr = array, F32, 48, [8], "ms/V", 1, 0, 0.0, 50.0, 2
directSelfStimulation = bits, U32, 80, [0:0], "false", "true"
activateAuxPid1 = bits, U32, 80, [1:1], "false", "true"
isVerboseAuxPid = bits, U32, 80, [2:2], "false", "true"
issue_294_3 = bits, U32, 80, [3:3], "false", "true"
issue_294_4 = bits, U32, 80, [4:4], "false", "true"
issue_294_5 = bits, U32, 80, [5:5], "false", "true"
issue_294_6 = bits, U32, 80, [6:6], "false", "true"
issue_294_7 = bits, U32, 80, [7:7], "false", "true"
issue_294_8 = bits, U32, 80, [8:8], "false", "true"
isVerboseAuxPid1 = bits, U32, 80, [2:2], "false", "true"
activateAuxPid2 = bits, U32, 80, [3:3], "false", "true"
isVerboseAuxPid2 = bits, U32, 80, [4:4], "false", "true"
activateAuxPid3 = bits, U32, 80, [5:5], "false", "true"
isVerboseAuxPid3 = bits, U32, 80, [6:6], "false", "true"
activateAuxPid4 = bits, U32, 80, [7:7], "false", "true"
isVerboseAuxPid4 = bits, U32, 80, [8:8], "false", "true"
issue_294_9 = bits, U32, 80, [9:9], "false", "true"
issue_294_10 = bits, U32, 80, [10:10], "false", "true"
issue_294_11 = bits, U32, 80, [11:11], "false", "true"
@ -575,10 +575,10 @@ page = 1
mapHighValueVoltage = scalar, F32, 2400, "v", 1, 0, 0.0, 10, 2
egoValueShift = scalar, F32, 2404, "value", 1, 0, -10.0, 10, 2
;skipping unusedauxPid1DT offset 2408
auxPid1_pFactor = scalar, F32, 2412, "value", 1, 0, 0, 1000, 5
auxPid1_iFactor = scalar, F32, 2416, "value", 1, 0, 0, 1000, 5
auxPid1_dFactor = scalar, F32, 2420, "value", 1, 0, 0, 1000, 5
auxPid1_offset = scalar, F32, 2424, "value", 1, 0, 0, 1000, 3
auxPidDT1 = scalar, U32, 2412, "ms", 1, 0, 0, 3000, 0
auxPidDT2 = scalar, U32, 2416, "ms", 1, 0, 0, 3000, 0
auxPidDT3 = scalar, U32, 2420, "ms", 1, 0, 0, 3000, 0
auxPidDT4 = scalar, U32, 2424, "ms", 1, 0, 0, 3000, 0
crankingIdleAdjustment = scalar, F32, 2428, "percent", 1, 0, -100.0, 100,
;skipping tChargeMinRpmMinTps offset 2432
;skipping tChargeMinRpmMaxTps offset 2436
@ -596,11 +596,23 @@ page = 1
storageMode = bits, U32, 2476, [0:1], "Auto", "Always", "Never"
cj125SpiDevice = bits,U32, 2480, [0:1], "Off", "SPI1", "SPI2", "SPI3"
cj125CsPinMode = bits, U32, 2484, [0:1], "default", "default inverted", "open collector", "open collector inverted"
auxPidDT1 = U32 "ms", 1, 0, 0, 3000, 0
auxPidDT2 = U32 "ms", 1, 0, 0, 3000, 0
auxPidDT3 = U32 "ms", 1, 0, 0, 3000, 0
auxPidDT4 = U32 "ms", 1, 0, 0, 3000, 0
;skipping unused offset 2504
auxPid1_pFactor = scalar, F32, 2488, "value", 1, 0, 0, 1000, 5
auxPid1_iFactor = scalar, F32, 2492, "value", 1, 0, 0, 1000, 5
auxPid1_dFactor = scalar, F32, 2496, "value", 1, 0, 0, 1000, 5
auxPid1_offset = scalar, F32, 2500, "value", 1, 0, 0, 1000, 3
auxPid2_pFactor = scalar, F32, 2504, "value", 1, 0, 0, 1000, 5
auxPid2_iFactor = scalar, F32, 2508, "value", 1, 0, 0, 1000, 5
auxPid2_dFactor = scalar, F32, 2512, "value", 1, 0, 0, 1000, 5
auxPid2_offset = scalar, F32, 2516, "value", 1, 0, 0, 1000, 3
auxPid3_pFactor = scalar, F32, 2520, "value", 1, 0, 0, 1000, 5
auxPid3_iFactor = scalar, F32, 2524, "value", 1, 0, 0, 1000, 5
auxPid3_dFactor = scalar, F32, 2528, "value", 1, 0, 0, 1000, 5
auxPid3_offset = scalar, F32, 2532, "value", 1, 0, 0, 1000, 3
auxPid4_pFactor = scalar, F32, 2536, "value", 1, 0, 0, 1000, 5
auxPid4_iFactor = scalar, F32, 2540, "value", 1, 0, 0, 1000, 5
auxPid4_dFactor = scalar, F32, 2544, "value", 1, 0, 0, 1000, 5
auxPid4_offset = scalar, F32, 2548, "value", 1, 0, 0, 1000, 3
;skipping unused offset 2552
le_formulas1 = array, U08, 3048, [200],"char", 1, 0, 0.0, 3.0, 2
le_formulas2 = array, U08, 3248, [200],"char", 1, 0, 0.0, 3.0, 2
le_formulas3 = array, U08, 3448, [200],"char", 1, 0, 0.0, 3.0, 2
@ -1687,7 +1699,7 @@ cmd_test_idle_valve = "w\x00\x17\x00\x01"
field = "Enabled", activateAuxPid1
field = "FSIO pin #1", auxPidPins1
field = "PWM Frequency", auxPidFrequency1
field = "verbose", isVerboseAuxPid
field = "verbose", isVerboseAuxPid1
field = "#target based on FSIO map#1"
field = "control period", auxPidDT1, {activateAuxPid1 == 1}
field = "#PID control"

View File

@ -1683,7 +1683,7 @@ cmd_test_idle_valve = "w\x00\x17\x00\x01"
field = "Enabled", activateAuxPid1
field = "FSIO pin #1", auxPidPins1
field = "PWM Frequency", auxPidFrequency1
field = "verbose", isVerboseAuxPid
field = "verbose", isVerboseAuxPid1
field = "#target based on FSIO map#1"
field = "control period", auxPidDT1, {activateAuxPid1 == 1}
field = "#PID control"

View File

@ -1,6 +1,6 @@
package com.rusefi.config;
// this file was generated automatically by ConfigDefinition.jar based on rusefi_config.txt Thu Jul 21 22:52:35 EDT 2016
// this file was generated automatically by ConfigDefinition.jar based on rusefi_config.txt Thu Jul 21 23:14:17 EDT 2016
public class Fields {
public static final int LE_COMMAND_LENGTH = 200;
public static final int FSIO_ADC_COUNT = 4;
@ -52,20 +52,20 @@ public class Fields {
public static final int directSelfStimulation_offset_hex = 50;
public static final int activateAuxPid1_offset = 80;
public static final int activateAuxPid1_offset_hex = 50;
public static final int isVerboseAuxPid_offset = 80;
public static final int isVerboseAuxPid_offset_hex = 50;
public static final int issue_294_3_offset = 80;
public static final int issue_294_3_offset_hex = 50;
public static final int issue_294_4_offset = 80;
public static final int issue_294_4_offset_hex = 50;
public static final int issue_294_5_offset = 80;
public static final int issue_294_5_offset_hex = 50;
public static final int issue_294_6_offset = 80;
public static final int issue_294_6_offset_hex = 50;
public static final int issue_294_7_offset = 80;
public static final int issue_294_7_offset_hex = 50;
public static final int issue_294_8_offset = 80;
public static final int issue_294_8_offset_hex = 50;
public static final int isVerboseAuxPid1_offset = 80;
public static final int isVerboseAuxPid1_offset_hex = 50;
public static final int activateAuxPid2_offset = 80;
public static final int activateAuxPid2_offset_hex = 50;
public static final int isVerboseAuxPid2_offset = 80;
public static final int isVerboseAuxPid2_offset_hex = 50;
public static final int activateAuxPid3_offset = 80;
public static final int activateAuxPid3_offset_hex = 50;
public static final int isVerboseAuxPid3_offset = 80;
public static final int isVerboseAuxPid3_offset_hex = 50;
public static final int activateAuxPid4_offset = 80;
public static final int activateAuxPid4_offset_hex = 50;
public static final int isVerboseAuxPid4_offset = 80;
public static final int isVerboseAuxPid4_offset_hex = 50;
public static final int issue_294_9_offset = 80;
public static final int issue_294_9_offset_hex = 50;
public static final int issue_294_10_offset = 80;
@ -834,14 +834,13 @@ public class Fields {
public static final int egoValueShift_offset_hex = 964;
public static final int unusedauxPid1DT_offset = 2408;
public static final int unusedauxPid1DT_offset_hex = 968;
public static final int auxPid1_offset = 2412;
public static final int auxPid1_pFactor_offset = 2412;
public static final int auxPid1_iFactor_offset = 2416;
public static final int auxPid1_iFactor_offset_hex = 970;
public static final int auxPid1_dFactor_offset = 2420;
public static final int auxPid1_dFactor_offset_hex = 974;
public static final int auxPid1_offset_offset = 2424;
public static final int auxPid1_offset_offset_hex = 978;
public static final int auxPidDT1_offset = 2412;
public static final int auxPidDT2_offset = 2416;
public static final int auxPidDT2_offset_hex = 970;
public static final int auxPidDT3_offset = 2420;
public static final int auxPidDT3_offset_hex = 974;
public static final int auxPidDT4_offset = 2424;
public static final int auxPidDT4_offset_hex = 978;
public static final int crankingIdleAdjustment_offset = 2428;
public static final int tChargeMinRpmMinTps_offset = 2432;
public static final int tChargeMinRpmMinTps_offset_hex = 980;
@ -865,11 +864,27 @@ public class Fields {
public static final int storageMode_offset = 2476;
public static final int cj125SpiDevice_offset = 2480;
public static final int cj125CsPinMode_offset = 2484;
public static final int auxPidDT1_offset = 2488;
public static final int auxPidDT2_offset = 2492;
public static final int auxPidDT3_offset = 2496;
public static final int auxPidDT4_offset = 2500;
public static final int unused_offset = 2504;
public static final int auxPid1_offset = 2488;
public static final int auxPid1_pFactor_offset = 2488;
public static final int auxPid1_iFactor_offset = 2492;
public static final int auxPid1_dFactor_offset = 2496;
public static final int auxPid1_offset_offset = 2500;
public static final int auxPid2_offset = 2504;
public static final int auxPid2_pFactor_offset = 2504;
public static final int auxPid2_iFactor_offset = 2508;
public static final int auxPid2_dFactor_offset = 2512;
public static final int auxPid2_offset_offset = 2516;
public static final int auxPid3_offset = 2520;
public static final int auxPid3_pFactor_offset = 2520;
public static final int auxPid3_iFactor_offset = 2524;
public static final int auxPid3_dFactor_offset = 2528;
public static final int auxPid3_offset_offset = 2532;
public static final int auxPid4_offset = 2536;
public static final int auxPid4_pFactor_offset = 2536;
public static final int auxPid4_iFactor_offset = 2540;
public static final int auxPid4_dFactor_offset = 2544;
public static final int auxPid4_offset_offset = 2548;
public static final int unused_offset = 2552;
public static final int le_formulas1_offset = 3048;
public static final int le_formulas2_offset = 3248;
public static final int le_formulas3_offset = 3448;
@ -953,13 +968,13 @@ public class Fields {
public static final Field INJECTOR_LAG = Field.create("INJECTOR_LAG", 12, FieldType.FLOAT);
public static final Field DIRECTSELFSTIMULATION = Field.create("DIRECTSELFSTIMULATION", 80, FieldType.BIT, 0);
public static final Field ACTIVATEAUXPID1 = Field.create("ACTIVATEAUXPID1", 80, FieldType.BIT, 1);
public static final Field ISVERBOSEAUXPID = Field.create("ISVERBOSEAUXPID", 80, FieldType.BIT, 2);
public static final Field ISSUE_294_3 = Field.create("ISSUE_294_3", 80, FieldType.BIT, 3);
public static final Field ISSUE_294_4 = Field.create("ISSUE_294_4", 80, FieldType.BIT, 4);
public static final Field ISSUE_294_5 = Field.create("ISSUE_294_5", 80, FieldType.BIT, 5);
public static final Field ISSUE_294_6 = Field.create("ISSUE_294_6", 80, FieldType.BIT, 6);
public static final Field ISSUE_294_7 = Field.create("ISSUE_294_7", 80, FieldType.BIT, 7);
public static final Field ISSUE_294_8 = Field.create("ISSUE_294_8", 80, FieldType.BIT, 8);
public static final Field ISVERBOSEAUXPID1 = Field.create("ISVERBOSEAUXPID1", 80, FieldType.BIT, 2);
public static final Field ACTIVATEAUXPID2 = Field.create("ACTIVATEAUXPID2", 80, FieldType.BIT, 3);
public static final Field ISVERBOSEAUXPID2 = Field.create("ISVERBOSEAUXPID2", 80, FieldType.BIT, 4);
public static final Field ACTIVATEAUXPID3 = Field.create("ACTIVATEAUXPID3", 80, FieldType.BIT, 5);
public static final Field ISVERBOSEAUXPID3 = Field.create("ISVERBOSEAUXPID3", 80, FieldType.BIT, 6);
public static final Field ACTIVATEAUXPID4 = Field.create("ACTIVATEAUXPID4", 80, FieldType.BIT, 7);
public static final Field ISVERBOSEAUXPID4 = Field.create("ISVERBOSEAUXPID4", 80, FieldType.BIT, 8);
public static final Field ISSUE_294_9 = Field.create("ISSUE_294_9", 80, FieldType.BIT, 9);
public static final Field ISSUE_294_10 = Field.create("ISSUE_294_10", 80, FieldType.BIT, 10);
public static final Field ISSUE_294_11 = Field.create("ISSUE_294_11", 80, FieldType.BIT, 11);
@ -1460,10 +1475,10 @@ public class Fields {
public static final Field MAPHIGHVALUEVOLTAGE = Field.create("MAPHIGHVALUEVOLTAGE", 2400, FieldType.FLOAT);
public static final Field EGOVALUESHIFT = Field.create("EGOVALUESHIFT", 2404, FieldType.FLOAT);
public static final Field UNUSEDAUXPID1DT = Field.create("UNUSEDAUXPID1DT", 2408, FieldType.INT);
public static final Field AUXPID1_PFACTOR = Field.create("AUXPID1_PFACTOR", 2412, FieldType.FLOAT);
public static final Field AUXPID1_IFACTOR = Field.create("AUXPID1_IFACTOR", 2416, FieldType.FLOAT);
public static final Field AUXPID1_DFACTOR = Field.create("AUXPID1_DFACTOR", 2420, FieldType.FLOAT);
public static final Field AUXPID1_OFFSET = Field.create("AUXPID1_OFFSET", 2424, FieldType.FLOAT);
public static final Field AUXPIDDT1 = Field.create("AUXPIDDT1", 2412, FieldType.INT);
public static final Field AUXPIDDT2 = Field.create("AUXPIDDT2", 2416, FieldType.INT);
public static final Field AUXPIDDT3 = Field.create("AUXPIDDT3", 2420, FieldType.INT);
public static final Field AUXPIDDT4 = Field.create("AUXPIDDT4", 2424, FieldType.INT);
public static final Field CRANKINGIDLEADJUSTMENT = Field.create("CRANKINGIDLEADJUSTMENT", 2428, FieldType.FLOAT);
public static final Field TCHARGEMINRPMMINTPS = Field.create("TCHARGEMINRPMMINTPS", 2432, FieldType.FLOAT);
public static final Field TCHARGEMINRPMMAXTPS = Field.create("TCHARGEMINRPMMAXTPS", 2436, FieldType.FLOAT);
@ -1482,10 +1497,22 @@ public class Fields {
public static final Field STORAGEMODE = Field.create("STORAGEMODE", 2476, FieldType.INT, mass_storage_e);
public static final Field CJ125SPIDEVICE = Field.create("CJ125SPIDEVICE", 2480, FieldType.INT);
public static final Field CJ125CSPINMODE = Field.create("CJ125CSPINMODE", 2484, FieldType.INT, pin_output_mode_e);
public static final Field AUXPIDDT1 = Field.create("AUXPIDDT1", 2488, FieldType.INT);
public static final Field AUXPIDDT2 = Field.create("AUXPIDDT2", 2492, FieldType.INT);
public static final Field AUXPIDDT3 = Field.create("AUXPIDDT3", 2496, FieldType.INT);
public static final Field AUXPIDDT4 = Field.create("AUXPIDDT4", 2500, FieldType.INT);
public static final Field AUXPID1_PFACTOR = Field.create("AUXPID1_PFACTOR", 2488, FieldType.FLOAT);
public static final Field AUXPID1_IFACTOR = Field.create("AUXPID1_IFACTOR", 2492, FieldType.FLOAT);
public static final Field AUXPID1_DFACTOR = Field.create("AUXPID1_DFACTOR", 2496, FieldType.FLOAT);
public static final Field AUXPID1_OFFSET = Field.create("AUXPID1_OFFSET", 2500, FieldType.FLOAT);
public static final Field AUXPID2_PFACTOR = Field.create("AUXPID2_PFACTOR", 2504, FieldType.FLOAT);
public static final Field AUXPID2_IFACTOR = Field.create("AUXPID2_IFACTOR", 2508, FieldType.FLOAT);
public static final Field AUXPID2_DFACTOR = Field.create("AUXPID2_DFACTOR", 2512, FieldType.FLOAT);
public static final Field AUXPID2_OFFSET = Field.create("AUXPID2_OFFSET", 2516, FieldType.FLOAT);
public static final Field AUXPID3_PFACTOR = Field.create("AUXPID3_PFACTOR", 2520, FieldType.FLOAT);
public static final Field AUXPID3_IFACTOR = Field.create("AUXPID3_IFACTOR", 2524, FieldType.FLOAT);
public static final Field AUXPID3_DFACTOR = Field.create("AUXPID3_DFACTOR", 2528, FieldType.FLOAT);
public static final Field AUXPID3_OFFSET = Field.create("AUXPID3_OFFSET", 2532, FieldType.FLOAT);
public static final Field AUXPID4_PFACTOR = Field.create("AUXPID4_PFACTOR", 2536, FieldType.FLOAT);
public static final Field AUXPID4_IFACTOR = Field.create("AUXPID4_IFACTOR", 2540, FieldType.FLOAT);
public static final Field AUXPID4_DFACTOR = Field.create("AUXPID4_DFACTOR", 2544, FieldType.FLOAT);
public static final Field AUXPID4_OFFSET = Field.create("AUXPID4_OFFSET", 2548, FieldType.FLOAT);
public static final Field LE_FORMULAS1 = Field.create("LE_FORMULAS1", 3048, FieldType.INT);
public static final Field LE_FORMULAS2 = Field.create("LE_FORMULAS2", 3248, FieldType.INT);
public static final Field LE_FORMULAS3 = Field.create("LE_FORMULAS3", 3448, FieldType.INT);