Merge remote-tracking branch 'upstream/master' into remove-plain-maf

This commit is contained in:
Matthew Kennedy 2020-07-31 14:56:29 -07:00
commit 978fa20916
145 changed files with 1127 additions and 1021 deletions

View File

@ -1,7 +1,7 @@
#include "global.h"
#include "rusefi_enums.h"
#include "rusefi_hw_enums.h"
// was generated automatically by rusEfi tool from rusefi_hw_enums.h // was generated automatically by rusEfi tool from rusefi_enums.h // by enum2string.jar tool on Sat Jul 04 21:11:33 EDT 2020
// was generated automatically by rusEfi tool from rusefi_hw_enums.h // was generated automatically by rusEfi tool from rusefi_enums.h // by enum2string.jar tool on Wed Jul 29 15:37:24 EDT 2020
// see also gen_config_and_enums.bat
@ -587,16 +587,14 @@ const char *getEngine_load_mode_e(engine_load_mode_e value){
switch(value) {
case Force_4_bytes_size_engine_load_mode:
return "Force_4_bytes_size_engine_load_mode";
case LM_ALPHA_N:
return "LM_ALPHA_N";
case LM_REAL_MAF:
return "LM_REAL_MAF";
case LM_SPEED_DENSITY:
return "LM_SPEED_DENSITY";
case LM_ALPHA_N_2:
return "LM_ALPHA_N_2";
case LM_MOCK:
return "LM_MOCK";
case LM_REAL_MAF:
return "LM_REAL_MAF";
case LM_SPEED_DENSITY:
return "LM_SPEED_DENSITY";
}
return NULL;
}
@ -698,8 +696,10 @@ case MRE_BOARD_NEW_TEST:
return "MRE_BOARD_NEW_TEST";
case MRE_BOARD_OLD_TEST:
return "MRE_BOARD_OLD_TEST";
case MRE_MIATA_NA6:
return "MRE_MIATA_NA6";
case MRE_MIATA_NA6_MAP:
return "MRE_MIATA_NA6_MAP";
case MRE_MIATA_NA6_VAF:
return "MRE_MIATA_NA6_VAF";
case MRE_MIATA_NB2_ETB:
return "MRE_MIATA_NB2_ETB";
case MRE_MIATA_NB2_MAF:
@ -774,16 +774,16 @@ const char *getGppwm_channel_e(gppwm_channel_e value){
switch(value) {
case GPPWM_Clt:
return "GPPWM_Clt";
case GPPWM_FuelLoad:
return "GPPWM_FuelLoad";
case GPPWM_Iat:
return "GPPWM_Iat";
case GPPWM_IgnLoad:
return "GPPWM_IgnLoad";
case GPPWM_Map:
return "GPPWM_Map";
case GPPWM_Tps:
return "GPPWM_Tps";
case GPPWM_FuelLoad:
return "GPPWM_FuelLoad";
case GPPWM_IgnLoad:
return "GPPWM_IgnLoad";
}
return NULL;
}

View File

@ -1,4 +1,4 @@
// this section was generated automatically by rusEfi tool ConfigDefinition.jar based on kinetis_gen_config.bat integration/rusefi_config.txt Tue Jul 28 13:12:25 UTC 2020
// this section was generated automatically by rusEfi tool ConfigDefinition.jar based on kinetis_gen_config.bat integration/rusefi_config.txt Thu Jul 30 19:35:09 UTC 2020
// by class com.rusefi.output.CHeaderConsumer
// begin
#pragma once
@ -3533,4 +3533,4 @@ struct persistent_config_s {
typedef struct persistent_config_s persistent_config_s;
// end
// this section was generated automatically by rusEfi tool ConfigDefinition.jar based on kinetis_gen_config.bat integration/rusefi_config.txt Tue Jul 28 13:12:25 UTC 2020
// this section was generated automatically by rusEfi tool ConfigDefinition.jar based on kinetis_gen_config.bat integration/rusefi_config.txt Thu Jul 30 19:35:09 UTC 2020

View File

@ -332,7 +332,8 @@
#define ET_FRANKENSO_MIATA_NA6_VAF 57
#define ET_FRANKENSO_MIATA_NB2 47
#define ET_MRE_DEFAULTS 60
#define ET_MRE_MIATA_NA6 12
#define ET_MRE_MIATA_NA6_MAP 66
#define ET_MRE_MIATA_NA6_VAF 12
#define ET_MRE_MIATA_NB2_MAF 15
#define ET_MRE_MIATA_NB2_MAP 11
#define ET_MRE_NEW_TEST_BOARD 31
@ -590,6 +591,7 @@
#define GAUGE_NAME_TIME "Time"
#define GAUGE_NAME_TIMING_ADVANCE "timing"
#define GAUGE_NAME_TPS "TPS"
#define GAUGE_NAME_TPS2 "TPS2"
#define GAUGE_NAME_TRG_ERR "trg err"
#define GAUGE_NAME_VBAT "VBatt"
#define GAUGE_NAME_VERSION "firmware"
@ -1075,8 +1077,8 @@
#define showHumanReadableWarning_offset 976
#define showSdCardWarning_offset 76
#define SIGNATURE_BOARD kin
#define SIGNATURE_DATE 2020.07.28
#define SIGNATURE_HASH 2529711359
#define SIGNATURE_DATE 2020.07.30
#define SIGNATURE_HASH 331815573
#define silentTriggerError_offset 1464
#define slowAdcAlpha_offset 2088
#define sparkDwellRpmBins_offset 332
@ -1344,7 +1346,7 @@
#define ts_show_spi true
#define ts_show_trigger_comparator true
#define ts_show_tunerstudio_port true
#define TS_SIGNATURE "rusEFI 2020.07.28.kin.2529711359"
#define TS_SIGNATURE "rusEFI 2020.07.30.kin.331815573"
#define TS_SINGLE_WRITE_COMMAND 'W'
#define tunerStudioSerialSpeed_offset 728
#define twoWireBatchIgnition_offset 1476

View File

@ -125,7 +125,7 @@ void setEngineBMW_M73_microRusEfi(DECLARE_CONFIG_PARAMETER_SIGNATURE) {
CONFIG(crankingTimingAngle) = 15;
// I am too lazy to add MAP sensor
engineConfiguration->fuelAlgorithm = LM_ALPHA_N;
engineConfiguration->fuelAlgorithm = LM_ALPHA_N_2;
// set cranking_fuel 15
engineConfiguration->cranking.baseFuel = 15;

View File

@ -95,7 +95,7 @@ void setCitroenBerlingoTU3JPConfiguration(DECLARE_CONFIG_PARAMETER_SIGNATURE) {
/**
* Algorithm Alpha-N setting
*/
setAlgorithm(LM_ALPHA_N PASS_CONFIG_PARAMETER_SUFFIX);
setAlgorithm(LM_ALPHA_N_2 PASS_CONFIG_PARAMETER_SUFFIX);
setFuelLoadBin(0, 100 PASS_CONFIG_PARAMETER_SUFFIX);
setFuelRpmBin(800, 7000 PASS_CONFIG_PARAMETER_SUFFIX);
setTimingRpmBin(800, 7000 PASS_CONFIG_PARAMETER_SUFFIX);
@ -208,11 +208,11 @@ void setCitroenBerlingoTU3JPConfiguration(DECLARE_CONFIG_PARAMETER_SIGNATURE) {
// engineConfiguration->mafAdcChannel = GPIO_UNASSIGNED;
#if DEFAULT_FUEL_LOAD_COUNT == FUEL_LOAD_COUNT
copyFuelTable(tps_fuel_table, config->fuelTable);
MEMCPY(config->fuelTable, tps_fuel_table);
#endif
#if IGN_LOAD_COUNT == DEFAULT_IGN_LOAD_COUNT
copyTimingTable(default_tps_advance_table, config->ignitionTable);
MEMCPY(config->ignitionTable, default_tps_advance_table);
#endif
engineConfiguration->dizzySparkOutputPin = GPIOE_3;

View File

@ -147,7 +147,7 @@ void setDodgeNeon1995EngineConfiguration(DECLARE_CONFIG_PARAMETER_SIGNATURE) {
engineConfiguration->trigger.type = TT_DODGE_NEON_1995;
engineConfiguration->fuelAlgorithm = LM_ALPHA_N;
engineConfiguration->fuelAlgorithm = LM_ALPHA_N_2;
// engineConfiguration->spi2SckMode = PAL_STM32_OTYPE_OPENDRAIN; // 4
// engineConfiguration->spi2MosiMode = PAL_STM32_OTYPE_OPENDRAIN; // 4
@ -276,15 +276,15 @@ void setDodgeNeonNGCEngineConfiguration(DECLARE_CONFIG_PARAMETER_SIGNATURE) {
* set_whole_fuel_map 12
*/
//setWholeFuelMap(12 PASS_CONFIG_PARAMETER_SUFFIX);
// copyFuelTable(alphaNfuel, config->fuelTable);
// MEMCPY(config->fuelTable, alphaNfuel);
//setWholeTimingTable_d(12 PASS_CONFIG_PARAMETER_SUFFIX);
#if IGN_LOAD_COUNT == DEFAULT_IGN_LOAD_COUNT
copyTimingTable(fromODB, config->ignitionTable);
MEMCPY(config->ignitionTable, fromODB);
#endif
copy2DTable<FSIO_TABLE_8, FSIO_TABLE_8, float, float>(vBattTarget, config->fsioTable1);
copyFuelTable(veDodgeNeon2003Table, config->veTable);
MEMCPY(config->veTable, veDodgeNeon2003Table);
//setMap(config->veTable, 50);
// set cranking_charge_angle 70
@ -299,8 +299,6 @@ void setDodgeNeonNGCEngineConfiguration(DECLARE_CONFIG_PARAMETER_SIGNATURE) {
*/
engineConfiguration->injector.flow = 199;
//engineConfiguration->fuelAlgorithm = LM_ALPHA_N; // I want to start with a simple Alpha-N
setFuelLoadBin(0, 100 PASS_CONFIG_PARAMETER_SUFFIX);
setLinearCurve(config->ignitionLoadBins, 20, 120, 1);

View File

@ -78,10 +78,10 @@ static void setDefaultAspireMaps(DECLARE_CONFIG_PARAMETER_SIGNATURE) {
setTimingRpmBin(800, 7000 PASS_CONFIG_PARAMETER_SUFFIX);
#if DEFAULT_FUEL_LOAD_COUNT == FUEL_LOAD_COUNT
copyFuelTable(default_aspire_fuel_table, config->fuelTable);
MEMCPY(config->fuelTable, default_aspire_fuel_table);
#endif
#if IGN_LOAD_COUNT == DEFAULT_IGN_LOAD_COUNT
copyTimingTable(default_aspire_timing_table, config->ignitionTable);
MEMCPY(config->ignitionTable, default_aspire_timing_table);
#endif
}

View File

@ -108,7 +108,7 @@ void setFordEscortGt(DECLARE_CONFIG_PARAMETER_SIGNATURE) {
copyArray(config->veRpmBins, veRpmBins);
copyFuelTable(racingFestivaVeTable, config->veTable);
MEMCPY(config->veTable, racingFestivaVeTable);
// engineConfiguration->triggerInputPins[0] = GPIOC_6; // 2G YEL/BLU
// engineConfiguration->triggerInputPins[1] = GPIOA_5; // 2E White CKP
@ -279,7 +279,7 @@ void setFordEscortGt(DECLARE_CONFIG_PARAMETER_SIGNATURE) {
copyArray(config->ignitionRpmBins, ignitionRpmBins);
#if IGN_LOAD_COUNT == DEFAULT_IGN_LOAD_COUNT
copyTimingTable(racingFestivaIgnitionTable, config->ignitionTable);
MEMCPY(config->ignitionTable, racingFestivaIgnitionTable);
#endif
engineConfiguration->tpsAccelEnrichmentThreshold = 40;

View File

@ -56,17 +56,16 @@ static void setDefaultCustomMaps(DECLARE_CONFIG_PARAMETER_SIGNATURE) {
setTimingLoadBin(0,100 PASS_CONFIG_PARAMETER_SUFFIX);
setTimingRpmBin(0,7000 PASS_CONFIG_PARAMETER_SUFFIX);
copyFuelTable(default_custom_fuel_table, config->fuelTable);
copyFuelTable(default_custom_fuel_table, config->veTable);
MEMCPY(config->fuelTable, default_custom_fuel_table);
#if IGN_LOAD_COUNT == DEFAULT_IGN_LOAD_COUNT
copyTimingTable(default_custom_timing_table, config->ignitionTable);
MEMCPY(config->ignitionTable, default_custom_timing_table);
#endif
}
void setHonda600(DECLARE_CONFIG_PARAMETER_SIGNATURE) {
setDefaultFrankensoConfiguration(PASS_CONFIG_PARAMETER_SIGNATURE);
engineConfiguration->trigger.type = TT_HONDA_CBR_600_CUSTOM;
engineConfiguration->fuelAlgorithm = LM_ALPHA_N;
engineConfiguration->fuelAlgorithm = LM_ALPHA_N_2;
// upside down wiring
engineConfiguration->triggerInputPins[0] = GPIOA_5;
@ -150,7 +149,7 @@ void setHonda600(DECLARE_CONFIG_PARAMETER_SIGNATURE) {
engineConfiguration->injectionPins[3] = GPIOB_8; // #4
setDefaultCustomMaps(PASS_CONFIG_PARAMETER_SIGNATURE);
setAlgorithm(LM_ALPHA_N PASS_CONFIG_PARAMETER_SUFFIX);
setAlgorithm(LM_ALPHA_N_2 PASS_CONFIG_PARAMETER_SUFFIX);
engineConfiguration->injectionPins[4] = GPIO_UNASSIGNED;
engineConfiguration->injectionPins[5] = GPIO_UNASSIGNED;

View File

@ -243,11 +243,11 @@ static void setMiata1994_common(DECLARE_CONFIG_PARAMETER_SIGNATURE) {
engineConfiguration->crankingChargeAngle = 70;
#if DEFAULT_FUEL_LOAD_COUNT == FUEL_LOAD_COUNT
copyFuelTable(miataNA8_maf_fuel_table, config->fuelTable);
MEMCPY(config->fuelTable, miataNA8_maf_fuel_table);
#endif
#if IGN_LOAD_COUNT == DEFAULT_IGN_LOAD_COUNT
copyTimingTable(miataNA8_maf_advance_table, config->ignitionTable);
MEMCPY(config->ignitionTable, miataNA8_maf_advance_table);
#endif
// engineConfiguration->triggerSimulatorPins[0] = GPIOD_2; // 2G - YEL/BLU
@ -335,10 +335,10 @@ void setMiata1996(DECLARE_CONFIG_PARAMETER_SIGNATURE) {
engineConfiguration->specs.displacement = 1.839;
#if DEFAULT_FUEL_LOAD_COUNT == FUEL_LOAD_COUNT
copyFuelTable(miataNA8_maf_fuel_table, config->fuelTable);
MEMCPY(config->fuelTable, miataNA8_maf_fuel_table);
#endif
#if IGN_LOAD_COUNT == DEFAULT_IGN_LOAD_COUNT
copyTimingTable(miataNA8_maf_advance_table, config->ignitionTable);
MEMCPY(config->ignitionTable, miataNA8_maf_advance_table);
#endif
// upside down

View File

@ -19,8 +19,65 @@
EXTERN_CONFIG;
// todo:
// extern const float ve16RpmBins[FUEL_RPM_COUNT];
// todo: use these defaults wider? make them global defaults maybe?
static const float hardCodedcrankingCycleBins[8] = {1.0, 16.0, 35.0, 54.0, 76.0, 102.0, 132.0, 169.0};
static const float hardCodedcrankingCycleCoef[8] = {1.9800034, 1.800003, 1.5999985, 1.4000015, 1.2300034, 1.1200027, 1.050003, 1.0199966};
/* Generated by TS2C on Thu Jul 30 00:03:20 EDT 2020*/
static void setCrankingCycleBins(DECLARE_CONFIG_PARAMETER_SIGNATURE) {
MEMCPY(config->crankingCycleBins, hardCodedcrankingCycleBins);
MEMCPY(config->crankingCycleCoef, hardCodedcrankingCycleCoef);
}
// todo: use these defaults wider? make them global defaults maybe?
static const float hardCodedcrankingFuelBins[8] = {-20.0, -10.0, 3.6799927, 22.77002, 34.049805, 49.95996, 65.0, 90.0};
static const float hardCodedcrankingFuelCoef[8] = {2.7999878, 2.2000122, 1.6900024, 1.2900009, 1.199997, 1.050003, 1.0, 1.0};
/* Generated by TS2C on Thu Jul 30 00:03:20 EDT 2020*/
static void setCrankingFuelBins(DECLARE_CONFIG_PARAMETER_SIGNATURE) {
MEMCPY(config->crankingFuelBins, hardCodedcrankingFuelBins);
MEMCPY(config->crankingFuelCoef, hardCodedcrankingFuelCoef);
}
static const float hardCodedmafDecodingBins[256] = {0.099999905, 0.19999981, 0.29999924, 0.39999962, 0.5, 0.5999985, 0.70000076, 0.79999924, 0.9000015, 1.0, 1.0999985, 1.199997, 1.300003, 1.4000015, 1.5, 1.5999985, 1.699997, 1.800003, 1.9000015, 2.0, 2.100006, 2.2000122, 2.2999878, 2.399994, 2.5, 2.600006, 2.7000122, 2.7999878, 2.899994, 3.0, 3.100006, 3.2000122, 3.2999878, 3.399994, 3.5, 3.600006, 3.7000122, 3.7999878, 3.899994, 4.0, 4.0999756, 4.200012, 4.299988, 4.299988, 4.299988, 4.299988, 4.299988, 4.299988, 4.299988, 4.299988, 4.299988, 4.299988, 4.299988, 4.299988, 4.299988, 4.299988, 4.299988, 4.299988, 4.299988, 4.299988, 4.299988, 4.299988, 4.299988, 4.299988, 4.299988, 4.299988, 4.299988, 4.299988, 4.299988, 4.299988, 4.299988, 4.299988, 4.299988, 4.299988, 4.299988, 4.299988, 4.299988, 4.299988, 4.299988, 4.299988, 4.299988, 4.299988, 4.299988, 4.299988, 4.299988, 4.299988, 4.299988, 4.299988, 4.299988, 4.299988, 4.299988, 4.299988, 4.299988, 4.299988, 4.299988, 4.299988, 4.299988, 4.299988, 4.299988, 4.299988, 4.299988, 4.299988, 4.299988, 4.299988, 4.299988, 4.299988, 4.299988, 4.299988, 4.299988, 4.299988, 4.299988, 4.299988, 4.299988, 4.299988, 4.299988, 4.299988, 4.299988, 4.299988, 4.299988, 4.299988, 4.299988, 4.299988, 4.299988, 4.299988, 4.299988, 4.299988, 4.299988, 4.299988, 4.299988, 4.299988, 4.299988, 4.299988, 4.299988, 4.299988, 4.299988, 4.299988, 4.299988, 4.299988, 4.299988, 4.299988, 4.299988, 4.299988, 4.299988, 4.299988, 4.299988, 4.299988, 4.299988, 4.299988, 4.299988, 4.299988, 4.299988, 4.299988, 4.299988, 4.299988, 4.299988, 4.299988, 4.299988, 4.299988, 4.299988, 4.299988, 4.299988, 4.299988, 4.299988, 4.299988, 4.299988, 4.299988, 4.299988, 4.299988, 4.299988, 4.299988, 4.299988, 4.299988, 4.299988, 4.299988, 4.299988, 4.299988, 4.299988, 4.299988, 4.299988, 4.299988, 4.299988, 4.299988, 4.299988, 4.299988, 4.299988, 4.299988, 4.299988, 4.299988, 4.299988, 4.299988, 4.299988, 4.299988, 4.299988, 4.299988, 4.299988, 4.299988, 4.299988, 4.299988, 4.299988, 4.299988, 4.299988, 4.299988, 4.299988, 4.299988, 4.299988, 4.299988, 4.299988, 4.299988, 4.299988, 4.299988, 4.299988, 4.299988, 4.299988, 4.299988, 4.299988, 4.299988, 4.299988, 4.299988, 4.299988, 4.299988, 4.299988, 4.299988, 4.299988, 4.299988, 4.299988, 4.299988, 4.299988, 4.299988, 4.299988, 4.299988, 4.299988, 4.299988, 4.299988, 4.299988, 4.299988, 4.299988, 4.299988, 4.299988, 4.299988, 4.299988, 4.299988, 4.299988, 4.299988, 4.299988, 4.299988, 4.299988, 4.299988, 4.299988, 4.299988, 4.299988, 4.299988, 4.299988, 4.299988, 4.299988, 4.299988, 4.299988};
static const float hardCodedmafDecoding[256] = {570.0, 437.0, 351.5, 293.55078, 237.0, 186.0, 145.0, 116.0, 96.0, 78.84961, 65.549805, 56.049805, 48.0, 40.0, 33.25, 29.449951, 25.649902, 22.800049, 20.899902, 19.0, 17.100098, 16.149902, 13.775024, 12.824951, 11.400024, 10.449951, 9.5, 8.550049, 8.454956, 8.359985, 8.300049, 8.199951, 7.5999756, 7.125, 7.125, 7.125, 6.6500244, 6.6500244, 6.6500244, 6.6500244, 6.6500244, 6.6500244, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0};
/* Generated by TS2C on Fri Jul 31 14:02:18 EDT 2020*/
static void setMafDecodingBins(DECLARE_CONFIG_PARAMETER_SIGNATURE) {
MEMCPY(config->mafDecodingBins, hardCodedmafDecodingBins);
MEMCPY(config->mafDecoding, hardCodedmafDecoding);
}
static const float hardCodediacCoastingBins[16] = {-40.0, -30.0, -20.0, -10.0, 0.0, 10.0, 20.0, 30.0, 40.0, 50.0, 60.0, 70.0, 80.0, 90.0, 100.0, 110.0};
static const float hardCodediacCoasting[16] = {-40.0, -30.0, -20.0, -10.0, 0.0, 10.0, 20.0, 30.0, 40.0, 50.0, 60.0, 70.0, 80.0, 90.0, 100.0, 110.0};
/* Generated by TS2C on Fri Jul 31 14:02:18 EDT 2020*/
static void setIacCoastingBins(DECLARE_CONFIG_PARAMETER_SIGNATURE) {
MEMCPY(engineConfiguration->iacCoastingBins, hardCodediacCoastingBins);
MEMCPY(engineConfiguration->iacCoasting, hardCodediacCoasting);
}
static const float hardCodedcltIdleCorrBins[16] = {-40.0, -30.0, -20.0, -10.0, 0.0, 9.439941, 19.120117, 30.810059, 42.509766, 54.529785, 64.21973, 71.90039, 80.0, 90.0, 100.0, 110.0};
static const float hardCodedcltIdleCorr[16] = {-40.0, -30.0, -20.0, -10.0, 0.0, 9.439941, 19.120117, 30.810059, 42.509766, 54.529785, 64.21973, 71.90039, 80.0, 90.0, 100.0, 110.0};
/* Generated by TS2C on Fri Jul 31 14:02:18 EDT 2020*/
static void setCltIdleCorrBins(DECLARE_CONFIG_PARAMETER_SIGNATURE) {
MEMCPY(config->cltIdleCorrBins, hardCodedcltIdleCorrBins);
MEMCPY(config->cltIdleCorr, hardCodedcltIdleCorr);
}
static const float hardCodedcltIdleRpmBins[16] = {-40.0, -30.0, -20.0, 0.0, 10.0, 20.0, 30.0, 40.0, 60.0, 70.0, 80.0, 90.0, 100.0, 120.0, 130.0, 140.0};
static const float hardCodedcltIdleRpm[16] = {-40.0, -30.0, -20.0, 0.0, 10.0, 20.0, 30.0, 40.0, 60.0, 70.0, 80.0, 90.0, 100.0, 120.0, 130.0, 140.0};
/* Generated by TS2C on Fri Jul 31 14:02:18 EDT 2020*/
static void setCltIdleRpmBins(DECLARE_CONFIG_PARAMETER_SIGNATURE) {
MEMCPY(engineConfiguration->cltIdleRpmBins, hardCodedcltIdleRpmBins);
MEMCPY(engineConfiguration->cltIdleRpm, hardCodedcltIdleRpm);
}
static const float ve16RpmBins[FUEL_RPM_COUNT] = {
@ -104,6 +161,7 @@ static void miataNAcommonEngineSettings(DECLARE_CONFIG_PARAMETER_SIGNATURE) {
engineConfiguration->useOnlyRisingEdgeForTrigger = false;
engineConfiguration->specs.cylindersCount = 4;
engineConfiguration->specs.firingOrder = FO_1_3_4_2;
engineConfiguration->compressionRatio = 9.1;
engineConfiguration->debugMode = DBG_TRIGGER_COUNTERS;
@ -111,9 +169,17 @@ static void miataNAcommonEngineSettings(DECLARE_CONFIG_PARAMETER_SIGNATURE) {
setCommonNTCSensor(&engineConfiguration->iat, 2700);
#if IGN_LOAD_COUNT == DEFAULT_IGN_LOAD_COUNT
copyTimingTable(mapBased16IgnitionTable, config->ignitionTable);
MEMCPY(config->ignitionTable, mapBased16IgnitionTable);
#endif
setCrankingCycleBins(PASS_CONFIG_PARAMETER_SIGNATURE);
setCrankingFuelBins(PASS_CONFIG_PARAMETER_SIGNATURE);
setCltIdleCorrBins(PASS_CONFIG_PARAMETER_SIGNATURE);
setCltIdleRpmBins(PASS_CONFIG_PARAMETER_SIGNATURE);
setIacCoastingBins(PASS_CONFIG_PARAMETER_SIGNATURE);
setMafDecodingBins(PASS_CONFIG_PARAMETER_SIGNATURE);
engineConfiguration->idle.solenoidFrequency = 160;
engineConfiguration->ignitionMode = IM_WASTED_SPARK;
}
@ -133,10 +199,10 @@ void miataNAcommon(DECLARE_CONFIG_PARAMETER_SIGNATURE) {
static void setMiataNA6_settings(DECLARE_CONFIG_PARAMETER_SIGNATURE) {
engineConfiguration->isFasterEngineSpinUpEnabled = true;
memcpy(config->veRpmBins, ve16RpmBins, sizeof(ve16RpmBins));
memcpy(config->veLoadBins, ve16LoadBins, sizeof(ve16LoadBins));
MEMCPY(config->veRpmBins, ve16RpmBins);
MEMCPY(config->veLoadBins, ve16LoadBins);
#if DEFAULT_FUEL_LOAD_COUNT == FUEL_LOAD_COUNT
copyFuelTable(mapBased16VeTable, config->veTable);
MEMCPY(config->veTable, mapBased16VeTable);
#endif
setWholeFuelMap(6 PASS_CONFIG_PARAMETER_SUFFIX);
@ -193,7 +259,7 @@ static void setMiataNA6_settings(DECLARE_CONFIG_PARAMETER_SIGNATURE) {
engineConfiguration->tpsMax = 656; // convert 12to10 bit (ADC/4)
engineConfiguration->injectionMode = IM_BATCH;
copyFuelTable(miataNA6_maf_fuel_table, config->fuelTable);
MEMCPY(config->fuelTable, miataNA6_maf_fuel_table);
}
/**
@ -304,6 +370,9 @@ void setMiataNA6_VAF_Frankenso(DECLARE_CONFIG_PARAMETER_SIGNATURE) {
* set engine_type 12
*/
void setMiataNA6_VAF_MRE(DECLARE_CONFIG_PARAMETER_SIGNATURE) {
setMiataNA6_settings(PASS_CONFIG_PARAMETER_SIGNATURE);
miataNAcommonEngineSettings(PASS_CONFIG_PARAMETER_SIGNATURE);
#if (BOARD_TLE8888_COUNT > 0)
// idle.solenoidPin output is inherited from boards/microrusefi/board_configuration.cpp
// CLT: "18 - AN temp 1"
@ -346,7 +415,93 @@ void setMiataNA6_VAF_MRE(DECLARE_CONFIG_PARAMETER_SIGNATURE) {
engineConfiguration->isHip9011Enabled = false;
engineConfiguration->isSdCardEnabled = true;
setMiataNA6_settings(PASS_CONFIG_PARAMETER_SIGNATURE);
miataNAcommonEngineSettings(PASS_CONFIG_PARAMETER_SIGNATURE);
engineConfiguration->fuelAlgorithm = LM_PLAIN_MAF;
#endif /* BOARD_TLE8888_COUNT */
}
void setMiataNA6_MAP_MRE(DECLARE_CONFIG_PARAMETER_SIGNATURE) {
setMiataNA6_settings(PASS_CONFIG_PARAMETER_SIGNATURE);
miataNAcommonEngineSettings(PASS_CONFIG_PARAMETER_SIGNATURE);
engineConfiguration->triggerInputPins[0] = GPIOA_5;
engineConfiguration->triggerInputPins[1] = GPIOC_6;
engineConfiguration->camInputs[0] = GPIO_UNASSIGNED;
engineConfiguration->silentTriggerError = true;
engineConfiguration->fuelPumpPin = GPIO_UNASSIGNED;
engineConfiguration->useIacTableForCoasting = true;
engineConfiguration->idlePidDeactivationTpsThreshold = 90;
engineConfiguration->isVerboseIAC = true;
engineConfiguration->idleRpmPid.pFactor = 0.01;
engineConfiguration->idleRpmPid.iFactor = 0.02;
engineConfiguration->idle_antiwindupFreq = 0.1;
engineConfiguration->idle_derivativeFilterLoss = 0.1;
engineConfiguration->idleRpmPid.dFactor = 0.002;
engineConfiguration->idleRpmPid.offset = 37;
engineConfiguration->acIdleExtraOffset = 14;
engineConfiguration->idleRpmPid.minValue = 30;
engineConfiguration->acIdleExtraMin = 14;
engineConfiguration->idleRpmPid.minValue = 70;
engineConfiguration->idleRpmPid.periodMs = 40;
engineConfiguration->idlerpmpid_iTermMin = -6;
engineConfiguration->idlerpmpid_iTermMax = 30;
engineConfiguration->pidExtraForLowRpm = 25;
engineConfiguration->idlePidRpmDeadZone = 25;
engineConfiguration->idlePidRpmUpperLimit = 1000;
engineConfiguration->useFSIO12ForIdleOffset = true;
setFsioExpression(QUOTE(MAGIC_OFFSET_FOR_IDLE_OFFSET), "ac_on_switch 0 cfg_acIdleExtraOffset if" PASS_CONFIG_PARAMETER_SUFFIX);
engineConfiguration->useFSIO13ForIdleMinValue = true;
setFsioExpression(QUOTE(MAGIC_OFFSET_FOR_IDLE_MIN_VALUE), "ac_on_switch 0 cfg_acIdleExtraMin if" PASS_CONFIG_PARAMETER_SUFFIX);
engineConfiguration->useIdleTimingPidControl = true;
engineConfiguration->idleTimingPid.pFactor = 0.05;
engineConfiguration->idleTimingPid.iFactor = 0.0;
engineConfiguration->idleTimingPid.dFactor = 0.0;
engineConfiguration->idleTimingPid.minValue = -13;
engineConfiguration->idleTimingPid.maxValue = 13;
engineConfiguration->idleTimingPid.periodMs = 8;
engineConfiguration->idleTimingPidWorkZone = 150;
engineConfiguration->idlePidFalloffDeltaRpm = 50;
engineConfiguration->idleTimingPidDeadZone = 10;
// EFI_ADC_3: "22 - AN temp 4"
engineConfiguration->acSwitchAdc = EFI_ADC_3;
engineConfiguration->warningLedPin = GPIOD_13;
engineConfiguration->triggerErrorPin = GPIOE_1;
// todo: ask Stefan to clarify this
engineConfiguration->tps1_1AdcChannel = EFI_ADC_6; // "26 - AN volt 2"
engineConfiguration->tpsMin = 0;
engineConfiguration->tpsMax = 982;
engineConfiguration->map.sensor.hwChannel = EFI_ADC_13; // "20 - AN volt 5"
engineConfiguration->mafAdcChannel = EFI_ADC_10;// "27 - AN volt 1"
#if (BOARD_TLE8888_COUNT > 0)
// GPIOG_1: "Clutch Switch"
engineConfiguration->clutchDownPin = GPIOG_1;
engineConfiguration->fanPin = GPIO_UNASSIGNED;
// TLE8888_PIN_23: "33 - GP Out 3"
engineConfiguration->malfunctionIndicatorPin = TLE8888_PIN_23;
// GPIOA_15: "AUX J2 PA15"
engineConfiguration->fsioOutputPins[0] = GPIOA_15;
// TLE8888_PIN_24: "43 - GP Out 4"
engineConfiguration->fsioOutputPins[1] = TLE8888_PIN_24;
#endif /* BOARD_TLE8888_COUNT */
}

View File

@ -20,4 +20,5 @@ void setMiataNA6_MAP_Frankenso(DECLARE_CONFIG_PARAMETER_SIGNATURE);
void miataNAcommon(DECLARE_CONFIG_PARAMETER_SIGNATURE);
void setMiataNA6_VAF_MRE(DECLARE_CONFIG_PARAMETER_SIGNATURE);
void setMiataNA6_MAP_MRE(DECLARE_CONFIG_PARAMETER_SIGNATURE);

View File

@ -112,15 +112,15 @@ void setMazdaMiata2003EngineConfigurationNaFuelRail(DECLARE_CONFIG_PARAMETER_SIG
config->fsioTable1[loadIndex][rpmIndex] = fsio_table_dyno[loadIndex][rpmIndex];
}
}
memcpy(config->veRpmBins, mazda_miata_nb2_RpmBins, sizeof(mazda_miata_nb2_RpmBins));
memcpy(config->veLoadBins, mazda_miata_nb2_LoadBins, sizeof(mazda_miata_nb2_LoadBins));
copyFuelTable(mapBased18vvtVeTable_NA_fuel_rail, config->veTable);
MEMCPY(config->veRpmBins, mazda_miata_nb2_RpmBins);
MEMCPY(config->veLoadBins, mazda_miata_nb2_LoadBins);
MEMCPY(config->veTable, mapBased18vvtVeTable_NA_fuel_rail);
engineConfiguration->vvtOffset = 83; // 2002 green car value
memcpy(config->afrRpmBins, mazda_miata_nb2_targetAfrRpmBins, sizeof(mazda_miata_nb2_targetAfrRpmBins));
memcpy(config->afrLoadBins, mazda_miata_nb2_targetAfrLoadBins, sizeof(mazda_miata_nb2_targetAfrLoadBins));
copyTargetAfrTable(target_AFR_hunchback, config->afrTable);
MEMCPY(config->afrRpmBins, mazda_miata_nb2_targetAfrRpmBins);
MEMCPY(config->afrLoadBins, mazda_miata_nb2_targetAfrLoadBins);
MEMCPY(config->afrTable, target_AFR_hunchback);
engineConfiguration->ignitionPins[2] = GPIOC_7;

View File

@ -335,14 +335,14 @@ static void setMazdaMiataEngineNB2Defaults(DECLARE_CONFIG_PARAMETER_SIGNATURE) {
engineConfiguration->vvtMode = MIATA_NB2;
engineConfiguration->vvtOffset = 98; // 2003 red car value
memcpy(config->veRpmBins, mazda_miata_nb2_RpmBins, sizeof(mazda_miata_nb2_RpmBins));
memcpy(config->veLoadBins, mazda_miata_nb2_LoadBins, sizeof(mazda_miata_nb2_LoadBins));
copyFuelTable(mapBased18vvtVeTable_NB_fuel_rail, config->veTable);
MEMCPY(config->veRpmBins, mazda_miata_nb2_RpmBins);
MEMCPY(config->veLoadBins, mazda_miata_nb2_LoadBins);
MEMCPY(config->veTable, mapBased18vvtVeTable_NB_fuel_rail);
memcpy(config->ignitionRpmBins, ignition18vvtRpmBins, sizeof(ignition18vvtRpmBins));
memcpy(config->ignitionLoadBins, ignition18vvtLoadBins, sizeof(ignition18vvtLoadBins));
MEMCPY(config->ignitionRpmBins, ignition18vvtRpmBins);
MEMCPY(config->ignitionLoadBins, ignition18vvtLoadBins);
#if IGN_LOAD_COUNT == DEFAULT_IGN_LOAD_COUNT
copyTimingTable(mapBased18vvtTimingTable, config->ignitionTable);
MEMCPY(config->ignitionTable, mapBased18vvtTimingTable);
#endif
setMazdaNB2VVTSettings(PASS_CONFIG_PARAMETER_SIGNATURE);

View File

@ -94,9 +94,11 @@ void vag_18_Turbo(DECLARE_CONFIG_PARAMETER_SIGNATURE) {
engineConfiguration->is_enabled_spi_1 = true;
engineConfiguration->is_enabled_spi_3 = false;
#if EFI_CJ125
cj125defaultPinout(PASS_CONFIG_PARAMETER_SIGNATURE);
engineConfiguration->cj125ur = EFI_ADC_11; // PC3
engineConfiguration->cj125CsPin = GPIOB_11;
#endif
engineConfiguration->debugMode = DBG_CJ125;

View File

@ -17,6 +17,7 @@ static const LogField fields[] = {
{tsOutputChannels.coolantTemperature, GAUGE_NAME_CLT, "C", 1},
{tsOutputChannels.intakeAirTemperature, GAUGE_NAME_IAT, "C", 1},
{tsOutputChannels.throttlePosition, GAUGE_NAME_TPS, "%", 2},
{tsOutputChannels.throttle2Position, GAUGE_NAME_TPS2, "%", 2},
{tsOutputChannels.pedalPosition, GAUGE_NAME_THROTTLE_PEDAL, "%", 2},
{tsOutputChannels.manifoldAirPressure, GAUGE_NAME_MAP, "kPa", 1},
{tsOutputChannels.airFuelRatio, GAUGE_NAME_AFR, "afr", 2},

View File

@ -323,7 +323,7 @@ expected<percent_t> EtbController::getClosedLoopAutotune(percent_t actualThrottl
return autotuneAmplitude * (isPositive ? -1 : 1);
}
expected<percent_t> EtbController::getClosedLoop(percent_t target, percent_t actualThrottlePosition) {
expected<percent_t> EtbController::getClosedLoop(percent_t target, percent_t observation) {
if (m_shouldResetPid) {
m_pid.reset();
m_shouldResetPid = false;
@ -333,16 +333,16 @@ expected<percent_t> EtbController::getClosedLoop(percent_t target, percent_t act
if (m_myIndex == 0) {
#if EFI_TUNER_STUDIO
// Error is positive if the throttle needs to open further
tsOutputChannels.etb1Error = target - actualThrottlePosition;
tsOutputChannels.etb1Error = target - observation;
#endif /* EFI_TUNER_STUDIO */
}
// Only allow autotune with stopped engine
if (GET_RPM() == 0 && engine->etbAutoTune) {
return getClosedLoopAutotune(actualThrottlePosition);
return getClosedLoopAutotune(observation);
} else {
// Normal case - use PID to compute closed loop part
return m_pid.getOutput(target, actualThrottlePosition, 1.0f / ETB_LOOP_FREQUENCY);
return m_pid.getOutput(target, observation, 1.0f / ETB_LOOP_FREQUENCY);
}
}

View File

@ -55,7 +55,7 @@ public:
expected<percent_t> getSetpoint() const override;
expected<percent_t> getOpenLoop(percent_t target) const override;
expected<percent_t> getClosedLoop(percent_t setpoint, percent_t target) override;
expected<percent_t> getClosedLoop(percent_t setpoint, percent_t observation) override;
expected<percent_t> getClosedLoopAutotune(percent_t actualThrottlePosition);
void setOutput(expected<percent_t> outputValue) override;

View File

@ -54,11 +54,11 @@ private:
/**
* Used for Fractional TPS enrichment.
*/
floatms_t accumulatedValue;
floatms_t maxExtraPerCycle;
floatms_t maxExtraPerPeriod;
floatms_t maxInjectedPerPeriod;
int cycleCnt;
floatms_t accumulatedValue = 0;
floatms_t maxExtraPerCycle = 0;
floatms_t maxExtraPerPeriod = 0;
floatms_t maxInjectedPerPeriod = 0;
int cycleCnt = 0;
};
/**

View File

@ -278,8 +278,8 @@ size_t getMultiSparkCount(int rpm DECLARE_ENGINE_PARAMETER_SUFFIX) {
void setDefaultIatTimingCorrection(DECLARE_ENGINE_PARAMETER_SIGNATURE) {
setLinearCurve(config->ignitionIatCorrLoadBins, /*from*/CLT_CURVE_RANGE_FROM, 110, 1);
#if IGN_LOAD_COUNT == DEFAULT_IGN_LOAD_COUNT
memcpy(config->ignitionIatCorrRpmBins, iatTimingRpmBins, sizeof(iatTimingRpmBins));
copyTimingTable(defaultIatTiming, config->ignitionIatCorrTable);
MEMCPY(config->ignitionIatCorrRpmBins, iatTimingRpmBins);
MEMCPY(config->ignitionIatCorrTable, defaultIatTiming);
#else
setLinearCurve(config->ignitionIatCorrLoadBins, /*from*/0, 6000, 1);
#endif /* IGN_LOAD_COUNT == DEFAULT_IGN_LOAD_COUNT */

View File

@ -12,7 +12,7 @@ struct AirmassResult {
struct AirmassModelBase {
DECLARE_ENGINE_PTR;
AirmassModelBase(const ValueProvider3D& veTable);
explicit AirmassModelBase(const ValueProvider3D& veTable);
virtual AirmassResult getAirmass(int rpm) = 0;
protected:

View File

@ -4,7 +4,7 @@
class AlphaNAirmass : public SpeedDensityBase {
public:
AlphaNAirmass(const ValueProvider3D& veTable) : SpeedDensityBase(veTable) {}
explicit AlphaNAirmass(const ValueProvider3D& veTable) : SpeedDensityBase(veTable) {}
AirmassResult getAirmass(int rpm) override;
};

View File

@ -4,7 +4,7 @@
class MafAirmass final : public AirmassModelBase {
public:
MafAirmass(const ValueProvider3D& veTable) : AirmassModelBase(veTable) {}
explicit MafAirmass(const ValueProvider3D& veTable) : AirmassModelBase(veTable) {}
AirmassResult getAirmass(int rpm) override;

View File

@ -4,6 +4,6 @@
class SpeedDensityAirmass : public SpeedDensityBase {
public:
SpeedDensityAirmass(const ValueProvider3D& veTable) : SpeedDensityBase(veTable) {}
explicit SpeedDensityAirmass(const ValueProvider3D& veTable) : SpeedDensityBase(veTable) {}
AirmassResult getAirmass(int rpm) override;
};

View File

@ -15,7 +15,7 @@ float idealGasLaw(float volume, float pressure, float temperature);
class SpeedDensityBase : public AirmassModelBase {
protected:
SpeedDensityBase(const ValueProvider3D& veTable) : AirmassModelBase(veTable) {}
explicit SpeedDensityBase(const ValueProvider3D& veTable) : AirmassModelBase(veTable) {}
public:
static float getAirmassImpl(float ve, float manifoldPressure, float temperature DECLARE_ENGINE_PARAMETER_SUFFIX);

View File

@ -1,7 +1,7 @@
#include "global.h"
#include "rusefi_enums.h"
#include "rusefi_hw_enums.h"
// was generated automatically by rusEfi tool from rusefi_hw_enums.h // was generated automatically by rusEfi tool from rusefi_enums.h // by enum2string.jar tool on Sat Jul 04 21:11:32 EDT 2020
// was generated automatically by rusEfi tool from rusefi_hw_enums.h // was generated automatically by rusEfi tool from rusefi_enums.h // by enum2string.jar tool on Wed Jul 29 15:37:22 EDT 2020
// see also gen_config_and_enums.bat
@ -725,16 +725,14 @@ const char *getEngine_load_mode_e(engine_load_mode_e value){
switch(value) {
case Force_4_bytes_size_engine_load_mode:
return "Force_4_bytes_size_engine_load_mode";
case LM_ALPHA_N:
return "LM_ALPHA_N";
case LM_REAL_MAF:
return "LM_REAL_MAF";
case LM_SPEED_DENSITY:
return "LM_SPEED_DENSITY";
case LM_ALPHA_N_2:
return "LM_ALPHA_N_2";
case LM_MOCK:
return "LM_MOCK";
case LM_REAL_MAF:
return "LM_REAL_MAF";
case LM_SPEED_DENSITY:
return "LM_SPEED_DENSITY";
}
return NULL;
}
@ -836,8 +834,10 @@ case MRE_BOARD_NEW_TEST:
return "MRE_BOARD_NEW_TEST";
case MRE_BOARD_OLD_TEST:
return "MRE_BOARD_OLD_TEST";
case MRE_MIATA_NA6:
return "MRE_MIATA_NA6";
case MRE_MIATA_NA6_MAP:
return "MRE_MIATA_NA6_MAP";
case MRE_MIATA_NA6_VAF:
return "MRE_MIATA_NA6_VAF";
case MRE_MIATA_NB2_ETB:
return "MRE_MIATA_NB2_ETB";
case MRE_MIATA_NB2_MAF:
@ -912,16 +912,16 @@ const char *getGppwm_channel_e(gppwm_channel_e value){
switch(value) {
case GPPWM_Clt:
return "GPPWM_Clt";
case GPPWM_FuelLoad:
return "GPPWM_FuelLoad";
case GPPWM_Iat:
return "GPPWM_Iat";
case GPPWM_IgnLoad:
return "GPPWM_IgnLoad";
case GPPWM_Map:
return "GPPWM_Map";
case GPPWM_Tps:
return "GPPWM_Tps";
case GPPWM_FuelLoad:
return "GPPWM_FuelLoad";
case GPPWM_IgnLoad:
return "GPPWM_IgnLoad";
}
return NULL;
}

View File

@ -1257,9 +1257,12 @@ void resetConfigurationExt(Logging * logger, configuration_callback_t boardCallb
case BMW_M73_PROTEUS:
setEngineBMW_M73_Proteus(PASS_CONFIG_PARAMETER_SIGNATURE);
break;
case MRE_MIATA_NA6:
case MRE_MIATA_NA6_VAF:
setMiataNA6_VAF_MRE(PASS_CONFIG_PARAMETER_SIGNATURE);
break;
case MRE_MIATA_NA6_MAP:
setMiataNA6_MAP_MRE(PASS_CONFIG_PARAMETER_SIGNATURE);
break;
case MRE_MIATA_NB2_MAP:
setMiataNB2_MRE_MAP(PASS_CONFIG_PARAMETER_SIGNATURE);
break;
@ -1512,33 +1515,6 @@ void setFrankenso0_1_joystick(engine_configuration_s *engineConfiguration) {
engineConfiguration->joystickDPin = GPIOD_11;
}
void copyTargetAfrTable(fuel_table_t const source, afr_table_t destination) {
// todo: extract a template!
for (int loadIndex = 0; loadIndex < FUEL_LOAD_COUNT; loadIndex++) {
for (int rpmIndex = 0; rpmIndex < FUEL_RPM_COUNT; rpmIndex++) {
destination[loadIndex][rpmIndex] = AFR_STORAGE_MULT * source[loadIndex][rpmIndex];
}
}
}
void copyFuelTable(fuel_table_t const source, fuel_table_t destination) {
// todo: extract a template!
for (int loadIndex = 0; loadIndex < FUEL_LOAD_COUNT; loadIndex++) {
for (int rpmIndex = 0; rpmIndex < FUEL_RPM_COUNT; rpmIndex++) {
destination[loadIndex][rpmIndex] = source[loadIndex][rpmIndex];
}
}
}
void copyTimingTable(ignition_table_t const source, ignition_table_t destination) {
// todo: extract a template!
for (int k = 0; k < IGN_LOAD_COUNT; k++) {
for (int rpmIndex = 0; rpmIndex < IGN_RPM_COUNT; rpmIndex++) {
destination[k][rpmIndex] = source[k][rpmIndex];
}
}
}
static const ConfigOverrides defaultConfigOverrides{};
// This symbol is weak so that a board_configuration.cpp file can override it
__attribute__((weak)) const ConfigOverrides& getConfigOverrides() {

View File

@ -39,7 +39,6 @@ void setWholeIatCorrTimingTable(float value DECLARE_CONFIG_PARAMETER_SUFFIX);
void setWholeTimingTable_d(angle_t value DECLARE_CONFIG_PARAMETER_SUFFIX);
#define setWholeTimingTable(x) setWholeTimingTable_d(x PASS_CONFIG_PARAMETER_SUFFIX);
void setConstantDwell(floatms_t dwellMs DECLARE_CONFIG_PARAMETER_SUFFIX);
void printFloatArray(const char *prefix, float array[], int size);
// needed by bootloader
void setDefaultBasePins(DECLARE_CONFIG_PARAMETER_SIGNATURE);
@ -54,9 +53,7 @@ void incrementGlobalConfigurationVersion(DECLARE_ENGINE_PARAMETER_SIGNATURE);
void commonFrankensoAnalogInputs(engine_configuration_s *engineConfiguration);
void setFrankenso0_1_joystick(engine_configuration_s *engineConfiguration);
void copyTargetAfrTable(fuel_table_t const source, afr_table_t destination);
void copyFuelTable(fuel_table_t const source, fuel_table_t destination);
void copyTimingTable(ignition_table_t const source, ignition_table_t destination);
#define MEMCPY(dest, src) {memcpy(dest, src, sizeof(src));}
void emptyCallbackWithConfiguration(engine_configuration_s * engine);
void setDefaultFrankensoConfiguration(DECLARE_CONFIG_PARAMETER_SIGNATURE);

View File

@ -37,7 +37,7 @@ public:
Accelerometer accelerometer;
float vBatt = 0;
float currentAfr;
float currentAfr = 0;
/**
* that's fuel in tank - just a gauge
*/
@ -131,7 +131,7 @@ private:
struct multispark_state
{
efitick_t delay;
efitick_t dwell;
uint8_t count;
efitick_t delay = 0;
efitick_t dwell = 0;
uint8_t count = 0;
};

View File

@ -107,12 +107,12 @@ public:
* Desired timing advance
*/
angle_t sparkAngle = NAN;
floatms_t sparkDwell;
floatms_t sparkDwell = 0;
/**
* this timestamp allows us to measure actual dwell time
*/
uint32_t actualStartOfDwellNt;
event_trigger_position_s dwellPosition;
uint32_t actualStartOfDwellNt = 0;
event_trigger_position_s dwellPosition{};
/**
* Sequential number of currently processed spark event
* @see globalSparkIdCounter

View File

@ -62,7 +62,7 @@ typedef enum {
MRE_MIATA_NB2_MAP = 11,
MRE_MIATA_NA6 = ET_MRE_MIATA_NA6,
MRE_MIATA_NA6_VAF = ET_MRE_MIATA_NA6_VAF,
MRE_MIATA_NB2_ETB = 13,
@ -189,6 +189,9 @@ typedef enum {
DODGE_RAM = 64,
CITROEN_TU3JP = ET_CITROEN_TU3JP,
MRE_MIATA_NA6_MAP = ET_MRE_MIATA_NA6_MAP,
/**
* this configuration has as few pins configured as possible
*/
@ -424,10 +427,6 @@ typedef enum {
* This enum is used to select your desired Engine Load calculation algorithm
*/
typedef enum {
/**
* Throttle Position Sensor value is used as engine load. http://en.wikipedia.org/wiki/Throttle_position_sensor
*/
LM_ALPHA_N = 1,
/**
* Speed Density algorithm - Engine Load is a function of MAP, VE and target AFR
* http://articles.sae.org/8539/

View File

@ -182,11 +182,9 @@ void canDashboardVAG(void) {
}
void canDashboardW202(void) {
uint16_t tmp;
{
CanTxMessage msg(W202_STAT_1);
tmp = GET_RPM();
uint16_t tmp = GET_RPM();
msg[0] = 0x08; // Unknown
msg[1] = (tmp >> 8); //RPM
msg[2] = (tmp & 0xff); //RPM

View File

@ -614,7 +614,7 @@ static void setFsioSetting(float humanIndexF, float value) {
#endif
}
void setFsioExpression(const char *indexStr, const char *quotedLine DECLARE_ENGINE_PARAMETER_SUFFIX) {
void setFsioExpression(const char *indexStr, const char *quotedLine DECLARE_CONFIG_PARAMETER_SUFFIX) {
int index = atoi(indexStr) - 1;
if (index < 0 || index >= FSIO_COMMAND_COUNT) {
scheduleMsg(logger, "invalid FSIO index: %d", index);
@ -628,6 +628,11 @@ void setFsioExpression(const char *indexStr, const char *quotedLine DECLARE_ENGI
scheduleMsg(logger, "setting user out #%d to [%s]", index + 1, l);
strcpy(config->fsioFormulas[index], l);
}
void applyFsioExpression(const char *indexStr, const char *quotedLine DECLARE_ENGINE_PARAMETER_SUFFIX) {
setFsioExpression(indexStr, quotedLine PASS_CONFIG_PARAMETER_SUFFIX);
// this would apply the changes
applyFsioConfiguration(PASS_ENGINE_PARAMETER_SIGNATURE);
showFsioInfo();
@ -718,7 +723,7 @@ void initFsioImpl(Logging *sharedLogger DECLARE_ENGINE_PARAMETER_SUFFIX) {
#endif /* EFI_PROD_CODE */
#if EFI_PROD_CODE || EFI_SIMULATOR
addConsoleActionSS("set_rpn_expression", setFsioExpression);
addConsoleActionSS("set_rpn_expression", applyFsioExpression);
addConsoleActionFF("set_fsio_setting", setFsioSetting);
addConsoleAction("fsioinfo", showFsioInfo);
addConsoleActionS("rpn_eval", (VoidCharPtr) rpnEval);

View File

@ -40,7 +40,8 @@ void setFsioExt(int index, brain_pin_e pin, const char * exp, int pwmFrequency D
void initFsioImpl(Logging *sharedLogger DECLARE_ENGINE_PARAMETER_SUFFIX);
void runFsio(DECLARE_ENGINE_PARAMETER_SIGNATURE);
void setFsioExpression(const char *indexStr, const char *quotedLine DECLARE_ENGINE_PARAMETER_SUFFIX);
void setFsioExpression(const char *indexStr, const char *quotedLine DECLARE_CONFIG_PARAMETER_SUFFIX);
void applyFsioExpression(const char *indexStr, const char *quotedLine DECLARE_ENGINE_PARAMETER_SUFFIX);
float getFsioOutputValue(int index DECLARE_ENGINE_PARAMETER_SUFFIX);
void applyFsioConfiguration(DECLARE_ENGINE_PARAMETER_SIGNATURE);
void onConfigurationChangeFsioCallback(engine_configuration_s *previousConfiguration DECLARE_ENGINE_PARAMETER_SUFFIX);

View File

@ -1,2 +1,2 @@
#pragma once
#define VCS_DATE 20200729
#define VCS_DATE 20200731

View File

@ -350,11 +350,11 @@ float getMap(void) {
void initMapAveraging(Logging *sharedLogger DECLARE_ENGINE_PARAMETER_SUFFIX) {
logger = sharedLogger;
#if !EFI_UNIT_TEST
#if EFI_SHAFT_POSITION_INPUT
addTriggerEventListener(&mapAveragingTriggerCallback, "MAP averaging", engine);
#endif /* EFI_SHAFT_POSITION_INPUT */
#if !EFI_UNIT_TEST
addConsoleAction("faststat", showMapStats);
#endif /* EFI_UNIT_TEST */

View File

@ -358,7 +358,9 @@ void initRpmCalculator(Logging *sharedLogger DECLARE_ENGINE_PARAMETER_SUFFIX) {
return;
}
#if !EFI_UNIT_TEST
addTriggerEventListener(tdcMarkCallback, "chart TDC mark", engine);
#endif
addTriggerEventListener(rpmShaftPositionCallback, "rpm reporter", engine);
}

View File

@ -191,8 +191,6 @@ if (engineConfiguration->debugMode == DBG_DWELL_METRIC) {
{
event->sparksRemaining--;
efitick_t nowNt = getTimeNowNt();
efitick_t nextDwellStart = nowNt + engine->engineState.multispark.delay;
efitick_t nextFiring = nextDwellStart + engine->engineState.multispark.dwell;

View File

@ -1,4 +1,4 @@
// this section was generated automatically by rusEfi tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Tue Jul 28 13:12:08 UTC 2020
// this section was generated automatically by rusEfi tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Thu Jul 30 19:34:58 UTC 2020
// by class com.rusefi.output.CHeaderConsumer
// begin
#pragma once
@ -3533,4 +3533,4 @@ struct persistent_config_s {
typedef struct persistent_config_s persistent_config_s;
// end
// this section was generated automatically by rusEfi tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Tue Jul 28 13:12:08 UTC 2020
// this section was generated automatically by rusEfi tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Thu Jul 30 19:34:58 UTC 2020

View File

@ -1,4 +1,4 @@
// this file was generated automatically by rusEfi tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Tue Jul 28 13:12:08 UTC 2020
// this file was generated automatically by rusEfi tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Thu Jul 30 19:34:58 UTC 2020
// by class com.rusefi.output.FileFsioSettingsConsumer
FSIO_SETTING_FANONTEMPERATURE = 1000,

View File

@ -1,4 +1,4 @@
// this file was generated automatically by rusEfi tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Tue Jul 28 13:12:08 UTC 2020
// this file was generated automatically by rusEfi tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Thu Jul 30 19:34:58 UTC 2020
// by class com.rusefi.output.FileFsioSettingsConsumer
case FSIO_SETTING_FANONTEMPERATURE:

View File

@ -1,4 +1,4 @@
// this file was generated automatically by rusEfi tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Tue Jul 28 13:12:08 UTC 2020
// this file was generated automatically by rusEfi tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Thu Jul 30 19:34:58 UTC 2020
// by class com.rusefi.output.FileFsioSettingsConsumer
static LENameOrdinalPair lefanOnTemperature(FSIO_SETTING_FANONTEMPERATURE, "cfg_fanOnTemperature");

View File

@ -1,4 +1,4 @@
// this file was generated automatically by rusEfi tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Tue Jul 28 13:12:08 UTC 2020
// this file was generated automatically by rusEfi tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Thu Jul 30 19:34:58 UTC 2020
// by class com.rusefi.output.FileFsioSettingsConsumer
case FSIO_SETTING_FANONTEMPERATURE:

View File

@ -332,7 +332,8 @@
#define ET_FRANKENSO_MIATA_NA6_VAF 57
#define ET_FRANKENSO_MIATA_NB2 47
#define ET_MRE_DEFAULTS 60
#define ET_MRE_MIATA_NA6 12
#define ET_MRE_MIATA_NA6_MAP 66
#define ET_MRE_MIATA_NA6_VAF 12
#define ET_MRE_MIATA_NB2_MAF 15
#define ET_MRE_MIATA_NB2_MAP 11
#define ET_MRE_NEW_TEST_BOARD 31
@ -590,6 +591,7 @@
#define GAUGE_NAME_TIME "Time"
#define GAUGE_NAME_TIMING_ADVANCE "timing"
#define GAUGE_NAME_TPS "TPS"
#define GAUGE_NAME_TPS2 "TPS2"
#define GAUGE_NAME_TRG_ERR "trg err"
#define GAUGE_NAME_VBAT "VBatt"
#define GAUGE_NAME_VERSION "firmware"
@ -1075,8 +1077,8 @@
#define showHumanReadableWarning_offset 976
#define showSdCardWarning_offset 76
#define SIGNATURE_BOARD all
#define SIGNATURE_DATE 2020.07.28
#define SIGNATURE_HASH 1542883429
#define SIGNATURE_DATE 2020.07.30
#define SIGNATURE_HASH 3740911119
#define silentTriggerError_offset 1464
#define slowAdcAlpha_offset 2088
#define sparkDwellRpmBins_offset 332
@ -1344,7 +1346,7 @@
#define ts_show_spi true
#define ts_show_trigger_comparator false
#define ts_show_tunerstudio_port true
#define TS_SIGNATURE "rusEFI 2020.07.28.all.1542883429"
#define TS_SIGNATURE "rusEFI 2020.07.30.all.3740911119"
#define TS_SINGLE_WRITE_COMMAND 'W'
#define tunerStudioSerialSpeed_offset 728
#define twoWireBatchIgnition_offset 1476

View File

@ -3,6 +3,6 @@
//
#define SIGNATURE_BOARD all
#define SIGNATURE_DATE 2020.07.28
#define SIGNATURE_HASH 1542883429
#define TS_SIGNATURE "rusEFI 2020.07.28.all.1542883429"
#define SIGNATURE_DATE 2020.07.30
#define SIGNATURE_HASH 3740911119
#define TS_SIGNATURE "rusEFI 2020.07.30.all.3740911119"

View File

@ -3,6 +3,6 @@
//
#define SIGNATURE_BOARD frankenso_na6
#define SIGNATURE_DATE 2020.07.28
#define SIGNATURE_HASH 2238833798
#define TS_SIGNATURE "rusEFI 2020.07.28.frankenso_na6.2238833798"
#define SIGNATURE_DATE 2020.07.30
#define SIGNATURE_HASH 8301292
#define TS_SIGNATURE "rusEFI 2020.07.30.frankenso_na6.8301292"

View File

@ -3,6 +3,6 @@
//
#define SIGNATURE_BOARD kin
#define SIGNATURE_DATE 2020.07.28
#define SIGNATURE_HASH 2529711359
#define TS_SIGNATURE "rusEFI 2020.07.28.kin.2529711359"
#define SIGNATURE_DATE 2020.07.30
#define SIGNATURE_HASH 331815573
#define TS_SIGNATURE "rusEFI 2020.07.30.kin.331815573"

View File

@ -3,6 +3,6 @@
//
#define SIGNATURE_BOARD mre_f4
#define SIGNATURE_DATE 2020.07.28
#define SIGNATURE_HASH 302538475
#define TS_SIGNATURE "rusEFI 2020.07.28.mre_f4.302538475"
#define SIGNATURE_DATE 2020.07.30
#define SIGNATURE_HASH 2533822593
#define TS_SIGNATURE "rusEFI 2020.07.30.mre_f4.2533822593"

View File

@ -3,6 +3,6 @@
//
#define SIGNATURE_BOARD mre_f7
#define SIGNATURE_DATE 2020.07.28
#define SIGNATURE_HASH 302538475
#define TS_SIGNATURE "rusEFI 2020.07.28.mre_f7.302538475"
#define SIGNATURE_DATE 2020.07.30
#define SIGNATURE_HASH 2533822593
#define TS_SIGNATURE "rusEFI 2020.07.30.mre_f7.2533822593"

View File

@ -3,6 +3,6 @@
//
#define SIGNATURE_BOARD prometheus_405
#define SIGNATURE_DATE 2020.07.28
#define SIGNATURE_HASH 2934591713
#define TS_SIGNATURE "rusEFI 2020.07.28.prometheus_405.2934591713"
#define SIGNATURE_DATE 2020.07.30
#define SIGNATURE_HASH 736435851
#define TS_SIGNATURE "rusEFI 2020.07.30.prometheus_405.736435851"

View File

@ -3,6 +3,6 @@
//
#define SIGNATURE_BOARD prometheus_469
#define SIGNATURE_DATE 2020.07.28
#define SIGNATURE_HASH 2934591713
#define TS_SIGNATURE "rusEFI 2020.07.28.prometheus_469.2934591713"
#define SIGNATURE_DATE 2020.07.30
#define SIGNATURE_HASH 736435851
#define TS_SIGNATURE "rusEFI 2020.07.30.prometheus_469.736435851"

View File

@ -3,6 +3,6 @@
//
#define SIGNATURE_BOARD proteus_f4
#define SIGNATURE_DATE 2020.07.28
#define SIGNATURE_HASH 3597138346
#define TS_SIGNATURE "rusEFI 2020.07.28.proteus_f4.3597138346"
#define SIGNATURE_DATE 2020.07.30
#define SIGNATURE_HASH 1399371712
#define TS_SIGNATURE "rusEFI 2020.07.30.proteus_f4.1399371712"

View File

@ -3,6 +3,6 @@
//
#define SIGNATURE_BOARD proteus_f7
#define SIGNATURE_DATE 2020.07.28
#define SIGNATURE_HASH 3597138346
#define TS_SIGNATURE "rusEFI 2020.07.28.proteus_f7.3597138346"
#define SIGNATURE_DATE 2020.07.30
#define SIGNATURE_HASH 1399371712
#define TS_SIGNATURE "rusEFI 2020.07.30.proteus_f7.1399371712"

View File

@ -67,7 +67,6 @@ float getEngineLoadT(DECLARE_ENGINE_PARAMETER_SIGNATURE) {
switch (engineConfiguration->fuelAlgorithm) {
case LM_SPEED_DENSITY:
return getMap(PASS_ENGINE_PARAMETER_SIGNATURE);
case LM_ALPHA_N:
case LM_ALPHA_N_2:
return Sensor::get(SensorType::Tps1).value_or(0);
case LM_REAL_MAF:
@ -439,9 +438,7 @@ void setTimingLoadBin(float from, float to DECLARE_CONFIG_PARAMETER_SUFFIX) {
*/
void setAlgorithm(engine_load_mode_e algo DECLARE_CONFIG_PARAMETER_SUFFIX) {
engineConfiguration->fuelAlgorithm = algo;
if (algo == LM_ALPHA_N) {
setTimingLoadBin(20, 120 PASS_CONFIG_PARAMETER_SUFFIX);
} else if (algo == LM_SPEED_DENSITY) {
if (algo == LM_SPEED_DENSITY) {
setLinearCurve(config->ignitionLoadBins, 20, 120, 3);
buildTimingMap(35 PASS_CONFIG_PARAMETER_SUFFIX);
}

View File

@ -20,7 +20,7 @@ public:
private:
// Steinhart-Hart coefficients
float m_a;
float m_b;
float m_c;
float m_a = 0;
float m_b = 0;
float m_c = 0;
};

View File

@ -24,7 +24,7 @@ public:
void showInfo(Logging* logger, const char* sensorName) const override;
private:
SensorResult get() const {
SensorResult get() const override {
return Sensor::get(m_proxiedSensor);
}

View File

@ -51,7 +51,7 @@ bool Sensor::Register() {
return false;
} else {
// put ourselves in the registry
s_sensorRegistry[getIndex()].sensor = this;
entry.sensor = this;
return true;
}
}

View File

@ -60,25 +60,6 @@ static Logging logger("settings control", LOGGING_BUFFER, sizeof(LOGGING_BUFFER)
EXTERN_ENGINE;
/*
static void printIntArray(int array[], int size) {
for (int j = 0; j < size; j++) {
print("%d ", array[j]);
}
print("\r\n");
}
*/
void printFloatArray(const char *prefix, float array[], int size) {
appendMsgPrefix(&logger);
appendPrintf(&logger, prefix);
for (int j = 0; j < size; j++) {
appendPrintf(&logger, "%.2f ", array[j]);
}
appendMsgPostfix(&logger);
scheduleLogging(&logger);
}
void printSpiState(Logging *logger, const engine_configuration_s *engineConfiguration) {
scheduleMsg(logger, "spi 1=%s/2=%s/3=%s/4=%s",
boolToString(engineConfiguration->is_enabled_spi_1),
@ -211,19 +192,6 @@ void printConfiguration(const engine_configuration_s *engineConfiguration) {
// print("\r\n");
}
// printFloatArray("RPM bin: ", config->fuelRpmBins, FUEL_RPM_COUNT);
//
// printFloatArray("Y bin: ", config->fuelLoadBins, FUEL_LOAD_COUNT);
//
// printFloatArray("CLT: ", config->cltFuelCorr, CLT_CURVE_SIZE);
// printFloatArray("CLT bins: ", config->cltFuelCorrBins, CLT_CURVE_SIZE);
//
// printFloatArray("IAT: ", config->iatFuelCorr, IAT_CURVE_SIZE);
// printFloatArray("IAT bins: ", config->iatFuelCorrBins, IAT_CURVE_SIZE);
//
// printFloatArray("vBatt: ", engineConfiguration->injector.battLagCorr, VBAT_INJECTOR_CURVE_SIZE);
// printFloatArray("vBatt bins: ", engineConfiguration->injector.battLagCorrBins, VBAT_INJECTOR_CURVE_SIZE);
scheduleMsg(&logger, "rpmHardLimit: %d/operationMode=%d", engineConfiguration->rpmHardLimit,
engine->getOperationMode(PASS_ENGINE_PARAMETER_SIGNATURE));

View File

@ -77,7 +77,7 @@ private:
OutputPin* const m_disable;
float m_value = 0;
ControlType m_type;
ControlType m_type = ControlType::PwmDirectionPins;
public:
/**
* @param enable SimplePwm driver for enable pin, for PWM speed control.
@ -90,8 +90,8 @@ public:
float get() const override;
bool isOpenDirection() const override;
void enable();
void disable();
void enable() override;
void disable() override;
void setType(ControlType type) { m_type = type; }
};

View File

@ -25,9 +25,6 @@ extern bool verboseMode;
uint32_t maxSchedulingPrecisionLoss = 0;
bool EventQueue::checkIfPending(scheduling_s *scheduling) {
assertNotInListMethodBody(scheduling_s, head, scheduling, nextScheduling_s);
}
/**
* @return true if inserted into the head of the list
@ -212,5 +209,18 @@ scheduling_s *EventQueue::getElementAtIndexForUnitText(int index) {
}
void EventQueue::clear(void) {
// Flush the queue, resetting all scheduling_s as though we'd executed them
while(head) {
auto x = head;
// link next element to head
head = x->nextScheduling_s;
// Reset this element
x->momentX = 0;
x->isScheduled = false;
x->nextScheduling_s = nullptr;
x->action = {};
}
head = nullptr;
}

View File

@ -64,7 +64,6 @@ public:
scheduling_s * getHead();
void assertListIsSorted() const;
private:
bool checkIfPending(scheduling_s *scheduling);
/**
* this list is sorted
*/

View File

@ -14,7 +14,6 @@
#include "main_trigger_callback.h"
#include "engine_configuration.h"
#include "listener_array.h"
#include "data_buffer.h"
#include "pwm_generator_logic.h"
#include "tooth_logger.h"
@ -293,6 +292,9 @@ void hwHandleShaftSignal(trigger_event_e signal, efitick_t timestamp) {
// so we pass them to handleShaftSignal() and defer this test
if (!CONFIG(useNoiselessTriggerDecoder)) {
if (!isUsefulSignal(signal PASS_CONFIG_PARAMETER_SUFFIX)) {
/**
* no need to process VR falls further
*/
return;
}
}
@ -414,6 +416,9 @@ bool TriggerNoiseFilter::noiseFilter(efitick_t nowNt,
return false;
}
/**
* This method is NOT invoked for VR falls.
*/
void TriggerCentral::handleShaftSignal(trigger_event_e signal, efitick_t timestamp DECLARE_ENGINE_PARAMETER_SUFFIX) {
efiAssertVoid(CUSTOM_CONF_NULL, engine!=NULL, "configuration");

View File

@ -376,7 +376,8 @@ void TriggerState::onShaftSynchronization(const TriggerStateCallback triggerCycl
/**
* @brief Trigger decoding happens here
* This method is invoked every time we have a fall or rise on one of the trigger sensors.
* VR falls are filtered out and some VR noise detection happens prior to invoking this method, for
* Hall this method is invoked every time we have a fall or rise on one of the trigger sensors.
* This method changes the state of trigger_state_s data structure according to the trigger event
* @param signal type of event which just happened
* @param nowNt current time

View File

@ -17,7 +17,10 @@ EXTERN_ENGINE;
// this is not the only place where we have 'isUpEvent'. todo: reuse
static const bool isRisingEdge[HW_EVENT_TYPES] = { false, true, false, true, false, true };
// todo: should this method be invoked somewhere deeper? at the moment we have too many usages too high
/**
* todo: should this method be invoked somewhere deeper? at the moment we have too many usages too high
* @return true if front should be decoded further, false if we are not interested
*/
bool isUsefulSignal(trigger_event_e signal DECLARE_CONFIG_PARAMETER_SUFFIX) {
return !engineConfiguration->useOnlyRisingEdgeForTrigger || isRisingEdge[(int) signal];
}

View File

@ -16,7 +16,6 @@
#include "global.h"
#include "os_access.h"
#include "eficonsole.h"
#include "data_buffer.h"
#include "pin_repository.h"
#include "allsensors.h"
#include "engine_configuration.h"

View File

@ -5,7 +5,7 @@ rem ..\misc\encedo_hex2dfu\hex2dfu.exe -i build/rusefi.hex -o build/rusefi.dfu
rem on linux that would be
rem dfu-util -a 0 -D rusefi_no_asserts.dfu -R
DfuSeCommand.exe -c -d --fn build/rusefi.dfu
DfuSeCommand.exe -c -d --fn deliver/rusefi.dfu
rem to read from comtroller use
rem DfuSeCommand.exe -c -u --fn downloaded.dfu

View File

@ -28,7 +28,7 @@ public:
/**
* Create a new CAN message, with the specified extended ID.
*/
CanTxMessage(uint32_t eid, uint8_t dlc = 8);
explicit CanTxMessage(uint32_t eid, uint8_t dlc = 8);
/**
* Destruction of an instance of CanTxMessage will transmit the message over the wire.
@ -71,7 +71,7 @@ class CanTxTyped final : public CanTxMessage
static_assert(sizeof(TData) == sizeof(CANTxFrame::data8));
public:
CanTxTyped(uint32_t eid) : CanTxMessage(eid) { }
explicit CanTxTyped(uint32_t eid) : CanTxMessage(eid) { }
/**
* Access members of the templated type.

View File

@ -149,15 +149,6 @@ static I2CConfig i2cfg = { HAL_I2C_F7_100_TIMINGR, 0, 0 }; // todo: does it work
static I2CConfig i2cfg = { OPMODE_I2C, 100000, STD_DUTY_CYCLE, };
#endif /* defined(STM32F4XX) */
void initI2Cmodule(void) {
print("Starting I2C module\r\n");
i2cInit();
i2cStart(&I2CD1, &i2cfg);
efiSetPadMode("I2C clock", EFI_I2C_SCL_BRAIN_PIN, PAL_MODE_ALTERNATE(EFI_I2C_AF) | PAL_STM32_OTYPE_OPENDRAIN);
efiSetPadMode("I2C data", EFI_I2C_SDA_BRAIN_PIN, PAL_MODE_ALTERNATE(EFI_I2C_AF) | PAL_STM32_OTYPE_OPENDRAIN);
}
//static char txbuf[1];
static void sendI2Cbyte(int addr, int data) {
@ -474,7 +465,6 @@ void initHardware(Logging *l) {
initSingleTimerExecutorHardware();
#if EFI_HD44780_LCD
// initI2Cmodule();
lcd_HD44780_init(sharedLogger);
if (hasFirmwareError())
return;

View File

@ -268,8 +268,6 @@ static const USBEndpointConfig ep2config = {
* Handles the USB driver global events.
*/
static void usb_event(USBDriver *usbp, usbevent_t event) {
extern SerialUSBDriver SDU1;
switch (event) {
case USB_EVENT_ADDRESS:
return;

View File

@ -49,8 +49,8 @@ public:
void step(bool positive) override;
private:
DcMotor* m_motorPhaseA;
DcMotor* m_motorPhaseB;
DcMotor* m_motorPhaseA = nullptr;
DcMotor* m_motorPhaseB = nullptr;
uint8_t m_phase = 0;
};

View File

@ -1444,6 +1444,7 @@ end_struct
#define GAUGE_NAME_CLT "CLT"
#define GAUGE_NAME_IAT "IAT"
#define GAUGE_NAME_TPS "TPS"
#define GAUGE_NAME_TPS2 "TPS2"
#define GAUGE_NAME_MAP "MAP"
#define GAUGE_NAME_MAF "MAF"
#define GAUGE_NAME_ENGINE_LOAD "Engine Load"
@ -1639,12 +1640,13 @@ end_struct
#define PROTOCOL_COIL1_SHORT_NAME "c1"
#define PROTOCOL_INJ1_SHORT_NAME "i1"
#define ET_MRE_MIATA_NA6 12
#define ET_MRE_MIATA_NA6_VAF 12
#define ET_MRE_MIATA_NB2_MAP 11
#define ET_MRE_MIATA_NB2_MAF 15
#define ET_MRE_OLD_TEST_BOARD 30
#define ET_MRE_NEW_TEST_BOARD 31
#define ET_MRE_DEFAULTS 60
#define ET_MRE_MIATA_NA6_MAP 66
#define ET_FRANKENSO_MIATA_NA6 41
#define ET_FRANKENSO_MIATA_NB2 47

View File

@ -1,12 +1,12 @@
// This file was generated by Version2Header
// Sun Jul 19 18:34:45 EDT 2020
// Thu Jul 30 00:15:26 EDT 2020
#ifndef GIT_HASH
#define GIT_HASH "f96e4c88e0b38256ceec956e48c22b9f0e63b2ed"
#define GIT_HASH "44daac5baf5c40a8ddeeb5612c7e89d69c8ff4ed"
#endif
#ifndef VCS_VERSION
#define VCS_VERSION "24397"
#define VCS_VERSION "24759"
#endif

View File

@ -33,12 +33,12 @@ enable2ndByteCanID = false
[MegaTune]
; https://rusefi.com/forum/viewtopic.php?p=36201#p36201
signature = "rusEFI 2020.07.28.all.1542883429"
signature = "rusEFI 2020.07.30.all.3740911119"
[TunerStudio]
queryCommand = "S"
versionInfo = "V" ; firmwave version for title bar.
signature = "rusEFI 2020.07.28.all.1542883429" ; signature is expected to be 7 or more characters.
signature = "rusEFI 2020.07.30.all.3740911119" ; signature is expected to be 7 or more characters.
[Constants]
; new packet serial format with CRC
@ -76,7 +76,7 @@ enable2ndByteCanID = false
; see PAGE_0_SIZE in C source code
; CONFIG_DEFINITION_START
; this section was generated automatically by rusEfi tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Tue Jul 28 13:12:08 UTC 2020
; this section was generated automatically by rusEfi tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Thu Jul 30 19:34:58 UTC 2020
pageSize = 20000
page = 1
@ -1640,7 +1640,6 @@ page = 1
; todo: generate this section programatically
LM_PLAIN_MAF = {0},
LM_ALPHA_N = {1},
LM_SPEED_DENSITY = {3},
LM_REAL_MAF = {4}
@ -2373,6 +2372,7 @@ gaugeCategory = Sensors - Raw
entry = intake, "IAT", float, "%.2f"
entry = oilPressure, "Oil Press", float, "%.1f"
entry = TPSValue, "TPS", float, "%.2f"
entry = TPS2Value, "TPS2", float, "%.2f"
entry = MAFValue, "MAF", float, "%.2f"
entry = MAPValue, "MAP", float, "%.1f"
entry = AFRValue, "Air/Fuel Ratio", float, "%.2f"
@ -2776,7 +2776,10 @@ cmd_dfu = "w\x00\xba\x00\x00"
cmd_set_engine_type_microRusEFI_Miata_NB2_MAP = "w\x00\x30\x00\x0b"
; MRE_MIATA_NA6 12
cmd_set_engine_type_microRusEFI_Miata_NA6 = "w\x00\x30\x00\x0c"
cmd_set_engine_type_microRusEFI_Miata_NA6_VAF = "w\x00\x30\x00\x0c"
cmd_set_engine_type_microRusEFI_Miata_NA6_MAP = "w\x00\x30\x00\x42"
; MRE_MIATA_NB2_MAF = 15
cmd_set_engine_type_microRusEFI_Miata_NB2_MAF = "w\x00\x30\x00\x0f"
@ -2802,7 +2805,6 @@ cmd_set_engine_type_default = "w\x00\x31\x00\x00"
[UserDefined]
dialog = fuelTableBottomDialog, "", card
panel = fuelTableMAFTbl, Center, {fuelAlgorithm==LM_PLAIN_MAF}
panel = fuelTableTPSTbl, Center, {fuelAlgorithm==LM_ALPHA_N}
panel = fuelTableELTbl, Center
dialog = fuelTableRight, "", yAxis
@ -4240,6 +4242,8 @@ cmd_set_engine_type_default = "w\x00\x31\x00\x00"
commandButton = "Frankenso Miata NA6 Stage 1", cmd_set_engine_type_Frankenso_Miata_NA6_MAP
commandButton = "Frankenso Miata NB2 MAP", cmd_set_engine_type_Frankenso_Miata_NB2
commandButton = "microRusEFI Miata NA6 VAF", cmd_set_engine_type_microRusEFI_Miata_NA6_VAF
commandButton = "microRusEFI Miata NA6 MAP", cmd_set_engine_type_microRusEFI_Miata_NA6_MAP
commandButton = "microRusEfi Miata NB2 MAP", cmd_set_engine_type_microRusEFI_Miata_NB2_MAP
commandButton = "microRusEFI Miata NB2 MAF", cmd_set_engine_type_microRusEFI_Miata_NB2_MAF
commandButton = "microRusEFI Defaults", cmd_set_engine_type_microRusEFI_Defaults

View File

@ -33,12 +33,12 @@ enable2ndByteCanID = false
[MegaTune]
; https://rusefi.com/forum/viewtopic.php?p=36201#p36201
signature = "rusEFI 2020.07.28.frankenso_na6.2238833798"
signature = "rusEFI 2020.07.30.frankenso_na6.8301292"
[TunerStudio]
queryCommand = "S"
versionInfo = "V" ; firmwave version for title bar.
signature = "rusEFI 2020.07.28.frankenso_na6.2238833798" ; signature is expected to be 7 or more characters.
signature = "rusEFI 2020.07.30.frankenso_na6.8301292" ; signature is expected to be 7 or more characters.
[Constants]
; new packet serial format with CRC
@ -76,7 +76,7 @@ enable2ndByteCanID = false
; see PAGE_0_SIZE in C source code
; CONFIG_DEFINITION_START
; this section was generated automatically by rusEfi tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Tue Jul 28 13:12:18 UTC 2020
; this section was generated automatically by rusEfi tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Thu Jul 30 19:35:02 UTC 2020
pageSize = 20000
page = 1
@ -1640,7 +1640,6 @@ page = 1
; todo: generate this section programatically
LM_PLAIN_MAF = {0},
LM_ALPHA_N = {1},
LM_SPEED_DENSITY = {3},
LM_REAL_MAF = {4}
@ -2373,6 +2372,7 @@ gaugeCategory = Sensors - Raw
entry = intake, "IAT", float, "%.2f"
entry = oilPressure, "Oil Press", float, "%.1f"
entry = TPSValue, "TPS", float, "%.2f"
entry = TPS2Value, "TPS2", float, "%.2f"
entry = MAFValue, "MAF", float, "%.2f"
entry = MAPValue, "MAP", float, "%.1f"
entry = AFRValue, "Air/Fuel Ratio", float, "%.2f"
@ -2776,7 +2776,10 @@ cmd_dfu = "w\x00\xba\x00\x00"
cmd_set_engine_type_microRusEFI_Miata_NB2_MAP = "w\x00\x30\x00\x0b"
; MRE_MIATA_NA6 12
cmd_set_engine_type_microRusEFI_Miata_NA6 = "w\x00\x30\x00\x0c"
cmd_set_engine_type_microRusEFI_Miata_NA6_VAF = "w\x00\x30\x00\x0c"
cmd_set_engine_type_microRusEFI_Miata_NA6_MAP = "w\x00\x30\x00\x42"
; MRE_MIATA_NB2_MAF = 15
cmd_set_engine_type_microRusEFI_Miata_NB2_MAF = "w\x00\x30\x00\x0f"
@ -2802,7 +2805,6 @@ cmd_set_engine_type_default = "w\x00\x31\x00\x00"
[UserDefined]
dialog = fuelTableBottomDialog, "", card
panel = fuelTableMAFTbl, Center, {fuelAlgorithm==LM_PLAIN_MAF}
panel = fuelTableTPSTbl, Center, {fuelAlgorithm==LM_ALPHA_N}
panel = fuelTableELTbl, Center
dialog = fuelTableRight, "", yAxis
@ -4240,6 +4242,8 @@ cmd_set_engine_type_default = "w\x00\x31\x00\x00"
commandButton = "Frankenso Miata NA6 Stage 1", cmd_set_engine_type_Frankenso_Miata_NA6_MAP
commandButton = "Frankenso Miata NB2 MAP", cmd_set_engine_type_Frankenso_Miata_NB2
commandButton = "microRusEFI Miata NA6 VAF", cmd_set_engine_type_microRusEFI_Miata_NA6_VAF
commandButton = "microRusEFI Miata NA6 MAP", cmd_set_engine_type_microRusEFI_Miata_NA6_MAP
commandButton = "microRusEfi Miata NB2 MAP", cmd_set_engine_type_microRusEFI_Miata_NB2_MAP
commandButton = "microRusEFI Miata NB2 MAF", cmd_set_engine_type_microRusEFI_Miata_NB2_MAF
commandButton = "microRusEFI Defaults", cmd_set_engine_type_microRusEFI_Defaults

View File

@ -33,12 +33,12 @@ enable2ndByteCanID = false
[MegaTune]
; https://rusefi.com/forum/viewtopic.php?p=36201#p36201
signature = "rusEFI 2020.07.28.kin.2529711359"
signature = "rusEFI 2020.07.30.kin.331815573"
[TunerStudio]
queryCommand = "S"
versionInfo = "V" ; firmwave version for title bar.
signature = "rusEFI 2020.07.28.kin.2529711359" ; signature is expected to be 7 or more characters.
signature = "rusEFI 2020.07.30.kin.331815573" ; signature is expected to be 7 or more characters.
[Constants]
; new packet serial format with CRC
@ -76,7 +76,7 @@ enable2ndByteCanID = false
; see PAGE_0_SIZE in C source code
; CONFIG_DEFINITION_START
; this section was generated automatically by rusEfi tool ConfigDefinition.jar based on kinetis_gen_config.bat integration/rusefi_config.txt Tue Jul 28 13:12:25 UTC 2020
; this section was generated automatically by rusEfi tool ConfigDefinition.jar based on kinetis_gen_config.bat integration/rusefi_config.txt Thu Jul 30 19:35:09 UTC 2020
pageSize = 20000
page = 1
@ -1640,7 +1640,6 @@ page = 1
; todo: generate this section programatically
LM_PLAIN_MAF = {0},
LM_ALPHA_N = {1},
LM_SPEED_DENSITY = {3},
LM_REAL_MAF = {4}
@ -2373,6 +2372,7 @@ gaugeCategory = Sensors - Raw
entry = intake, "IAT", float, "%.2f"
entry = oilPressure, "Oil Press", float, "%.1f"
entry = TPSValue, "TPS", float, "%.2f"
entry = TPS2Value, "TPS2", float, "%.2f"
entry = MAFValue, "MAF", float, "%.2f"
entry = MAPValue, "MAP", float, "%.1f"
entry = AFRValue, "Air/Fuel Ratio", float, "%.2f"
@ -2776,7 +2776,10 @@ cmd_dfu = "w\x00\xba\x00\x00"
cmd_set_engine_type_microRusEFI_Miata_NB2_MAP = "w\x00\x30\x00\x0b"
; MRE_MIATA_NA6 12
cmd_set_engine_type_microRusEFI_Miata_NA6 = "w\x00\x30\x00\x0c"
cmd_set_engine_type_microRusEFI_Miata_NA6_VAF = "w\x00\x30\x00\x0c"
cmd_set_engine_type_microRusEFI_Miata_NA6_MAP = "w\x00\x30\x00\x42"
; MRE_MIATA_NB2_MAF = 15
cmd_set_engine_type_microRusEFI_Miata_NB2_MAF = "w\x00\x30\x00\x0f"
@ -2802,7 +2805,6 @@ cmd_set_engine_type_default = "w\x00\x31\x00\x00"
[UserDefined]
dialog = fuelTableBottomDialog, "", card
panel = fuelTableMAFTbl, Center, {fuelAlgorithm==LM_PLAIN_MAF}
panel = fuelTableTPSTbl, Center, {fuelAlgorithm==LM_ALPHA_N}
panel = fuelTableELTbl, Center
dialog = fuelTableRight, "", yAxis
@ -4241,6 +4243,8 @@ cmd_set_engine_type_default = "w\x00\x31\x00\x00"
commandButton = "Frankenso Miata NA6 Stage 1", cmd_set_engine_type_Frankenso_Miata_NA6_MAP
commandButton = "Frankenso Miata NB2 MAP", cmd_set_engine_type_Frankenso_Miata_NB2
commandButton = "microRusEFI Miata NA6 VAF", cmd_set_engine_type_microRusEFI_Miata_NA6_VAF
commandButton = "microRusEFI Miata NA6 MAP", cmd_set_engine_type_microRusEFI_Miata_NA6_MAP
commandButton = "microRusEfi Miata NB2 MAP", cmd_set_engine_type_microRusEFI_Miata_NB2_MAP
commandButton = "microRusEFI Miata NB2 MAF", cmd_set_engine_type_microRusEFI_Miata_NB2_MAF
commandButton = "microRusEFI Defaults", cmd_set_engine_type_microRusEFI_Defaults

View File

@ -33,12 +33,12 @@ enable2ndByteCanID = false
[MegaTune]
; https://rusefi.com/forum/viewtopic.php?p=36201#p36201
signature = "rusEFI 2020.07.28.mre_f4.302538475"
signature = "rusEFI 2020.07.30.mre_f4.2533822593"
[TunerStudio]
queryCommand = "S"
versionInfo = "V" ; firmwave version for title bar.
signature = "rusEFI 2020.07.28.mre_f4.302538475" ; signature is expected to be 7 or more characters.
signature = "rusEFI 2020.07.30.mre_f4.2533822593" ; signature is expected to be 7 or more characters.
[Constants]
; new packet serial format with CRC
@ -76,7 +76,7 @@ enable2ndByteCanID = false
; see PAGE_0_SIZE in C source code
; CONFIG_DEFINITION_START
; this section was generated automatically by rusEfi tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Tue Jul 28 13:12:17 UTC 2020
; this section was generated automatically by rusEfi tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Thu Jul 30 19:35:01 UTC 2020
pageSize = 20000
page = 1
@ -1640,7 +1640,6 @@ page = 1
; todo: generate this section programatically
LM_PLAIN_MAF = {0},
LM_ALPHA_N = {1},
LM_SPEED_DENSITY = {3},
LM_REAL_MAF = {4}
@ -2373,6 +2372,7 @@ gaugeCategory = Sensors - Raw
entry = intake, "IAT", float, "%.2f"
entry = oilPressure, "Oil Press", float, "%.1f"
entry = TPSValue, "TPS", float, "%.2f"
entry = TPS2Value, "TPS2", float, "%.2f"
entry = MAFValue, "MAF", float, "%.2f"
entry = MAPValue, "MAP", float, "%.1f"
entry = AFRValue, "Air/Fuel Ratio", float, "%.2f"
@ -2771,7 +2771,10 @@ cmd_dfu = "w\x00\xba\x00\x00"
cmd_set_engine_type_microRusEFI_Miata_NB2_MAP = "w\x00\x30\x00\x0b"
; MRE_MIATA_NA6 12
cmd_set_engine_type_microRusEFI_Miata_NA6 = "w\x00\x30\x00\x0c"
cmd_set_engine_type_microRusEFI_Miata_NA6_VAF = "w\x00\x30\x00\x0c"
cmd_set_engine_type_microRusEFI_Miata_NA6_MAP = "w\x00\x30\x00\x42"
; MRE_MIATA_NB2_MAF = 15
cmd_set_engine_type_microRusEFI_Miata_NB2_MAF = "w\x00\x30\x00\x0f"
@ -2797,7 +2800,6 @@ cmd_set_engine_type_default = "w\x00\x31\x00\x00"
[UserDefined]
dialog = fuelTableBottomDialog, "", card
panel = fuelTableMAFTbl, Center, {fuelAlgorithm==LM_PLAIN_MAF}
panel = fuelTableTPSTbl, Center, {fuelAlgorithm==LM_ALPHA_N}
panel = fuelTableELTbl, Center
dialog = fuelTableRight, "", yAxis
@ -4214,6 +4216,8 @@ cmd_set_engine_type_default = "w\x00\x31\x00\x00"
field = "!These buttons send a command to rusEfi controller to apply preset values"
field = "!Once you send the command, please reconnect to rusEfi controller in order to read fresh values"
commandButton = "microRusEFI Miata NA6 VAF", cmd_set_engine_type_microRusEFI_Miata_NA6_VAF
commandButton = "microRusEFI Miata NA6 MAP", cmd_set_engine_type_microRusEFI_Miata_NA6_MAP
commandButton = "microRusEfi Miata NB2 MAP", cmd_set_engine_type_microRusEFI_Miata_NB2_MAP
commandButton = "microRusEFI Miata NB2 MAF", cmd_set_engine_type_microRusEFI_Miata_NB2_MAF
commandButton = "microRusEFI Defaults", cmd_set_engine_type_microRusEFI_Defaults

View File

@ -33,12 +33,12 @@ enable2ndByteCanID = false
[MegaTune]
; https://rusefi.com/forum/viewtopic.php?p=36201#p36201
signature = "rusEFI 2020.07.28.mre_f7.302538475"
signature = "rusEFI 2020.07.30.mre_f7.2533822593"
[TunerStudio]
queryCommand = "S"
versionInfo = "V" ; firmwave version for title bar.
signature = "rusEFI 2020.07.28.mre_f7.302538475" ; signature is expected to be 7 or more characters.
signature = "rusEFI 2020.07.30.mre_f7.2533822593" ; signature is expected to be 7 or more characters.
[Constants]
; new packet serial format with CRC
@ -76,7 +76,7 @@ enable2ndByteCanID = false
; see PAGE_0_SIZE in C source code
; CONFIG_DEFINITION_START
; this section was generated automatically by rusEfi tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Tue Jul 28 13:12:16 UTC 2020
; this section was generated automatically by rusEfi tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Thu Jul 30 19:34:59 UTC 2020
pageSize = 20000
page = 1
@ -1640,7 +1640,6 @@ page = 1
; todo: generate this section programatically
LM_PLAIN_MAF = {0},
LM_ALPHA_N = {1},
LM_SPEED_DENSITY = {3},
LM_REAL_MAF = {4}
@ -2373,6 +2372,7 @@ gaugeCategory = Sensors - Raw
entry = intake, "IAT", float, "%.2f"
entry = oilPressure, "Oil Press", float, "%.1f"
entry = TPSValue, "TPS", float, "%.2f"
entry = TPS2Value, "TPS2", float, "%.2f"
entry = MAFValue, "MAF", float, "%.2f"
entry = MAPValue, "MAP", float, "%.1f"
entry = AFRValue, "Air/Fuel Ratio", float, "%.2f"
@ -2771,7 +2771,10 @@ cmd_dfu = "w\x00\xba\x00\x00"
cmd_set_engine_type_microRusEFI_Miata_NB2_MAP = "w\x00\x30\x00\x0b"
; MRE_MIATA_NA6 12
cmd_set_engine_type_microRusEFI_Miata_NA6 = "w\x00\x30\x00\x0c"
cmd_set_engine_type_microRusEFI_Miata_NA6_VAF = "w\x00\x30\x00\x0c"
cmd_set_engine_type_microRusEFI_Miata_NA6_MAP = "w\x00\x30\x00\x42"
; MRE_MIATA_NB2_MAF = 15
cmd_set_engine_type_microRusEFI_Miata_NB2_MAF = "w\x00\x30\x00\x0f"
@ -2797,7 +2800,6 @@ cmd_set_engine_type_default = "w\x00\x31\x00\x00"
[UserDefined]
dialog = fuelTableBottomDialog, "", card
panel = fuelTableMAFTbl, Center, {fuelAlgorithm==LM_PLAIN_MAF}
panel = fuelTableTPSTbl, Center, {fuelAlgorithm==LM_ALPHA_N}
panel = fuelTableELTbl, Center
dialog = fuelTableRight, "", yAxis
@ -4214,6 +4216,8 @@ cmd_set_engine_type_default = "w\x00\x31\x00\x00"
field = "!These buttons send a command to rusEfi controller to apply preset values"
field = "!Once you send the command, please reconnect to rusEfi controller in order to read fresh values"
commandButton = "microRusEFI Miata NA6 VAF", cmd_set_engine_type_microRusEFI_Miata_NA6_VAF
commandButton = "microRusEFI Miata NA6 MAP", cmd_set_engine_type_microRusEFI_Miata_NA6_MAP
commandButton = "microRusEfi Miata NB2 MAP", cmd_set_engine_type_microRusEFI_Miata_NB2_MAP
commandButton = "microRusEFI Miata NB2 MAF", cmd_set_engine_type_microRusEFI_Miata_NB2_MAF
commandButton = "microRusEFI Defaults", cmd_set_engine_type_microRusEFI_Defaults

View File

@ -33,12 +33,12 @@ enable2ndByteCanID = false
[MegaTune]
; https://rusefi.com/forum/viewtopic.php?p=36201#p36201
signature = "rusEFI 2020.07.28.prometheus_405.2934591713"
signature = "rusEFI 2020.07.30.prometheus_405.736435851"
[TunerStudio]
queryCommand = "S"
versionInfo = "V" ; firmwave version for title bar.
signature = "rusEFI 2020.07.28.prometheus_405.2934591713" ; signature is expected to be 7 or more characters.
signature = "rusEFI 2020.07.30.prometheus_405.736435851" ; signature is expected to be 7 or more characters.
[Constants]
; new packet serial format with CRC
@ -76,7 +76,7 @@ enable2ndByteCanID = false
; see PAGE_0_SIZE in C source code
; CONFIG_DEFINITION_START
; this section was generated automatically by rusEfi tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Tue Jul 28 13:12:21 UTC 2020
; this section was generated automatically by rusEfi tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Thu Jul 30 19:35:05 UTC 2020
pageSize = 20000
page = 1
@ -1640,7 +1640,6 @@ page = 1
; todo: generate this section programatically
LM_PLAIN_MAF = {0},
LM_ALPHA_N = {1},
LM_SPEED_DENSITY = {3},
LM_REAL_MAF = {4}
@ -2373,6 +2372,7 @@ gaugeCategory = Sensors - Raw
entry = intake, "IAT", float, "%.2f"
entry = oilPressure, "Oil Press", float, "%.1f"
entry = TPSValue, "TPS", float, "%.2f"
entry = TPS2Value, "TPS2", float, "%.2f"
entry = MAFValue, "MAF", float, "%.2f"
entry = MAPValue, "MAP", float, "%.1f"
entry = AFRValue, "Air/Fuel Ratio", float, "%.2f"
@ -2772,7 +2772,10 @@ cmd_dfu = "w\x00\xba\x00\x00"
cmd_set_engine_type_microRusEFI_Miata_NB2_MAP = "w\x00\x30\x00\x0b"
; MRE_MIATA_NA6 12
cmd_set_engine_type_microRusEFI_Miata_NA6 = "w\x00\x30\x00\x0c"
cmd_set_engine_type_microRusEFI_Miata_NA6_VAF = "w\x00\x30\x00\x0c"
cmd_set_engine_type_microRusEFI_Miata_NA6_MAP = "w\x00\x30\x00\x42"
; MRE_MIATA_NB2_MAF = 15
cmd_set_engine_type_microRusEFI_Miata_NB2_MAF = "w\x00\x30\x00\x0f"
@ -2798,7 +2801,6 @@ cmd_set_engine_type_default = "w\x00\x31\x00\x00"
[UserDefined]
dialog = fuelTableBottomDialog, "", card
panel = fuelTableMAFTbl, Center, {fuelAlgorithm==LM_PLAIN_MAF}
panel = fuelTableTPSTbl, Center, {fuelAlgorithm==LM_ALPHA_N}
panel = fuelTableELTbl, Center
dialog = fuelTableRight, "", yAxis
@ -4236,6 +4238,8 @@ cmd_set_engine_type_default = "w\x00\x31\x00\x00"
commandButton = "Frankenso Miata NA6 Stage 1", cmd_set_engine_type_Frankenso_Miata_NA6_MAP
commandButton = "Frankenso Miata NB2 MAP", cmd_set_engine_type_Frankenso_Miata_NB2
commandButton = "microRusEFI Miata NA6 VAF", cmd_set_engine_type_microRusEFI_Miata_NA6_VAF
commandButton = "microRusEFI Miata NA6 MAP", cmd_set_engine_type_microRusEFI_Miata_NA6_MAP
commandButton = "microRusEfi Miata NB2 MAP", cmd_set_engine_type_microRusEFI_Miata_NB2_MAP
commandButton = "microRusEFI Miata NB2 MAF", cmd_set_engine_type_microRusEFI_Miata_NB2_MAF
commandButton = "microRusEFI Defaults", cmd_set_engine_type_microRusEFI_Defaults

View File

@ -33,12 +33,12 @@ enable2ndByteCanID = false
[MegaTune]
; https://rusefi.com/forum/viewtopic.php?p=36201#p36201
signature = "rusEFI 2020.07.28.prometheus_469.2934591713"
signature = "rusEFI 2020.07.30.prometheus_469.736435851"
[TunerStudio]
queryCommand = "S"
versionInfo = "V" ; firmwave version for title bar.
signature = "rusEFI 2020.07.28.prometheus_469.2934591713" ; signature is expected to be 7 or more characters.
signature = "rusEFI 2020.07.30.prometheus_469.736435851" ; signature is expected to be 7 or more characters.
[Constants]
; new packet serial format with CRC
@ -76,7 +76,7 @@ enable2ndByteCanID = false
; see PAGE_0_SIZE in C source code
; CONFIG_DEFINITION_START
; this section was generated automatically by rusEfi tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Tue Jul 28 13:12:20 UTC 2020
; this section was generated automatically by rusEfi tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Thu Jul 30 19:35:03 UTC 2020
pageSize = 20000
page = 1
@ -1640,7 +1640,6 @@ page = 1
; todo: generate this section programatically
LM_PLAIN_MAF = {0},
LM_ALPHA_N = {1},
LM_SPEED_DENSITY = {3},
LM_REAL_MAF = {4}
@ -2373,6 +2372,7 @@ gaugeCategory = Sensors - Raw
entry = intake, "IAT", float, "%.2f"
entry = oilPressure, "Oil Press", float, "%.1f"
entry = TPSValue, "TPS", float, "%.2f"
entry = TPS2Value, "TPS2", float, "%.2f"
entry = MAFValue, "MAF", float, "%.2f"
entry = MAPValue, "MAP", float, "%.1f"
entry = AFRValue, "Air/Fuel Ratio", float, "%.2f"
@ -2772,7 +2772,10 @@ cmd_dfu = "w\x00\xba\x00\x00"
cmd_set_engine_type_microRusEFI_Miata_NB2_MAP = "w\x00\x30\x00\x0b"
; MRE_MIATA_NA6 12
cmd_set_engine_type_microRusEFI_Miata_NA6 = "w\x00\x30\x00\x0c"
cmd_set_engine_type_microRusEFI_Miata_NA6_VAF = "w\x00\x30\x00\x0c"
cmd_set_engine_type_microRusEFI_Miata_NA6_MAP = "w\x00\x30\x00\x42"
; MRE_MIATA_NB2_MAF = 15
cmd_set_engine_type_microRusEFI_Miata_NB2_MAF = "w\x00\x30\x00\x0f"
@ -2798,7 +2801,6 @@ cmd_set_engine_type_default = "w\x00\x31\x00\x00"
[UserDefined]
dialog = fuelTableBottomDialog, "", card
panel = fuelTableMAFTbl, Center, {fuelAlgorithm==LM_PLAIN_MAF}
panel = fuelTableTPSTbl, Center, {fuelAlgorithm==LM_ALPHA_N}
panel = fuelTableELTbl, Center
dialog = fuelTableRight, "", yAxis
@ -4236,6 +4238,8 @@ cmd_set_engine_type_default = "w\x00\x31\x00\x00"
commandButton = "Frankenso Miata NA6 Stage 1", cmd_set_engine_type_Frankenso_Miata_NA6_MAP
commandButton = "Frankenso Miata NB2 MAP", cmd_set_engine_type_Frankenso_Miata_NB2
commandButton = "microRusEFI Miata NA6 VAF", cmd_set_engine_type_microRusEFI_Miata_NA6_VAF
commandButton = "microRusEFI Miata NA6 MAP", cmd_set_engine_type_microRusEFI_Miata_NA6_MAP
commandButton = "microRusEfi Miata NB2 MAP", cmd_set_engine_type_microRusEFI_Miata_NB2_MAP
commandButton = "microRusEFI Miata NB2 MAF", cmd_set_engine_type_microRusEFI_Miata_NB2_MAF
commandButton = "microRusEFI Defaults", cmd_set_engine_type_microRusEFI_Defaults

View File

@ -33,12 +33,12 @@ enable2ndByteCanID = false
[MegaTune]
; https://rusefi.com/forum/viewtopic.php?p=36201#p36201
signature = "rusEFI 2020.07.28.proteus_f4.3597138346"
signature = "rusEFI 2020.07.30.proteus_f4.1399371712"
[TunerStudio]
queryCommand = "S"
versionInfo = "V" ; firmwave version for title bar.
signature = "rusEFI 2020.07.28.proteus_f4.3597138346" ; signature is expected to be 7 or more characters.
signature = "rusEFI 2020.07.30.proteus_f4.1399371712" ; signature is expected to be 7 or more characters.
[Constants]
; new packet serial format with CRC
@ -76,7 +76,7 @@ enable2ndByteCanID = false
; see PAGE_0_SIZE in C source code
; CONFIG_DEFINITION_START
; this section was generated automatically by rusEfi tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Tue Jul 28 13:12:23 UTC 2020
; this section was generated automatically by rusEfi tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Thu Jul 30 19:35:07 UTC 2020
pageSize = 20000
page = 1
@ -1640,7 +1640,6 @@ page = 1
; todo: generate this section programatically
LM_PLAIN_MAF = {0},
LM_ALPHA_N = {1},
LM_SPEED_DENSITY = {3},
LM_REAL_MAF = {4}
@ -2373,6 +2372,7 @@ gaugeCategory = Sensors - Raw
entry = intake, "IAT", float, "%.2f"
entry = oilPressure, "Oil Press", float, "%.1f"
entry = TPSValue, "TPS", float, "%.2f"
entry = TPS2Value, "TPS2", float, "%.2f"
entry = MAFValue, "MAF", float, "%.2f"
entry = MAPValue, "MAP", float, "%.1f"
entry = AFRValue, "Air/Fuel Ratio", float, "%.2f"
@ -2767,7 +2767,10 @@ cmd_dfu = "w\x00\xba\x00\x00"
cmd_set_engine_type_microRusEFI_Miata_NB2_MAP = "w\x00\x30\x00\x0b"
; MRE_MIATA_NA6 12
cmd_set_engine_type_microRusEFI_Miata_NA6 = "w\x00\x30\x00\x0c"
cmd_set_engine_type_microRusEFI_Miata_NA6_VAF = "w\x00\x30\x00\x0c"
cmd_set_engine_type_microRusEFI_Miata_NA6_MAP = "w\x00\x30\x00\x42"
; MRE_MIATA_NB2_MAF = 15
cmd_set_engine_type_microRusEFI_Miata_NB2_MAF = "w\x00\x30\x00\x0f"
@ -2793,7 +2796,6 @@ cmd_set_engine_type_default = "w\x00\x31\x00\x00"
[UserDefined]
dialog = fuelTableBottomDialog, "", card
panel = fuelTableMAFTbl, Center, {fuelAlgorithm==LM_PLAIN_MAF}
panel = fuelTableTPSTbl, Center, {fuelAlgorithm==LM_ALPHA_N}
panel = fuelTableELTbl, Center
dialog = fuelTableRight, "", yAxis
@ -4207,6 +4209,8 @@ cmd_set_engine_type_default = "w\x00\x31\x00\x00"
commandButton = "Frankenso Miata NA6 Stage 1", cmd_set_engine_type_Frankenso_Miata_NA6_MAP
commandButton = "Frankenso Miata NB2 MAP", cmd_set_engine_type_Frankenso_Miata_NB2
commandButton = "microRusEFI Miata NA6 VAF", cmd_set_engine_type_microRusEFI_Miata_NA6_VAF
commandButton = "microRusEFI Miata NA6 MAP", cmd_set_engine_type_microRusEFI_Miata_NA6_MAP
commandButton = "microRusEfi Miata NB2 MAP", cmd_set_engine_type_microRusEFI_Miata_NB2_MAP
commandButton = "microRusEFI Miata NB2 MAF", cmd_set_engine_type_microRusEFI_Miata_NB2_MAF
commandButton = "microRusEFI Defaults", cmd_set_engine_type_microRusEFI_Defaults

View File

@ -33,12 +33,12 @@ enable2ndByteCanID = false
[MegaTune]
; https://rusefi.com/forum/viewtopic.php?p=36201#p36201
signature = "rusEFI 2020.07.28.proteus_f7.3597138346"
signature = "rusEFI 2020.07.30.proteus_f7.1399371712"
[TunerStudio]
queryCommand = "S"
versionInfo = "V" ; firmwave version for title bar.
signature = "rusEFI 2020.07.28.proteus_f7.3597138346" ; signature is expected to be 7 or more characters.
signature = "rusEFI 2020.07.30.proteus_f7.1399371712" ; signature is expected to be 7 or more characters.
[Constants]
; new packet serial format with CRC
@ -76,7 +76,7 @@ enable2ndByteCanID = false
; see PAGE_0_SIZE in C source code
; CONFIG_DEFINITION_START
; this section was generated automatically by rusEfi tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Tue Jul 28 13:12:22 UTC 2020
; this section was generated automatically by rusEfi tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Thu Jul 30 19:35:06 UTC 2020
pageSize = 20000
page = 1
@ -1640,7 +1640,6 @@ page = 1
; todo: generate this section programatically
LM_PLAIN_MAF = {0},
LM_ALPHA_N = {1},
LM_SPEED_DENSITY = {3},
LM_REAL_MAF = {4}
@ -2373,6 +2372,7 @@ gaugeCategory = Sensors - Raw
entry = intake, "IAT", float, "%.2f"
entry = oilPressure, "Oil Press", float, "%.1f"
entry = TPSValue, "TPS", float, "%.2f"
entry = TPS2Value, "TPS2", float, "%.2f"
entry = MAFValue, "MAF", float, "%.2f"
entry = MAPValue, "MAP", float, "%.1f"
entry = AFRValue, "Air/Fuel Ratio", float, "%.2f"
@ -2767,7 +2767,10 @@ cmd_dfu = "w\x00\xba\x00\x00"
cmd_set_engine_type_microRusEFI_Miata_NB2_MAP = "w\x00\x30\x00\x0b"
; MRE_MIATA_NA6 12
cmd_set_engine_type_microRusEFI_Miata_NA6 = "w\x00\x30\x00\x0c"
cmd_set_engine_type_microRusEFI_Miata_NA6_VAF = "w\x00\x30\x00\x0c"
cmd_set_engine_type_microRusEFI_Miata_NA6_MAP = "w\x00\x30\x00\x42"
; MRE_MIATA_NB2_MAF = 15
cmd_set_engine_type_microRusEFI_Miata_NB2_MAF = "w\x00\x30\x00\x0f"
@ -2793,7 +2796,6 @@ cmd_set_engine_type_default = "w\x00\x31\x00\x00"
[UserDefined]
dialog = fuelTableBottomDialog, "", card
panel = fuelTableMAFTbl, Center, {fuelAlgorithm==LM_PLAIN_MAF}
panel = fuelTableTPSTbl, Center, {fuelAlgorithm==LM_ALPHA_N}
panel = fuelTableELTbl, Center
dialog = fuelTableRight, "", yAxis
@ -4207,6 +4209,8 @@ cmd_set_engine_type_default = "w\x00\x31\x00\x00"
commandButton = "Frankenso Miata NA6 Stage 1", cmd_set_engine_type_Frankenso_Miata_NA6_MAP
commandButton = "Frankenso Miata NB2 MAP", cmd_set_engine_type_Frankenso_Miata_NB2
commandButton = "microRusEFI Miata NA6 VAF", cmd_set_engine_type_microRusEFI_Miata_NA6_VAF
commandButton = "microRusEFI Miata NA6 MAP", cmd_set_engine_type_microRusEFI_Miata_NA6_MAP
commandButton = "microRusEfi Miata NB2 MAP", cmd_set_engine_type_microRusEFI_Miata_NB2_MAP
commandButton = "microRusEFI Miata NB2 MAF", cmd_set_engine_type_microRusEFI_Miata_NB2_MAF
commandButton = "microRusEFI Defaults", cmd_set_engine_type_microRusEFI_Defaults

View File

@ -354,7 +354,6 @@ enable2ndByteCanID = false
;
; todo: generate this section programatically
LM_ALPHA_N = {1},
LM_SPEED_DENSITY = {3},
LM_REAL_MAF = {4}
@ -1077,6 +1076,7 @@ gaugeCategory = Sensors - Raw
entry = intake, @@GAUGE_NAME_IAT@@, float, "%.2f"
entry = oilPressure, "Oil Press", float, "%.1f"
entry = TPSValue, @@GAUGE_NAME_TPS@@, float, "%.2f"
entry = TPS2Value, @@GAUGE_NAME_TPS2@@, float, "%.2f"
entry = MAFValue, @@GAUGE_NAME_MAF@@, float, "%.2f"
entry = MAPValue, @@GAUGE_NAME_MAP@@, float, "%.1f"
entry = AFRValue, @@GAUGE_NAME_AFR@@, float, "%.2f"
@ -1480,7 +1480,10 @@ cmd_dfu = "w\x00\xba\x00\x00"
cmd_set_engine_type_microRusEFI_Miata_NB2_MAP = "w\x00\x30@@ET_MRE_MIATA_NB2_MAP_16_hex@@"
; MRE_MIATA_NA6 12
cmd_set_engine_type_microRusEFI_Miata_NA6 = "w\x00\x30@@ET_MRE_MIATA_NA6_16_hex@@"
cmd_set_engine_type_microRusEFI_Miata_NA6_VAF = "w\x00\x30@@ET_MRE_MIATA_NA6_VAF_16_hex@@"
cmd_set_engine_type_microRusEFI_Miata_NA6_MAP = "w\x00\x30@@ET_MRE_MIATA_NA6_MAP_16_hex@@"
; MRE_MIATA_NB2_MAF = 15
cmd_set_engine_type_microRusEFI_Miata_NB2_MAF = "w\x00\x30@@ET_MRE_MIATA_NB2_MAF_16_hex@@"
@ -1505,7 +1508,6 @@ cmd_set_engine_type_default = "w\x00\x31\x00\x00"
[UserDefined]
dialog = fuelTableBottomDialog, "", card
panel = fuelTableTPSTbl, Center, {fuelAlgorithm==LM_ALPHA_N}
panel = fuelTableELTbl, Center
dialog = fuelTableRight, "", yAxis
@ -2934,6 +2936,8 @@ cmd_set_engine_type_default = "w\x00\x31\x00\x00"
commandButton = "Frankenso Miata NA6 Stage 1", cmd_set_engine_type_Frankenso_Miata_NA6_MAP@@if_show_Frankenso_presets
commandButton = "Frankenso Miata NB2 MAP", cmd_set_engine_type_Frankenso_Miata_NB2@@if_show_Frankenso_presets
commandButton = "microRusEFI Miata NA6 VAF", cmd_set_engine_type_microRusEFI_Miata_NA6_VAF@@if_show_microRusEFI_presets
commandButton = "microRusEFI Miata NA6 MAP", cmd_set_engine_type_microRusEFI_Miata_NA6_MAP@@if_show_microRusEFI_presets
commandButton = "microRusEfi Miata NB2 MAP", cmd_set_engine_type_microRusEFI_Miata_NB2_MAP@@if_show_microRusEFI_presets
commandButton = "microRusEFI Miata NB2 MAF", cmd_set_engine_type_microRusEFI_Miata_NB2_MAF@@if_show_microRusEFI_presets
commandButton = "microRusEFI Defaults", cmd_set_engine_type_microRusEFI_Defaults@@if_show_microRusEFI_presets

View File

@ -1,66 +0,0 @@
/*@
* @file data_buffer.c
*
* @date Dec 8, 2012
* @author Andrey Belomutskiy, (c) 2012-2020
*/
#include "data_buffer.h"
int dbIsFull(data_buffer_s *db) {
return db->size == DB_MAX_SIZE;
}
void dbClear(data_buffer_s *db) {
db->size = 0;
}
void dbCopy(data_buffer_s *source, data_buffer_s *target) {
int s = source->size;
target->size = s;
for (int i = 0; i < s; i++)
target->elements[i] = source->elements[i];
}
void dbAdd(data_buffer_s *db, int value) {
if (db->size == DB_MAX_SIZE)
return;
int s = db->size;
db->elements[s] = value;
db->size = s + 1;
}
int modp(int param) {
return param > EF_PERIOD ? param - EF_PERIOD : param;
}
//void dbPrint(data_buffer_s *db, char *message, int withDiff) {
// int s = db->size;
// print("buffer [%s] size=%d\r\n", message, s);
// int range = db->elements[s - 1] - db->elements[0];
// print("range %d\r\n", range);
//
// for (int i = 0; i < s; i++) {
// print("%d: %d", i, db->elements[i]);
// if (withDiff && i > 0) {
// int diff = modp(db->elements[i]) - modp(db->elements[i - 1]);
// print(" t=%d", diff);
// }
// print("\r\n");
// }
//}
//void dbPrintTable(data_buffer_s *table[], char *caption[], int columns) {
// for (int c = 0; c < columns; c++)
// print("%7s", caption[c]);
// print("\r\n");
//
// for (int r = 0; r < DB_MAX_SIZE; r++) {
// for (int c = 0; c < columns; c++) {
// data_buffer_s *buf = table[c];
// print("%7d", buf->elements[r]);
// }
// print("\r\n");
// }
//}

View File

@ -1,24 +0,0 @@
/*
* data_buffer.h
*
* @date Dec 8, 2012
* @author Andrey Belomutskiy, (c) 2012-2020
*/
#pragma once
#define DB_MAX_SIZE 1024
#define EF_PERIOD 100000000
typedef struct {
int elements[DB_MAX_SIZE];
int size;
} data_buffer_s;
int dbIsFull(data_buffer_s *db);
void dbClear(data_buffer_s *db);
void dbAdd(data_buffer_s *db, int value);
void dbCopy(data_buffer_s *source, data_buffer_s *target);
void dbPrint(data_buffer_s *db, char *message, int withDiff);
void dbPrintTable(data_buffer_s *table[], char *caption[], int columns);

View File

@ -112,7 +112,7 @@ void append(Logging *logging, const char *text) {
* @note This method if fast because it does not validate much, be sure what you are doing
*/
void appendFast(Logging *logging, const char *text) {
register char *s;
char *s;
s = logging->linePointer;
while ((*s++ = *text++) != 0)
;

View File

@ -64,7 +64,7 @@ float clampF(float min, float clamp, float max) {
}
uint32_t efiStrlen(const char *param) {
register const char *s;
const char *s;
for (s = param; *s; ++s)
;
return (s - param);

View File

@ -1,60 +0,0 @@
/*
* avg_values.c
*
* @date Jul 23, 2013
* @author Andrey Belomutskiy, (c) 2012-2020
*/
#include "avg_values.h"
#include <math.h>
void avgFill(AvgTable *table, int count, float value) {
for (int i = 0; i < AVG_TAB_SIZE; i++) {
for (int j = 0; j < AVG_TAB_SIZE; j++) {
table->counts[i][j] = count;
table->values[i][j] = value;
}
}
}
void avgReset(AvgTable *table) {
avgFill(table, 0, 0);
}
void avgAddValue(AvgTable *table, int rpm, float key, float value) {
if (rpm >= MAX_RPM || key >= MAX_KEY) {
return;
}
int i = (int)(AVG_TAB_SIZE * rpm / MAX_RPM);
int j = (int)(AVG_TAB_SIZE * key / MAX_KEY);
table->values[i][j] += value;
table->counts[i][j]++;
}
float avgGetValueByIndexes(AvgTable *table, int i, int j) {
int count = table->counts[i][j];
if (count == 0) {
return NAN;
}
return table->values[i][j] / count;
}
float avgGetValue(AvgTable *table, int rpm, float key) {
if (rpm >= MAX_RPM || key >= MAX_KEY) {
return NAN;
}
int i = (int)(AVG_TAB_SIZE * rpm / MAX_RPM);
int j = (int)(AVG_TAB_SIZE * key / MAX_KEY);
return avgGetValueByIndexes(table, i, j);
}
int avgGetValuesCount(AvgTable *table, int rpm, float key) {
if (rpm >= MAX_RPM || key >= MAX_KEY) {
return 0;
}
int i = (int)(AVG_TAB_SIZE * rpm / MAX_RPM);
int j = (int)(AVG_TAB_SIZE * key / MAX_KEY);
return table->counts[i][j];
}

View File

@ -1,27 +0,0 @@
/*
* avg_values.h
*
* @date Jul 23, 2013
* @author Andrey Belomutskiy, (c) 2012-2020
*/
#pragma once
#define AVG_TAB_SIZE 48
#define MAX_RPM 8000
#define MAX_KEY 5
typedef struct {
float values[AVG_TAB_SIZE][AVG_TAB_SIZE];
int counts[AVG_TAB_SIZE][AVG_TAB_SIZE];
} AvgTable;
void avgReset(AvgTable *table);
void avgFill(AvgTable *table, int count, float value);
void avgAddValue(AvgTable *table, int rpm, float key, float value);
float avgGetValueByIndexes(AvgTable *table, int i, int j);
float avgGetValue(AvgTable *table, int rpm, float key);
int avgGetValuesCount(AvgTable *table, int rpm, float key);

View File

@ -1,63 +0,0 @@
/*
* @file signal_filtering.c
*
* @date Aug 5, 2013
* @author Andrey Belomutskiy, (c) 2012-2020
*/
#ifndef SIGNAL_FILTERING_C_
#define SIGNAL_FILTERING_C_
#include "signal_filtering.h"
void sfInit(SignalFiltering *fs, float K, float initialValue) {
fs->pointer = 0;
fs->K = K;
fs->Vout = initialValue;
fs->Vacc = initialValue * K;
}
static void addCopyAndSort(SignalFiltering *fs, float value) {
fs->values[fs->pointer] = value;
fs->pointer = ++fs->pointer == FILTER_SIZE ? 0 : fs->pointer;
copyArray(fs->sorted, fs->values);
for (int i = 0; i < FILTER_SIZE; i++)
for (int j = i + 1; j < FILTER_SIZE; j++)
if (fs->sorted[i] < fs->sorted[j]) {
float temp = fs->sorted[i];
fs->sorted[i] = fs->sorted[j];
fs->sorted[j] = temp;
}
}
void sfAddValue(SignalFiltering *fs, float value) {
addCopyAndSort(fs, value);
float Vin = fs->sorted[FILTER_SIZE / 2];
fs->Vacc += Vin - fs->Vout;
fs->Vout = fs->Vacc / fs->K;
}
void sfAddValue2(SignalFiltering *fs, float value) {
addCopyAndSort(fs, value);
int fromIndex = FILTER_SIZE / 4;
int toIndex = FILTER_SIZE / 4 + FILTER_SIZE / 2;
/**
* this implementation takes the average of the middle hald of the sorted values
*/
float result = 0;
for (int i = fromIndex; i < toIndex; i++)
result += fs->sorted[i];
fs->Vout = result / (FILTER_SIZE / 2);
}
float sfGetValue(SignalFiltering *fs) {
return fs->Vout;
}
#endif /* SIGNAL_FILTERING_C_ */

View File

@ -1,22 +0,0 @@
/*
* @file signal_filtering.h
*
* @date Aug 5, 2013
* @author Andrey Belomutskiy, (c) 2012-2020
*/
#pragma once
#define FILTER_SIZE 5
typedef struct {
float values[FILTER_SIZE];
float sorted[FILTER_SIZE];
int pointer;
float K, Vacc, Vout;
} SignalFiltering;
void sfInit(SignalFiltering *fs, float K, float initialValue);
void sfAddValue(SignalFiltering *fs, float value);
void sfAddValue2(SignalFiltering *fs, float value);
float sfGetValue(SignalFiltering *fs);

View File

@ -1,113 +0,0 @@
/**
* @file unaligned.c
* @brief unaligned data access helpers
*
* @date May, 2019
* @author Andrey Gusakov, (c) 2019
*
* This file is part of rusEfi - see http://rusefi.com
*
* rusEfi is free software; you can redistribute it and/or modify it under the terms of
* the GNU General Public License as published by the Free Software Foundation; either
* version 3 of the License, or (at your option) any later version.
*
* rusEfi is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without
* even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License along with this program.
* If not, see <http://www.gnu.org/licenses/>.
*/
#include "unaligned.h"
#include "common.h"
/* generate mask */
static inline uint32_t bit_mask(unsigned int from, unsigned int to)
{
uint32_t mask = 0;
uint32_t shift;
if (to < from)
return 0;
shift = to - from + 1U;
if ((shift > 0U) && (shift <= 32U) && (from <= 31U)) {
if (shift < 32U) {
mask = (uint32_t)((1UL << shift) - 1UL);
mask = mask << from;
} else {
mask = 0xFFFFFFFFUL;
}
}
return mask;
}
/* get upto 32 bits from char array p, from bit position pos, lenght len */
uint32_t bits_get(uint8_t *p, unsigned int pos, int len)
{
int i;
unsigned int offset = 0;
uint32_t res = 0;
i = (int)pos / 8;
while (len > 0) {
uint32_t tmp;
uint32_t mask;
int nbits = 8 - ((int)pos % 8);
/* get */
tmp = (uint32_t)p[i];
/* shift */
tmp = tmp >> (8U - (uint32_t)nbits);
/* mask */
mask = bit_mask(0, MIN((uint32_t)len - 1U, (uint32_t)nbits - 1U));
tmp = tmp & mask;
res = res | ((tmp) << offset);
/* adjust for the next iteration */
offset += (unsigned int)nbits;
len -= nbits;
pos += (unsigned int)nbits;
i++;
}
return res;
}
/* set upto 32 bits in char array p, from bit position pos, lenght len */
void bits_set(uint8_t *p, unsigned int pos, int len, uint32_t val)
{
int i;
unsigned int offset = 0;
i = (int)pos / 8;
while (len > 0) {
uint32_t tmp;
uint32_t mask;
/* get number of bits to shift to get to the target range */
int shift = (int)pos % 8;
/* get next byte */
tmp = (val >> offset) & 0xffU;
/* shift temporary value to the start of the target range */
tmp = tmp << (uint8_t)shift;
/* calculate mask */
mask = bit_mask((uint32_t)shift, MIN(8U - 1U, (unsigned int)shift + (unsigned int)len - 1U));
/* clean all bits outside of the target range */
tmp &= mask;
/* pre-clean all target bits */
p[i] = p[i] & ~((uint8_t)mask);
/* finally set active bits */
p[i] |= (uint8_t)tmp;
/* adjust for the next iteration */
offset += ((uint32_t)8U - (uint32_t)shift);
len -= (8 - shift);
pos += ((unsigned int)8U - (unsigned int)shift);
i++;
}
}

View File

@ -1,105 +0,0 @@
/**
* @file unaligned.h
* @brief unaligned data access helpers header file
*
* @date May, 2019
* @author Andrey Gusakov, (c) 2019
*
* This file is part of rusEfi - see http://rusefi.com
*
* rusEfi is free software; you can redistribute it and/or modify it under the terms of
* the GNU General Public License as published by the Free Software Foundation; either
* version 3 of the License, or (at your option) any later version.
*
* rusEfi is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without
* even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License along with this program.
* If not, see <http://www.gnu.org/licenses/>.
*/
#ifndef UNALIGNED_H_INCLUDED
#define UNALIGNED_H_INCLUDED
#include <stdint.h>
/* bit operations */
uint32_t bits_get(uint8_t *p, unsigned int pos, int len);
void bits_set(uint8_t *p, unsigned int pos, int len, uint32_t val);
#define bit_set(p, pos) do {(p)[(pos) / 8] |= (1 << ((pos) % 8));} while(0)
#define bit_clr(p, pos) do {(p)[(pos) / 8] &= ~(1 << ((pos) % 8));} while(0)
#define bit_get(p, pos) (!!((p)[(pos) / 8] & (1 << ((pos) % 8))))
/* unaligned access */
static inline void put_be8(uint8_t *p, uint8_t v)
{
p[0] = v;
}
static inline void put_le8(uint8_t *p, uint8_t v)
{
p[0] = v;
}
static inline void put_be16(uint8_t *p, uint16_t v)
{
p[0] = (uint8_t)(v >> 8);
p[1] = (uint8_t)(v >> 0);
}
static inline void put_le16(uint8_t *p, uint16_t v)
{
p[0] = (uint8_t)(v >> 0);
p[1] = (uint8_t)(v >> 8);
}
static inline void put_be32(uint8_t *p, uint32_t v)
{
p[0] = (uint8_t)(v >> 24);
p[1] = (uint8_t)(v >> 16);
p[2] = (uint8_t)(v >> 8);
p[3] = (uint8_t)(v >> 0);
}
static inline void put_le32(uint8_t *p, uint32_t v)
{
p[0] = (uint8_t)(v >> 0);
p[1] = (uint8_t)(v >> 8);
p[2] = (uint8_t)(v >> 16);
p[3] = (uint8_t)(v >> 24);
}
static inline uint8_t get_be8(uint8_t *p)
{
return p[0];
}
static inline uint8_t get_le8(uint8_t *p)
{
return p[0];
}
static inline uint16_t get_be16(uint8_t *p)
{
return ((uint16_t)p[0] << 8) | p[1];
}
static inline uint16_t get_le16(uint8_t *p)
{
return ((uint16_t)p[1] << 8) | p[0];
}
static inline uint32_t get_be32(uint8_t *p)
{
return ((uint32_t)p[0] << 24) | ((uint32_t)p[1] << 16) |
((uint32_t)p[2] << 8) | p[3];
}
static inline uint32_t get_le32(uint8_t *p)
{
return ((uint32_t)p[3] << 24) | ((uint32_t)p[2] << 16) |
((uint32_t)p[1] << 8) | p[0];
}
#endif /* UNALIGNED_H_INCLUDED */

View File

@ -1,11 +1,9 @@
UTIL_DIR=$(PROJECT_DIR)/util
UTILSRC = \
$(UTIL_DIR)/containers/data_buffer.c \
$(UTIL_DIR)/math/crc.c \
$(UTIL_DIR)/os_util.c \
$(UTIL_DIR)/histogram.c \
$(UTIL_DIR)/unaligned.c
$(UTIL_DIR)/histogram.c
UTILSRC_CPP = \
$(UTIL_DIR)/containers/cyclic_buffer.cpp \
@ -14,7 +12,6 @@ UTILSRC_CPP = \
$(UTIL_DIR)/containers/local_version_holder.cpp \
$(UTIL_DIR)/containers/table_helper.cpp \
$(UTIL_DIR)/math/pid.cpp \
$(UTIL_DIR)/math/avg_values.cpp \
$(UTIL_DIR)/math/interpolation.cpp \
$(PROJECT_DIR)/util/datalogging.cpp \
$(PROJECT_DIR)/util/loggingcentral.cpp \

View File

@ -2,7 +2,7 @@ autoupdate_build
rusefi_autoupdate.jar
logs/
rusefi_console_properties.xml
output.c
generated*.cpp
currenttune.msq
output.msq
rusefi.ini

View File

@ -0,0 +1,16 @@
<component name="ProjectRunConfigurationManager">
<configuration default="false" name="TS2CRunner" type="Application" factoryName="Application" nameIsGenerated="true">
<option name="MAIN_CLASS_NAME" value="com.rusefi.tools.tune.TS2CRunner" />
<module name="models" />
<option name="VM_PARAMETERS" value="-Dini_file_path=." />
<extension name="coverage">
<pattern>
<option name="PATTERN" value="com.rusefi.tools.tune.*" />
<option name="ENABLED" value="true" />
</pattern>
</extension>
<method v="2">
<option name="Make" enabled="true" />
</method>
</configuration>
</component>

View File

@ -1,6 +1,6 @@
<component name="ProjectRunConfigurationManager">
<configuration default="false" name="TS2C fsioTable1" type="Application" factoryName="Application">
<option name="MAIN_CLASS_NAME" value="com.rusefi.TS2C" />
<option name="MAIN_CLASS_NAME" value="com.rusefi.tools.tune.TS2C" />
<module name="models" />
<option name="PROGRAM_PARAMETERS" value="currenttune.msq fsioTable1LoadBins fsioTable1RpmBins fsioTable1 8" />
<option name="WORKING_DIRECTORY" value="file://$PROJECT_DIR$" />

View File

@ -1,6 +1,6 @@
<component name="ProjectRunConfigurationManager">
<configuration default="false" name="TS2C fuelTable" type="Application" factoryName="Application">
<option name="MAIN_CLASS_NAME" value="com.rusefi.TS2C" />
<option name="MAIN_CLASS_NAME" value="com.rusefi.tools.tune.TS2C" />
<module name="models" />
<option name="PROGRAM_PARAMETERS" value="currenttune.msq fuelLoadBins fuelRpmBins fuelTable" />
<option name="WORKING_DIRECTORY" value="file://$PROJECT_DIR$" />

View File

@ -1,6 +1,6 @@
<component name="ProjectRunConfigurationManager">
<configuration default="false" name="TS2C ignitionTable" type="Application" factoryName="Application">
<option name="MAIN_CLASS_NAME" value="com.rusefi.TS2C" />
<option name="MAIN_CLASS_NAME" value="com.rusefi.tools.tune.TS2C" />
<module name="models" />
<option name="PROGRAM_PARAMETERS" value="currenttune.msq ignitionLoadBins ignitionRpmBins ignitionTable" />
<option name="WORKING_DIRECTORY" value="file://$PROJECT_DIR$" />

View File

@ -1,6 +1,6 @@
<component name="ProjectRunConfigurationManager">
<configuration default="false" name="TS2C targetAFR" type="Application" factoryName="Application">
<option name="MAIN_CLASS_NAME" value="com.rusefi.TS2C" />
<option name="MAIN_CLASS_NAME" value="com.rusefi.tools.tune.TS2C" />
<module name="models" />
<option name="PROGRAM_PARAMETERS" value="currenttune.msq afrLoadBins afrRpmBins afrTable" />
<option name="WORKING_DIRECTORY" value="file://$PROJECT_DIR$" />

Some files were not shown because too many files have changed in this diff Show More