diff --git a/firmware/CHANGELOG.md b/firmware/CHANGELOG.md index 0be425fe8a..85f59e1763 100644 --- a/firmware/CHANGELOG.md +++ b/firmware/CHANGELOG.md @@ -26,6 +26,8 @@ Release template (copy/paste this for new release): All notable user-facing or behavior-altering changes will be documented in this file. ## Month 202x Release - "Release Name" +### Added + - rusEFI console Lua tab loads scripts from ECU on start ## August 2021 Release - "Lottery Day" diff --git a/firmware/controllers/lua/lua_hooks.cpp b/firmware/controllers/lua/lua_hooks.cpp index e60024a9cc..8b238f14ac 100644 --- a/firmware/controllers/lua/lua_hooks.cpp +++ b/firmware/controllers/lua/lua_hooks.cpp @@ -303,7 +303,7 @@ static int lua_stopEngine(lua_State*) { void configureRusefiLuaHooks(lua_State* l) { lua_register(l, "print", lua_efi_print); - lua_register(l, "readpin", lua_readpin); + lua_register(l, "readPin", lua_readpin); lua_register(l, "getAnalog", lua_getAnalog); lua_register(l, "getSensor", lua_getSensor); lua_register(l, "getSensorRaw", lua_getSensorRaw); diff --git a/firmware/hw_layer/adc/adc_inputs.cpp b/firmware/hw_layer/adc/adc_inputs.cpp index 5d4cfdc0e6..a78207136d 100644 --- a/firmware/hw_layer/adc/adc_inputs.cpp +++ b/firmware/hw_layer/adc/adc_inputs.cpp @@ -449,6 +449,10 @@ static void configureInputs(void) { addChannel("AUXF#1", engineConfiguration->auxFastSensor1_adcChannel, ADC_FAST); + for (int i = 0;i < LUA_ANALOG_INPUT_COUNT;i++) { + addChannel("LUA", engineConfiguration->luaAnalogInputs[i], ADC_FAST); + } + setAdcChannelOverrides(); } diff --git a/java_console/shared_io/src/main/java/com/rusefi/rusEFIVersion.java b/java_console/shared_io/src/main/java/com/rusefi/rusEFIVersion.java index 65c950ae05..55cca8a712 100644 --- a/java_console/shared_io/src/main/java/com/rusefi/rusEFIVersion.java +++ b/java_console/shared_io/src/main/java/com/rusefi/rusEFIVersion.java @@ -6,7 +6,7 @@ import java.net.URL; import java.util.concurrent.atomic.AtomicReference; public class rusEFIVersion { - public static final int CONSOLE_VERSION = 20210806; + public static final int CONSOLE_VERSION = 20210831; public static AtomicReference firmwareVersion = new AtomicReference<>("N/A"); public static long classBuildTimeMillis() { diff --git a/java_console/ui/src/main/java/com/rusefi/ui/lua/LuaScriptPanel.java b/java_console/ui/src/main/java/com/rusefi/ui/lua/LuaScriptPanel.java index b2e70c9872..38cf38346c 100644 --- a/java_console/ui/src/main/java/com/rusefi/ui/lua/LuaScriptPanel.java +++ b/java_console/ui/src/main/java/com/rusefi/ui/lua/LuaScriptPanel.java @@ -14,11 +14,14 @@ import java.awt.event.ActionListener; import java.nio.ByteBuffer; import java.nio.charset.StandardCharsets; +import static com.rusefi.ui.util.UiUtils.trueLayout; + public class LuaScriptPanel { private final UIContext context; private final JPanel mainPanel = new JPanel(new BorderLayout()); private final AnyCommand command; private final JTextArea scriptText = new JTextArea(); + private boolean isFirstRender = true; public LuaScriptPanel(UIContext context, Node config) { this.context = context; @@ -31,7 +34,7 @@ public class LuaScriptPanel { JButton writeButton = new JButton("Write to ECU"); JButton resetButton = new JButton("Reset/Reload Lua"); - readButton.addActionListener(e -> read()); + readButton.addActionListener(e -> readFromECU()); writeButton.addActionListener(e -> write()); resetButton.addActionListener(e -> resetLua()); @@ -43,7 +46,7 @@ public class LuaScriptPanel { // Center panel - script editor and log JPanel scriptPanel = new JPanel(new BorderLayout()); scriptText.setTabSize(2); - scriptPanel.add(this.scriptText, BorderLayout.CENTER); + scriptPanel.add(scriptText, BorderLayout.CENTER); //centerPanel.add(, BorderLayout.WEST); JPanel messagesPanel = new JPanel(new BorderLayout()); @@ -51,10 +54,27 @@ public class LuaScriptPanel { messagesPanel.add(BorderLayout.NORTH, mp.getButtonPanel()); messagesPanel.add(BorderLayout.CENTER, mp.getMessagesScroll()); - JSplitPane centerPanel = new JSplitPane(JSplitPane.HORIZONTAL_SPLIT, scriptPanel, messagesPanel); + JSplitPane centerPanel = new JSplitPane(JSplitPane.HORIZONTAL_SPLIT, scriptPanel, messagesPanel) { + @Override + public void paint(Graphics g) { + super.paint(g); + if (isFirstRender) { + readFromECU(); + isFirstRender = true; + } + } + }; - this.mainPanel.add(upperPanel, BorderLayout.NORTH); - this.mainPanel.add(centerPanel, BorderLayout.CENTER); + mainPanel.add(upperPanel, BorderLayout.NORTH); + mainPanel.add(centerPanel, BorderLayout.CENTER); + + trueLayout(mainPanel); + SwingUtilities.invokeLater(new Runnable() { + @Override + public void run() { + centerPanel.setDividerLocation(centerPanel.getSize().width / 2); + } + }); } public JPanel getPanel() { @@ -68,11 +88,11 @@ public class LuaScriptPanel { }; } - void read() { - BinaryProtocol bp = this.context.getLinkManager().getCurrentStreamState(); + void readFromECU() { + BinaryProtocol bp = context.getLinkManager().getCurrentStreamState(); if (bp == null) { - // TODO: Handle missing ECU + scriptText.setText("No ECU located"); return; }