diff --git a/firmware/controllers/trigger/decoders/trigger_gm.cpp b/firmware/controllers/trigger/decoders/trigger_gm.cpp index cd8387b2e2..1142f8184f 100644 --- a/firmware/controllers/trigger/decoders/trigger_gm.cpp +++ b/firmware/controllers/trigger/decoders/trigger_gm.cpp @@ -7,6 +7,14 @@ #include "trigger_gm.h" +static float addTooth(float offset, TriggerWaveform *s) { + s->addEventAngle(offset, T_SECONDARY, TV_RISE); + offset += CRANK_MODE_MULTIPLIER * 3; + s->addEventAngle(offset, T_SECONDARY, TV_FALL); + offset += CRANK_MODE_MULTIPLIER * 3; + return offset; +} + /** * https://github.com/rusefi/rusefi/issues/2264 * GM/Daewoo Distributor on the F8CV @@ -15,10 +23,36 @@ void configureGm60_2_2_2(TriggerWaveform *s) { s->initialize(FOUR_STROKE_CAM_SENSOR); s->isSynchronizationNeeded = false; - int offset = 3; float m = CRANK_MODE_MULTIPLIER; + int offset = 1 * m; + + for (int i=0;i<12;i++) { + offset = addTooth(offset, s); + } + + offset += m * 2 * 6; + + for (int i=0;i<18;i++) { + offset = addTooth(offset, s); + } + + offset += m * 2 * 6; + + for (int i=0;i<18;i++) { + offset = addTooth(offset, s); + } + + offset += m * 2 * 6; + + for (int i=0;i<5;i++) { + offset = addTooth(offset, s); + } + + + s->addEventAngle(m * (360 - 6), T_PRIMARY, TV_RISE); + + offset = addTooth(offset, s); - s->addEventAngle(m * (360 - 10), T_PRIMARY, TV_RISE); s->addEventAngle(m * (360), T_PRIMARY, TV_FALL); } diff --git a/java_console/ui/src/main/java/com/rusefi/StartupFrame.java b/java_console/ui/src/main/java/com/rusefi/StartupFrame.java index 5164f3cacd..7dad425d1e 100644 --- a/java_console/ui/src/main/java/com/rusefi/StartupFrame.java +++ b/java_console/ui/src/main/java/com/rusefi/StartupFrame.java @@ -39,7 +39,7 @@ import static javax.swing.JOptionPane.YES_NO_OPTION; */ public class StartupFrame { private static final String LOGO = "/com/rusefi/logo.gif"; - public static final String LINK_TEXT = "rusEFI (c) 2012-2020"; + public static final String LINK_TEXT = "rusEFI (c) 2012-2021"; private static final String URI = "http://rusefi.com/?java_console"; // private static final int RUSEFI_ORANGE = 0xff7d03; diff --git a/java_console/ui/src/main/java/com/rusefi/TriggerImage.java b/java_console/ui/src/main/java/com/rusefi/TriggerImage.java index 553230f0f0..d4c72ef928 100644 --- a/java_console/ui/src/main/java/com/rusefi/TriggerImage.java +++ b/java_console/ui/src/main/java/com/rusefi/TriggerImage.java @@ -91,6 +91,8 @@ public class TriggerImage { return "TriTach"; case Fields.TT_TT_TOOTHED_WHEEL_60_2: return "60/2"; + case Fields.TT_TT_GM_60_2_2_2: + return "GM 60/2/2/2"; } return triggerName.triggerName; } diff --git a/java_console/ui/src/main/java/com/rusefi/TriggerWheelInfo.java b/java_console/ui/src/main/java/com/rusefi/TriggerWheelInfo.java index 2c077e2c51..692b18ca77 100644 --- a/java_console/ui/src/main/java/com/rusefi/TriggerWheelInfo.java +++ b/java_console/ui/src/main/java/com/rusefi/TriggerWheelInfo.java @@ -110,6 +110,7 @@ class TriggerWheelInfo { private boolean isSecondCamBased() { return id == Fields.TT_TT_MAZDA_MIATA_NA || id == Fields.TT_TT_MAZDA_DOHC_1_4 || + id == Fields.TT_TT_GM_60_2_2_2 || id == Fields.TT_TT_FORD_ASPIRE; } }