mirror of https://github.com/rusefi/RomRaider.git
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:
parent
fda03364e9
commit
486b5e7f55
|
@ -122,6 +122,8 @@ import enginuity.logger.ecu.ui.paramlist.ParameterListTableModel;
|
||||||
import enginuity.logger.ecu.ui.paramlist.ParameterRow;
|
import enginuity.logger.ecu.ui.paramlist.ParameterRow;
|
||||||
import enginuity.logger.ecu.ui.swing.menubar.EcuLoggerMenuBar;
|
import enginuity.logger.ecu.ui.swing.menubar.EcuLoggerMenuBar;
|
||||||
import enginuity.logger.ecu.ui.swing.menubar.action.ToggleButtonAction;
|
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.checkNotNull;
|
||||||
import static enginuity.util.ParamChecker.isNullOrEmpty;
|
import static enginuity.util.ParamChecker.isNullOrEmpty;
|
||||||
import enginuity.util.SettingsManagerImpl;
|
import enginuity.util.SettingsManagerImpl;
|
||||||
|
@ -180,7 +182,7 @@ public final class EcuLogger extends JFrame implements WindowListener, PropertyC
|
||||||
private GraphUpdateHandler graphUpdateHandler;
|
private GraphUpdateHandler graphUpdateHandler;
|
||||||
private JPanel dashboardPanel;
|
private JPanel dashboardPanel;
|
||||||
private DashboardUpdateHandler dashboardUpdateHandler;
|
private DashboardUpdateHandler dashboardUpdateHandler;
|
||||||
private JPanel mafPanel;
|
private MafTab mafTab;
|
||||||
private MafUpdateHandler mafUpdateHandler;
|
private MafUpdateHandler mafUpdateHandler;
|
||||||
private EcuInit ecuInit;
|
private EcuInit ecuInit;
|
||||||
private JToggleButton logToFileButton;
|
private JToggleButton logToFileButton;
|
||||||
|
@ -243,8 +245,8 @@ public final class EcuLogger extends JFrame implements WindowListener, PropertyC
|
||||||
graphUpdateHandler = new GraphUpdateHandler(graphPanel);
|
graphUpdateHandler = new GraphUpdateHandler(graphPanel);
|
||||||
dashboardPanel = new JPanel(new FlowLayout(FlowLayout.CENTER, 3, 3));
|
dashboardPanel = new JPanel(new FlowLayout(FlowLayout.CENTER, 3, 3));
|
||||||
dashboardUpdateHandler = new DashboardUpdateHandler(dashboardPanel);
|
dashboardUpdateHandler = new DashboardUpdateHandler(dashboardPanel);
|
||||||
mafPanel = new JPanel(new BorderLayout(2, 2));
|
mafTab = new MafTabImpl(ecuEditor);
|
||||||
mafUpdateHandler = new MafUpdateHandler(mafPanel, ecuEditor);
|
mafUpdateHandler = new MafUpdateHandler(mafTab);
|
||||||
controller = new LoggerControllerImpl(settings, ecuInitCallback, this, liveDataUpdateHandler,
|
controller = new LoggerControllerImpl(settings, ecuInitCallback, this, liveDataUpdateHandler,
|
||||||
graphUpdateHandler, dashboardUpdateHandler, mafUpdateHandler, fileUpdateHandler, TableUpdateHandler.getInstance());
|
graphUpdateHandler, dashboardUpdateHandler, mafUpdateHandler, fileUpdateHandler, TableUpdateHandler.getInstance());
|
||||||
resetManager = new ResetManagerImpl(settings, this);
|
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("Data", buildSplitPane(buildParamListPane(dataTabParamListTableModel, dataTabSwitchListTableModel, dataTabExternalListTableModel), buildDataTab()));
|
||||||
tabbedPane.add("Graph", buildSplitPane(buildParamListPane(graphTabParamListTableModel, graphTabSwitchListTableModel, graphTabExternalListTableModel), buildGraphTab()));
|
tabbedPane.add("Graph", buildSplitPane(buildParamListPane(graphTabParamListTableModel, graphTabSwitchListTableModel, graphTabExternalListTableModel), buildGraphTab()));
|
||||||
tabbedPane.add("Dashboard", buildSplitPane(buildParamListPane(dashboardTabParamListTableModel, dashboardTabSwitchListTableModel, dashboardTabExternalListTableModel), buildDashboardTab()));
|
tabbedPane.add("Dashboard", buildSplitPane(buildParamListPane(dashboardTabParamListTableModel, dashboardTabSwitchListTableModel, dashboardTabExternalListTableModel), buildDashboardTab()));
|
||||||
tabbedPane.add("MAF", mafPanel);
|
tabbedPane.add("MAF", mafTab.getPanel());
|
||||||
return tabbedPane;
|
return tabbedPane;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -21,6 +21,7 @@
|
||||||
|
|
||||||
package enginuity.logger.ecu.comms.io.connection;
|
package enginuity.logger.ecu.comms.io.connection;
|
||||||
|
|
||||||
|
import java.util.Collection;
|
||||||
import enginuity.io.connection.ConnectionProperties;
|
import enginuity.io.connection.ConnectionProperties;
|
||||||
import enginuity.io.connection.SerialConnection;
|
import enginuity.io.connection.SerialConnection;
|
||||||
import enginuity.io.connection.SerialConnectionImpl;
|
import enginuity.io.connection.SerialConnectionImpl;
|
||||||
|
@ -34,8 +35,6 @@ import static enginuity.util.ParamChecker.checkNotNullOrEmpty;
|
||||||
import static enginuity.util.ThreadUtil.sleep;
|
import static enginuity.util.ThreadUtil.sleep;
|
||||||
import org.apache.log4j.Logger;
|
import org.apache.log4j.Logger;
|
||||||
|
|
||||||
import java.util.Collection;
|
|
||||||
|
|
||||||
public final class SSMLoggerConnection implements LoggerConnection {
|
public final class SSMLoggerConnection implements LoggerConnection {
|
||||||
private static final Logger LOGGER = Logger.getLogger(SSMLoggerConnection.class);
|
private static final Logger LOGGER = Logger.getLogger(SSMLoggerConnection.class);
|
||||||
private LoggerProtocol protocol;
|
private LoggerProtocol protocol;
|
||||||
|
|
|
@ -1,53 +1,31 @@
|
||||||
package enginuity.logger.ecu.ui.handler.maf;
|
package enginuity.logger.ecu.ui.handler.maf;
|
||||||
|
|
||||||
import static java.awt.BorderLayout.CENTER;
|
|
||||||
import static java.awt.BorderLayout.WEST;
|
|
||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
import javax.swing.JPanel;
|
|
||||||
import javax.swing.SwingUtilities;
|
import javax.swing.SwingUtilities;
|
||||||
import enginuity.ECUEditor;
|
|
||||||
import enginuity.logger.ecu.comms.query.Response;
|
import enginuity.logger.ecu.comms.query.Response;
|
||||||
import enginuity.logger.ecu.definition.LoggerData;
|
import enginuity.logger.ecu.definition.LoggerData;
|
||||||
import enginuity.logger.ecu.ui.handler.DataUpdateHandler;
|
import enginuity.logger.ecu.ui.handler.DataUpdateHandler;
|
||||||
import enginuity.logger.ecu.ui.tab.maf.MafChartPanel;
|
import enginuity.logger.ecu.ui.tab.maf.MafTab;
|
||||||
import enginuity.logger.ecu.ui.tab.maf.MafControlPanel;
|
|
||||||
import org.jfree.data.xy.XYSeries;
|
|
||||||
|
|
||||||
public final class MafUpdateHandler implements DataUpdateHandler {
|
public final class MafUpdateHandler implements DataUpdateHandler {
|
||||||
private static final String MAFV = "P18";
|
private static final String MAFV = "P18";
|
||||||
private static final String AF_LEARNING_1 = "P4";
|
private static final String AF_LEARNING_1 = "P4";
|
||||||
private static final String AF_CORRECTION_1 = "P3";
|
private static final String AF_CORRECTION_1 = "P3";
|
||||||
private final XYSeries series = new XYSeries("MAF Analysis");
|
private final MafTab mafTab;
|
||||||
private final XYTrendline trendline = new XYTrendline();
|
|
||||||
private final JPanel mafPanel;
|
|
||||||
private final ECUEditor ecuEditor;
|
|
||||||
private final MafControlPanel controlPanel;
|
|
||||||
|
|
||||||
public MafUpdateHandler(JPanel mafPanel, ECUEditor ecuEditor) {
|
public MafUpdateHandler(MafTab mafTab) {
|
||||||
this.mafPanel = mafPanel;
|
this.mafTab = mafTab;
|
||||||
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 synchronized void registerData(LoggerData loggerData) {
|
public synchronized void registerData(LoggerData loggerData) {
|
||||||
}
|
}
|
||||||
|
|
||||||
public synchronized void handleDataUpdate(Response response) {
|
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;
|
boolean valid = true;
|
||||||
|
|
||||||
// cl/ol check
|
// cl/ol check
|
||||||
if (valid && (containsData(response, "E3") || containsData(response, "E27"))) {
|
if ((containsData(response, "E3") || containsData(response, "E27"))) {
|
||||||
double clOl = -1;
|
double clOl = -1;
|
||||||
if (containsData(response, "E3")) {
|
if (containsData(response, "E3")) {
|
||||||
clOl = (int) findValue(response, "E3");
|
clOl = (int) findValue(response, "E3");
|
||||||
|
@ -55,31 +33,31 @@ public final class MafUpdateHandler implements DataUpdateHandler {
|
||||||
if (containsData(response, "E27")) {
|
if (containsData(response, "E27")) {
|
||||||
clOl = (int) findValue(response, "E27");
|
clOl = (int) findValue(response, "E27");
|
||||||
}
|
}
|
||||||
valid = controlPanel.isValidClOl(clOl);
|
valid = mafTab.isValidClOl(clOl);
|
||||||
}
|
}
|
||||||
|
|
||||||
// afr check
|
// afr check
|
||||||
if (valid && containsData(response, "P58")) {
|
if (valid && containsData(response, "P58")) {
|
||||||
double afr = findValue(response, "P58");
|
double afr = findValue(response, "P58");
|
||||||
valid = controlPanel.isValidAfr(afr);
|
valid = mafTab.isValidAfr(afr);
|
||||||
}
|
}
|
||||||
|
|
||||||
// rpm check
|
// rpm check
|
||||||
if (valid && containsData(response, "P8")) {
|
if (valid && containsData(response, "P8")) {
|
||||||
double rpm = findValue(response, "P8");
|
double rpm = findValue(response, "P8");
|
||||||
valid = controlPanel.isValidRpm(rpm);
|
valid = mafTab.isValidRpm(rpm);
|
||||||
}
|
}
|
||||||
|
|
||||||
// maf check
|
// maf check
|
||||||
if (valid && containsData(response, "P12")) {
|
if (valid && containsData(response, "P12")) {
|
||||||
double maf = findValue(response, "P12");
|
double maf = findValue(response, "P12");
|
||||||
valid = controlPanel.isValidMaf(maf);
|
valid = mafTab.isValidMaf(maf);
|
||||||
}
|
}
|
||||||
|
|
||||||
// coolant temp check
|
// coolant temp check
|
||||||
if (valid && containsData(response, "P2")) {
|
if (valid && containsData(response, "P2")) {
|
||||||
double temp = findValue(response, "P2");
|
double temp = findValue(response, "P2");
|
||||||
valid = controlPanel.isValidCoolantTemp(temp);
|
valid = mafTab.isValidCoolantTemp(temp);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (valid) {
|
if (valid) {
|
||||||
|
@ -88,7 +66,7 @@ public final class MafUpdateHandler implements DataUpdateHandler {
|
||||||
final double correction = findValue(response, AF_CORRECTION_1);
|
final double correction = findValue(response, AF_CORRECTION_1);
|
||||||
SwingUtilities.invokeLater(new Runnable() {
|
SwingUtilities.invokeLater(new Runnable() {
|
||||||
public void run() {
|
public void run() {
|
||||||
series.add(mafv, learning + correction);
|
mafTab.addData(mafv, learning + correction);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
|
@ -0,0 +1,7 @@
|
||||||
|
package enginuity.logger.ecu.ui.tab;
|
||||||
|
|
||||||
|
import javax.swing.JPanel;
|
||||||
|
|
||||||
|
public interface Tab {
|
||||||
|
JPanel getPanel();
|
||||||
|
}
|
|
@ -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);
|
||||||
|
}
|
|
@ -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;
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in New Issue