Add parsing for new NCS protocol and switch attributes

This commit is contained in:
Dale Schultz 2018-12-19 21:10:52 -05:00
parent 7ed53d79cc
commit 0fd93971d3
No known key found for this signature in database
GPG Key ID: EA2C8AD6CB5C2AF2
1 changed files with 20 additions and 1 deletions

View File

@ -42,6 +42,7 @@ import org.xml.sax.helpers.DefaultHandler;
import com.romraider.Settings;
import com.romraider.io.connection.ConnectionProperties;
import com.romraider.io.connection.KwpSerialConnectionProperties;
import com.romraider.io.connection.SerialConnectionProperties;
import com.romraider.logger.ecu.comms.query.EcuInit;
import com.romraider.logger.ecu.definition.EcuAddress;
@ -112,6 +113,9 @@ public final class LoggerDefinitionHandler extends DefaultHandler {
private static final String ATTR_ADDRESS = "address";
private static final String ATTR_TESTER = "tester";
private static final String ATTR_FASTPOLL = "fastpoll";
private static final String ATTR_P1_MAX = "p1_max";
private static final String ATTR_P3_MIN = "p3_min";
private static final String ATTR_P4_MIN = "p4_min";
private final String protocol;
private final String fileLoggingControllerSwitchId;
private final EcuInit ecuInit;
@ -180,10 +184,19 @@ public final class LoggerDefinitionHandler extends DefaultHandler {
protocolId = attributes.getValue(ATTR_ID);
parseProtocol = protocol.equalsIgnoreCase(protocolId);
if (parseProtocol) {
if ("NCS".equalsIgnoreCase(protocolId)) {
connectionProperties = new KwpSerialConnectionProperties(Integer.parseInt(attributes.getValue(ATTR_BAUD)),
Integer.parseInt(attributes.getValue(ATTR_DATABITS)), Integer.parseInt(attributes.getValue(ATTR_STOPBITS)),
Integer.parseInt(attributes.getValue(ATTR_PARITY)), Integer.parseInt(attributes.getValue(ATTR_CONNECT_TIMEOUT)),
Integer.parseInt(attributes.getValue(ATTR_SEND_TIMEOUT)), Integer.parseInt(attributes.getValue(ATTR_P1_MAX)),
Integer.parseInt(attributes.getValue(ATTR_P3_MIN)), Integer.parseInt(attributes.getValue(ATTR_P4_MIN)));
}
else {
connectionProperties = new SerialConnectionProperties(Integer.parseInt(attributes.getValue(ATTR_BAUD)),
Integer.parseInt(attributes.getValue(ATTR_DATABITS)), Integer.parseInt(attributes.getValue(ATTR_STOPBITS)),
Integer.parseInt(attributes.getValue(ATTR_PARITY)), Integer.parseInt(attributes.getValue(ATTR_CONNECT_TIMEOUT)),
Integer.parseInt(attributes.getValue(ATTR_SEND_TIMEOUT)));
}
}
transportMap = new HashMap<Transport, Collection<Module>>();
} else if (TAG_TRANSPORT.equals(qName)) {
@ -260,6 +273,8 @@ public final class LoggerDefinitionHandler extends DefaultHandler {
group = attributes.getValue(ATTR_GROUP);
subgroup = attributes.getValue(ATTR_SUBGROUP);
groupsize = attributes.getValue(ATTR_GROUPSIZE);
conversionStorageType = attributes.getValue(ATTR_STORAGETYPE);
conversionUnits = attributes.getValue(ATTR_UNITS);
target = attributes.getValue(ATTR_TARGET);
address = new EcuAddressImpl(attributes.getValue(ATTR_BYTE), 1, Integer.valueOf(attributes.getValue(ATTR_BIT)));
resetLists();
@ -367,7 +382,11 @@ public final class LoggerDefinitionHandler extends DefaultHandler {
} 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())};
EcuDataConvertor[] convertors =
new EcuDataConvertor[]{new EcuSwitchConvertorImpl(
address.getBit(),
conversionStorageType,
conversionUnits)};
EcuSwitch ecuSwitch = new EcuSwitchImpl(
id, name, desc, address,
group, subgroup, groupsize, convertors);