refactoring

This commit is contained in:
rusefi 2020-06-07 13:55:24 -04:00
parent 2310368be9
commit b304e3ee3e
22 changed files with 312 additions and 301 deletions

View File

@ -9,6 +9,7 @@ import com.rusefi.io.tcp.TcpConnector;
import org.jetbrains.annotations.NotNull;
import java.util.Arrays;
import java.util.Objects;
import java.util.concurrent.*;
/**
@ -142,11 +143,13 @@ public class LinkManager {
public static boolean isSimulationMode;
public static void startAndConnect(String port, ConnectionStateListener stateListener) {
Objects.requireNonNull(port, "port");
start(port);
connector.connectAndReadConfiguration(stateListener);
}
public static void start(String port) {
Objects.requireNonNull(port, "port");
FileLog.MAIN.logLine("LinkManager: Starting " + port);
if (isLogViewerMode(port)) {
connector = LinkConnector.VOID;
@ -159,6 +162,7 @@ public class LinkManager {
}
public static boolean isLogViewerMode(String port) {
Objects.requireNonNull(port, "port");
return port.equals(LOG_VIEWER);
}

View File

@ -65,7 +65,7 @@ import javax.swing.JTextArea;
import javax.swing.SwingWorker;
import javax.swing.tree.TreePath;
import com.rusefi.Launcher;
import com.rusefi.ConsoleUI;
import org.w3c.dom.Document;
import org.xml.sax.InputSource;
import org.xml.sax.SAXException;
@ -73,7 +73,6 @@ import org.xml.sax.SAXParseException;
import com.romraider.Settings;
import com.romraider.maps.Rom;
import com.romraider.swing.AbstractFrame;
import com.romraider.swing.CustomToolbarLayout;
import com.romraider.swing.ECUEditorMenuBar;
import com.romraider.swing.ECUEditorToolBar;
@ -164,7 +163,7 @@ public class ECUEditor {
// frame.setIconImage(editorIcon.getImage());
// frame.setDefaultCloseOperation(AbstractFrame.EXIT_ON_CLOSE);
Launcher.getFrame().addWindowListener(wListenr);
ConsoleUI.getFrame().addWindowListener(wListenr);
// frame.setTitle(titleText);
// frame.setVisible(true);
// frame.toFront();
@ -257,7 +256,7 @@ public class ECUEditor {
if (answer == 0) {
// BrowserControl.displayURL(ECU_DEFS_URL);
} else {
showMessageDialog(Launcher.getFrame(),
showMessageDialog(ConsoleUI.getFrame(),
"ECU definition files need to be configured before ROM images can be opened.\nMenu: ECU Definitions > ECU Definition Manager...",
"Editor Configuration",
INFORMATION_MESSAGE);
@ -286,7 +285,7 @@ public class ECUEditor {
JScrollPane scroller = new JScrollPane(releaseNotes, VERTICAL_SCROLLBAR_ALWAYS, HORIZONTAL_SCROLLBAR_NEVER);
scroller.setPreferredSize(new Dimension(600, 500));
showMessageDialog(Launcher.getFrame(), scroller,
showMessageDialog(ConsoleUI.getFrame(), scroller,
PRODUCT_NAME + VERSION + " Release Notes", INFORMATION_MESSAGE);
} finally {
br.close();
@ -355,7 +354,7 @@ public class ECUEditor {
});
infoPanel.add(check);
showMessageDialog(Launcher.getFrame(), infoPanel, "ECU Revision is Obsolete", INFORMATION_MESSAGE);
showMessageDialog(ConsoleUI.getFrame(), infoPanel, "ECU Revision is Obsolete", INFORMATION_MESSAGE);
}
}
@ -414,7 +413,7 @@ public class ECUEditor {
}
public void closeImage() {
Launcher.getFrame().setCursor(Cursor.getPredefinedCursor(Cursor.WAIT_CURSOR));
ConsoleUI.getFrame().setCursor(Cursor.getPredefinedCursor(Cursor.WAIT_CURSOR));
closeImageWorker = new CloseImageWorker(getLastSelectedRom());
closeImageWorker.addPropertyChangeListener(getStatusPanel());
closeImageWorker.execute();
@ -507,7 +506,7 @@ public class ECUEditor {
}
public void openImage(File inputFile) throws Exception {
Launcher.getFrame().setCursor(Cursor.getPredefinedCursor(Cursor.WAIT_CURSOR));
ConsoleUI.getFrame().setCursor(Cursor.getPredefinedCursor(Cursor.WAIT_CURSOR));
openImageWorker = new OpenImageWorker(inputFile);
openImageWorker.addPropertyChangeListener(getStatusPanel());
openImageWorker.execute();
@ -526,7 +525,7 @@ public class ECUEditor {
}
public void launchLogger() {
Launcher.getFrame().setCursor(Cursor.getPredefinedCursor(Cursor.WAIT_CURSOR));
ConsoleUI.getFrame().setCursor(Cursor.getPredefinedCursor(Cursor.WAIT_CURSOR));
// launchLoggerWorker = new LaunchLoggerWorker();
// launchLoggerWorker.addPropertyChangeListener(getStatusPanel());
// launchLoggerWorker.execute();
@ -575,7 +574,7 @@ class LaunchLoggerWorker extends SwingWorker<Void, Void> {
ECUEditor editor = ECUEditorManager.getECUEditor();
editor.getStatusPanel().setStatus("Ready...");
setProgress(0);
Launcher.getFrame().setCursor(null);
ConsoleUI.getFrame().setCursor(null);
editor.refreshUI();
}
}
@ -605,7 +604,7 @@ class SetUserLevelWorker extends SwingWorker<Void, Void> {
ECUEditor editor = ECUEditorManager.getECUEditor();
editor.getStatusPanel().setStatus("Ready...");
setProgress(0);
Launcher.getFrame().setCursor(null);
ConsoleUI.getFrame().setCursor(null);
editor.refreshUI();
}
}
@ -643,7 +642,7 @@ class CloseImageWorker extends SwingWorker<Void, Void> {
ECUEditor editor = ECUEditorManager.getECUEditor();
editor.getStatusPanel().setStatus("Ready...");
setProgress(0);
Launcher.getFrame().setCursor(null);
ConsoleUI.getFrame().setCursor(null);
editor.refreshUI();
System.gc();
}
@ -686,23 +685,23 @@ class OpenImageWorker extends SwingWorker<Void, Void> {
}
// if code executes to this point, no ROM was found, report to user
showMessageDialog(Launcher.getFrame(), "ECU Definition Not Found", "Error Loading " + inputFile.getName(), ERROR_MESSAGE);
showMessageDialog(ConsoleUI.getFrame(), "ECU Definition Not Found", "Error Loading " + inputFile.getName(), ERROR_MESSAGE);
} catch (SAXParseException spe) {
// catch general parsing exception - enough people don't unzip the defs that a better error message is in order
showMessageDialog(Launcher.getFrame(), "Unable to read XML definitions. Please make sure the definition file is correct. If it is in a ZIP archive, unzip the file and try again.", "Error Loading " + inputFile.getName(), ERROR_MESSAGE);
showMessageDialog(ConsoleUI.getFrame(), "Unable to read XML definitions. Please make sure the definition file is correct. If it is in a ZIP archive, unzip the file and try again.", "Error Loading " + inputFile.getName(), ERROR_MESSAGE);
} catch (StackOverflowError ex) {
// handles looped inheritance, which will use up all available memory
showMessageDialog(Launcher.getFrame(), "Looped \"base\" attribute in XML definitions.", "Error Loading " + inputFile.getName(), ERROR_MESSAGE);
showMessageDialog(ConsoleUI.getFrame(), "Looped \"base\" attribute in XML definitions.", "Error Loading " + inputFile.getName(), ERROR_MESSAGE);
} catch (OutOfMemoryError ome) {
// handles Java heap space issues when loading multiple Roms.
showMessageDialog(Launcher.getFrame(), "Error loading Image. Out of memeory.", "Error Loading " + inputFile.getName(), ERROR_MESSAGE);
showMessageDialog(ConsoleUI.getFrame(), "Error loading Image. Out of memeory.", "Error Loading " + inputFile.getName(), ERROR_MESSAGE);
} catch (Exception ex) {
ex.printStackTrace();
showMessageDialog(Launcher.getFrame(), "Error Loading. Unknown Exception.", "Error Loading " + inputFile.getName(), ERROR_MESSAGE);
showMessageDialog(ConsoleUI.getFrame(), "Error Loading. Unknown Exception.", "Error Loading " + inputFile.getName(), ERROR_MESSAGE);
}
return null;
}
@ -720,7 +719,7 @@ class OpenImageWorker extends SwingWorker<Void, Void> {
ECUEditor editor = ECUEditorManager.getECUEditor();
editor.getStatusPanel().setStatus("Ready...");
setProgress(0);
Launcher.getFrame().setCursor(null);
ConsoleUI.getFrame().setCursor(null);
editor.refreshUI();
System.gc();
}

View File

@ -1,6 +1,6 @@
package com.romraider.maps;
import com.rusefi.Launcher;
import com.rusefi.ConsoleUI;
import javax.swing.*;
import java.awt.*;
@ -27,7 +27,7 @@ class CopySelection2DWorker extends SwingWorker<Void, Void> {
ancestorWindow.setCursor(null);
}
table.setCursor(null);
Launcher.getFrame().setCursor(null);
ConsoleUI.getFrame().setCursor(null);
}
}

View File

@ -1,6 +1,6 @@
package com.romraider.maps;
import com.rusefi.Launcher;
import com.rusefi.ConsoleUI;
import javax.swing.*;
import java.awt.*;
@ -60,7 +60,7 @@ class CopySelectionWorker extends SwingWorker<Void, Void> {
ancestorWindow.setCursor(null);
}
table.setCursor(null);
Launcher.getFrame().setCursor(null);
ConsoleUI.getFrame().setCursor(null);
}
}

View File

@ -1,6 +1,6 @@
package com.romraider.maps;
import com.rusefi.Launcher;
import com.rusefi.ConsoleUI;
import javax.swing.*;
import java.awt.*;
@ -33,6 +33,6 @@ class CopyTable2DWorker extends SwingWorker<Void, Void> {
ancestorWindow.setCursor(null);
}
table.setCursor(null);
Launcher.getFrame().setCursor(null);
ConsoleUI.getFrame().setCursor(null);
}
}

View File

@ -1,6 +1,6 @@
package com.romraider.maps;
import com.rusefi.Launcher;
import com.rusefi.ConsoleUI;
import javax.swing.*;
import java.awt.*;
@ -29,6 +29,6 @@ class CopyTableWorker extends SwingWorker<Void, Void> {
ancestorWindow.setCursor(null);
}
table.setCursor(null);
Launcher.getFrame().setCursor(null);
ConsoleUI.getFrame().setCursor(null);
}
}

View File

@ -24,8 +24,7 @@ import com.romraider.editor.ecu.ECUEditorManager;
import com.romraider.swing.TableToolBar;
import com.romraider.util.JEPUtil;
import com.romraider.util.SettingsManager;
import com.romraider.xml.RomAttributeParser;
import com.rusefi.Launcher;
import com.rusefi.ConsoleUI;
import javax.naming.NameNotFoundException;
import javax.swing.*;
@ -35,7 +34,6 @@ import java.awt.datatransfer.UnsupportedFlavorException;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
import java.io.IOException;
import java.io.Serializable;
import java.util.StringTokenizer;
@ -877,7 +875,7 @@ public abstract class Table extends JPanel implements Serializable {
ancestorWindow.setCursor(Cursor.getPredefinedCursor(Cursor.WAIT_CURSOR));
}
Launcher.getFrame().setCursor(Cursor.getPredefinedCursor(Cursor.WAIT_CURSOR));
ConsoleUI.getFrame().setCursor(Cursor.getPredefinedCursor(Cursor.WAIT_CURSOR));
setCursor(Cursor.getPredefinedCursor(Cursor.WAIT_CURSOR));
copySelectionWorker = new CopySelectionWorker(this);
copySelectionWorker.execute();
@ -899,7 +897,7 @@ public abstract class Table extends JPanel implements Serializable {
if(null != ancestorWindow) {
ancestorWindow.setCursor(Cursor.getPredefinedCursor(Cursor.WAIT_CURSOR));
}
Launcher.getFrame().setCursor(Cursor.getPredefinedCursor(Cursor.WAIT_CURSOR));
ConsoleUI.getFrame().setCursor(Cursor.getPredefinedCursor(Cursor.WAIT_CURSOR));
setCursor(Cursor.getPredefinedCursor(Cursor.WAIT_CURSOR));
copyTableWorker = new CopyTableWorker(this);
copyTableWorker.execute();

View File

@ -21,7 +21,7 @@ package com.romraider.maps;
import com.romraider.Settings;
import com.romraider.util.SettingsManager;
import com.rusefi.Launcher;
import com.rusefi.ConsoleUI;
import javax.naming.NameNotFoundException;
import javax.swing.*;
@ -241,7 +241,7 @@ public class Table2D extends TableWithData {
if(null != ancestorWindow) {
ancestorWindow.setCursor(Cursor.getPredefinedCursor(Cursor.WAIT_CURSOR));
}
Launcher.getFrame().setCursor(Cursor.getPredefinedCursor(Cursor.WAIT_CURSOR));
ConsoleUI.getFrame().setCursor(Cursor.getPredefinedCursor(Cursor.WAIT_CURSOR));
setCursor(Cursor.getPredefinedCursor(Cursor.WAIT_CURSOR));
super.copySelection();
copySelection2DWorker = new CopySelection2DWorker(this);
@ -254,7 +254,7 @@ public class Table2D extends TableWithData {
if(null != ancestorWindow) {
ancestorWindow.setCursor(Cursor.getPredefinedCursor(Cursor.WAIT_CURSOR));
}
Launcher.getFrame().setCursor(Cursor.getPredefinedCursor(Cursor.WAIT_CURSOR));
ConsoleUI.getFrame().setCursor(Cursor.getPredefinedCursor(Cursor.WAIT_CURSOR));
setCursor(Cursor.getPredefinedCursor(Cursor.WAIT_CURSOR));
CopyTable2DWorker copyTable2DWorker = new CopyTable2DWorker(this);
copyTable2DWorker.execute();

View File

@ -47,7 +47,7 @@ import com.romraider.editor.ecu.ECUEditorManager;
import com.romraider.logger.ecu.ui.swing.vertical.VerticalLabelUI;
import com.romraider.util.SettingsManager;
import com.romraider.xml.RomAttributeParser;
import com.rusefi.Launcher;
import com.rusefi.ConsoleUI;
public class Table3D extends Table {
@ -676,7 +676,7 @@ public class Table3D extends Table {
if(null != ancestorWindow) {
ancestorWindow.setCursor(Cursor.getPredefinedCursor(Cursor.WAIT_CURSOR));
}
Launcher.getFrame().setCursor(Cursor.getPredefinedCursor(Cursor.WAIT_CURSOR));
ConsoleUI.getFrame().setCursor(Cursor.getPredefinedCursor(Cursor.WAIT_CURSOR));
setCursor(Cursor.getPredefinedCursor(Cursor.WAIT_CURSOR));
copySelection3DWorker = new CopySelection3DWorker(this);
copySelection3DWorker.execute();
@ -688,7 +688,7 @@ public class Table3D extends Table {
if(null != ancestorWindow) {
ancestorWindow.setCursor(Cursor.getPredefinedCursor(Cursor.WAIT_CURSOR));
}
Launcher.getFrame().setCursor(Cursor.getPredefinedCursor(Cursor.WAIT_CURSOR));
ConsoleUI.getFrame().setCursor(Cursor.getPredefinedCursor(Cursor.WAIT_CURSOR));
setCursor(Cursor.getPredefinedCursor(Cursor.WAIT_CURSOR));
copyTable3DWorker = new CopyTable3DWorker(this);
copyTable3DWorker.execute();
@ -1108,7 +1108,7 @@ class CopySelection3DWorker extends SwingWorker<Void, Void> {
ancestorWindow.setCursor(null);
}
table.setCursor(null);
Launcher.getFrame().setCursor(null);
ConsoleUI.getFrame().setCursor(null);
}
}
@ -1136,6 +1136,6 @@ class CopyTable3DWorker extends SwingWorker<Void, Void> {
ancestorWindow.setCursor(null);
}
table.setCursor(null);
Launcher.getFrame().setCursor(null);
ConsoleUI.getFrame().setCursor(null);
}
}

View File

@ -28,9 +28,8 @@ import java.util.Vector;
import javax.swing.JFileChooser;
import javax.swing.ListSelectionModel;
import com.romraider.editor.ecu.ECUEditorManager;
import com.romraider.util.SettingsManager;
import com.rusefi.Launcher;
import com.rusefi.ConsoleUI;
public class DefinitionManager extends javax.swing.JFrame implements ActionListener {
@ -41,7 +40,7 @@ public class DefinitionManager extends javax.swing.JFrame implements ActionListe
Vector<String> fileNames;
public DefinitionManager() {
this.setIconImage(Launcher.getFrame().getIconImage());
this.setIconImage(ConsoleUI.getFrame().getIconImage());
initComponents();
initSettings();

View File

@ -25,7 +25,7 @@ import com.romraider.editor.ecu.ECUEditorManager;
import com.romraider.maps.Rom;
import com.romraider.maps.Table;
import com.romraider.util.SettingsManager;
import com.rusefi.Launcher;
import com.rusefi.ConsoleUI;
import javax.swing.*;
import java.awt.event.ActionEvent;
@ -340,17 +340,17 @@ public class ECUEditorMenuBar extends JMenuBar implements ActionListener {
//} else
if (e.getSource() == romProperties) {
showMessageDialog(Launcher.getFrame(), new RomPropertyPanel(parent.getLastSelectedRom()),
showMessageDialog(ConsoleUI.getFrame(), new RomPropertyPanel(parent.getLastSelectedRom()),
parent.getLastSelectedRom().getRomIDString() + " Properties", INFORMATION_MESSAGE);
} else if (e.getSource() == settings) {
SettingsForm form = new SettingsForm();
form.setLocationRelativeTo(Launcher.getFrame());
form.setLocationRelativeTo(ConsoleUI.getFrame());
form.setVisible(true);
} else if (e.getSource() == compareImages){
CompareImagesForm form = new CompareImagesForm(parent.getImages(), Launcher.getFrame().getIconImage());
form.setLocationRelativeTo(Launcher.getFrame());
CompareImagesForm form = new CompareImagesForm(parent.getImages(), ConsoleUI.getFrame().getIconImage());
form.setLocationRelativeTo(ConsoleUI.getFrame());
form.setVisible(true);
} else if (e.getSource() == level1) {
@ -383,7 +383,7 @@ public class ECUEditorMenuBar extends JMenuBar implements ActionListener {
+ "Build #: " + BUILDNUMBER + "\n"
+ SUPPORT_URL;
String title = "About " + PRODUCT_NAME;
showMessageDialog(Launcher.getFrame(), message, title, INFORMATION_MESSAGE, ABOUT_ICON);
showMessageDialog(ConsoleUI.getFrame(), message, title, INFORMATION_MESSAGE, ABOUT_ICON);
}
}
@ -402,10 +402,10 @@ public class ECUEditorMenuBar extends JMenuBar implements ActionListener {
ECUEditor parent = ECUEditorManager.getECUEditor();
JFileChooser fc = new JFileChooser(SettingsManager.getSettings().getLastImageDir());
fc.setFileFilter(new ECUImageFilter());
if (fc.showSaveDialog(Launcher.getFrame()) == JFileChooser.APPROVE_OPTION) {
if (fc.showSaveDialog(ConsoleUI.getFrame()) == JFileChooser.APPROVE_OPTION) {
File selectedFile = fc.getSelectedFile();
if (selectedFile.exists()) {
int option = showConfirmDialog(Launcher.getFrame(), selectedFile.getName() + " already exists! Overwrite?");
int option = showConfirmDialog(ConsoleUI.getFrame(), selectedFile.getName() + " already exists! Overwrite?");
// option: 0 = Cancel, 1 = No
if (option == CANCEL_OPTION || option == 1) {
@ -439,10 +439,10 @@ public class ECUEditorMenuBar extends JMenuBar implements ActionListener {
// disable the "All files" option
fc.setAcceptAllFileFilterUsed(false);
if (fc.showSaveDialog(Launcher.getFrame()) == JFileChooser.APPROVE_OPTION) {
if (fc.showSaveDialog(ConsoleUI.getFrame()) == JFileChooser.APPROVE_OPTION) {
File selectedDir = fc.getSelectedFile();
if (selectedDir.exists()) {
int option = showConfirmDialog(Launcher.getFrame(), selectedDir.getName() + " already exists! Overwrite?");
int option = showConfirmDialog(ConsoleUI.getFrame(), selectedDir.getName() + " already exists! Overwrite?");
// option: 0 = Cancel, 1 = No
if (option == CANCEL_OPTION || option == 1) {
@ -499,7 +499,7 @@ public class ECUEditorMenuBar extends JMenuBar implements ActionListener {
if(null != selectedFile){
if(lastSelectedRom.getRealFileSize() != Settings.SIXTEENBIT_SMALL_SIZE)
{
showMessageDialog(Launcher.getFrame(), "Error converting image. Image size is invalid.");
showMessageDialog(ConsoleUI.getFrame(), "Error converting image. Image size is invalid.");
} else {
byte[] output = lastSelectedRom.saveFile();
byte[] incOutput = new byte[Settings.SIXTEENBIT_LARGE_SIZE];
@ -522,7 +522,7 @@ public class ECUEditorMenuBar extends JMenuBar implements ActionListener {
if(null != selectedFile){
if(lastSelectedRom.getRealFileSize() != Settings.SIXTEENBIT_LARGE_SIZE)
{
showMessageDialog(Launcher.getFrame(), "Error converting image. Image size is invalid.");
showMessageDialog(ConsoleUI.getFrame(), "Error converting image. Image size is invalid.");
} else {
byte[] output =lastSelectedRom.saveFile();
byte[] decOutput = new byte[Settings.SIXTEENBIT_SMALL_SIZE];

View File

@ -20,13 +20,11 @@
package com.romraider.swing;
import static com.romraider.Version.PRODUCT_NAME;
import static java.io.File.separator;
import java.awt.Color;
import java.awt.Dimension;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import java.io.File;
import java.util.StringTokenizer;
import javax.swing.ButtonGroup;
@ -53,14 +51,14 @@ import com.romraider.editor.ecu.ECUEditor;
import com.romraider.editor.ecu.ECUEditorManager;
//import com.romraider.util.FileAssociator;
import com.romraider.util.SettingsManager;
import com.rusefi.Launcher;
import com.rusefi.ConsoleUI;
public class SettingsForm extends JFrame implements MouseListener {
private static final long serialVersionUID = 3910602424260147767L;
public SettingsForm() {
this.setIconImage(Launcher.getFrame().getIconImage());
this.setIconImage(ConsoleUI.getFrame().getIconImage());
initComponents();
initSettings();

View File

@ -32,8 +32,8 @@ import javax.management.modelmbean.XMLParseException;
import javax.naming.NameNotFoundException;
import javax.swing.JOptionPane;
import com.rusefi.ConsoleUI;
import com.rusefi.FileLog;
import com.rusefi.Launcher;
import org.apache.log4j.Logger;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;
@ -375,7 +375,7 @@ public final class DOMRomUnmarshaller {
} catch (InvalidTableNameException ex) { // Table name is invalid, do nothing.
} catch (NullPointerException ex) {
JOptionPane.showMessageDialog(Launcher.getFrame(),
JOptionPane.showMessageDialog(ConsoleUI.getFrame(),
new DebugPanel(ex, SettingsManager.getSettings().getSupportURL()), "Exception",
JOptionPane.ERROR_MESSAGE);
@ -577,7 +577,7 @@ public final class DOMRomUnmarshaller {
} catch (Exception ex) {
JOptionPane.showMessageDialog(
Launcher.getFrame(),
ConsoleUI.getFrame(),
new DebugPanel(ex, SettingsManager.getSettings()
.getSupportURL()), "Exception",
JOptionPane.ERROR_MESSAGE);

View File

@ -0,0 +1,233 @@
package com.rusefi;
import com.rusefi.autodetect.PortDetector;
import com.rusefi.config.generated.Fields;
import com.rusefi.core.MessagesCentral;
import com.rusefi.core.Sensor;
import com.rusefi.core.SensorCentral;
import com.rusefi.io.ConnectionWatchdog;
import com.rusefi.io.LinkManager;
import com.rusefi.io.serial.BaudRateHolder;
import com.rusefi.maintenance.FirmwareFlasher;
import com.rusefi.maintenance.VersionChecker;
import com.rusefi.ui.*;
import com.rusefi.ui.console.MainFrame;
import com.rusefi.ui.console.TabbedPanel;
import com.rusefi.ui.engine.EngineSnifferPanel;
import com.rusefi.ui.logview.LogViewer;
import com.rusefi.ui.util.DefaultExceptionHandler;
import com.rusefi.ui.util.JustOneInstance;
import javax.swing.*;
import javax.swing.event.ChangeEvent;
import javax.swing.event.ChangeListener;
import java.awt.*;
import java.awt.event.ActionListener;
import java.lang.reflect.InvocationTargetException;
import java.util.HashMap;
import java.util.Map;
import static com.rusefi.rusEFIVersion.CONSOLE_VERSION;
import static com.rusefi.ui.storage.PersistentConfiguration.getConfig;
public class ConsoleUI {
private static final int DEFAULT_TAB_INDEX = 0;
public String port;
private static SensorCentral.SensorListener wrongVersionListener;
public static final String TAB_INDEX = "main_tab";
protected static final String PORT_KEY = "port";
protected static final String SPEED_KEY = "speed";
public static EngineSnifferPanel engineSnifferPanel;
static Frame staticFrame;
private final TabbedPanel tabbedPane = new TabbedPanel();
private final MainFrame mainFrame = new MainFrame(this, tabbedPane);
/**
* We can listen to tab activation event if we so desire
*/
private final Map<JComponent, ActionListener> tabSelectedListeners = new HashMap<>();
public static Frame getFrame() {
return staticFrame;
}
public ConsoleUI(String port) {
this.port = port;
ConsoleUI.staticFrame = mainFrame.getFrame().getFrame();
FileLog.MAIN.logLine("Console " + CONSOLE_VERSION);
FileLog.MAIN.logLine("Hardware: " + FirmwareFlasher.getHardwareKind());
getConfig().getRoot().setProperty(PORT_KEY, port);
getConfig().getRoot().setProperty(SPEED_KEY, BaudRateHolder.INSTANCE.baudRate);
LinkManager.start(port);
engineSnifferPanel = new EngineSnifferPanel(getConfig().getRoot().getChild("digital_sniffer"));
if (!LinkManager.isLogViewerMode(port))
engineSnifferPanel.setOutpinListener(LinkManager.engineState);
if (LinkManager.isLogViewerMode(port))
tabbedPane.addTab("Log Viewer", new LogViewer(engineSnifferPanel));
new ConnectionWatchdog(Timeouts.CONNECTION_RESTART_DELAY, () -> {
FileLog.MAIN.logLine("ConnectionWatchdog.reconnectTimer restarting");
LinkManager.restart();
}).start();
GaugesPanel.DetachedRepository.INSTANCE.init(getConfig().getRoot().getChild("detached"));
GaugesPanel.DetachedRepository.INSTANCE.load();
if (!LinkManager.isLogViewer())
tabbedPane.addTab("Gauges", new GaugesPanel(getConfig().getRoot().getChild("gauges"), tabbedPane.paneSettings).getContent());
if (!LinkManager.isLogViewer()) {
MessagesPane messagesPane = new MessagesPane(getConfig().getRoot().getChild("messages"));
tabbedPaneAdd("Messages", messagesPane.getContent(), messagesPane.getTabSelectedListener());
}
if (!LinkManager.isLogViewer()) {
tabbedPane.addTab("Bench Test", new BenchTestPane().getContent());
if (tabbedPane.paneSettings.showEtbPane)
tabbedPane.addTab("ETB", new ETBPane().getContent());
tabbedPane.addTab("Presets", new PresetsPane().getContent());
}
tabbedPaneAdd("Engine Sniffer", engineSnifferPanel.getPanel(), engineSnifferPanel.getTabSelectedListener());
if (!LinkManager.isLogViewer()) {
SensorSnifferPane sensorSniffer = new SensorSnifferPane(getConfig().getRoot().getChild("sensor_sniffer"));
tabbedPaneAdd("Sensor Sniffer", sensorSniffer.getPanel(), sensorSniffer.getTabSelectedListener());
}
// tabbedPane.addTab("LE controls", new FlexibleControls().getPanel());
// tabbedPane.addTab("ADC", new AdcPanel(new BooleanInputsModel()).createAdcPanel());
if (tabbedPane.paneSettings.showStimulatorPane && !LinkManager.isSimulationMode && !LinkManager.isLogViewerMode(port)) {
// todo: rethink this UI? special command line key to enable it?
EcuStimulator stimulator = EcuStimulator.getInstance();
tabbedPane.addTab("ECU stimulation", stimulator.getPanel());
}
// tabbedPane.addTab("live map adjustment", new Live3DReport().getControl());
if (!LinkManager.isLogViewer())
tabbedPane.addTab("Table Editor", tabbedPane.tableEditor);
// 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("Sensors Live Data", new SensorsLiveDataPane().getContent());
}
if (!LinkManager.isLogViewer() && false) // todo: fix it & better name?
tabbedPane.addTab("Logs Manager", tabbedPane.logsManager.getContent());
if (tabbedPane.paneSettings.showFuelTunePane)
tabbedPane.addTab("Fuel Tune", tabbedPane.fuelTunePane.getContent());
if (!LinkManager.isLogViewer()) {
if (tabbedPane.paneSettings.showTriggerShapePane)
tabbedPane.addTab("Trigger Shape", new AverageAnglePanel().getPanel());
}
tabbedPane.addTab("rusEFI Online", new OnlineTab().getContent());
if (!LinkManager.isLogViewerMode(port)) {
int selectedIndex = getConfig().getRoot().getIntProperty(TAB_INDEX, DEFAULT_TAB_INDEX);
if (selectedIndex < tabbedPane.tabbedPane.getTabCount())
tabbedPane.tabbedPane.setSelectedIndex(selectedIndex);
}
tabbedPane.tabbedPane.addChangeListener(new ChangeListener() {
@Override
public void stateChanged(ChangeEvent e) {
if (e.getSource() instanceof JTabbedPane) {
JTabbedPane pane = (JTabbedPane) e.getSource();
int selectedIndex = pane.getSelectedIndex();
System.out.println("Selected paneNo: " + selectedIndex);
ActionListener actionListener = tabSelectedListeners.get(pane.getComponentAt(selectedIndex));
if (actionListener != null)
actionListener.actionPerformed(null);
}
}
});
StartupFrame.setAppIcon(mainFrame.getFrame().getFrame());
mainFrame.getFrame().showFrame(tabbedPane.tabbedPane);
}
static void startUi(String[] args) throws InterruptedException, InvocationTargetException {
FileLog.MAIN.start();
getConfig().load();
FileLog.suspendLogging = getConfig().getRoot().getBoolProperty(GaugesPanel.DISABLE_LOGS);
Thread.setDefaultUncaughtExceptionHandler(new DefaultExceptionHandler());
VersionChecker.start();
SwingUtilities.invokeAndWait(() -> awtCode(args));
}
/**
* Adds a tab with activation listener
*/
private void tabbedPaneAdd(String title, JComponent component, ActionListener tabSelectedListener) {
tabSelectedListeners.put(component, tabSelectedListener);
tabbedPane.addTab(title, component);
}
private static void awtCode(String[] args) {
if (JustOneInstance.isAlreadyRunning()) {
int result = JOptionPane.showConfirmDialog(null, "Looks like another instance is already running. Do you really want to start another instance?",
"rusEfi", JOptionPane.YES_NO_OPTION);
if (result == JOptionPane.NO_OPTION)
System.exit(-1);
}
wrongVersionListener = new SensorCentral.SensorListener() {
@Override
public void onSensorUpdate(double value) {
// todo: we need to migrate to TS_SIGNATURE validation!!!
if (value != Fields.TS_FILE_VERSION) {
String message = "This copy of rusEfi console is not compatible with this version of firmware\r\n" +
"Console compatible with " + Fields.TS_FILE_VERSION + " while firmware compatible with " +
(int) value;
JOptionPane.showMessageDialog(getFrame(), message);
assert wrongVersionListener != null;
SensorCentral.getInstance().removeListener(Sensor.TS_CONFIG_VERSION, wrongVersionListener);
}
}
};
SensorCentral.getInstance().addListener(Sensor.TS_CONFIG_VERSION, wrongVersionListener);
JustOneInstance.onStart();
try {
boolean isPortDefined = args.length > 0;
boolean isBaudRateDefined = args.length > 1;
if (isBaudRateDefined)
BaudRateHolder.INSTANCE.baudRate = Integer.parseInt(args[1]);
String port = null;
if (isPortDefined)
port = args[0];
if (isPortDefined) {
port = PortDetector.autoDetectSerialIfNeeded(port);
if (port == null) {
isPortDefined = false;
}
}
if (isPortDefined) {
new ConsoleUI(port);
} else {
for (String p : LinkManager.getCommPorts())
MessagesCentral.getInstance().postMessage(Launcher.class, "Available port: " + p);
new StartupFrame().chooseSerialPort();
}
} catch (Throwable e) {
throw new IllegalStateException(e);
}
}
}

View File

@ -1,35 +1,10 @@
package com.rusefi;
import com.rusefi.autodetect.PortDetector;
import com.rusefi.config.generated.Fields;
import com.rusefi.core.MessagesCentral;
import com.rusefi.core.Sensor;
import com.rusefi.core.SensorCentral;
import com.rusefi.io.ConnectionWatchdog;
import com.rusefi.io.LinkManager;
import com.rusefi.io.serial.BaudRateHolder;
import com.rusefi.maintenance.FirmwareFlasher;
import com.rusefi.maintenance.VersionChecker;
import com.rusefi.tools.ConsoleTools;
import com.rusefi.ui.*;
import com.rusefi.ui.console.MainFrame;
import com.rusefi.ui.console.TabbedPanel;
import com.rusefi.ui.engine.EngineSnifferPanel;
import com.rusefi.ui.logview.LogViewer;
import com.rusefi.ui.storage.PersistentConfiguration;
import com.rusefi.ui.util.DefaultExceptionHandler;
import com.rusefi.ui.util.JustOneInstance;
import javax.swing.*;
import javax.swing.event.ChangeEvent;
import javax.swing.event.ChangeListener;
import java.awt.*;
import java.awt.event.ActionListener;
import java.util.Date;
import java.util.HashMap;
import java.util.Map;
import static com.rusefi.ui.storage.PersistentConfiguration.getConfig;
/**
* this is the main entry point of rusEfi ECU console
@ -44,139 +19,6 @@ import static com.rusefi.ui.storage.PersistentConfiguration.getConfig;
public class Launcher extends rusEFIVersion {
public static final String INPUT_FILES_PATH = System.getProperty("input_files_path", "..");
public static final String TOOLS_PATH = System.getProperty("tools_path", ".");
public static final String TAB_INDEX = "main_tab";
protected static final String PORT_KEY = "port";
protected static final String SPEED_KEY = "speed";
private static final int DEFAULT_TAB_INDEX = 0;
public static String port;
public static EngineSnifferPanel engineSnifferPanel;
private static SensorCentral.SensorListener wrongVersionListener;
public TabbedPanel tabbedPane = new TabbedPanel();
private static Frame staticFrame;
private MainFrame mainFrame = new MainFrame(tabbedPane);
/**
* We can listen to tab activation event if we so desire
*/
private final Map<JComponent, ActionListener> tabSelectedListeners = new HashMap<>();
public Launcher(String port) {
Launcher.port = port;
staticFrame = mainFrame.getFrame().getFrame();
FileLog.MAIN.logLine("Console " + CONSOLE_VERSION);
FileLog.MAIN.logLine("Hardware: " + FirmwareFlasher.getHardwareKind());
getConfig().getRoot().setProperty(PORT_KEY, port);
getConfig().getRoot().setProperty(SPEED_KEY, BaudRateHolder.INSTANCE.baudRate);
LinkManager.start(port);
engineSnifferPanel = new EngineSnifferPanel(getConfig().getRoot().getChild("digital_sniffer"));
if (!LinkManager.isLogViewerMode(port))
engineSnifferPanel.setOutpinListener(LinkManager.engineState);
if (LinkManager.isLogViewerMode(port))
tabbedPane.addTab("Log Viewer", new LogViewer(engineSnifferPanel));
new ConnectionWatchdog(Timeouts.CONNECTION_RESTART_DELAY, () -> {
FileLog.MAIN.logLine("ConnectionWatchdog.reconnectTimer restarting");
LinkManager.restart();
}).start();
GaugesPanel.DetachedRepository.INSTANCE.init(getConfig().getRoot().getChild("detached"));
GaugesPanel.DetachedRepository.INSTANCE.load();
if (!LinkManager.isLogViewer())
tabbedPane.addTab("Gauges", new GaugesPanel(getConfig().getRoot().getChild("gauges"), tabbedPane.paneSettings).getContent());
if (!LinkManager.isLogViewer()) {
MessagesPane messagesPane = new MessagesPane(getConfig().getRoot().getChild("messages"));
tabbedPaneAdd("Messages", messagesPane.getContent(), messagesPane.getTabSelectedListener());
}
if (!LinkManager.isLogViewer()) {
tabbedPane.addTab("Bench Test", new BenchTestPane().getContent());
if (tabbedPane.paneSettings.showEtbPane)
tabbedPane.addTab("ETB", new ETBPane().getContent());
tabbedPane.addTab("Presets", new PresetsPane().getContent());
}
tabbedPaneAdd("Engine Sniffer", engineSnifferPanel.getPanel(), engineSnifferPanel.getTabSelectedListener());
if (!LinkManager.isLogViewer()) {
SensorSnifferPane sensorSniffer = new SensorSnifferPane(getConfig().getRoot().getChild("sensor_sniffer"));
tabbedPaneAdd("Sensor Sniffer", sensorSniffer.getPanel(), sensorSniffer.getTabSelectedListener());
}
// tabbedPane.addTab("LE controls", new FlexibleControls().getPanel());
// tabbedPane.addTab("ADC", new AdcPanel(new BooleanInputsModel()).createAdcPanel());
if (tabbedPane.paneSettings.showStimulatorPane && !LinkManager.isSimulationMode && !LinkManager.isLogViewerMode(port)) {
// todo: rethink this UI? special command line key to enable it?
EcuStimulator stimulator = EcuStimulator.getInstance();
tabbedPane.addTab("ECU stimulation", stimulator.getPanel());
}
// tabbedPane.addTab("live map adjustment", new Live3DReport().getControl());
if (!LinkManager.isLogViewer())
tabbedPane.addTab("Table Editor", tabbedPane.tableEditor);
// 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("Sensors Live Data", new SensorsLiveDataPane().getContent());
}
if (!LinkManager.isLogViewer() && false) // todo: fix it & better name?
tabbedPane.addTab("Logs Manager", tabbedPane.logsManager.getContent());
if (tabbedPane.paneSettings.showFuelTunePane)
tabbedPane.addTab("Fuel Tune", tabbedPane.fuelTunePane.getContent());
if (!LinkManager.isLogViewer()) {
if (tabbedPane.paneSettings.showTriggerShapePane)
tabbedPane.addTab("Trigger Shape", new AverageAnglePanel().getPanel());
}
tabbedPane.addTab("rusEFI Online", new OnlineTab().getContent());
if (!LinkManager.isLogViewerMode(port)) {
int selectedIndex = getConfig().getRoot().getIntProperty(TAB_INDEX, DEFAULT_TAB_INDEX);
if (selectedIndex < tabbedPane.tabbedPane.getTabCount())
tabbedPane.tabbedPane.setSelectedIndex(selectedIndex);
}
tabbedPane.tabbedPane.addChangeListener(new ChangeListener() {
@Override
public void stateChanged(ChangeEvent e) {
if (e.getSource() instanceof JTabbedPane) {
JTabbedPane pane = (JTabbedPane) e.getSource();
int selectedIndex = pane.getSelectedIndex();
System.out.println("Selected paneNo: " + selectedIndex);
ActionListener actionListener = tabSelectedListeners.get(pane.getComponentAt(selectedIndex));
if (actionListener != null)
actionListener.actionPerformed(null);
}
}
});
StartupFrame.setAppIcon(mainFrame.getFrame().getFrame());
mainFrame.getFrame().showFrame(tabbedPane.tabbedPane);
}
/**
* Adds a tab with activation listener
*/
private void tabbedPaneAdd(String title, JComponent component, ActionListener tabSelectedListener) {
tabSelectedListeners.put(component, tabSelectedListener);
tabbedPane.addTab(title, component);
}
/**
* rusEfi console entry point
@ -195,70 +37,6 @@ public class Launcher extends rusEFIVersion {
ConsoleTools.printTools();
FileLog.MAIN.start();
getConfig().load();
FileLog.suspendLogging = getConfig().getRoot().getBoolProperty(GaugesPanel.DISABLE_LOGS);
Thread.setDefaultUncaughtExceptionHandler(new DefaultExceptionHandler());
VersionChecker.start();
SwingUtilities.invokeAndWait(() -> awtCode(args));
}
private static void awtCode(String[] args) {
if (JustOneInstance.isAlreadyRunning()) {
int result = JOptionPane.showConfirmDialog(null, "Looks like another instance is already running. Do you really want to start another instance?",
"rusEfi", JOptionPane.YES_NO_OPTION);
if (result == JOptionPane.NO_OPTION)
System.exit(-1);
}
wrongVersionListener = new SensorCentral.SensorListener() {
@Override
public void onSensorUpdate(double value) {
// todo: we need to migrate to TS_SIGNATURE validation!!!
if (value != Fields.TS_FILE_VERSION) {
String message = "This copy of rusEfi console is not compatible with this version of firmware\r\n" +
"Console compatible with " + Fields.TS_FILE_VERSION + " while firmware compatible with " +
(int) value;
JOptionPane.showMessageDialog(Launcher.getFrame(), message);
assert wrongVersionListener != null;
SensorCentral.getInstance().removeListener(Sensor.TS_CONFIG_VERSION, wrongVersionListener);
}
}
};
SensorCentral.getInstance().addListener(Sensor.TS_CONFIG_VERSION, wrongVersionListener);
JustOneInstance.onStart();
try {
boolean isPortDefined = args.length > 0;
boolean isBaudRateDefined = args.length > 1;
if (isBaudRateDefined)
BaudRateHolder.INSTANCE.baudRate = Integer.parseInt(args[1]);
String port = null;
if (isPortDefined)
port = args[0];
if (isPortDefined) {
port = PortDetector.autoDetectSerialIfNeeded(port);
if (port == null) {
isPortDefined = false;
}
}
if (isPortDefined) {
new Launcher(port);
} else {
for (String p : LinkManager.getCommPorts())
MessagesCentral.getInstance().postMessage(Launcher.class, "Available port: " + p);
new StartupFrame().chooseSerialPort();
}
} catch (Throwable e) {
throw new IllegalStateException(e);
}
}
public static Frame getFrame() {
return staticFrame;
ConsoleUI.startUi(args);
}
}

View File

@ -56,7 +56,7 @@ public class SimulatorHelper {
throw new IllegalStateException("Port not opened?");
FileLog.MAIN.logLine("Port " + TcpConnector.DEFAULT_PORT + " is alive");
new Launcher("" + TcpConnector.DEFAULT_PORT);
new ConsoleUI("" + TcpConnector.DEFAULT_PORT);
}
public static JComponent createSimulatorComponent(final StartupFrame portSelector) {

View File

@ -184,7 +184,7 @@ public class StartupFrame {
@Override
public void actionPerformed(ActionEvent e) {
disposeFrameAndProceed();
new Launcher(LinkManager.LOG_VIEWER);
new ConsoleUI(LinkManager.LOG_VIEWER);
}
});
@ -237,7 +237,7 @@ public class StartupFrame {
selectedPort = autoDetectedPort;
}
disposeFrameAndProceed();
new Launcher(selectedPort);
new ConsoleUI(selectedPort);
}
/**
@ -299,13 +299,13 @@ public class StartupFrame {
comboPorts.removeAllItems();
for (final String port : ports)
comboPorts.addItem(port);
String defaultPort = getConfig().getRoot().getProperty(Launcher.PORT_KEY);
String defaultPort = getConfig().getRoot().getProperty(ConsoleUI.PORT_KEY);
comboPorts.setSelectedItem(defaultPort);
}
private static JComboBox<String> createSpeedCombo() {
JComboBox<String> combo = new JComboBox<>();
String defaultSpeed = getConfig().getRoot().getProperty(Launcher.SPEED_KEY, "115200");
String defaultSpeed = getConfig().getRoot().getProperty(ConsoleUI.SPEED_KEY, "115200");
for (int speed : new int[]{9600, 14400, 19200, 38400, 57600, 115200, 460800, 921600})
combo.addItem(Integer.toString(speed));
combo.setSelectedItem(defaultSpeed);

View File

@ -1,6 +1,7 @@
package com.rusefi.maintenance;
import com.opensr5.ini.IniFileModel;
import com.rusefi.ConsoleUI;
import com.rusefi.FileLog;
import com.rusefi.Launcher;
import com.rusefi.Timeouts;
@ -18,7 +19,6 @@ import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.File;
import java.io.IOException;
import java.util.function.Function;
/**
* @see FirmwareFlasher
@ -58,7 +58,7 @@ public class DfuFlasher {
return null;
});
if (port == null) {
JOptionPane.showMessageDialog(Launcher.getFrame(), "rusEfi serial port not detected");
JOptionPane.showMessageDialog(ConsoleUI.getFrame(), "rusEfi serial port not detected");
return;
} else {
messages.append("Detected rusEFI on " + port + "\n");

View File

@ -1,9 +1,8 @@
package com.rusefi.ui;
import com.rusefi.Launcher;
import com.rusefi.ConsoleUI;
import com.rusefi.core.MessagesCentral;
import com.rusefi.io.CommandQueue;
import com.rusefi.io.InvocationConfirmationListener;
import com.rusefi.ui.logview.LogViewer;
import com.rusefi.ui.util.UiUtils;
import org.jetbrains.annotations.NotNull;
@ -77,7 +76,7 @@ public class LogDownloader {
removeFile.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
int i = JOptionPane.showConfirmDialog(Launcher.getFrame(), ("Do you really want to delete " + name + "?"),
int i = JOptionPane.showConfirmDialog(ConsoleUI.getFrame(), ("Do you really want to delete " + name + "?"),
UIManager.getString("OptionPane.titleText"),
JOptionPane.YES_NO_OPTION);
if (i == JOptionPane.YES_OPTION) {

View File

@ -1,7 +1,7 @@
package com.rusefi.ui;
import ZoeloeSoft.projects.JFontChooser.JFontChooser;
import com.rusefi.Launcher;
import com.rusefi.ConsoleUI;
import com.rusefi.ui.engine.EngineSnifferPanel;
import com.rusefi.ui.storage.Node;
import com.rusefi.ui.util.URLLabel;
@ -56,7 +56,7 @@ public class MessagesPane {
fontButton.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
JFontChooser fc = new JFontChooser(Launcher.getFrame());
JFontChooser fc = new JFontChooser(ConsoleUI.getFrame());
fc.setLocationRelativeTo(fontButton);
if (fc.showDialog(upperPanel.getFont()) == JFontChooser.OK_OPTION) {
upperPanel.setFont(fc.getFont(), config);

View File

@ -18,6 +18,7 @@ import java.util.TimeZone;
import static com.rusefi.ui.storage.PersistentConfiguration.getConfig;
public class MainFrame {
private final ConsoleUI consoleUI;
private final TabbedPanel tabbedPane;
/**
* @see StartupFrame
@ -43,7 +44,8 @@ public class MainFrame {
}
};
public MainFrame(TabbedPanel tabbedPane) {
public MainFrame(ConsoleUI consoleUI, TabbedPanel tabbedPane) {
this.consoleUI = consoleUI;
this.tabbedPane = tabbedPane;
}
@ -66,7 +68,7 @@ public class MainFrame {
}
});
LinkManager.startAndConnect(Launcher.port, new ConnectionStateListener() {
LinkManager.startAndConnect(consoleUI.port, new ConnectionStateListener() {
@Override
public void onConnectionFailed() {
}
@ -99,7 +101,7 @@ public class MainFrame {
private void setTitle() {
String disconnected = ConnectionStatusLogic.INSTANCE.isConnected() ? "" : "DISCONNECTED ";
frame.getFrame().setTitle(disconnected + "Console " + Launcher.CONSOLE_VERSION + "; firmware=" + Launcher.firmwareVersion.get() + "@" + Launcher.port);
frame.getFrame().setTitle(disconnected + "Console " + Launcher.CONSOLE_VERSION + "; firmware=" + Launcher.firmwareVersion.get() + "@" + consoleUI.port);
}
private void windowClosedHandler() {
@ -109,7 +111,7 @@ public class MainFrame {
SimulatorHelper.onWindowClosed();
Node root = getConfig().getRoot();
root.setProperty("version", Launcher.CONSOLE_VERSION);
root.setProperty(Launcher.TAB_INDEX, tabbedPane.tabbedPane.getSelectedIndex());
root.setProperty(ConsoleUI.TAB_INDEX, tabbedPane.tabbedPane.getSelectedIndex());
GaugesPanel.DetachedRepository.INSTANCE.saveConfig();
getConfig().save();
BinaryProtocol bp = BinaryProtocolHolder.getInstance().getCurrentStreamState();

View File

@ -1,5 +1,6 @@
package com.rusefi.ui.logview;
import com.rusefi.ConsoleUI;
import com.rusefi.FileLog;
import com.rusefi.Launcher;
import com.rusefi.core.EngineState;
@ -179,7 +180,7 @@ public class LogViewer extends JPanel {
ChartRepository.getInstance().clear();
EngineState engineState = new EngineState(listener);
// this is pretty dirty, better OOP desperately needed
Launcher.engineSnifferPanel.setOutpinListener(engineState);
ConsoleUI.engineSnifferPanel.setOutpinListener(engineState);
engineState.registerStringValueAction(EngineReport.ENGINE_CHART, new EngineState.ValueCallback<String>() {
@Override
public void onUpdate(String value) {