mirror of https://github.com/rusefi/RomRaider.git
started adding some test log playback stuff to logger
git-svn-id: http://svn.3splooges.com/romraider-arch/trunk@787 d2e2e1cd-ba16-0410-be16-b7c4453c7c2d
This commit is contained in:
parent
351f5f9989
commit
f20a040e45
|
@ -120,6 +120,7 @@ import enginuity.logger.ecu.ui.handler.table.TableUpdateHandler;
|
|||
import enginuity.logger.ecu.ui.paramlist.ParameterListTable;
|
||||
import enginuity.logger.ecu.ui.paramlist.ParameterListTableModel;
|
||||
import enginuity.logger.ecu.ui.paramlist.ParameterRow;
|
||||
import enginuity.logger.ecu.ui.playback.PlaybackManagerImpl;
|
||||
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;
|
||||
|
@ -127,6 +128,7 @@ import enginuity.logger.ecu.ui.tab.maf.MafTabImpl;
|
|||
import static enginuity.util.ParamChecker.checkNotNull;
|
||||
import static enginuity.util.ParamChecker.isNullOrEmpty;
|
||||
import enginuity.util.SettingsManagerImpl;
|
||||
import enginuity.util.ThreadUtil;
|
||||
import static enginuity.util.ThreadUtil.runAsDaemon;
|
||||
import static enginuity.util.ThreadUtil.sleep;
|
||||
import org.apache.log4j.Logger;
|
||||
|
@ -190,6 +192,8 @@ public final class EcuLogger extends JFrame implements WindowListener, PropertyC
|
|||
private JToggleButton logToFileButton;
|
||||
private List<ExternalDataSource> externalDataSources;
|
||||
|
||||
private List<EcuParameter> ecuParams;
|
||||
|
||||
public EcuLogger(Settings settings) {
|
||||
super(ENGINUITY_ECU_LOGGER_TITLE);
|
||||
construct(settings);
|
||||
|
@ -482,6 +486,7 @@ public final class EcuLogger extends JFrame implements WindowListener, PropertyC
|
|||
dashboardTabParamListTableModel.addParam(ecuParam, false);
|
||||
}
|
||||
mafTab.setEcuParams(ecuParams);
|
||||
this.ecuParams = new ArrayList<EcuParameter>(ecuParams);
|
||||
}
|
||||
|
||||
private void loadEcuSwitches(List<EcuSwitch> ecuSwitches) {
|
||||
|
@ -687,10 +692,31 @@ public final class EcuLogger extends JFrame implements WindowListener, PropertyC
|
|||
private JPanel buildControlToolbar() {
|
||||
JPanel controlPanel = new JPanel(new BorderLayout());
|
||||
controlPanel.add(buildPortsComboBox(), WEST);
|
||||
//TODO: Finish log playback stuff...
|
||||
//controlPanel.add(buildPlaybackControls(), CENTER);
|
||||
controlPanel.add(buildStatusIndicator(), EAST);
|
||||
return controlPanel;
|
||||
}
|
||||
|
||||
private Component buildPlaybackControls() {
|
||||
JButton playButton = new JButton("Play");
|
||||
playButton.addActionListener(new ActionListener() {
|
||||
public void actionPerformed(ActionEvent actionEvent) {
|
||||
ThreadUtil.runAsDaemon(new Runnable() {
|
||||
public void run() {
|
||||
PlaybackManagerImpl playbackManager = new PlaybackManagerImpl(ecuParams, liveDataUpdateHandler, graphUpdateHandler, dashboardUpdateHandler, mafUpdateHandler,
|
||||
TableUpdateHandler.getInstance());
|
||||
playbackManager.load(new File("foo.csv"));
|
||||
playbackManager.play();
|
||||
}
|
||||
});
|
||||
}
|
||||
});
|
||||
JPanel panel = new JPanel();
|
||||
panel.add(playButton);
|
||||
return panel;
|
||||
}
|
||||
|
||||
private Component buildLogToFileButton() {
|
||||
logToFileButton = new JToggleButton("Log to file");
|
||||
logToFileButton.setToolTipText("Start/stop file logging (F1)");
|
||||
|
|
|
@ -0,0 +1,19 @@
|
|||
package enginuity.logger.ecu.ui.playback;
|
||||
|
||||
import java.io.File;
|
||||
|
||||
public interface PlaybackManager {
|
||||
void load(File file);
|
||||
|
||||
void play();
|
||||
|
||||
void play(int speed);
|
||||
|
||||
void step(int increment);
|
||||
|
||||
void pause();
|
||||
|
||||
void stop();
|
||||
|
||||
void reset();
|
||||
}
|
|
@ -0,0 +1,64 @@
|
|||
package enginuity.logger.ecu.ui.playback;
|
||||
|
||||
import java.io.File;
|
||||
import java.util.List;
|
||||
import enginuity.logger.ecu.comms.query.Response;
|
||||
import enginuity.logger.ecu.comms.query.ResponseImpl;
|
||||
import enginuity.logger.ecu.definition.LoggerData;
|
||||
import enginuity.logger.ecu.ui.handler.DataUpdateHandler;
|
||||
import static enginuity.util.ThreadUtil.sleep;
|
||||
|
||||
//TODO: Finish me.
|
||||
public final class PlaybackManagerImpl implements PlaybackManager {
|
||||
private final List<? extends LoggerData> loggerDatas;
|
||||
private final DataUpdateHandler[] dataUpdateHandlers;
|
||||
|
||||
public PlaybackManagerImpl(List<? extends LoggerData> loggerDatas, DataUpdateHandler... dataUpdateHandlers) {
|
||||
this.loggerDatas = loggerDatas;
|
||||
this.dataUpdateHandlers = dataUpdateHandlers;
|
||||
}
|
||||
|
||||
public void load(File file) {
|
||||
// TODO: Finish me!
|
||||
for (DataUpdateHandler handler : dataUpdateHandlers) {
|
||||
handler.registerData(loggerDatas.get(10));
|
||||
handler.registerData(loggerDatas.get(20));
|
||||
handler.registerData(loggerDatas.get(30));
|
||||
}
|
||||
}
|
||||
|
||||
public void play() {
|
||||
double d = 0.0;
|
||||
while (true) {
|
||||
for (DataUpdateHandler handler : dataUpdateHandlers) {
|
||||
Response response = new ResponseImpl();
|
||||
response.setDataValue(loggerDatas.get(10), d);
|
||||
response.setDataValue(loggerDatas.get(20), d);
|
||||
response.setDataValue(loggerDatas.get(30), d);
|
||||
handler.handleDataUpdate(response);
|
||||
d += 100.0;
|
||||
}
|
||||
sleep(100L);
|
||||
}
|
||||
}
|
||||
|
||||
public void play(int speed) {
|
||||
throw new UnsupportedOperationException();
|
||||
}
|
||||
|
||||
public void step(int increment) {
|
||||
throw new UnsupportedOperationException();
|
||||
}
|
||||
|
||||
public void pause() {
|
||||
throw new UnsupportedOperationException();
|
||||
}
|
||||
|
||||
public void stop() {
|
||||
throw new UnsupportedOperationException();
|
||||
}
|
||||
|
||||
public void reset() {
|
||||
throw new UnsupportedOperationException();
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue