Update to Logger to provide Switch indexing based on the ECU init string.

git-svn-id: https://svn2.assembla.com/svn/romraider/trunk@336 38686702-15cf-42e4-a595-3071df8bf5ea
This commit is contained in:
Dale Schultz 2011-09-20 21:06:52 +00:00
parent 62516b605b
commit 3d682059a1
2 changed files with 32 additions and 10 deletions

View File

@ -199,6 +199,7 @@ public final class EcuLogger extends AbstractFrame implements MessageListener {
private static final byte ECU_ID = (byte) 0x10;
private static final byte TCU_ID = (byte) 0x18;
private static String target = "ECU";
private static String loadResult = "";
private ECUEditor ecuEditor;
private Settings settings;
private LoggerController controller;
@ -288,10 +289,10 @@ public final class EcuLogger extends AbstractFrame implements MessageListener {
public void run() {
String calId = getCalId(ecuId);
String carString = getCarString(ecuId);
LOGGER.info("CAL ID: " + calId + "Car: " + carString);
LOGGER.info("CAL ID: " + calId + ", Car: " + carString);
calIdLabel.setText(buildEcuInfoLabelText(CAL_ID_LABEL, calId));
ecuIdLabel.setText(buildEcuInfoLabelText(target + " ID", ecuId));
LOGGER.info("Loading logger config for new " + target + " ID:" + ecuId + "...");
loadResult = String.format("Loading logger config for new %s ID: %s, ", target, ecuId);
loadLoggerParams();
loadUserProfile(settings.getLoggerProfileFilePath());
}
@ -443,8 +444,10 @@ public final class EcuLogger extends AbstractFrame implements MessageListener {
addConvertorUpdateListeners(ecuParams);
loadEcuParams(ecuParams);
loadEcuSwitches(dataLoader.getEcuSwitches());
initFileLoggingController(dataLoader.getFileLoggingControllerSwitch());
if (target.equals("ECU")) initFileLoggingController(dataLoader.getFileLoggingControllerSwitch());
settings.setLoggerConnectionProperties(dataLoader.getConnectionProperties());
loadResult = String.format("%sloaded %d parameters, %d switches.",loadResult, ecuParams.size(), dataLoader.getEcuSwitches().size());
LOGGER.info(loadResult);
} catch (ConfigurationException cfe) {
reportError(cfe);
showMissingConfigDialog();

View File

@ -88,6 +88,7 @@ public final class LoggerDefinitionHandler extends DefaultHandler {
private static final String ATTR_GAUGE_MIN = "gauge_min";
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 final String protocol;
private final String fileLoggingControllerSwitchId;
private final EcuInit ecuInit;
@ -118,6 +119,7 @@ public final class LoggerDefinitionHandler extends DefaultHandler {
private String conversionFormat;
private String conversionStorageType;
private GaugeMinMax conversionGauge;
private String target;
public LoggerDefinitionHandler(String protocol, String fileLoggingControllerSwitchId, EcuInit ecuInit) {
checkNotNullOrEmpty(protocol, "protocol");
@ -149,6 +151,7 @@ public final class LoggerDefinitionHandler extends DefaultHandler {
desc = attributes.getValue(ATTR_DESC);
ecuByteIndex = attributes.getValue(ATTR_ECUBYTEINDEX);
ecuBit = attributes.getValue(ATTR_ECUBIT);
target = attributes.getValue(ATTR_TARGET);
resetConvertorLists();
} else if (TAG_ADDRESS.equals(qName)) {
String length = attributes.getValue(ATTR_LENGTH);
@ -177,18 +180,23 @@ public final class LoggerDefinitionHandler extends DefaultHandler {
id = attributes.getValue(ATTR_ID);
name = attributes.getValue(ATTR_NAME);
desc = attributes.getValue(ATTR_DESC);
ecuByteIndex = attributes.getValue(ATTR_ECUBYTEINDEX);
ecuBit = attributes.getValue(ATTR_BIT);
target = attributes.getValue(ATTR_TARGET);
address = new EcuAddressImpl(attributes.getValue(ATTR_BYTE), 1, Integer.valueOf(attributes.getValue(ATTR_BIT)));
EcuDataConvertor[] convertors = new EcuDataConvertor[]{new EcuSwitchConvertorImpl(address.getBit())};
EcuSwitch ecuSwitch = new EcuSwitchImpl(id, name, desc, address, convertors);
switches.add(ecuSwitch);
ecuDataMap.put(ecuSwitch.getId(), ecuSwitch);
if (id.equalsIgnoreCase(fileLoggingControllerSwitchId)) {
fileLoggingControllerSwitch = new EcuSwitchImpl(id, name, desc, address, convertors);
}
resetConvertorLists();
// EcuDataConvertor[] convertors = new EcuDataConvertor[]{new EcuSwitchConvertorImpl(address.getBit())};
// EcuSwitch ecuSwitch = new EcuSwitchImpl(id, name, desc, address, convertors);
// switches.add(ecuSwitch);
// ecuDataMap.put(ecuSwitch.getId(), ecuSwitch);
// if (id.equalsIgnoreCase(fileLoggingControllerSwitchId)) {
// fileLoggingControllerSwitch = new EcuSwitchImpl(id, name, desc, address, convertors);
// }
} else if (TAG_ECUPARAM.equals(qName)) {
id = attributes.getValue(ATTR_ID);
name = attributes.getValue(ATTR_NAME);
desc = attributes.getValue(ATTR_DESC);
target = attributes.getValue(ATTR_TARGET);
resetConvertorLists();
ecuAddressMap = new HashMap<String, EcuAddress>();
derived = false;
@ -260,6 +268,17 @@ public final class LoggerDefinitionHandler extends DefaultHandler {
for (String ecuId : ecuIds.split(",")) {
ecuAddressMap.put(ecuId, address);
}
} else if (TAG_SWITCH.equals(qName)) {
if (ecuByteIndex == null || ecuBit == null || ecuInit == null || isSupportedParameter(ecuInit,
ecuByteIndex, ecuBit)) {
EcuDataConvertor[] convertors = new EcuDataConvertor[]{new EcuSwitchConvertorImpl(address.getBit())};
EcuSwitch ecuSwitch = new EcuSwitchImpl(id, name, desc, address, convertors);
switches.add(ecuSwitch);
ecuDataMap.put(ecuSwitch.getId(), ecuSwitch);
if (id.equalsIgnoreCase(fileLoggingControllerSwitchId)) {
fileLoggingControllerSwitch = new EcuSwitchImpl(id, name, desc, address, convertors);
}
}
}
}
}