mirror of https://github.com/rusefi/RomRaider.git
simplified ecu response handling - still buggy
git-svn-id: http://svn.3splooges.com/romraider-arch/trunk@620 d2e2e1cd-ba16-0410-be16-b7c4453c7c2d
This commit is contained in:
parent
57281f5ec7
commit
7888dfae33
|
@ -27,7 +27,6 @@ import enginuity.logger.ecu.comms.controller.LoggerController;
|
|||
import enginuity.logger.ecu.comms.controller.LoggerControllerImpl;
|
||||
import enginuity.logger.ecu.comms.query.EcuInit;
|
||||
import enginuity.logger.ecu.comms.query.EcuInitCallback;
|
||||
import enginuity.logger.ecu.comms.query.LoggerCallback;
|
||||
import enginuity.logger.ecu.definition.EcuDataLoader;
|
||||
import enginuity.logger.ecu.definition.EcuDataLoaderImpl;
|
||||
import enginuity.logger.ecu.definition.EcuParameter;
|
||||
|
@ -142,6 +141,7 @@ public final class EcuLogger extends JFrame implements WindowListener, PropertyC
|
|||
private JLabel statsLabel;
|
||||
private JTabbedPane tabbedPane;
|
||||
private SerialPortComboBox portsComboBox;
|
||||
private DataUpdateHandlerManager dataUpdateHandlerManager;
|
||||
private DataUpdateHandlerManager dataHandlerManager;
|
||||
private DataRegistrationBroker dataTabBroker;
|
||||
private ParameterListTableModel dataTabParamListTableModel;
|
||||
|
@ -199,7 +199,8 @@ public final class EcuLogger extends JFrame implements WindowListener, PropertyC
|
|||
}
|
||||
}
|
||||
};
|
||||
controller = new LoggerControllerImpl(settings, ecuInitCallback, this);
|
||||
dataUpdateHandlerManager = new DataUpdateHandlerManagerImpl();
|
||||
controller = new LoggerControllerImpl(settings, ecuInitCallback, this, dataUpdateHandlerManager);
|
||||
messageLabel = new JLabel(ENGINUITY_ECU_LOGGER_TITLE);
|
||||
ecuIdLabel = new JLabel(buildEcuIdLabelText());
|
||||
statsLabel = buildStatsLabel();
|
||||
|
@ -227,6 +228,9 @@ 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);
|
||||
dataUpdateHandlerManager.addHandler(dataHandlerManager);
|
||||
dataUpdateHandlerManager.addHandler(graphHandlerManager);
|
||||
dataUpdateHandlerManager.addHandler(dashboardHandlerManager);
|
||||
}
|
||||
|
||||
private void initControllerListeners() {
|
||||
|
@ -302,20 +306,23 @@ public final class EcuLogger extends JFrame implements WindowListener, PropertyC
|
|||
|
||||
private void initFileLoggingController(final EcuSwitch fileLoggingControllerSwitch) {
|
||||
// add logger and setup callback
|
||||
controller.setFileLoggerSwitch(fileLoggingControllerSwitch, new LoggerCallback() {
|
||||
public void callback(double value) {
|
||||
// update handlers
|
||||
if (settings.isFileLoggingControllerSwitchActive()) {
|
||||
boolean logToFile = (int) value == 1;
|
||||
logToFileButton.setSelected(logToFile);
|
||||
if (logToFile) {
|
||||
fileUpdateHandler.start();
|
||||
} else {
|
||||
fileUpdateHandler.stop();
|
||||
}
|
||||
}
|
||||
}
|
||||
});
|
||||
controller.setFileLoggerSwitch(fileLoggingControllerSwitch);
|
||||
|
||||
//FIXME: Add auto button toggle on defog switch back in somehow! Use a FileLoggingUpdateHandler or something
|
||||
// controller.setFileLoggerSwitch(fileLoggingControllerSwitch, new LoggerCallback() {
|
||||
// public void callback(double value) {
|
||||
// // update handlers
|
||||
// if (settings.isFileLoggingControllerSwitchActive()) {
|
||||
// boolean logToFile = (int) value == 1;
|
||||
// logToFileButton.setSelected(logToFile);
|
||||
// if (logToFile) {
|
||||
// fileUpdateHandler.start();
|
||||
// } else {
|
||||
// fileUpdateHandler.stop();
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
// });
|
||||
}
|
||||
|
||||
private void applyUserProfile(UserProfile profile) {
|
||||
|
@ -778,9 +785,7 @@ public final class EcuLogger extends JFrame implements WindowListener, PropertyC
|
|||
}
|
||||
|
||||
private void cleanUpUpdateHandlers() {
|
||||
dataHandlerManager.cleanUp();
|
||||
graphHandlerManager.cleanUp();
|
||||
dashboardHandlerManager.cleanUp();
|
||||
dataUpdateHandlerManager.cleanUp();
|
||||
}
|
||||
|
||||
public Settings getSettings() {
|
||||
|
|
|
@ -21,16 +21,15 @@
|
|||
|
||||
package enginuity.logger.ecu.comms.controller;
|
||||
|
||||
import enginuity.logger.ecu.comms.query.LoggerCallback;
|
||||
import enginuity.logger.ecu.definition.EcuSwitch;
|
||||
import enginuity.logger.ecu.definition.LoggerData;
|
||||
import enginuity.logger.ecu.ui.StatusChangeListener;
|
||||
|
||||
public interface LoggerController {
|
||||
|
||||
void setFileLoggerSwitch(EcuSwitch ecuSwitch, LoggerCallback callback);
|
||||
void setFileLoggerSwitch(EcuSwitch ecuSwitch);
|
||||
|
||||
void addLogger(String callerId, LoggerData loggerData, LoggerCallback callback);
|
||||
void addLogger(String callerId, LoggerData loggerData);
|
||||
|
||||
void removeLogger(String callerId, LoggerData loggerData);
|
||||
|
||||
|
|
|
@ -25,19 +25,20 @@ import enginuity.Settings;
|
|||
import enginuity.logger.ecu.comms.manager.QueryManager;
|
||||
import enginuity.logger.ecu.comms.manager.QueryManagerImpl;
|
||||
import enginuity.logger.ecu.comms.query.EcuInitCallback;
|
||||
import enginuity.logger.ecu.comms.query.LoggerCallback;
|
||||
import enginuity.logger.ecu.definition.EcuSwitch;
|
||||
import enginuity.logger.ecu.definition.LoggerData;
|
||||
import enginuity.logger.ecu.ui.MessageListener;
|
||||
import enginuity.logger.ecu.ui.StatusChangeListener;
|
||||
import enginuity.logger.ecu.ui.handler.DataUpdateHandlerManager;
|
||||
import static enginuity.util.ParamChecker.checkNotNull;
|
||||
|
||||
public final class LoggerControllerImpl implements LoggerController {
|
||||
private final QueryManager queryManager;
|
||||
|
||||
public LoggerControllerImpl(Settings settings, EcuInitCallback ecuInitCallback, MessageListener messageListener) {
|
||||
checkNotNull(settings, ecuInitCallback, messageListener);
|
||||
queryManager = new QueryManagerImpl(settings, ecuInitCallback, messageListener);
|
||||
public LoggerControllerImpl(Settings settings, EcuInitCallback ecuInitCallback, MessageListener messageListener,
|
||||
DataUpdateHandlerManager dataUpdateHandlerManager) {
|
||||
checkNotNull(settings, ecuInitCallback, messageListener, dataUpdateHandlerManager);
|
||||
queryManager = new QueryManagerImpl(settings, ecuInitCallback, messageListener, dataUpdateHandlerManager);
|
||||
}
|
||||
|
||||
public synchronized void addListener(StatusChangeListener listener) {
|
||||
|
@ -45,16 +46,16 @@ public final class LoggerControllerImpl implements LoggerController {
|
|||
queryManager.addListener(listener);
|
||||
}
|
||||
|
||||
public void setFileLoggerSwitch(EcuSwitch ecuSwitch, LoggerCallback callback) {
|
||||
checkNotNull(ecuSwitch, callback);
|
||||
public void setFileLoggerSwitch(EcuSwitch ecuSwitch) {
|
||||
checkNotNull(ecuSwitch);
|
||||
System.out.println("Setting file logger switch: " + ecuSwitch.getName());
|
||||
queryManager.setFileLoggerQuery(ecuSwitch, callback);
|
||||
queryManager.setFileLoggerQuery(ecuSwitch);
|
||||
}
|
||||
|
||||
public void addLogger(String callerId, LoggerData loggerData, LoggerCallback callback) {
|
||||
checkNotNull(loggerData, callback);
|
||||
public void addLogger(String callerId, LoggerData loggerData) {
|
||||
checkNotNull(loggerData);
|
||||
System.out.println("Adding logger: " + loggerData.getName());
|
||||
queryManager.addQuery(callerId, loggerData, callback);
|
||||
queryManager.addQuery(callerId, loggerData);
|
||||
}
|
||||
|
||||
public void removeLogger(String callerId, LoggerData loggerData) {
|
||||
|
|
|
@ -21,16 +21,15 @@
|
|||
|
||||
package enginuity.logger.ecu.comms.manager;
|
||||
|
||||
import enginuity.logger.ecu.comms.query.LoggerCallback;
|
||||
import enginuity.logger.ecu.definition.EcuSwitch;
|
||||
import enginuity.logger.ecu.definition.LoggerData;
|
||||
import enginuity.logger.ecu.ui.StatusChangeListener;
|
||||
|
||||
public interface QueryManager extends Runnable {
|
||||
|
||||
void setFileLoggerQuery(EcuSwitch ecuSwitch, LoggerCallback callback);
|
||||
void setFileLoggerQuery(EcuSwitch ecuSwitch);
|
||||
|
||||
void addQuery(String callerId, LoggerData loggerData, LoggerCallback callback);
|
||||
void addQuery(String callerId, LoggerData loggerData);
|
||||
|
||||
void removeQuery(String callerId, LoggerData loggerData);
|
||||
|
||||
|
|
|
@ -31,8 +31,9 @@ import enginuity.logger.ecu.comms.query.EcuQuery;
|
|||
import enginuity.logger.ecu.comms.query.EcuQueryImpl;
|
||||
import enginuity.logger.ecu.comms.query.ExternalQuery;
|
||||
import enginuity.logger.ecu.comms.query.ExternalQueryImpl;
|
||||
import enginuity.logger.ecu.comms.query.LoggerCallback;
|
||||
import enginuity.logger.ecu.comms.query.Query;
|
||||
import enginuity.logger.ecu.comms.query.Response;
|
||||
import enginuity.logger.ecu.comms.query.ResponseImpl;
|
||||
import enginuity.logger.ecu.definition.EcuData;
|
||||
import static enginuity.logger.ecu.definition.EcuDataType.EXTERNAL;
|
||||
import enginuity.logger.ecu.definition.EcuSwitch;
|
||||
|
@ -40,6 +41,7 @@ import enginuity.logger.ecu.definition.ExternalData;
|
|||
import enginuity.logger.ecu.definition.LoggerData;
|
||||
import enginuity.logger.ecu.ui.MessageListener;
|
||||
import enginuity.logger.ecu.ui.StatusChangeListener;
|
||||
import enginuity.logger.ecu.ui.handler.DataUpdateHandlerManager;
|
||||
import static enginuity.util.HexUtil.asHex;
|
||||
import static enginuity.util.ParamChecker.checkNotNull;
|
||||
import static enginuity.util.ThreadUtil.sleep;
|
||||
|
@ -63,16 +65,19 @@ public final class QueryManagerImpl implements QueryManager {
|
|||
private final Settings settings;
|
||||
private final EcuInitCallback ecuInitCallback;
|
||||
private final MessageListener messageListener;
|
||||
private final DataUpdateHandlerManager dataUpdateHandlerManager;
|
||||
private EcuQuery fileLoggerQuery;
|
||||
private Thread queryManagerThread;
|
||||
private boolean started;
|
||||
private boolean stop;
|
||||
|
||||
public QueryManagerImpl(Settings settings, EcuInitCallback ecuInitCallback, MessageListener messageListener) {
|
||||
checkNotNull(settings, ecuInitCallback, messageListener);
|
||||
public QueryManagerImpl(Settings settings, EcuInitCallback ecuInitCallback, MessageListener messageListener,
|
||||
DataUpdateHandlerManager dataUpdateHandlerManager) {
|
||||
checkNotNull(settings, ecuInitCallback, messageListener, dataUpdateHandlerManager);
|
||||
this.settings = settings;
|
||||
this.ecuInitCallback = ecuInitCallback;
|
||||
this.messageListener = messageListener;
|
||||
this.dataUpdateHandlerManager = dataUpdateHandlerManager;
|
||||
}
|
||||
|
||||
public synchronized void addListener(StatusChangeListener listener) {
|
||||
|
@ -80,19 +85,19 @@ public final class QueryManagerImpl implements QueryManager {
|
|||
listeners.add(listener);
|
||||
}
|
||||
|
||||
public void setFileLoggerQuery(EcuSwitch ecuSwitch, LoggerCallback callback) {
|
||||
checkNotNull(ecuSwitch, callback);
|
||||
fileLoggerQuery = new EcuQueryImpl(ecuSwitch, callback);
|
||||
public void setFileLoggerQuery(EcuSwitch ecuSwitch) {
|
||||
checkNotNull(ecuSwitch);
|
||||
fileLoggerQuery = new EcuQueryImpl(ecuSwitch);
|
||||
}
|
||||
|
||||
public synchronized void addQuery(String callerId, LoggerData loggerData, LoggerCallback callback) {
|
||||
checkNotNull(callerId, loggerData, callback);
|
||||
public synchronized void addQuery(String callerId, LoggerData loggerData) {
|
||||
checkNotNull(callerId, loggerData);
|
||||
//FIXME: This is a hack!!
|
||||
String queryId = buildQueryId(callerId, loggerData);
|
||||
if (loggerData.getDataType() == EXTERNAL) {
|
||||
addList.put(queryId, new ExternalQueryImpl((ExternalData) loggerData, callback));
|
||||
addList.put(queryId, new ExternalQueryImpl((ExternalData) loggerData));
|
||||
} else {
|
||||
addList.put(queryId, new EcuQueryImpl((EcuData) loggerData, callback));
|
||||
addList.put(queryId, new EcuQueryImpl((EcuData) loggerData));
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -176,8 +181,9 @@ public final class QueryManagerImpl implements QueryManager {
|
|||
List<ExternalQuery> externalQueries = filterExternalQueries(queryMap.values());
|
||||
for (ExternalQuery externalQuery : externalQueries) {
|
||||
//FIXME: This is a hack!!
|
||||
externalQuery.setResponse(externalQuery.getExternalData().getSelectedConvertor().convert(null));
|
||||
externalQuery.setResponse(externalQuery.getLoggerData().getSelectedConvertor().convert(null));
|
||||
}
|
||||
dataUpdateHandlerManager.handleDataUpdate(buildResponse(queryMap.values()));
|
||||
count++;
|
||||
messageListener.reportMessage("Querying ECU...");
|
||||
messageListener.reportStats(buildStatsMessage(start, count));
|
||||
|
@ -190,6 +196,14 @@ public final class QueryManagerImpl implements QueryManager {
|
|||
}
|
||||
}
|
||||
|
||||
private Response buildResponse(Collection<Query> queries) {
|
||||
Response response = new ResponseImpl();
|
||||
for (Query query : queries) {
|
||||
response.setDataValue(query.getLoggerData(), query.getResponse());
|
||||
}
|
||||
return response;
|
||||
}
|
||||
|
||||
//FIXME: This is a hack!!
|
||||
private List<EcuQuery> filterEcuQueries(Collection<Query> queries) {
|
||||
List<EcuQuery> filtered = new ArrayList<EcuQuery>();
|
||||
|
|
|
@ -29,5 +29,5 @@ public interface EcuQuery extends Query {
|
|||
|
||||
String getHex();
|
||||
|
||||
void setResponse(byte[] response);
|
||||
void setResponse(byte[] bytes);
|
||||
}
|
||||
|
|
|
@ -22,23 +22,27 @@
|
|||
package enginuity.logger.ecu.comms.query;
|
||||
|
||||
import enginuity.logger.ecu.definition.EcuData;
|
||||
import enginuity.logger.ecu.definition.LoggerData;
|
||||
import static enginuity.util.HexUtil.asHex;
|
||||
import static enginuity.util.ParamChecker.checkNotNull;
|
||||
|
||||
public final class EcuQueryImpl implements EcuQuery {
|
||||
private final EcuData ecuData;
|
||||
private final LoggerCallback callback;
|
||||
private final byte[] bytes;
|
||||
private final String hex;
|
||||
private double response;
|
||||
|
||||
public EcuQueryImpl(EcuData ecuData, LoggerCallback callback) {
|
||||
checkNotNull(ecuData, callback);
|
||||
public EcuQueryImpl(EcuData ecuData) {
|
||||
checkNotNull(ecuData);
|
||||
this.ecuData = ecuData;
|
||||
this.callback = callback;
|
||||
bytes = ecuData.getAddress().getBytes();
|
||||
hex = asHex(bytes);
|
||||
}
|
||||
|
||||
public LoggerData getLoggerData() {
|
||||
return ecuData;
|
||||
}
|
||||
|
||||
public String[] getAddresses() {
|
||||
return ecuData.getAddress().getAddresses();
|
||||
}
|
||||
|
@ -51,8 +55,12 @@ public final class EcuQueryImpl implements EcuQuery {
|
|||
return hex;
|
||||
}
|
||||
|
||||
public void setResponse(byte[] response) {
|
||||
callback.callback(ecuData.getSelectedConvertor().convert(response));
|
||||
public double getResponse() {
|
||||
return response;
|
||||
}
|
||||
|
||||
public void setResponse(byte[] bytes) {
|
||||
this.response = ecuData.getSelectedConvertor().convert(bytes);
|
||||
}
|
||||
|
||||
public boolean equals(Object object) {
|
||||
|
|
|
@ -1,10 +1,7 @@
|
|||
package enginuity.logger.ecu.comms.query;
|
||||
|
||||
import enginuity.logger.ecu.definition.ExternalData;
|
||||
|
||||
public interface ExternalQuery extends Query {
|
||||
|
||||
ExternalData getExternalData();
|
||||
|
||||
void setResponse(double response);
|
||||
|
||||
}
|
||||
|
|
|
@ -1,23 +1,27 @@
|
|||
package enginuity.logger.ecu.comms.query;
|
||||
|
||||
import enginuity.logger.ecu.definition.ExternalData;
|
||||
import enginuity.logger.ecu.definition.LoggerData;
|
||||
import static enginuity.util.ParamChecker.checkNotNull;
|
||||
|
||||
public final class ExternalQueryImpl implements ExternalQuery {
|
||||
private final ExternalData externalData;
|
||||
private final LoggerCallback callback;
|
||||
private double response;
|
||||
|
||||
public ExternalQueryImpl(ExternalData externalData, LoggerCallback callback) {
|
||||
checkNotNull(externalData, callback);
|
||||
public ExternalQueryImpl(ExternalData externalData) {
|
||||
checkNotNull(externalData);
|
||||
this.externalData = externalData;
|
||||
this.callback = callback;
|
||||
}
|
||||
|
||||
public ExternalData getExternalData() {
|
||||
public LoggerData getLoggerData() {
|
||||
return externalData;
|
||||
}
|
||||
|
||||
public void setResponse(double response) {
|
||||
callback.callback(response);
|
||||
this.response = response;
|
||||
}
|
||||
|
||||
public double getResponse() {
|
||||
return response;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,28 +0,0 @@
|
|||
/*
|
||||
*
|
||||
* Enginuity Open-Source Tuning, Logging and Reflashing
|
||||
* Copyright (C) 2006 Enginuity.org
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation; either version 2 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License along
|
||||
* with this program; if not, write to the Free Software Foundation, Inc.,
|
||||
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||
*
|
||||
*/
|
||||
|
||||
package enginuity.logger.ecu.comms.query;
|
||||
|
||||
public interface LoggerCallback {
|
||||
|
||||
void callback(double value);
|
||||
|
||||
}
|
|
@ -1,4 +1,11 @@
|
|||
package enginuity.logger.ecu.comms.query;
|
||||
|
||||
import enginuity.logger.ecu.definition.LoggerData;
|
||||
|
||||
public interface Query {
|
||||
|
||||
LoggerData getLoggerData();
|
||||
|
||||
double getResponse();
|
||||
|
||||
}
|
||||
|
|
|
@ -0,0 +1,16 @@
|
|||
package enginuity.logger.ecu.comms.query;
|
||||
|
||||
import enginuity.logger.ecu.definition.LoggerData;
|
||||
|
||||
import java.util.Set;
|
||||
|
||||
public interface Response {
|
||||
|
||||
void setDataValue(LoggerData data, double value);
|
||||
|
||||
Set<LoggerData> getData();
|
||||
|
||||
double getDataValue(LoggerData data);
|
||||
|
||||
long getTimestamp();
|
||||
}
|
|
@ -0,0 +1,32 @@
|
|||
package enginuity.logger.ecu.comms.query;
|
||||
|
||||
import enginuity.logger.ecu.definition.LoggerData;
|
||||
|
||||
import java.util.LinkedHashMap;
|
||||
import java.util.Map;
|
||||
import java.util.Set;
|
||||
|
||||
public class ResponseImpl implements Response {
|
||||
private final Map<LoggerData, Double> dataValues = new LinkedHashMap<LoggerData, Double>();
|
||||
private final long timestamp;
|
||||
|
||||
public ResponseImpl() {
|
||||
timestamp = System.currentTimeMillis();
|
||||
}
|
||||
|
||||
public void setDataValue(LoggerData data, double value) {
|
||||
dataValues.put(data, value);
|
||||
}
|
||||
|
||||
public Set<LoggerData> getData() {
|
||||
return dataValues.keySet();
|
||||
}
|
||||
|
||||
public double getDataValue(LoggerData data) {
|
||||
return dataValues.get(data);
|
||||
}
|
||||
|
||||
public long getTimestamp() {
|
||||
return timestamp;
|
||||
}
|
||||
}
|
|
@ -22,7 +22,6 @@
|
|||
package enginuity.logger.ecu.ui;
|
||||
|
||||
import enginuity.logger.ecu.comms.controller.LoggerController;
|
||||
import enginuity.logger.ecu.comms.query.LoggerCallback;
|
||||
import enginuity.logger.ecu.definition.LoggerData;
|
||||
import enginuity.logger.ecu.ui.handler.DataUpdateHandlerManager;
|
||||
import static enginuity.util.ParamChecker.checkNotNull;
|
||||
|
@ -49,13 +48,8 @@ public final class DataRegistrationBrokerImpl implements DataRegistrationBroker
|
|||
// register param with handlers
|
||||
handlerManager.registerData(loggerData);
|
||||
|
||||
// add logger and setup callback
|
||||
controller.addLogger(id, loggerData, new LoggerCallback() {
|
||||
public void callback(double value) {
|
||||
// update handlers
|
||||
handlerManager.handleDataUpdate(loggerData, value, System.currentTimeMillis());
|
||||
}
|
||||
});
|
||||
// add logger
|
||||
controller.addLogger(id, loggerData);
|
||||
|
||||
// add to registered parameters list
|
||||
registeredLoggerData.add(loggerData);
|
||||
|
|
|
@ -21,13 +21,14 @@
|
|||
|
||||
package enginuity.logger.ecu.ui.handler;
|
||||
|
||||
import enginuity.logger.ecu.comms.query.Response;
|
||||
import enginuity.logger.ecu.definition.LoggerData;
|
||||
|
||||
public interface DataUpdateHandler {
|
||||
|
||||
void registerData(LoggerData loggerData);
|
||||
|
||||
void handleDataUpdate(LoggerData loggerData, double value, long timestamp);
|
||||
void handleDataUpdate(Response response);
|
||||
|
||||
void deregisterData(LoggerData loggerData);
|
||||
|
||||
|
|
|
@ -21,6 +21,7 @@
|
|||
|
||||
package enginuity.logger.ecu.ui.handler;
|
||||
|
||||
import enginuity.logger.ecu.comms.query.Response;
|
||||
import enginuity.logger.ecu.definition.LoggerData;
|
||||
|
||||
import java.util.ArrayList;
|
||||
|
@ -39,9 +40,9 @@ public final class DataUpdateHandlerManagerImpl implements DataUpdateHandlerMana
|
|||
}
|
||||
}
|
||||
|
||||
public synchronized void handleDataUpdate(LoggerData loggerData, double value, long timestamp) {
|
||||
public synchronized void handleDataUpdate(Response response) {
|
||||
for (DataUpdateHandler handler : handlers) {
|
||||
handler.handleDataUpdate(loggerData, value, timestamp);
|
||||
handler.handleDataUpdate(response);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -21,6 +21,7 @@
|
|||
|
||||
package enginuity.logger.ecu.ui.handler;
|
||||
|
||||
import enginuity.logger.ecu.comms.query.Response;
|
||||
import enginuity.logger.ecu.definition.LoggerData;
|
||||
import static enginuity.util.ThreadUtil.sleep;
|
||||
|
||||
|
@ -29,8 +30,8 @@ import static java.util.Collections.synchronizedList;
|
|||
import java.util.List;
|
||||
|
||||
public final class DataUpdateHandlerThreadWrapper implements DataUpdateHandler, Runnable {
|
||||
private final List<DataUpdate> updateList = synchronizedList(new ArrayList<DataUpdate>());
|
||||
private final List<DataUpdate> workingList = synchronizedList(new ArrayList<DataUpdate>());
|
||||
private final List<Response> updateList = synchronizedList(new ArrayList<Response>());
|
||||
private final List<Response> workingList = synchronizedList(new ArrayList<Response>());
|
||||
private final DataUpdateHandler wrappee;
|
||||
private boolean stop = false;
|
||||
|
||||
|
@ -42,8 +43,8 @@ public final class DataUpdateHandlerThreadWrapper implements DataUpdateHandler,
|
|||
wrappee.registerData(loggerData);
|
||||
}
|
||||
|
||||
public synchronized void handleDataUpdate(LoggerData loggerData, double value, long timestamp) {
|
||||
updateList.add(new DataUpdate(loggerData, value, timestamp));
|
||||
public synchronized void handleDataUpdate(Response response) {
|
||||
updateList.add(response);
|
||||
}
|
||||
|
||||
public void deregisterData(LoggerData loggerData) {
|
||||
|
@ -62,8 +63,8 @@ public final class DataUpdateHandlerThreadWrapper implements DataUpdateHandler,
|
|||
public void run() {
|
||||
while (!stop) {
|
||||
updateWorkingList();
|
||||
for (final DataUpdate dataUpdate : workingList) {
|
||||
wrappee.handleDataUpdate(dataUpdate.getLoggerData(), dataUpdate.getValue(), dataUpdate.getTimestamp());
|
||||
for (final Response response : workingList) {
|
||||
wrappee.handleDataUpdate(response);
|
||||
}
|
||||
sleep(3);
|
||||
}
|
||||
|
@ -71,34 +72,10 @@ public final class DataUpdateHandlerThreadWrapper implements DataUpdateHandler,
|
|||
|
||||
private synchronized void updateWorkingList() {
|
||||
workingList.clear();
|
||||
for (DataUpdate dataUpdate : updateList) {
|
||||
workingList.add(dataUpdate);
|
||||
for (Response response : updateList) {
|
||||
workingList.add(response);
|
||||
}
|
||||
updateList.clear();
|
||||
}
|
||||
|
||||
private static final class DataUpdate {
|
||||
private final LoggerData loggerData;
|
||||
private final double value;
|
||||
private final long timestamp;
|
||||
|
||||
public DataUpdate(LoggerData loggerData, double value, long timestamp) {
|
||||
this.loggerData = loggerData;
|
||||
this.value = value;
|
||||
this.timestamp = timestamp;
|
||||
}
|
||||
|
||||
public LoggerData getLoggerData() {
|
||||
return loggerData;
|
||||
}
|
||||
|
||||
public long getTimestamp() {
|
||||
return timestamp;
|
||||
}
|
||||
|
||||
public double getValue() {
|
||||
return value;
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
|
|
@ -21,6 +21,7 @@
|
|||
|
||||
package enginuity.logger.ecu.ui.handler.dash;
|
||||
|
||||
import enginuity.logger.ecu.comms.query.Response;
|
||||
import enginuity.logger.ecu.definition.ConvertorUpdateListener;
|
||||
import enginuity.logger.ecu.definition.LoggerData;
|
||||
import enginuity.logger.ecu.ui.handler.DataUpdateHandler;
|
||||
|
@ -46,10 +47,12 @@ public final class DashboardUpdateHandler implements DataUpdateHandler, Converto
|
|||
repaintDashboardPanel();
|
||||
}
|
||||
|
||||
public synchronized void handleDataUpdate(LoggerData loggerData, double value, long timestamp) {
|
||||
Gauge gauge = gauges.get(loggerData);
|
||||
if (gauge != null) {
|
||||
gauge.updateValue(value);
|
||||
public synchronized void handleDataUpdate(Response response) {
|
||||
for (LoggerData loggerData : response.getData()) {
|
||||
Gauge gauge = gauges.get(loggerData);
|
||||
if (gauge != null) {
|
||||
gauge.updateValue(response.getDataValue(loggerData));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -22,6 +22,7 @@
|
|||
package enginuity.logger.ecu.ui.handler.file;
|
||||
|
||||
import enginuity.Settings;
|
||||
import enginuity.logger.ecu.comms.query.Response;
|
||||
import enginuity.logger.ecu.definition.ConvertorUpdateListener;
|
||||
import enginuity.logger.ecu.definition.LoggerData;
|
||||
import enginuity.logger.ecu.ui.MessageListener;
|
||||
|
@ -61,11 +62,13 @@ public final class FileUpdateHandlerImpl implements FileUpdateHandler, Convertor
|
|||
}
|
||||
}
|
||||
|
||||
public synchronized void handleDataUpdate(LoggerData loggerData, double value, long timestamp) {
|
||||
public synchronized void handleDataUpdate(Response response) {
|
||||
if (fileLogger.isStarted()) {
|
||||
currentLine.updateParamValue(loggerData, loggerData.getSelectedConvertor().format(value));
|
||||
for (LoggerData loggerData : response.getData()) {
|
||||
currentLine.updateParamValue(loggerData, loggerData.getSelectedConvertor().format(response.getDataValue(loggerData)));
|
||||
}
|
||||
if (currentLine.isFull()) {
|
||||
fileLogger.writeLine(currentLine.values(), timestamp);
|
||||
fileLogger.writeLine(currentLine.values(), response.getTimestamp());
|
||||
resetLine();
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
package enginuity.logger.ecu.ui.handler.graph;
|
||||
|
||||
import enginuity.logger.ecu.comms.query.Response;
|
||||
import enginuity.logger.ecu.definition.ConvertorUpdateListener;
|
||||
import enginuity.logger.ecu.definition.LoggerData;
|
||||
import enginuity.logger.ecu.ui.handler.DataUpdateHandler;
|
||||
|
@ -116,15 +117,16 @@ public final class GraphUpdateHandler implements DataUpdateHandler, ConvertorUpd
|
|||
makeCompactGrid(graphPanel, 1, 1, 2, 2, 2, 2);
|
||||
}
|
||||
|
||||
public synchronized void handleDataUpdate(LoggerData loggerData, final double value, final long timestamp) {
|
||||
// update chart
|
||||
final XYSeries series = seriesMap.get(loggerData);
|
||||
if (series != null && !paused) {
|
||||
SwingUtilities.invokeLater(new Runnable() {
|
||||
public void run() {
|
||||
series.add((timestamp - startTime) / 1000.0, value);
|
||||
}
|
||||
});
|
||||
public synchronized void handleDataUpdate(final Response response) {
|
||||
for (final LoggerData loggerData : response.getData()) {
|
||||
final XYSeries series = seriesMap.get(loggerData);
|
||||
if (series != null && !paused) {
|
||||
SwingUtilities.invokeLater(new Runnable() {
|
||||
public void run() {
|
||||
series.add((response.getTimestamp() - startTime) / 1000.0, response.getDataValue(loggerData));
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -21,6 +21,7 @@
|
|||
|
||||
package enginuity.logger.ecu.ui.handler.livedata;
|
||||
|
||||
import enginuity.logger.ecu.comms.query.Response;
|
||||
import enginuity.logger.ecu.definition.ConvertorUpdateListener;
|
||||
import enginuity.logger.ecu.definition.LoggerData;
|
||||
import enginuity.logger.ecu.ui.handler.DataUpdateHandler;
|
||||
|
@ -39,13 +40,14 @@ public final class LiveDataUpdateHandler implements DataUpdateHandler, Convertor
|
|||
dataTableModel.addParam(loggerData);
|
||||
}
|
||||
|
||||
public synchronized void handleDataUpdate(final LoggerData loggerData, final double value, long timestamp) {
|
||||
SwingUtilities.invokeLater(new Runnable() {
|
||||
public void run() {
|
||||
// update data table
|
||||
dataTableModel.updateParam(loggerData, value);
|
||||
}
|
||||
});
|
||||
public synchronized void handleDataUpdate(final Response response) {
|
||||
for (final LoggerData loggerData : response.getData()) {
|
||||
SwingUtilities.invokeLater(new Runnable() {
|
||||
public void run() {
|
||||
dataTableModel.updateParam(loggerData, response.getDataValue(loggerData));
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
public synchronized void deregisterData(LoggerData loggerData) {
|
||||
|
|
|
@ -21,6 +21,7 @@
|
|||
|
||||
package enginuity.logger.ecu.ui.handler.table;
|
||||
|
||||
import enginuity.logger.ecu.comms.query.Response;
|
||||
import enginuity.logger.ecu.definition.LoggerData;
|
||||
import enginuity.logger.ecu.ui.handler.DataUpdateHandler;
|
||||
import enginuity.maps.Table;
|
||||
|
@ -41,12 +42,14 @@ public final class TableUpdateHandler implements DataUpdateHandler {
|
|||
public void registerData(LoggerData loggerData) {
|
||||
}
|
||||
|
||||
public void handleDataUpdate(LoggerData loggerData, double value, long timestamp) {
|
||||
List<Table> tables = tableMap.get(loggerData.getId());
|
||||
if (tables != null && !tables.isEmpty()) {
|
||||
String formattedValue = loggerData.getSelectedConvertor().format(value);
|
||||
for (Table table : tables) {
|
||||
table.setLiveValue(formattedValue);
|
||||
public void handleDataUpdate(Response response) {
|
||||
for (LoggerData loggerData : response.getData()) {
|
||||
List<Table> tables = tableMap.get(loggerData.getId());
|
||||
if (tables != null && !tables.isEmpty()) {
|
||||
String formattedValue = loggerData.getSelectedConvertor().format(response.getDataValue(loggerData));
|
||||
for (Table table : tables) {
|
||||
table.setLiveValue(formattedValue);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue