diff --git a/firmware/config/stm32f4ems/efifeatures.h b/firmware/config/stm32f4ems/efifeatures.h index b3459dece4..7a7121e775 100644 --- a/firmware/config/stm32f4ems/efifeatures.h +++ b/firmware/config/stm32f4ems/efifeatures.h @@ -292,9 +292,6 @@ #define GPS_SERIAL_DEVICE &SD1 #define GPS_SERIAL_SPEED 38400 -#define CONSOLE_MODE_SWITCH_PORT GPIOB -#define CONSOLE_MODE_SWITCH_PIN 1 - #define CONFIG_RESET_SWITCH_PORT GPIOD #define CONFIG_RESET_SWITCH_PIN 6 diff --git a/firmware/console/console_io.cpp b/firmware/console/console_io.cpp index 59ad2d9246..281f21d3c6 100644 --- a/firmware/console/console_io.cpp +++ b/firmware/console/console_io.cpp @@ -129,15 +129,10 @@ static bool getConsoleLine(BaseSequentialStream *chp, char *line, unsigned size) } } -// todo: this is ugly as hell! -static char consoleInput[] = " "; - CommandHandler console_line_callback; -static bool is_serial_over_uart; - bool isSerialOverUart(void) { - return is_serial_over_uart; + return false; } #if (defined(EFI_CONSOLE_UART_DEVICE) && ! EFI_SIMULATOR ) || defined(__DOXYGEN__) @@ -146,6 +141,37 @@ static SerialConfig serialConfig = { SERIAL_SPEED, 0, USART_CR2_STOP1_BITS | USA #if EFI_PROD_CODE || EFI_EGT || defined(__DOXYGEN__) +bool consoleInBinaryMode = false; + +void runConsoleLoop(ts_channel_s *console) { + if (boardConfiguration->startConsoleInBinaryMode) { + // switch to binary protocol + consoleInBinaryMode = true; + runBinaryProtocolLoop(console, true); + } + + while (true) { + efiAssertVoid(getRemainingStack(chThdSelf()) > 256, "lowstck#9e"); + bool end = getConsoleLine((BaseSequentialStream*) console->channel, console->crcReadBuffer, sizeof(console->crcReadBuffer) - 3); + if (end) { + // firmware simulator is the only case when this happens + continue; + } + + char *trimmed = efiTrim(console->crcReadBuffer); + + (console_line_callback)(trimmed); + + if (consoleInBinaryMode) { +#if EFI_SIMULATOR || defined(__DOXYGEN__) + logMsg("Switching to binary mode\r\n"); +#endif + // switch to binary protocol + runBinaryProtocolLoop(console, true); + } + } +} + SerialDriver * getConsoleChannel(void) { #if defined(EFI_CONSOLE_UART_DEVICE) || defined(__DOXYGEN__) if (isSerialOverUart()) { @@ -169,8 +195,6 @@ bool isConsoleReady(void) { } #endif /* EFI_PROD_CODE || EFI_EGT */ -bool consoleInBinaryMode = false; - ts_channel_s binaryConsole; static THD_WORKING_AREA(consoleThreadStack, 3 * UTILITY_THREAD_STACK_SIZE); @@ -187,34 +211,10 @@ static THD_FUNCTION(consoleThreadThreadEntryPoint, arg) { } #endif /* EFI_PROD_CODE */ + binaryConsole.channel = (BaseChannel *) getConsoleChannel(); + runConsoleLoop(&binaryConsole); - if (boardConfiguration->startConsoleInBinaryMode) { - // switch to binary protocol - consoleInBinaryMode = true; - runBinaryProtocolLoop(&binaryConsole, true); - } - - while (true) { - efiAssertVoid(getRemainingStack(chThdSelf()) > 256, "lowstck#9e"); - bool end = getConsoleLine((BaseSequentialStream*) getConsoleChannel(), consoleInput, sizeof(consoleInput)); - if (end) { - // firmware simulator is the only case when this happens - continue; - } - - char *trimmed = efiTrim(consoleInput); - - (console_line_callback)(trimmed); - - if (consoleInBinaryMode) { -#if EFI_SIMULATOR || defined(__DOXYGEN__) - logMsg("Switching to binary mode\r\n"); -#endif - // switch to binary protocol - runBinaryProtocolLoop(&binaryConsole, true); - } - } } // 10 seconds @@ -246,10 +246,6 @@ void startConsole(Logging *sharedLogger, CommandHandler console_line_callback_p) #if (defined(EFI_CONSOLE_UART_DEVICE) && ! EFI_SIMULATOR) || defined(__DOXYGEN__) - palSetPadMode(CONSOLE_MODE_SWITCH_PORT, CONSOLE_MODE_SWITCH_PIN, PAL_MODE_INPUT_PULLUP); - - is_serial_over_uart = GET_CONSOLE_MODE_VALUE() == EFI_USE_UART_FOR_CONSOLE; - if (isSerialOverUart()) { /* * Activates the serial using the driver default configuration (that's 38400) diff --git a/firmware/console/console_io.h b/firmware/console/console_io.h index 07817a5599..4c42c15869 100644 --- a/firmware/console/console_io.h +++ b/firmware/console/console_io.h @@ -17,7 +17,6 @@ typedef void (*CommandHandler)(char *); #include "datalogging.h" // todo: make this pin configurable -#define GET_CONSOLE_MODE_VALUE() palReadPad(CONSOLE_MODE_SWITCH_PORT, CONSOLE_MODE_SWITCH_PIN) #define SHOULD_INGORE_FLASH() (palReadPad(CONFIG_RESET_SWITCH_PORT, CONFIG_RESET_SWITCH_PIN) == 0) SerialDriver * getConsoleChannel(void); diff --git a/firmware/controllers/settings.cpp b/firmware/controllers/settings.cpp index 2971d9eb0e..baddb45463 100644 --- a/firmware/controllers/settings.cpp +++ b/firmware/controllers/settings.cpp @@ -931,9 +931,6 @@ static void printAllInfo(void) { #if EFI_ENGINE_SNIFFER scheduleMsg(&logger, "waveChartUsedSize=%d", waveChartUsedSize); #endif -#if EFI_PROD_CODE - scheduleMsg(&logger, "console mode jumper: %s", boolToString(!GET_CONSOLE_MODE_VALUE())); -#endif } static void getValue(const char *paramStr) { diff --git a/java_console/autotest/src/com/rusefi/RealHwTest.java b/java_console/autotest/src/com/rusefi/RealHwTest.java index 262cf4a51f..fe530a7960 100644 --- a/java_console/autotest/src/com/rusefi/RealHwTest.java +++ b/java_console/autotest/src/com/rusefi/RealHwTest.java @@ -4,7 +4,7 @@ import static com.rusefi.AutoTest.*; /** * this test connects to real hardware via serial port - * (c) Andrey Belomutskiy 2013-2016 + * (c) Andrey Belomutskiy 2013-2017 * 2/22/2015 */ public class RealHwTest { diff --git a/java_console/models/src/com/rusefi/autotune/FuelAutoLogic.java b/java_console/models/src/com/rusefi/autotune/FuelAutoLogic.java index 2f8511af04..d077531d1f 100644 --- a/java_console/models/src/com/rusefi/autotune/FuelAutoLogic.java +++ b/java_console/models/src/com/rusefi/autotune/FuelAutoLogic.java @@ -3,7 +3,7 @@ package com.rusefi.autotune; import java.util.Collection; /** - * (c) Andrey Belomutskiy 2013-2016 + * (c) Andrey Belomutskiy 2013-2017 * 2/18/2016. */ public interface FuelAutoLogic { diff --git a/java_console/models/src/com/rusefi/autotune/FuelAutoTune.java b/java_console/models/src/com/rusefi/autotune/FuelAutoTune.java index 10082620d7..7b6f7e8506 100644 --- a/java_console/models/src/com/rusefi/autotune/FuelAutoTune.java +++ b/java_console/models/src/com/rusefi/autotune/FuelAutoTune.java @@ -6,7 +6,7 @@ import java.util.Collection; /** * 1/5/2016 - * (c) Andrey Belomutskiy 2013-2016 + * (c) Andrey Belomutskiy 2013-2017 */ public enum FuelAutoTune implements FuelAutoLogic { INSTANCE; diff --git a/java_console/models/src/com/rusefi/autotune/FuelAutoTune2.java b/java_console/models/src/com/rusefi/autotune/FuelAutoTune2.java index 5c6bcf72a9..61169a308b 100644 --- a/java_console/models/src/com/rusefi/autotune/FuelAutoTune2.java +++ b/java_console/models/src/com/rusefi/autotune/FuelAutoTune2.java @@ -5,7 +5,7 @@ import com.rusefi.config.Fields; import java.util.Collection; /** - * (c) Andrey Belomutskiy 2013-2016 + * (c) Andrey Belomutskiy 2013-2017 * 2/18/2016. */ public enum FuelAutoTune2 implements FuelAutoLogic { diff --git a/java_console/models/src/com/rusefi/autotune/MathUtil.java b/java_console/models/src/com/rusefi/autotune/MathUtil.java index 9f76d586d5..e0d271b49b 100644 --- a/java_console/models/src/com/rusefi/autotune/MathUtil.java +++ b/java_console/models/src/com/rusefi/autotune/MathUtil.java @@ -1,7 +1,7 @@ package com.rusefi.autotune; /** - * (c) Andrey Belomutskiy 2013-2016 + * (c) Andrey Belomutskiy 2013-2017 * 2/18/2016. */ public class MathUtil { diff --git a/java_console/models/src/com/rusefi/autotune/Result.java b/java_console/models/src/com/rusefi/autotune/Result.java index d582af044d..3135f7255c 100644 --- a/java_console/models/src/com/rusefi/autotune/Result.java +++ b/java_console/models/src/com/rusefi/autotune/Result.java @@ -1,7 +1,7 @@ package com.rusefi.autotune; /** - * (c) Andrey Belomutskiy 2013-2016 + * (c) Andrey Belomutskiy 2013-2017 * 2/23/2016. */ public class Result { diff --git a/java_console/models/src/com/rusefi/autotune/stDataOnline.java b/java_console/models/src/com/rusefi/autotune/stDataOnline.java index 782fb85fd1..d9d610d3da 100644 --- a/java_console/models/src/com/rusefi/autotune/stDataOnline.java +++ b/java_console/models/src/com/rusefi/autotune/stDataOnline.java @@ -3,7 +3,7 @@ package com.rusefi.autotune; import com.rusefi.config.Fields; /** - * (c) Andrey Belomutskiy 2013-2016 + * (c) Andrey Belomutskiy 2013-2017 * 2/23/2016. */ public class stDataOnline { diff --git a/java_console/models/src/com/rusefi/autotune/test/FuelAutoTune2Test.java b/java_console/models/src/com/rusefi/autotune/test/FuelAutoTune2Test.java index f5e8a79631..60d80ede78 100644 --- a/java_console/models/src/com/rusefi/autotune/test/FuelAutoTune2Test.java +++ b/java_console/models/src/com/rusefi/autotune/test/FuelAutoTune2Test.java @@ -13,7 +13,7 @@ import static com.rusefi.autotune.test.FuelAutoTuneTest.createVeTable; /** * 2/23/2016 - * (c) Andrey Belomutskiy 2013-2016 + * (c) Andrey Belomutskiy 2013-2017 */ public class FuelAutoTune2Test { diff --git a/java_console/models/src/com/rusefi/autotune/test/FuelAutoTuneTest.java b/java_console/models/src/com/rusefi/autotune/test/FuelAutoTuneTest.java index 8ededd20db..f260a197fd 100644 --- a/java_console/models/src/com/rusefi/autotune/test/FuelAutoTuneTest.java +++ b/java_console/models/src/com/rusefi/autotune/test/FuelAutoTuneTest.java @@ -11,7 +11,7 @@ import java.util.List; /** * 1/5/2016 - * (c) Andrey Belomutskiy 2013-2016 + * (c) Andrey Belomutskiy 2013-2017 */ public class FuelAutoTuneTest { diff --git a/java_console/ui/src/com/rusefi/CmdLine.java b/java_console/ui/src/com/rusefi/CmdLine.java index 33f742d5c2..b2e8f4338f 100644 --- a/java_console/ui/src/com/rusefi/CmdLine.java +++ b/java_console/ui/src/com/rusefi/CmdLine.java @@ -1,7 +1,7 @@ package com.rusefi; /** - * (c) Andrey Belomutskiy 2013-2016 + * (c) Andrey Belomutskiy 2013-2017 * 2/22/2015 */ public class CmdLine { diff --git a/java_console/ui/src/com/rusefi/Launcher.java b/java_console/ui/src/com/rusefi/Launcher.java index 915907f7be..2183ec214e 100644 --- a/java_console/ui/src/com/rusefi/Launcher.java +++ b/java_console/ui/src/com/rusefi/Launcher.java @@ -32,7 +32,7 @@ import static com.rusefi.ui.storage.PersistentConfiguration.getConfig; *

*

* 12/25/12 - * (c) Andrey Belomutskiy 2013-2016 + * (c) Andrey Belomutskiy 2013-2017 * * @see StartupFrame * @see EngineSnifferPanel diff --git a/java_console/ui/src/com/rusefi/RomRaiderWrapper.java b/java_console/ui/src/com/rusefi/RomRaiderWrapper.java index 470535b006..41d1a1a922 100644 --- a/java_console/ui/src/com/rusefi/RomRaiderWrapper.java +++ b/java_console/ui/src/com/rusefi/RomRaiderWrapper.java @@ -14,7 +14,7 @@ import java.io.File; import static com.romraider.editor.ecu.ECUEditorManager.getECUEditor; /** - * (c) Andrey Belomutskiy 2013-2016 + * (c) Andrey Belomutskiy 2013-2017 * 3/6/2015 */ public class RomRaiderWrapper { diff --git a/java_console/ui/src/com/rusefi/SensorLogger.java b/java_console/ui/src/com/rusefi/SensorLogger.java index fd83eccfcd..e6edfd339e 100644 --- a/java_console/ui/src/com/rusefi/SensorLogger.java +++ b/java_console/ui/src/com/rusefi/SensorLogger.java @@ -8,7 +8,7 @@ import java.io.IOException; import java.io.Writer; /** - * (c) Andrey Belomutskiy + * (c) Andrey Belomutskiy 2013-2017 * 4/15/2016. */ public class SensorLogger { diff --git a/java_console/ui/src/com/rusefi/SensorSnifferPane.java b/java_console/ui/src/com/rusefi/SensorSnifferPane.java index c50e8bb0c2..bda1ab9244 100644 --- a/java_console/ui/src/com/rusefi/SensorSnifferPane.java +++ b/java_console/ui/src/com/rusefi/SensorSnifferPane.java @@ -20,7 +20,7 @@ import java.util.List; /** * Date: 12/21/13 - * Andrey Belomutskiy (c) 2012-2013 + * (c) Andrey Belomutskiy 2013-2017 */ public class SensorSnifferPane { private static final String HELP_URL = "http://rusefi.com/wiki/index.php?title=Manual:DevConsole#Analog_Chart"; diff --git a/java_console/ui/src/com/rusefi/StartupFrame.java b/java_console/ui/src/com/rusefi/StartupFrame.java index 9b1e5513b0..3f54d5f6a5 100644 --- a/java_console/ui/src/com/rusefi/StartupFrame.java +++ b/java_console/ui/src/com/rusefi/StartupFrame.java @@ -38,7 +38,7 @@ public class StartupFrame { // todo: figure out a better way to work with absolute path private static final String APPICON = "appicon.png"; private static final String LOGO = "logo.gif"; - private static final String LINK_TEXT = "rusEfi (c) 2012-2016"; + private static final String LINK_TEXT = "rusEfi (c) 2012-2017"; private static final String URI = "http://rusefi.com/?java_console"; private static final String VCP_DRIVER_TEXT = "vcp driver"; private static final String VCP_DRIVER_URI = "http://www.st.com/st-web-ui/static/active/en/st_prod_software_internet/resource/technical/software/driver/stsw-stm32102.zip"; diff --git a/java_console/ui/src/com/rusefi/TriggerImage.java b/java_console/ui/src/com/rusefi/TriggerImage.java index 268ca6c182..2c7d344fb8 100644 --- a/java_console/ui/src/com/rusefi/TriggerImage.java +++ b/java_console/ui/src/com/rusefi/TriggerImage.java @@ -19,7 +19,7 @@ import java.util.List; * This utility produces images of trigger signals supported by rusEfi * * 06/23/15 - * (c) Andrey Belomutskiy 2013-2016 + * (c) Andrey Belomutskiy 2013-2017 */ public class TriggerImage { private static final String TRIGGERTYPE = "TRIGGERTYPE"; diff --git a/java_console/ui/src/com/rusefi/UploadChanges.java b/java_console/ui/src/com/rusefi/UploadChanges.java index 1218b36989..2c63a26e46 100644 --- a/java_console/ui/src/com/rusefi/UploadChanges.java +++ b/java_console/ui/src/com/rusefi/UploadChanges.java @@ -18,7 +18,7 @@ import java.lang.reflect.InvocationTargetException; import java.util.concurrent.atomic.AtomicBoolean; /** - * (c) Andrey Belomutskiy 2013-2016 + * (c) Andrey Belomutskiy 2013-2017 * 3/7/2015 */ public class UploadChanges { diff --git a/java_console/ui/src/com/rusefi/maintenance/EraseChip.java b/java_console/ui/src/com/rusefi/maintenance/EraseChip.java index 8878bce7e1..c9d04bf558 100644 --- a/java_console/ui/src/com/rusefi/maintenance/EraseChip.java +++ b/java_console/ui/src/com/rusefi/maintenance/EraseChip.java @@ -4,7 +4,7 @@ import javax.swing.*; import java.awt.event.ActionEvent; /** - * (c) Andrey Belomutskiy 2013-2016 + * (c) Andrey Belomutskiy 2013-2017 */ public class EraseChip extends ProcessStatusWindow { private final JButton button = new JButton("Erase Chip"); diff --git a/java_console/ui/src/com/rusefi/maintenance/FirmwareFlasher.java b/java_console/ui/src/com/rusefi/maintenance/FirmwareFlasher.java index 4cfa49b187..75c0d861ad 100644 --- a/java_console/ui/src/com/rusefi/maintenance/FirmwareFlasher.java +++ b/java_console/ui/src/com/rusefi/maintenance/FirmwareFlasher.java @@ -6,7 +6,7 @@ import java.awt.event.ActionListener; import java.io.*; /** - * (c) Andrey Belomutskiy 2013-2016 + * (c) Andrey Belomutskiy 2013-2017 * 2/4/15 */ public class FirmwareFlasher extends ProcessStatusWindow { diff --git a/java_console/ui/src/com/rusefi/maintenance/ProcessStatusWindow.java b/java_console/ui/src/com/rusefi/maintenance/ProcessStatusWindow.java index f77356b1db..f4d41d5ea4 100644 --- a/java_console/ui/src/com/rusefi/maintenance/ProcessStatusWindow.java +++ b/java_console/ui/src/com/rusefi/maintenance/ProcessStatusWindow.java @@ -8,7 +8,7 @@ import java.io.InputStream; import java.io.InputStreamReader; /** - * (c) Andrey Belomutskiy 2013-2016 + * (c) Andrey Belomutskiy 2013-2017 */ public class ProcessStatusWindow { public static boolean isWindows() { diff --git a/java_console/ui/src/com/rusefi/ui/FormulasPane.java b/java_console/ui/src/com/rusefi/ui/FormulasPane.java index 651c704b16..ee7769b8f2 100644 --- a/java_console/ui/src/com/rusefi/ui/FormulasPane.java +++ b/java_console/ui/src/com/rusefi/ui/FormulasPane.java @@ -20,7 +20,7 @@ import java.awt.event.ActionListener; import java.awt.image.BufferedImage; /** - * (c) Andrey Belomutskiy 2013-2016 + * (c) Andrey Belomutskiy 2013-2017 */ public class FormulasPane { private final JPanel content = new JPanel(new BorderLayout()); diff --git a/java_console/ui/src/com/rusefi/ui/FuelTunePane.java b/java_console/ui/src/com/rusefi/ui/FuelTunePane.java index 7315af7447..e3201195f2 100644 --- a/java_console/ui/src/com/rusefi/ui/FuelTunePane.java +++ b/java_console/ui/src/com/rusefi/ui/FuelTunePane.java @@ -30,7 +30,7 @@ import java.util.Date; import java.util.List; /** - * (c) Andrey Belomutskiy 2013-2016 + * (c) Andrey Belomutskiy 2013-2017 * 1/9/2016 * * @see FuelAutoTune diff --git a/java_console/ui/src/com/rusefi/ui/StatusWindow.java b/java_console/ui/src/com/rusefi/ui/StatusWindow.java index d5a64df461..bde9e972b2 100644 --- a/java_console/ui/src/com/rusefi/ui/StatusWindow.java +++ b/java_console/ui/src/com/rusefi/ui/StatusWindow.java @@ -9,7 +9,7 @@ import javax.swing.*; import java.awt.*; /** - * (c) Andrey Belomutskiy 2013-2016 + * (c) Andrey Belomutskiy 2013-2017 * 3/7/2015 */ public class StatusWindow { diff --git a/java_console/ui/src/com/rusefi/ui/engine/EngineSnifferPanel.java b/java_console/ui/src/com/rusefi/ui/engine/EngineSnifferPanel.java index 8e0d9e4350..1f2211611a 100644 --- a/java_console/ui/src/com/rusefi/ui/engine/EngineSnifferPanel.java +++ b/java_console/ui/src/com/rusefi/ui/engine/EngineSnifferPanel.java @@ -30,7 +30,7 @@ import java.util.List; *

*

* Date: 6/23/13 - * Andrey Belomutskiy (c) 2012-2013 + * (c) Andrey Belomutskiy 2013-2017 * * @see EngineSnifferStatusPanel status bar * @see com.rusefi.ui.test.WavePanelSandbox diff --git a/java_console/ui/src/com/rusefi/ui/engine/EngineSnifferStatusPanel.java b/java_console/ui/src/com/rusefi/ui/engine/EngineSnifferStatusPanel.java index ee4705ff0c..4594f8d59a 100644 --- a/java_console/ui/src/com/rusefi/ui/engine/EngineSnifferStatusPanel.java +++ b/java_console/ui/src/com/rusefi/ui/engine/EngineSnifferStatusPanel.java @@ -16,7 +16,7 @@ import java.util.Map; *

*

* Date: 12/26/13 - * Andrey Belomutskiy (c) 2012-2013 + * (c) Andrey Belomutskiy 2013-2017 */ public class EngineSnifferStatusPanel { public final JPanel infoPanel = new JPanel(new FlowLayout(FlowLayout.LEFT, 0, 0)); diff --git a/java_console/ui/src/com/rusefi/ui/engine/ZoomControl.java b/java_console/ui/src/com/rusefi/ui/engine/ZoomControl.java index 78a22358ce..967b9e4391 100644 --- a/java_console/ui/src/com/rusefi/ui/engine/ZoomControl.java +++ b/java_console/ui/src/com/rusefi/ui/engine/ZoomControl.java @@ -11,7 +11,7 @@ import java.awt.event.KeyEvent; /** * 7/7/13 - * (c) Andrey Belomutskiy + * (c) Andrey Belomutskiy 2013-2017 */ class ZoomControl extends JPanel { // private final JLabel currentValue = new JLabel();