mirror of https://github.com/rusefi/RomRaider.git
Refactor classes to use new data length calculator class
This commit is contained in:
parent
55dbbebb10
commit
5a49b91b97
|
@ -39,6 +39,7 @@ import com.romraider.logger.ecu.comms.manager.PollingState;
|
||||||
import com.romraider.logger.ecu.comms.query.EcuInit;
|
import com.romraider.logger.ecu.comms.query.EcuInit;
|
||||||
import com.romraider.logger.ecu.comms.query.EcuInitCallback;
|
import com.romraider.logger.ecu.comms.query.EcuInitCallback;
|
||||||
import com.romraider.logger.ecu.comms.query.EcuQuery;
|
import com.romraider.logger.ecu.comms.query.EcuQuery;
|
||||||
|
import com.romraider.logger.ecu.comms.query.EcuQueryDataType;
|
||||||
import com.romraider.logger.ecu.definition.EcuData;
|
import com.romraider.logger.ecu.definition.EcuData;
|
||||||
import com.romraider.logger.ecu.definition.Module;
|
import com.romraider.logger.ecu.definition.Module;
|
||||||
|
|
||||||
|
@ -103,7 +104,7 @@ public final class DS2LoggerProtocol implements LoggerProtocolDS2 {
|
||||||
Collection<EcuQuery> filteredQueries = filterDuplicates(queries);
|
Collection<EcuQuery> filteredQueries = filterDuplicates(queries);
|
||||||
int numAddresses = 0;
|
int numAddresses = 0;
|
||||||
for (EcuQuery ecuQuery : filteredQueries) {
|
for (EcuQuery ecuQuery : filteredQueries) {
|
||||||
numAddresses += getDataLength(ecuQuery);
|
numAddresses += EcuQueryDataType.getDataLength(ecuQuery);
|
||||||
}
|
}
|
||||||
return new byte[requestSize + RESPONSE_NON_DATA_BYTES + numAddresses];
|
return new byte[requestSize + RESPONSE_NON_DATA_BYTES + numAddresses];
|
||||||
}
|
}
|
||||||
|
@ -164,7 +165,7 @@ public final class DS2LoggerProtocol implements LoggerProtocolDS2 {
|
||||||
|
|
||||||
int srcPos = 0;
|
int srcPos = 0;
|
||||||
for (EcuQuery filteredQuery : filteredQueries) {
|
for (EcuQuery filteredQuery : filteredQueries) {
|
||||||
byte[] bytes = new byte[getDataLength(filteredQuery)];
|
byte[] bytes = new byte[EcuQueryDataType.getDataLength(filteredQuery)];
|
||||||
if (((EcuData) filteredQuery.getLoggerData()).getGroupSize() > 0) {
|
if (((EcuData) filteredQuery.getLoggerData()).getGroupSize() > 0) {
|
||||||
srcPos = filteredQuery.getBytes()[0];
|
srcPos = filteredQuery.getBytes()[0];
|
||||||
}
|
}
|
||||||
|
@ -203,7 +204,7 @@ public final class DS2LoggerProtocol implements LoggerProtocolDS2 {
|
||||||
|
|
||||||
int srcPos = 0;
|
int srcPos = 0;
|
||||||
for (EcuQuery filteredQuery : filteredQueries) {
|
for (EcuQuery filteredQuery : filteredQueries) {
|
||||||
final byte[] bytes = new byte[getDataLength(filteredQuery)];
|
final byte[] bytes = new byte[EcuQueryDataType.getDataLength(filteredQuery)];
|
||||||
srcPos = Integer.parseInt(filteredQuery.getHex(), 16) - lowestAddress;
|
srcPos = Integer.parseInt(filteredQuery.getHex(), 16) - lowestAddress;
|
||||||
arraycopy(responseData, srcPos, bytes, 0, bytes.length);
|
arraycopy(responseData, srcPos, bytes, 0, bytes.length);
|
||||||
addressResults.put(filteredQuery.getHex(), bytes);
|
addressResults.put(filteredQuery.getHex(), bytes);
|
||||||
|
@ -262,35 +263,10 @@ public final class DS2LoggerProtocol implements LoggerProtocolDS2 {
|
||||||
return addresses;
|
return addresses;
|
||||||
}
|
}
|
||||||
|
|
||||||
private int getDataLength(EcuQuery ecuQuery) {
|
|
||||||
int dataLength = 1;
|
|
||||||
final String dataType =
|
|
||||||
ecuQuery.getLoggerData().getSelectedConvertor().getDataType().toLowerCase();
|
|
||||||
if (dataType.contains("int16")) {
|
|
||||||
dataLength = 2;
|
|
||||||
}
|
|
||||||
else if (dataType.contains("int32") ||
|
|
||||||
dataType.contains("float")) {
|
|
||||||
dataLength = 4;
|
|
||||||
}
|
|
||||||
return dataLength;
|
|
||||||
}
|
|
||||||
|
|
||||||
private int getDataLength(Collection<EcuQuery> queries) {
|
private int getDataLength(Collection<EcuQuery> queries) {
|
||||||
int dataLength = 0;
|
int dataLength = 0;
|
||||||
for (EcuQuery query : queries) {
|
for (EcuQuery query : queries) {
|
||||||
final String dataType =
|
dataLength += EcuQueryDataType.getDataLength(query);
|
||||||
query.getLoggerData().getSelectedConvertor().getDataType().toLowerCase();
|
|
||||||
if (dataType.contains("int16")) {
|
|
||||||
dataLength += 2;
|
|
||||||
}
|
|
||||||
else if (dataType.contains("int32") ||
|
|
||||||
dataType.contains("float")) {
|
|
||||||
dataLength += 4;
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
dataLength += 1;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
return dataLength;
|
return dataLength;
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
/*
|
/*
|
||||||
* RomRaider Open-Source Tuning, Logging and Reflashing
|
* RomRaider Open-Source Tuning, Logging and Reflashing
|
||||||
* Copyright (C) 2006-2014 RomRaider.com
|
* Copyright (C) 2006-2015 RomRaider.com
|
||||||
*
|
*
|
||||||
* This program is free software; you can redistribute it and/or modify
|
* 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
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
@ -38,6 +38,7 @@ import com.romraider.logger.ecu.comms.manager.PollingState;
|
||||||
import com.romraider.logger.ecu.comms.query.EcuInit;
|
import com.romraider.logger.ecu.comms.query.EcuInit;
|
||||||
import com.romraider.logger.ecu.comms.query.EcuInitCallback;
|
import com.romraider.logger.ecu.comms.query.EcuInitCallback;
|
||||||
import com.romraider.logger.ecu.comms.query.EcuQuery;
|
import com.romraider.logger.ecu.comms.query.EcuQuery;
|
||||||
|
import com.romraider.logger.ecu.comms.query.EcuQueryDataType;
|
||||||
import com.romraider.logger.ecu.definition.Module;
|
import com.romraider.logger.ecu.definition.Module;
|
||||||
|
|
||||||
public final class OBDLoggerProtocol implements LoggerProtocolOBD {
|
public final class OBDLoggerProtocol implements LoggerProtocolOBD {
|
||||||
|
@ -82,7 +83,7 @@ public final class OBDLoggerProtocol implements LoggerProtocolOBD {
|
||||||
int numAddresses = 0;
|
int numAddresses = 0;
|
||||||
for (EcuQuery ecuQuery : filteredQueries) {
|
for (EcuQuery ecuQuery : filteredQueries) {
|
||||||
numAddresses += ecuQuery.getBytes().length;
|
numAddresses += ecuQuery.getBytes().length;
|
||||||
numAddresses += getDataLength(ecuQuery);
|
numAddresses += EcuQueryDataType.getDataLength(ecuQuery);
|
||||||
}
|
}
|
||||||
return new byte[(numAddresses + RESPONSE_NON_DATA_BYTES)];
|
return new byte[(numAddresses + RESPONSE_NON_DATA_BYTES)];
|
||||||
}
|
}
|
||||||
|
@ -122,7 +123,7 @@ public final class OBDLoggerProtocol implements LoggerProtocolOBD {
|
||||||
int i = 0;
|
int i = 0;
|
||||||
for (EcuQuery filteredQuery : filteredQueries) {
|
for (EcuQuery filteredQuery : filteredQueries) {
|
||||||
final int addrLength = filteredQuery.getBytes().length;
|
final int addrLength = filteredQuery.getBytes().length;
|
||||||
final int dataLength = getDataLength(filteredQuery);
|
final int dataLength = EcuQueryDataType.getDataLength(filteredQuery);
|
||||||
final byte[] addr = new byte[addrLength];
|
final byte[] addr = new byte[addrLength];
|
||||||
final byte[] data = new byte[dataLength];
|
final byte[] data = new byte[dataLength];
|
||||||
arraycopy(responseData, i, addr, 0, addrLength);
|
arraycopy(responseData, i, addr, 0, addrLength);
|
||||||
|
@ -182,18 +183,4 @@ public final class OBDLoggerProtocol implements LoggerProtocolOBD {
|
||||||
}
|
}
|
||||||
return addresses;
|
return addresses;
|
||||||
}
|
}
|
||||||
|
|
||||||
private int getDataLength(EcuQuery ecuQuery) {
|
|
||||||
int dataLength = 1;
|
|
||||||
final String dataType =
|
|
||||||
ecuQuery.getLoggerData().getSelectedConvertor().getDataType().toLowerCase();
|
|
||||||
if (dataType.contains("int16")) {
|
|
||||||
dataLength = 2;
|
|
||||||
}
|
|
||||||
else if (dataType.contains("int32") ||
|
|
||||||
dataType.contains("float")) {
|
|
||||||
dataLength = 4;
|
|
||||||
}
|
|
||||||
return dataLength;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue