mirror of https://github.com/FOME-Tech/fome-fw.git
refactoring: better dependency control
This commit is contained in:
parent
713d8cbd81
commit
97cac3fd72
|
@ -86,7 +86,8 @@ public class ECUEditorToolBar extends JToolBar {
|
|||
Rom lastSelectedRom = ECUEditorManager.getECUEditor().getLastSelectedRom();
|
||||
byte[] newVersion = ConfigurationImage.extractContent(lastSelectedRom.saveFile());
|
||||
System.out.println("new version size: " + newVersion.length);
|
||||
UploadChanges.scheduleUpload(new ConfigurationImage(newVersion));
|
||||
throw new UnsupportedOperationException("disabled");
|
||||
//UploadChanges.scheduleUpload(new ConfigurationImage(newVersion));
|
||||
}
|
||||
});
|
||||
downloadImage.addActionListener(new ActionListener() {
|
||||
|
|
|
@ -44,9 +44,11 @@ public class ConsoleUI {
|
|||
|
||||
static Frame staticFrame;
|
||||
|
||||
private final TabbedPanel tabbedPane = new TabbedPanel();
|
||||
private final TabbedPanel tabbedPane;
|
||||
|
||||
private final MainFrame mainFrame = new MainFrame(this, tabbedPane);
|
||||
private final MainFrame mainFrame;
|
||||
|
||||
private final UIContext uiContext = new UIContext();
|
||||
|
||||
/**
|
||||
* We can listen to tab activation event if we so desire
|
||||
|
@ -58,7 +60,9 @@ public class ConsoleUI {
|
|||
}
|
||||
|
||||
public ConsoleUI(String port) {
|
||||
tabbedPane = new TabbedPanel(uiContext);
|
||||
this.port = port;
|
||||
mainFrame = new MainFrame(this, tabbedPane);
|
||||
ConsoleUI.staticFrame = mainFrame.getFrame().getFrame();
|
||||
FileLog.MAIN.logLine("Console " + CONSOLE_VERSION);
|
||||
|
||||
|
@ -113,14 +117,14 @@ public class ConsoleUI {
|
|||
tabbedPane.addTab("ECU stimulation", stimulator.getPanel());
|
||||
}
|
||||
// tabbedPane.addTab("live map adjustment", new Live3DReport().getControl());
|
||||
if (!LinkManager.isLogViewer())
|
||||
tabbedPane.addTab("Table Editor", tabbedPane.tableEditor);
|
||||
// if (!LinkManager.isLogViewer())
|
||||
// tabbedPane.addTab("Table Editor", tabbedPane.romEditorPane);
|
||||
// tabbedPane.add("Wizards", new Wizard().createPane());
|
||||
|
||||
if (!LinkManager.isLogViewer())
|
||||
tabbedPane.addTab("Settings", tabbedPane.settingsTab.createPane());
|
||||
if (!LinkManager.isLogViewer()) {
|
||||
tabbedPane.addTab("Formulas/Live Data", new FormulasPane().getContent());
|
||||
tabbedPane.addTab("Formulas/Live Data", new FormulasPane(uiContext).getContent());
|
||||
tabbedPane.addTab("Sensors Live Data", new SensorsLiveDataPane().getContent());
|
||||
}
|
||||
|
||||
|
|
|
@ -6,6 +6,7 @@ import com.rusefi.binaryprotocol.BinaryProtocol;
|
|||
import com.rusefi.binaryprotocol.BinaryProtocolCmd;
|
||||
import com.opensr5.io.ConfigurationImageFile;
|
||||
import com.rusefi.io.LinkManager;
|
||||
import com.rusefi.ui.UIContext;
|
||||
import com.rusefi.ui.util.UiUtils;
|
||||
|
||||
import javax.swing.*;
|
||||
|
@ -13,10 +14,13 @@ import java.awt.*;
|
|||
|
||||
import static com.romraider.editor.ecu.ECUEditorManager.getECUEditor;
|
||||
|
||||
public class TableEditorPane extends JPanel {
|
||||
public class RomEditorPane extends JPanel {
|
||||
|
||||
public TableEditorPane() {
|
||||
private final UIContext uiContext;
|
||||
|
||||
public RomEditorPane(UIContext uiContext) {
|
||||
super(new BorderLayout());
|
||||
this.uiContext = uiContext;
|
||||
UiUtils.showLoadingMessage(this);
|
||||
}
|
||||
|
|
@ -20,12 +20,13 @@ import static com.romraider.editor.ecu.ECUEditorManager.getECUEditor;
|
|||
public class RomRaiderWrapper {
|
||||
public static final String DEFINITION_FILE = "rusefi.xml";
|
||||
|
||||
/*
|
||||
public static void main(String[] args) {
|
||||
startRomRaider();
|
||||
|
||||
ECUExec.openRom(ECUEditorManager.getECUEditor(), "rusefi_configuration.bin");
|
||||
}
|
||||
|
||||
*/
|
||||
public static ECUEditor startRomRaider() {
|
||||
init();
|
||||
|
||||
|
|
|
@ -6,6 +6,7 @@ import com.rusefi.config.generated.Fields;
|
|||
import com.rusefi.io.LinkManager;
|
||||
import com.rusefi.ui.RecentCommands;
|
||||
import com.rusefi.ui.StatusWindow;
|
||||
import com.rusefi.ui.UIContext;
|
||||
|
||||
import javax.swing.*;
|
||||
import java.awt.*;
|
||||
|
@ -76,18 +77,18 @@ public class UploadChanges {
|
|||
*/
|
||||
}
|
||||
|
||||
public static void scheduleUpload(final ConfigurationImage newVersion) {
|
||||
scheduleUpload(newVersion, null);
|
||||
public static void scheduleUpload(UIContext uiContext, final ConfigurationImage newVersion) {
|
||||
scheduleUpload(uiContext, newVersion, null);
|
||||
}
|
||||
|
||||
public static void scheduleUpload(final ConfigurationImage newVersion, final Runnable afterUpload) {
|
||||
public static void scheduleUpload(UIContext uiContext, final ConfigurationImage newVersion, final Runnable afterUpload) {
|
||||
JFrame frame = wnd.getFrame();
|
||||
frame.setVisible(true);
|
||||
LinkManager.execute(new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
try {
|
||||
LinkManager.getCurrentStreamState().uploadChanges(newVersion, logger);
|
||||
uiContext.getLinkManager().getCurrentStreamState().uploadChanges(newVersion, logger);
|
||||
if (afterUpload != null)
|
||||
afterUpload.run();
|
||||
} catch (InterruptedException | EOFException e) {
|
||||
|
|
|
@ -1,52 +0,0 @@
|
|||
package com.rusefi.binaryprotocol;
|
||||
|
||||
import com.opensr5.ConfigurationImage;
|
||||
import com.opensr5.Logger;
|
||||
import com.opensr5.io.ConfigurationImageFile;
|
||||
import com.romraider.editor.ecu.ECUEditor;
|
||||
import com.rusefi.RomRaiderWrapper;
|
||||
import com.rusefi.UploadChanges;
|
||||
import com.rusefi.config.generated.Fields;
|
||||
import com.rusefi.io.serial.SerialIoStreamJSerialComm;
|
||||
|
||||
/**
|
||||
* Andrey Belomutskiy, (c) 2013-2020
|
||||
* 6/21/2017
|
||||
*/
|
||||
public class BinaryProtocolCmdSandbox {
|
||||
|
||||
public static void main(String[] args) throws Exception {
|
||||
if (args.length != 1) {
|
||||
System.out.println("Exactly one parameter expected: port");
|
||||
return;
|
||||
}
|
||||
|
||||
String port = args[0];
|
||||
|
||||
Logger logger = UploadChanges.logger;
|
||||
|
||||
//SerialPort serialPort;
|
||||
// serialPort = new SerialPort(port);
|
||||
// boolean opened = serialPort.openPort();
|
||||
// if (!opened) {
|
||||
// logger.error("failed to open " + port);
|
||||
// }
|
||||
BinaryProtocol bp = new BinaryProtocol(logger, SerialIoStreamJSerialComm.openPort(port));
|
||||
|
||||
//SerialIoStreamJSSC.setupPort(serialPort, 38400);
|
||||
logger.info("Binary looks good!");
|
||||
|
||||
bp.readImage(Fields.TOTAL_CONFIG_SIZE);
|
||||
//
|
||||
// image.saveToFile("rusefi_configuration.bin");
|
||||
//
|
||||
doShowImage(bp.getControllerConfiguration());
|
||||
}
|
||||
|
||||
private static void doShowImage(ConfigurationImage image) throws Exception {
|
||||
if (!BinaryProtocolCmd.checkForDefinitionFile())
|
||||
return;
|
||||
RomRaiderWrapper.startRomRaider();
|
||||
ECUEditor.openImage(ConfigurationImageFile.getFileContent(image));
|
||||
}
|
||||
}
|
|
@ -6,7 +6,6 @@ import com.rusefi.binaryprotocol.BinaryProtocol;
|
|||
import com.rusefi.config.generated.Fields;
|
||||
import com.rusefi.core.Sensor;
|
||||
import com.rusefi.core.SensorCentral;
|
||||
import com.rusefi.io.LinkManager;
|
||||
import com.rusefi.ui.config.ConfigField;
|
||||
import com.rusefi.ui.livedocs.LiveDocPanel;
|
||||
import com.rusefi.ui.util.UiUtils;
|
||||
|
@ -37,11 +36,13 @@ public class FormulasPane {
|
|||
*/
|
||||
private final JPanel content = new JPanel(new BorderLayout());
|
||||
private final JPanel formulaProxy = new JPanel(new BorderLayout());
|
||||
private final UIContext uiContext;
|
||||
private boolean isPaused;
|
||||
|
||||
private JPanel liveDocs = LiveDocPanel.createLiveDocumentationPanel();
|
||||
|
||||
public FormulasPane() {
|
||||
public FormulasPane(UIContext uiContext) {
|
||||
this.uiContext = uiContext;
|
||||
|
||||
JPanel vertical = new JPanel(new VerticalFlowLayout());
|
||||
vertical.add(liveDocs);
|
||||
|
@ -107,7 +108,7 @@ public class FormulasPane {
|
|||
}
|
||||
|
||||
private void updateFormula() {
|
||||
BinaryProtocol bp = LinkManager.getCurrentStreamState();
|
||||
BinaryProtocol bp = uiContext.getLinkManager().getCurrentStreamState();
|
||||
if (bp == null)
|
||||
return;
|
||||
ConfigurationImage ci = bp.getControllerConfiguration();
|
||||
|
|
|
@ -51,10 +51,12 @@ public class FuelTunePane {
|
|||
private final JButton upload = new JButton("Upload");
|
||||
private final JCheckBox collect = new JCheckBox("enable");
|
||||
private final JButton clean = new JButton("clear");
|
||||
private final UIContext uiContext;
|
||||
private byte[] newVeMap;
|
||||
private DataOutputStream dos;
|
||||
|
||||
public FuelTunePane(Node config) {
|
||||
public FuelTunePane(UIContext uiContext, Node config) {
|
||||
this.uiContext = uiContext;
|
||||
final JLabel incomingBufferSize = new JLabel();
|
||||
|
||||
JButton runLogic = new JButton("one iteration");
|
||||
|
@ -136,7 +138,7 @@ public class FuelTunePane {
|
|||
|
||||
private void uploadCurrentResult() {
|
||||
byte[] newVeMap = FuelTunePane.this.newVeMap;
|
||||
BinaryProtocol bp = LinkManager.getCurrentStreamState();
|
||||
BinaryProtocol bp = uiContext.getLinkManager().getCurrentStreamState();
|
||||
if (newVeMap == null || bp == null)
|
||||
return;
|
||||
ConfigurationImage ci = bp.getControllerConfiguration().clone();
|
||||
|
@ -154,7 +156,7 @@ public class FuelTunePane {
|
|||
});
|
||||
}
|
||||
};
|
||||
UploadChanges.scheduleUpload(ci, afterBurn);
|
||||
UploadChanges.scheduleUpload(uiContext, ci, afterBurn);
|
||||
}
|
||||
|
||||
private void doClean() {
|
||||
|
@ -313,7 +315,7 @@ public class FuelTunePane {
|
|||
}
|
||||
|
||||
private byte[] reloadVeTable() {
|
||||
BinaryProtocol bp = LinkManager.getCurrentStreamState();
|
||||
BinaryProtocol bp = uiContext.getLinkManager().getCurrentStreamState();
|
||||
|
||||
byte[] content = bp.getControllerConfiguration().getContent();
|
||||
loadData(veTable.getXAxis(), content, veRpmOffset);
|
||||
|
@ -329,7 +331,7 @@ public class FuelTunePane {
|
|||
}
|
||||
|
||||
private void loadArray(double[] array, int offset) {
|
||||
BinaryProtocol bp = LinkManager.getCurrentStreamState();
|
||||
BinaryProtocol bp = uiContext.getLinkManager().getCurrentStreamState();
|
||||
if (bp == null) {
|
||||
FileLog.MAIN.logLine("bp not ready");
|
||||
return;
|
||||
|
|
|
@ -0,0 +1,11 @@
|
|||
package com.rusefi.ui;
|
||||
|
||||
import com.rusefi.io.LinkManager;
|
||||
|
||||
public class UIContext {
|
||||
private final LinkManager linkManager = new LinkManager();
|
||||
|
||||
public LinkManager getLinkManager() {
|
||||
return linkManager;
|
||||
}
|
||||
}
|
|
@ -75,7 +75,7 @@ public class MainFrame {
|
|||
@Override
|
||||
public void onConnectionEstablished() {
|
||||
FileLog.MAIN.logLine("onConnectionEstablished");
|
||||
tabbedPane.tableEditor.showContent();
|
||||
// tabbedPane.romEditorPane.showContent();
|
||||
tabbedPane.settingsTab.showContent();
|
||||
tabbedPane.logsManager.showContent();
|
||||
tabbedPane.fuelTunePane.showContent();
|
||||
|
|
|
@ -1,12 +1,12 @@
|
|||
package com.rusefi.ui.console;
|
||||
|
||||
import com.rusefi.PaneSettings;
|
||||
import com.rusefi.TableEditorPane;
|
||||
import com.rusefi.config.generated.Fields;
|
||||
import com.rusefi.core.MessagesCentral;
|
||||
import com.rusefi.io.ConnectionStatusLogic;
|
||||
import com.rusefi.ui.FuelTunePane;
|
||||
import com.rusefi.ui.LogDownloader;
|
||||
import com.rusefi.ui.UIContext;
|
||||
|
||||
import javax.swing.*;
|
||||
import java.awt.*;
|
||||
|
@ -18,10 +18,10 @@ public class TabbedPanel {
|
|||
private String criticalError;
|
||||
|
||||
|
||||
public final TableEditorPane tableEditor = new TableEditorPane();
|
||||
public final SettingsTab settingsTab = new SettingsTab();
|
||||
// public final RomEditorPane romEditorPane;
|
||||
public final SettingsTab settingsTab;
|
||||
public final LogDownloader logsManager = new LogDownloader();
|
||||
public final FuelTunePane fuelTunePane = new FuelTunePane(getConfig().getRoot().getChild("fueltune"));
|
||||
public final FuelTunePane fuelTunePane;
|
||||
public final PaneSettings paneSettings = new PaneSettings(getConfig().getRoot().getChild("panes"));
|
||||
|
||||
public final JTabbedPane tabbedPane = new JTabbedPane() {
|
||||
|
@ -55,11 +55,14 @@ public class TabbedPanel {
|
|||
}
|
||||
};
|
||||
|
||||
public TabbedPanel() {
|
||||
public TabbedPanel(UIContext uiContext) {
|
||||
MessagesCentral.getInstance().addListener((clazz, message) -> {
|
||||
if (message.startsWith(Fields.CRITICAL_PREFIX))
|
||||
criticalError = message;
|
||||
});
|
||||
fuelTunePane = new FuelTunePane(uiContext, getConfig().getRoot().getChild("fueltune"));
|
||||
// romEditorPane = new RomEditorPane(uiContext);
|
||||
settingsTab = new SettingsTab();
|
||||
}
|
||||
|
||||
public void addTab(String title, Component component) {
|
||||
|
|
Loading…
Reference in New Issue