auto-sync
This commit is contained in:
parent
7b1a55ba93
commit
1d98728821
|
@ -22,6 +22,7 @@ public class AutoTest {
|
||||||
|
|
||||||
static void mainTestBody() {
|
static void mainTestBody() {
|
||||||
sendCommand("fl 1"); // just in case it was disabled
|
sendCommand("fl 1"); // just in case it was disabled
|
||||||
|
testMitsu();
|
||||||
testCitroenBerlingo();
|
testCitroenBerlingo();
|
||||||
testMazda626();
|
testMazda626();
|
||||||
test2003DodgeNeon();
|
test2003DodgeNeon();
|
||||||
|
@ -32,9 +33,17 @@ public class AutoTest {
|
||||||
testFordFiesta();
|
testFordFiesta();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private static void testMitsu() {
|
||||||
|
setEngineType(16);
|
||||||
|
String msg = "Mitsubishi";
|
||||||
|
IoUtil.changeRpm(1200);
|
||||||
|
// todo: add more content
|
||||||
|
}
|
||||||
|
|
||||||
private static void testCitroenBerlingo() {
|
private static void testCitroenBerlingo() {
|
||||||
setEngineType(15);
|
setEngineType(15);
|
||||||
String msg = "Citroen";
|
String msg = "Citroen";
|
||||||
|
IoUtil.changeRpm(1200);
|
||||||
// todo: add more content
|
// todo: add more content
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -9,6 +9,11 @@ import static com.rusefi.AutoTest.*;
|
||||||
*/
|
*/
|
||||||
public class RealHwTest {
|
public class RealHwTest {
|
||||||
public static void main(String[] args) {
|
public static void main(String[] args) {
|
||||||
|
/**
|
||||||
|
* with real hardware we have noise on all analog inputs which gives us random sensor data, we cannot really
|
||||||
|
* test exact numbers yet
|
||||||
|
*/
|
||||||
|
TestingUtils.skipWaveCheck = true;
|
||||||
FileLog.MAIN.start();
|
FileLog.MAIN.start();
|
||||||
String port;
|
String port;
|
||||||
if (args.length == 1) {
|
if (args.length == 1) {
|
||||||
|
|
|
@ -19,6 +19,8 @@ import static com.rusefi.waves.WaveReport.isCloseEnough;
|
||||||
* 3/19/14.
|
* 3/19/14.
|
||||||
*/
|
*/
|
||||||
public class TestingUtils {
|
public class TestingUtils {
|
||||||
|
static boolean skipWaveCheck;
|
||||||
|
|
||||||
static void assertTrue(String msg, boolean b) {
|
static void assertTrue(String msg, boolean b) {
|
||||||
if (!b)
|
if (!b)
|
||||||
fail("Not true: " + msg);
|
fail("Not true: " + msg);
|
||||||
|
@ -35,7 +37,7 @@ public class TestingUtils {
|
||||||
}
|
}
|
||||||
|
|
||||||
private static String printRange(double current, double ratio) {
|
private static String printRange(double current, double ratio) {
|
||||||
return " expected range from " + current * (1 - ratio) + " to " + current * (1 + ratio);
|
return " expected range from " + current * (1 - ratio) + " to " + current * (1 + ratio) + " with ratio " + ratio;
|
||||||
}
|
}
|
||||||
|
|
||||||
private static double fixAngle(double angle) {
|
private static double fixAngle(double angle) {
|
||||||
|
@ -46,7 +48,9 @@ public class TestingUtils {
|
||||||
|
|
||||||
private static void fail(String message) {
|
private static void fail(String message) {
|
||||||
FileLog.MAIN.logLine("FAILURE: " + message);
|
FileLog.MAIN.logLine("FAILURE: " + message);
|
||||||
throw new IllegalStateException(message);
|
IllegalStateException exception = new IllegalStateException(message);
|
||||||
|
FileLog.MAIN.log(exception);
|
||||||
|
throw exception;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void assertTrue(boolean b) {
|
static void assertTrue(boolean b) {
|
||||||
|
@ -70,7 +74,9 @@ public class TestingUtils {
|
||||||
assertWave(false, msg, chart, key, width, WaveReport.RATIO, WaveReport.RATIO, expectedAngles);
|
assertWave(false, msg, chart, key, width, WaveReport.RATIO, WaveReport.RATIO, expectedAngles);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void assertWave(boolean rise, String msg, WaveChart chart, String key, double width, double angleRatio, double widthRatio, double... expectedAngles) {
|
static void assertWave(boolean rise, String msg, WaveChart chart, String key, double expectedWidth, double angleRatio, double widthRatio, double... expectedAngles) {
|
||||||
|
if(skipWaveCheck)
|
||||||
|
return;
|
||||||
RevolutionLog revolutionLog = chart.getRevolutionsLog();
|
RevolutionLog revolutionLog = chart.getRevolutionsLog();
|
||||||
if (revolutionLog.keySet().isEmpty())
|
if (revolutionLog.keySet().isEmpty())
|
||||||
throw new IllegalStateException(msg + " Empty revolutions in " + chart);
|
throw new IllegalStateException(msg + " Empty revolutions in " + chart);
|
||||||
|
@ -84,7 +90,13 @@ public class TestingUtils {
|
||||||
double angleByTime = revolutionLog.getCrankAngleByTime(eventTime);
|
double angleByTime = revolutionLog.getCrankAngleByTime(eventTime);
|
||||||
assertCloseEnough(msg + " angle for " + key + "@" + eventTime, fixAngle(angleByTime), angleRatio, expectedAngles);
|
assertCloseEnough(msg + " angle for " + key + "@" + eventTime, fixAngle(angleByTime), angleRatio, expectedAngles);
|
||||||
|
|
||||||
assertCloseEnough(msg + "width for " + key, ud.getDutyCycle(revolutionLog), widthRatio, width);
|
double actualWidth = ud.getDutyCycle(revolutionLog);
|
||||||
|
if (!isCloseEnough(fixAngle(actualWidth), expectedWidth, widthRatio)) {
|
||||||
|
System.out.println("f " + revolutionLog.getCrankAngleByTime(ud.downTime));
|
||||||
|
System.out.println("t " + revolutionLog.getCrankAngleByTime(ud.upTime));
|
||||||
|
}
|
||||||
|
assertCloseEnough(msg + "width for " + key, actualWidth, widthRatio, expectedWidth);
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -100,6 +112,7 @@ public class TestingUtils {
|
||||||
// we need to skip TWO because spark could have been scheduled a while ago and happen now
|
// we need to skip TWO because spark could have been scheduled a while ago and happen now
|
||||||
// todo: improve this logic, compare times
|
// todo: improve this logic, compare times
|
||||||
getWaveChart();
|
getWaveChart();
|
||||||
|
getWaveChart();
|
||||||
// we want to wait for the 2nd chart to see same same RPM across the whole chart
|
// we want to wait for the 2nd chart to see same same RPM across the whole chart
|
||||||
String result = getWaveChart();
|
String result = getWaveChart();
|
||||||
FileLog.MAIN.logLine("current chart: " + result);
|
FileLog.MAIN.logLine("current chart: " + result);
|
||||||
|
|
|
@ -83,4 +83,11 @@ public enum FileLog {
|
||||||
public static void rlog(String msg) {
|
public static void rlog(String msg) {
|
||||||
System.out.println("r " + msg);
|
System.out.println("r " + msg);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void log(IllegalStateException exception) {
|
||||||
|
if (fileLog == null)
|
||||||
|
throw new NullPointerException("fileLog");
|
||||||
|
OutputStreamWriter os = new OutputStreamWriter(fileLog);
|
||||||
|
exception.printStackTrace(new PrintWriter(os));
|
||||||
|
}
|
||||||
}
|
}
|
|
@ -33,6 +33,7 @@ import static com.rusefi.ui.util.LocalizedMessages.PAUSE;
|
||||||
* Andrey Belomutskiy (c) 2012-2013
|
* Andrey Belomutskiy (c) 2012-2013
|
||||||
*
|
*
|
||||||
* @see EngineSnifferStatusPanel status bar
|
* @see EngineSnifferStatusPanel status bar
|
||||||
|
* @see com.rusefi.ui.test.WavePanelSandbox
|
||||||
*/
|
*/
|
||||||
public class EngineSnifferPanel {
|
public class EngineSnifferPanel {
|
||||||
private static final int EFI_DEFAULT_CHART_SIZE = 180;
|
private static final int EFI_DEFAULT_CHART_SIZE = 180;
|
||||||
|
|
Loading…
Reference in New Issue