diff --git a/generated/canned-tunes/VQ-comparing-against-current-VQ-default.md b/generated/canned-tunes/VQ-comparing-against-current-VQ-default.md
new file mode 100644
index 0000000..2fd7ce2
--- /dev/null
+++ b/generated/canned-tunes/VQ-comparing-against-current-VQ-default.md
@@ -0,0 +1,269 @@
+# VQ-comparing-against-current-VQ-default
+
+// canned tune https://rusefi.com/online/view.php?msq=1641
+
+```
+ // default "Single Coil"
+ engineConfiguration->ignitionMode = IM_INDIVIDUAL_COILS;
+ // default "false"
+ engineConfiguration->twoWireBatchIgnition = true;
+ // default "None"
+ engineConfiguration->ignOverrideMode = AFR_Tps;
+ // default 4.0
+ engineConfiguration->displacement = 3.5;
+ // default 40.0
+ engineConfiguration->camDecoder2jzPrecision = 25;
+ // default -203.0
+ engineConfiguration->vvtOffsets[2] = -207;
+ // default 200.0
+ engineConfiguration->injector.flow = 320;
+ // default 300.0
+ engineConfiguration->fuelReferencePressure = 0;
+ // default 0.0
+ engineConfiguration->cylinderBankSelect[4] = 1;
+ // default 0.0
+ engineConfiguration->cylinderBankSelect[5] = 1;
+ // default 0.0
+ engineConfiguration->cylinderBankSelect[6] = 1;
+ // default 0.0
+ engineConfiguration->cylinderBankSelect[7] = 1;
+ // default 0.0
+ engineConfiguration->cylinderBankSelect[8] = 1;
+ // default 0.0
+ engineConfiguration->cylinderBankSelect[9] = 1;
+ // default 0.0
+ engineConfiguration->cylinderBankSelect[10] = 1;
+ // default 0.0
+ engineConfiguration->cylinderBankSelect[11] = 1;
+ // default 4.0
+ engineConfiguration->benchTestOnTime = 5;
+ // default "Zero"
+ engineConfiguration->ignBlends[0].blendParameter = GPPWM_Clt;
+ // default "Zero"
+ engineConfiguration->ignBlends[1].blendParameter = GPPWM_AccelPedal;
+ // default 0.0
+ engineConfiguration->tpsMin = 97;
+ // default 1000.0
+ engineConfiguration->tpsMax = 852;
+ // default 1000.0
+ engineConfiguration->tps1SecondaryMin = 900;
+ // default 0.0
+ engineConfiguration->tps1SecondaryMax = 139;
+ // default 1000.0
+ engineConfiguration->tps2SecondaryMin = 0;
+ // default 0.0
+ engineConfiguration->tps2SecondaryMax = 1000;
+ // default 0.0
+ engineConfiguration->throttlePedalUpVoltage = 0.840429;
+ // default 5.0
+ engineConfiguration->throttlePedalWOTVoltage = 4.536769;
+ // default 5.0
+ engineConfiguration->throttlePedalSecondaryUpVoltage = 0.395229;
+ // default 0.0
+ engineConfiguration->throttlePedalSecondaryWOTVoltage = 2.120979;
+ // default 5.0
+ engineConfiguration->etbSplit = 10;
+ // default 400.0
+ engineConfiguration->mc33_t_max_boost = 470;
+ // default 10.0
+ engineConfiguration->mc33_t_bypass = 15;
+ // default "Normal"
+ engineConfiguration->clutchDownPinInverted = false;
+ // default "Normal"
+ engineConfiguration->clutchUpPinInverted = false;
+ // default 5.0
+ engineConfiguration->mapErrorDetectionTooLow = 0;
+ // default "false"
+ engineConfiguration->enableAemXSeries = true;
+ // default 300.0
+ engineConfiguration->idle.solenoidFrequency = 200;
+ // default "false"
+ engineConfiguration->etb_use_two_wires = true;
+ // default 3.0
+ engineConfiguration->idleStepperReactionTime = 0;
+ // default 200.0
+ engineConfiguration->idleStepperTotalSteps = 0;
+ // default "true"
+ engineConfiguration->stepperForceParkingEveryRestart = false;
+ // default 15.0
+ engineConfiguration->etbIdleThrottleRange = 10;
+ // default -20.0
+ engineConfiguration->idleRpmPid.minValue = 0;
+ // default 20.0
+ engineConfiguration->idleRpmPid.maxValue = 99;
+ // default 15.0
+ engineConfiguration->acIdleExtraOffset = 10;
+ // default 2.0
+ engineConfiguration->fan1ExtraIdle = 0;
+ // default 2.0
+ engineConfiguration->fan2ExtraIdle = 1;
+ // default 2.0
+ engineConfiguration->iacByTpsTaper = 3;
+ // default 5.0
+ engineConfiguration->idlePidDeactivationTpsThreshold = 2;
+ // default "false"
+ engineConfiguration->useSeparateAdvanceForIdle = true;
+ // default 0.0
+ engineConfiguration->iacByTpsHoldTime = 2;
+ // default 0.0
+ engineConfiguration->iacByTpsDecayTime = 2;
+ // default "false"
+ engineConfiguration->useIdleTimingPidControl = true;
+ // default 0.0
+ engineConfiguration->idleTimingPid.iFactor = 0.005;
+ // default 0.0
+ engineConfiguration->idleTimingPid.dFactor = 5.0E-4;
+ // default 0.0
+ engineConfiguration->idleTimingSoftEntryTime = 2;
+ // default 92.0
+ engineConfiguration->fanOnTemperature = 85;
+ // default 88.0
+ engineConfiguration->fanOffTemperature = 81;
+ // default 95.0
+ engineConfiguration->fan2OnTemperature = 92;
+ // default 91.0
+ engineConfiguration->fan2OffTemperature = 87;
+ // default 0.5
+ engineConfiguration->acDelay = 0;
+ // default 4.0
+ engineConfiguration->startUpFuelPumpDuration = 2;
+ // default "false"
+ engineConfiguration->enableSoftwareKnock = true;
+ // default 20.0
+ engineConfiguration->knockRetardAggression = 0;
+ // default 3.0
+ engineConfiguration->knockRetardReapplyRate = 0;
+ // default 500.0
+ engineConfiguration->vvtControlMinRpm = 400;
+ // default "advance"
+ engineConfiguration->invertVvtControlExhaust = retard;
+ // default 50.0
+ engineConfiguration->auxPid[0].offset = 33;
+ // default 0.5
+ engineConfiguration->auxPid[0].iFactor = 0.02;
+ // default 0.05
+ engineConfiguration->auxPid[0].dFactor = 5.0E-4;
+ // default 0.0
+ engineConfiguration->auxPid[1].offset = 33;
+ // default 0.0
+ engineConfiguration->auxPid[1].pFactor = 2;
+ // default 0.0
+ engineConfiguration->auxPid[1].iFactor = 0.01;
+ // default 0.0
+ engineConfiguration->auxPid[1].dFactor = 5.0E-4;
+ // default 3.0
+ engineConfiguration->vssFilterReciprocal = 0;
+ // default 1000.0
+ engineConfiguration->driveWheelRevPerKm = 500;
+ // default 1.0
+ engineConfiguration->finalGearRatio = 0;
+ // default "Speed Density"
+ engineConfiguration->fuelAlgorithm = LM_ALPHA_N;
+ // default "MAP"
+ engineConfiguration->debugMode = DBG_22;
+ // default "yes"
+ engineConfiguration->cutFuelOnHardLimit = no;
+ // default 7000.0
+ engineConfiguration->rpmHardLimit = 7100;
+ // default 300.0
+ engineConfiguration->boostCutPressure = 200;
+ // default 200.0
+ engineConfiguration->rpmSoftLimitWindowSize = 0;
+ // default 4.0
+ engineConfiguration->rpmSoftLimitTimingRetard = 0;
+ // default 250.0
+ engineConfiguration->etbRevLimitRange = 0;
+ // default "Simultaneous"
+ engineConfiguration->crankingInjectionMode = IM_BATCH;
+ // default 50.0
+ engineConfiguration->crankingIACposition = 100;
+ // default 200.0
+ engineConfiguration->afterCrankingIACtaperDuration = 100;
+ // default "false"
+ engineConfiguration->overrideCrankingIacSetting = true;
+ // default 0.5
+ engineConfiguration->primingDelay = 1;
+ // default 550.0
+ engineConfiguration->cranking.rpm = 400;
+ // default 40.0
+ engineConfiguration->tpsAccelEnrichmentThreshold = 200;
+ // default 1.0
+ engineConfiguration->tpsAccelFractionDivisor = 0;
+ // default 0.3
+ engineConfiguration->wwaeTau = 0;
+ // default 0.3
+ engineConfiguration->wwaeBeta = 0;
+ // default 2000.0
+ engineConfiguration->boostControlMinRpm = 0;
+ // default 30.0
+ engineConfiguration->boostControlMinTps = 0;
+ // default 110.0
+ engineConfiguration->boostControlMinMap = 0;
+ // default 1.0
+ engineConfiguration->etb.pFactor = 5.979724;
+ // default 10.0
+ engineConfiguration->etb.iFactor = 82.88195;
+ // default 0.05
+ engineConfiguration->etb.dFactor = 0.0709292;
+ // default "false"
+ engineConfiguration->disableEtbWhenEngineStopped = true;
+ // default 100.0
+ engineConfiguration->etbMaximumPosition = 90;
+ // default 3000.0
+ engineConfiguration->launchRpm = 3800;
+ // default "false"
+ engineConfiguration->enableLaunchRetard = true;
+ // default 0.0
+ engineConfiguration->launchTimingRetard = -10;
+ // default "false"
+ engineConfiguration->launchSparkCutEnable = true;
+ // default "Switch Input"
+ engineConfiguration->antiLagActivationMode = ALWAYS_ON_ANTILAG;
+ // default "false"
+ engineConfiguration->coastingFuelCutEnabled = true;
+ // default 0.0
+ engineConfiguration->dfcoDelay = 2.5;
+ // default 0.0
+ engineConfiguration->noFuelTrimAfterDfcoTime = 0.5;
+ // default "true"
+ engineConfiguration->watchOutForLinearTime = false;
+ // default "Zero"
+ engineConfiguration->gppwm[0].loadAxis = GPPWM_Tps;
+ // default "Zero"
+ engineConfiguration->gppwm[1].loadAxis = GPPWM_Tps;
+ // default "Zero"
+ engineConfiguration->gppwm[2].loadAxis = GPPWM_Tps;
+ // default "Zero"
+ engineConfiguration->gppwm[3].loadAxis = GPPWM_Tps;
+ // default 3.0
+ engineConfiguration->hpfpCamLobes = 0;
+ // default 10.0
+ engineConfiguration->hpfpPeakPos = 0;
+ // default 0.29
+ engineConfiguration->hpfpPumpVolume = 0;
+ // default 10.0
+ engineConfiguration->hpfpMinAngle = 0;
+ // default 30.0
+ engineConfiguration->hpfpActivationAngle = 0;
+ // default 2000.0
+ engineConfiguration->hpfpTargetDecay = 0;
+ // default 0.01
+ engineConfiguration->hpfpPidP = 0;
+ // default 3.0E-4
+ engineConfiguration->hpfpPidI = 0;
+
+
+ cannedtpsTpsAccelTable();
+ cannedboostTableOpenLoop();
+ cannedvvtTable1();
+ cannedscriptTable4();
+ cannedignitionTable();
+ cannedignitionIatCorrTable();
+ cannedveTable();
+ cannedmapEstimateTable();
+ cannedinjectionPhase();
+ cannedpedalToTpsTable();
+ cannedlambdaTable();
+ cannedtcuSolenoidTable();
+ cannedpostCrankingFactor();
+```
diff --git a/generated/canned-tunes/VQ-comparing-against-current-VQ-default_methods.md b/generated/canned-tunes/VQ-comparing-against-current-VQ-default_methods.md
new file mode 100644
index 0000000..b764c60
--- /dev/null
+++ b/generated/canned-tunes/VQ-comparing-against-current-VQ-default_methods.md
@@ -0,0 +1,220 @@
+```
+static void cannedtpsTpsAccelTable() {
+ static const float hardCodedtpsTpsAccelTable[8][8] = {
+{0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, },
+{1.200, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, },
+{2.040, 1.200, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, },
+{2.760, 2.040, 1.200, 0.000, 0.000, 0.000, 0.000, 0.000, },
+{3.360, 2.760, 2.040, 1.200, 0.000, 0.000, 0.000, 0.000, },
+{3.840, 3.360, 2.760, 2.040, 1.200, 0.000, 0.000, 0.000, },
+{4.200, 3.840, 3.360, 2.760, 2.040, 1.200, 0.000, 0.000, },
+{4.440, 4.200, 3.840, 3.360, 2.760, 2.040, 1.200, 0.000, },
+};
+ copyTable(config->tpsTpsAccelTable, hardCodedtpsTpsAccelTable);
+}
+
+static void cannedboostTableOpenLoop() {
+ static const float hardCodedboostTableOpenLoop[8][8] = {
+{0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, },
+{14.000, 14.000, 14.000, 14.000, 14.000, 14.000, 14.000, 14.000, },
+{29.000, 29.000, 29.000, 29.000, 29.000, 29.000, 29.000, 29.000, },
+{43.000, 43.000, 43.000, 43.000, 43.000, 43.000, 43.000, 43.000, },
+{57.000, 57.000, 57.000, 57.000, 57.000, 57.000, 57.000, 57.000, },
+{71.000, 71.000, 71.000, 71.000, 71.000, 71.000, 71.000, 71.000, },
+{86.000, 86.000, 86.000, 86.000, 86.000, 86.000, 86.000, 86.000, },
+{100.000, 100.000, 100.000, 100.000, 100.000, 100.000, 100.000, 100.000, },
+};
+ copyTable(config->boostTableOpenLoop, hardCodedboostTableOpenLoop);
+}
+
+static void cannedvvtTable1() {
+ static const float hardCodedvvtTable1[8][8] = {
+{0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, },
+{0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, },
+{2.000, 5.000, 16.000, 16.000, 8.000, 5.000, 0.000, 0.000, },
+{3.000, 7.000, 24.000, 24.000, 12.000, 8.000, 0.000, 0.000, },
+{3.000, 10.000, 40.000, 40.000, 20.000, 13.000, 0.000, 0.000, },
+{3.000, 10.000, 40.000, 40.000, 20.000, 13.000, 0.000, 0.000, },
+{3.000, 10.000, 40.000, 40.000, 20.000, 13.000, 0.000, 0.000, },
+{3.000, 10.000, 40.000, 40.000, 20.000, 13.000, 0.000, 0.000, },
+};
+ copyTable(config->vvtTable1, hardCodedvvtTable1);
+}
+
+static void cannedscriptTable4() {
+ static const float hardCodedscriptTable4[8][10] = {
+{0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, },
+{0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, },
+{0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, },
+{0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, },
+{0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, },
+{0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, },
+{0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, },
+{0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, },
+};
+ copyTable(config->scriptTable4, hardCodedscriptTable4);
+}
+
+static void cannedignitionTable() {
+ static const float hardCodedignitionTable[16][16] = {
+{12.100, 10.000, 10.000, 10.000, 29.300, 16.600, 30.000, 40.000, 40.000, 40.000, 41.000, 42.000, 42.000, 42.000, 42.000, 42.000, },
+{15.000, 15.000, 15.000, 19.200, 24.500, 29.700, 35.000, 38.000, 0.000, 0.000, 0.000, 0.000, 40.000, 40.000, 40.000, 42.000, },
+{15.000, 15.000, 10.000, 10.000, 10.000, 10.000, 35.000, 38.000, 0.000, 0.000, 0.000, 0.000, 40.000, 40.000, 40.000, 42.000, },
+{15.000, 15.000, 10.000, 10.000, 10.000, 10.000, 35.000, 38.000, -5.000, -5.000, -5.000, -5.000, 42.000, 42.000, 42.000, 42.000, },
+{15.000, 15.000, 15.000, 19.200, 24.500, 30.000, 35.000, 38.000, -5.000, -5.000, -5.000, -5.000, 42.000, 42.000, 42.000, 42.000, },
+{15.000, 15.000, 15.000, 19.200, 24.500, 30.000, 35.000, 38.000, -5.000, -5.000, -5.000, 42.000, 42.000, 42.000, 42.000, 42.000, },
+{15.000, 16.100, 18.200, 21.000, 24.500, 29.700, 30.000, 40.000, 40.000, 40.000, 41.000, 42.000, 42.000, 42.000, 42.000, 42.000, },
+{15.000, 16.100, 18.200, 21.000, 24.500, 29.700, 30.000, 40.000, 40.000, 40.000, 41.000, 42.000, 42.000, 42.000, 42.000, 42.000, },
+{15.000, 16.100, 18.200, 21.000, 24.500, 29.700, 30.000, 40.000, 40.000, 40.000, 41.000, 42.000, 42.000, 42.000, 42.000, 42.000, },
+{15.000, 16.000, 17.900, 20.500, 23.700, 27.500, 29.400, 30.800, 31.100, 31.500, 31.800, 32.200, 32.600, 32.900, 33.300, 34.000, },
+{15.000, 15.900, 17.700, 20.200, 23.200, 27.000, 28.900, 30.300, 30.600, 31.000, 31.300, 31.700, 32.100, 32.400, 32.800, 33.500, },
+{15.000, 15.900, 17.600, 19.800, 22.700, 26.500, 28.400, 29.800, 30.100, 30.500, 30.800, 31.200, 31.600, 31.900, 32.300, 33.000, },
+{15.000, 15.800, 17.400, 19.500, 22.200, 26.000, 27.900, 29.300, 29.600, 30.000, 30.300, 30.700, 31.100, 31.400, 31.800, 32.500, },
+{15.000, 15.700, 17.200, 19.200, 21.700, 25.500, 27.400, 28.800, 29.100, 29.500, 29.800, 30.200, 30.600, 30.900, 31.300, 32.000, },
+{15.000, 15.700, 17.100, 18.900, 21.200, 25.000, 26.900, 28.300, 28.600, 29.000, 29.300, 29.700, 30.100, 30.400, 30.800, 31.500, },
+{15.000, 15.600, 16.900, 18.600, 20.700, 24.500, 26.400, 27.800, 28.100, 28.500, 28.800, 29.200, 29.600, 29.900, 30.300, 31.000, },
+};
+ copyTable(config->ignitionTable, hardCodedignitionTable);
+}
+
+static void cannedignitionIatCorrTable() {
+ static const float hardCodedignitionIatCorrTable[8][8] = {
+{0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, },
+{0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, },
+{0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, },
+{0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, },
+{0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, },
+{0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, },
+{0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, },
+{0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, },
+};
+ copyTable(config->ignitionIatCorrTable, hardCodedignitionIatCorrTable);
+}
+
+static void cannedveTable() {
+ static const float hardCodedveTable[16][16] = {
+{15.400, 15.400, 21.000, 15.500, 13.100, 10.000, 10.000, 10.000, 10.000, 10.000, 10.000, 10.000, 10.000, 10.000, 10.000, 10.000, },
+{18.000, 18.000, 18.000, 18.000, 18.000, 10.000, 10.000, 5.000, 5.000, 5.000, 5.000, 5.000, 5.000, 10.000, 10.000, 10.000, },
+{21.400, 18.000, 18.000, 18.000, 18.000, 10.000, 10.000, 5.000, 5.000, 5.000, 5.000, 5.000, 5.000, 10.000, 10.000, 10.000, },
+{25.100, 22.900, 21.300, 25.000, 25.000, 10.000, 10.000, 5.000, 5.000, 5.000, 5.000, 5.000, 5.000, 10.000, 10.000, 10.000, },
+{25.900, 24.700, 40.000, 40.000, 33.300, 25.000, 15.000, 15.000, 5.000, 5.000, 5.000, 5.000, 5.000, 5.000, 5.000, 5.000, },
+{29.600, 50.000, 50.000, 40.000, 31.100, 29.400, 22.600, 21.000, 20.000, 20.000, 20.000, 20.000, 20.000, 20.000, 20.000, 20.000, },
+{41.800, 50.000, 50.000, 45.000, 43.000, 40.400, 41.600, 36.000, 32.500, 33.900, 37.100, 37.400, 37.400, 37.400, 37.400, 37.400, },
+{43.900, 49.200, 51.700, 47.300, 42.800, 58.500, 60.300, 55.300, 51.700, 53.800, 56.000, 51.000, 51.000, 51.000, 51.000, 51.000, },
+{54.300, 59.800, 65.000, 62.000, 58.500, 66.300, 67.300, 61.500, 57.400, 59.200, 61.000, 56.000, 56.000, 56.000, 56.000, 56.000, },
+{59.600, 62.800, 65.700, 64.800, 63.600, 68.300, 69.600, 72.700, 70.700, 71.600, 72.400, 69.900, 69.800, 69.700, 69.700, 69.700, },
+{64.900, 65.800, 66.400, 67.500, 68.700, 70.200, 71.900, 85.900, 85.900, 85.900, 85.800, 85.700, 85.600, 85.400, 85.300, 85.300, },
+{66.100, 67.000, 67.600, 68.700, 69.900, 71.400, 73.100, 85.800, 85.900, 85.800, 85.600, 85.300, 84.900, 84.400, 84.100, 83.900, },
+{67.400, 68.300, 68.900, 70.000, 71.200, 72.700, 74.400, 85.600, 90.800, 90.700, 90.400, 89.800, 89.200, 88.300, 87.900, 87.500, },
+{68.600, 69.500, 70.100, 71.200, 72.400, 73.900, 75.600, 87.600, 92.800, 92.700, 95.400, 94.800, 94.100, 93.200, 92.800, 92.400, },
+{69.900, 70.800, 71.400, 72.500, 73.700, 75.200, 76.900, 89.600, 94.700, 94.600, 97.300, 96.700, 96.100, 95.200, 94.800, 94.300, },
+{71.100, 72.000, 72.600, 73.700, 74.900, 76.400, 78.100, 92.900, 98.200, 98.100, 100.800, 100.200, 99.600, 98.700, 98.300, 97.900, },
+};
+ copyTable(config->veTable, hardCodedveTable);
+}
+
+static void cannedmapEstimateTable() {
+ static const float hardCodedmapEstimateTable[16][16] = {
+{0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, },
+{0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, },
+{0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, },
+{0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, },
+{0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, },
+{0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, },
+{0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, },
+{0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, },
+{0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, },
+{0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, },
+{0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, },
+{0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, },
+{0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, },
+{0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, },
+{0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, },
+{0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, },
+};
+ copyTable(config->mapEstimateTable, hardCodedmapEstimateTable);
+}
+
+static void cannedinjectionPhase() {
+ static const float hardCodedinjectionPhase[16][16] = {
+{-360.000, -360.000, -360.000, -360.000, -360.000, -360.000, -360.000, -360.000, -360.000, -360.000, -360.000, -360.000, -360.000, -360.000, -360.000, -360.000, },
+{-360.000, -360.000, -360.000, -360.000, -360.000, -360.000, -360.000, -360.000, -360.000, -360.000, -360.000, -360.000, -360.000, -360.000, -360.000, -360.000, },
+{-360.000, -360.000, -360.000, -360.000, -360.000, -360.000, -360.000, -360.000, -360.000, -360.000, -360.000, -360.000, -360.000, -360.000, -360.000, -360.000, },
+{-360.000, -360.000, -360.000, -360.000, -360.000, -360.000, -360.000, -360.000, -360.000, -360.000, -360.000, -360.000, -360.000, -360.000, -360.000, -360.000, },
+{-360.000, -360.000, -360.000, -360.000, -360.000, -360.000, -360.000, -360.000, -360.000, -360.000, -360.000, -360.000, -360.000, -360.000, -360.000, -360.000, },
+{-360.000, -360.000, -360.000, -360.000, -360.000, -360.000, -360.000, -360.000, -360.000, -360.000, -360.000, -360.000, -360.000, -360.000, -360.000, -360.000, },
+{-360.000, -360.000, -360.000, -360.000, -360.000, -360.000, -360.000, -360.000, -360.000, -360.000, -360.000, -360.000, -360.000, -360.000, -360.000, -360.000, },
+{-360.000, -360.000, -360.000, -360.000, -360.000, -360.000, -360.000, -360.000, -360.000, -360.000, -360.000, -360.000, -360.000, -360.000, -360.000, -360.000, },
+{-360.000, -360.000, -360.000, -360.000, -360.000, -360.000, -360.000, -360.000, -360.000, -360.000, -360.000, -360.000, -360.000, -360.000, -360.000, -360.000, },
+{-360.000, -360.000, -360.000, -360.000, -360.000, -360.000, -360.000, -360.000, -360.000, -360.000, -360.000, -360.000, -360.000, -360.000, -360.000, -360.000, },
+{-360.000, -360.000, -360.000, -360.000, -360.000, -360.000, -360.000, -360.000, -360.000, -360.000, -360.000, -360.000, -360.000, -360.000, -360.000, -360.000, },
+{-360.000, -360.000, -360.000, -360.000, -360.000, -360.000, -360.000, -360.000, -360.000, -360.000, -360.000, -360.000, -360.000, -360.000, -360.000, -360.000, },
+{-360.000, -360.000, -360.000, -360.000, -360.000, -360.000, -360.000, -360.000, -360.000, -360.000, -360.000, -360.000, -360.000, -360.000, -360.000, -360.000, },
+{-360.000, -360.000, -360.000, -360.000, -360.000, -360.000, -360.000, -360.000, -360.000, -360.000, -360.000, -360.000, -360.000, -360.000, -360.000, -360.000, },
+{-360.000, -360.000, -360.000, -360.000, -360.000, -360.000, -360.000, -360.000, -360.000, -360.000, -360.000, -360.000, -360.000, -360.000, -360.000, -360.000, },
+{-360.000, -360.000, -360.000, -360.000, -360.000, -360.000, -360.000, -360.000, -360.000, -360.000, -360.000, -360.000, -360.000, -360.000, -360.000, -360.000, },
+};
+ copyTable(config->injectionPhase, hardCodedinjectionPhase);
+}
+
+static void cannedpedalToTpsTable() {
+ static const float hardCodedpedalToTpsTable[8][8] = {
+{0.000, 0.000, 0.000, 0.000, 6.000, 6.000, 3.000, 1.000, },
+{5.000, 5.000, 5.000, 5.000, 5.000, 5.000, 5.000, 5.000, },
+{7.000, 7.000, 10.000, 10.000, 10.000, 10.000, 10.000, 10.000, },
+{15.000, 15.000, 20.000, 20.000, 20.000, 20.000, 20.000, 20.000, },
+{25.000, 25.000, 40.000, 40.000, 40.000, 40.000, 40.000, 40.000, },
+{30.000, 30.000, 50.000, 50.000, 50.000, 50.000, 50.000, 50.000, },
+{40.000, 40.000, 70.000, 70.000, 70.000, 70.000, 70.000, 70.000, },
+{50.000, 90.000, 90.000, 90.000, 90.000, 90.000, 90.000, 90.000, },
+};
+ copyTable(config->pedalToTpsTable, hardCodedpedalToTpsTable);
+}
+
+static void cannedlambdaTable() {
+ static const float hardCodedlambdaTable[16][16] = {
+{14.700, 14.700, 14.700, 14.700, 14.700, 14.700, 14.700, 14.700, 14.700, 14.700, 14.700, 14.700, 14.700, 14.700, 14.700, 14.700, },
+{14.700, 14.700, 14.700, 14.700, 14.700, 14.700, 14.700, 14.700, 14.700, 14.700, 14.700, 14.700, 14.700, 14.700, 14.700, 14.700, },
+{14.700, 14.700, 14.700, 14.700, 14.700, 14.700, 14.700, 14.700, 14.700, 14.700, 14.700, 14.700, 14.700, 14.700, 14.700, 14.700, },
+{14.700, 14.700, 14.700, 14.700, 14.700, 14.700, 14.700, 14.700, 14.700, 14.700, 14.700, 14.700, 14.700, 14.700, 14.700, 14.700, },
+{14.700, 14.700, 14.700, 14.700, 14.700, 14.700, 14.700, 14.700, 14.700, 14.700, 14.700, 14.700, 14.700, 14.700, 14.700, 14.700, },
+{14.000, 14.000, 14.000, 14.000, 14.000, 14.000, 14.000, 14.000, 14.000, 14.000, 14.000, 14.000, 14.000, 14.000, 14.000, 14.000, },
+{13.500, 13.500, 13.500, 13.500, 13.500, 13.500, 13.500, 13.500, 13.500, 13.500, 13.500, 13.500, 13.500, 13.500, 13.500, 13.500, },
+{13.200, 13.200, 13.200, 13.200, 13.200, 13.200, 13.200, 13.200, 13.200, 13.200, 13.200, 13.200, 13.200, 13.200, 13.200, 13.200, },
+{13.100, 13.100, 13.100, 13.100, 13.100, 13.100, 13.100, 13.100, 13.100, 13.100, 13.100, 13.100, 13.100, 13.100, 13.100, 13.100, },
+{12.900, 12.900, 12.900, 12.900, 12.900, 12.900, 12.900, 12.900, 12.900, 12.900, 12.900, 12.900, 12.900, 12.900, 12.900, 12.900, },
+{12.600, 12.600, 12.600, 12.600, 12.600, 12.600, 12.600, 12.600, 12.600, 12.600, 12.600, 12.600, 12.600, 12.600, 12.600, 12.600, },
+{12.300, 12.300, 12.300, 12.300, 12.300, 12.300, 12.300, 12.300, 12.300, 12.300, 12.300, 12.300, 12.300, 12.300, 12.300, 12.300, },
+{11.800, 11.800, 11.800, 11.800, 11.800, 11.800, 11.800, 11.800, 11.800, 11.800, 11.800, 11.800, 11.800, 11.800, 11.800, 11.800, },
+{11.300, 11.300, 11.300, 11.300, 11.300, 11.300, 11.300, 11.300, 11.300, 11.300, 11.300, 11.300, 11.300, 11.300, 11.300, 11.300, },
+{11.000, 11.000, 11.000, 11.000, 11.000, 11.000, 11.000, 11.000, 11.000, 11.000, 11.000, 11.000, 11.000, 11.000, 11.000, 11.000, },
+{10.700, 10.700, 10.700, 10.700, 10.700, 10.700, 10.700, 10.700, 10.700, 10.700, 10.700, 10.700, 10.700, 10.700, 10.700, 10.700, },
+};
+ copyTable(config->lambdaTable, hardCodedlambdaTable);
+}
+
+static void cannedtcuSolenoidTable() {
+ static const float hardCodedtcuSolenoidTable[6][10] = {
+{0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, },
+{0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, },
+{0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, },
+{0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, },
+{0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, },
+{0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, },
+};
+ copyTable(config->tcuSolenoidTable, hardCodedtcuSolenoidTable);
+}
+
+static void cannedpostCrankingFactor() {
+ static const float hardCodedpostCrankingFactor[6][6] = {
+{1.200, 1.000, 1.000, 1.000, 1.000, 1.000, },
+{1.200, 1.000, 1.000, 1.000, 1.000, 1.000, },
+{1.200, 1.000, 1.000, 1.000, 1.000, 1.000, },
+{1.200, 1.000, 1.000, 1.000, 1.000, 1.000, },
+{1.200, 1.000, 1.000, 1.000, 1.000, 1.000, },
+{1.200, 1.000, 1.000, 1.000, 1.000, 1.000, },
+};
+ copyTable(engineConfiguration->postCrankingFactor, hardCodedpostCrankingFactor);
+}
+
+```
diff --git a/generated/canned-tunes/VQ-comparing-against-global-defaults.md b/generated/canned-tunes/VQ-comparing-against-global-defaults.md
new file mode 100644
index 0000000..8962e33
--- /dev/null
+++ b/generated/canned-tunes/VQ-comparing-against-global-defaults.md
@@ -0,0 +1,277 @@
+# VQ-comparing-against-global-defaults
+
+// canned tune https://rusefi.com/online/view.php?msq=1641
+
+```
+ // default "Single Coil"
+ engineConfiguration->ignitionMode = IM_INDIVIDUAL_COILS;
+ // default "false"
+ engineConfiguration->twoWireBatchIgnition = true;
+ // default "None"
+ engineConfiguration->ignOverrideMode = AFR_Tps;
+ // default 4.0
+ engineConfiguration->cylindersCount = 6;
+ // default 1.6
+ engineConfiguration->displacement = 3.5;
+ // default "60-2"
+ engineConfiguration->trigger.type = TT_NISSAN_VQ35;
+ // default "Single Tooth"
+ engineConfiguration->vvtMode[0] = VVT_NISSAN_VQ;
+ // default 40.0
+ engineConfiguration->camDecoder2jzPrecision = 25;
+ // default 450.0
+ engineConfiguration->vvtOffsets[0] = 157;
+ // default 0.0
+ engineConfiguration->vvtOffsets[2] = -207;
+ // default 200.0
+ engineConfiguration->injector.flow = 320;
+ // default 300.0
+ engineConfiguration->fuelReferencePressure = 0;
+ // default 0.0
+ engineConfiguration->cylinderBankSelect[4] = 1;
+ // default 0.0
+ engineConfiguration->cylinderBankSelect[5] = 1;
+ // default 0.0
+ engineConfiguration->cylinderBankSelect[6] = 1;
+ // default 0.0
+ engineConfiguration->cylinderBankSelect[7] = 1;
+ // default 0.0
+ engineConfiguration->cylinderBankSelect[8] = 1;
+ // default 0.0
+ engineConfiguration->cylinderBankSelect[9] = 1;
+ // default 0.0
+ engineConfiguration->cylinderBankSelect[10] = 1;
+ // default 0.0
+ engineConfiguration->cylinderBankSelect[11] = 1;
+ // default 4.0
+ engineConfiguration->benchTestOnTime = 5;
+ // default "Zero"
+ engineConfiguration->ignBlends[0].blendParameter = GPPWM_Clt;
+ // default "Zero"
+ engineConfiguration->ignBlends[1].blendParameter = GPPWM_AccelPedal;
+ // default 0.0
+ engineConfiguration->tpsMin = 97;
+ // default 1000.0
+ engineConfiguration->tpsMax = 852;
+ // default 1000.0
+ engineConfiguration->tps1SecondaryMin = 900;
+ // default 0.0
+ engineConfiguration->tps1SecondaryMax = 139;
+ // default 1000.0
+ engineConfiguration->tps2SecondaryMin = 0;
+ // default 0.0
+ engineConfiguration->tps2SecondaryMax = 1000;
+ // default 0.0
+ engineConfiguration->throttlePedalUpVoltage = 0.840429;
+ // default 5.0
+ engineConfiguration->throttlePedalWOTVoltage = 4.536769;
+ // default 5.0
+ engineConfiguration->throttlePedalSecondaryUpVoltage = 0.395229;
+ // default 0.0
+ engineConfiguration->throttlePedalSecondaryWOTVoltage = 2.120979;
+ // default 5.0
+ engineConfiguration->etbSplit = 10;
+ // default 400.0
+ engineConfiguration->mc33_t_max_boost = 470;
+ // default 10.0
+ engineConfiguration->mc33_t_bypass = 15;
+ // default "Normal"
+ engineConfiguration->clutchDownPinInverted = false;
+ // default "Normal"
+ engineConfiguration->clutchUpPinInverted = false;
+ // default 5.0
+ engineConfiguration->mapErrorDetectionTooLow = 0;
+ // default "false"
+ engineConfiguration->enableAemXSeries = true;
+ // default 300.0
+ engineConfiguration->idle.solenoidFrequency = 200;
+ // default "false"
+ engineConfiguration->etb_use_two_wires = true;
+ // default 3.0
+ engineConfiguration->idleStepperReactionTime = 0;
+ // default 200.0
+ engineConfiguration->idleStepperTotalSteps = 0;
+ // default "true"
+ engineConfiguration->stepperForceParkingEveryRestart = false;
+ // default 15.0
+ engineConfiguration->etbIdleThrottleRange = 10;
+ // default -20.0
+ engineConfiguration->idleRpmPid.minValue = 0;
+ // default 20.0
+ engineConfiguration->idleRpmPid.maxValue = 99;
+ // default 15.0
+ engineConfiguration->acIdleExtraOffset = 10;
+ // default 2.0
+ engineConfiguration->fan1ExtraIdle = 0;
+ // default 2.0
+ engineConfiguration->fan2ExtraIdle = 1;
+ // default 2.0
+ engineConfiguration->iacByTpsTaper = 3;
+ // default 5.0
+ engineConfiguration->idlePidDeactivationTpsThreshold = 2;
+ // default "false"
+ engineConfiguration->useSeparateAdvanceForIdle = true;
+ // default 0.0
+ engineConfiguration->iacByTpsHoldTime = 2;
+ // default 0.0
+ engineConfiguration->iacByTpsDecayTime = 2;
+ // default "false"
+ engineConfiguration->useIdleTimingPidControl = true;
+ // default 0.0
+ engineConfiguration->idleTimingPid.iFactor = 0.005;
+ // default 0.0
+ engineConfiguration->idleTimingPid.dFactor = 5.0E-4;
+ // default 0.0
+ engineConfiguration->idleTimingSoftEntryTime = 2;
+ // default 92.0
+ engineConfiguration->fanOnTemperature = 85;
+ // default 88.0
+ engineConfiguration->fanOffTemperature = 81;
+ // default 95.0
+ engineConfiguration->fan2OnTemperature = 92;
+ // default 91.0
+ engineConfiguration->fan2OffTemperature = 87;
+ // default 0.5
+ engineConfiguration->acDelay = 0;
+ // default 4.0
+ engineConfiguration->startUpFuelPumpDuration = 2;
+ // default "false"
+ engineConfiguration->enableSoftwareKnock = true;
+ // default 20.0
+ engineConfiguration->knockRetardAggression = 0;
+ // default 3.0
+ engineConfiguration->knockRetardReapplyRate = 0;
+ // default 550.0
+ engineConfiguration->vvtControlMinRpm = 400;
+ // default "advance"
+ engineConfiguration->invertVvtControlExhaust = retard;
+ // default 0.005
+ engineConfiguration->auxPid[0].iFactor = 0.02;
+ // default 0.0
+ engineConfiguration->auxPid[0].dFactor = 5.0E-4;
+ // default 0.0
+ engineConfiguration->auxPid[1].offset = 33;
+ // default 0.0
+ engineConfiguration->auxPid[1].pFactor = 2;
+ // default 0.0
+ engineConfiguration->auxPid[1].iFactor = 0.01;
+ // default 0.0
+ engineConfiguration->auxPid[1].dFactor = 5.0E-4;
+ // default 3.0
+ engineConfiguration->vssFilterReciprocal = 0;
+ // default 1000.0
+ engineConfiguration->driveWheelRevPerKm = 500;
+ // default 1.0
+ engineConfiguration->finalGearRatio = 0;
+ // default "Speed Density"
+ engineConfiguration->fuelAlgorithm = LM_ALPHA_N;
+ // default "MAP"
+ engineConfiguration->debugMode = DBG_22;
+ // default "yes"
+ engineConfiguration->cutFuelOnHardLimit = no;
+ // default 7000.0
+ engineConfiguration->rpmHardLimit = 7100;
+ // default 300.0
+ engineConfiguration->boostCutPressure = 200;
+ // default 200.0
+ engineConfiguration->rpmSoftLimitWindowSize = 0;
+ // default 4.0
+ engineConfiguration->rpmSoftLimitTimingRetard = 0;
+ // default 250.0
+ engineConfiguration->etbRevLimitRange = 0;
+ // default "Simultaneous"
+ engineConfiguration->crankingInjectionMode = IM_BATCH;
+ // default 27.0
+ engineConfiguration->cranking.baseFuel = 35;
+ // default 50.0
+ engineConfiguration->crankingIACposition = 100;
+ // default 200.0
+ engineConfiguration->afterCrankingIACtaperDuration = 100;
+ // default "false"
+ engineConfiguration->overrideCrankingIacSetting = true;
+ // default 0.5
+ engineConfiguration->primingDelay = 1;
+ // default 550.0
+ engineConfiguration->cranking.rpm = 400;
+ // default 40.0
+ engineConfiguration->tpsAccelEnrichmentThreshold = 200;
+ // default 1.0
+ engineConfiguration->tpsAccelFractionDivisor = 0;
+ // default 0.3
+ engineConfiguration->wwaeTau = 0;
+ // default 0.3
+ engineConfiguration->wwaeBeta = 0;
+ // default 2000.0
+ engineConfiguration->boostControlMinRpm = 0;
+ // default 30.0
+ engineConfiguration->boostControlMinTps = 0;
+ // default 110.0
+ engineConfiguration->boostControlMinMap = 0;
+ // default 1.0
+ engineConfiguration->etb.pFactor = 5.979724;
+ // default 10.0
+ engineConfiguration->etb.iFactor = 82.88195;
+ // default 0.05
+ engineConfiguration->etb.dFactor = 0.0709292;
+ // default "false"
+ engineConfiguration->disableEtbWhenEngineStopped = true;
+ // default 100.0
+ engineConfiguration->etbMaximumPosition = 90;
+ // default 3000.0
+ engineConfiguration->launchRpm = 3800;
+ // default "false"
+ engineConfiguration->enableLaunchRetard = true;
+ // default 0.0
+ engineConfiguration->launchTimingRetard = -10;
+ // default "false"
+ engineConfiguration->launchSparkCutEnable = true;
+ // default "Switch Input"
+ engineConfiguration->antiLagActivationMode = ALWAYS_ON_ANTILAG;
+ // default "false"
+ engineConfiguration->coastingFuelCutEnabled = true;
+ // default 0.0
+ engineConfiguration->dfcoDelay = 2.5;
+ // default 0.0
+ engineConfiguration->noFuelTrimAfterDfcoTime = 0.5;
+ // default "true"
+ engineConfiguration->watchOutForLinearTime = false;
+ // default "Zero"
+ engineConfiguration->gppwm[0].loadAxis = GPPWM_Tps;
+ // default "Zero"
+ engineConfiguration->gppwm[1].loadAxis = GPPWM_Tps;
+ // default "Zero"
+ engineConfiguration->gppwm[2].loadAxis = GPPWM_Tps;
+ // default "Zero"
+ engineConfiguration->gppwm[3].loadAxis = GPPWM_Tps;
+ // default 3.0
+ engineConfiguration->hpfpCamLobes = 0;
+ // default 10.0
+ engineConfiguration->hpfpPeakPos = 0;
+ // default 0.29
+ engineConfiguration->hpfpPumpVolume = 0;
+ // default 10.0
+ engineConfiguration->hpfpMinAngle = 0;
+ // default 30.0
+ engineConfiguration->hpfpActivationAngle = 0;
+ // default 2000.0
+ engineConfiguration->hpfpTargetDecay = 0;
+ // default 0.01
+ engineConfiguration->hpfpPidP = 0;
+ // default 3.0E-4
+ engineConfiguration->hpfpPidI = 0;
+
+
+ cannedtpsTpsAccelTable();
+ cannedboostTableOpenLoop();
+ cannedvvtTable1();
+ cannedscriptTable4();
+ cannedignitionTable();
+ cannedignitionIatCorrTable();
+ cannedveTable();
+ cannedmapEstimateTable();
+ cannedinjectionPhase();
+ cannedpedalToTpsTable();
+ cannedlambdaTable();
+ cannedtcuSolenoidTable();
+ cannedpostCrankingFactor();
+```
diff --git a/generated/canned-tunes/VQ-comparing-against-global-defaults_methods.md b/generated/canned-tunes/VQ-comparing-against-global-defaults_methods.md
new file mode 100644
index 0000000..b764c60
--- /dev/null
+++ b/generated/canned-tunes/VQ-comparing-against-global-defaults_methods.md
@@ -0,0 +1,220 @@
+```
+static void cannedtpsTpsAccelTable() {
+ static const float hardCodedtpsTpsAccelTable[8][8] = {
+{0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, },
+{1.200, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, },
+{2.040, 1.200, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, },
+{2.760, 2.040, 1.200, 0.000, 0.000, 0.000, 0.000, 0.000, },
+{3.360, 2.760, 2.040, 1.200, 0.000, 0.000, 0.000, 0.000, },
+{3.840, 3.360, 2.760, 2.040, 1.200, 0.000, 0.000, 0.000, },
+{4.200, 3.840, 3.360, 2.760, 2.040, 1.200, 0.000, 0.000, },
+{4.440, 4.200, 3.840, 3.360, 2.760, 2.040, 1.200, 0.000, },
+};
+ copyTable(config->tpsTpsAccelTable, hardCodedtpsTpsAccelTable);
+}
+
+static void cannedboostTableOpenLoop() {
+ static const float hardCodedboostTableOpenLoop[8][8] = {
+{0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, },
+{14.000, 14.000, 14.000, 14.000, 14.000, 14.000, 14.000, 14.000, },
+{29.000, 29.000, 29.000, 29.000, 29.000, 29.000, 29.000, 29.000, },
+{43.000, 43.000, 43.000, 43.000, 43.000, 43.000, 43.000, 43.000, },
+{57.000, 57.000, 57.000, 57.000, 57.000, 57.000, 57.000, 57.000, },
+{71.000, 71.000, 71.000, 71.000, 71.000, 71.000, 71.000, 71.000, },
+{86.000, 86.000, 86.000, 86.000, 86.000, 86.000, 86.000, 86.000, },
+{100.000, 100.000, 100.000, 100.000, 100.000, 100.000, 100.000, 100.000, },
+};
+ copyTable(config->boostTableOpenLoop, hardCodedboostTableOpenLoop);
+}
+
+static void cannedvvtTable1() {
+ static const float hardCodedvvtTable1[8][8] = {
+{0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, },
+{0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, },
+{2.000, 5.000, 16.000, 16.000, 8.000, 5.000, 0.000, 0.000, },
+{3.000, 7.000, 24.000, 24.000, 12.000, 8.000, 0.000, 0.000, },
+{3.000, 10.000, 40.000, 40.000, 20.000, 13.000, 0.000, 0.000, },
+{3.000, 10.000, 40.000, 40.000, 20.000, 13.000, 0.000, 0.000, },
+{3.000, 10.000, 40.000, 40.000, 20.000, 13.000, 0.000, 0.000, },
+{3.000, 10.000, 40.000, 40.000, 20.000, 13.000, 0.000, 0.000, },
+};
+ copyTable(config->vvtTable1, hardCodedvvtTable1);
+}
+
+static void cannedscriptTable4() {
+ static const float hardCodedscriptTable4[8][10] = {
+{0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, },
+{0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, },
+{0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, },
+{0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, },
+{0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, },
+{0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, },
+{0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, },
+{0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, },
+};
+ copyTable(config->scriptTable4, hardCodedscriptTable4);
+}
+
+static void cannedignitionTable() {
+ static const float hardCodedignitionTable[16][16] = {
+{12.100, 10.000, 10.000, 10.000, 29.300, 16.600, 30.000, 40.000, 40.000, 40.000, 41.000, 42.000, 42.000, 42.000, 42.000, 42.000, },
+{15.000, 15.000, 15.000, 19.200, 24.500, 29.700, 35.000, 38.000, 0.000, 0.000, 0.000, 0.000, 40.000, 40.000, 40.000, 42.000, },
+{15.000, 15.000, 10.000, 10.000, 10.000, 10.000, 35.000, 38.000, 0.000, 0.000, 0.000, 0.000, 40.000, 40.000, 40.000, 42.000, },
+{15.000, 15.000, 10.000, 10.000, 10.000, 10.000, 35.000, 38.000, -5.000, -5.000, -5.000, -5.000, 42.000, 42.000, 42.000, 42.000, },
+{15.000, 15.000, 15.000, 19.200, 24.500, 30.000, 35.000, 38.000, -5.000, -5.000, -5.000, -5.000, 42.000, 42.000, 42.000, 42.000, },
+{15.000, 15.000, 15.000, 19.200, 24.500, 30.000, 35.000, 38.000, -5.000, -5.000, -5.000, 42.000, 42.000, 42.000, 42.000, 42.000, },
+{15.000, 16.100, 18.200, 21.000, 24.500, 29.700, 30.000, 40.000, 40.000, 40.000, 41.000, 42.000, 42.000, 42.000, 42.000, 42.000, },
+{15.000, 16.100, 18.200, 21.000, 24.500, 29.700, 30.000, 40.000, 40.000, 40.000, 41.000, 42.000, 42.000, 42.000, 42.000, 42.000, },
+{15.000, 16.100, 18.200, 21.000, 24.500, 29.700, 30.000, 40.000, 40.000, 40.000, 41.000, 42.000, 42.000, 42.000, 42.000, 42.000, },
+{15.000, 16.000, 17.900, 20.500, 23.700, 27.500, 29.400, 30.800, 31.100, 31.500, 31.800, 32.200, 32.600, 32.900, 33.300, 34.000, },
+{15.000, 15.900, 17.700, 20.200, 23.200, 27.000, 28.900, 30.300, 30.600, 31.000, 31.300, 31.700, 32.100, 32.400, 32.800, 33.500, },
+{15.000, 15.900, 17.600, 19.800, 22.700, 26.500, 28.400, 29.800, 30.100, 30.500, 30.800, 31.200, 31.600, 31.900, 32.300, 33.000, },
+{15.000, 15.800, 17.400, 19.500, 22.200, 26.000, 27.900, 29.300, 29.600, 30.000, 30.300, 30.700, 31.100, 31.400, 31.800, 32.500, },
+{15.000, 15.700, 17.200, 19.200, 21.700, 25.500, 27.400, 28.800, 29.100, 29.500, 29.800, 30.200, 30.600, 30.900, 31.300, 32.000, },
+{15.000, 15.700, 17.100, 18.900, 21.200, 25.000, 26.900, 28.300, 28.600, 29.000, 29.300, 29.700, 30.100, 30.400, 30.800, 31.500, },
+{15.000, 15.600, 16.900, 18.600, 20.700, 24.500, 26.400, 27.800, 28.100, 28.500, 28.800, 29.200, 29.600, 29.900, 30.300, 31.000, },
+};
+ copyTable(config->ignitionTable, hardCodedignitionTable);
+}
+
+static void cannedignitionIatCorrTable() {
+ static const float hardCodedignitionIatCorrTable[8][8] = {
+{0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, },
+{0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, },
+{0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, },
+{0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, },
+{0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, },
+{0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, },
+{0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, },
+{0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, },
+};
+ copyTable(config->ignitionIatCorrTable, hardCodedignitionIatCorrTable);
+}
+
+static void cannedveTable() {
+ static const float hardCodedveTable[16][16] = {
+{15.400, 15.400, 21.000, 15.500, 13.100, 10.000, 10.000, 10.000, 10.000, 10.000, 10.000, 10.000, 10.000, 10.000, 10.000, 10.000, },
+{18.000, 18.000, 18.000, 18.000, 18.000, 10.000, 10.000, 5.000, 5.000, 5.000, 5.000, 5.000, 5.000, 10.000, 10.000, 10.000, },
+{21.400, 18.000, 18.000, 18.000, 18.000, 10.000, 10.000, 5.000, 5.000, 5.000, 5.000, 5.000, 5.000, 10.000, 10.000, 10.000, },
+{25.100, 22.900, 21.300, 25.000, 25.000, 10.000, 10.000, 5.000, 5.000, 5.000, 5.000, 5.000, 5.000, 10.000, 10.000, 10.000, },
+{25.900, 24.700, 40.000, 40.000, 33.300, 25.000, 15.000, 15.000, 5.000, 5.000, 5.000, 5.000, 5.000, 5.000, 5.000, 5.000, },
+{29.600, 50.000, 50.000, 40.000, 31.100, 29.400, 22.600, 21.000, 20.000, 20.000, 20.000, 20.000, 20.000, 20.000, 20.000, 20.000, },
+{41.800, 50.000, 50.000, 45.000, 43.000, 40.400, 41.600, 36.000, 32.500, 33.900, 37.100, 37.400, 37.400, 37.400, 37.400, 37.400, },
+{43.900, 49.200, 51.700, 47.300, 42.800, 58.500, 60.300, 55.300, 51.700, 53.800, 56.000, 51.000, 51.000, 51.000, 51.000, 51.000, },
+{54.300, 59.800, 65.000, 62.000, 58.500, 66.300, 67.300, 61.500, 57.400, 59.200, 61.000, 56.000, 56.000, 56.000, 56.000, 56.000, },
+{59.600, 62.800, 65.700, 64.800, 63.600, 68.300, 69.600, 72.700, 70.700, 71.600, 72.400, 69.900, 69.800, 69.700, 69.700, 69.700, },
+{64.900, 65.800, 66.400, 67.500, 68.700, 70.200, 71.900, 85.900, 85.900, 85.900, 85.800, 85.700, 85.600, 85.400, 85.300, 85.300, },
+{66.100, 67.000, 67.600, 68.700, 69.900, 71.400, 73.100, 85.800, 85.900, 85.800, 85.600, 85.300, 84.900, 84.400, 84.100, 83.900, },
+{67.400, 68.300, 68.900, 70.000, 71.200, 72.700, 74.400, 85.600, 90.800, 90.700, 90.400, 89.800, 89.200, 88.300, 87.900, 87.500, },
+{68.600, 69.500, 70.100, 71.200, 72.400, 73.900, 75.600, 87.600, 92.800, 92.700, 95.400, 94.800, 94.100, 93.200, 92.800, 92.400, },
+{69.900, 70.800, 71.400, 72.500, 73.700, 75.200, 76.900, 89.600, 94.700, 94.600, 97.300, 96.700, 96.100, 95.200, 94.800, 94.300, },
+{71.100, 72.000, 72.600, 73.700, 74.900, 76.400, 78.100, 92.900, 98.200, 98.100, 100.800, 100.200, 99.600, 98.700, 98.300, 97.900, },
+};
+ copyTable(config->veTable, hardCodedveTable);
+}
+
+static void cannedmapEstimateTable() {
+ static const float hardCodedmapEstimateTable[16][16] = {
+{0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, },
+{0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, },
+{0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, },
+{0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, },
+{0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, },
+{0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, },
+{0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, },
+{0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, },
+{0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, },
+{0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, },
+{0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, },
+{0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, },
+{0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, },
+{0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, },
+{0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, },
+{0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, },
+};
+ copyTable(config->mapEstimateTable, hardCodedmapEstimateTable);
+}
+
+static void cannedinjectionPhase() {
+ static const float hardCodedinjectionPhase[16][16] = {
+{-360.000, -360.000, -360.000, -360.000, -360.000, -360.000, -360.000, -360.000, -360.000, -360.000, -360.000, -360.000, -360.000, -360.000, -360.000, -360.000, },
+{-360.000, -360.000, -360.000, -360.000, -360.000, -360.000, -360.000, -360.000, -360.000, -360.000, -360.000, -360.000, -360.000, -360.000, -360.000, -360.000, },
+{-360.000, -360.000, -360.000, -360.000, -360.000, -360.000, -360.000, -360.000, -360.000, -360.000, -360.000, -360.000, -360.000, -360.000, -360.000, -360.000, },
+{-360.000, -360.000, -360.000, -360.000, -360.000, -360.000, -360.000, -360.000, -360.000, -360.000, -360.000, -360.000, -360.000, -360.000, -360.000, -360.000, },
+{-360.000, -360.000, -360.000, -360.000, -360.000, -360.000, -360.000, -360.000, -360.000, -360.000, -360.000, -360.000, -360.000, -360.000, -360.000, -360.000, },
+{-360.000, -360.000, -360.000, -360.000, -360.000, -360.000, -360.000, -360.000, -360.000, -360.000, -360.000, -360.000, -360.000, -360.000, -360.000, -360.000, },
+{-360.000, -360.000, -360.000, -360.000, -360.000, -360.000, -360.000, -360.000, -360.000, -360.000, -360.000, -360.000, -360.000, -360.000, -360.000, -360.000, },
+{-360.000, -360.000, -360.000, -360.000, -360.000, -360.000, -360.000, -360.000, -360.000, -360.000, -360.000, -360.000, -360.000, -360.000, -360.000, -360.000, },
+{-360.000, -360.000, -360.000, -360.000, -360.000, -360.000, -360.000, -360.000, -360.000, -360.000, -360.000, -360.000, -360.000, -360.000, -360.000, -360.000, },
+{-360.000, -360.000, -360.000, -360.000, -360.000, -360.000, -360.000, -360.000, -360.000, -360.000, -360.000, -360.000, -360.000, -360.000, -360.000, -360.000, },
+{-360.000, -360.000, -360.000, -360.000, -360.000, -360.000, -360.000, -360.000, -360.000, -360.000, -360.000, -360.000, -360.000, -360.000, -360.000, -360.000, },
+{-360.000, -360.000, -360.000, -360.000, -360.000, -360.000, -360.000, -360.000, -360.000, -360.000, -360.000, -360.000, -360.000, -360.000, -360.000, -360.000, },
+{-360.000, -360.000, -360.000, -360.000, -360.000, -360.000, -360.000, -360.000, -360.000, -360.000, -360.000, -360.000, -360.000, -360.000, -360.000, -360.000, },
+{-360.000, -360.000, -360.000, -360.000, -360.000, -360.000, -360.000, -360.000, -360.000, -360.000, -360.000, -360.000, -360.000, -360.000, -360.000, -360.000, },
+{-360.000, -360.000, -360.000, -360.000, -360.000, -360.000, -360.000, -360.000, -360.000, -360.000, -360.000, -360.000, -360.000, -360.000, -360.000, -360.000, },
+{-360.000, -360.000, -360.000, -360.000, -360.000, -360.000, -360.000, -360.000, -360.000, -360.000, -360.000, -360.000, -360.000, -360.000, -360.000, -360.000, },
+};
+ copyTable(config->injectionPhase, hardCodedinjectionPhase);
+}
+
+static void cannedpedalToTpsTable() {
+ static const float hardCodedpedalToTpsTable[8][8] = {
+{0.000, 0.000, 0.000, 0.000, 6.000, 6.000, 3.000, 1.000, },
+{5.000, 5.000, 5.000, 5.000, 5.000, 5.000, 5.000, 5.000, },
+{7.000, 7.000, 10.000, 10.000, 10.000, 10.000, 10.000, 10.000, },
+{15.000, 15.000, 20.000, 20.000, 20.000, 20.000, 20.000, 20.000, },
+{25.000, 25.000, 40.000, 40.000, 40.000, 40.000, 40.000, 40.000, },
+{30.000, 30.000, 50.000, 50.000, 50.000, 50.000, 50.000, 50.000, },
+{40.000, 40.000, 70.000, 70.000, 70.000, 70.000, 70.000, 70.000, },
+{50.000, 90.000, 90.000, 90.000, 90.000, 90.000, 90.000, 90.000, },
+};
+ copyTable(config->pedalToTpsTable, hardCodedpedalToTpsTable);
+}
+
+static void cannedlambdaTable() {
+ static const float hardCodedlambdaTable[16][16] = {
+{14.700, 14.700, 14.700, 14.700, 14.700, 14.700, 14.700, 14.700, 14.700, 14.700, 14.700, 14.700, 14.700, 14.700, 14.700, 14.700, },
+{14.700, 14.700, 14.700, 14.700, 14.700, 14.700, 14.700, 14.700, 14.700, 14.700, 14.700, 14.700, 14.700, 14.700, 14.700, 14.700, },
+{14.700, 14.700, 14.700, 14.700, 14.700, 14.700, 14.700, 14.700, 14.700, 14.700, 14.700, 14.700, 14.700, 14.700, 14.700, 14.700, },
+{14.700, 14.700, 14.700, 14.700, 14.700, 14.700, 14.700, 14.700, 14.700, 14.700, 14.700, 14.700, 14.700, 14.700, 14.700, 14.700, },
+{14.700, 14.700, 14.700, 14.700, 14.700, 14.700, 14.700, 14.700, 14.700, 14.700, 14.700, 14.700, 14.700, 14.700, 14.700, 14.700, },
+{14.000, 14.000, 14.000, 14.000, 14.000, 14.000, 14.000, 14.000, 14.000, 14.000, 14.000, 14.000, 14.000, 14.000, 14.000, 14.000, },
+{13.500, 13.500, 13.500, 13.500, 13.500, 13.500, 13.500, 13.500, 13.500, 13.500, 13.500, 13.500, 13.500, 13.500, 13.500, 13.500, },
+{13.200, 13.200, 13.200, 13.200, 13.200, 13.200, 13.200, 13.200, 13.200, 13.200, 13.200, 13.200, 13.200, 13.200, 13.200, 13.200, },
+{13.100, 13.100, 13.100, 13.100, 13.100, 13.100, 13.100, 13.100, 13.100, 13.100, 13.100, 13.100, 13.100, 13.100, 13.100, 13.100, },
+{12.900, 12.900, 12.900, 12.900, 12.900, 12.900, 12.900, 12.900, 12.900, 12.900, 12.900, 12.900, 12.900, 12.900, 12.900, 12.900, },
+{12.600, 12.600, 12.600, 12.600, 12.600, 12.600, 12.600, 12.600, 12.600, 12.600, 12.600, 12.600, 12.600, 12.600, 12.600, 12.600, },
+{12.300, 12.300, 12.300, 12.300, 12.300, 12.300, 12.300, 12.300, 12.300, 12.300, 12.300, 12.300, 12.300, 12.300, 12.300, 12.300, },
+{11.800, 11.800, 11.800, 11.800, 11.800, 11.800, 11.800, 11.800, 11.800, 11.800, 11.800, 11.800, 11.800, 11.800, 11.800, 11.800, },
+{11.300, 11.300, 11.300, 11.300, 11.300, 11.300, 11.300, 11.300, 11.300, 11.300, 11.300, 11.300, 11.300, 11.300, 11.300, 11.300, },
+{11.000, 11.000, 11.000, 11.000, 11.000, 11.000, 11.000, 11.000, 11.000, 11.000, 11.000, 11.000, 11.000, 11.000, 11.000, 11.000, },
+{10.700, 10.700, 10.700, 10.700, 10.700, 10.700, 10.700, 10.700, 10.700, 10.700, 10.700, 10.700, 10.700, 10.700, 10.700, 10.700, },
+};
+ copyTable(config->lambdaTable, hardCodedlambdaTable);
+}
+
+static void cannedtcuSolenoidTable() {
+ static const float hardCodedtcuSolenoidTable[6][10] = {
+{0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, },
+{0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, },
+{0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, },
+{0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, },
+{0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, },
+{0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, },
+};
+ copyTable(config->tcuSolenoidTable, hardCodedtcuSolenoidTable);
+}
+
+static void cannedpostCrankingFactor() {
+ static const float hardCodedpostCrankingFactor[6][6] = {
+{1.200, 1.000, 1.000, 1.000, 1.000, 1.000, },
+{1.200, 1.000, 1.000, 1.000, 1.000, 1.000, },
+{1.200, 1.000, 1.000, 1.000, 1.000, 1.000, },
+{1.200, 1.000, 1.000, 1.000, 1.000, 1.000, },
+{1.200, 1.000, 1.000, 1.000, 1.000, 1.000, },
+{1.200, 1.000, 1.000, 1.000, 1.000, 1.000, },
+};
+ copyTable(engineConfiguration->postCrankingFactor, hardCodedpostCrankingFactor);
+}
+
+```
diff --git a/generated/simulator_tune.msq b/generated/simulator_tune.msq
index 256b170..0a0049f 100644
--- a/generated/simulator_tune.msq
+++ b/generated/simulator_tune.msq
@@ -208,7 +208,7 @@
"NONE"
1000.0
50.0
- 2.0240416E7
+ 2.0240417E7
"Disabled"
"Disabled"
"Disabled"
@@ -223,7 +223,7 @@
0.0
"Disabled"
5.0
- 2.0240416E7
+ 2.0240417E7
3.0
0.0
"NONE"
@@ -4711,7 +4711,7 @@ end
0.0
-
+
diff --git a/generated/simulator_tune_BMW_M52.msq b/generated/simulator_tune_BMW_M52.msq
index 2428d90..17bcb01 100644
--- a/generated/simulator_tune_BMW_M52.msq
+++ b/generated/simulator_tune_BMW_M52.msq
@@ -223,7 +223,7 @@
0.0
"Disabled"
5.0
- 2.0240416E7
+ 2.0240417E7
3.0
0.0
"NONE"
@@ -4711,7 +4711,7 @@ end
0.0
-
+
diff --git a/generated/simulator_tune_HARLEY.msq b/generated/simulator_tune_HARLEY.msq
index 14b4a27..fc20a8e 100644
--- a/generated/simulator_tune_HARLEY.msq
+++ b/generated/simulator_tune_HARLEY.msq
@@ -223,7 +223,7 @@
0.0
"Disabled"
5.0
- 2.0240416E7
+ 2.0240417E7
3.0
50.0
"NONE"
@@ -4787,7 +4787,7 @@ end
0.0
-
+
diff --git a/generated/simulator_tune_HELLEN_121_NISSAN_6_CYL.msq b/generated/simulator_tune_HELLEN_121_NISSAN_6_CYL.msq
index 76b2743..7bb4da9 100644
--- a/generated/simulator_tune_HELLEN_121_NISSAN_6_CYL.msq
+++ b/generated/simulator_tune_HELLEN_121_NISSAN_6_CYL.msq
@@ -223,7 +223,7 @@
0.0
"Disabled"
5.0
- 2.0240416E7
+ 2.0240417E7
3.0
0.0
"NONE"
@@ -4799,7 +4799,7 @@ canRxAdd(IN_35D, onCanRxAc)
0.0
-
+
diff --git a/generated/simulator_tune_HELLEN_154_HYUNDAI_COUPE_BK1.msq b/generated/simulator_tune_HELLEN_154_HYUNDAI_COUPE_BK1.msq
index 758558a..2d81c71 100644
--- a/generated/simulator_tune_HELLEN_154_HYUNDAI_COUPE_BK1.msq
+++ b/generated/simulator_tune_HELLEN_154_HYUNDAI_COUPE_BK1.msq
@@ -223,7 +223,7 @@
0.0
"Disabled"
5.0
- 2.0240416E7
+ 2.0240417E7
3.0
0.0
"NONE"
@@ -4760,7 +4760,7 @@ end
0.0
-
+
diff --git a/generated/simulator_tune_HELLEN_154_HYUNDAI_COUPE_BK2.msq b/generated/simulator_tune_HELLEN_154_HYUNDAI_COUPE_BK2.msq
index b28dd82..a562382 100644
--- a/generated/simulator_tune_HELLEN_154_HYUNDAI_COUPE_BK2.msq
+++ b/generated/simulator_tune_HELLEN_154_HYUNDAI_COUPE_BK2.msq
@@ -223,7 +223,7 @@
0.0
"Disabled"
5.0
- 2.0240416E7
+ 2.0240417E7
3.0
0.0
"NONE"
@@ -4760,7 +4760,7 @@ end
0.0
-
+
diff --git a/generated/simulator_tune_HONDA_K.msq b/generated/simulator_tune_HONDA_K.msq
index 5a6a9af..598e354 100644
--- a/generated/simulator_tune_HONDA_K.msq
+++ b/generated/simulator_tune_HONDA_K.msq
@@ -223,7 +223,7 @@
0.0
"Disabled"
5.0
- 2.0240416E7
+ 2.0240417E7
3.0
0.0
"NONE"
@@ -4713,7 +4713,7 @@ end
0.0
-
+
diff --git a/generated/simulator_tune_HONDA_OBD1.msq b/generated/simulator_tune_HONDA_OBD1.msq
index 663b229..54c4d32 100644
--- a/generated/simulator_tune_HONDA_OBD1.msq
+++ b/generated/simulator_tune_HONDA_OBD1.msq
@@ -223,7 +223,7 @@
0.0
"Disabled"
5.0
- 2.0240416E7
+ 2.0240417E7
3.0
0.0
"NONE"
@@ -4712,7 +4712,7 @@ end
0.0
-
+
diff --git a/generated/simulator_tune_HYUNDAI_PB.msq b/generated/simulator_tune_HYUNDAI_PB.msq
index 7efe4f8..be5c7ed 100644
--- a/generated/simulator_tune_HYUNDAI_PB.msq
+++ b/generated/simulator_tune_HYUNDAI_PB.msq
@@ -223,7 +223,7 @@
0.0
"Disabled"
5.0
- 2.0240416E7
+ 2.0240417E7
3.0
0.0
"PC6"
@@ -4803,7 +4803,7 @@ end
0.0
-
+
diff --git a/generated/simulator_tune_MAVERICK_X3.msq b/generated/simulator_tune_MAVERICK_X3.msq
index cfbb847..6d822be 100644
--- a/generated/simulator_tune_MAVERICK_X3.msq
+++ b/generated/simulator_tune_MAVERICK_X3.msq
@@ -223,7 +223,7 @@
0.0
"Disabled"
5.0
- 2.0240416E7
+ 2.0240417E7
3.0
0.0
"PE15"
@@ -4710,7 +4710,7 @@ end
0.0
-
+
diff --git a/generated/simulator_tune_MAZDA_MIATA_NA6.msq b/generated/simulator_tune_MAZDA_MIATA_NA6.msq
index b528804..f233c6b 100644
--- a/generated/simulator_tune_MAZDA_MIATA_NA6.msq
+++ b/generated/simulator_tune_MAZDA_MIATA_NA6.msq
@@ -223,7 +223,7 @@
0.0
"Disabled"
5.0
- 2.0240416E7
+ 2.0240417E7
3.0
0.0
"NONE"
@@ -4713,7 +4713,7 @@ end
0.0
-
+
diff --git a/generated/simulator_tune_MAZDA_MIATA_NA94.msq b/generated/simulator_tune_MAZDA_MIATA_NA94.msq
index da0f95c..55f2b7b 100644
--- a/generated/simulator_tune_MAZDA_MIATA_NA94.msq
+++ b/generated/simulator_tune_MAZDA_MIATA_NA94.msq
@@ -223,7 +223,7 @@
0.0
"Disabled"
5.0
- 2.0240416E7
+ 2.0240417E7
3.0
0.0
"NONE"
@@ -4713,7 +4713,7 @@ end
0.0
-
+
diff --git a/generated/simulator_tune_MAZDA_MIATA_NA96.msq b/generated/simulator_tune_MAZDA_MIATA_NA96.msq
index 2b6ec7e..d26fbc7 100644
--- a/generated/simulator_tune_MAZDA_MIATA_NA96.msq
+++ b/generated/simulator_tune_MAZDA_MIATA_NA96.msq
@@ -223,7 +223,7 @@
0.0
"Disabled"
5.0
- 2.0240416E7
+ 2.0240417E7
3.0
0.0
"NONE"
@@ -4713,7 +4713,7 @@ end
0.0
-
+
diff --git a/generated/simulator_tune_MAZDA_MIATA_NB1.msq b/generated/simulator_tune_MAZDA_MIATA_NB1.msq
index 7539ecc..90ecdf7 100644
--- a/generated/simulator_tune_MAZDA_MIATA_NB1.msq
+++ b/generated/simulator_tune_MAZDA_MIATA_NB1.msq
@@ -223,7 +223,7 @@
0.0
"Disabled"
5.0
- 2.0240416E7
+ 2.0240417E7
3.0
0.0
"NONE"
@@ -4713,7 +4713,7 @@ end
0.0
-
+
diff --git a/generated/simulator_tune_MAZDA_MIATA_NB2.msq b/generated/simulator_tune_MAZDA_MIATA_NB2.msq
index 2ad14b7..b01d4e7 100644
--- a/generated/simulator_tune_MAZDA_MIATA_NB2.msq
+++ b/generated/simulator_tune_MAZDA_MIATA_NB2.msq
@@ -223,7 +223,7 @@
0.0
"Disabled"
5.0
- 2.0240416E7
+ 2.0240417E7
3.0
0.0
"NONE"
@@ -4714,7 +4714,7 @@ end
0.0
-
+
diff --git a/generated/simulator_tune_MERCEDES_M111.msq b/generated/simulator_tune_MERCEDES_M111.msq
index da0d99d..c2e5a4f 100644
--- a/generated/simulator_tune_MERCEDES_M111.msq
+++ b/generated/simulator_tune_MERCEDES_M111.msq
@@ -223,7 +223,7 @@
0.0
"Disabled"
5.0
- 2.0240416E7
+ 2.0240417E7
3.0
0.0
"PE11"
@@ -4713,7 +4713,7 @@ end
0.0
-
+
diff --git a/generated/simulator_tune_POLARIS_RZR.msq b/generated/simulator_tune_POLARIS_RZR.msq
index cacf698..05abadb 100644
--- a/generated/simulator_tune_POLARIS_RZR.msq
+++ b/generated/simulator_tune_POLARIS_RZR.msq
@@ -223,7 +223,7 @@
0.0
"Disabled"
5.0
- 2.0240416E7
+ 2.0240417E7
3.0
0.0
"PE15"
@@ -4710,7 +4710,7 @@ end
0.0
-
+