Implement Diagnostic Trouble Codes parsing from logger definition.

This commit is contained in:
Dale Schultz 2013-05-27 17:38:27 -04:00
parent 1c9467704f
commit 2484deabfc
4 changed files with 37 additions and 2 deletions

View File

@ -272,6 +272,7 @@ public final class EcuLogger extends AbstractFrame implements MessageListener {
private final JLabel startText = new JLabel(" Initializing Logger...");
private final String HOME = System.getProperty("user.home");
private StatusIndicator statusIndicator;
private List<EcuSwitch> dtcodes = new ArrayList<EcuSwitch>();
public EcuLogger(Settings settings) {
super(ECU_LOGGER_TITLE);
@ -523,6 +524,7 @@ public final class EcuLogger extends AbstractFrame implements MessageListener {
addConvertorUpdateListeners(ecuParams);
loadEcuParams(ecuParams);
loadEcuSwitches(dataLoader.getEcuSwitches());
dtcodes = dataLoader.getEcuCodes();
if (target.equals("ECU")) initFileLoggingController(dataLoader.getFileLoggingControllerSwitch());
settings.setLoggerConnectionProperties(dataLoader.getConnectionProperties());
if (dataLoader.getDefVersion() == null) {

View File

@ -1,6 +1,6 @@
/*
* RomRaider Open-Source Tuning, Logging and Reflashing
* Copyright (C) 2006-2012 RomRaider.com
* Copyright (C) 2006-2013 RomRaider.com
*
* 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
@ -42,4 +42,6 @@ public interface EcuDataLoader {
ConnectionProperties getConnectionProperties();
String getDefVersion();
List<EcuSwitch> getEcuCodes();
}

View File

@ -1,6 +1,6 @@
/*
* RomRaider Open-Source Tuning, Logging and Reflashing
* Copyright (C) 2006-2012 RomRaider.com
* Copyright (C) 2006-2013 RomRaider.com
*
* 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
@ -42,6 +42,7 @@ public final class EcuDataLoaderImpl implements EcuDataLoader {
private Map<String, EcuDefinition> ecuDefinitionMap = new HashMap<String, EcuDefinition>();
private List<EcuParameter> ecuParameters = new ArrayList<EcuParameter>();
private List<EcuSwitch> ecuSwitches = new ArrayList<EcuSwitch>();
private List<EcuSwitch> dtcodes = new ArrayList<EcuSwitch>();
private EcuSwitch fileLoggingControllerSwitch;
private ConnectionProperties connectionProperties;
private String defVersion;
@ -81,6 +82,7 @@ public final class EcuDataLoaderImpl implements EcuDataLoader {
fileLoggingControllerSwitch = handler.getFileLoggingControllerSwitch();
connectionProperties = handler.getConnectionProperties();
defVersion = handler.getVersion();
dtcodes = handler.getEcuCodes();
} finally {
inputStream.close();
}
@ -117,4 +119,8 @@ public final class EcuDataLoaderImpl implements EcuDataLoader {
public String getDefVersion() {
return defVersion;
}
public List<EcuSwitch> getEcuCodes() {
return dtcodes;
}
}

View File

@ -67,6 +67,7 @@ public final class LoggerDefinitionHandler extends DefaultHandler {
private static final String TAG_SWITCH = "switch";
private static final String TAG_ECUPARAM = "ecuparam";
private static final String TAG_ECU = "ecu";
private static final String TAG_DTCODE = "dtcode";
private static final String ATTR_VERSION = "version";
private static final String ATTR_ID = "id";
private static final String ATTR_NAME = "name";
@ -93,11 +94,14 @@ public final class LoggerDefinitionHandler extends DefaultHandler {
private static final String ATTR_GAUGE_MAX = "gauge_max";
private static final String ATTR_GAUGE_STEP = "gauge_step";
private static final String ATTR_TARGET = "target";
private static final String ATTR_TMPADDR = "tmpaddr";
private static final String ATTR_MEMADDR = "memaddr";
private final String protocol;
private final String fileLoggingControllerSwitchId;
private final EcuInit ecuInit;
private List<EcuParameter> params = new ArrayList<EcuParameter>();
private List<EcuSwitch> switches = new ArrayList<EcuSwitch>();
private List<EcuSwitch> dtcodes = new ArrayList<EcuSwitch>();
private EcuSwitch fileLoggingControllerSwitch;
private ConnectionProperties connectionProperties;
private Map<String, EcuData> ecuDataMap;
@ -140,6 +144,7 @@ public final class LoggerDefinitionHandler extends DefaultHandler {
params = new ArrayList<EcuParameter>();
switches = new ArrayList<EcuSwitch>();
ecuDataMap = new HashMap<String, EcuData>();
dtcodes = new ArrayList<EcuSwitch>();
}
public void startElement(String uri, String localName, String qName, Attributes attributes) {
@ -208,6 +213,17 @@ public final class LoggerDefinitionHandler extends DefaultHandler {
derived = false;
} else if (TAG_ECU.equals(qName)) {
ecuIds = attributes.getValue(ATTR_ID);
} else if (TAG_DTCODE.equals(qName)) {
id = attributes.getValue(ATTR_ID);
name = attributes.getValue(ATTR_NAME);
desc = attributes.getValue(ATTR_DESC);
address = new EcuAddressImpl(
new String[] {attributes.getValue(ATTR_TMPADDR),
attributes.getValue(ATTR_MEMADDR)
},
1,
Integer.valueOf(attributes.getValue(ATTR_BIT)));
resetLists();
}
}
charBuffer = new StringBuilder();
@ -288,6 +304,11 @@ public final class LoggerDefinitionHandler extends DefaultHandler {
fileLoggingControllerSwitch = new EcuSwitchImpl(id, name, desc, address, convertors);
}
}
} else if (TAG_DTCODE.equals(qName)) {
final EcuDataConvertor[] convertors = new EcuDataConvertor[]{new EcuSwitchConvertorImpl(address.getBit())};
final EcuSwitch ecuSwitch = new EcuSwitchImpl(id, name, desc, address, convertors);
dtcodes.add(ecuSwitch);
ecuDataMap.put(ecuSwitch.getId(), ecuSwitch);
}
}
}
@ -312,6 +333,10 @@ public final class LoggerDefinitionHandler extends DefaultHandler {
return version;
}
public List<EcuSwitch> getEcuCodes() {
return dtcodes;
}
private void resetLists() {
addrStrings.clear();
EcuAddressCreated = false;