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 ECU_ID = (byte) 0x10;
private static final byte TCU_ID = (byte) 0x18; private static final byte TCU_ID = (byte) 0x18;
private static String target = "ECU"; private static String target = "ECU";
private static String loadResult = "";
private ECUEditor ecuEditor; private ECUEditor ecuEditor;
private Settings settings; private Settings settings;
private LoggerController controller; private LoggerController controller;
@ -288,10 +289,10 @@ public final class EcuLogger extends AbstractFrame implements MessageListener {
public void run() { public void run() {
String calId = getCalId(ecuId); String calId = getCalId(ecuId);
String carString = getCarString(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)); calIdLabel.setText(buildEcuInfoLabelText(CAL_ID_LABEL, calId));
ecuIdLabel.setText(buildEcuInfoLabelText(target + " ID", ecuId)); 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(); loadLoggerParams();
loadUserProfile(settings.getLoggerProfileFilePath()); loadUserProfile(settings.getLoggerProfileFilePath());
} }
@ -443,8 +444,10 @@ public final class EcuLogger extends AbstractFrame implements MessageListener {
addConvertorUpdateListeners(ecuParams); addConvertorUpdateListeners(ecuParams);
loadEcuParams(ecuParams); loadEcuParams(ecuParams);
loadEcuSwitches(dataLoader.getEcuSwitches()); loadEcuSwitches(dataLoader.getEcuSwitches());
initFileLoggingController(dataLoader.getFileLoggingControllerSwitch()); if (target.equals("ECU")) initFileLoggingController(dataLoader.getFileLoggingControllerSwitch());
settings.setLoggerConnectionProperties(dataLoader.getConnectionProperties()); settings.setLoggerConnectionProperties(dataLoader.getConnectionProperties());
loadResult = String.format("%sloaded %d parameters, %d switches.",loadResult, ecuParams.size(), dataLoader.getEcuSwitches().size());
LOGGER.info(loadResult);
} catch (ConfigurationException cfe) { } catch (ConfigurationException cfe) {
reportError(cfe); reportError(cfe);
showMissingConfigDialog(); 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_MIN = "gauge_min";
private static final String ATTR_GAUGE_MAX = "gauge_max"; private static final String ATTR_GAUGE_MAX = "gauge_max";
private static final String ATTR_GAUGE_STEP = "gauge_step"; private static final String ATTR_GAUGE_STEP = "gauge_step";
private static final String ATTR_TARGET = "target";
private final String protocol; private final String protocol;
private final String fileLoggingControllerSwitchId; private final String fileLoggingControllerSwitchId;
private final EcuInit ecuInit; private final EcuInit ecuInit;
@ -118,6 +119,7 @@ public final class LoggerDefinitionHandler extends DefaultHandler {
private String conversionFormat; private String conversionFormat;
private String conversionStorageType; private String conversionStorageType;
private GaugeMinMax conversionGauge; private GaugeMinMax conversionGauge;
private String target;
public LoggerDefinitionHandler(String protocol, String fileLoggingControllerSwitchId, EcuInit ecuInit) { public LoggerDefinitionHandler(String protocol, String fileLoggingControllerSwitchId, EcuInit ecuInit) {
checkNotNullOrEmpty(protocol, "protocol"); checkNotNullOrEmpty(protocol, "protocol");
@ -149,6 +151,7 @@ public final class LoggerDefinitionHandler extends DefaultHandler {
desc = attributes.getValue(ATTR_DESC); desc = attributes.getValue(ATTR_DESC);
ecuByteIndex = attributes.getValue(ATTR_ECUBYTEINDEX); ecuByteIndex = attributes.getValue(ATTR_ECUBYTEINDEX);
ecuBit = attributes.getValue(ATTR_ECUBIT); ecuBit = attributes.getValue(ATTR_ECUBIT);
target = attributes.getValue(ATTR_TARGET);
resetConvertorLists(); resetConvertorLists();
} else if (TAG_ADDRESS.equals(qName)) { } else if (TAG_ADDRESS.equals(qName)) {
String length = attributes.getValue(ATTR_LENGTH); String length = attributes.getValue(ATTR_LENGTH);
@ -177,18 +180,23 @@ public final class LoggerDefinitionHandler extends DefaultHandler {
id = attributes.getValue(ATTR_ID); id = attributes.getValue(ATTR_ID);
name = attributes.getValue(ATTR_NAME); name = attributes.getValue(ATTR_NAME);
desc = attributes.getValue(ATTR_DESC); 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))); address = new EcuAddressImpl(attributes.getValue(ATTR_BYTE), 1, Integer.valueOf(attributes.getValue(ATTR_BIT)));
EcuDataConvertor[] convertors = new EcuDataConvertor[]{new EcuSwitchConvertorImpl(address.getBit())}; resetConvertorLists();
EcuSwitch ecuSwitch = new EcuSwitchImpl(id, name, desc, address, convertors); // EcuDataConvertor[] convertors = new EcuDataConvertor[]{new EcuSwitchConvertorImpl(address.getBit())};
switches.add(ecuSwitch); // EcuSwitch ecuSwitch = new EcuSwitchImpl(id, name, desc, address, convertors);
ecuDataMap.put(ecuSwitch.getId(), ecuSwitch); // switches.add(ecuSwitch);
if (id.equalsIgnoreCase(fileLoggingControllerSwitchId)) { // ecuDataMap.put(ecuSwitch.getId(), ecuSwitch);
fileLoggingControllerSwitch = new EcuSwitchImpl(id, name, desc, address, convertors); // if (id.equalsIgnoreCase(fileLoggingControllerSwitchId)) {
} // fileLoggingControllerSwitch = new EcuSwitchImpl(id, name, desc, address, convertors);
// }
} else if (TAG_ECUPARAM.equals(qName)) { } else if (TAG_ECUPARAM.equals(qName)) {
id = attributes.getValue(ATTR_ID); id = attributes.getValue(ATTR_ID);
name = attributes.getValue(ATTR_NAME); name = attributes.getValue(ATTR_NAME);
desc = attributes.getValue(ATTR_DESC); desc = attributes.getValue(ATTR_DESC);
target = attributes.getValue(ATTR_TARGET);
resetConvertorLists(); resetConvertorLists();
ecuAddressMap = new HashMap<String, EcuAddress>(); ecuAddressMap = new HashMap<String, EcuAddress>();
derived = false; derived = false;
@ -260,6 +268,17 @@ public final class LoggerDefinitionHandler extends DefaultHandler {
for (String ecuId : ecuIds.split(",")) { for (String ecuId : ecuIds.split(",")) {
ecuAddressMap.put(ecuId, address); 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);
}
}
} }
} }
} }