From 486b5e7f55cb471e739390c73282253c807b88ff Mon Sep 17 00:00:00 2001 From: kascade Date: Sat, 25 Aug 2007 00:48:01 +0000 Subject: [PATCH] updated alpha version of maf scaler git-svn-id: http://svn.3splooges.com/romraider-arch/trunk@783 d2e2e1cd-ba16-0410-be16-b7c4453c7c2d --- src/enginuity/logger/ecu/EcuLogger.java | 10 +-- .../io/connection/SSMLoggerConnection.java | 3 +- .../ecu/ui/handler/maf/MafUpdateHandler.java | 46 ++++---------- src/enginuity/logger/ecu/ui/tab/Tab.java | 7 +++ .../logger/ecu/ui/tab/maf/MafTab.java | 19 ++++++ .../logger/ecu/ui/tab/maf/MafTabImpl.java | 62 +++++++++++++++++++ 6 files changed, 107 insertions(+), 40 deletions(-) create mode 100644 src/enginuity/logger/ecu/ui/tab/Tab.java create mode 100644 src/enginuity/logger/ecu/ui/tab/maf/MafTab.java create mode 100644 src/enginuity/logger/ecu/ui/tab/maf/MafTabImpl.java diff --git a/src/enginuity/logger/ecu/EcuLogger.java b/src/enginuity/logger/ecu/EcuLogger.java index 2a71dc17..3024fd02 100644 --- a/src/enginuity/logger/ecu/EcuLogger.java +++ b/src/enginuity/logger/ecu/EcuLogger.java @@ -122,6 +122,8 @@ import enginuity.logger.ecu.ui.paramlist.ParameterListTableModel; import enginuity.logger.ecu.ui.paramlist.ParameterRow; import enginuity.logger.ecu.ui.swing.menubar.EcuLoggerMenuBar; import enginuity.logger.ecu.ui.swing.menubar.action.ToggleButtonAction; +import enginuity.logger.ecu.ui.tab.maf.MafTab; +import enginuity.logger.ecu.ui.tab.maf.MafTabImpl; import static enginuity.util.ParamChecker.checkNotNull; import static enginuity.util.ParamChecker.isNullOrEmpty; import enginuity.util.SettingsManagerImpl; @@ -180,7 +182,7 @@ public final class EcuLogger extends JFrame implements WindowListener, PropertyC private GraphUpdateHandler graphUpdateHandler; private JPanel dashboardPanel; private DashboardUpdateHandler dashboardUpdateHandler; - private JPanel mafPanel; + private MafTab mafTab; private MafUpdateHandler mafUpdateHandler; private EcuInit ecuInit; private JToggleButton logToFileButton; @@ -243,8 +245,8 @@ public final class EcuLogger extends JFrame implements WindowListener, PropertyC graphUpdateHandler = new GraphUpdateHandler(graphPanel); dashboardPanel = new JPanel(new FlowLayout(FlowLayout.CENTER, 3, 3)); dashboardUpdateHandler = new DashboardUpdateHandler(dashboardPanel); - mafPanel = new JPanel(new BorderLayout(2, 2)); - mafUpdateHandler = new MafUpdateHandler(mafPanel, ecuEditor); + mafTab = new MafTabImpl(ecuEditor); + mafUpdateHandler = new MafUpdateHandler(mafTab); controller = new LoggerControllerImpl(settings, ecuInitCallback, this, liveDataUpdateHandler, graphUpdateHandler, dashboardUpdateHandler, mafUpdateHandler, fileUpdateHandler, TableUpdateHandler.getInstance()); resetManager = new ResetManagerImpl(settings, this); @@ -581,7 +583,7 @@ public final class EcuLogger extends JFrame implements WindowListener, PropertyC tabbedPane.add("Data", buildSplitPane(buildParamListPane(dataTabParamListTableModel, dataTabSwitchListTableModel, dataTabExternalListTableModel), buildDataTab())); tabbedPane.add("Graph", buildSplitPane(buildParamListPane(graphTabParamListTableModel, graphTabSwitchListTableModel, graphTabExternalListTableModel), buildGraphTab())); tabbedPane.add("Dashboard", buildSplitPane(buildParamListPane(dashboardTabParamListTableModel, dashboardTabSwitchListTableModel, dashboardTabExternalListTableModel), buildDashboardTab())); - tabbedPane.add("MAF", mafPanel); + tabbedPane.add("MAF", mafTab.getPanel()); return tabbedPane; } diff --git a/src/enginuity/logger/ecu/comms/io/connection/SSMLoggerConnection.java b/src/enginuity/logger/ecu/comms/io/connection/SSMLoggerConnection.java index 80e2d36f..005c7e29 100644 --- a/src/enginuity/logger/ecu/comms/io/connection/SSMLoggerConnection.java +++ b/src/enginuity/logger/ecu/comms/io/connection/SSMLoggerConnection.java @@ -21,6 +21,7 @@ package enginuity.logger.ecu.comms.io.connection; +import java.util.Collection; import enginuity.io.connection.ConnectionProperties; import enginuity.io.connection.SerialConnection; import enginuity.io.connection.SerialConnectionImpl; @@ -34,8 +35,6 @@ import static enginuity.util.ParamChecker.checkNotNullOrEmpty; import static enginuity.util.ThreadUtil.sleep; import org.apache.log4j.Logger; -import java.util.Collection; - public final class SSMLoggerConnection implements LoggerConnection { private static final Logger LOGGER = Logger.getLogger(SSMLoggerConnection.class); private LoggerProtocol protocol; diff --git a/src/enginuity/logger/ecu/ui/handler/maf/MafUpdateHandler.java b/src/enginuity/logger/ecu/ui/handler/maf/MafUpdateHandler.java index 713e73c0..2fdfbb2f 100644 --- a/src/enginuity/logger/ecu/ui/handler/maf/MafUpdateHandler.java +++ b/src/enginuity/logger/ecu/ui/handler/maf/MafUpdateHandler.java @@ -1,53 +1,31 @@ package enginuity.logger.ecu.ui.handler.maf; -import static java.awt.BorderLayout.CENTER; -import static java.awt.BorderLayout.WEST; import java.util.Set; -import javax.swing.JPanel; import javax.swing.SwingUtilities; -import enginuity.ECUEditor; import enginuity.logger.ecu.comms.query.Response; import enginuity.logger.ecu.definition.LoggerData; import enginuity.logger.ecu.ui.handler.DataUpdateHandler; -import enginuity.logger.ecu.ui.tab.maf.MafChartPanel; -import enginuity.logger.ecu.ui.tab.maf.MafControlPanel; -import org.jfree.data.xy.XYSeries; +import enginuity.logger.ecu.ui.tab.maf.MafTab; public final class MafUpdateHandler implements DataUpdateHandler { private static final String MAFV = "P18"; private static final String AF_LEARNING_1 = "P4"; private static final String AF_CORRECTION_1 = "P3"; - private final XYSeries series = new XYSeries("MAF Analysis"); - private final XYTrendline trendline = new XYTrendline(); - private final JPanel mafPanel; - private final ECUEditor ecuEditor; - private final MafControlPanel controlPanel; + private final MafTab mafTab; - public MafUpdateHandler(JPanel mafPanel, ECUEditor ecuEditor) { - this.mafPanel = mafPanel; - this.ecuEditor = ecuEditor; - controlPanel = buildControlPanel(); - mafPanel.add(controlPanel, WEST); - mafPanel.add(buildGraphPanel(), CENTER); - } - - private MafControlPanel buildControlPanel() { - return new MafControlPanel(mafPanel, trendline, series, ecuEditor); - } - - private MafChartPanel buildGraphPanel() { - return new MafChartPanel(trendline, series); + public MafUpdateHandler(MafTab mafTab) { + this.mafTab = mafTab; } public synchronized void registerData(LoggerData loggerData) { } public synchronized void handleDataUpdate(Response response) { - if (controlPanel.isRecordData() && containsData(response, MAFV, AF_LEARNING_1, AF_CORRECTION_1)) { + if (mafTab.isRecordData() && containsData(response, MAFV, AF_LEARNING_1, AF_CORRECTION_1)) { boolean valid = true; // cl/ol check - if (valid && (containsData(response, "E3") || containsData(response, "E27"))) { + if ((containsData(response, "E3") || containsData(response, "E27"))) { double clOl = -1; if (containsData(response, "E3")) { clOl = (int) findValue(response, "E3"); @@ -55,31 +33,31 @@ public final class MafUpdateHandler implements DataUpdateHandler { if (containsData(response, "E27")) { clOl = (int) findValue(response, "E27"); } - valid = controlPanel.isValidClOl(clOl); + valid = mafTab.isValidClOl(clOl); } // afr check if (valid && containsData(response, "P58")) { double afr = findValue(response, "P58"); - valid = controlPanel.isValidAfr(afr); + valid = mafTab.isValidAfr(afr); } // rpm check if (valid && containsData(response, "P8")) { double rpm = findValue(response, "P8"); - valid = controlPanel.isValidRpm(rpm); + valid = mafTab.isValidRpm(rpm); } // maf check if (valid && containsData(response, "P12")) { double maf = findValue(response, "P12"); - valid = controlPanel.isValidMaf(maf); + valid = mafTab.isValidMaf(maf); } // coolant temp check if (valid && containsData(response, "P2")) { double temp = findValue(response, "P2"); - valid = controlPanel.isValidCoolantTemp(temp); + valid = mafTab.isValidCoolantTemp(temp); } if (valid) { @@ -88,7 +66,7 @@ public final class MafUpdateHandler implements DataUpdateHandler { final double correction = findValue(response, AF_CORRECTION_1); SwingUtilities.invokeLater(new Runnable() { public void run() { - series.add(mafv, learning + correction); + mafTab.addData(mafv, learning + correction); } }); } diff --git a/src/enginuity/logger/ecu/ui/tab/Tab.java b/src/enginuity/logger/ecu/ui/tab/Tab.java new file mode 100644 index 00000000..42633655 --- /dev/null +++ b/src/enginuity/logger/ecu/ui/tab/Tab.java @@ -0,0 +1,7 @@ +package enginuity.logger.ecu.ui.tab; + +import javax.swing.JPanel; + +public interface Tab { + JPanel getPanel(); +} diff --git a/src/enginuity/logger/ecu/ui/tab/maf/MafTab.java b/src/enginuity/logger/ecu/ui/tab/maf/MafTab.java new file mode 100644 index 00000000..67a68097 --- /dev/null +++ b/src/enginuity/logger/ecu/ui/tab/maf/MafTab.java @@ -0,0 +1,19 @@ +package enginuity.logger.ecu.ui.tab.maf; + +import enginuity.logger.ecu.ui.tab.Tab; + +public interface MafTab extends Tab { + boolean isRecordData(); + + boolean isValidClOl(double value); + + boolean isValidAfr(double value); + + boolean isValidRpm(double value); + + boolean isValidMaf(double value); + + boolean isValidCoolantTemp(double value); + + void addData(double mafv, double correction); +} diff --git a/src/enginuity/logger/ecu/ui/tab/maf/MafTabImpl.java b/src/enginuity/logger/ecu/ui/tab/maf/MafTabImpl.java new file mode 100644 index 00000000..01bb8ea5 --- /dev/null +++ b/src/enginuity/logger/ecu/ui/tab/maf/MafTabImpl.java @@ -0,0 +1,62 @@ +package enginuity.logger.ecu.ui.tab.maf; + +import java.awt.BorderLayout; +import static java.awt.BorderLayout.CENTER; +import static java.awt.BorderLayout.WEST; +import javax.swing.JPanel; +import enginuity.ECUEditor; +import enginuity.logger.ecu.ui.handler.maf.XYTrendline; +import org.jfree.data.xy.XYSeries; + +public final class MafTabImpl extends JPanel implements MafTab { + private final XYSeries series = new XYSeries("MAF Analysis"); + private final XYTrendline trendline = new XYTrendline(); + private final MafControlPanel controlPanel; + + public MafTabImpl(ECUEditor ecuEditor) { + super(new BorderLayout(2, 2)); + controlPanel = buildControlPanel(ecuEditor); + add(controlPanel, WEST); + add(buildGraphPanel(), CENTER); + } + + private MafControlPanel buildControlPanel(ECUEditor ecuEditor) { + return new MafControlPanel(this, trendline, series, ecuEditor); + } + + private MafChartPanel buildGraphPanel() { + return new MafChartPanel(trendline, series); + } + + public boolean isRecordData() { + return controlPanel.isRecordData(); + } + + public boolean isValidClOl(double value) { + return controlPanel.isValidClOl(value); + } + + public boolean isValidAfr(double value) { + return controlPanel.isValidAfr(value); + } + + public boolean isValidRpm(double value) { + return controlPanel.isValidRpm(value); + } + + public boolean isValidMaf(double value) { + return controlPanel.isValidMaf(value); + } + + public boolean isValidCoolantTemp(double value) { + return controlPanel.isValidCoolantTemp(value); + } + + public void addData(double mafv, double correction) { + series.add(mafv, correction); + } + + public JPanel getPanel() { + return this; + } +}