From 1886a42fe988ca3f73b6ce17f79e5d19b4afb551 Mon Sep 17 00:00:00 2001 From: rusefillc Date: Thu, 14 Oct 2021 14:01:18 -0400 Subject: [PATCH] Whatever we call it, how ever we implement it - we need live data / remote view into rusEFI actual state #3353 this stuff is definitely dead code --- .../ldmp/generated/AccelEnrichmentMeta.java | 15 -- .../generated/ElectronicThrottleMeta.java | 44 ---- .../rusefi/ldmp/generated/FuelMathMeta.java | 52 ---- .../rusefi/ldmp/generated/IdleThreadMeta.java | 42 --- .../ldmp/generated/SpeedDensityMeta.java | 30 --- .../ldmp/generated/ThermistorsMeta.java | 6 - .../com/rusefi/ldmp/generated/TpsMeta.java | 6 - .../ldmp/generated/TriggerDecoderMeta.java | 28 -- .../main/java/com/rusefi/ui/FormulasPane.java | 5 - .../com/rusefi/ui/SensorsLiveDataPane.java | 4 - .../com/rusefi/ui/livedocs/ActionPanel.java | 58 ----- .../rusefi/ui/livedocs/IfConditionPanel.java | 29 --- .../rusefi/ui/livedocs/LessJumpyJLabel.java | 23 -- .../com/rusefi/ui/livedocs/LiveDocPanel.java | 242 ------------------ .../rusefi/ui/livedocs/LiveDocsSandbox.java | 73 ------ .../ui/livedocs/controls/ConfigReference.java | 9 - .../ui/livedocs/controls/ConfigView.java | 35 --- .../ui/livedocs/controls/LogicReference.java | 35 --- .../rusefi/ui/livedocs/controls/Toolbox.java | 26 -- .../ui/livedocs/test/LiveDocPanelTest.java | 24 -- .../java/com/rusefi/ldmp/ConfigRequest.java | 47 ---- .../java/com/rusefi/ldmp/FieldReference.java | 7 - .../java/com/rusefi/ldmp/FieldRequest.java | 60 ----- .../main/java/com/rusefi/ldmp/IfRequest.java | 67 ----- .../com/rusefi/ldmp/LiveDocsMetaParser.java | 207 --------------- .../main/java/com/rusefi/ldmp/MetaInfo.java | 26 -- .../main/java/com/rusefi/ldmp/Request.java | 29 --- .../java/com/rusefi/ldmp/SensorRequest.java | 40 --- .../java/com/rusefi/ldmp/TextRequest.java | 47 ---- .../java/com/rusefi/ldmp/UsagesReader.java | 1 - .../ldmp/test/LiveDocsMetaParserTest.java | 122 --------- 31 files changed, 1439 deletions(-) delete mode 100644 java_console/ui/src/main/java/com/rusefi/ldmp/generated/AccelEnrichmentMeta.java delete mode 100644 java_console/ui/src/main/java/com/rusefi/ldmp/generated/ElectronicThrottleMeta.java delete mode 100644 java_console/ui/src/main/java/com/rusefi/ldmp/generated/FuelMathMeta.java delete mode 100644 java_console/ui/src/main/java/com/rusefi/ldmp/generated/IdleThreadMeta.java delete mode 100644 java_console/ui/src/main/java/com/rusefi/ldmp/generated/SpeedDensityMeta.java delete mode 100644 java_console/ui/src/main/java/com/rusefi/ldmp/generated/ThermistorsMeta.java delete mode 100644 java_console/ui/src/main/java/com/rusefi/ldmp/generated/TpsMeta.java delete mode 100644 java_console/ui/src/main/java/com/rusefi/ldmp/generated/TriggerDecoderMeta.java delete mode 100644 java_console/ui/src/main/java/com/rusefi/ui/livedocs/ActionPanel.java delete mode 100644 java_console/ui/src/main/java/com/rusefi/ui/livedocs/IfConditionPanel.java delete mode 100644 java_console/ui/src/main/java/com/rusefi/ui/livedocs/LessJumpyJLabel.java delete mode 100644 java_console/ui/src/main/java/com/rusefi/ui/livedocs/LiveDocPanel.java delete mode 100644 java_console/ui/src/main/java/com/rusefi/ui/livedocs/LiveDocsSandbox.java delete mode 100644 java_console/ui/src/main/java/com/rusefi/ui/livedocs/controls/ConfigReference.java delete mode 100644 java_console/ui/src/main/java/com/rusefi/ui/livedocs/controls/ConfigView.java delete mode 100644 java_console/ui/src/main/java/com/rusefi/ui/livedocs/controls/LogicReference.java delete mode 100644 java_console/ui/src/main/java/com/rusefi/ui/livedocs/controls/Toolbox.java delete mode 100644 java_console/ui/src/main/java/com/rusefi/ui/livedocs/test/LiveDocPanelTest.java delete mode 100644 java_tools/configuration_definition/src/main/java/com/rusefi/ldmp/ConfigRequest.java delete mode 100644 java_tools/configuration_definition/src/main/java/com/rusefi/ldmp/FieldReference.java delete mode 100644 java_tools/configuration_definition/src/main/java/com/rusefi/ldmp/FieldRequest.java delete mode 100644 java_tools/configuration_definition/src/main/java/com/rusefi/ldmp/IfRequest.java delete mode 100644 java_tools/configuration_definition/src/main/java/com/rusefi/ldmp/LiveDocsMetaParser.java delete mode 100644 java_tools/configuration_definition/src/main/java/com/rusefi/ldmp/MetaInfo.java delete mode 100644 java_tools/configuration_definition/src/main/java/com/rusefi/ldmp/Request.java delete mode 100644 java_tools/configuration_definition/src/main/java/com/rusefi/ldmp/SensorRequest.java delete mode 100644 java_tools/configuration_definition/src/main/java/com/rusefi/ldmp/TextRequest.java delete mode 100644 java_tools/configuration_definition/src/main/java/com/rusefi/ldmp/test/LiveDocsMetaParserTest.java diff --git a/java_console/ui/src/main/java/com/rusefi/ldmp/generated/AccelEnrichmentMeta.java b/java_console/ui/src/main/java/com/rusefi/ldmp/generated/AccelEnrichmentMeta.java deleted file mode 100644 index 5581740e38..0000000000 --- a/java_console/ui/src/main/java/com/rusefi/ldmp/generated/AccelEnrichmentMeta.java +++ /dev/null @@ -1,15 +0,0 @@ -package com.rusefi.ldmp.generated; - -import com.rusefi.ldmp.*; - -public class AccelEnrichmentMeta { - public static final Request[] CONTENT = new Request[]{ - new ConfigRequest("wwaeTau"), - new ConfigRequest("wwaeBeta"), - new TextRequest("Current_Wall_Fuel_Film"), - new FieldRequest("wall_fuel", "wallFuel"), - new TextRequest("Fuel"), - new FieldRequest("wall_fuel", "wallFuelCorrection"), - new TextRequest("ms"), - }; -} \ No newline at end of file diff --git a/java_console/ui/src/main/java/com/rusefi/ldmp/generated/ElectronicThrottleMeta.java b/java_console/ui/src/main/java/com/rusefi/ldmp/generated/ElectronicThrottleMeta.java deleted file mode 100644 index 1235399d22..0000000000 --- a/java_console/ui/src/main/java/com/rusefi/ldmp/generated/ElectronicThrottleMeta.java +++ /dev/null @@ -1,44 +0,0 @@ -package com.rusefi.ldmp.generated; - -import com.rusefi.ldmp.*; - -public class ElectronicThrottleMeta { - public static final Request[] CONTENT = new Request[]{ - new IfRequest("Engine", "1", - new Request[]{ - new TextRequest("Electronic_Throttle"), - new SensorRequest("TPS"), - new TextRequest("eol"), - new TextRequest("Pedal"), - new SensorRequest("PPS"), - new ConfigRequest("throttlePedalPositionAdcChannel"), - new TextRequest("eol"), - new TextRequest("Feed_forward"), - new FieldRequest("Engine", "etbFeedForward"), - new TextRequest("eol"), - new TextRequest("input"), - new FieldRequest("ETB_pid", "input"), - new TextRequest("Output"), - new FieldRequest("ETB_pid", "output"), - new TextRequest("iTerm"), - new FieldRequest("ETB_pid", "iTerm"), - new TextRequest("eol"), - new FieldRequest("ETB_pid", "errorAmplificationCoef"), - new FieldRequest("ETB_pid", "previousError"), - new TextRequest("eol"), - new TextRequest("Settings"), - new ConfigRequest("ETB_PFACTOR"), - new ConfigRequest("ETB_IFACTOR"), - new ConfigRequest("ETB_DFACTOR"), - new TextRequest("eol"), - new ConfigRequest("ETB_OFFSET"), - new ConfigRequest("ETB_PERIODMS"), - new TextRequest("eol"), - new ConfigRequest("ETB_MINVALUE"), - new ConfigRequest("ETB_MAXVALUE"), -}, - new Request[]{ - new TextRequest("No_Pedal_Sensor"), -}), - }; -} \ No newline at end of file diff --git a/java_console/ui/src/main/java/com/rusefi/ldmp/generated/FuelMathMeta.java b/java_console/ui/src/main/java/com/rusefi/ldmp/generated/FuelMathMeta.java deleted file mode 100644 index d7d5710867..0000000000 --- a/java_console/ui/src/main/java/com/rusefi/ldmp/generated/FuelMathMeta.java +++ /dev/null @@ -1,52 +0,0 @@ -package com.rusefi.ldmp.generated; - -import com.rusefi.ldmp.*; - -public class FuelMathMeta { - public static final Request[] CONTENT = new Request[]{ - new FieldRequest("Engine", "sparkDwell"), - new FieldRequest("Engine", "dwellAngle"), - new FieldRequest("Engine", "cltTimingCorrection"), - new TextRequest("eol"), - new IfRequest("Engine", "isCrankingState", - new Request[]{ - new TextRequest("Duration_coef"), - new FieldRequest("Engine", "cranking_durationCoefficient"), - new TextRequest("eol"), - new TextRequest("Coolant_coef"), - new FieldRequest("Engine", "cranking_coolantTemperatureCoefficient"), - new SensorRequest("CLT"), - new TextRequest("eol"), - new TextRequest("TPS_coef"), - new FieldRequest("Engine", "cranking_tpsCoefficient"), - new FieldRequest("Engine", "cranking_tpsCoefficient"), - new SensorRequest("TPS"), - new TextRequest("eol"), - new TextRequest("Cranking_fuel"), - new FieldRequest("Engine", "cranking_fuel"), -}, - new Request[]{ - new TextRequest("Base_fuel"), - new FieldRequest("Engine", "running_baseFuel"), - new TextRequest("eol"), - new TextRequest("Intake_coef"), - new FieldRequest("Engine", "running_intakeTemperatureCoefficient"), - new SensorRequest("IAT"), - new TextRequest("eol"), - new TextRequest("Coolant_coef"), - new FieldRequest("Engine", "running_coolantTemperatureCoefficient"), - new SensorRequest("CLT"), - new TextRequest("eol"), - new TextRequest("Post_cranking_coef"), - new FieldRequest("Engine", "running_postCrankingFuelCorrection"), - new TextRequest("eol"), - new TextRequest("eol"), - new TextRequest("Running_fuel"), - new FieldRequest("Engine", "running_fuel"), - new TextRequest("eol"), - new TextRequest("Injector_lag"), - new FieldRequest("Engine", "running_injectorLag"), - new SensorRequest("VBATT"), -}), - }; -} \ No newline at end of file diff --git a/java_console/ui/src/main/java/com/rusefi/ldmp/generated/IdleThreadMeta.java b/java_console/ui/src/main/java/com/rusefi/ldmp/generated/IdleThreadMeta.java deleted file mode 100644 index 64e9b87722..0000000000 --- a/java_console/ui/src/main/java/com/rusefi/ldmp/generated/IdleThreadMeta.java +++ /dev/null @@ -1,42 +0,0 @@ -package com.rusefi.ldmp.generated; - -import com.rusefi.ldmp.*; - -public class IdleThreadMeta { - public static final Request[] CONTENT = new Request[]{ - new TextRequest("Idle_State"), - new FieldRequest("Engine", "idleState"), - new TextRequest("EOL"), - new TextRequest("Base_Position"), - new FieldRequest("Engine", "baseIdlePosition"), - new TextRequest("Position_with_Adjustments"), - new FieldRequest("Engine", "currentIdlePosition"), - new TextRequest("EOL"), - new TextRequest("EOL"), - new SensorRequest("TPS"), - new TextRequest("EOL"), - new TextRequest("Throttle_Up_State"), - new FieldRequest("Engine", "throttlePedalUpState"), - new ConfigRequest("throttlePedalUpPin"), - new TextRequest("eol"), - new IfRequest("Engine", "isAutomaticIdle", - new Request[]{ - new TextRequest("Output"), - new FieldRequest("idle_pid", "output"), - new TextRequest("iTerm"), - new FieldRequest("idle_pid", "iTerm"), - new TextRequest("eol"), - new TextRequest("Settings"), - new ConfigRequest("IDLERPMPID_PFACTOR"), - new ConfigRequest("IDLERPMPID_IFACTOR"), - new ConfigRequest("IDLERPMPID_DFACTOR"), - new ConfigRequest("IDLERPMPID_OFFSET"), - new TextRequest("eol"), - new TextRequest("ETB_Idle"), - new FieldRequest("Engine", "etbIdleAddition"), -}, - new Request[]{ - new TextRequest("Manual_idle_control"), -}), - }; -} \ No newline at end of file diff --git a/java_console/ui/src/main/java/com/rusefi/ldmp/generated/SpeedDensityMeta.java b/java_console/ui/src/main/java/com/rusefi/ldmp/generated/SpeedDensityMeta.java deleted file mode 100644 index 2331a1fddd..0000000000 --- a/java_console/ui/src/main/java/com/rusefi/ldmp/generated/SpeedDensityMeta.java +++ /dev/null @@ -1,30 +0,0 @@ -package com.rusefi.ldmp.generated; - -import com.rusefi.ldmp.*; - -public class SpeedDensityMeta { - public static final Request[] CONTENT = new Request[]{ - new IfRequest("Engine", "isTChargeAirModel", - new Request[]{ - new TextRequest("interpolate_Air_Flow"), - new FieldRequest("Engine", "airFlow"), - new TextRequest("Between"), - new ConfigRequest("tChargeAirCoefMin"), - new ConfigRequest("tChargeAirFlowMax"), - new ConfigRequest("tChargeAirCoefMax"), -}, - new Request[]{ - new TextRequest("interpolate_3D"), - new SensorRequest("RPM"), - new TextRequest("and"), - new SensorRequest("TPS"), - new TextRequest("EOL"), - new TextRequest("Between"), - new ConfigRequest("tChargeMinRpmMinTps"), - new ConfigRequest("tChargeMinRpmMaxTps"), - new TextRequest("EOL"), - new ConfigRequest("tChargeMaxRpmMinTps"), - new ConfigRequest("tChargeMaxRpmMaxTps"), -}), - }; -} \ No newline at end of file diff --git a/java_console/ui/src/main/java/com/rusefi/ldmp/generated/ThermistorsMeta.java b/java_console/ui/src/main/java/com/rusefi/ldmp/generated/ThermistorsMeta.java deleted file mode 100644 index 4e0ff69542..0000000000 --- a/java_console/ui/src/main/java/com/rusefi/ldmp/generated/ThermistorsMeta.java +++ /dev/null @@ -1,6 +0,0 @@ -package com.rusefi.ldmp.generated; - -import com.rusefi.ldmp.*; - -public class ThermistorsMeta { -} \ No newline at end of file diff --git a/java_console/ui/src/main/java/com/rusefi/ldmp/generated/TpsMeta.java b/java_console/ui/src/main/java/com/rusefi/ldmp/generated/TpsMeta.java deleted file mode 100644 index 712cb416f1..0000000000 --- a/java_console/ui/src/main/java/com/rusefi/ldmp/generated/TpsMeta.java +++ /dev/null @@ -1,6 +0,0 @@ -package com.rusefi.ldmp.generated; - -import com.rusefi.ldmp.*; - -public class TpsMeta { -} \ No newline at end of file diff --git a/java_console/ui/src/main/java/com/rusefi/ldmp/generated/TriggerDecoderMeta.java b/java_console/ui/src/main/java/com/rusefi/ldmp/generated/TriggerDecoderMeta.java deleted file mode 100644 index e81912e87d..0000000000 --- a/java_console/ui/src/main/java/com/rusefi/ldmp/generated/TriggerDecoderMeta.java +++ /dev/null @@ -1,28 +0,0 @@ -package com.rusefi.ldmp.generated; - -import com.rusefi.ldmp.*; - -public class TriggerDecoderMeta { - public static final Request[] CONTENT = new Request[]{ - new TextRequest("Current_Gap"), - new FieldRequest("Trigger_State", "currentGap"), - new TextRequest("EOL"), - new ConfigRequest("TRIGGERINPUTPINS1"), - new TextRequest("Trigger 1: Fall"), - new FieldRequest("Trigger_Central", "HWEVENTCOUNTERS1"), - new TextRequest(", Rise"), - new FieldRequest("Trigger_Central", "HWEVENTCOUNTERS2"), - new TextRequest("EOL"), - new ConfigRequest("TRIGGERINPUTPINS2"), - new TextRequest("Trigger 2: Fall"), - new FieldRequest("Trigger_Central", "HWEVENTCOUNTERS3"), - new TextRequest(", Rise"), - new FieldRequest("Trigger_Central", "HWEVENTCOUNTERS4"), - new TextRequest("EOL"), - new TextRequest("VVT_1"), - new ConfigRequest("CAMINPUTS1"), - new FieldRequest("Trigger_Central", "vvtEventRiseCounter"), - new FieldRequest("Trigger_Central", "vvtEventFallCounter"), - new FieldRequest("Trigger_Central", "vvtCamCounter"), - }; -} \ No newline at end of file diff --git a/java_console/ui/src/main/java/com/rusefi/ui/FormulasPane.java b/java_console/ui/src/main/java/com/rusefi/ui/FormulasPane.java index 7a710addbf..108d3162ca 100644 --- a/java_console/ui/src/main/java/com/rusefi/ui/FormulasPane.java +++ b/java_console/ui/src/main/java/com/rusefi/ui/FormulasPane.java @@ -8,7 +8,6 @@ import com.rusefi.config.generated.Fields; import com.rusefi.core.Sensor; import com.rusefi.core.SensorCentral; import com.rusefi.ui.config.ConfigField; -import com.rusefi.ui.livedocs.LiveDocPanel; import com.rusefi.ui.util.UiUtils; import com.rusefi.ui.widgets.IntGaugeLabel; import org.jetbrains.annotations.NotNull; @@ -40,14 +39,10 @@ public class FormulasPane { private final UIContext uiContext; private boolean isPaused; - private JPanel liveDocs; - public FormulasPane(UIContext uiContext) { this.uiContext = uiContext; JPanel vertical = new JPanel(new VerticalFlowLayout()); - liveDocs = LiveDocPanel.createLiveDocumentationPanel(uiContext); - vertical.add(liveDocs); vertical.add(formulaProxy); JScrollPane scroll = new JScrollPane(vertical, JScrollPane.VERTICAL_SCROLLBAR_ALWAYS, JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED); diff --git a/java_console/ui/src/main/java/com/rusefi/ui/SensorsLiveDataPane.java b/java_console/ui/src/main/java/com/rusefi/ui/SensorsLiveDataPane.java index 9084d5d706..03d5c27d64 100644 --- a/java_console/ui/src/main/java/com/rusefi/ui/SensorsLiveDataPane.java +++ b/java_console/ui/src/main/java/com/rusefi/ui/SensorsLiveDataPane.java @@ -1,6 +1,5 @@ package com.rusefi.ui; -import com.rusefi.ui.livedocs.LiveDocPanel; import org.putgemin.VerticalFlowLayout; import javax.swing.*; @@ -10,7 +9,6 @@ import java.awt.*; * Andrey Belomutskiy, (c) 2013-2020 */ public class SensorsLiveDataPane { - private JPanel liveDocs; /** * this is the panel we expose to the outside world */ @@ -19,8 +17,6 @@ public class SensorsLiveDataPane { public SensorsLiveDataPane(UIContext uiContext) { JPanel vertical = new JPanel(new VerticalFlowLayout()); - liveDocs = LiveDocPanel.createSensorsLiveDataPanel(uiContext); - vertical.add(liveDocs); JScrollPane scroll = new JScrollPane(vertical, JScrollPane.VERTICAL_SCROLLBAR_ALWAYS, JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED); content.add(scroll, BorderLayout.CENTER); diff --git a/java_console/ui/src/main/java/com/rusefi/ui/livedocs/ActionPanel.java b/java_console/ui/src/main/java/com/rusefi/ui/livedocs/ActionPanel.java deleted file mode 100644 index 2159250db7..0000000000 --- a/java_console/ui/src/main/java/com/rusefi/ui/livedocs/ActionPanel.java +++ /dev/null @@ -1,58 +0,0 @@ -package com.rusefi.ui.livedocs; - -import net.miginfocom.swing.MigLayout; - -import javax.swing.*; -import java.awt.*; -import java.util.ArrayList; -import java.util.List; -import java.util.Map; - -/** - * Multi-line horizontal flow panel. - *

- *

- * Andrey Belomutskiy, (c) 2013-2020 - */ -public class ActionPanel { - private final RefreshActionsMap refreshActions = new RefreshActionsMap(); - private final JPanel panel = new JPanel(new MigLayout()); - private JPanel currentLinePanel; - - public ActionPanel(String title) { - panel.setBorder(BorderFactory.createTitledBorder(title)); - } - - public JPanel getPanel() { - return panel; - } - - public void newLine() { - initIfNeeded(); - currentLinePanel = null; - } - - public void addControl(JComponent component) { - initIfNeeded(); - currentLinePanel.add(component); - } - - private void initIfNeeded() { - if (currentLinePanel == null) { - currentLinePanel = new JPanel(new FlowLayout(FlowLayout.CENTER, 5, 0)); - panel.add(currentLinePanel, "wrap"); - } - } - - public RefreshActionsMap getRefreshActions() { - return refreshActions; - } - - public void actionsListAdd(LiveDataContext context, RefreshActions refreshAction) { - refreshActions.put(context, refreshAction); - } - - public void actionsListAddAll(RefreshActionsMap actions) { - refreshActions.addAll(actions); - } -} diff --git a/java_console/ui/src/main/java/com/rusefi/ui/livedocs/IfConditionPanel.java b/java_console/ui/src/main/java/com/rusefi/ui/livedocs/IfConditionPanel.java deleted file mode 100644 index 1d55bf19cf..0000000000 --- a/java_console/ui/src/main/java/com/rusefi/ui/livedocs/IfConditionPanel.java +++ /dev/null @@ -1,29 +0,0 @@ -package com.rusefi.ui.livedocs; - -import net.miginfocom.swing.MigLayout; - -import javax.swing.*; -import java.util.ArrayList; -import java.util.List; - -/** - * Andrey Belomutskiy, (c) 2013-2020 - */ -public class IfConditionPanel { - private final RefreshActionsMap actionsList; - private final JPanel panel = new JPanel(new MigLayout()); - - public IfConditionPanel(JPanel result, RefreshActionsMap actionsList) { - // todo: do we really need this proxy panel or can we just use parameter value? - panel.add(result); - this.actionsList = actionsList; - } - - public RefreshActionsMap getActionsList() { - return actionsList; - } - - public JPanel getPanel() { - return panel; - } -} diff --git a/java_console/ui/src/main/java/com/rusefi/ui/livedocs/LessJumpyJLabel.java b/java_console/ui/src/main/java/com/rusefi/ui/livedocs/LessJumpyJLabel.java deleted file mode 100644 index 5a6d7b13c6..0000000000 --- a/java_console/ui/src/main/java/com/rusefi/ui/livedocs/LessJumpyJLabel.java +++ /dev/null @@ -1,23 +0,0 @@ -package com.rusefi.ui.livedocs; - -import javax.swing.*; -import java.awt.*; - -/** - * Andrey Belomutskiy, (c) 2013-2020 - */ -public class LessJumpyJLabel extends JLabel { - private int maxPreferredWidth = 0; - - public LessJumpyJLabel(String text) { - super(text); - } - - @Override - public Dimension getPreferredSize() { - Dimension preferredSize = super.getPreferredSize(); - // let's occupy maximum width we ever wanted to reduce layout jumpiness - maxPreferredWidth = Math.max(maxPreferredWidth, preferredSize.width); - return new Dimension(maxPreferredWidth, preferredSize.height); - } -} diff --git a/java_console/ui/src/main/java/com/rusefi/ui/livedocs/LiveDocPanel.java b/java_console/ui/src/main/java/com/rusefi/ui/livedocs/LiveDocPanel.java deleted file mode 100644 index 26b2ca7d0d..0000000000 --- a/java_console/ui/src/main/java/com/rusefi/ui/livedocs/LiveDocPanel.java +++ /dev/null @@ -1,242 +0,0 @@ -package com.rusefi.ui.livedocs; - -import com.opensr5.ConfigurationImage; -import com.rusefi.autoupdate.AutoupdateUtil; -import com.rusefi.binaryprotocol.BinaryProtocol; -import com.rusefi.config.Field; -import com.rusefi.config.generated.Fields; -import com.rusefi.core.Sensor; -import com.rusefi.core.SensorCentral; -import com.rusefi.ldmp.*; -import com.rusefi.ldmp.generated.*; -import com.opensr5.ini.DialogModel; -import com.opensr5.ini.IniFileModel; -import com.rusefi.ui.UIContext; -import com.rusefi.ui.livedocs.controls.Toolbox; -import com.rusefi.ui.widgets.DetachedSensor; -import net.miginfocom.swing.MigLayout; -import org.jetbrains.annotations.NotNull; -import org.putgemin.VerticalFlowLayout; - -import javax.swing.*; -import java.awt.*; -import java.awt.event.MouseAdapter; -import java.awt.event.MouseEvent; - -import static com.rusefi.config.Field.niceToString; - -public class LiveDocPanel { - - private static final String CONSTRAINTS = "wrap, grow"; - private static final String LAYOUT = "gap 0, insets 0"; - // todo: replace magic hard-coded value with some relative number, maybe 1/3 of frame height or something? - private static final int MAGIC_DETACHED_GAUGE_SIZE = 200; - private static final int LIVE_DATA_PRECISION = 2; - - - @NotNull - public static JPanel createPanel(UIContext uiContext, String title, Request[] content) { - return createPanel(uiContext, title, content, "", StateDictionary.NONE); - } - - @NotNull - static JPanel createPanel(UIContext uiContext, String title, Request[] content, String settingsInstancePrefix, final int defaultContextId) { - LiveDataContext defaultContext = new LiveDataContext(defaultContextId); - - ActionPanel ap = createComponents(uiContext, title, content, settingsInstancePrefix, defaultContext); - JPanel panel = ap.getPanel(); - - LiveDocHolder holder = new LiveDocHolder(defaultContext, ap.getRefreshActions()) { - @Override - public boolean isVisible() { - boolean isVisible = !panel.getVisibleRect().isEmpty(); - return isVisible && isRecursivelyVisible(panel); - } - }; - - LiveDocsRegistry.INSTANCE.register(holder); - return panel; - } - - static boolean isRecursivelyVisible(Container c) { - Container parent = c.getParent(); - return c.isVisible() && (parent == null || isRecursivelyVisible(parent)); - } - - private static ActionPanel createComponents(UIContext uiContext, String title, Request[] content, String settingsInstancePrefix, LiveDataContext defaultContext) { - ActionPanel result = new ActionPanel(title); - - for (Request r : content) { - if (r instanceof TextRequest) { - TextRequest request = (TextRequest) r; - if (request.isEol()) { - result.newLine(); - } else { - result.addControl(new JLabel(request.getValue().replaceAll("_", " "))); - } - } else if (r instanceof FieldRequest) { - FieldRequest request = (FieldRequest) r; - LiveDataContext context = getFieldContext(defaultContext, request.getStateContext()); - Field field = getField(defaultContext, request); - JLabel label = new LessJumpyJLabel("*"); - label.setIcon(AutoupdateUtil.loadIcon("livedocs/variable.png")); - label.setToolTipText("Variable " + field.getName()); - result.addControl(label); - result.actionsListAdd(context, new RefreshActions() { - @Override - public void refresh(BinaryProtocol bp, byte[] response) { - Number fieldValue = field.getValue(new ConfigurationImage(response)); - String value = Field.niceToString(fieldValue, LIVE_DATA_PRECISION); - label.setText(value); - } - }); - } else if (r instanceof ConfigRequest) { - ConfigRequest request = (ConfigRequest) r; - Field field = Field.findField(Fields.VALUES, settingsInstancePrefix, request.getField()); - - JLabel label = new LessJumpyJLabel("*"); - label.setIcon(AutoupdateUtil.loadIcon("livedocs/setting.png")); - label.setToolTipText(getTooltipText(field.getName())); - result.addControl(label); - // todo: use different notification flow altogether since configuration has nothing to do with live data structures - result.actionsListAdd(new LiveDataContext(Fields.LDS_ENGINE_STATE_INDEX), new RefreshActions() { - @Override - public void refresh(BinaryProtocol bp, byte[] response) { - double multiplier = 1; // todo: PROPER MULTIPLIER!!! - String value = field.getAnyValue(bp.getControllerConfiguration(), multiplier).toString(); - label.setText(value); - } - }); - } else if (r instanceof SensorRequest) { - SensorRequest request = (SensorRequest) r; - Sensor sensor = Sensor.find(request.getValue()); - JLabel label = new LessJumpyJLabel("*"); - label.setIcon(AutoupdateUtil.loadIcon("livedocs/gauge.png")); - label.setToolTipText("Sensor " + request.getValue()); - label.addMouseListener(new MouseAdapter() { - @Override - public void mouseClicked(MouseEvent e) { - if (e.getClickCount() == 2 && !SwingUtilities.isRightMouseButton(e)) { - final DetachedSensor ds = new DetachedSensor(uiContext, sensor, MAGIC_DETACHED_GAUGE_SIZE); - ds.show(e); - } - } - }); - result.addControl(label); - SensorCentral.getInstance().addListener(sensor, value -> label.setText(niceToString(value, LIVE_DATA_PRECISION))); - } else if (r instanceof IfRequest) { - IfRequest request = (IfRequest) r; - - IfConditionPanel panel = createIfRequestPanel(uiContext, request, defaultContext); - - result.actionsListAddAll(panel.getActionsList()); - - result.addControl(panel.getPanel()); - } else { - throw new UnsupportedOperationException(r.toString()); - } - } - return result; - } - - private static LiveDataContext getFieldContext(LiveDataContext defaultContext, String stateContext) { - if (stateContext.isEmpty()) { - return defaultContext; - } else { - String indexFieldName = StateDictionary.getContextIndexFieldName(stateContext); - return StateDictionary.getStateContext(indexFieldName); - } - } - - private static Field getField(LiveDataContext defaultContext, FieldReference request) { - Field[] context; - if (request.getStateContext().isEmpty()) { - context = StateDictionary.INSTANCE.getFields("create", defaultContext); - } else { - context = StateDictionary.INSTANCE.getValue(request.getStateContext()); - } - return Field.findField(context, "", request.getField()); - } - - private static String getTooltipText(String configurationFieldName) { - DialogModel.Field dialogField = IniFileModel.getInstance().getField(configurationFieldName); - if (dialogField == null) { - return "Configuration " + configurationFieldName; - } - return "Configuration " + dialogField.getUiName() + " (" + configurationFieldName + ")"; - } - - private static IfConditionPanel createIfRequestPanel(UIContext uiContext, IfRequest request, LiveDataContext defaultContext) { - Field conditionField = getField(defaultContext, request); - - JPanel result = new JPanel(new VerticalFlowLayout()); - - JLabel conditionLabel = new LessJumpyJLabel(request.getField()); - result.add(conditionLabel); - - - ActionPanel trueAP = createComponents(uiContext, "", request.trueBlock.toArray(new Request[0]), "", defaultContext); - ActionPanel falseAP = createComponents(uiContext, "", request.falseBlock.toArray(new Request[0]), "", defaultContext); - - result.add(trueAP.getPanel()); - result.add(falseAP.getPanel()); - - RefreshActionsMap combined = trueAP.getRefreshActions(); - combined.addAll(falseAP.getRefreshActions()); - - LiveDataContext context = getFieldContext(defaultContext, request.getStateContext()); - - combined.put(context, new RefreshActions() { - @Override - public void refresh(BinaryProtocol bp, byte[] response) { - int value = (int) conditionField.getValue(new ConfigurationImage(response)).intValue(); - conditionLabel.setText(request.getField() + " is " + (value == 1 ? "TRUE" : "FALSE")); - JPanel active; - JPanel passive; - if (value == 1) { - active = trueAP.getPanel(); - passive = falseAP.getPanel(); - } else { - active = falseAP.getPanel(); - passive = trueAP.getPanel(); - } - active.setBorder(BorderFactory.createLineBorder(Color.green)); - passive.setBorder(BorderFactory.createLineBorder(Color.red)); - Toolbox.setEnabledRecursive(active, true); - Toolbox.setEnabledRecursive(passive, false); - } - }); - - return new IfConditionPanel(result, combined); - } - - @NotNull - public static JPanel createLiveDocumentationPanel(UIContext uiContext) { - JPanel liveDocs = new JPanel(new MigLayout(LAYOUT)); - - liveDocs.add(createPanel(uiContext,"Fuel", FuelMathMeta.CONTENT), CONSTRAINTS); - - liveDocs.add(createPanel(uiContext, "tCharge", SpeedDensityMeta.CONTENT), CONSTRAINTS); - - liveDocs.add(createPanel(uiContext, "Idle", IdleThreadMeta.CONTENT), CONSTRAINTS); - - // todo: restore this functionality - // liveDocs.add(createPanel("ETB", ElectronicThrottleMeta.CONTENT), CONSTRAINTS); - - return liveDocs; - } - - public static JPanel createSensorsLiveDataPanel(UIContext uiContext) { - JPanel liveDocs = new JPanel(new MigLayout(LAYOUT)); - -/* - One day we shall have this back - liveDocs.add(createPanel("Throttle Position Sensor", TpsMeta.TPS_SECTION), CONSTRAINTS); - - */ - - liveDocs.add(createPanel(uiContext, "Trigger", TriggerDecoderMeta.CONTENT), CONSTRAINTS); - - return liveDocs; - } -} diff --git a/java_console/ui/src/main/java/com/rusefi/ui/livedocs/LiveDocsSandbox.java b/java_console/ui/src/main/java/com/rusefi/ui/livedocs/LiveDocsSandbox.java deleted file mode 100644 index fe46b2fca8..0000000000 --- a/java_console/ui/src/main/java/com/rusefi/ui/livedocs/LiveDocsSandbox.java +++ /dev/null @@ -1,73 +0,0 @@ -package com.rusefi.ui.livedocs; - -import com.rusefi.ldmp.generated.ThermistorsMeta; -import com.rusefi.ui.livedocs.controls.Toolbox; -import com.rusefi.ui.util.FrameHelper; -import net.miginfocom.swing.MigLayout; -import org.jetbrains.annotations.NotNull; - -import javax.swing.*; -import java.awt.*; - -import static com.rusefi.ui.livedocs.controls.Toolbox.setTransparentLineBorder; - -public class LiveDocsSandbox { - public static JLabel comment = new JLabel("Prototype Comments appear here"); - - public static void main(String[] args) { - comment.setForeground(Color.blue); - - JPanel panels = new JPanel(new MigLayout("fillx, gap 0, insets 0")); -// panels.add(LiveDocPanel.createPanel("Coolant Sensor", ThermistorsMeta.CONTENT, "CLT", LDS_CLT_STATE_INDEX), "wrap"); -// panels.add(LiveDocPanel.createPanel("Intake Air Sensor", ThermistorsMeta.CONTENT, "IAT", LDS_IAT_STATE_INDEX), "wrap"); - - panels.add(getTChargePanel(), "wrap, grow"); - - panels.add(comment); - - new FrameHelper().showFrame(panels); - } - - private static Component getTChargePanel() { - JPanel panel = new JPanel(new MigLayout("gap 0, insets 0")); - panel.setBorder(BorderFactory.createTitledBorder("Air Charge Temperature")); - panel.setBorder(BorderFactory.createLineBorder(Color.CYAN)); - - JPanel topPanel = new JPanel(new MigLayout()); - setTransparentLineBorder(topPanel); - topPanel.add(new JLabel("top")); - - JPanel bottomPanel = new JPanel(new MigLayout()); - setTransparentLineBorder(bottomPanel); - bottomPanel.add(new JLabel("bottom")); - - addBranch(panel, true, topPanel, bottomPanel); - - return panel; - } - - private static void addBranch(JPanel panel, boolean b, JPanel topPanel, JPanel bottomPanel) { - //IfBranch branch; - JPanel topWrapped = wrapWithOffset(topPanel); - JPanel bottomWrapped = wrapWithOffset(bottomPanel); - - topPanel.setBorder(BorderFactory.createLineBorder(Color.green)); - bottomPanel.setBorder(BorderFactory.createLineBorder(Color.red)); - Toolbox.setEnabledRecursive(bottomPanel, false); - - - panel.add(new JLabel("If xa"), "wrap"); - panel.add(topWrapped, "wrap"); - panel.add(new JLabel("else"), "wrap"); - panel.add(bottomWrapped, "wrap"); - - } - - @NotNull - public static JPanel wrapWithOffset(JPanel panel) { - JPanel topWrapped = new JPanel(new FlowLayout()); - topWrapped.add(new JLabel(" ")); - topWrapped.add(panel); - return topWrapped; - } -} diff --git a/java_console/ui/src/main/java/com/rusefi/ui/livedocs/controls/ConfigReference.java b/java_console/ui/src/main/java/com/rusefi/ui/livedocs/controls/ConfigReference.java deleted file mode 100644 index fd2e5b7c05..0000000000 --- a/java_console/ui/src/main/java/com/rusefi/ui/livedocs/controls/ConfigReference.java +++ /dev/null @@ -1,9 +0,0 @@ -package com.rusefi.ui.livedocs.controls; - -public class ConfigReference { - final int value; - - public ConfigReference(int value) { - this.value = value; - } -} diff --git a/java_console/ui/src/main/java/com/rusefi/ui/livedocs/controls/ConfigView.java b/java_console/ui/src/main/java/com/rusefi/ui/livedocs/controls/ConfigView.java deleted file mode 100644 index c1bf736008..0000000000 --- a/java_console/ui/src/main/java/com/rusefi/ui/livedocs/controls/ConfigView.java +++ /dev/null @@ -1,35 +0,0 @@ -package com.rusefi.ui.livedocs.controls; - -import com.rusefi.ui.livedocs.LiveDocsSandbox; - -import javax.swing.*; -import java.awt.*; -import java.awt.event.MouseAdapter; -import java.awt.event.MouseEvent; - -public class ConfigView { - private final JLabel content; - - public ConfigView(ConfigReference e) { - content = new JLabel(Integer.toString(e.value)); - markLiveElement(content); - content.setToolTipText("Configuration XXX"); - - content.addMouseListener(new MouseAdapter() { - @Override - public void mouseEntered(MouseEvent e) { - LiveDocsSandbox.comment.setText("Mouse action shows tooltip"); - } - }); - - } - - public static void markLiveElement(JComponent content) { - content.setBackground(Color.lightGray); - content.setOpaque(true); - } - - public JLabel getContent() { - return content; - } -} diff --git a/java_console/ui/src/main/java/com/rusefi/ui/livedocs/controls/LogicReference.java b/java_console/ui/src/main/java/com/rusefi/ui/livedocs/controls/LogicReference.java deleted file mode 100644 index 0220c80bd4..0000000000 --- a/java_console/ui/src/main/java/com/rusefi/ui/livedocs/controls/LogicReference.java +++ /dev/null @@ -1,35 +0,0 @@ -package com.rusefi.ui.livedocs.controls; - -import com.rusefi.ui.livedocs.LiveDocsSandbox; - -import javax.swing.*; -import java.awt.*; -import java.awt.event.MouseAdapter; -import java.awt.event.MouseEvent; - -import static com.rusefi.ui.livedocs.controls.ConfigView.markLiveElement; - -public class LogicReference { - private final JLabel content = new JLabel(); - - public LogicReference(double value, JComponent reference) { - content.setText(Double.toString(value)); - markLiveElement(content); - content.addMouseListener(new MouseAdapter() { - @Override - public void mouseEntered(MouseEvent e) { - reference.setBorder(BorderFactory.createLineBorder(Color.red)); - LiveDocsSandbox.comment.setText("Mouse action highlights referenced element"); - } - - @Override - public void mouseExited(MouseEvent e) { - Toolbox.setTransparentLineBorder(reference); - } - }); - } - - public JLabel getContent() { - return content; - } -} diff --git a/java_console/ui/src/main/java/com/rusefi/ui/livedocs/controls/Toolbox.java b/java_console/ui/src/main/java/com/rusefi/ui/livedocs/controls/Toolbox.java deleted file mode 100644 index b19f432719..0000000000 --- a/java_console/ui/src/main/java/com/rusefi/ui/livedocs/controls/Toolbox.java +++ /dev/null @@ -1,26 +0,0 @@ -package com.rusefi.ui.livedocs.controls; - -import javax.swing.*; -import java.awt.*; - -/** - * Swing UI utilities - */ -public class Toolbox { - public static void setTransparentLineBorder(JComponent reference) { - reference.setBorder(BorderFactory.createEmptyBorder(1, 1, 1, 1)); - } - - public static void setEnabledRecursive(Container panel, boolean value) { - panel.setEnabled(value); - Component[] com = panel.getComponents(); - for (int a = 0; a < com.length; a++) { - Component element = com[a]; - if (element instanceof Container) { - setEnabledRecursive((Container) element, value); - } else { - element.setEnabled(value); - } - } - } -} diff --git a/java_console/ui/src/main/java/com/rusefi/ui/livedocs/test/LiveDocPanelTest.java b/java_console/ui/src/main/java/com/rusefi/ui/livedocs/test/LiveDocPanelTest.java deleted file mode 100644 index cd76ddf6c8..0000000000 --- a/java_console/ui/src/main/java/com/rusefi/ui/livedocs/test/LiveDocPanelTest.java +++ /dev/null @@ -1,24 +0,0 @@ -package com.rusefi.ui.livedocs.test; - -import com.rusefi.ui.livedocs.LiveDocPanel; -import org.junit.Test; - -import static org.junit.Assert.assertNotNull; - -public class LiveDocPanelTest { - @Test - public void testFindField() throws NoSuchFieldException { -// Field reflectField = Fields.class.getField("LDS_CLT_STATE_INDEX"); -// assertNotNull(reflectField); - } - - @Test - public void testValidDocumentationMetaInfo() { - assertNotNull(LiveDocPanel.createLiveDocumentationPanel(null)); - } - - @Test - public void testValidSensorsMetaInfo() { - assertNotNull(LiveDocPanel.createSensorsLiveDataPanel(null)); - } -} diff --git a/java_tools/configuration_definition/src/main/java/com/rusefi/ldmp/ConfigRequest.java b/java_tools/configuration_definition/src/main/java/com/rusefi/ldmp/ConfigRequest.java deleted file mode 100644 index 3d4f19b35b..0000000000 --- a/java_tools/configuration_definition/src/main/java/com/rusefi/ldmp/ConfigRequest.java +++ /dev/null @@ -1,47 +0,0 @@ -package com.rusefi.ldmp; - - -import java.util.Objects; - -/** - * Reference to a parameter from configuration - * - */ -public class ConfigRequest extends Request { - //@NotNull - private final String field; - - public ConfigRequest(String field) { - Objects.requireNonNull(field); - this.field = field; - } - - public String getField() { - return field; - } - - @Override - public String toString() { - return "ConfigRequest{" + - "field='" + field + '\'' + - '}'; - } - - @Override - public boolean equals(Object o) { - if (this == o) return true; - if (o == null || getClass() != o.getClass()) return false; - ConfigRequest that = (ConfigRequest) o; - return field.equals(that.field); - } - - @Override - public int hashCode() { - return Objects.hash(field); - } - - @Override - public String getGeneratedJavaCode() { - return withSimpleParameter(quoteString(field)); - } -} diff --git a/java_tools/configuration_definition/src/main/java/com/rusefi/ldmp/FieldReference.java b/java_tools/configuration_definition/src/main/java/com/rusefi/ldmp/FieldReference.java deleted file mode 100644 index e2bb1075b3..0000000000 --- a/java_tools/configuration_definition/src/main/java/com/rusefi/ldmp/FieldReference.java +++ /dev/null @@ -1,7 +0,0 @@ -package com.rusefi.ldmp; - -public interface FieldReference { - String getStateContext(); - - String getField(); -} diff --git a/java_tools/configuration_definition/src/main/java/com/rusefi/ldmp/FieldRequest.java b/java_tools/configuration_definition/src/main/java/com/rusefi/ldmp/FieldRequest.java deleted file mode 100644 index 5576d59934..0000000000 --- a/java_tools/configuration_definition/src/main/java/com/rusefi/ldmp/FieldRequest.java +++ /dev/null @@ -1,60 +0,0 @@ -package com.rusefi.ldmp; - -import java.util.Objects; - -import static com.rusefi.ConfigDefinition.EOL; - -/** - * Andrey Belomutskiy, (c) 2013-2020 - */ -public class FieldRequest extends Request implements FieldReference { - private final String stateContext; - private final String field; - - public FieldRequest(String stateContext, String field) { - this.stateContext = stateContext; - this.field = field; - } - - @Override - public String getStateContext() { - return stateContext; - } - - @Override - public String getField() { - return field; - } - - @Override - public String toString() { - return "FieldRequest{" + - "stateContext='" + stateContext + '\'' + - ", field='" + field + '\'' + - '}'; - } - - @Override - public boolean equals(Object o) { - if (this == o) return true; - if (o == null || getClass() != o.getClass()) return false; - FieldRequest request = (FieldRequest) o; - return stateContext.equals(request.stateContext) && - field.equals(request.field); - } - - @Override - public int hashCode() { - return Objects.hash(stateContext, field); - } - - @Override - public String getGeneratedJavaCode() { - return GLOBAL_PREFIX + "new " + getClass().getSimpleName() + "(" - + quoteString(stateContext) - + ", " - + quoteString(field) - + ")," + EOL; - } - -} diff --git a/java_tools/configuration_definition/src/main/java/com/rusefi/ldmp/IfRequest.java b/java_tools/configuration_definition/src/main/java/com/rusefi/ldmp/IfRequest.java deleted file mode 100644 index b83382e354..0000000000 --- a/java_tools/configuration_definition/src/main/java/com/rusefi/ldmp/IfRequest.java +++ /dev/null @@ -1,67 +0,0 @@ -package com.rusefi.ldmp; - -import java.util.ArrayList; -import java.util.Arrays; -import java.util.List; - -import static com.rusefi.ConfigDefinition.EOL; - -public class IfRequest extends Request implements FieldReference { - private final String stateContext; - private final String variable; - public List trueBlock = new ArrayList<>(); - public List falseBlock = new ArrayList<>(); - - public IfRequest(String stateContext, String variable) { - this.stateContext = stateContext; - this.variable = variable; - } - - public IfRequest(String stateContext, String variable, Request[] trueBlock, Request[] falseBlock) { - this(stateContext, variable); - this.trueBlock.addAll(Arrays.asList(trueBlock)); - this.falseBlock.addAll(Arrays.asList(falseBlock)); - } - - @Override - public String getStateContext() { - return stateContext; - } - - @Override - public String toString() { - return "IfRequest{" + - "variable='" + variable + '\'' + - ", trueBlock=" + trueBlock + - ", falseBlock=" + falseBlock + - '}'; - } - - @Override - public String getField() { - return variable; - } - - @Override - public String getGeneratedJavaCode() { - String result = Request.GLOBAL_PREFIX; - - Request.GLOBAL_PREFIX = Request.GLOBAL_PREFIX + "\t"; - - result += "new IfRequest(" - + quoteString(stateContext) - + ", " - + quoteString(variable) - + "," + EOL + - Request.GLOBAL_PREFIX + "new Request[]{" + EOL + - Request.getGeneratedJavaCode(trueBlock) + - "}," + EOL + - Request.GLOBAL_PREFIX + "new Request[]{" + EOL + - Request.getGeneratedJavaCode(falseBlock) + - "})," + EOL; - - Request.GLOBAL_PREFIX = Request.GLOBAL_PREFIX.substring(1); - - return result; - } -} diff --git a/java_tools/configuration_definition/src/main/java/com/rusefi/ldmp/LiveDocsMetaParser.java b/java_tools/configuration_definition/src/main/java/com/rusefi/ldmp/LiveDocsMetaParser.java deleted file mode 100644 index 4263b176b1..0000000000 --- a/java_tools/configuration_definition/src/main/java/com/rusefi/ldmp/LiveDocsMetaParser.java +++ /dev/null @@ -1,207 +0,0 @@ -package com.rusefi.ldmp; - -import com.rusefi.util.SystemOut; - -import java.io.File; -import java.io.FileWriter; -import java.io.IOException; -import java.nio.charset.StandardCharsets; -import java.nio.file.Files; -import java.nio.file.Paths; -import java.util.*; -import java.util.stream.Stream; - -import static com.rusefi.ConfigDefinition.EOL; - -public class LiveDocsMetaParser { - private static final String DISPLAY_TAG = "DISPLAY_TAG"; - private static final String DISPLAY_CONFIG = "DISPLAY_CONFIG"; - private static final String DISPLAY_PREFIX = "DISPLAY_PREFIX"; - private static final String DISPLAY_FIELD = "DISPLAY_FIELD"; - private static final String DISPLAY_STATE = "DISPLAY_STATE"; - private static final String DISPLAY_TEXT = "DISPLAY_TEXT"; - private static final String DISPLAY_SENSOR = "DISPLAY_SENSOR"; - private static final String DISPLAY_IF = "DISPLAY_IF"; - private static final String DISPLAY_ELSE = "DISPLAY_ELSE"; - private static final String DISPLAY_ENDIF = "DISPLAY_ENDIF"; - private static final char QUOTE_SYMBOL = '"'; - public static final String TODO_MAKE_THIS_DESTINATION_PARAMETER = "/ui/src/main/java/com/rusefi/ldmp/generated/"; - private static StringBuilder prefix = new StringBuilder(); - - private static String readLineByLine(String filePath) throws IOException { - StringBuilder contentBuilder = new StringBuilder(); - Stream stream = Files.lines(Paths.get(filePath), StandardCharsets.UTF_8); - stream.forEach(s -> contentBuilder.append(s).append("\n")); - return contentBuilder.toString(); - } - - public static void main(String[] args) throws IOException { - if (args.length != 2) - throw new IllegalArgumentException("Two arguments expected but " + Arrays.toString(args)); - String destinationPath = args[0]; - String fileName = args[1]; - handleMetaData(destinationPath, fileName); - } - - public static void handleMetaData(String destinationPath, String inputFileName) throws IOException { - MetaInfo metaInfo = getMetaFromFile(inputFileName); - SystemOut.println(metaInfo); - - String className = getClassName(inputFileName); - String javaCode = generateJavaCode(metaInfo, className); - String fullDestination = destinationPath + TODO_MAKE_THIS_DESTINATION_PARAMETER; - new File(fullDestination).mkdirs(); - FileWriter fw = new FileWriter(fullDestination + className + ".java"); - fw.write(javaCode); - fw.close(); - SystemOut.close(); - } - - private static MetaInfo getMetaFromFile(String fileName) throws IOException { - SystemOut.println(fileName); - if (!new File(fileName).exists()) - throw new IllegalStateException("Not found " + fileName); - String content = readLineByLine(fileName); - return parse(content, fileName); - } - - public static MetaInfo parse(String string, String context) { - Stack> stack = new Stack<>(); - - - MetaInfo meta = new MetaInfo(); - - List result = meta.start("CONTENT"); - string = string.replaceAll("[()>.]", " "); - SystemOut.println(string); - Scanner s = new Scanner(string); - while (s.hasNext()) { - String token = s.next(); - //SystemOut.println(token); - if (DISPLAY_CONFIG.equalsIgnoreCase(token)) { - if (s.hasNext()) { - String config = s.next(); - SystemOut.println("REQ CONF " + config); - result.add(new ConfigRequest(config)); - } - } else if (DISPLAY_STATE.equalsIgnoreCase(token)) { - if (s.hasNext()) { - String state = s.next(); - meta.stateStack.push(state); } - } else if (DISPLAY_TEXT.equalsIgnoreCase(token)) { - if (s.hasNext()) { - String config = s.next(); - if (config.startsWith(String.valueOf(QUOTE_SYMBOL))) { - config = config.substring(1); - while (!config.endsWith(String.valueOf(QUOTE_SYMBOL))) { - String next = s.next(); - config += ' ' + next; - } - config = config.substring(0, config.length() - 1); - } - SystemOut.println("Display test " + config); - result.add(new TextRequest(config)); - } - } else if (DISPLAY_TAG.equalsIgnoreCase(token)) { - if (s.hasNext()) { - String tag = s.next(); - SystemOut.println("REQ TAG " + tag); - result = meta.start(tag); - } - } else if (DISPLAY_PREFIX.equalsIgnoreCase(token)) { - if (s.hasNext()) { - String current = s.next(); - prefix.append(current + "_"); - } - } else if (DISPLAY_FIELD.equalsIgnoreCase(token)) { - if (s.hasNext()) { - String fieldName = prefix + s.next(); - SystemOut.println("REQ FIELD " + fieldName); - result.add(new FieldRequest(meta.getStateContext(), fieldName)); - prefix.setLength(0); - } - } else if (DISPLAY_IF.equalsIgnoreCase(token)) { - if (s.hasNext()) { - stack.push(result); - - String conditionVariable = s.next(); - - SystemOut.println("if Condition " + conditionVariable); - IfRequest ifRequest = new IfRequest(meta.getStateContext(), conditionVariable); - result.add(ifRequest); - - result = ifRequest.trueBlock; - } - } else if (DISPLAY_ELSE.equalsIgnoreCase(token)) { - if (stack.isEmpty()) - throw new IllegalStateException("No IF statement on stack while we have DISPLAY_ELSE while " + context); - List onStack = stack.peek(); - if (onStack.isEmpty()) - throw new IllegalStateException("Empty on stack"); - Request request = onStack.get(onStack.size() - 1); - if (!(request instanceof IfRequest)) - throw new IllegalStateException("Something not right " + request); - IfRequest ifRequest = (IfRequest) request; - - result = ifRequest.falseBlock; - } else if (DISPLAY_ENDIF.equalsIgnoreCase(token)) { - if (stack.isEmpty()) - throw new IllegalStateException("No IF statement on stack"); - result = stack.pop(); - - } else if (DISPLAY_SENSOR.equalsIgnoreCase(token)) { - if (s.hasNext()) { - String config = s.next(); - SystemOut.println("REQ SENSOR " + config); - result.add(new SensorRequest(config)); - } - } - } - - if (!stack.isEmpty()) - throw new IllegalStateException("Unfinished"); - return meta; - } - - public static String generateJavaCode(MetaInfo r, String className) { - StringBuilder java = new StringBuilder("package com.rusefi.ldmp.generated;" + EOL + EOL + - "import com.rusefi.ldmp.*;" + EOL + EOL + - "public class " + className + " {" + EOL - ); - - for (Map.Entry> e : r.map.entrySet()) { - List list = e.getValue(); - if (list.isEmpty()) - continue; - - java.append("\tpublic static final Request[] " + - e.getKey() + - " = new Request[]{" + EOL); - java.append(Request.getGeneratedJavaCode(list)); - java.append("\t};" + EOL); - } - - java.append("}"); - return java.toString(); - } - - private static String toProperCase(String s) { - return s.substring(0, 1).toUpperCase() + s.substring(1).toLowerCase(); - } - - public static String getClassName(String cppSourceName) { - int lastDotIndex = cppSourceName.lastIndexOf('.'); - if (lastDotIndex != -1) - cppSourceName = cppSourceName.substring(0, lastDotIndex); - int lastSlashIndex = cppSourceName.lastIndexOf('/'); - if (lastDotIndex != -1) - cppSourceName = cppSourceName.substring(lastSlashIndex + 1); - - String[] parts = cppSourceName.split("_"); - String camelCaseString = ""; - for (String part : parts) { - camelCaseString = camelCaseString + toProperCase(part); - } - return camelCaseString + "Meta"; - } -} diff --git a/java_tools/configuration_definition/src/main/java/com/rusefi/ldmp/MetaInfo.java b/java_tools/configuration_definition/src/main/java/com/rusefi/ldmp/MetaInfo.java deleted file mode 100644 index 0eaf0789cb..0000000000 --- a/java_tools/configuration_definition/src/main/java/com/rusefi/ldmp/MetaInfo.java +++ /dev/null @@ -1,26 +0,0 @@ -package com.rusefi.ldmp; - -import java.util.*; - -public class MetaInfo { - public Map> map = new TreeMap<>(); - public Stack stateStack = new Stack<>(); - - public List start(String content) { - map.putIfAbsent(content, new ArrayList<>()); - return map.get(content); - } - - public List first() { - return map.values().iterator().next(); - } - - public String getStateContext() { - if (stateStack.isEmpty()) { - // state context not defined, java code would have to explicitly provide that information - // this is used if code does not know context, for instance thermistor code does not know if CLT or IAT usage - return ""; - } - return stateStack.peek(); - } -} diff --git a/java_tools/configuration_definition/src/main/java/com/rusefi/ldmp/Request.java b/java_tools/configuration_definition/src/main/java/com/rusefi/ldmp/Request.java deleted file mode 100644 index 4c275da5f4..0000000000 --- a/java_tools/configuration_definition/src/main/java/com/rusefi/ldmp/Request.java +++ /dev/null @@ -1,29 +0,0 @@ -package com.rusefi.ldmp; - -import java.util.List; - -import static com.rusefi.ConfigDefinition.EOL; - -/** - * Andrey Belomutskiy, (c) 2013-2020 - */ -public abstract class Request { - static String GLOBAL_PREFIX = "\t\t\t"; - - static String getGeneratedJavaCode(List r) { - StringBuilder java = new StringBuilder(); - for (Request request : r) - java.append(request.getGeneratedJavaCode()); - return java.toString(); - } - - public abstract String getGeneratedJavaCode(); - - protected String withSimpleParameter(String parameter) { - return GLOBAL_PREFIX + "new " + getClass().getSimpleName() + "(" + parameter + ")," + EOL; - } - - protected String quoteString(String variable) { - return "\"" + variable + "\""; - } -} diff --git a/java_tools/configuration_definition/src/main/java/com/rusefi/ldmp/SensorRequest.java b/java_tools/configuration_definition/src/main/java/com/rusefi/ldmp/SensorRequest.java deleted file mode 100644 index 75129b1d6a..0000000000 --- a/java_tools/configuration_definition/src/main/java/com/rusefi/ldmp/SensorRequest.java +++ /dev/null @@ -1,40 +0,0 @@ -package com.rusefi.ldmp; - -import java.util.Objects; - -public class SensorRequest extends Request { - private final String value; - - public SensorRequest(String value) { - this.value = value; - } - - public String getValue() { - return value; - } - - @Override - public String toString() { - return "SensorRequest{" + - "value='" + value + '\'' + - '}'; - } - - @Override - public boolean equals(Object o) { - if (this == o) return true; - if (o == null || getClass() != o.getClass()) return false; - SensorRequest that = (SensorRequest) o; - return value.equals(that.value); - } - - @Override - public int hashCode() { - return Objects.hash(value); - } - - @Override - public String getGeneratedJavaCode() { - return withSimpleParameter(quoteString(value)); - } -} diff --git a/java_tools/configuration_definition/src/main/java/com/rusefi/ldmp/TextRequest.java b/java_tools/configuration_definition/src/main/java/com/rusefi/ldmp/TextRequest.java deleted file mode 100644 index 9e0661762f..0000000000 --- a/java_tools/configuration_definition/src/main/java/com/rusefi/ldmp/TextRequest.java +++ /dev/null @@ -1,47 +0,0 @@ -package com.rusefi.ldmp; - -import java.util.Objects; - -/** - * Static text label - */ -public class TextRequest extends Request { - private final String value; - - public TextRequest(String value) { - this.value = value; - } - - public String getValue() { - return value; - } - - public boolean isEol() { - return "EOL".equalsIgnoreCase(value); - } - - @Override - public String toString() { - return "TextRequest{" + - "value='" + value + '\'' + - '}'; - } - - @Override - public boolean equals(Object o) { - if (this == o) return true; - if (o == null || getClass() != o.getClass()) return false; - TextRequest that = (TextRequest) o; - return value.equals(that.value); - } - - @Override - public int hashCode() { - return Objects.hash(value); - } - - @Override - public String getGeneratedJavaCode() { - return withSimpleParameter(quoteString(value)); - } -} diff --git a/java_tools/configuration_definition/src/main/java/com/rusefi/ldmp/UsagesReader.java b/java_tools/configuration_definition/src/main/java/com/rusefi/ldmp/UsagesReader.java index 802e55318a..c1c28b89bb 100644 --- a/java_tools/configuration_definition/src/main/java/com/rusefi/ldmp/UsagesReader.java +++ b/java_tools/configuration_definition/src/main/java/com/rusefi/ldmp/UsagesReader.java @@ -24,7 +24,6 @@ public class UsagesReader { List usages = (List) data.get("Usages"); SystemOut.println("Usages: " + usages); for (String fileName : usages) { - LiveDocsMetaParser.handleMetaData(destination, fileName); } } } diff --git a/java_tools/configuration_definition/src/main/java/com/rusefi/ldmp/test/LiveDocsMetaParserTest.java b/java_tools/configuration_definition/src/main/java/com/rusefi/ldmp/test/LiveDocsMetaParserTest.java deleted file mode 100644 index eed638df1c..0000000000 --- a/java_tools/configuration_definition/src/main/java/com/rusefi/ldmp/test/LiveDocsMetaParserTest.java +++ /dev/null @@ -1,122 +0,0 @@ -package com.rusefi.ldmp.test; - -import com.rusefi.ldmp.*; -import org.junit.Test; - -import java.util.List; - -import static org.junit.Assert.assertEquals; - -public class LiveDocsMetaParserTest { - public static MetaInfo parse(String s) { - return LiveDocsMetaParser.parse(s, "unit_test"); - } - - @Test - public void getClassName() { - assertEquals("TpsMeta", LiveDocsMetaParser.getClassName("controllers/sensors/tps.cpp")); - assertEquals("SpeedDensityMeta", LiveDocsMetaParser.getClassName("speed_density.cpp")); - } - - @Test - public void parseConfigElements() { - MetaInfo r = parse("\t\t// TCHARGE_MODE_RPM_TPS\n" + - "\t\tfloat minRpmKcurrentTPS = interpolateMsg(\"minRpm\", tpMin, DISPLAY_CONFIG(tChargeMinRpmMinTps), tpMax,\n" + - "\t\t\t\t/***display*/CONFIG(tChargeMinRpmMaxTps), tps);\n" + - "\t\tfloat maxRpmKcurrentTPS = interpolateMsg(\"maxRpm\", tpMin, DISPLAY_CONFIG(tChargeMaxRpmMinTps), tpMax,\n" + - "\t\t\t\tDISPLAY_CONFIG(tChargeMaxRpmMaxTps), tps);\n" + - "\n" + - "\t\tengine->engineState.Tcharge_coff = interpolateMsg(\"Kcurr\", rpmMin, minRpmKcurrentTPS, rpmMax, maxRpmKcurrentTPS, rpm);\n"); - assertEquals(3, r.first().size()); - assertEquals(new ConfigRequest("tChargeMinRpmMinTps"), r.first().get(0)); - } - - @Test - public void parseField() { - MetaInfo r = parse( - "DISPLAY_STATE(tps)\n" + - "\tDISPLAY_TEXT(Analog_MCU_reads);\n" + - "\tengine->engineState.DISPLAY_FIELD(currentTpsAdc) = adc;\n" + - "\tDISPLAY_TEXT(ADC_which_equals);\n"); - assertEquals(3, r.first().size()); - } - - - @Test - public void parseTextWithSpecialCharacters() { - MetaInfo r = parse( - "DISPLAY_TEXT(\"Analog: !MCU_reads\");" - ); - assertEquals(1, r.first().size()); - TextRequest request = (TextRequest) r.first().get(0); - assertEquals("Analog: !MCU_reads", request.getValue()); - } - - @Test - public void parseTextWithSpecialCharactersAndSpaces() { - MetaInfo r = parse( - "DISPLAY_TEXT(\"Analog: !MCU_reads\");" - ); - assertEquals(1, r.first().size()); - TextRequest request = (TextRequest) r.first().get(0); - assertEquals("Analog: !MCU_reads", request.getValue()); - } - - @Test - public void parseDisplayConfig() { - MetaInfo r = parse("\t\t// DISPLAY_TEXT(interpolate(\")\n" + - "+\t\tDISPLAY_SENSOR(RPM) DISPLAY_TEXT(TCHARGE_MODE_RPM_TPS)\n" + - "\t\tfloat minRpmKcurrentTPS = interpolateMsg(\"minRpm\", tpMin, DISPLAY_CONFIG(tChargeMinRpmMinTps), tpMax,\n"); - assertEquals(4, r.first().size()); - // implementation has eaten the bracket :( - assertEquals(new TextRequest("interpolate"), r.first().get(0)); - assertEquals(new SensorRequest("RPM"), r.first().get(1)); - - String javaCode = LiveDocsMetaParser.generateJavaCode(r, "xx"); - assertEquals("package com.rusefi.ldmp.generated;\n" + - "\n" + - "import com.rusefi.ldmp.*;\n" + - "\n" + - "public class xx {\n" + - "\tpublic static final Request[] CONTENT = new Request[]{\n" + - "\t\t\tnew TextRequest(\"interpolate\"),\n" + - "\t\t\tnew SensorRequest(\"RPM\"),\n" + - "\t\t\tnew TextRequest(\"TCHARGE_MODE_RPM_TPS\"),\n" + - "\t\t\tnew ConfigRequest(\"tChargeMinRpmMinTps\"),\n" + - "\t};\n" + - "}", javaCode); - - } - - @Test - public void testField() { - MetaInfo r = parse( - "DISPLAY_STATE(tps)\n" + - "tm->DISPLAY_FIELD(voltageMCU) = getVoltage(\"term\", config->adcChannel);\n" + - - "DISPLAY_tag(tag) DISPLAY_FIELD(voltageMCU2)"); - assertEquals(1, r.first().size()); - assertEquals(new FieldRequest("tps", "voltageMCU"), r.first().get(0)); - - assertEquals(2, r.map.size()); - } - - @Test - public void parseIf() { - MetaInfo r = parse("\tDisPLAY_IF(cond)\t// DISPLAY_TEXT(\"interpolate(\")\n" + - "+\t\tDISPLAY_SENSOR(RPM)" + - "/* DISPLAY_ElsE */ DISPLAY_TEXT(\"TCHARGE_MODE_RPM_TPS\")\n" + - "\t\tfloat minRpmKcurrentTPS = interpolateMsg(\"minRpm\", tpMin, DISPLAY_CONFIG(tChargeMinRpmMinTps), tpMax,\n" + - "/* DISPLAY_ENDIF */"); - - assertEquals(1, r.first().size()); - IfRequest ifRequest = (IfRequest) r.first().get(0); - List trueBlock = ifRequest.trueBlock; - assertEquals(2, trueBlock.size()); - assertEquals(new SensorRequest("RPM"), trueBlock.get(1)); - - List falseBlock = ifRequest.falseBlock; - assertEquals(2, falseBlock.size()); - assertEquals(new ConfigRequest("tChargeMinRpmMinTps"), falseBlock.get(1)); - } -}