Console should get much smarter around compatibility with older units #6845
only:java progress
This commit is contained in:
parent
369ad09072
commit
b01641065e
|
@ -108,8 +108,6 @@
|
|||
! this offset is part of console compatibility mechanism, please DO NOT change this offset
|
||||
#define TS_FILE_VERSION_OFFSET 124
|
||||
|
||||
#define LOG_DELIMITER "`"
|
||||
|
||||
! all the sub-structures are going to be nested within the primary structure, that's
|
||||
! needed to get a proper TunerStudio file
|
||||
|
||||
|
@ -142,7 +140,6 @@ struct_no_prefix engine_configuration_s
|
|||
#define GAP_TRACKING_LENGTH 18
|
||||
#define VVT_TRACKING_LENGTH 4
|
||||
|
||||
#define CONSOLE_DATA_PROTOCOL_TAG " @"
|
||||
#define MAIN_HELP_URL "http://www.rusefi.com/"
|
||||
|
||||
#define ETB_BIAS_CURVE_LENGTH 8
|
||||
|
@ -151,8 +148,6 @@ struct_no_prefix engine_configuration_s
|
|||
#define TOOTH_PACKET_SIZE 2
|
||||
#define TOOTH_DATA_LENGTH @@TOOTH_PACKET_SIZE@@*@@TOOTH_PACKET_COUNT@@
|
||||
|
||||
#define COMPOSITE_PACKET_SIZE 5
|
||||
|
||||
#define MAP_ANGLE_SIZE 8
|
||||
#define MAP_WINDOW_SIZE 8
|
||||
|
||||
|
@ -947,7 +942,6 @@ custom maf_sensor_type_e 1 bits, S08, @OFFSET@, [0:1], @@maf_sensor_type_e_enum@
|
|||
|
||||
#define CAN_RX_PREFIX "CAN_rx"
|
||||
|
||||
#define CRITICAL_PREFIX "CRITICAL"
|
||||
#define WARNING_BUFFER_SIZE 120
|
||||
#define CRITICAL_BUFFER_SIZE 120
|
||||
|
||||
|
|
|
@ -158,6 +158,11 @@
|
|||
#define PROTOCOL_CRANK1 "t1"
|
||||
#define PROTOCOL_CRANK2 "t2"
|
||||
|
||||
#define CRITICAL_PREFIX "CRITICAL"
|
||||
#define COMPOSITE_PACKET_SIZE 5
|
||||
#define CONSOLE_DATA_PROTOCOL_TAG " @"
|
||||
#define LOG_DELIMITER "`"
|
||||
|
||||
#define PROTOCOL_COIL_SHORT_PREFIX "c"
|
||||
#define PROTOCOL_INJ_SHORT_PREFIX "i"
|
||||
#define PROTOCOL_INJ_STAGE2_SHORT_PREFIX "j"
|
||||
|
|
|
@ -2,7 +2,7 @@ package com.rusefi;
|
|||
|
||||
import com.devexperts.logging.Logging;
|
||||
import com.opensr5.Logger;
|
||||
import com.rusefi.config.generated.Fields;
|
||||
import com.rusefi.config.generated.Integration;
|
||||
|
||||
import java.io.BufferedReader;
|
||||
import java.io.FileReader;
|
||||
|
@ -17,7 +17,7 @@ import java.io.IOException;
|
|||
public class AverageAnglesUtil {
|
||||
private final static Logging log = Logging.getLogging(AverageAnglesUtil.class);
|
||||
|
||||
public static final String KEY = Fields.PROTOCOL_ANALOG_CHART;
|
||||
public static final String KEY = Integration.PROTOCOL_ANALOG_CHART;
|
||||
public static final String ANALOG_CHART = KEY + ",";
|
||||
|
||||
private static int currentRpm = -1;
|
||||
|
@ -69,4 +69,4 @@ public class AverageAnglesUtil {
|
|||
System.out.println(report);
|
||||
return report;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -153,7 +153,7 @@ public class IoUtil {
|
|||
* TCP connector is blocking
|
||||
*/
|
||||
linkManager.startAndConnect("" + TcpConnector.DEFAULT_PORT, ConnectionStateListener.VOID);
|
||||
linkManager.getEngineState().registerStringValueAction(Fields.PROTOCOL_VERSION_TAG, (EngineState.ValueCallback<String>) EngineState.ValueCallback.VOID);
|
||||
linkManager.getEngineState().registerStringValueAction(Integration.PROTOCOL_VERSION_TAG, (EngineState.ValueCallback<String>) EngineState.ValueCallback.VOID);
|
||||
waitForFirstResponse();
|
||||
}
|
||||
|
||||
|
|
|
@ -4,7 +4,7 @@ import com.rusefi.AutotestLogging;
|
|||
import com.rusefi.IoUtil;
|
||||
import com.rusefi.TestingUtils;
|
||||
import com.rusefi.autodetect.PortDetector;
|
||||
import com.rusefi.config.generated.Fields;
|
||||
import com.rusefi.config.generated.Integration;
|
||||
import com.rusefi.core.EngineState;
|
||||
import com.rusefi.io.LinkManager;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
@ -22,7 +22,7 @@ public class ControllerConnectorState {
|
|||
return linkManager;
|
||||
|
||||
LinkManager linkManager = new LinkManager().setCompositeLogicEnabled(false);
|
||||
linkManager.getEngineState().registerStringValueAction(Fields.PROTOCOL_VERSION_TAG, new EngineState.ValueCallback<String>() {
|
||||
linkManager.getEngineState().registerStringValueAction(Integration.PROTOCOL_VERSION_TAG, new EngineState.ValueCallback<String>() {
|
||||
@Override
|
||||
public void onUpdate(String firmwareVersion1) {
|
||||
firmwareVersion = firmwareVersion1;
|
||||
|
|
|
@ -4,7 +4,6 @@ import com.devexperts.logging.Logging;
|
|||
import com.rusefi.autotest.ControllerConnectorState;
|
||||
import com.rusefi.IoUtil;
|
||||
import com.rusefi.Timeouts;
|
||||
import com.rusefi.config.generated.Fields;
|
||||
import com.rusefi.config.generated.Integration;
|
||||
import com.rusefi.core.ISensorCentral;
|
||||
import com.rusefi.core.Sensor;
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
package com.rusefi.functional_tests;
|
||||
|
||||
import com.rusefi.config.generated.Fields;
|
||||
import com.rusefi.config.generated.Integration;
|
||||
import com.rusefi.core.MessagesCentral;
|
||||
|
||||
import static com.rusefi.TestingUtils.assertNull;
|
||||
|
@ -12,7 +12,7 @@ public enum TestHelper {
|
|||
|
||||
TestHelper() {
|
||||
MessagesCentral.getInstance().addListener((clazz, message) -> {
|
||||
if (message.startsWith(Fields.CRITICAL_PREFIX))
|
||||
if (message.startsWith(Integration.CRITICAL_PREFIX))
|
||||
criticalError = message;
|
||||
});
|
||||
}
|
||||
|
|
|
@ -3,7 +3,6 @@ package com.rusefi.simulator;
|
|||
import com.devexperts.logging.Logging;
|
||||
import com.rusefi.IoUtil;
|
||||
import com.rusefi.Timeouts;
|
||||
import com.rusefi.config.generated.Fields;
|
||||
import com.rusefi.config.generated.Integration;
|
||||
import com.rusefi.core.Sensor;
|
||||
import com.rusefi.core.SensorCentral;
|
||||
|
@ -57,7 +56,7 @@ public class SimulatorFunctionalTest {
|
|||
ecu.sendCommand(getDisableCommand(Integration.CMD_SELF_STIMULATION));
|
||||
IoUtil.awaitRpm(0);
|
||||
|
||||
testOutputPin(bench_mode_e.BENCH_VVT0_VALVE, Fields.BENCH_VVT_DURATION);
|
||||
testOutputPin(bench_mode_e.BENCH_VVT0_VALVE, Integration.BENCH_VVT_DURATION);
|
||||
}
|
||||
|
||||
private void assertHappyTriggerSimulator() throws InterruptedException {
|
||||
|
|
|
@ -2,7 +2,7 @@ package com.rusefi.autodetect;
|
|||
|
||||
import com.devexperts.logging.Logging;
|
||||
import com.rusefi.binaryprotocol.IncomingDataBuffer;
|
||||
import com.rusefi.config.generated.Fields;
|
||||
import com.rusefi.config.generated.Integration;
|
||||
import com.rusefi.core.net.ConnectionAndMeta;
|
||||
import com.rusefi.io.IoStream;
|
||||
import com.rusefi.io.commands.HelloCommand;
|
||||
|
@ -60,7 +60,7 @@ public class SerialAutoChecker {
|
|||
}
|
||||
|
||||
private static boolean isSignatureWithValidPrefix(String signature) {
|
||||
if (signature.startsWith(Fields.PROTOCOL_SIGNATURE_PREFIX))
|
||||
if (signature.startsWith(Integration.PROTOCOL_SIGNATURE_PREFIX))
|
||||
return true;
|
||||
String signatureWhiteLabel = ConnectionAndMeta.getSignatureWhiteLabel();
|
||||
return signatureWhiteLabel != null && signature.startsWith(signatureWhiteLabel + " ");
|
||||
|
|
|
@ -1,7 +1,6 @@
|
|||
package com.rusefi.binaryprotocol;
|
||||
|
||||
import com.devexperts.logging.Logging;
|
||||
import com.rusefi.config.generated.Fields;
|
||||
import com.rusefi.config.generated.Integration;
|
||||
import com.rusefi.util.HexBinary;
|
||||
|
||||
|
|
|
@ -2,7 +2,6 @@ package com.rusefi.io;
|
|||
|
||||
import com.devexperts.logging.Logging;
|
||||
import com.rusefi.Listener;
|
||||
import com.rusefi.config.generated.Fields;
|
||||
import com.rusefi.config.generated.Integration;
|
||||
import com.rusefi.util.IoUtils;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
package com.rusefi.io;
|
||||
|
||||
import com.rusefi.config.generated.Fields;
|
||||
import com.rusefi.config.generated.Integration;
|
||||
import com.rusefi.core.MessagesCentral;
|
||||
import com.rusefi.core.Sensor;
|
||||
import com.rusefi.core.SensorCentral;
|
||||
|
@ -36,7 +36,7 @@ public class ConnectionStatusLogic {
|
|||
MessagesCentral.getInstance().addListener(new MessagesCentral.MessageListener() {
|
||||
@Override
|
||||
public void onMessage(Class clazz, String message) {
|
||||
if (message.startsWith(Fields.CRITICAL_PREFIX))
|
||||
if (message.startsWith(Integration.CRITICAL_PREFIX))
|
||||
markConnected();
|
||||
}
|
||||
});
|
||||
|
@ -74,4 +74,4 @@ public class ConnectionStatusLogic {
|
|||
public interface Listener {
|
||||
void onConnectionStatus(boolean isConnected);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -2,7 +2,6 @@ package com.rusefi.io.can.elm;
|
|||
|
||||
import com.devexperts.logging.Logging;
|
||||
import com.opensr5.io.DataListener;
|
||||
import com.rusefi.config.generated.Fields;
|
||||
import com.rusefi.io.can.HexUtil;
|
||||
import com.rusefi.io.can.isotp.IsoTpConnector;
|
||||
import com.rusefi.util.HexBinary;
|
||||
|
|
|
@ -1,7 +1,6 @@
|
|||
package com.rusefi.io.commands;
|
||||
|
||||
import com.rusefi.binaryprotocol.BinaryProtocol;
|
||||
import com.rusefi.config.generated.Fields;
|
||||
import com.rusefi.config.generated.Integration;
|
||||
|
||||
import static com.rusefi.binaryprotocol.IoHelper.checkResponseCode;
|
||||
|
|
|
@ -1,7 +1,6 @@
|
|||
package com.rusefi.io.commands;
|
||||
|
||||
import com.rusefi.binaryprotocol.IncomingDataBuffer;
|
||||
import com.rusefi.config.generated.Fields;
|
||||
import com.rusefi.config.generated.Integration;
|
||||
import com.rusefi.io.IoStream;
|
||||
import com.rusefi.io.tcp.BinaryProtocolServer;
|
||||
|
|
|
@ -1,7 +1,6 @@
|
|||
package com.rusefi.io.commands;
|
||||
|
||||
import com.rusefi.binaryprotocol.BinaryProtocol;
|
||||
import com.rusefi.config.generated.Fields;
|
||||
import com.rusefi.config.generated.Integration;
|
||||
import com.rusefi.tracing.Entry;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
|
|
@ -3,7 +3,6 @@ package com.rusefi.proxy;
|
|||
import com.devexperts.logging.Logging;
|
||||
import com.rusefi.NamedThreadFactory;
|
||||
import com.rusefi.binaryprotocol.IncomingDataBuffer;
|
||||
import com.rusefi.config.generated.Fields;
|
||||
import com.rusefi.config.generated.Integration;
|
||||
import com.rusefi.io.commands.HelloCommand;
|
||||
import com.rusefi.io.tcp.BinaryProtocolServer;
|
||||
|
|
|
@ -3,7 +3,7 @@ package com.rusefi.binaryprotocol.test;
|
|||
import com.devexperts.logging.Logging;
|
||||
import com.opensr5.ConfigurationImage;
|
||||
import com.rusefi.binaryprotocol.BinaryProtocol;
|
||||
import com.rusefi.config.generated.Fields;
|
||||
import com.rusefi.config.generated.Integration;
|
||||
import com.rusefi.io.LinkManager;
|
||||
import com.rusefi.io.serial.AbstractIoStream;
|
||||
import com.rusefi.io.can.PCanIoStream;
|
||||
|
@ -28,7 +28,7 @@ public class PCanSandbox {
|
|||
for (int i = 0; i < 17; i++) {
|
||||
String signature = BinaryProtocol.getSignature(tsStream);
|
||||
System.out.println("Got " + i + " " + signature + " signature via PCAN");
|
||||
if (signature == null || !signature.startsWith(Fields.PROTOCOL_SIGNATURE_PREFIX))
|
||||
if (signature == null || !signature.startsWith(Integration.PROTOCOL_SIGNATURE_PREFIX))
|
||||
throw new IllegalStateException("Unexpected S " + signature);
|
||||
}
|
||||
log.info("****************************************");
|
||||
|
|
|
@ -6,7 +6,6 @@ import com.opensr5.ini.IniFileModelImpl;
|
|||
import com.rusefi.binaryprotocol.BinaryProtocol;
|
||||
import com.rusefi.binaryprotocol.BinaryProtocolState;
|
||||
import com.rusefi.binaryprotocol.IncomingDataBuffer;
|
||||
import com.rusefi.config.generated.Fields;
|
||||
import com.rusefi.config.generated.Integration;
|
||||
import com.rusefi.io.ConnectionStateListener;
|
||||
import com.rusefi.util.HexBinary;
|
||||
|
@ -78,7 +77,7 @@ public class SandboxCommon {
|
|||
static void verifySignature(IoStream tsStream, String prefix, String suffix) throws IOException {
|
||||
String signature = BinaryProtocol.getSignature(tsStream);
|
||||
log.info(prefix + "Got " + signature + " signature via " + suffix);
|
||||
if (signature == null || !signature.startsWith(Fields.PROTOCOL_SIGNATURE_PREFIX))
|
||||
if (signature == null || !signature.startsWith(Integration.PROTOCOL_SIGNATURE_PREFIX))
|
||||
throw new IllegalStateException("Unexpected S " + signature);
|
||||
}
|
||||
|
||||
|
|
|
@ -2,7 +2,6 @@ package com.rusefi.test;
|
|||
|
||||
import com.rusefi.binaryprotocol.BinaryProtocol;
|
||||
import com.rusefi.binaryprotocol.IoHelper;
|
||||
import com.rusefi.config.generated.Fields;
|
||||
import com.rusefi.config.generated.Integration;
|
||||
import com.rusefi.io.commands.GetOutputsCommand;
|
||||
//import org.apache.commons.codec.binary.Hex;
|
||||
|
|
|
@ -3,6 +3,7 @@ package com.rusefi.composite;
|
|||
import com.devexperts.logging.Logging;
|
||||
import com.opensr5.ini.field.EnumIniField;
|
||||
import com.rusefi.config.generated.Fields;
|
||||
import com.rusefi.config.generated.Integration;
|
||||
|
||||
import java.nio.ByteBuffer;
|
||||
import java.nio.ByteOrder;
|
||||
|
@ -37,7 +38,7 @@ public class CompositeParser {
|
|||
boolean coil = EnumIniField.getBit(flags, 4);
|
||||
boolean injector = EnumIniField.getBit(flags, 5);
|
||||
|
||||
ptr += Fields.COMPOSITE_PACKET_SIZE;
|
||||
ptr += Integration.COMPOSITE_PACKET_SIZE;
|
||||
|
||||
// If the timestamp went down, that means we just witnessed an integer overflow
|
||||
if (timestamp < prevTime) {
|
||||
|
|
|
@ -1,23 +1,23 @@
|
|||
package com.rusefi.config;
|
||||
|
||||
import com.rusefi.config.generated.Fields;
|
||||
import com.rusefi.config.generated.Integration;
|
||||
import com.rusefi.core.Pair;
|
||||
|
||||
import static com.rusefi.config.FieldType.*;
|
||||
|
||||
public class FieldCommandResponse {
|
||||
private static final String BIT_VALUE_PREFIX = "bit" + Fields.CONSOLE_DATA_PROTOCOL_TAG;
|
||||
private static final String INT_VALUE_PREFIX = INT_TYPE_STRING + Fields.CONSOLE_DATA_PROTOCOL_TAG;
|
||||
private static final String FLOAT_VALUE_PREFIX = FLOAT_TYPE_STRING + Fields.CONSOLE_DATA_PROTOCOL_TAG;
|
||||
private static final String BIT_VALUE_PREFIX = "bit" + Integration.CONSOLE_DATA_PROTOCOL_TAG;
|
||||
private static final String INT_VALUE_PREFIX = INT_TYPE_STRING + Integration.CONSOLE_DATA_PROTOCOL_TAG;
|
||||
private static final String FLOAT_VALUE_PREFIX = FLOAT_TYPE_STRING + Integration.CONSOLE_DATA_PROTOCOL_TAG;
|
||||
|
||||
public static Pair<Integer, ?> parseResponse(String message) {
|
||||
try {
|
||||
int atPosition = message.indexOf(Fields.CONSOLE_DATA_PROTOCOL_TAG);
|
||||
int atPosition = message.indexOf(Integration.CONSOLE_DATA_PROTOCOL_TAG);
|
||||
if (atPosition == -1)
|
||||
return null;
|
||||
String firstToken = message.substring(0, atPosition);
|
||||
if (firstToken.equals(INT_TYPE_STRING) || firstToken.equals(BYTE_TYPE_STRING) || firstToken.equals(SHORT_TYPE_STRING)) {
|
||||
message = message.substring(atPosition + Fields.CONSOLE_DATA_PROTOCOL_TAG.length());
|
||||
message = message.substring(atPosition + Integration.CONSOLE_DATA_PROTOCOL_TAG.length());
|
||||
String[] a = message.split(" is ");
|
||||
if (a.length != 2)
|
||||
return null;
|
||||
|
|
|
@ -57,10 +57,14 @@ public class Integration {
|
|||
public static final String CMD_TRIGGERINFO = "triggerinfo";
|
||||
public static final String CMD_VSS_PIN = "vss_pin";
|
||||
public static final String CMD_WRITECONFIG = "writeconfig";
|
||||
public static final int COMPOSITE_PACKET_SIZE = 5;
|
||||
public static final String CONSOLE_DATA_PROTOCOL_TAG = " @";
|
||||
public static final String CRITICAL_PREFIX = "CRITICAL";
|
||||
public static final int DEFAULT_SELT_STIM_RPM = 1200;
|
||||
public static final int DEFAULT_SELT_STIM_VVT0 = 23;
|
||||
public static final int ENGINE_SNIFFER_UNIT_US = 10;
|
||||
public static final String FRONTEND_TITLE_BAR_NAME = "rusEFI";
|
||||
public static final String LOG_DELIMITER = "`";
|
||||
public static final int MLQ_FIELD_HEADER_SIZE = 89;
|
||||
public static final int MLQ_HEADER_SIZE = 24;
|
||||
public static final String PROTOCOL_ANALOG_CHART = "analog_chart";
|
||||
|
|
|
@ -2,7 +2,7 @@ package com.rusefi.core;
|
|||
|
||||
import com.devexperts.logging.Logging;
|
||||
import com.opensr5.Logger;
|
||||
import com.rusefi.config.generated.Fields;
|
||||
import com.rusefi.config.generated.Integration;
|
||||
import com.rusefi.io.LinkDecoder;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
||||
|
@ -36,7 +36,7 @@ public class EngineState {
|
|||
|
||||
public StringActionPair(String key, ValueCallback<String> second) {
|
||||
super(key, second);
|
||||
prefix = key.toLowerCase() + Fields.LOG_DELIMITER;
|
||||
prefix = key.toLowerCase() + Integration.LOG_DELIMITER;
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -67,7 +67,7 @@ public class EngineState {
|
|||
}
|
||||
);
|
||||
|
||||
registerStringValueAction(Fields.PROTOCOL_MSG, value -> MessagesCentral.getInstance().postMessage(ENGINE_STATE_CLASS, value));
|
||||
registerStringValueAction(Integration.PROTOCOL_MSG, value -> MessagesCentral.getInstance().postMessage(ENGINE_STATE_CLASS, value));
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -137,13 +137,13 @@ public class EngineState {
|
|||
}
|
||||
if (originalResponse.length() == response.length()) {
|
||||
log.info("EngineState.unknown: " + response);
|
||||
int keyEnd = response.indexOf(Fields.LOG_DELIMITER);
|
||||
int keyEnd = response.indexOf(Integration.LOG_DELIMITER);
|
||||
if (keyEnd == -1) {
|
||||
// discarding invalid line
|
||||
return "";
|
||||
}
|
||||
String unknownKey = response.substring(0, keyEnd);
|
||||
int valueEnd = response.indexOf(Fields.LOG_DELIMITER, keyEnd + 1);
|
||||
int valueEnd = response.indexOf(Integration.LOG_DELIMITER, keyEnd + 1);
|
||||
if (valueEnd == -1) {
|
||||
// discarding invalid line
|
||||
return "";
|
||||
|
@ -151,25 +151,25 @@ public class EngineState {
|
|||
String value = response.substring(keyEnd, valueEnd);
|
||||
log.info("Invalid key [" + unknownKey + "] value [" + value + "]");
|
||||
// trying to process the rest of the line
|
||||
response = response.substring(valueEnd + Fields.LOG_DELIMITER.length());
|
||||
response = response.substring(valueEnd + Integration.LOG_DELIMITER.length());
|
||||
}
|
||||
return response;
|
||||
}
|
||||
|
||||
public static String skipToken(String string) {
|
||||
int keyEnd = string.indexOf(Fields.LOG_DELIMITER);
|
||||
int keyEnd = string.indexOf(Integration.LOG_DELIMITER);
|
||||
if (keyEnd == -1) {
|
||||
// discarding invalid line
|
||||
return "";
|
||||
}
|
||||
return string.substring(keyEnd + Fields.LOG_DELIMITER.length());
|
||||
return string.substring(keyEnd + Integration.LOG_DELIMITER.length());
|
||||
}
|
||||
|
||||
public static String handleStringActionPair(String response, StringActionPair pair, EngineStateListener listener) {
|
||||
if (startWithIgnoreCase(response, pair.prefix)) {
|
||||
String key = pair.first;
|
||||
int beginIndex = key.length() + 1;
|
||||
int endIndex = response.indexOf(Fields.LOG_DELIMITER, beginIndex);
|
||||
int endIndex = response.indexOf(Integration.LOG_DELIMITER, beginIndex);
|
||||
if (endIndex == -1)
|
||||
endIndex = response.length();
|
||||
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
package com.rusefi.waves;
|
||||
|
||||
import com.rusefi.config.generated.Fields;
|
||||
import com.rusefi.config.generated.Integration;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
||||
import java.util.ArrayList;
|
||||
|
@ -24,7 +24,7 @@ public class EngineReport {
|
|||
/**
|
||||
* number of Engine Sniffer ticks per ms
|
||||
*/
|
||||
public static final double ENGINE_SNIFFER_TICKS_PER_MS = 1000 / Fields.ENGINE_SNIFFER_UNIT_US;
|
||||
public static final double ENGINE_SNIFFER_TICKS_PER_MS = 1000 / Integration.ENGINE_SNIFFER_UNIT_US;
|
||||
public static final double RATIO = 0.05;
|
||||
|
||||
private final List<UpDown> list;
|
||||
|
|
|
@ -4,7 +4,6 @@ import com.opensr5.ConfigurationImage;
|
|||
import com.opensr5.ini.field.IniField;
|
||||
import com.opensr5.ini.field.ScalarIniField;
|
||||
import com.rusefi.config.FieldType;
|
||||
import com.rusefi.config.generated.Fields;
|
||||
import com.rusefi.tune.xml.Constant;
|
||||
import org.junit.jupiter.api.Test;
|
||||
|
||||
|
|
|
@ -1,6 +1,5 @@
|
|||
package com.rusefi.ui.engine;
|
||||
|
||||
import com.rusefi.config.generated.Fields;
|
||||
import com.rusefi.config.generated.Integration;
|
||||
import com.rusefi.core.Sensor;
|
||||
|
||||
|
@ -17,11 +16,11 @@ public class NameUtil {
|
|||
return name;
|
||||
if (name.charAt(0) == Integration.PROTOCOL_CRANK1.charAt(0))
|
||||
return "Trigger #" + name.substring(1);
|
||||
if (name.charAt(0) == Fields.PROTOCOL_COIL_SHORT_PREFIX.charAt(0))
|
||||
if (name.charAt(0) == Integration.PROTOCOL_COIL_SHORT_PREFIX.charAt(0))
|
||||
return "Coil #" + name.substring(1);
|
||||
if (name.charAt(0) == Fields.PROTOCOL_INJ_SHORT_PREFIX.charAt(0))
|
||||
if (name.charAt(0) == Integration.PROTOCOL_INJ_SHORT_PREFIX.charAt(0))
|
||||
return "Injector #" + name.substring(1);
|
||||
if (name.charAt(0) == Fields.PROTOCOL_INJ_STAGE2_SHORT_PREFIX.charAt(0))
|
||||
if (name.charAt(0) == Integration.PROTOCOL_INJ_STAGE2_SHORT_PREFIX.charAt(0))
|
||||
return "Injector Second Stage #" + name.substring(1);
|
||||
return name;
|
||||
}
|
||||
|
|
|
@ -3,6 +3,7 @@ package com.rusefi.sensor_logs;
|
|||
import com.devexperts.logging.FileLogger;
|
||||
import com.rusefi.FileLog;
|
||||
import com.rusefi.config.generated.Fields;
|
||||
import com.rusefi.config.generated.Integration;
|
||||
import com.rusefi.core.rusEFIVersion;
|
||||
|
||||
import java.io.*;
|
||||
|
@ -113,7 +114,7 @@ public class BinarySensorLog<T extends BinaryLogEntry> implements SensorLog {
|
|||
// 0008h Timestamp
|
||||
stream.writeInt((int) (System.currentTimeMillis() / 1000));
|
||||
|
||||
int headerSize = Fields.MLQ_HEADER_SIZE + Fields.MLQ_FIELD_HEADER_SIZE * entries.size();
|
||||
int headerSize = Integration.MLQ_HEADER_SIZE + Integration.MLQ_FIELD_HEADER_SIZE * entries.size();
|
||||
// 000ch Info data start - immediately after header
|
||||
stream.writeInt(headerSize);
|
||||
|
||||
|
|
|
@ -387,7 +387,7 @@ public class ConsoleTools {
|
|||
EngineState.ValueCallback<String> callback = new EngineState.ValueCallback<String>() {
|
||||
@Override
|
||||
public void onUpdate(String value) {
|
||||
if (value.startsWith(Fields.PROTOCOL_HELLO_PREFIX)) {
|
||||
if (value.startsWith(Integration.PROTOCOL_HELLO_PREFIX)) {
|
||||
messages.append(value);
|
||||
messages.append("\n");
|
||||
}
|
||||
|
@ -395,7 +395,7 @@ public class ConsoleTools {
|
|||
};
|
||||
while (!unpack.isEmpty()) {
|
||||
String original = unpack;
|
||||
unpack = EngineState.handleStringActionPair(unpack, new EngineState.StringActionPair(Fields.PROTOCOL_MSG, callback), null);
|
||||
unpack = EngineState.handleStringActionPair(unpack, new EngineState.StringActionPair(Integration.PROTOCOL_MSG, callback), null);
|
||||
if (original.length() == unpack.length()) {
|
||||
// skip key
|
||||
unpack = EngineState.skipToken(unpack);
|
||||
|
|
|
@ -4,6 +4,7 @@ import com.opensr5.ConfigurationImage;
|
|||
import com.rusefi.config.Field;
|
||||
import com.rusefi.config.FieldCommandResponse;
|
||||
import com.rusefi.config.generated.Fields;
|
||||
import com.rusefi.config.generated.Integration;
|
||||
import com.rusefi.core.MessagesCentral;
|
||||
import com.rusefi.ui.UIContext;
|
||||
|
||||
|
@ -25,7 +26,7 @@ public class BitConfigField extends BaseConfigField {
|
|||
public void onMessage(Class clazz, String message) {
|
||||
if (FieldCommandResponse.isBitValueMessage(message)) {
|
||||
String expectedPrefix = "bit" +
|
||||
Fields.CONSOLE_DATA_PROTOCOL_TAG + field.getOffset() + "/" + field.getBitOffset() + " is ";
|
||||
Integration.CONSOLE_DATA_PROTOCOL_TAG + field.getOffset() + "/" + field.getBitOffset() + " is ";
|
||||
if (message.startsWith(expectedPrefix) && message.length() == expectedPrefix.length() + 1) {
|
||||
message = message.substring(expectedPrefix.length());
|
||||
Boolean value = message.equals("1");
|
||||
|
@ -59,4 +60,4 @@ public class BitConfigField extends BaseConfigField {
|
|||
boolean bit = ((bits >> field.getBitOffset()) & 1) == 1;
|
||||
setValue(bit);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -104,7 +104,7 @@ public class MainFrame {
|
|||
}
|
||||
});
|
||||
|
||||
consoleUI.uiContext.getLinkManager().getEngineState().registerStringValueAction(Fields.PROTOCOL_VERSION_TAG, new EngineState.ValueCallback<String>() {
|
||||
consoleUI.uiContext.getLinkManager().getEngineState().registerStringValueAction(Integration.PROTOCOL_VERSION_TAG, new EngineState.ValueCallback<String>() {
|
||||
@Override
|
||||
public void onUpdate(String firmwareVersion) {
|
||||
Launcher.firmwareVersion.set(firmwareVersion);
|
||||
|
|
|
@ -3,6 +3,7 @@ package com.rusefi.ui.engine;
|
|||
import com.devexperts.logging.Logging;
|
||||
import com.rusefi.FileLog;
|
||||
import com.rusefi.config.generated.Fields;
|
||||
import com.rusefi.config.generated.Integration;
|
||||
import com.rusefi.core.EngineState;
|
||||
import com.rusefi.core.Sensor;
|
||||
import com.rusefi.core.SensorCentral;
|
||||
|
@ -25,7 +26,7 @@ import java.util.*;
|
|||
import java.util.List;
|
||||
|
||||
import static com.devexperts.logging.Logging.getLogging;
|
||||
import static com.rusefi.config.generated.Fields.*;
|
||||
import static com.rusefi.config.generated.Integration.*;
|
||||
|
||||
/**
|
||||
* Engine Sniffer control consists of a set of {@link UpDownImage}
|
||||
|
@ -68,7 +69,7 @@ public class EngineSnifferPanel {
|
|||
|
||||
private final ZoomControl zoomControl = new ZoomControl();
|
||||
private final EngineSnifferStatusPanel statusPanel = new EngineSnifferStatusPanel();
|
||||
private final UpDownImage crank = createImage(Fields.PROTOCOL_CRANK1);
|
||||
private final UpDownImage crank = createImage(Integration.PROTOCOL_CRANK1);
|
||||
private final ChartScrollControl scrollControl;
|
||||
private AnyCommand command;
|
||||
|
||||
|
@ -154,7 +155,7 @@ public class EngineSnifferPanel {
|
|||
|
||||
resetImagePanel();
|
||||
|
||||
uiContext.getLinkManager().getEngineState().registerStringValueAction(Fields.PROTOCOL_ENGINE_SNIFFER, new EngineState.ValueCallback<String>() {
|
||||
uiContext.getLinkManager().getEngineState().registerStringValueAction(Integration.PROTOCOL_ENGINE_SNIFFER, new EngineState.ValueCallback<String>() {
|
||||
@Override
|
||||
public void onUpdate(String value) {
|
||||
if (isPaused)
|
||||
|
@ -173,7 +174,7 @@ public class EngineSnifferPanel {
|
|||
}
|
||||
|
||||
public void setOutpinListener(EngineState engineState) {
|
||||
engineState.registerStringValueAction(Fields.PROTOCOL_OUTPIN, new EngineState.ValueCallback<String>() {
|
||||
engineState.registerStringValueAction(Integration.PROTOCOL_OUTPIN, new EngineState.ValueCallback<String>() {
|
||||
@Override
|
||||
public void onUpdate(String value) {
|
||||
String[] pinInfo = value.split("@");
|
||||
|
@ -192,7 +193,7 @@ public class EngineSnifferPanel {
|
|||
private void resetImagePanel() {
|
||||
imagePanel.removeAll();
|
||||
imagePanel.add(crank);
|
||||
images.put(Fields.PROTOCOL_CRANK1, crank);
|
||||
images.put(Integration.PROTOCOL_CRANK1, crank);
|
||||
}
|
||||
|
||||
public void displayChart(String value) {
|
||||
|
@ -237,7 +238,7 @@ public class EngineSnifferPanel {
|
|||
}
|
||||
|
||||
// Don't render a row for the TDC mark
|
||||
if (Fields.TOP_DEAD_CENTER_MESSAGE.equalsIgnoreCase(name)) {
|
||||
if (Integration.TOP_DEAD_CENTER_MESSAGE.equalsIgnoreCase(name)) {
|
||||
return;
|
||||
}
|
||||
|
||||
|
|
|
@ -5,6 +5,7 @@ import com.devexperts.logging.Logging;
|
|||
import com.rusefi.ConsoleUI;
|
||||
import com.rusefi.FileLog;
|
||||
import com.rusefi.config.generated.Fields;
|
||||
import com.rusefi.config.generated.Integration;
|
||||
import com.rusefi.core.EngineState;
|
||||
import com.rusefi.file.FileUtils;
|
||||
import com.rusefi.sensor_logs.BinarySensorLogRestarter;
|
||||
|
@ -180,7 +181,7 @@ public class LogViewer extends JPanel {
|
|||
EngineState engineState = new EngineState(listener);
|
||||
// this is pretty dirty, better OOP desperately needed
|
||||
ConsoleUI.engineSnifferPanel.setOutpinListener(engineState);
|
||||
engineState.registerStringValueAction(Fields.PROTOCOL_ENGINE_SNIFFER, new EngineState.ValueCallback<String>() {
|
||||
engineState.registerStringValueAction(Integration.PROTOCOL_ENGINE_SNIFFER, new EngineState.ValueCallback<String>() {
|
||||
@Override
|
||||
public void onUpdate(String value) {
|
||||
log.info("Got wave_chart: " + value);
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
package com.rusefi.ui.engine.test;
|
||||
|
||||
import com.rusefi.config.generated.Fields;
|
||||
import com.rusefi.config.generated.Integration;
|
||||
import com.rusefi.ui.test.WavePanelSandbox;
|
||||
import com.rusefi.waves.EngineChart;
|
||||
import com.rusefi.waves.EngineChartParser;
|
||||
|
@ -23,7 +24,7 @@ public class UpDownSandbox {
|
|||
String report = "t1!u_9425!0!t2!u_9426!202!t2!d_9427!604!t2!u_9428!956!t2!d_9429!1382!t2!u_9430!1750!t2!d_9431!2204!t2!u_9432!2573!t2!d_9433!3032!t1!d_9434!3160!t2!u_9435!3427!t2!d_9436!3870!t2!u_9437!4251!t2!d_9438!4730!t2!u_9439!5101!t2!d_9440!5593!t2!u_9441!5972!t1!u_9442!6114!t2!d_9443!8007!t2!u_9444!8392!t2!d_9445!8712!t2!u_9446!9031!t2!d_9447!9397!t2!u_9448!9693!t2!d_9449!10077!t2!u_9450!10388!t2!d_9451!10768!t2!u_9452!11067!t2!d_9453!11478!t2!u_9454!11828!t2!d_9455!12218!t2!u_9456!12566!t2!d_9457!12998!t2!u_9458!13438!t2!d_9459!13836!t2!u_9460!14200!t2!d_9461!14655!t2!u_9462!15036!t2!d_9463!15445!t2!u_9464!15815!t2!d_9465!16283!t2!u_9466!16745!t2!d_9467!17099!t1!d_9468!17420!t2!u_9469!17482!t2!d_9470!17958!t2!u_9471!18336!t2!d_9472!18813!t2!u_9473!19194!t2!d_9474!19683!t2!u_9475!20069!t2!d_9476!20463!t1!u_9477!20626!t2!u_9478!22327!t2!d_9479!22775!t2!u_9480!23091!t1!d_9481!23274!t2!d_9482!23452!t2!u_9483!23738!t2!d_9484!24123!t2!u_9485!24424!t2!d_9486!24803!t2!u_9487!25101!t2!d_9488!25502!t1!u_9489!25642!t2!u_9490!25861!t2!d_9491!26230!t2!u_9492!26611!t2!d_9493!26997!t2!u_9494!27434!t2!d_9495!27818!t2!u_9496!28199!t1!d_9497!28486!t2!d_9498!28656!t2!u_9499!29043!t2!d_9500!29444!t2!u_9501!29834!t2!d_9502!30274!t2!u_9503!30646!t1!u_9504!31000!t2!d_9505!31096!t2!u_9506!31532!t2!d_9507!31951!t2!u_9508!32349!t2!d_9509!32809!t2!u_9510!33185!t2!d_9511!33683!t2!u_9512!34087!t1!d_9513!34091!t2!d_9514!36081!t2!u_9515!36401!t2!d_9516!36775!t2!u_9517!37086!t2!d_9518!37447!t2!u_9519!37749!t2!d_9520!38114!t2!u_9521!38419!t2!d_9522!38787!t2!u_9523!39085!t2!d_9524!39476!t2!u_9525!39836!t2!d_9526!40191!t2!u_9527!40517!t2!d_9528!40941!t2!u_9529!41289!t2!d_9530!41747!t2!u_9531!42152!t2!d_9532!42599!t2!u_9533!42956!t2!d_9534!43386!t2!u_9535!43750!t2!d_9536!44203!t2!u_9537!44572!t1!u_9538!44764!t2!d_9539!45040!t2!u_9540!45404!t2!d_9541!45875!t2!u_9542!46253!t2!d_9543!46746!t2!u_9544!47127!t2!d_9545!47602!t2!u_9546!47986!t1!d_9547!48321!t2!d_9548!48388!t2!u_9549!50288!t2!d_9550!50739!t1!u_9551!50785!t2!u_9552!51035!t2!d_9553!51418!t2!u_9554!51759!t2!d_9555!52090!t2!u_9556!52400!t2!d_9557!52769!t2!u_9558!53090!t2!d_9559!53464!t1!d_9560!53565!t2!u_9561!53773!t2!d_9562!54187!t2!u_9563!54529!t2!d_9564!54946!t2!u_9565!55284!t2!d_9566!55755!t1!u_9567!56041!t2!u_9568!56158!t2!d_9569!56599!t2!u_9570!56965!t2!d_9571!57377!t2!u_9572!57753!t2!d_9573!58201!t2!u_9574!58589!t2!d_9575!59025!t1!d_9576!59229!t2!u_9577!59388!t2!d_9578!59866!t2!u_9579!60244!t2!d_9580!60723!t2!u_9581!61085!t2!d_9582!61585!t2!u_9583!61980!t1!u_9584!62170!t2!d_9585!63992!t2!u_9586!64329!t2!d_9587!64694!t2!u_9588!64993!t2!d_9589!65376!t2!u_9590!65707!t2!d_9591!66055!t2!u_9592!66378!t2!d_9593!66745!t2!u_9594!67049!t2!d_9595!67452!t2!u_9596!67799!t2!d_9597!68190!t2!u_9598!68515!t2!d_9599!68967!t2!u_9600!69412!t2!d_9601!69803!t2!u_9602!70196!t2!d_9603!70629!t2!u_9604!70963!t2!d_9605!71415!t2!u_9606!71862!t2!d_9607!72252!t2!u_9608!72636!t2!d_9609!73068!t2!u_9610!73423!t1!d_9611!73453!t2!d_9612!73923!t2!u_9613!74303!t2!d_9614!74780!t2!u_9615!75160!t2!d_9616!75646!t2!u_9617!76090!t2!d_9618!76424!t1!u_9619!76624!t2!u_9620!78352!t2!d_9621!78744!t2!u_9622!79047!t1!d_9623!79265!t2!d_9624!79422!t2!u_9625!79752!t2!d_9626!80096!t2!u_9627!80393!t2!d_9628!80781!t2!u_9629!81089!t2!d_9630!81483!t1!u_9631!81634!t2!u_9632!81861!t2!d_9633!82216!t2!u_9634!82544!t2!d_9635!82988!t2!u_9636!83335!t2!d_9637!83814!t2!u_9638!84194!t1!d_9639!84534!t2!d_9640!84646!t2!u_9641!84990!t2!d_9642!85429!t2!u_9643!85801!t2!d_9644!86260!t2!u_9645!86621!t1!u_9646!87022!t2!d_9647!87080!t2!u_9648!87435!t2!d_9649!87935!t2!u_9650!88312!t2!d_9651!88789!t2!u_9652!89183!t2!d_9653!89663!t2!u_9654!90043!t1!d_9655!90125!t2!d_9656!92056!t2!u_9657!92381!t2!d_9658!92750!t2!u_9659!93053!t2!d_9660!93423!t2!u_9661!93715!t2!d_9662!94088!t2!u_9663!94426!t2!d_9664!94761!t2!u_9665!95090!t2!d_9666!95450!t2!u_9667!95759!t2!d_9668!96166!t2!u_9669!96526!t2!d_9670!96918!t2!u_9671!97282!t2!d_9672!97721!t2!u_9673!98092!t2!d_9674!98574!t2!u_9675!98930!t2!d_9676!99358!t2!u_9677!99736!t2!d_9678!100183!t2!u_9679!100565!t1!u_9680!100720!t2!d_9681!101010!t2!u_9682!101374!t2!d_9683!101852!t2!u_9684!102239!t2!d_9685!102717!t2!u_9686!103089!t2!d_9687!103578!t2!u_9688!104089!t1!d_9689!104293!t2!d_9690!104365!t2!u_9691!106238!t2!d_9692!106687!t1!u_9693!106763!t2!u_9694!106988!t2!d_9695!107362!t2!u_9696!107719!t2!d_9697!108029!t2!u_9698!108360!t2!d_9699!108704!t2!u_9700!108995!t2!d_9701!109394!t1!d_9702!109509!t2!u_9703!109755!t2!d_9704!110112!t2!u_9705!110422!t2!d_9706!110864!t2!u_9707!111221!t2!d_9708!111657!t1!u_9709!111915!t2!u_9710!112088!t2!d_9711!112486!t2!u_9712!112858!t2!d_9713!113332!t2!u_9714!113762!t2!d_9715!114199!t2!u_9716!114762!t2!d_9717!115104!t1!d_9718!115284!t2!u_9719!115508!t2!d_9720!116034!t2!u_9721!116458!t2!d_9722!116998!t2!u_9723!117426!t2!d_9724!118003!t2!u_9725!118428!t1!u_9726!118667!t2!d_9727!120774!t2!u_9728!121118!t2!d_9729!121561!t2!u_9730!122095!t2!d_9731!122321!t2!u_9732!122761!t2!d_9733!123078!";
|
||||
EngineChart r = EngineChartParser.unpackToMap(report);
|
||||
|
||||
EngineReport wr = new EngineReport(r.get(Fields.PROTOCOL_CRANK1).toString());
|
||||
EngineReport wr = new EngineReport(r.get(Integration.PROTOCOL_CRANK1).toString());
|
||||
|
||||
UpDownImage image = new UpDownImage(wr, "test");
|
||||
JPanel panel = new JPanel(new BorderLayout());
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
package com.rusefi.ui.test;
|
||||
|
||||
import com.rusefi.config.generated.Fields;
|
||||
import com.rusefi.config.generated.Integration;
|
||||
import com.rusefi.ui.engine.EngineSnifferPanel;
|
||||
import com.rusefi.ui.engine.NameUtil;
|
||||
import org.junit.jupiter.api.Test;
|
||||
|
@ -19,7 +20,7 @@ public class EngineSnifferPanelTest {
|
|||
@Test
|
||||
public void testInsertIndex() {
|
||||
Set<String> names = new TreeSet<>();
|
||||
names.add(Fields.PROTOCOL_CRANK1);
|
||||
names.add(Integration.PROTOCOL_CRANK1);
|
||||
|
||||
String name;
|
||||
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
package com.rusefi.ui.test;
|
||||
|
||||
import com.rusefi.config.generated.Fields;
|
||||
import com.rusefi.config.generated.Integration;
|
||||
import com.rusefi.core.preferences.storage.PersistentConfiguration;
|
||||
import com.rusefi.core.ui.FrameHelper;
|
||||
import com.rusefi.ui.engine.EngineSnifferPanel;
|
||||
|
@ -44,7 +45,7 @@ public class WavePanelSandbox {
|
|||
|
||||
double angle = 720.0 * (time - from) / (to - from);
|
||||
|
||||
boolean isPrimary = Fields.PROTOCOL_CRANK1.equals(a);
|
||||
boolean isPrimary = Integration.PROTOCOL_CRANK1.equals(a);
|
||||
// if (!isPrimary)
|
||||
// continue;
|
||||
|
||||
|
|
Loading…
Reference in New Issue