Updated Txs Loggers

Added a index support in TxsDataItem. This allows txs tuner lite and pro
to operate out of the same class. TxsTuner class now properly allows
pulling data from the same index.
This commit is contained in:
Walter Stypula 2012-09-22 17:38:01 -05:00
parent 4a9f8d0032
commit 9f9ee0578e
4 changed files with 35 additions and 31 deletions

View File

@ -22,7 +22,7 @@ package com.romraider.logger.external.txs.io;
import static com.romraider.util.ParamChecker.isNullOrEmpty;
import static org.apache.log4j.Logger.getLogger;
import java.util.HashMap;
import java.util.ArrayList;
import org.apache.log4j.Logger;
@ -41,7 +41,7 @@ public final class TxsRunner implements Stoppable{
private static final String SPLIT_DELIMITER = " ";
private static final byte[] EXIT = new byte[]{24};
private final HashMap<Integer, TxsDataItem> dataItems;
private final ArrayList<TxsDataItem> dataItems;
private final SerialConnection connection;
private boolean stop;
@ -50,7 +50,7 @@ public final class TxsRunner implements Stoppable{
public TxsRunner(
String port,
HashMap<Integer, TxsDataItem> dataItems,
ArrayList<TxsDataItem> dataItems,
String logger,
String device) {
this.connection = new SerialConnectionImpl(port, CONNECTION_PROPS);
@ -130,7 +130,7 @@ public final class TxsRunner implements Stoppable{
if(dataItem != null) {
//Set value to dataItem
dataItem.setData(parseDouble(values[i]));
dataItem.setData(parseDouble(values[dataItem.getItemIndex()]));
}
}

View File

@ -29,15 +29,21 @@ import com.romraider.logger.external.core.ExternalSensorConversions;
public final class TxsDataItem implements ExternalDataItem, DataListener {
private EcuDataConvertor[] convertors;
private final String name;
private final int itemIndex;
private double data;
public TxsDataItem(String name, ExternalSensorConversions... convertorList) {
public TxsDataItem(String name, int itemIndex, ExternalSensorConversions... convertorList) {
super();
this.name = name;
this.itemIndex = itemIndex;
convertors = new EcuDataConvertor[convertorList.length];
convertors = loadConvertors(this, convertors, convertorList);
}
public int getItemIndex(){
return itemIndex;
}
public String getName() {
return name;
}

View File

@ -33,9 +33,7 @@ import static com.romraider.util.ThreadUtil.runAsDaemon;
import static java.util.Collections.unmodifiableList;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import javax.swing.Action;
import com.romraider.logger.ecu.EcuLogger;
@ -53,16 +51,16 @@ public class TxsTunerDataSource implements ExternalDataSource {
private static final int TUNER_PRO_AFR = 1;
private static final int TUNER_PRO_KNOCK = 11;
private final HashMap<Integer, TxsDataItem> dataItems =
new HashMap<Integer, TxsDataItem>();
private final ArrayList<TxsDataItem> dataItems =
new ArrayList<TxsDataItem>();
private TxsRunner runner;
private String port;
{
dataItems.put(TUNER_LITE_AFR, new TxsDataItem(DEVICE_NAME + "Lite AFR", AFR_147, LAMBDA, AFR_90, AFR_146, AFR_64, AFR_155, AFR_172, AFR_34));
dataItems.put(TUNER_PRO_RPM, new TxsDataItem(DEVICE_NAME + "Pro Knock", TXS_RPM));
dataItems.put(TUNER_PRO_AFR, new TxsDataItem(DEVICE_NAME + "Pro AFR", AFR_147, LAMBDA, AFR_90, AFR_146, AFR_64, AFR_155, AFR_172, AFR_34));
dataItems.put(TUNER_PRO_KNOCK, new TxsDataItem(DEVICE_NAME + "Pro Knock", TXS_KNOCK));
dataItems.add(new TxsDataItem(DEVICE_NAME + "Lite AFR", TUNER_LITE_AFR, AFR_147, LAMBDA, AFR_90, AFR_146, AFR_64, AFR_155, AFR_172, AFR_34));
dataItems.add(new TxsDataItem(DEVICE_NAME + "Pro RPM", TUNER_PRO_RPM, TXS_RPM));
dataItems.add(new TxsDataItem(DEVICE_NAME + "Pro AFR", TUNER_PRO_AFR, LAMBDA, AFR_147, AFR_90, AFR_146, AFR_64, AFR_155, AFR_172, AFR_34));
dataItems.add(new TxsDataItem(DEVICE_NAME + "Pro Knock", TUNER_PRO_KNOCK, TXS_KNOCK));
}
public String getId() {
@ -74,11 +72,11 @@ public class TxsTunerDataSource implements ExternalDataSource {
}
public String getVersion() {
return "0.01";
return "2012.09.22";
}
public List<? extends ExternalDataItem> getDataItems() {
return unmodifiableList(new ArrayList<TxsDataItem>(dataItems.values()));
return unmodifiableList(dataItems);
}
public Action getMenuAction(EcuLogger logger) {

View File

@ -68,24 +68,24 @@ public class TxsUtecLogger1DataSource implements ExternalDataSource {
private static final int MODMAFV = 12;
private static final int AFR = 13;
private final HashMap<Integer, TxsDataItem> dataItems =
new HashMap<Integer, TxsDataItem>();
private final ArrayList<TxsDataItem> dataItems =
new ArrayList<TxsDataItem>();
private TxsRunner runner;
private String port;
{
dataItems.put(RPM, new TxsDataItem(DEVICE_NAME + "RPM", TXS_RPM));
dataItems.put(BOOST, new TxsDataItem(DEVICE_NAME + "BOOST", TXS_BOOST));
dataItems.put(MAFV, new TxsDataItem(DEVICE_NAME + "MAFV", TXS_MAFV));
dataItems.put(TPS, new TxsDataItem(DEVICE_NAME + "TPS", TXS_TPS));
dataItems.put(LOAD, new TxsDataItem(DEVICE_NAME + "LOAD", TXS_LOAD));
dataItems.put(KNOCK, new TxsDataItem(DEVICE_NAME + "KNOCK", TXS_KNOCK));
dataItems.put(ECUIGN, new TxsDataItem(DEVICE_NAME + "ECUIGN", TXS_IGN));
dataItems.put(IDC, new TxsDataItem(DEVICE_NAME + "IDC", TXS_IDC));
dataItems.put(MODIGN, new TxsDataItem(DEVICE_NAME + "MODIGN", TXS_IGN));
dataItems.put(MAPVE_MODFUEL, new TxsDataItem(DEVICE_NAME + "MAPVE/MODFUEL", TXS_MODFUEL, TXS_MAPVE));
dataItems.put(MODMAFV, new TxsDataItem(DEVICE_NAME + "MODMAFV", TXS_MAFV));
dataItems.put(AFR, new TxsDataItem(DEVICE_NAME + "AFR", AFR_147, LAMBDA, AFR_90, AFR_146, AFR_64, AFR_155, AFR_172, AFR_34));
dataItems.add(new TxsDataItem(DEVICE_NAME + "RPM", RPM, TXS_RPM));
dataItems.add(new TxsDataItem(DEVICE_NAME + "BOOST", BOOST, TXS_BOOST));
dataItems.add(new TxsDataItem(DEVICE_NAME + "MAFV", MAFV, TXS_MAFV));
dataItems.add(new TxsDataItem(DEVICE_NAME + "TPS", TPS, TXS_TPS));
dataItems.add(new TxsDataItem(DEVICE_NAME + "LOAD", LOAD, TXS_LOAD));
dataItems.add(new TxsDataItem(DEVICE_NAME + "KNOCK", KNOCK, TXS_KNOCK));
dataItems.add(new TxsDataItem(DEVICE_NAME + "ECUIGN", ECUIGN, TXS_IGN));
dataItems.add(new TxsDataItem(DEVICE_NAME + "IDC", IDC, TXS_IDC));
dataItems.add(new TxsDataItem(DEVICE_NAME + "MODIGN", MODIGN, TXS_IGN));
dataItems.add(new TxsDataItem(DEVICE_NAME + "MAPVE/MODFUEL", MAPVE_MODFUEL, TXS_MODFUEL, TXS_MAPVE));
dataItems.add(new TxsDataItem(DEVICE_NAME + "MODMAFV", MODMAFV, TXS_MAFV));
dataItems.add(new TxsDataItem(DEVICE_NAME + "AFR", AFR, AFR_147, LAMBDA, AFR_90, AFR_146, AFR_64, AFR_155, AFR_172, AFR_34));
}
public String getId() {
@ -97,11 +97,11 @@ public class TxsUtecLogger1DataSource implements ExternalDataSource {
}
public String getVersion() {
return "0.01";
return "2012.09.20";
}
public List<? extends ExternalDataItem> getDataItems() {
return unmodifiableList(new ArrayList<TxsDataItem>(dataItems.values()));
return unmodifiableList(new ArrayList<TxsDataItem>(dataItems));
}
public Action getMenuAction(EcuLogger logger) {