mirror of https://github.com/rusefi/RomRaider.git
add LM2 MTS support
git-svn-id: https://svn2.assembla.com/svn/romraider/trunk@246 38686702-15cf-42e4-a595-3071df8bf5ea
This commit is contained in:
parent
35b0afbdc1
commit
f4e1c0231a
|
@ -1,4 +1,4 @@
|
|||
log4j.rootLogger=debug, stdout, file
|
||||
log4j.rootLogger=trace, stdout, file
|
||||
|
||||
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
|
||||
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
|
||||
|
|
|
@ -1 +1 @@
|
|||
datasource.class=com.romraider.logger.innovate.lc1.plugin.Lc1DataSource
|
||||
datasource.class=com.romraider.logger.innovate.lc1.serial.plugin.Lc1DataSource
|
|
@ -1 +1 @@
|
|||
datasource.class=com.romraider.logger.innovate.lm1.plugin.Lm1DataSource
|
||||
datasource.class=com.romraider.logger.innovate.lm1.serial.plugin.Lm1DataSource
|
|
@ -1 +0,0 @@
|
|||
#datasource.class=com.romraider.logger.innovate.lm2.plugin.Lm2DataSource
|
|
@ -0,0 +1 @@
|
|||
datasource.class=com.romraider.logger.innovate.lm2.mts.plugin.Lm2MtsDataSource
|
|
@ -0,0 +1 @@
|
|||
datasource.class=com.romraider.logger.innovate.lm2.serial.plugin.Lm2SerialDataSource
|
|
@ -37,8 +37,8 @@ public final class SerialConnectionManager implements ConnectionManager {
|
|||
checkNotNullOrEmpty(portName, "portName");
|
||||
checkNotNull(connectionProperties, "connectionProperties");
|
||||
// Use TestSerialConnection for testing!!
|
||||
connection = new SerialConnectionImpl(portName, connectionProperties);
|
||||
// connection = new TestSerialConnection(portName, connectionProperties);
|
||||
// connection = new SerialConnectionImpl(portName, connectionProperties);
|
||||
connection = new TestSerialConnection(portName, connectionProperties);
|
||||
}
|
||||
|
||||
// Send request and wait for response with known length
|
||||
|
|
|
@ -28,10 +28,11 @@ import static com.romraider.util.ParamChecker.checkNotNullOrEmpty;
|
|||
import org.apache.log4j.Logger;
|
||||
import static org.apache.log4j.Logger.getLogger;
|
||||
import java.nio.charset.Charset;
|
||||
import static java.nio.charset.Charset.forName;
|
||||
|
||||
public final class AemConnectionImpl implements AemConnection {
|
||||
private static final Logger LOGGER = getLogger(AemConnectionImpl.class);
|
||||
private static final Charset CHARSET_UTF8 = Charset.forName("UTF-8");
|
||||
private static final Charset CHARSET_UTF8 = forName("UTF-8");
|
||||
private final SerialConnection connection;
|
||||
|
||||
public AemConnectionImpl(String portName, ConnectionProperties connectionProperties) {
|
||||
|
|
|
@ -20,14 +20,14 @@
|
|||
package com.romraider.logger.aem.io;
|
||||
|
||||
import com.romraider.logger.aem.plugin.AemSettings;
|
||||
import com.romraider.logger.aem.plugin.DataListener;
|
||||
import com.romraider.logger.aem.plugin.RawDataListener;
|
||||
|
||||
public final class AemRunnerImpl implements AemRunner {
|
||||
private final AemConnection connection;
|
||||
private final DataListener listener;
|
||||
private final RawDataListener listener;
|
||||
private boolean stop;
|
||||
|
||||
public AemRunnerImpl(AemSettings aemSettings, DataListener listener) {
|
||||
public AemRunnerImpl(AemSettings aemSettings, RawDataListener listener) {
|
||||
connection = new AemConnectionImpl(aemSettings.getPort(), new AemConnectionProperties());
|
||||
this.listener = listener;
|
||||
}
|
||||
|
|
|
@ -21,7 +21,7 @@ package com.romraider.logger.aem.plugin;
|
|||
|
||||
import com.romraider.logger.ecu.external.ExternalDataItem;
|
||||
|
||||
public final class AemDataItem implements ExternalDataItem, DataListener {
|
||||
public final class AemDataItem implements ExternalDataItem, RawDataListener {
|
||||
private final AemConvertor convertor = new AemConvertorImpl();
|
||||
private byte[] bytes;
|
||||
|
||||
|
|
|
@ -19,6 +19,7 @@
|
|||
|
||||
package com.romraider.logger.aem.plugin;
|
||||
|
||||
import com.romraider.logger.aem.io.AemRunner;
|
||||
import com.romraider.logger.aem.io.AemRunnerImpl;
|
||||
import com.romraider.logger.ecu.EcuLogger;
|
||||
import com.romraider.logger.ecu.external.ExternalDataItem;
|
||||
|
@ -31,7 +32,7 @@ import java.util.List;
|
|||
public final class AemDataSource implements ExternalDataSource {
|
||||
private AemSettings settings = new AemSettingsImpl();
|
||||
private AemDataItem dataItem = new AemDataItem();
|
||||
private AemRunnerImpl runner;
|
||||
private AemRunner runner;
|
||||
|
||||
public String getName() {
|
||||
return "AEM UEGO";
|
||||
|
|
|
@ -19,6 +19,6 @@
|
|||
|
||||
package com.romraider.logger.aem.plugin;
|
||||
|
||||
public interface DataListener {
|
||||
public interface RawDataListener {
|
||||
void setBytes(byte[] bytes);
|
||||
}
|
|
@ -24,7 +24,6 @@ import javax.swing.Action;
|
|||
import java.util.List;
|
||||
|
||||
public interface ExternalDataSource {
|
||||
|
||||
String getName();
|
||||
|
||||
String getVersion();
|
||||
|
|
|
@ -17,7 +17,7 @@
|
|||
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||
*/
|
||||
|
||||
package com.romraider.logger.innovate.generic.io;
|
||||
package com.romraider.logger.innovate.generic.serial.io;
|
||||
|
||||
public interface InnovateConnection {
|
||||
byte[] read();
|
|
@ -17,7 +17,7 @@
|
|||
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||
*/
|
||||
|
||||
package com.romraider.logger.innovate.generic.io;
|
||||
package com.romraider.logger.innovate.generic.serial.io;
|
||||
|
||||
import com.romraider.io.connection.ConnectionProperties;
|
||||
import com.romraider.io.serial.connection.SerialConnection;
|
|
@ -17,7 +17,7 @@
|
|||
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||
*/
|
||||
|
||||
package com.romraider.logger.innovate.generic.io;
|
||||
package com.romraider.logger.innovate.generic.serial.io;
|
||||
|
||||
import com.romraider.io.connection.ConnectionProperties;
|
||||
|
|
@ -17,7 +17,7 @@
|
|||
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||
*/
|
||||
|
||||
package com.romraider.logger.innovate.generic.io;
|
||||
package com.romraider.logger.innovate.generic.serial.io;
|
||||
|
||||
public interface InnovateRunner extends Runnable {
|
||||
void stop();
|
|
@ -17,17 +17,17 @@
|
|||
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||
*/
|
||||
|
||||
package com.romraider.logger.innovate.generic.io;
|
||||
package com.romraider.logger.innovate.generic.serial.io;
|
||||
|
||||
import com.romraider.logger.innovate.generic.plugin.DataListener;
|
||||
import com.romraider.logger.innovate.generic.plugin.InnovateSettings;
|
||||
import com.romraider.logger.innovate.generic.serial.plugin.InnovateSettings;
|
||||
import com.romraider.logger.innovate.generic.serial.plugin.RawDataListener;
|
||||
|
||||
public final class InnovateRunnerImpl implements InnovateRunner {
|
||||
private final InnovateConnection connection;
|
||||
private final DataListener listener;
|
||||
private final RawDataListener listener;
|
||||
private boolean stop;
|
||||
|
||||
public InnovateRunnerImpl(String device, InnovateSettings innovateSettings, DataListener listener, int responseLength) {
|
||||
public InnovateRunnerImpl(String device, InnovateSettings innovateSettings, RawDataListener listener, int responseLength) {
|
||||
connection = new InnovateConnectionImpl(device, innovateSettings.getPort(), new InnovateConnectionProperties(), responseLength);
|
||||
this.listener = listener;
|
||||
}
|
|
@ -17,7 +17,7 @@
|
|||
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||
*/
|
||||
|
||||
package com.romraider.logger.innovate.generic.plugin;
|
||||
package com.romraider.logger.innovate.generic.serial.plugin;
|
||||
|
||||
public interface DataConvertor {
|
||||
double convert(byte[] bytes);
|
|
@ -17,7 +17,7 @@
|
|||
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||
*/
|
||||
|
||||
package com.romraider.logger.innovate.generic.plugin;
|
||||
package com.romraider.logger.innovate.generic.serial.plugin;
|
||||
|
||||
public interface InnovateSettings {
|
||||
void setPort(String port);
|
|
@ -17,7 +17,7 @@
|
|||
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||
*/
|
||||
|
||||
package com.romraider.logger.innovate.generic.plugin;
|
||||
package com.romraider.logger.innovate.generic.serial.plugin;
|
||||
|
||||
public final class InnovateSettingsImpl implements InnovateSettings {
|
||||
private String port;
|
|
@ -17,8 +17,8 @@
|
|||
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||
*/
|
||||
|
||||
package com.romraider.logger.innovate.generic.plugin;
|
||||
package com.romraider.logger.innovate.generic.serial.plugin;
|
||||
|
||||
public interface DataListener {
|
||||
public interface RawDataListener {
|
||||
void setBytes(byte[] bytes);
|
||||
}
|
|
@ -17,9 +17,9 @@
|
|||
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||
*/
|
||||
|
||||
package com.romraider.logger.innovate.lc1.plugin;
|
||||
package com.romraider.logger.innovate.lc1.serial.plugin;
|
||||
|
||||
import com.romraider.logger.innovate.generic.plugin.DataConvertor;
|
||||
import com.romraider.logger.innovate.generic.serial.plugin.DataConvertor;
|
||||
import static com.romraider.util.ByteUtil.matchOnes;
|
||||
import static com.romraider.util.ByteUtil.matchZeroes;
|
||||
import static com.romraider.util.HexUtil.asHex;
|
|
@ -17,13 +17,13 @@
|
|||
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||
*/
|
||||
|
||||
package com.romraider.logger.innovate.lc1.plugin;
|
||||
package com.romraider.logger.innovate.lc1.serial.plugin;
|
||||
|
||||
import com.romraider.logger.ecu.external.ExternalDataItem;
|
||||
import com.romraider.logger.innovate.generic.plugin.DataConvertor;
|
||||
import com.romraider.logger.innovate.generic.plugin.DataListener;
|
||||
import com.romraider.logger.innovate.generic.serial.plugin.DataConvertor;
|
||||
import com.romraider.logger.innovate.generic.serial.plugin.RawDataListener;
|
||||
|
||||
public final class Lc1DataItem implements ExternalDataItem, DataListener {
|
||||
public final class Lc1DataItem implements ExternalDataItem, RawDataListener {
|
||||
private final DataConvertor convertor = new Lc1DataConvertor();
|
||||
private byte[] bytes;
|
||||
|
|
@ -17,14 +17,15 @@
|
|||
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||
*/
|
||||
|
||||
package com.romraider.logger.innovate.lc1.plugin;
|
||||
package com.romraider.logger.innovate.lc1.serial.plugin;
|
||||
|
||||
import com.romraider.logger.ecu.EcuLogger;
|
||||
import com.romraider.logger.ecu.external.ExternalDataItem;
|
||||
import com.romraider.logger.ecu.external.ExternalDataSource;
|
||||
import com.romraider.logger.innovate.generic.io.InnovateRunnerImpl;
|
||||
import com.romraider.logger.innovate.generic.plugin.InnovateSettings;
|
||||
import com.romraider.logger.innovate.generic.plugin.InnovateSettingsImpl;
|
||||
import com.romraider.logger.innovate.generic.serial.io.InnovateRunner;
|
||||
import com.romraider.logger.innovate.generic.serial.io.InnovateRunnerImpl;
|
||||
import com.romraider.logger.innovate.generic.serial.plugin.InnovateSettings;
|
||||
import com.romraider.logger.innovate.generic.serial.plugin.InnovateSettingsImpl;
|
||||
import static com.romraider.util.ThreadUtil.runAsDaemon;
|
||||
import javax.swing.Action;
|
||||
import static java.util.Arrays.asList;
|
||||
|
@ -33,7 +34,7 @@ import java.util.List;
|
|||
public final class Lc1DataSource implements ExternalDataSource {
|
||||
private InnovateSettings settings = new InnovateSettingsImpl();
|
||||
private Lc1DataItem dataItem = new Lc1DataItem();
|
||||
private InnovateRunnerImpl runner;
|
||||
private InnovateRunner runner;
|
||||
|
||||
public String getName() {
|
||||
return "Innovate LC-1";
|
|
@ -17,9 +17,9 @@
|
|||
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||
*/
|
||||
|
||||
package com.romraider.logger.innovate.lm1.plugin;
|
||||
package com.romraider.logger.innovate.lm1.serial.plugin;
|
||||
|
||||
import com.romraider.logger.innovate.generic.plugin.DataConvertor;
|
||||
import com.romraider.logger.innovate.generic.serial.plugin.DataConvertor;
|
||||
import static com.romraider.util.ByteUtil.matchOnes;
|
||||
import static com.romraider.util.ByteUtil.matchZeroes;
|
||||
import static com.romraider.util.HexUtil.asBytes;
|
|
@ -17,13 +17,13 @@
|
|||
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||
*/
|
||||
|
||||
package com.romraider.logger.innovate.lm1.plugin;
|
||||
package com.romraider.logger.innovate.lm1.serial.plugin;
|
||||
|
||||
import com.romraider.logger.ecu.external.ExternalDataItem;
|
||||
import com.romraider.logger.innovate.generic.plugin.DataConvertor;
|
||||
import com.romraider.logger.innovate.generic.plugin.DataListener;
|
||||
import com.romraider.logger.innovate.generic.serial.plugin.DataConvertor;
|
||||
import com.romraider.logger.innovate.generic.serial.plugin.RawDataListener;
|
||||
|
||||
public final class Lm1DataItem implements ExternalDataItem, DataListener {
|
||||
public final class Lm1DataItem implements ExternalDataItem, RawDataListener {
|
||||
private final DataConvertor convertor = new Lm1DataConvertor();
|
||||
private byte[] bytes;
|
||||
|
|
@ -17,14 +17,15 @@
|
|||
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||
*/
|
||||
|
||||
package com.romraider.logger.innovate.lm1.plugin;
|
||||
package com.romraider.logger.innovate.lm1.serial.plugin;
|
||||
|
||||
import com.romraider.logger.ecu.EcuLogger;
|
||||
import com.romraider.logger.ecu.external.ExternalDataItem;
|
||||
import com.romraider.logger.ecu.external.ExternalDataSource;
|
||||
import com.romraider.logger.innovate.generic.io.InnovateRunnerImpl;
|
||||
import com.romraider.logger.innovate.generic.plugin.InnovateSettings;
|
||||
import com.romraider.logger.innovate.generic.plugin.InnovateSettingsImpl;
|
||||
import com.romraider.logger.innovate.generic.serial.io.InnovateRunner;
|
||||
import com.romraider.logger.innovate.generic.serial.io.InnovateRunnerImpl;
|
||||
import com.romraider.logger.innovate.generic.serial.plugin.InnovateSettings;
|
||||
import com.romraider.logger.innovate.generic.serial.plugin.InnovateSettingsImpl;
|
||||
import static com.romraider.util.ThreadUtil.runAsDaemon;
|
||||
import javax.swing.Action;
|
||||
import static java.util.Arrays.asList;
|
||||
|
@ -33,7 +34,7 @@ import java.util.List;
|
|||
public final class Lm1DataSource implements ExternalDataSource {
|
||||
private InnovateSettings settings = new InnovateSettingsImpl();
|
||||
private Lm1DataItem dataItem = new Lm1DataItem();
|
||||
private InnovateRunnerImpl runner;
|
||||
private InnovateRunner runner;
|
||||
|
||||
public String getName() {
|
||||
return "Innovate LM-1";
|
|
@ -17,18 +17,31 @@
|
|||
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||
*/
|
||||
|
||||
package com.romraider.logger.innovate.mts;
|
||||
package com.romraider.logger.innovate.lm2.mts.plugin;
|
||||
|
||||
import static com4j.COM4J.createInstance;
|
||||
import com.romraider.logger.ecu.external.ExternalDataItem;
|
||||
import com.romraider.logger.innovate.generic.mts.plugin.DataListener;
|
||||
|
||||
public final class MTSFactory {
|
||||
private MTSFactory() {
|
||||
public final class Lm2MtsDataItem implements ExternalDataItem, DataListener {
|
||||
private double data;
|
||||
|
||||
public String getName() {
|
||||
return "Innovate LM-2 [mts]";
|
||||
}
|
||||
|
||||
/**
|
||||
* MTS SDK v1.0
|
||||
*/
|
||||
public static MTS createMTS() {
|
||||
return createInstance(MTS.class, "{74087A4E-4AF1-4F8C-BACB-3959C212AAD2}");
|
||||
public String getDescription() {
|
||||
return "Innovate LM-2 AFR data";
|
||||
}
|
||||
}
|
||||
|
||||
public String getUnits() {
|
||||
return "AFR";
|
||||
}
|
||||
|
||||
public double getData() {
|
||||
return data;
|
||||
}
|
||||
|
||||
public void setData(double data) {
|
||||
this.data = data;
|
||||
}
|
||||
}
|
|
@ -0,0 +1,82 @@
|
|||
/*
|
||||
* RomRaider Open-Source Tuning, Logging and Reflashing
|
||||
* Copyright (C) 2006-2009 RomRaider.com
|
||||
*
|
||||
* 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
|
||||
* the Free Software Foundation; either version 2 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License along
|
||||
* with this program; if not, write to the Free Software Foundation, Inc.,
|
||||
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||
*/
|
||||
|
||||
package com.romraider.logger.innovate.lm2.mts.plugin;
|
||||
|
||||
import com.romraider.logger.ecu.EcuLogger;
|
||||
import com.romraider.logger.ecu.external.ExternalDataItem;
|
||||
import com.romraider.logger.ecu.external.ExternalDataSource;
|
||||
import com.romraider.logger.innovate.generic.mts.io.MTSRunner;
|
||||
import com.romraider.logger.innovate.generic.mts.io.MTSRunnerImpl;
|
||||
import static com.romraider.util.ThreadUtil.runAsDaemon;
|
||||
import org.apache.log4j.Logger;
|
||||
import static org.apache.log4j.Logger.getLogger;
|
||||
import javax.swing.Action;
|
||||
import static java.lang.Integer.parseInt;
|
||||
import static java.util.Arrays.asList;
|
||||
import java.util.List;
|
||||
|
||||
public final class Lm2MtsDataSource implements ExternalDataSource {
|
||||
private static final Logger LOGGER = getLogger(Lm2MtsDataSource.class);
|
||||
private final Lm2MtsDataItem dataItem = new Lm2MtsDataItem();
|
||||
private MTSRunner runner;
|
||||
private int mtsPort = 0;
|
||||
|
||||
public String getName() {
|
||||
return "Innovate LM-2 [mts]";
|
||||
}
|
||||
|
||||
public String getVersion() {
|
||||
return "0.01";
|
||||
}
|
||||
|
||||
public List<? extends ExternalDataItem> getDataItems() {
|
||||
return asList(dataItem);
|
||||
}
|
||||
|
||||
public Action getMenuAction(EcuLogger logger) {
|
||||
return new Lm2MtsPluginMenuAction(logger, this);
|
||||
}
|
||||
|
||||
public void setPort(String port) {
|
||||
mtsPort = mtsPort(port);
|
||||
}
|
||||
|
||||
public String getPort() {
|
||||
return "" + mtsPort;
|
||||
}
|
||||
|
||||
public void connect() {
|
||||
runner = new MTSRunnerImpl(mtsPort, dataItem);
|
||||
runAsDaemon(runner);
|
||||
}
|
||||
|
||||
public void disconnect() {
|
||||
if (runner != null) runner.stop();
|
||||
}
|
||||
|
||||
private int mtsPort(String port) {
|
||||
try {
|
||||
return parseInt(port);
|
||||
} catch (Exception e) {
|
||||
LOGGER.warn("Bad MTS port: " + port);
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,61 @@
|
|||
/*
|
||||
* RomRaider Open-Source Tuning, Logging and Reflashing
|
||||
* Copyright (C) 2006-2009 RomRaider.com
|
||||
*
|
||||
* 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
|
||||
* the Free Software Foundation; either version 2 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License along
|
||||
* with this program; if not, write to the Free Software Foundation, Inc.,
|
||||
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||
*/
|
||||
|
||||
package com.romraider.logger.innovate.lm2.mts.plugin;
|
||||
|
||||
import com.romraider.logger.ecu.EcuLogger;
|
||||
import com.romraider.logger.ecu.external.ExternalDataSource;
|
||||
import com.romraider.logger.ecu.ui.swing.menubar.action.AbstractAction;
|
||||
import com.romraider.logger.innovate.generic.mts.io.MTS;
|
||||
import static com.romraider.logger.innovate.generic.mts.io.MTSFactory.createMTS;
|
||||
import static javax.swing.JOptionPane.QUESTION_MESSAGE;
|
||||
import static javax.swing.JOptionPane.showInputDialog;
|
||||
import java.awt.event.ActionEvent;
|
||||
|
||||
public final class Lm2MtsPluginMenuAction extends AbstractAction {
|
||||
private final ExternalDataSource dataSource;
|
||||
|
||||
public Lm2MtsPluginMenuAction(EcuLogger logger, ExternalDataSource dataSource) {
|
||||
super(logger);
|
||||
this.dataSource = dataSource;
|
||||
}
|
||||
|
||||
public void actionPerformed(ActionEvent actionEvent) {
|
||||
String port = (String) showInputDialog(logger, "Select MTS port:", dataSource.getName() + " Plugin Settings", QUESTION_MESSAGE, null,
|
||||
getPorts(), dataSource.getPort());
|
||||
dataSource.setPort(port);
|
||||
}
|
||||
|
||||
private String[] getPorts() {
|
||||
MTS mts = createMTS();
|
||||
try {
|
||||
int portCount = mts.portCount();
|
||||
String[] result = new String[portCount];
|
||||
for (int i = 0; i < portCount; i++) {
|
||||
result[i] = "" + i;
|
||||
mts.currentPort(i);
|
||||
String name = mts.portName();
|
||||
System.out.println("MTS: found port [" + i + "]: " + name);
|
||||
}
|
||||
return result;
|
||||
} finally {
|
||||
mts.dispose();
|
||||
}
|
||||
}
|
||||
}
|
|
@ -17,9 +17,9 @@
|
|||
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||
*/
|
||||
|
||||
package com.romraider.logger.innovate.lm2.plugin;
|
||||
package com.romraider.logger.innovate.lm2.serial.plugin;
|
||||
|
||||
import com.romraider.logger.innovate.generic.plugin.DataConvertor;
|
||||
import com.romraider.logger.innovate.generic.serial.plugin.DataConvertor;
|
||||
import static com.romraider.util.ByteUtil.matchOnes;
|
||||
import static com.romraider.util.ByteUtil.matchZeroes;
|
||||
import static com.romraider.util.HexUtil.asBytes;
|
||||
|
@ -27,8 +27,8 @@ import static com.romraider.util.HexUtil.asHex;
|
|||
import org.apache.log4j.Logger;
|
||||
|
||||
//TODO: Remove dupe with Lc1DataConvertor
|
||||
public final class Lm2DataConvertor implements DataConvertor {
|
||||
private static final Logger LOGGER = Logger.getLogger(Lm2DataConvertor.class);
|
||||
public final class Lm2SerialDataConvertor implements DataConvertor {
|
||||
private static final Logger LOGGER = Logger.getLogger(Lm2SerialDataConvertor.class);
|
||||
private static final double MAX_AFR = 20.33;
|
||||
|
||||
public double convert(byte[] bytes) {
|
||||
|
@ -87,7 +87,7 @@ public final class Lm2DataConvertor implements DataConvertor {
|
|||
|
||||
public static void main(String[] args) {
|
||||
byte[] bytes = asBytes("0xB2808113036F1E650124007000470039003A");
|
||||
DataConvertor convertor = new Lm2DataConvertor();
|
||||
DataConvertor convertor = new Lm2SerialDataConvertor();
|
||||
double result = convertor.convert(bytes);
|
||||
System.out.println("result = " + result);
|
||||
}
|
|
@ -17,18 +17,18 @@
|
|||
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||
*/
|
||||
|
||||
package com.romraider.logger.innovate.lm2.plugin;
|
||||
package com.romraider.logger.innovate.lm2.serial.plugin;
|
||||
|
||||
import com.romraider.logger.ecu.external.ExternalDataItem;
|
||||
import com.romraider.logger.innovate.generic.plugin.DataConvertor;
|
||||
import com.romraider.logger.innovate.generic.plugin.DataListener;
|
||||
import com.romraider.logger.innovate.generic.serial.plugin.DataConvertor;
|
||||
import com.romraider.logger.innovate.generic.serial.plugin.RawDataListener;
|
||||
|
||||
public final class Lm2DataItem implements ExternalDataItem, DataListener {
|
||||
private final DataConvertor convertor = new Lm2DataConvertor();
|
||||
public final class Lm2SerialDataItem implements ExternalDataItem, RawDataListener {
|
||||
private final DataConvertor convertor = new Lm2SerialDataConvertor();
|
||||
private byte[] bytes;
|
||||
|
||||
public String getName() {
|
||||
return "Innovate LM-2";
|
||||
return "Innovate LM-2 [serial]";
|
||||
}
|
||||
|
||||
public String getDescription() {
|
|
@ -17,26 +17,27 @@
|
|||
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||
*/
|
||||
|
||||
package com.romraider.logger.innovate.lm2.plugin;
|
||||
package com.romraider.logger.innovate.lm2.serial.plugin;
|
||||
|
||||
import com.romraider.logger.ecu.EcuLogger;
|
||||
import com.romraider.logger.ecu.external.ExternalDataItem;
|
||||
import com.romraider.logger.ecu.external.ExternalDataSource;
|
||||
import com.romraider.logger.innovate.generic.io.InnovateRunnerImpl;
|
||||
import com.romraider.logger.innovate.generic.plugin.InnovateSettings;
|
||||
import com.romraider.logger.innovate.generic.plugin.InnovateSettingsImpl;
|
||||
import com.romraider.logger.innovate.generic.serial.io.InnovateRunner;
|
||||
import com.romraider.logger.innovate.generic.serial.io.InnovateRunnerImpl;
|
||||
import com.romraider.logger.innovate.generic.serial.plugin.InnovateSettings;
|
||||
import com.romraider.logger.innovate.generic.serial.plugin.InnovateSettingsImpl;
|
||||
import static com.romraider.util.ThreadUtil.runAsDaemon;
|
||||
import javax.swing.Action;
|
||||
import static java.util.Arrays.asList;
|
||||
import java.util.List;
|
||||
|
||||
public final class Lm2DataSource implements ExternalDataSource {
|
||||
public final class Lm2SerialDataSource implements ExternalDataSource {
|
||||
private InnovateSettings settings = new InnovateSettingsImpl();
|
||||
private Lm2DataItem dataItem = new Lm2DataItem();
|
||||
private InnovateRunnerImpl runner;
|
||||
private Lm2SerialDataItem dataItem = new Lm2SerialDataItem();
|
||||
private InnovateRunner runner;
|
||||
|
||||
public String getName() {
|
||||
return "Innovate LM-2";
|
||||
return "Innovate LM-2 [serial]";
|
||||
}
|
||||
|
||||
public String getVersion() {
|
|
@ -1,165 +0,0 @@
|
|||
/*
|
||||
* RomRaider Open-Source Tuning, Logging and Reflashing
|
||||
* Copyright (C) 2006-2009 RomRaider.com
|
||||
*
|
||||
* 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
|
||||
* the Free Software Foundation; either version 2 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License along
|
||||
* with this program; if not, write to the Free Software Foundation, Inc.,
|
||||
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||
*/
|
||||
|
||||
package com.romraider.logger.innovate.mts;
|
||||
|
||||
import com4j.Com4jObject;
|
||||
import com4j.IID;
|
||||
import com4j.VTID;
|
||||
|
||||
@IID("{FCE3DA3F-110C-4781-B751-ABDC039BCF18}")
|
||||
public interface MTS extends Com4jObject {
|
||||
/**
|
||||
* Get number of MTS ports available
|
||||
*/
|
||||
@VTID(7)
|
||||
int portCount();
|
||||
|
||||
/**
|
||||
* CurrentMTSPort
|
||||
*/
|
||||
@VTID(8)
|
||||
int currentPort();
|
||||
|
||||
/**
|
||||
* CurrentMTSPort
|
||||
*/
|
||||
@VTID(9)
|
||||
void currentPort(int pVal);
|
||||
|
||||
/**
|
||||
* MTS Port Name
|
||||
*/
|
||||
@VTID(10)
|
||||
String portName();
|
||||
|
||||
/**
|
||||
* Attempt an MTS Connection
|
||||
*/
|
||||
@VTID(11)
|
||||
void connect();
|
||||
|
||||
/**
|
||||
* Disconnect MTS Port
|
||||
*/
|
||||
@VTID(12)
|
||||
void disconnect();
|
||||
|
||||
/**
|
||||
* Number of MTS Inputs
|
||||
*/
|
||||
@VTID(13)
|
||||
int inputCount();
|
||||
|
||||
/**
|
||||
* Current MTS Input
|
||||
*/
|
||||
@VTID(14)
|
||||
int currentInput();
|
||||
|
||||
/**
|
||||
* Current MTS Input
|
||||
*/
|
||||
@VTID(15)
|
||||
void currentInput(int pVal);
|
||||
|
||||
/**
|
||||
* Name of Current Input
|
||||
*/
|
||||
@VTID(16)
|
||||
String inputName();
|
||||
|
||||
/**
|
||||
* Units used by Input
|
||||
*/
|
||||
@VTID(17)
|
||||
String inputUnit();
|
||||
|
||||
/**
|
||||
* Name of Device Providing Input
|
||||
*/
|
||||
@VTID(18)
|
||||
String inputDeviceName();
|
||||
|
||||
/**
|
||||
* Type of Device Providing Input
|
||||
*/
|
||||
@VTID(19)
|
||||
int inputDeviceType();
|
||||
|
||||
/**
|
||||
* Type of Input
|
||||
*/
|
||||
@VTID(20)
|
||||
int inputType();
|
||||
|
||||
/**
|
||||
* Channel on Device providing Input
|
||||
*/
|
||||
@VTID(21)
|
||||
int inputDeviceChannel();
|
||||
|
||||
/**
|
||||
* AFR Multiplier for Input (if used)
|
||||
*/
|
||||
@VTID(22)
|
||||
float inputAFRMultiplier();
|
||||
|
||||
/**
|
||||
* Minimum Value (units) for Input
|
||||
*/
|
||||
@VTID(23)
|
||||
float inputMinValue();
|
||||
|
||||
/**
|
||||
* Max value (in units) for Input
|
||||
*/
|
||||
@VTID(24)
|
||||
float inputMaxValue();
|
||||
|
||||
/**
|
||||
* Voltage equivelent to Input Min Value
|
||||
*/
|
||||
@VTID(25)
|
||||
float inputMinVolt();
|
||||
|
||||
/**
|
||||
* Voltage equivelent to Input Max Value
|
||||
*/
|
||||
@VTID(26)
|
||||
float inputMaxVolt();
|
||||
|
||||
/**
|
||||
* Raw Sample (0-1023) for Input
|
||||
*/
|
||||
@VTID(27)
|
||||
int inputSample();
|
||||
|
||||
/**
|
||||
* Status and Function of Input Sample
|
||||
*/
|
||||
@VTID(28)
|
||||
int inputFunction();
|
||||
|
||||
/**
|
||||
* Call to start NewData events from MTS Connection
|
||||
*/
|
||||
@VTID(29)
|
||||
void startData();
|
||||
}
|
|
@ -1,44 +0,0 @@
|
|||
/*
|
||||
* RomRaider Open-Source Tuning, Logging and Reflashing
|
||||
* Copyright (C) 2006-2009 RomRaider.com
|
||||
*
|
||||
* 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
|
||||
* the Free Software Foundation; either version 2 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License along
|
||||
* with this program; if not, write to the Free Software Foundation, Inc.,
|
||||
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||
*/
|
||||
|
||||
package com.romraider.logger.innovate.mts;
|
||||
|
||||
import com4j.DISPID;
|
||||
import com4j.IID;
|
||||
|
||||
@IID("{4A8AA6AC-E180-433E-8871-A2F8D2413F03}")
|
||||
public interface MTSEvents {
|
||||
/**
|
||||
* Triggered to indicate MTS connection result
|
||||
*/
|
||||
@DISPID(1)
|
||||
void connectionEvent(int result);
|
||||
|
||||
/**
|
||||
* Triggered when an error occurs on the MTS data stream
|
||||
*/
|
||||
@DISPID(2)
|
||||
void connectionError();
|
||||
|
||||
/**
|
||||
* Triggered when new sample data is available
|
||||
*/
|
||||
@DISPID(3)
|
||||
void newData();
|
||||
}
|
|
@ -1,165 +0,0 @@
|
|||
/*
|
||||
* RomRaider Open-Source Tuning, Logging and Reflashing
|
||||
* Copyright (C) 2006-2009 RomRaider.com
|
||||
*
|
||||
* 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
|
||||
* the Free Software Foundation; either version 2 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License along
|
||||
* with this program; if not, write to the Free Software Foundation, Inc.,
|
||||
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||
*/
|
||||
|
||||
package com.romraider.logger.innovate.mts;
|
||||
|
||||
import com4j.EventCookie;
|
||||
|
||||
public class Test implements MTSEvents {
|
||||
|
||||
private MTS mts;
|
||||
private EventCookie connectionEventCookie;
|
||||
|
||||
public Test() {
|
||||
mts = null;
|
||||
connectionEventCookie = null;
|
||||
}
|
||||
|
||||
private void printAvailableInputs() {
|
||||
System.out.println("Available inputs:");
|
||||
|
||||
for (int idx = 0; idx < mts.inputCount(); ++idx) {
|
||||
mts.currentInput(idx);
|
||||
String inputName = mts.inputName();
|
||||
int inputType = mts.inputType();
|
||||
|
||||
System.out.printf("%s : %d\n", inputName, inputType);
|
||||
}
|
||||
}
|
||||
|
||||
private void waitFor(int milliseconds) throws InterruptedException {
|
||||
synchronized (this) {
|
||||
this.wait(milliseconds);
|
||||
}
|
||||
}
|
||||
|
||||
private void getSamples(int numberOfSamples) throws InterruptedException {
|
||||
// note:
|
||||
// it sounds like the SDK allows up to 12.21 samples per second, which
|
||||
// should be more than sufficient for RomRaider
|
||||
System.out.println("Getting data samples:");
|
||||
|
||||
// give the device time to start the acquisition of data
|
||||
waitFor(1000);
|
||||
|
||||
for (int sampleCount = 0; sampleCount < numberOfSamples; ++sampleCount) {
|
||||
int data = mts.inputSample();
|
||||
int function = mts.inputFunction();
|
||||
|
||||
// note if the sample data is lambda, you might need to multiply by 14.7 or inputAFRMultiplier()
|
||||
System.out.printf("\tSample %d: data = %d, function = %d\n", sampleCount + 1, data, function);
|
||||
|
||||
// wait 200 milliseconds before grabbing the next sample
|
||||
waitFor(200);
|
||||
}
|
||||
}
|
||||
|
||||
public void Run() throws InterruptedException {
|
||||
// create an instance of the MTSSDK COM component
|
||||
mts = MTSFactory.createMTS();
|
||||
|
||||
// Note: you MUST call portCount() at least one before attempting to set
|
||||
// the current inputPort or the inputPort(int) will not do anything!
|
||||
int portCount = mts.portCount();
|
||||
|
||||
System.out.printf("Found %d ports.\n", portCount);
|
||||
|
||||
// set the current port before attempting to connect
|
||||
mts.currentPort(0);
|
||||
String portName = mts.portName();
|
||||
|
||||
System.out.printf("Set current port to 0; port name = %s\n", portName);
|
||||
|
||||
// register for MTS component events
|
||||
connectionEventCookie = mts.advise(MTSEvents.class, this);
|
||||
|
||||
// attempt to connect to the specified device
|
||||
System.out.println("connect() called.");
|
||||
mts.connect();
|
||||
|
||||
// show available inputs
|
||||
printAvailableInputs();
|
||||
|
||||
// attempt to get data
|
||||
mts.currentInput(0);
|
||||
mts.startData();
|
||||
|
||||
// notes:
|
||||
// the inputFunction() method retrieves the meaning of the sample - this can be lambda/AFR,
|
||||
// error code, etc. The inputSample() method retrieves the current data.
|
||||
// for instance, running this without having the O2 sensor plugged in will cause inputFunction() to
|
||||
// return 6 and inputSample() to return 9.
|
||||
// see the LM-2 manual for more information on error codes.
|
||||
//
|
||||
// list of function codes:
|
||||
//
|
||||
// MTS_FUNC_LAMBDA 0
|
||||
// MTS_FUNC_O2 1
|
||||
// MTS_FUNC_INCALIB 2
|
||||
// MTS_FUNC_RQCALIB 3
|
||||
// MTS_FUNC_WARMUP 4
|
||||
// MTS_FUNC_HTRCAL 5
|
||||
// MTS_FUNC_ERROR 6
|
||||
// MTS_FUNC_FLASHLEV 7
|
||||
// MTS_FUNC_SERMODE 8
|
||||
// MTS_FUNC_NOTLAMBDA 9
|
||||
// MTS_FUNC_INVALID 10
|
||||
|
||||
// retrieve 10 samples
|
||||
getSamples(10);
|
||||
|
||||
// dispose of the event handler instance
|
||||
connectionEventCookie.close();
|
||||
|
||||
// close the connection to the device
|
||||
System.out.println("disconnect() called.");
|
||||
mts.disconnect();
|
||||
|
||||
// release COM resources
|
||||
mts.dispose();
|
||||
}
|
||||
|
||||
// generated in response to a call to connect()
|
||||
// see the SDK doc for explanation of error codes
|
||||
public void connectionEvent(int result) {
|
||||
System.out.printf("connectionEvent raised. result = %d\n", result);
|
||||
}
|
||||
|
||||
public void connectionError() {
|
||||
// occurs when there is an error in the data stream (i.e. I assume connection lost, protocol error)
|
||||
}
|
||||
|
||||
public void newData() {
|
||||
//int data = mts.inputSample();
|
||||
//float multiplier = mts.inputAFRMultiplier();
|
||||
//int sampleMeaning = mts.inputFunction();
|
||||
//System.out.printf("newData raised. data = %f\n", data * multiplier);
|
||||
}
|
||||
|
||||
/**
|
||||
* @param args
|
||||
* @throws InterruptedException
|
||||
*/
|
||||
public static void main(String[] args) throws InterruptedException {
|
||||
Test test = new Test();
|
||||
test.Run();
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -22,6 +22,7 @@ package com.romraider.logger.plx.plugin;
|
|||
import com.romraider.logger.ecu.EcuLogger;
|
||||
import com.romraider.logger.ecu.external.ExternalDataItem;
|
||||
import com.romraider.logger.ecu.external.ExternalDataSource;
|
||||
import com.romraider.logger.plx.io.PlxRunner;
|
||||
import com.romraider.logger.plx.io.PlxRunnerImpl;
|
||||
import com.romraider.logger.plx.io.PlxSensorType;
|
||||
import static com.romraider.logger.plx.io.PlxSensorType.WIDEBAND_AFR;
|
||||
|
@ -36,7 +37,7 @@ import java.util.Map;
|
|||
public final class PlxDataSource implements ExternalDataSource {
|
||||
private final Map<PlxSensorType, PlxDataItem> dataItems = new HashMap<PlxSensorType, PlxDataItem>();
|
||||
private final PlxSettings settings = new PlxSettingsImpl();
|
||||
private PlxRunnerImpl runner;
|
||||
private PlxRunner runner;
|
||||
|
||||
{
|
||||
dataItems.put(WIDEBAND_AFR, new PlxDataItemImpl("Wideband AFR", "AFR", WIDEBAND_AFR, WIDEBAND_AFR_GASOLINE147));
|
||||
|
|
|
@ -22,6 +22,7 @@ package com.romraider.logger.zt2.plugin;
|
|||
import com.romraider.logger.ecu.EcuLogger;
|
||||
import com.romraider.logger.ecu.external.ExternalDataItem;
|
||||
import com.romraider.logger.ecu.external.ExternalDataSource;
|
||||
import com.romraider.logger.zt2.io.ZT2Runner;
|
||||
import com.romraider.logger.zt2.io.ZT2RunnerImpl;
|
||||
import com.romraider.logger.zt2.io.ZT2SensorType;
|
||||
import static com.romraider.logger.zt2.io.ZT2SensorType.AFR;
|
||||
|
@ -38,9 +39,9 @@ import java.util.List;
|
|||
import java.util.Map;
|
||||
|
||||
public final class ZT2DataSource implements ExternalDataSource {
|
||||
private ZT2Settings settings = new ZT2SettingsImpl();
|
||||
|
||||
private final Map<ZT2SensorType, ZT2DataItem> dataItems = new HashMap<ZT2SensorType, ZT2DataItem>();
|
||||
private ZT2Settings settings = new ZT2SettingsImpl();
|
||||
private ZT2Runner runner;
|
||||
|
||||
{
|
||||
dataItems.put(AFR, new ZT2DataItemImpl("Wideband AFR", "AFR", AFR));
|
||||
|
@ -50,8 +51,6 @@ public final class ZT2DataSource implements ExternalDataSource {
|
|||
dataItems.put(EGT, new ZT2DataItemImpl("EGT", "Celsius", EGT));
|
||||
}
|
||||
|
||||
private ZT2RunnerImpl runner;
|
||||
|
||||
public String getName() {
|
||||
return "Zeitronix ZT-2";
|
||||
}
|
||||
|
|
|
@ -50,7 +50,7 @@
|
|||
<file src="plugins/aem.plugin" targetdir="$INSTALL_PATH/plugins"/>
|
||||
<file src="plugins/lc1.plugin" targetdir="$INSTALL_PATH/plugins"/>
|
||||
<file src="plugins/lm1.plugin" targetdir="$INSTALL_PATH/plugins"/>
|
||||
<file src="plugins/lm2.plugin" targetdir="$INSTALL_PATH/plugins"/>
|
||||
<file src="plugins/lm2_serial.plugin" targetdir="$INSTALL_PATH/plugins"/>
|
||||
<file src="plugins/plx.plugin" targetdir="$INSTALL_PATH/plugins"/>
|
||||
<file src="plugins/zt2.plugin" targetdir="$INSTALL_PATH/plugins"/>
|
||||
|
||||
|
|
|
@ -51,7 +51,8 @@
|
|||
<file src="plugins/aem.plugin" targetdir="$INSTALL_PATH/plugins"/>
|
||||
<file src="plugins/lc1.plugin" targetdir="$INSTALL_PATH/plugins"/>
|
||||
<file src="plugins/lm1.plugin" targetdir="$INSTALL_PATH/plugins"/>
|
||||
<file src="plugins/lm2.plugin" targetdir="$INSTALL_PATH/plugins"/>
|
||||
<file src="plugins/lm2_serial.plugin" targetdir="$INSTALL_PATH/plugins"/>
|
||||
<file src="plugins/lm2_mts.plugin" targetdir="$INSTALL_PATH/plugins"/>
|
||||
<file src="plugins/plx.plugin" targetdir="$INSTALL_PATH/plugins"/>
|
||||
<file src="plugins/zt2.plugin" targetdir="$INSTALL_PATH/plugins"/>
|
||||
|
||||
|
|
Loading…
Reference in New Issue