updated alpha version of maf scaler

git-svn-id: http://svn.3splooges.com/romraider-arch/trunk@783 d2e2e1cd-ba16-0410-be16-b7c4453c7c2d
This commit is contained in:
kascade 2007-08-25 00:48:01 +00:00
parent fda03364e9
commit 486b5e7f55
6 changed files with 107 additions and 40 deletions

View File

@ -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;
}

View File

@ -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;

View File

@ -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);
}
});
}

View File

@ -0,0 +1,7 @@
package enginuity.logger.ecu.ui.tab;
import javax.swing.JPanel;
public interface Tab {
JPanel getPanel();
}

View File

@ -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);
}

View File

@ -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;
}
}