auto-sync
This commit is contained in:
parent
1d98728821
commit
cbed211e9e
|
@ -18,6 +18,7 @@ import static com.rusefi.TestingUtils.*;
|
|||
* 3/5/14
|
||||
*/
|
||||
public class AutoTest {
|
||||
public static final int COMPLEX_COMMAND_RETRY = 10000;
|
||||
static int currentEngineType;
|
||||
|
||||
static void mainTestBody() {
|
||||
|
@ -49,7 +50,7 @@ public class AutoTest {
|
|||
|
||||
private static void setEngineType(int type) {
|
||||
currentEngineType = type;
|
||||
sendCommand("set_engine_type " + type, 10000, 600);
|
||||
sendCommand("set_engine_type " + type, COMPLEX_COMMAND_RETRY, 600);
|
||||
sleep(10);
|
||||
sendCommand("enable self_stimulation");
|
||||
}
|
||||
|
@ -192,7 +193,7 @@ public class AutoTest {
|
|||
String msg;
|
||||
WaveChart chart;
|
||||
// todo: interesting changeRpm(100);
|
||||
sendCommand("set_cranking_rpm 500");
|
||||
sendComplexCommand("set_cranking_rpm 500");
|
||||
IoUtil.changeRpm(200);
|
||||
|
||||
double x;
|
||||
|
@ -228,7 +229,7 @@ public class AutoTest {
|
|||
sendCommand("set_cranking_charge_angle 65");
|
||||
|
||||
IoUtil.changeRpm(600);
|
||||
sendCommand("set_cranking_rpm 700");
|
||||
sendComplexCommand("set_cranking_rpm 700");
|
||||
chart = nextChart();
|
||||
x = 55;
|
||||
assertWave("cranking@600", chart, WaveChart.SPARK_1, 0.18, x, x + 180, x + 360, x + 540);
|
||||
|
@ -253,8 +254,9 @@ public class AutoTest {
|
|||
sendCommand("set_fuel_map 2200 4.2 15.66");
|
||||
sendCommand("set_fuel_map 2000 4.2 15.66");
|
||||
// mock 2 means 4 on the gauge because of the divider. should we simplify this?
|
||||
sendCommand("set_mock_maf_voltage 2");
|
||||
sendCommand("set_global_trigger_offset_angle 175");
|
||||
if (!TestingUtils.isRealHardware)
|
||||
sendCommand("set_mock_maf_voltage 2");
|
||||
sendComplexCommand("set_global_trigger_offset_angle 175");
|
||||
chart = nextChart();
|
||||
|
||||
assertWaveFall(chart, WaveChart.INJECTOR_1, 0.555, 238.75);
|
||||
|
@ -266,14 +268,14 @@ public class AutoTest {
|
|||
assertWave(chart, WaveChart.SPARK_1, 0.133, x, x + 180, x + 360, x + 540);
|
||||
assertWaveNull(chart, WaveChart.SPARK_2);
|
||||
|
||||
sendCommand("set_global_trigger_offset_angle 130");
|
||||
sendCommand("set_injection_offset 369");
|
||||
sendComplexCommand("set_global_trigger_offset_angle 130");
|
||||
sendComplexCommand("set_injection_offset 369");
|
||||
chart = nextChart();
|
||||
x = 580;
|
||||
assertWave(chart, WaveChart.SPARK_1, 0.133, x, x + 180, x + 360, x + 540);
|
||||
|
||||
// let's enable more channels dynamically
|
||||
sendCommand("set_ignition_mode 1");
|
||||
sendComplexCommand("set_ignition_mode 1");
|
||||
chart = nextChart();
|
||||
assertWave("Switching Aspire into INDIVIDUAL_COILS mode", chart, WaveChart.SPARK_2, 0.133, x);
|
||||
assertWave(chart, WaveChart.SPARK_3, 0.133, x + 360);
|
||||
|
@ -285,8 +287,10 @@ public class AutoTest {
|
|||
|
||||
|
||||
// switching to Speed Density
|
||||
if (!TestingUtils.isRealHardware)
|
||||
sendCommand("set_mock_maf_voltage 2");
|
||||
sendCommand("set_mock_map_voltage 1");
|
||||
sendCommand("set_algorithm 3");
|
||||
sendComplexCommand("set_algorithm 3");
|
||||
chart = nextChart();
|
||||
x = 8.88;
|
||||
assertWaveFall(msg, chart, WaveChart.INJECTOR_1, 0.329, x + 180);
|
||||
|
@ -299,6 +303,10 @@ public class AutoTest {
|
|||
assertWaveNull("hard limit check", chart, WaveChart.INJECTOR_1);
|
||||
}
|
||||
|
||||
private static void sendComplexCommand(String command) {
|
||||
sendCommand(command, COMPLEX_COMMAND_RETRY, IoUtil.CMD_TIMEOUT);
|
||||
}
|
||||
|
||||
private static void assertWaveNull(WaveChart chart, String key) {
|
||||
assertWaveNull("", chart, key);
|
||||
}
|
||||
|
|
|
@ -19,7 +19,7 @@ import static com.rusefi.waves.WaveReport.isCloseEnough;
|
|||
* 3/19/14.
|
||||
*/
|
||||
public class IoUtil {
|
||||
private static final int CMD_TIMEOUT = 20;
|
||||
protected static final int CMD_TIMEOUT = 20;
|
||||
|
||||
/**
|
||||
* Send a command and wait for the confirmation
|
||||
|
|
|
@ -9,11 +9,12 @@ import static com.rusefi.AutoTest.*;
|
|||
*/
|
||||
public class RealHwTest {
|
||||
public static void main(String[] args) {
|
||||
long start = System.currentTimeMillis();
|
||||
/**
|
||||
* 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;
|
||||
TestingUtils.isRealHardware = true;
|
||||
FileLog.MAIN.start();
|
||||
String port;
|
||||
if (args.length == 1) {
|
||||
|
@ -27,7 +28,21 @@ public class RealHwTest {
|
|||
System.out.println("Only one optional argument expected: port number");
|
||||
return;
|
||||
}
|
||||
runRealHardwareTest(port);
|
||||
boolean failed = false;
|
||||
try {
|
||||
runRealHardwareTest(port);
|
||||
} catch (Throwable e) {
|
||||
e.printStackTrace();
|
||||
failed = true;
|
||||
}
|
||||
if (failed)
|
||||
System.exit(-1);
|
||||
FileLog.MAIN.logLine("+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++");
|
||||
FileLog.MAIN.logLine("++++++++++++++++++++++++++++++++++++ Real Hardware Test Passed +++++++++++++++");
|
||||
FileLog.MAIN.logLine("+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++");
|
||||
long time = (System.currentTimeMillis() - start) / 1000;
|
||||
FileLog.MAIN.logLine("Done in " + time + "secs");
|
||||
System.exit(0); // this is a safer method eliminating the issue of non-daemon threads
|
||||
}
|
||||
|
||||
private static void runRealHardwareTest(String port) {
|
||||
|
|
|
@ -19,7 +19,7 @@ import static com.rusefi.waves.WaveReport.isCloseEnough;
|
|||
* 3/19/14.
|
||||
*/
|
||||
public class TestingUtils {
|
||||
static boolean skipWaveCheck;
|
||||
static boolean isRealHardware;
|
||||
|
||||
static void assertTrue(String msg, boolean b) {
|
||||
if (!b)
|
||||
|
@ -75,7 +75,7 @@ public class TestingUtils {
|
|||
}
|
||||
|
||||
static void assertWave(boolean rise, String msg, WaveChart chart, String key, double expectedWidth, double angleRatio, double widthRatio, double... expectedAngles) {
|
||||
if(skipWaveCheck)
|
||||
if(isRealHardware)
|
||||
return;
|
||||
RevolutionLog revolutionLog = chart.getRevolutionsLog();
|
||||
if (revolutionLog.keySet().isEmpty())
|
||||
|
|
Loading…
Reference in New Issue