mirror of https://github.com/rusefi/RomRaider.git
logger connection handling enhancements
git-svn-id: http://svn.3splooges.com/romraider-arch/trunk@554 d2e2e1cd-ba16-0410-be16-b7c4453c7c2d
This commit is contained in:
parent
654083b147
commit
dc82ba910b
|
@ -47,6 +47,12 @@
|
||||||
|
|
||||||
<!ELEMENT protocol ( parameters?, switches?, ecuparams? ) >
|
<!ELEMENT protocol ( parameters?, switches?, ecuparams? ) >
|
||||||
<!ATTLIST protocol id ID #REQUIRED >
|
<!ATTLIST protocol id ID #REQUIRED >
|
||||||
|
<!ATTLIST protocol baud CDATA #REQUIRED >
|
||||||
|
<!ATTLIST protocol databits CDATA #REQUIRED >
|
||||||
|
<!ATTLIST protocol stopbits CDATA #REQUIRED >
|
||||||
|
<!ATTLIST protocol parity CDATA #REQUIRED >
|
||||||
|
<!ATTLIST protocol connect_timeout CDATA #REQUIRED >
|
||||||
|
<!ATTLIST protocol send_timeout CDATA #REQUIRED >
|
||||||
|
|
||||||
<!ELEMENT protocols ( protocol+ ) >
|
<!ELEMENT protocols ( protocol+ ) >
|
||||||
|
|
||||||
|
|
|
@ -3,7 +3,7 @@
|
||||||
|
|
||||||
<logger>
|
<logger>
|
||||||
<protocols>
|
<protocols>
|
||||||
<protocol id="SSM">
|
<protocol id="SSM" baud="4800" databits="8" stopbits="1" parity="0" connect_timeout="2000" send_timeout="55">
|
||||||
|
|
||||||
<parameters>
|
<parameters>
|
||||||
|
|
||||||
|
|
|
@ -21,9 +21,13 @@
|
||||||
|
|
||||||
package enginuity;
|
package enginuity;
|
||||||
|
|
||||||
|
import enginuity.io.connection.ConnectionProperties;
|
||||||
import static enginuity.util.ParamChecker.checkNotNullOrEmpty;
|
import static enginuity.util.ParamChecker.checkNotNullOrEmpty;
|
||||||
|
|
||||||
import java.awt.*;
|
import java.awt.Color;
|
||||||
|
import java.awt.Dimension;
|
||||||
|
import java.awt.Font;
|
||||||
|
import java.awt.Point;
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
import java.io.Serializable;
|
import java.io.Serializable;
|
||||||
import java.util.Vector;
|
import java.util.Vector;
|
||||||
|
@ -74,6 +78,7 @@ public class Settings implements Serializable {
|
||||||
private Dimension loggerWindowSize = new Dimension(1000, 600);
|
private Dimension loggerWindowSize = new Dimension(1000, 600);
|
||||||
private Point loggerWindowLocation = new Point();
|
private Point loggerWindowLocation = new Point();
|
||||||
private boolean loggerWindowMaximized = false;
|
private boolean loggerWindowMaximized = false;
|
||||||
|
private ConnectionProperties loggerConnectionProperties;
|
||||||
|
|
||||||
|
|
||||||
public Settings() {
|
public Settings() {
|
||||||
|
@ -390,4 +395,11 @@ public class Settings implements Serializable {
|
||||||
this.fileLoggingAbsoluteTimestamp = fileLoggingAbsoluteTimestamp;
|
this.fileLoggingAbsoluteTimestamp = fileLoggingAbsoluteTimestamp;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public ConnectionProperties getLoggerConnectionProperties() {
|
||||||
|
return loggerConnectionProperties;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setLoggerConnectionProperties(ConnectionProperties loggerConnectionProperties) {
|
||||||
|
this.loggerConnectionProperties = loggerConnectionProperties;
|
||||||
|
}
|
||||||
}
|
}
|
|
@ -0,0 +1,57 @@
|
||||||
|
package enginuity.io.connection;
|
||||||
|
|
||||||
|
public final class ConnectionPropertiesImpl implements ConnectionProperties {
|
||||||
|
private final int baudRate;
|
||||||
|
private final int dataBits;
|
||||||
|
private final int stopBits;
|
||||||
|
private final int parity;
|
||||||
|
private final int connectTimeout;
|
||||||
|
private final int sendTimeout;
|
||||||
|
|
||||||
|
|
||||||
|
public ConnectionPropertiesImpl(int baudRate, int dataBits, int stopBits, int parity, int connectTimeout, int sendTimeout) {
|
||||||
|
this.baudRate = baudRate;
|
||||||
|
this.dataBits = dataBits;
|
||||||
|
this.stopBits = stopBits;
|
||||||
|
this.parity = parity;
|
||||||
|
this.connectTimeout = connectTimeout;
|
||||||
|
this.sendTimeout = sendTimeout;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getBaudRate() {
|
||||||
|
return baudRate;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getDataBits() {
|
||||||
|
return dataBits;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getStopBits() {
|
||||||
|
return stopBits;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getParity() {
|
||||||
|
return parity;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getConnectTimeout() {
|
||||||
|
return connectTimeout;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getSendTimeout() {
|
||||||
|
return sendTimeout;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String toString() {
|
||||||
|
StringBuilder builder = new StringBuilder();
|
||||||
|
builder.append(getClass().getSimpleName());
|
||||||
|
builder.append("[baudRate=").append(baudRate);
|
||||||
|
builder.append(", dataBits=").append(dataBits);
|
||||||
|
builder.append(", stopBits=").append(stopBits);
|
||||||
|
builder.append(", dataBits=").append(dataBits);
|
||||||
|
builder.append(", parity=").append(parity);
|
||||||
|
builder.append(", connectTimeout=").append(connectTimeout);
|
||||||
|
builder.append(", sendTimeout=").append(sendTimeout).append("]");
|
||||||
|
return builder.toString();
|
||||||
|
}
|
||||||
|
}
|
|
@ -21,7 +21,6 @@
|
||||||
|
|
||||||
package enginuity.io.protocol;
|
package enginuity.io.protocol;
|
||||||
|
|
||||||
import enginuity.io.connection.ConnectionProperties;
|
|
||||||
import enginuity.logger.comms.query.EcuInit;
|
import enginuity.logger.comms.query.EcuInit;
|
||||||
import enginuity.logger.exception.InvalidResponseException;
|
import enginuity.logger.exception.InvalidResponseException;
|
||||||
|
|
||||||
|
@ -39,6 +38,4 @@ public interface Protocol {
|
||||||
|
|
||||||
EcuInit parseEcuInitResponse(byte[] response);
|
EcuInit parseEcuInitResponse(byte[] response);
|
||||||
|
|
||||||
ConnectionProperties getConnectionProperties();
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -157,6 +157,7 @@ public final class EcuLogger extends JFrame implements WindowListener, PropertyC
|
||||||
public EcuLogger(Settings settings) {
|
public EcuLogger(Settings settings) {
|
||||||
super(ENGINUITY_ECU_LOGGER_TITLE);
|
super(ENGINUITY_ECU_LOGGER_TITLE);
|
||||||
bootstrap(settings);
|
bootstrap(settings);
|
||||||
|
loadLoggerConfig();
|
||||||
initControllerListeners();
|
initControllerListeners();
|
||||||
initUserInterface();
|
initUserInterface();
|
||||||
initDataUpdateHandlers();
|
initDataUpdateHandlers();
|
||||||
|
@ -251,6 +252,7 @@ public final class EcuLogger extends JFrame implements WindowListener, PropertyC
|
||||||
loadEcuParams(ecuParams);
|
loadEcuParams(ecuParams);
|
||||||
loadEcuSwitches(dataLoader.getEcuSwitches());
|
loadEcuSwitches(dataLoader.getEcuSwitches());
|
||||||
initFileLoggingController(dataLoader.getFileLoggingControllerSwitch());
|
initFileLoggingController(dataLoader.getFileLoggingControllerSwitch());
|
||||||
|
settings.setLoggerConnectionProperties(dataLoader.getConnectionProperties());
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
reportError(e);
|
reportError(e);
|
||||||
}
|
}
|
||||||
|
|
|
@ -41,5 +41,4 @@ public interface LoggerController {
|
||||||
void stop();
|
void stop();
|
||||||
|
|
||||||
void addListener(StatusChangeListener listener);
|
void addListener(StatusChangeListener listener);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -21,6 +21,7 @@
|
||||||
|
|
||||||
package enginuity.logger.comms.io.connection;
|
package enginuity.logger.comms.io.connection;
|
||||||
|
|
||||||
|
import enginuity.io.connection.ConnectionProperties;
|
||||||
import enginuity.logger.exception.UnsupportedProtocolException;
|
import enginuity.logger.exception.UnsupportedProtocolException;
|
||||||
|
|
||||||
public final class LoggerConnectionFactory {
|
public final class LoggerConnectionFactory {
|
||||||
|
@ -33,10 +34,10 @@ public final class LoggerConnectionFactory {
|
||||||
private LoggerConnectionFactory() {
|
private LoggerConnectionFactory() {
|
||||||
}
|
}
|
||||||
|
|
||||||
public LoggerConnection getLoggerConnection(String protocolName, String portName) {
|
public LoggerConnection getLoggerConnection(String protocolName, String portName, ConnectionProperties connectionProperties) {
|
||||||
try {
|
try {
|
||||||
Class<?> cls = Class.forName(this.getClass().getPackage().getName() + "." + protocolName + "LoggerConnection");
|
Class<?> cls = Class.forName(this.getClass().getPackage().getName() + "." + protocolName + "LoggerConnection");
|
||||||
return (LoggerConnection) cls.getConstructor(String.class).newInstance(portName);
|
return (LoggerConnection) cls.getConstructor(String.class, ConnectionProperties.class).newInstance(portName, connectionProperties);
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
throw new UnsupportedProtocolException("'" + protocolName + "' is not a supported protocol", e);
|
throw new UnsupportedProtocolException("'" + protocolName + "' is not a supported protocol", e);
|
||||||
}
|
}
|
||||||
|
|
|
@ -21,6 +21,7 @@
|
||||||
|
|
||||||
package enginuity.logger.comms.io.connection;
|
package enginuity.logger.comms.io.connection;
|
||||||
|
|
||||||
|
import enginuity.io.connection.ConnectionProperties;
|
||||||
import enginuity.io.connection.SerialConnection;
|
import enginuity.io.connection.SerialConnection;
|
||||||
import enginuity.io.connection.SerialConnectionImpl;
|
import enginuity.io.connection.SerialConnectionImpl;
|
||||||
import enginuity.logger.comms.io.protocol.LoggerProtocol;
|
import enginuity.logger.comms.io.protocol.LoggerProtocol;
|
||||||
|
@ -28,6 +29,8 @@ import enginuity.logger.comms.io.protocol.SSMLoggerProtocol;
|
||||||
import enginuity.logger.comms.query.RegisteredQuery;
|
import enginuity.logger.comms.query.RegisteredQuery;
|
||||||
import enginuity.logger.exception.SerialCommunicationException;
|
import enginuity.logger.exception.SerialCommunicationException;
|
||||||
import static enginuity.util.HexUtil.asHex;
|
import static enginuity.util.HexUtil.asHex;
|
||||||
|
import static enginuity.util.ParamChecker.checkNotNull;
|
||||||
|
import static enginuity.util.ParamChecker.checkNotNullOrEmpty;
|
||||||
import static enginuity.util.ThreadUtil.sleep;
|
import static enginuity.util.ThreadUtil.sleep;
|
||||||
|
|
||||||
import java.util.Collection;
|
import java.util.Collection;
|
||||||
|
@ -36,12 +39,14 @@ public final class SSMLoggerConnection implements LoggerConnection {
|
||||||
private LoggerProtocol protocol;
|
private LoggerProtocol protocol;
|
||||||
private SerialConnection serialConnection;
|
private SerialConnection serialConnection;
|
||||||
|
|
||||||
public SSMLoggerConnection(String portName) {
|
public SSMLoggerConnection(String portName, ConnectionProperties connectionProperties) {
|
||||||
|
checkNotNullOrEmpty(portName, "portName");
|
||||||
|
checkNotNull(connectionProperties);
|
||||||
protocol = new SSMLoggerProtocol();
|
protocol = new SSMLoggerProtocol();
|
||||||
|
|
||||||
// Use TestSSMConnectionImpl for testing!!
|
// Use TestSSMConnectionImpl for testing!!
|
||||||
serialConnection = new SerialConnectionImpl(protocol.getConnectionProperties(), portName);
|
serialConnection = new SerialConnectionImpl(connectionProperties, portName);
|
||||||
// serialConnection = new TestSSMConnectionImpl(protocol.getConnectionProperties(), portName);
|
// serialConnection = new TestSSMConnectionImpl(connectionProperties, portName);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void sendAddressReads(Collection<RegisteredQuery> queries) {
|
public void sendAddressReads(Collection<RegisteredQuery> queries) {
|
||||||
|
|
|
@ -21,7 +21,6 @@
|
||||||
|
|
||||||
package enginuity.logger.comms.io.protocol;
|
package enginuity.logger.comms.io.protocol;
|
||||||
|
|
||||||
import enginuity.io.connection.ConnectionProperties;
|
|
||||||
import enginuity.logger.comms.query.RegisteredQuery;
|
import enginuity.logger.comms.query.RegisteredQuery;
|
||||||
|
|
||||||
import java.util.Collection;
|
import java.util.Collection;
|
||||||
|
@ -35,6 +34,4 @@ public interface LoggerProtocol {
|
||||||
byte[] preprocessResponse(byte[] request, byte[] response);
|
byte[] preprocessResponse(byte[] request, byte[] response);
|
||||||
|
|
||||||
void processReadAddressResponses(Collection<RegisteredQuery> queries, byte[] response);
|
void processReadAddressResponses(Collection<RegisteredQuery> queries, byte[] response);
|
||||||
|
|
||||||
ConnectionProperties getConnectionProperties();
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -21,7 +21,6 @@
|
||||||
|
|
||||||
package enginuity.logger.comms.io.protocol;
|
package enginuity.logger.comms.io.protocol;
|
||||||
|
|
||||||
import enginuity.io.connection.ConnectionProperties;
|
|
||||||
import enginuity.io.protocol.Protocol;
|
import enginuity.io.protocol.Protocol;
|
||||||
import enginuity.io.protocol.SSMProtocol;
|
import enginuity.io.protocol.SSMProtocol;
|
||||||
import static enginuity.io.protocol.SSMProtocol.ADDRESS_SIZE;
|
import static enginuity.io.protocol.SSMProtocol.ADDRESS_SIZE;
|
||||||
|
@ -82,10 +81,6 @@ public final class SSMLoggerProtocol implements LoggerProtocol {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public ConnectionProperties getConnectionProperties() {
|
|
||||||
return protocol.getConnectionProperties();
|
|
||||||
}
|
|
||||||
|
|
||||||
private Collection<RegisteredQuery> filterDuplicates(Collection<RegisteredQuery> queries) {
|
private Collection<RegisteredQuery> filterDuplicates(Collection<RegisteredQuery> queries) {
|
||||||
Collection<RegisteredQuery> filteredQueries = new ArrayList<RegisteredQuery>();
|
Collection<RegisteredQuery> filteredQueries = new ArrayList<RegisteredQuery>();
|
||||||
for (RegisteredQuery query : queries) {
|
for (RegisteredQuery query : queries) {
|
||||||
|
|
|
@ -38,7 +38,7 @@ import static enginuity.util.HexUtil.asHex;
|
||||||
import static enginuity.util.ParamChecker.checkNotNull;
|
import static enginuity.util.ParamChecker.checkNotNull;
|
||||||
import static enginuity.util.ThreadUtil.sleep;
|
import static enginuity.util.ThreadUtil.sleep;
|
||||||
|
|
||||||
import javax.swing.*;
|
import javax.swing.SwingUtilities;
|
||||||
import java.text.DecimalFormat;
|
import java.text.DecimalFormat;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import static java.util.Collections.synchronizedList;
|
import static java.util.Collections.synchronizedList;
|
||||||
|
@ -119,7 +119,7 @@ public final class QueryManagerImpl implements QueryManager {
|
||||||
private boolean doEcuInit() {
|
private boolean doEcuInit() {
|
||||||
try {
|
try {
|
||||||
Protocol protocol = ProtocolFactory.getInstance().getProtocol(settings.getLoggerProtocol());
|
Protocol protocol = ProtocolFactory.getInstance().getProtocol(settings.getLoggerProtocol());
|
||||||
EcuConnection ecuConnection = new EcuConnectionImpl(protocol.getConnectionProperties(), settings.getLoggerPort());
|
EcuConnection ecuConnection = new EcuConnectionImpl(settings.getLoggerConnectionProperties(), settings.getLoggerPort());
|
||||||
try {
|
try {
|
||||||
messageListener.reportMessage("Sending ECU Init...");
|
messageListener.reportMessage("Sending ECU Init...");
|
||||||
byte[] request = protocol.constructEcuInitRequest();
|
byte[] request = protocol.constructEcuInitRequest();
|
||||||
|
|
|
@ -42,8 +42,10 @@ public final class TransmissionManagerImpl implements TransmissionManager {
|
||||||
|
|
||||||
public void start() {
|
public void start() {
|
||||||
try {
|
try {
|
||||||
connection = LoggerConnectionFactory.getInstance().getLoggerConnection(settings.getLoggerProtocol(), settings.getLoggerPort());
|
connection = LoggerConnectionFactory.getInstance().getLoggerConnection(settings.getLoggerProtocol(), settings.getLoggerPort(),
|
||||||
System.out.println("Connected to: " + settings.getLoggerPort() + "; using protocol: " + settings.getLoggerProtocol());
|
settings.getLoggerConnectionProperties());
|
||||||
|
System.out.println("Connected to: " + settings.getLoggerPort() + "; using protocol: " + settings.getLoggerProtocol() + "; conn props: "
|
||||||
|
+ settings.getLoggerConnectionProperties());
|
||||||
} catch (Throwable e) {
|
} catch (Throwable e) {
|
||||||
stop();
|
stop();
|
||||||
throw new SerialCommunicationException("Unable to connect to port: " + settings.getLoggerPort() + ", with protocol: "
|
throw new SerialCommunicationException("Unable to connect to port: " + settings.getLoggerPort() + ", with protocol: "
|
||||||
|
|
|
@ -21,6 +21,7 @@
|
||||||
|
|
||||||
package enginuity.logger.definition;
|
package enginuity.logger.definition;
|
||||||
|
|
||||||
|
import enginuity.io.connection.ConnectionProperties;
|
||||||
import enginuity.logger.comms.query.EcuInit;
|
import enginuity.logger.comms.query.EcuInit;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
@ -35,4 +36,6 @@ public interface EcuDataLoader {
|
||||||
List<EcuSwitch> getEcuSwitches();
|
List<EcuSwitch> getEcuSwitches();
|
||||||
|
|
||||||
EcuSwitch getFileLoggingControllerSwitch();
|
EcuSwitch getFileLoggingControllerSwitch();
|
||||||
|
|
||||||
|
ConnectionProperties getConnectionProperties();
|
||||||
}
|
}
|
||||||
|
|
|
@ -21,6 +21,7 @@
|
||||||
|
|
||||||
package enginuity.logger.definition;
|
package enginuity.logger.definition;
|
||||||
|
|
||||||
|
import enginuity.io.connection.ConnectionProperties;
|
||||||
import enginuity.logger.comms.query.EcuInit;
|
import enginuity.logger.comms.query.EcuInit;
|
||||||
import enginuity.logger.definition.xml.LoggerDefinitionHandler;
|
import enginuity.logger.definition.xml.LoggerDefinitionHandler;
|
||||||
import enginuity.logger.exception.ConfigurationException;
|
import enginuity.logger.exception.ConfigurationException;
|
||||||
|
@ -38,6 +39,7 @@ public final class EcuDataLoaderImpl implements EcuDataLoader {
|
||||||
private List<EcuParameter> ecuParameters = new ArrayList<EcuParameter>();
|
private List<EcuParameter> ecuParameters = new ArrayList<EcuParameter>();
|
||||||
private List<EcuSwitch> ecuSwitches = new ArrayList<EcuSwitch>();
|
private List<EcuSwitch> ecuSwitches = new ArrayList<EcuSwitch>();
|
||||||
private EcuSwitch fileLoggingControllerSwitch;
|
private EcuSwitch fileLoggingControllerSwitch;
|
||||||
|
private ConnectionProperties connectionProperties;
|
||||||
|
|
||||||
public void loadFromXml(String loggerConfigFilePath, String protocol, String fileLoggingControllerSwitchId, EcuInit ecuInit) {
|
public void loadFromXml(String loggerConfigFilePath, String protocol, String fileLoggingControllerSwitchId, EcuInit ecuInit) {
|
||||||
checkNotNullOrEmpty(loggerConfigFilePath, "loggerConfigFilePath");
|
checkNotNullOrEmpty(loggerConfigFilePath, "loggerConfigFilePath");
|
||||||
|
@ -51,6 +53,7 @@ public final class EcuDataLoaderImpl implements EcuDataLoader {
|
||||||
ecuParameters = handler.getEcuParameters();
|
ecuParameters = handler.getEcuParameters();
|
||||||
ecuSwitches = handler.getEcuSwitches();
|
ecuSwitches = handler.getEcuSwitches();
|
||||||
fileLoggingControllerSwitch = handler.getFileLoggingControllerSwitch();
|
fileLoggingControllerSwitch = handler.getFileLoggingControllerSwitch();
|
||||||
|
connectionProperties = handler.getConnectionProperties();
|
||||||
} finally {
|
} finally {
|
||||||
inputStream.close();
|
inputStream.close();
|
||||||
}
|
}
|
||||||
|
@ -70,4 +73,8 @@ public final class EcuDataLoaderImpl implements EcuDataLoader {
|
||||||
public EcuSwitch getFileLoggingControllerSwitch() {
|
public EcuSwitch getFileLoggingControllerSwitch() {
|
||||||
return fileLoggingControllerSwitch;
|
return fileLoggingControllerSwitch;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public ConnectionProperties getConnectionProperties() {
|
||||||
|
return connectionProperties;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -21,6 +21,8 @@
|
||||||
|
|
||||||
package enginuity.logger.definition.xml;
|
package enginuity.logger.definition.xml;
|
||||||
|
|
||||||
|
import enginuity.io.connection.ConnectionProperties;
|
||||||
|
import enginuity.io.connection.ConnectionPropertiesImpl;
|
||||||
import enginuity.logger.comms.query.EcuInit;
|
import enginuity.logger.comms.query.EcuInit;
|
||||||
import enginuity.logger.definition.EcuData;
|
import enginuity.logger.definition.EcuData;
|
||||||
import enginuity.logger.definition.EcuDataConvertor;
|
import enginuity.logger.definition.EcuDataConvertor;
|
||||||
|
@ -72,12 +74,19 @@ public final class LoggerDefinitionHandler extends DefaultHandler {
|
||||||
private static final String ATTR_BIT = "bit";
|
private static final String ATTR_BIT = "bit";
|
||||||
private static final String ATTR_PARAMETER = "parameter";
|
private static final String ATTR_PARAMETER = "parameter";
|
||||||
private static final String ATTR_STORAGETYPE = "storagetype";
|
private static final String ATTR_STORAGETYPE = "storagetype";
|
||||||
|
private static final String ATTR_BAUD = "baud";
|
||||||
|
private static final String ATTR_DATABITS = "databits";
|
||||||
|
private static final String ATTR_STOPBITS = "stopbits";
|
||||||
|
private static final String ATTR_PARITY = "parity";
|
||||||
|
private static final String ATTR_CONNECT_TIMEOUT = "connect_timeout";
|
||||||
|
private static final String ATTR_SEND_TIMEOUT = "send_timeout";
|
||||||
private final String protocol;
|
private final String protocol;
|
||||||
private final String fileLoggingControllerSwitchId;
|
private final String fileLoggingControllerSwitchId;
|
||||||
private final EcuInit ecuInit;
|
private final EcuInit ecuInit;
|
||||||
private List<EcuParameter> params;
|
private List<EcuParameter> params;
|
||||||
private List<EcuSwitch> switches;
|
private List<EcuSwitch> switches;
|
||||||
private EcuSwitch fileLoggingControllerSwitch;
|
private EcuSwitch fileLoggingControllerSwitch;
|
||||||
|
private ConnectionProperties connectionProperties;
|
||||||
private Map<String, EcuData> ecuDataMap;
|
private Map<String, EcuData> ecuDataMap;
|
||||||
private String id;
|
private String id;
|
||||||
private String name;
|
private String name;
|
||||||
|
@ -113,6 +122,12 @@ public final class LoggerDefinitionHandler extends DefaultHandler {
|
||||||
public void startElement(String uri, String localName, String qName, Attributes attributes) {
|
public void startElement(String uri, String localName, String qName, Attributes attributes) {
|
||||||
if (TAG_PROTOCOL.equals(qName)) {
|
if (TAG_PROTOCOL.equals(qName)) {
|
||||||
parseProtocol = protocol.equalsIgnoreCase(attributes.getValue(ATTR_ID));
|
parseProtocol = protocol.equalsIgnoreCase(attributes.getValue(ATTR_ID));
|
||||||
|
if (parseProtocol) {
|
||||||
|
connectionProperties = new ConnectionPropertiesImpl(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)));
|
||||||
|
}
|
||||||
} else if (parseProtocol) {
|
} else if (parseProtocol) {
|
||||||
if (TAG_PARAMETER.equals(qName)) {
|
if (TAG_PARAMETER.equals(qName)) {
|
||||||
id = attributes.getValue(ATTR_ID);
|
id = attributes.getValue(ATTR_ID);
|
||||||
|
@ -226,6 +241,22 @@ public final class LoggerDefinitionHandler extends DefaultHandler {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public List<EcuParameter> getEcuParameters() {
|
||||||
|
return params;
|
||||||
|
}
|
||||||
|
|
||||||
|
public List<EcuSwitch> getEcuSwitches() {
|
||||||
|
return switches;
|
||||||
|
}
|
||||||
|
|
||||||
|
public EcuSwitch getFileLoggingControllerSwitch() {
|
||||||
|
return fileLoggingControllerSwitch;
|
||||||
|
}
|
||||||
|
|
||||||
|
public ConnectionProperties getConnectionProperties() {
|
||||||
|
return connectionProperties;
|
||||||
|
}
|
||||||
|
|
||||||
private List<String> getAddressList(String startAddress, int addressLength) {
|
private List<String> getAddressList(String startAddress, int addressLength) {
|
||||||
List<String> addresses = new LinkedList<String>();
|
List<String> addresses = new LinkedList<String>();
|
||||||
int start = HexUtil.hexToInt(startAddress);
|
int start = HexUtil.hexToInt(startAddress);
|
||||||
|
@ -263,18 +294,6 @@ public final class LoggerDefinitionHandler extends DefaultHandler {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public List<EcuParameter> getEcuParameters() {
|
|
||||||
return params;
|
|
||||||
}
|
|
||||||
|
|
||||||
public List<EcuSwitch> getEcuSwitches() {
|
|
||||||
return switches;
|
|
||||||
}
|
|
||||||
|
|
||||||
public EcuSwitch getFileLoggingControllerSwitch() {
|
|
||||||
return fileLoggingControllerSwitch;
|
|
||||||
}
|
|
||||||
|
|
||||||
private String[] toArray(Set<String> set) {
|
private String[] toArray(Set<String> set) {
|
||||||
String[] addresses = new String[set.size()];
|
String[] addresses = new String[set.size()];
|
||||||
set.toArray(addresses);
|
set.toArray(addresses);
|
||||||
|
|
Loading…
Reference in New Issue