diff --git a/release_notes.txt b/release_notes.txt
index dd403230..21af1de0 100644
--- a/release_notes.txt
+++ b/release_notes.txt
@@ -34,12 +34,12 @@ documentation may be incomplete or out of date.
-------------------------------
-- 0.5.3b RC10 Notes (09/12/2011) -
+- 0.5.3b RC11 Notes (??/??/????) -
-------------------------------
-This is the tenth beta release of the upcoming official 0.5.3b release.
+This is the eleventh beta release of the upcoming official 0.5.3b release.
---------------------------
-- 0.5.3b RC10 Known Issues -
+- 0.5.3b RC11 Known Issues -
---------------------------
- Editor
- Pasting table data can cause hangs under certain circumstances
@@ -55,6 +55,15 @@ This is the tenth beta release of the upcoming official 0.5.3b release.
- Change Log -
--------------
+0.5.3b RC11 (??/??/????)
+-----------------------
+
+--- Logger ---
+- TXS Tuner Wideband plugin added curtosy of, nitros
+- Added support for ECU/TCU Switch filtering
+- Added (msec) designation to logged CSV column heading
+- Added support for sorting the Selected? & Description paramater list entries.
+
0.5.3b RC10 (09/12/2011)
-----------------------
diff --git a/src/com/romraider/logger/ecu/EcuLogger.java b/src/com/romraider/logger/ecu/EcuLogger.java
index c91f28cd..223c1c32 100644
--- a/src/com/romraider/logger/ecu/EcuLogger.java
+++ b/src/com/romraider/logger/ecu/EcuLogger.java
@@ -627,7 +627,6 @@ public final class EcuLogger extends AbstractFrame implements MessageListener {
for (ExternalDataSource dataSource : externalDataSources) {
try {
List extends ExternalDataItem> dataItems = dataSource.getDataItems();
-
for (ExternalDataItem item : dataItems) {
externalDatas.add(new ExternalDataImpl(item, dataSource));
}
diff --git a/src/com/romraider/logger/ecu/definition/ExternalDataConvertorImpl.java b/src/com/romraider/logger/ecu/definition/ExternalDataConvertorImpl.java
index 1b5b7536..79964405 100644
--- a/src/com/romraider/logger/ecu/definition/ExternalDataConvertorImpl.java
+++ b/src/com/romraider/logger/ecu/definition/ExternalDataConvertorImpl.java
@@ -20,23 +20,41 @@
package com.romraider.logger.ecu.definition;
import static com.romraider.logger.ecu.definition.xml.ConverterMaxMinDefaults.getMaxMin;
+import static com.romraider.util.ByteUtil.asUnsignedInt;
+import static com.romraider.util.JEPUtil.evaluate;
+import static com.romraider.util.ParamChecker.isValidBit;
+import static java.lang.Float.intBitsToFloat;
import com.romraider.logger.ecu.ui.handler.dash.GaugeMinMax;
import com.romraider.logger.external.core.ExternalDataItem;
import java.text.DecimalFormat;
+import java.util.Map;
public final class ExternalDataConvertorImpl implements EcuDataConvertor {
+ private final String units;
+ private final String expression;
+ private final GaugeMinMax gaugeMinMax;
private final ExternalDataItem dataItem;
- private static final String FORMAT = "0.##";
- private DecimalFormat format = new DecimalFormat(FORMAT);
+ private DecimalFormat format;
+
+//
+//
+//
+//
public ExternalDataConvertorImpl(ExternalDataItem dataItem) {
this.dataItem = dataItem;
+ this.units = dataItem.getUnits();
+ this.expression = "x";
+ this.gaugeMinMax = new GaugeMinMax(0,0,0);
+ this.format = new DecimalFormat("0.##");
}
public double convert(byte[] bytes) {
- return dataItem.getData();
+ double value = dataItem.getData();
+ double result = evaluate(expression, value);
+ return Double.isNaN(result) || Double.isInfinite(result) ? 0.0 : result;
}
public String format(double value) {
@@ -44,7 +62,7 @@ public final class ExternalDataConvertorImpl implements EcuDataConvertor {
}
public String getUnits() {
- return dataItem.getUnits();
+ return units;
}
public GaugeMinMax getGaugeMinMax() {
@@ -52,6 +70,6 @@ public final class ExternalDataConvertorImpl implements EcuDataConvertor {
}
public String getFormat() {
- return FORMAT;
+ return format.toPattern();
}
}
diff --git a/src/com/romraider/logger/external/core/ExternalDataSourceLoaderImpl.java b/src/com/romraider/logger/external/core/ExternalDataSourceLoaderImpl.java
index 5c2f42a2..0cb147ea 100644
--- a/src/com/romraider/logger/external/core/ExternalDataSourceLoaderImpl.java
+++ b/src/com/romraider/logger/external/core/ExternalDataSourceLoaderImpl.java
@@ -38,7 +38,7 @@ public final class ExternalDataSourceLoaderImpl implements ExternalDataSourceLoa
try {
File pluginsDir = new File("./plugins");
if (pluginsDir.exists() && pluginsDir.isDirectory()) {
- externalDataSources = new ArrayList();
+// externalDataSources = new ArrayList();
File[] pluginPropertyFiles = pluginsDir.listFiles(new PluginFilenameFilter());
for (File pluginPropertyFile : pluginPropertyFiles) {
Properties pluginProps = new Properties();
diff --git a/src/com/romraider/logger/external/te/plugin/TEDataItem.java b/src/com/romraider/logger/external/te/plugin/TEDataItem.java
index e7f7eebe..e958a5d1 100644
--- a/src/com/romraider/logger/external/te/plugin/TEDataItem.java
+++ b/src/com/romraider/logger/external/te/plugin/TEDataItem.java
@@ -23,4 +23,8 @@ import com.romraider.logger.external.core.ExternalDataItem;
public interface TEDataItem extends ExternalDataItem {
void setRaw(int... raw);
+
+ String getFormat();
+
+ String getExpression();
}
diff --git a/src/com/romraider/logger/external/te/plugin/TEDataItemImpl.java b/src/com/romraider/logger/external/te/plugin/TEDataItemImpl.java
index b723d206..5c1f125d 100644
--- a/src/com/romraider/logger/external/te/plugin/TEDataItemImpl.java
+++ b/src/com/romraider/logger/external/te/plugin/TEDataItemImpl.java
@@ -25,16 +25,21 @@ public final class TEDataItemImpl implements TEDataItem {
private final TEConverter converter = new TEConverterImpl();
private final TESensorUnits sensorUnits;
private final TESensorType sensorType;
- private final String[] units;
+ private final String units;
private final String name;
+ private final String format;
+ private final String expression;
private int[] raw;
- public TEDataItemImpl(String name, String[] units, TESensorType sensorType, TESensorUnits sensorUnits) {
+// public TEDataItemImpl(String name, String[] units, TESensorType sensorType, TESensorUnits sensorUnits) {
+ public TEDataItemImpl(String name, String units, TESensorType sensorType, TESensorUnits sensorUnits, String format, String expression) {
super();
this.name = name;
this.units = units;
this.sensorType = sensorType;
this.sensorUnits = sensorUnits;
+ this.format = format;
+ this.expression = expression;
}
public String getName() {
@@ -46,7 +51,15 @@ public final class TEDataItemImpl implements TEDataItem {
}
public String getUnits() {
- return units[0];
+ return units;
+ }
+
+ public String getFormat() {
+ return format;
+ }
+
+ public String getExpression() {
+ return expression;
}
public double getData() {
diff --git a/src/com/romraider/logger/external/te/plugin/TEDataSource.java b/src/com/romraider/logger/external/te/plugin/TEDataSource.java
index f1ec4587..d702f3b4 100644
--- a/src/com/romraider/logger/external/te/plugin/TEDataSource.java
+++ b/src/com/romraider/logger/external/te/plugin/TEDataSource.java
@@ -52,16 +52,26 @@ public final class TEDataSource implements ExternalDataSource {
private String port;
{
- dataItems.put(Lambda, new TEDataItemImpl("Wideband", new String[]{"Lambda", "AFR"}, Lambda, WIDEBAND_AFR_LAMBDA));
- dataItems.put(AFR, new TEDataItemImpl("Wideband", new String[]{"AFR"}, Lambda, WIDEBAND_AFR_GASOLINE147));
- dataItems.put(USR1, new TEDataItemImpl("User 1", new String[]{"VDC"}, USR1, VDC));
- dataItems.put(USR2, new TEDataItemImpl("User 2", new String[]{"VDC"}, USR2, VDC));
- dataItems.put(USR3, new TEDataItemImpl("User 3", new String[]{"VDC"}, USR3, VDC));
- dataItems.put(TC1, new TEDataItemImpl("Thermocouple 1", new String[]{"raw"}, TC1, RAW));
- dataItems.put(TC2, new TEDataItemImpl("Thermocouple 2", new String[]{"raw"}, TC2, RAW));
- dataItems.put(TC3, new TEDataItemImpl("Thermocouple 3", new String[]{"raw"}, TC3, RAW));
- dataItems.put(TorVss, new TEDataItemImpl("Thermistor or Vss", new String[]{"raw"}, TorVss, RAW));
- dataItems.put(RPM, new TEDataItemImpl("Engine Speed (4-cyl)", new String[]{"RPM"}, RPM, ENGINE_SPEED));
+// dataItems.put(Lambda, new TEDataItemImpl("Wideband", new String[]{"Lambda", "AFR"}, Lambda, WIDEBAND_AFR_LAMBDA));
+// dataItems.put(AFR, new TEDataItemImpl("Wideband", new String[]{"AFR"}, Lambda, WIDEBAND_AFR_GASOLINE147));
+// dataItems.put(USR1, new TEDataItemImpl("User 1", new String[]{"VDC"}, USR1, VDC));
+// dataItems.put(USR2, new TEDataItemImpl("User 2", new String[]{"VDC"}, USR2, VDC));
+// dataItems.put(USR3, new TEDataItemImpl("User 3", new String[]{"VDC"}, USR3, VDC));
+// dataItems.put(TC1, new TEDataItemImpl("Thermocouple 1", new String[]{"raw"}, TC1, RAW));
+// dataItems.put(TC2, new TEDataItemImpl("Thermocouple 2", new String[]{"raw"}, TC2, RAW));
+// dataItems.put(TC3, new TEDataItemImpl("Thermocouple 3", new String[]{"raw"}, TC3, RAW));
+// dataItems.put(TorVss, new TEDataItemImpl("Thermistor or Vss", new String[]{"raw"}, TorVss, RAW));
+// dataItems.put(RPM, new TEDataItemImpl("Engine Speed (4-cyl)", new String[]{"RPM"}, RPM, ENGINE_SPEED));
+ dataItems.put(Lambda, new TEDataItemImpl("Wideband", "Lambda", Lambda, WIDEBAND_AFR_LAMBDA, "x", "0.##"));
+ dataItems.put(AFR, new TEDataItemImpl("Wideband", "AFR", Lambda, WIDEBAND_AFR_GASOLINE147, "x", "0.##"));
+ dataItems.put(USR1, new TEDataItemImpl("User 1", "VDC", USR1, VDC, "x", "0.##"));
+ dataItems.put(USR2, new TEDataItemImpl("User 2", "VDC", USR2, VDC, "x", "0.##"));
+ dataItems.put(USR3, new TEDataItemImpl("User 3", "VDC", USR3, VDC, "x", "0.##"));
+ dataItems.put(TC1, new TEDataItemImpl("Thermocouple 1", "raw", TC1, RAW, "x", "0.##"));
+ dataItems.put(TC2, new TEDataItemImpl("Thermocouple 2", "raw", TC2, RAW, "x", "0.##"));
+ dataItems.put(TC3, new TEDataItemImpl("Thermocouple 3", "raw", TC3, RAW, "x", "0.##"));
+ dataItems.put(TorVss, new TEDataItemImpl("Thermistor or Vss", "raw", TorVss, RAW, "x", "0.##"));
+ dataItems.put(RPM, new TEDataItemImpl("Engine Speed (4-cyl)", "RPM", RPM, ENGINE_SPEED, "x", "0.##"));
}
public String getId() {