diff --git a/firmware/controllers/algo/auto_generated_enums.cpp b/firmware/controllers/algo/auto_generated_enums.cpp index ca740add5a..ec9ca30f3b 100644 --- a/firmware/controllers/algo/auto_generated_enums.cpp +++ b/firmware/controllers/algo/auto_generated_enums.cpp @@ -177,6 +177,8 @@ case TT_MAZDA_MIATA_NB1: return "TT_MAZDA_MIATA_NB1"; case TT_MAZDA_MIATA_VVT_TEST: return "TT_MAZDA_MIATA_VVT_TEST"; +case TT_SUBARU_7_6: + return "TT_SUBARU_7_6"; case TT_MINI_COOPER_R50: return "TT_MINI_COOPER_R50"; case TT_MITSU: diff --git a/firmware/controllers/algo/rusefi_enums.h b/firmware/controllers/algo/rusefi_enums.h index fbe390e23a..80f854068c 100644 --- a/firmware/controllers/algo/rusefi_enums.h +++ b/firmware/controllers/algo/rusefi_enums.h @@ -219,7 +219,9 @@ typedef enum { */ TT_MAZDA_MIATA_VVT_TEST = 35, - TT_UNUSED = 36, // this is used if we want to iterate over all trigger types + TT_SUBARU_7_6 = 36, + + TT_UNUSED = 37, // this is used if we want to iterate over all trigger types Force_4b_trigger_type = ENUM_32_BITS, } trigger_type_e; diff --git a/firmware/controllers/trigger/trigger_mazda.cpp b/firmware/controllers/trigger/decoders/trigger_mazda.cpp similarity index 100% rename from firmware/controllers/trigger/trigger_mazda.cpp rename to firmware/controllers/trigger/decoders/trigger_mazda.cpp diff --git a/firmware/controllers/trigger/trigger_subaru.cpp b/firmware/controllers/trigger/decoders/trigger_subaru.cpp similarity index 51% rename from firmware/controllers/trigger/trigger_subaru.cpp rename to firmware/controllers/trigger/decoders/trigger_subaru.cpp index 5dba5274fc..0e4973a0c9 100644 --- a/firmware/controllers/trigger/trigger_subaru.cpp +++ b/firmware/controllers/trigger/decoders/trigger_subaru.cpp @@ -45,3 +45,41 @@ void initialize36_2_2_2(TriggerShape *s DECLARE_ENGINE_PARAMETER_S) { s->addEvent2(720, T_PRIMARY, TV_FALL PASS_ENGINE_PARAMETER); s->useOnlyPrimaryForSync = true; } + +void initializeSubaru7_6(TriggerShape *s DECLARE_ENGINE_PARAMETER_S) { + s->initialize(FOUR_STROKE_CAM_SENSOR, false); + + float t2 = 25; + float t3 = 15; + float width = 5; + + s->addEvent2(180 - width / 2, T_PRIMARY, TV_RISE PASS_ENGINE_PARAMETER); + s->addEvent2(180, T_PRIMARY, TV_FALL PASS_ENGINE_PARAMETER); + + s->addEvent2(360 - t2 - width / 2, T_PRIMARY, TV_RISE PASS_ENGINE_PARAMETER); + s->addEvent2(360 - t2, T_PRIMARY, TV_FALL PASS_ENGINE_PARAMETER); + + s->addEvent2(360 - width / 2, T_PRIMARY, TV_RISE PASS_ENGINE_PARAMETER); + s->addEvent2(360, T_PRIMARY, TV_FALL PASS_ENGINE_PARAMETER); + + s->addEvent2(540 - width / 2, T_PRIMARY, TV_RISE PASS_ENGINE_PARAMETER); + s->addEvent2(540, T_PRIMARY, TV_FALL PASS_ENGINE_PARAMETER); + + + s->addEvent2(720 - 2 * t3 - width / 2, T_PRIMARY, TV_RISE PASS_ENGINE_PARAMETER); + s->addEvent2(720 - 2 * t3, T_PRIMARY, TV_FALL PASS_ENGINE_PARAMETER); + + s->addEvent2(720 - t3 - width / 2, T_PRIMARY, TV_RISE PASS_ENGINE_PARAMETER); + s->addEvent2(720 - t3, T_PRIMARY, TV_FALL PASS_ENGINE_PARAMETER); + + + s->addEvent2(720 - width / 2, T_PRIMARY, TV_RISE PASS_ENGINE_PARAMETER); + s->addEvent2(720, T_PRIMARY, TV_FALL PASS_ENGINE_PARAMETER); + + s->setTriggerSynchronizationGap(12); + + s->isSynchronizationNeeded = true; + + s->useOnlyPrimaryForSync = true; + +} diff --git a/firmware/controllers/trigger/decoders/trigger_subaru.h b/firmware/controllers/trigger/decoders/trigger_subaru.h index d70e4e729d..c06fc528d6 100644 --- a/firmware/controllers/trigger/decoders/trigger_subaru.h +++ b/firmware/controllers/trigger/decoders/trigger_subaru.h @@ -11,5 +11,6 @@ #include "engine.h" void initialize36_2_2_2(TriggerShape *s DECLARE_ENGINE_PARAMETER_S); +void initializeSubaru7_6(TriggerShape *s DECLARE_ENGINE_PARAMETER_S); #endif /* CONTROLLERS_TRIGGER_TRIGGER_SUBARU_H_ */ diff --git a/firmware/controllers/trigger/trigger_toyota.cpp b/firmware/controllers/trigger/decoders/trigger_toyota.cpp similarity index 100% rename from firmware/controllers/trigger/trigger_toyota.cpp rename to firmware/controllers/trigger/decoders/trigger_toyota.cpp diff --git a/firmware/controllers/trigger/trigger.mk b/firmware/controllers/trigger/trigger.mk index 26131f4144..a50de55daf 100644 --- a/firmware/controllers/trigger/trigger.mk +++ b/firmware/controllers/trigger/trigger.mk @@ -1,15 +1,15 @@ TRIGGER_DECODERS_SRC_CPP = \ $(PROJECT_DIR)/controllers/trigger/trigger_bmw.cpp \ - $(PROJECT_DIR)/controllers/trigger/trigger_mazda.cpp \ + $(PROJECT_DIR)/controllers/trigger/decoders/trigger_mazda.cpp \ $(PROJECT_DIR)/controllers/trigger/trigger_chrysler.cpp \ $(PROJECT_DIR)/controllers/trigger/trigger_structure.cpp \ $(PROJECT_DIR)/controllers/trigger/trigger_decoder.cpp \ $(PROJECT_DIR)/controllers/trigger/trigger_simulator.cpp \ $(PROJECT_DIR)/controllers/trigger/trigger_mitsubishi.cpp \ $(PROJECT_DIR)/controllers/trigger/trigger_nissan.cpp \ - $(PROJECT_DIR)/controllers/trigger/trigger_subaru.cpp \ - $(PROJECT_DIR)/controllers/trigger/trigger_toyota.cpp \ + $(PROJECT_DIR)/controllers/trigger/decoders/trigger_subaru.cpp \ + $(PROJECT_DIR)/controllers/trigger/decoders/trigger_toyota.cpp \ $(PROJECT_DIR)/controllers/trigger/trigger_gm.cpp \ $(PROJECT_DIR)/controllers/trigger/trigger_honda.cpp \ $(PROJECT_DIR)/controllers/trigger/trigger_rover.cpp diff --git a/firmware/controllers/trigger/trigger_decoder.cpp b/firmware/controllers/trigger/trigger_decoder.cpp index b96a176bba..53308c39c6 100644 --- a/firmware/controllers/trigger/trigger_decoder.cpp +++ b/firmware/controllers/trigger/trigger_decoder.cpp @@ -591,6 +591,10 @@ void TriggerShape::initializeTriggerShape(Logging *logger DECLARE_ENGINE_PARAMET initDodgeRam(triggerShape PASS_ENGINE_PARAMETER); break; + case TT_SUBARU_7_6: + initializeSubaru7_6(triggerShape PASS_ENGINE_PARAMETER); + break; + case TT_36_2_2_2: initialize36_2_2_2(triggerShape PASS_ENGINE_PARAMETER); break; diff --git a/firmware/integration/rusefi_config.txt b/firmware/integration/rusefi_config.txt index 09aaf82906..375e17e56b 100644 --- a/firmware/integration/rusefi_config.txt +++ b/firmware/integration/rusefi_config.txt @@ -334,7 +334,7 @@ struct trigger_config_s @brief Trigger wheel(s) configuration custom bool32_t 4 bits, U32, @OFFSET@, [0:0], "false", "true" -#define trigger_type_e_enum "custom toothed wheel", "ford aspire", "dodge neon", "Miata NA", "Miata NB", "GM_7X", "Cooper", "Mazda SOHC 4", "60/2", "36/1", "Accord CD", "MITSU", "ACCORD 2", "ACCORD DIP", "Neon 2003", "MAZDA D 1+4", "1+1", "1+60/2", "Single Tooth", "Dodge Ram 1+16", "60/2 VW", "Accord 1+24", "DODGE STRATUS", "36_2_2_2", "Nissan", "2JZ", "Rover K", "GM LS 24", "Honda CBR 600", "2JZ_1_12", "Honda CBR 600 custom", "3/1 skipped" , "2003 neon crank", "Miata VVT", "INVALID", "INVALID", "INVALID", "INVALID" +#define trigger_type_e_enum "custom toothed wheel", "ford aspire", "dodge neon", "Miata NA", "Miata NB", "GM_7X", "Cooper", "Mazda SOHC 4", "60/2", "36/1", "Accord CD", "MITSU", "ACCORD 2", "ACCORD DIP", "Neon 2003", "MAZDA D 1+4", "1+1", "1+60/2", "Single Tooth", "Dodge Ram 1+16", "60/2 VW", "Accord 1+24", "DODGE STRATUS", "36_2_2_2", "Nissan", "2JZ", "Rover K", "GM LS 24", "Honda CBR 600", "2JZ_1_12", "Honda CBR 600 custom", "3/1 skipped" , "2003 neon crank", "Miata VVT", "trg34", "trg35", "Subaru 7+6", "INVALID", "INVALID", "INVALID", "INVALID" custom trigger_type_e 4 bits, U32, @OFFSET@, [0:5], @@trigger_type_e_enum@@ trigger_type_e type;set_trigger_type X diff --git a/firmware/svnversion.h b/firmware/svnversion.h index b34025bae6..5f4d3ca1b3 100644 --- a/firmware/svnversion.h +++ b/firmware/svnversion.h @@ -1,5 +1,5 @@ // This file was generated by Version2Header -// Fri Dec 16 21:01:21 EST 2016 +// Mon Jan 02 16:10:17 EST 2017 #ifndef VCS_VERSION -#define VCS_VERSION "10994" +#define VCS_VERSION "11143" #endif diff --git a/firmware/tunerstudio/rusefi.ini b/firmware/tunerstudio/rusefi.ini index f3711678f5..7e03c02a91 100644 --- a/firmware/tunerstudio/rusefi.ini +++ b/firmware/tunerstudio/rusefi.ini @@ -42,7 +42,7 @@ enable2ndByteCanID = false ; see PAGE_0_SIZE in C source code ; CONFIG_DEFINITION_START -; this section was generated automatically by ConfigDefinition.jar based on rusefi_config.txt Thu Dec 29 19:06:21 EST 2016 +; this section was generated automatically by ConfigDefinition.jar based on rusefi_config.txt Mon Jan 02 18:37:17 EST 2017 pageSize = 16376 page = 1 @@ -155,7 +155,7 @@ page = 1 tpsAdcChannel = bits, U32, 524, [0:4] "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PB0", "PB1", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "Disabled", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" ;skipping overrideCrankingIgnition offset 528 sensorChartFrequency = scalar, S32, 532, "index", 1, 0, 0, 300, 0 ; size 4 - trigger_type = bits, U32, 536, [0:5], "custom toothed wheel", "ford aspire", "dodge neon", "Miata NA", "Miata NB", "GM_7X", "Cooper", "Mazda SOHC 4", "60/2", "36/1", "Accord CD", "MITSU", "ACCORD 2", "ACCORD DIP", "Neon 2003", "MAZDA D 1+4", "1+1", "1+60/2", "Single Tooth", "Dodge Ram 1+16", "60/2 VW", "Accord 1+24", "DODGE STRATUS", "36_2_2_2", "Nissan", "2JZ", "Rover K", "GM LS 24", "Honda CBR 600", "2JZ_1_12", "Honda CBR 600 custom", "3/1 skipped" , "2003 neon crank", "Miata VVT", "INVALID", "INVALID", "INVALID", "INVALID" + trigger_type = bits, U32, 536, [0:5], "custom toothed wheel", "ford aspire", "dodge neon", "Miata NA", "Miata NB", "GM_7X", "Cooper", "Mazda SOHC 4", "60/2", "36/1", "Accord CD", "MITSU", "ACCORD 2", "ACCORD DIP", "Neon 2003", "MAZDA D 1+4", "1+1", "1+60/2", "Single Tooth", "Dodge Ram 1+16", "60/2 VW", "Accord 1+24", "DODGE STRATUS", "36_2_2_2", "Nissan", "2JZ", "Rover K", "GM LS 24", "Honda CBR 600", "2JZ_1_12", "Honda CBR 600 custom", "3/1 skipped" , "2003 neon crank", "Miata VVT", "trg34", "trg35", "Subaru 7+6", "INVALID", "INVALID", "INVALID", "INVALID" trigger_customIsSynchronizationNeeded= bits, U32, 540, [0:0], "false", "true" trigger_customNeedSecondTriggerInput= bits, U32, 540, [1:1], "false", "true" trigger_useOnlyFirstChannel= bits, U32, 540, [2:2], "false", "true" diff --git a/java_console/models/src/com/rusefi/config/Fields.java b/java_console/models/src/com/rusefi/config/Fields.java index 9a1ac33781..2b19116619 100644 --- a/java_console/models/src/com/rusefi/config/Fields.java +++ b/java_console/models/src/com/rusefi/config/Fields.java @@ -1,6 +1,6 @@ package com.rusefi.config; -// this file was generated automatically by ConfigDefinition.jar based on rusefi_config.txt Tue Dec 27 23:08:47 EST 2016 +// this file was generated automatically by ConfigDefinition.jar based on rusefi_config.txt Mon Jan 02 18:37:17 EST 2017 public class Fields { public static final int LE_COMMAND_LENGTH = 200; public static final int FSIO_ADC_COUNT = 4; @@ -1101,7 +1101,7 @@ public class Fields { public static final Field TPSADCCHANNEL = Field.create("TPSADCCHANNEL", 524, FieldType.INT, adc_channel_e); public static final Field OVERRIDECRANKINGIGNITION = Field.create("OVERRIDECRANKINGIGNITION", 528, FieldType.INT); public static final Field SENSORCHARTFREQUENCY = Field.create("SENSORCHARTFREQUENCY", 532, FieldType.INT); - public static final String[] trigger_type_e = {"custom toothed wheel", "ford aspire", "dodge neon", "Miata NA", "Miata NB", "GM_7X", "Cooper", "Mazda SOHC 4", "60/2", "36/1", "Accord CD", "MITSU", "ACCORD 2", "ACCORD DIP", "Neon 2003", "MAZDA D 1+4", "1+1", "1+60/2", "Single Tooth", "Dodge Ram 1+16", "60/2 VW", "Accord 1+24", "DODGE STRATUS", "36_2_2_2", "Nissan", "2JZ", "Rover K", "GM LS 24", "Honda CBR 600", "2JZ_1_12", "Honda CBR 600 custom", "3/1 skipped" , "2003 neon crank", "Miata VVT", "INVALID", "INVALID", "INVALID", "INVALID"}; + public static final String[] trigger_type_e = {"custom toothed wheel", "ford aspire", "dodge neon", "Miata NA", "Miata NB", "GM_7X", "Cooper", "Mazda SOHC 4", "60/2", "36/1", "Accord CD", "MITSU", "ACCORD 2", "ACCORD DIP", "Neon 2003", "MAZDA D 1+4", "1+1", "1+60/2", "Single Tooth", "Dodge Ram 1+16", "60/2 VW", "Accord 1+24", "DODGE STRATUS", "36_2_2_2", "Nissan", "2JZ", "Rover K", "GM LS 24", "Honda CBR 600", "2JZ_1_12", "Honda CBR 600 custom", "3/1 skipped" , "2003 neon crank", "Miata VVT", "trg34", "trg35", "Subaru 7+6", "INVALID", "INVALID", "INVALID", "INVALID"}; public static final Field TRIGGER_TYPE = Field.create("TRIGGER_TYPE", 536, FieldType.INT, trigger_type_e); public static final Field TRIGGER_CUSTOMISSYNCHRONIZATIONNEEDED = Field.create("TRIGGER_CUSTOMISSYNCHRONIZATIONNEEDED", 540, FieldType.BIT, 0); public static final Field TRIGGER_CUSTOMNEEDSECONDTRIGGERINPUT = Field.create("TRIGGER_CUSTOMNEEDSECONDTRIGGERINPUT", 540, FieldType.BIT, 1); diff --git a/unit_tests/.cproject b/unit_tests/.cproject index b61479f604..27a33e0b31 100644 --- a/unit_tests/.cproject +++ b/unit_tests/.cproject @@ -40,6 +40,7 @@ +