auto-sync

This commit is contained in:
rusEfi 2015-05-12 19:04:46 -04:00
parent 2d393151f6
commit 64e3e2e488
18 changed files with 219 additions and 220 deletions

View File

@ -198,7 +198,7 @@ void Engine::periodicFastCallback(DECLARE_ENGINE_PARAMETER_F) {
/**
* *0.01 because of https://sourceforge.net/p/rusefi/tickets/153/
*/
engine->engineState.currentVE = veMap.getValue(map, rpm) * 0.01;
engine->engineState.currentVE = engine->engineState.baroCorrection * veMap.getValue(map, rpm) * 0.01;
engine->engineState.targerAFR = afrMap.getValue(map, rpm);
} else {
float engineLoad = getEngineLoadT(PASS_ENGINE_PARAMETER_F);

View File

@ -3,14 +3,14 @@ package com.rusefi;
import com.rusefi.core.Sensor;
import com.rusefi.core.SensorCentral;
import com.rusefi.waves.WaveChart;
import com.rusefi.waves.WaveReport;
import com.rusefi.waves.EngineChart;
import com.rusefi.waves.EngineReport;
import static com.rusefi.TestingUtils.nextChart;
import static com.rusefi.IoUtil.sendCommand;
import static com.rusefi.IoUtil.sleep;
import static com.rusefi.TestingUtils.*;
import static com.rusefi.waves.WaveReport.isCloseEnough;
import static com.rusefi.waves.EngineReport.isCloseEnough;
/**
* rusEfi firmware simulator functional test suite
@ -50,20 +50,20 @@ public class AutoTest {
setEngineType(25);
sendCommand("chart 1");
String msg = "BMW";
WaveChart chart;
EngineChart chart;
IoUtil.changeRpm(200);
chart = nextChart();
double x = 173.988;
assertWave(msg, chart, WaveChart.SPARK_1, 0.0199666, x, x + 180, x + 360, x + 540);
assertWave(msg, chart, EngineChart.SPARK_1, 0.0199666, x, x + 180, x + 360, x + 540);
IoUtil.changeRpm(1200);
chart = nextChart();
x = 688.464;
assertWave(msg, chart, WaveChart.SPARK_1, 0.0597999999, x, x + 180, x + 360, x + 540);
assertWave(msg, chart, EngineChart.SPARK_1, 0.0597999999, x, x + 180, x + 360, x + 540);
assertWave(msg, chart, WaveChart.MAP_AVERAGING, 0.139, 17.784);
assertWave(msg, chart, EngineChart.MAP_AVERAGING, 0.139, 17.784);
}
private static void testMitsu() {
@ -93,75 +93,75 @@ public class AutoTest {
setEngineType(28);
String msg = "mazda 626 default cranking";
IoUtil.changeRpm(200);
WaveChart chart;
EngineChart chart;
chart = nextChart();
double x = 102;
assertWave(msg, chart, WaveChart.SPARK_1, 0.1944, x, x + 180, x + 360, x + 540);
assertWave(msg, chart, EngineChart.SPARK_1, 0.1944, x, x + 180, x + 360, x + 540);
}
private static void test2003DodgeNeon() {
setEngineType(23);
WaveChart chart;
EngineChart chart;
String msg = "2003 Neon cranking ";
IoUtil.changeRpm(200);
chart = nextChart();
double x = 100;
assertWave(true, msg, chart, WaveChart.SPARK_1, 0.194433, 0.01, WaveReport.RATIO, x + 180, x + 540);
assertWaveNull(msg, chart, WaveChart.SPARK_2);
assertWave(true, msg, chart, WaveChart.SPARK_3, 0.194433, 0.01, WaveReport.RATIO, x, x + 360);
assertWaveNull(msg, chart, WaveChart.SPARK_4);
assertWave(true, msg, chart, EngineChart.SPARK_1, 0.194433, 0.01, EngineReport.RATIO, x + 180, x + 540);
assertWaveNull(msg, chart, EngineChart.SPARK_2);
assertWave(true, msg, chart, EngineChart.SPARK_3, 0.194433, 0.01, EngineReport.RATIO, x, x + 360);
assertWaveNull(msg, chart, EngineChart.SPARK_4);
x = 176.856;
// todo: why is width precision so low here? is that because of loaded Windows with 1ms precision?
double widthRatio = 0.25;
assertWave(true, msg, chart, WaveChart.INJECTOR_1, 0.006266666666, 0.01, widthRatio, x, x + 180, x + 360, x + 540);
assertWave(true, msg, chart, WaveChart.INJECTOR_2, 0.006266666666, 0.01, widthRatio, x, x + 180, x + 360, x + 540);
assertWave(true, msg, chart, WaveChart.INJECTOR_3, 0.006266666666, 0.01, widthRatio, x, x + 180, x + 360, x + 540);
assertWave(true, msg, chart, WaveChart.INJECTOR_4, 0.006266666666, 0.01, widthRatio, x, x + 180, x + 360, x + 540);
assertWave(true, msg, chart, EngineChart.INJECTOR_1, 0.006266666666, 0.01, widthRatio, x, x + 180, x + 360, x + 540);
assertWave(true, msg, chart, EngineChart.INJECTOR_2, 0.006266666666, 0.01, widthRatio, x, x + 180, x + 360, x + 540);
assertWave(true, msg, chart, EngineChart.INJECTOR_3, 0.006266666666, 0.01, widthRatio, x, x + 180, x + 360, x + 540);
assertWave(true, msg, chart, EngineChart.INJECTOR_4, 0.006266666666, 0.01, widthRatio, x, x + 180, x + 360, x + 540);
msg = "2003 Neon running";
IoUtil.changeRpm(2000);
chart = nextChart();
x = 113.28;
assertWave(true, msg, chart, WaveChart.SPARK_1, 0.13299999999999998, 0.005, WaveReport.RATIO, x + 180, x + 540);
assertWaveNull(msg, chart, WaveChart.SPARK_2);
assertWave(true, msg, chart, WaveChart.SPARK_3, 0.13299999999999998, 0.005, WaveReport.RATIO, x, x + 360);
assertWaveNull(msg, chart, WaveChart.SPARK_4);
assertWave(true, msg, chart, EngineChart.SPARK_1, 0.13299999999999998, 0.005, EngineReport.RATIO, x + 180, x + 540);
assertWaveNull(msg, chart, EngineChart.SPARK_2);
assertWave(true, msg, chart, EngineChart.SPARK_3, 0.13299999999999998, 0.005, EngineReport.RATIO, x, x + 360);
assertWaveNull(msg, chart, EngineChart.SPARK_4);
x = 168.12;
assertWave(true, msg, chart, WaveChart.INJECTOR_1, 0.03333333333333302, 0.01, 0.1, x + 360);
assertWave(true, msg, chart, WaveChart.INJECTOR_2, 0.03333333333333302, 0.01, 0.1, x + 180);
assertWave(true, msg, chart, WaveChart.INJECTOR_3, 0.03333333333333302, 0.01, 0.1, x + 540);
assertWave(true, msg, chart, WaveChart.INJECTOR_4, 0.03333333333333302, 0.01, 0.1, x);
assertWave(true, msg, chart, EngineChart.INJECTOR_1, 0.03333333333333302, 0.01, 0.1, x + 360);
assertWave(true, msg, chart, EngineChart.INJECTOR_2, 0.03333333333333302, 0.01, 0.1, x + 180);
assertWave(true, msg, chart, EngineChart.INJECTOR_3, 0.03333333333333302, 0.01, 0.1, x + 540);
assertWave(true, msg, chart, EngineChart.INJECTOR_4, 0.03333333333333302, 0.01, 0.1, x);
}
private static void testMazdaProtege() {
setEngineType(14);
WaveChart chart;
EngineChart chart;
IoUtil.changeRpm(200);
String msg = "ProtegeLX cranking";
chart = nextChart();
double x = 107;
assertWave(msg, chart, WaveChart.SPARK_1, 0.194433, x, x + 180, x + 360, x + 540);
assertWave(msg, chart, EngineChart.SPARK_1, 0.194433, x, x + 180, x + 360, x + 540);
x = 0;
assertWaveFall(msg, chart, WaveChart.INJECTOR_1, 0.004666666666, x, x + 180, x + 360, x + 540);
assertWaveFall(msg, chart, WaveChart.INJECTOR_2, 0.004666666666, x, x + 180, x + 360, x + 540);
assertWaveFall(msg, chart, EngineChart.INJECTOR_1, 0.004666666666, x, x + 180, x + 360, x + 540);
assertWaveFall(msg, chart, EngineChart.INJECTOR_2, 0.004666666666, x, x + 180, x + 360, x + 540);
msg = "ProtegeLX running";
IoUtil.changeRpm(2000);
chart = nextChart();
x = 127.92;
assertWave(msg, chart, WaveChart.SPARK_1, 0.13333333333333333, x, x + 180, x + 360, x + 540);
assertWave(msg, chart, EngineChart.SPARK_1, 0.13333333333333333, x, x + 180, x + 360, x + 540);
x = 0;
assertWaveFall(msg, chart, WaveChart.INJECTOR_1, 0.09766666666666689, x + 180, x + 540);
assertWaveFall(msg, chart, WaveChart.INJECTOR_2, 0.09766666666666689, x, x + 360);
assertWaveFall(msg, chart, EngineChart.INJECTOR_1, 0.09766666666666689, x + 180, x + 540);
assertWaveFall(msg, chart, EngineChart.INJECTOR_2, 0.09766666666666689, x, x + 360);
}
private static void test1995DodgeNeon() {
setEngineType(2);
WaveChart chart;
EngineChart chart;
sendComplexCommand("set_whole_fuel_map 3");
sendComplexCommand("set_ignition_mode 1");
/**
@ -172,16 +172,16 @@ public class AutoTest {
String msg = "1995 Neon";
double x = -70;
assertWaveFall(msg, chart, WaveChart.INJECTOR_4, 0.133, x + 540);
assertWaveFall(msg, chart, WaveChart.INJECTOR_2, 0.133, x + 720);
assertWaveFall(msg, chart, WaveChart.INJECTOR_1, 0.133, x + 180);
assertWaveFall(msg, chart, WaveChart.INJECTOR_3, 0.133, x + 360);
assertWaveFall(msg, chart, EngineChart.INJECTOR_4, 0.133, x + 540);
assertWaveFall(msg, chart, EngineChart.INJECTOR_2, 0.133, x + 720);
assertWaveFall(msg, chart, EngineChart.INJECTOR_1, 0.133, x + 180);
assertWaveFall(msg, chart, EngineChart.INJECTOR_3, 0.133, x + 360);
x = 115.92;
assertWave(msg, chart, WaveChart.SPARK_4, 0.13333, x + 540);
assertWave(msg, chart, WaveChart.SPARK_2, 0.13333, x);
assertWave(msg, chart, WaveChart.SPARK_1, 0.13333, x + 180);
assertWave(msg, chart, WaveChart.SPARK_3, 0.13333, x + 360);
assertWave(msg, chart, EngineChart.SPARK_4, 0.13333, x + 540);
assertWave(msg, chart, EngineChart.SPARK_2, 0.13333, x);
assertWave(msg, chart, EngineChart.SPARK_1, 0.13333, x + 180);
assertWave(msg, chart, EngineChart.SPARK_3, 0.13333, x + 360);
// switching to Speed Density
if (!TestingUtils.isRealHardware)
@ -189,44 +189,44 @@ public class AutoTest {
sendComplexCommand("set_algorithm 3");
chart = nextChart();
x = -70;
assertWaveFall(msg, chart, WaveChart.INJECTOR_4, 0.463, x + 540);
assertWaveFall(msg, chart, EngineChart.INJECTOR_4, 0.463, x + 540);
}
private static void testFordFiesta() {
setEngineType(4);
WaveChart chart;
EngineChart chart;
IoUtil.changeRpm(2000);
chart = nextChart();
String msg = "Fiesta";
double x = 312;
assertWave("wasted spark #1 with Fiesta", chart, WaveChart.SPARK_1, 0.1333333, x, x + 360);
assertWaveNull(chart, WaveChart.SPARK_2);
assertWave("wasted spark #3 with Fiesta", chart, WaveChart.SPARK_3, 0.1333333, x + 180, x + 540);
assertWaveNull(msg, chart, WaveChart.SPARK_4);
assertWave("wasted spark #1 with Fiesta", chart, EngineChart.SPARK_1, 0.1333333, x, x + 360);
assertWaveNull(chart, EngineChart.SPARK_2);
assertWave("wasted spark #3 with Fiesta", chart, EngineChart.SPARK_3, 0.1333333, x + 180, x + 540);
assertWaveNull(msg, chart, EngineChart.SPARK_4);
}
private static void testFord6() {
setEngineType(7);
WaveChart chart;
EngineChart chart;
IoUtil.changeRpm(2000);
chart = nextChart();
String msg = "ford 6";
double x = 12.84;
assertWave(msg, chart, WaveChart.SPARK_1, 0.01666, x, x + 120, x + 240, x + 360, x + 480, x + 600);
assertWave(msg, chart, EngineChart.SPARK_1, 0.01666, x, x + 120, x + 240, x + 360, x + 480, x + 600);
assertWaveNull(msg, chart, WaveChart.TRIGGER_2);
assertWaveNull(msg, chart, EngineChart.TRIGGER_2);
sendComplexCommand("set_trigger_type 1"); // TT_FORD_ASPIRE
chart = nextChart();
assertTrue(msg, chart.get(WaveChart.TRIGGER_2) != null);
assertTrue(msg, chart.get(EngineChart.TRIGGER_2) != null);
}
private static void testFordAspire() {
setEngineType(3);
String msg;
WaveChart chart;
EngineChart chart;
// todo: interesting changeRpm(100);
sendComplexCommand("set_cranking_rpm 500");
IoUtil.changeRpm(200);
@ -234,13 +234,13 @@ public class AutoTest {
double x;
chart = nextChart();
x = 55;
assertWave("aspire default cranking ", chart, WaveChart.SPARK_1, 0.1944, x, x + 180, x + 360, x + 540);
assertWave("aspire default cranking ", chart, EngineChart.SPARK_1, 0.1944, x, x + 180, x + 360, x + 540);
IoUtil.changeRpm(600);
chart = nextChart();
x = 76;
assertWave("aspire default running ", chart, WaveChart.SPARK_1, 0.04, x, x + 180, x + 360, x + 540);
assertWave("aspire default running ", chart, EngineChart.SPARK_1, 0.04, x, x + 180, x + 360, x + 540);
IoUtil.changeRpm(200);
@ -249,25 +249,25 @@ public class AutoTest {
chart = nextChart();
x = 55;
assertWave("aspire cranking", chart, WaveChart.SPARK_1, 0.18, x, x + 180, x + 360, x + 540);
assertWave("aspire cranking", chart, EngineChart.SPARK_1, 0.18, x, x + 180, x + 360, x + 540);
sendCommand("set_cranking_timing_angle -40");
chart = nextChart();
x = 64;
assertWave("aspire", chart, WaveChart.SPARK_1, 0.18, x, x + 180, x + 360, x + 540);
assertWave("aspire", chart, EngineChart.SPARK_1, 0.18, x, x + 180, x + 360, x + 540);
sendCommand("set_cranking_timing_angle 149");
sendCommand("set_cranking_charge_angle 40");
chart = nextChart();
x = 80;
assertWave("aspire", chart, WaveChart.SPARK_1, 40.0 / 360, x, x + 180, x + 360, x + 540);
assertWave("aspire", chart, EngineChart.SPARK_1, 40.0 / 360, x, x + 180, x + 360, x + 540);
sendCommand("set_cranking_charge_angle 65");
IoUtil.changeRpm(600);
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);
assertWave("cranking@600", chart, EngineChart.SPARK_1, 0.18, x, x + 180, x + 360, x + 540);
IoUtil.changeRpm(2000);
sendCommand("set_whole_fuel_map 1.57");
@ -276,13 +276,13 @@ public class AutoTest {
msg = "aspire running";
assertWaveFall(msg, chart, WaveChart.INJECTOR_1, 0.086, 238.75);
assertWaveFall(msg, chart, WaveChart.INJECTOR_2, 0.086, 53.04);
assertWaveFall(msg, chart, WaveChart.INJECTOR_3, 0.086, 417.04);
assertWaveFall(msg, chart, WaveChart.INJECTOR_4, 0.086, 594.04);
assertWaveFall(msg, chart, EngineChart.INJECTOR_1, 0.086, 238.75);
assertWaveFall(msg, chart, EngineChart.INJECTOR_2, 0.086, 53.04);
assertWaveFall(msg, chart, EngineChart.INJECTOR_3, 0.086, 417.04);
assertWaveFall(msg, chart, EngineChart.INJECTOR_4, 0.086, 594.04);
x = 22.32;
assertWave(chart, WaveChart.SPARK_1, 0.133, x, x + 180, x + 360, x + 540);
assertWave(chart, EngineChart.SPARK_1, 0.133, x, x + 180, x + 360, x + 540);
sendCommand("set_fuel_map 2200 4 15.66");
sendCommand("set_fuel_map 2000 4 15.66");
@ -294,31 +294,31 @@ public class AutoTest {
sendComplexCommand("set_global_trigger_offset_angle 175");
chart = nextChart();
assertWaveFall(msg + " fuel", chart, WaveChart.INJECTOR_1, 0.555, 238.75);
assertWaveFall(msg + " fuel", chart, WaveChart.INJECTOR_2, 0.555, 53.04);
assertWaveFall(msg + " fuel", chart, WaveChart.INJECTOR_3, 0.555, 417.04);
assertWaveFall(msg + " fuel", chart, WaveChart.INJECTOR_4, 0.555, 594.04);
assertWaveFall(msg + " fuel", chart, EngineChart.INJECTOR_1, 0.555, 238.75);
assertWaveFall(msg + " fuel", chart, EngineChart.INJECTOR_2, 0.555, 53.04);
assertWaveFall(msg + " fuel", chart, EngineChart.INJECTOR_3, 0.555, 417.04);
assertWaveFall(msg + " fuel", chart, EngineChart.INJECTOR_4, 0.555, 594.04);
x = 45;
assertWave(chart, WaveChart.SPARK_1, 0.133, x, x + 180, x + 360, x + 540);
assertWaveNull(chart, WaveChart.SPARK_2);
assertWave(chart, EngineChart.SPARK_1, 0.133, x, x + 180, x + 360, x + 540);
assertWaveNull(chart, EngineChart.SPARK_2);
sendComplexCommand("set_global_trigger_offset_angle 130");
sendComplexCommand("set_injection_offset 369");
chart = nextChart();
x = 585;
assertWave(chart, WaveChart.SPARK_1, 0.133, x, x + 180, x + 360, x + 540);
assertWave(chart, EngineChart.SPARK_1, 0.133, x, x + 180, x + 360, x + 540);
// let's enable more channels dynamically
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);
assertWave("Switching Aspire into INDIVIDUAL_COILS mode", chart, EngineChart.SPARK_2, 0.133, x);
assertWave(chart, EngineChart.SPARK_3, 0.133, x + 360);
sendCommand("set_whole_timing_map 520");
chart = nextChart();
x = 64.8;
assertWave(chart, WaveChart.SPARK_2, 0.133, x);
assertWave(chart, EngineChart.SPARK_2, 0.133, x);
// switching to Speed Density
@ -332,15 +332,15 @@ public class AutoTest {
assertEquals(1, SensorCentral.getInstance().getValue(Sensor.MAP));
//assertEquals(1, SensorCentral.getInstance().getValue(Sensor.));
x = 8.88;
assertWaveFall(msg + " fuel SD #1", chart, WaveChart.INJECTOR_1, 0.329, x + 180);
assertWaveFall(msg + " fuel SD #2", chart, WaveChart.INJECTOR_2, 0.329, x);
assertWaveFall(msg + " fuel SD #3", chart, WaveChart.INJECTOR_3, 0.329, x + 360);
assertWaveFall(msg + " fuel SD #4", chart, WaveChart.INJECTOR_4, 0.329, x + 540);
assertWaveFall(msg + " fuel SD #1", chart, EngineChart.INJECTOR_1, 0.329, x + 180);
assertWaveFall(msg + " fuel SD #2", chart, EngineChart.INJECTOR_2, 0.329, x);
assertWaveFall(msg + " fuel SD #3", chart, EngineChart.INJECTOR_3, 0.329, x + 360);
assertWaveFall(msg + " fuel SD #4", chart, EngineChart.INJECTOR_4, 0.329, x + 540);
// above hard limit
IoUtil.changeRpm(10000);
chart = nextChart();
assertWaveNull("hard limit check", chart, WaveChart.INJECTOR_1);
assertWaveNull("hard limit check", chart, EngineChart.INJECTOR_1);
}
private static void assertEquals(double expected, double actual) {
@ -356,11 +356,11 @@ public class AutoTest {
sendCommand(command, COMPLEX_COMMAND_RETRY, Timeouts.CMD_TIMEOUT);
}
private static void assertWaveNull(WaveChart chart, String key) {
private static void assertWaveNull(EngineChart chart, String key) {
assertWaveNull("", chart, key);
}
private static void assertWaveNull(String msg, WaveChart chart, String key) {
private static void assertWaveNull(String msg, EngineChart chart, String key) {
assertNull(msg + "chart for " + key, chart.get(key));
}

View File

@ -12,7 +12,7 @@ import jssc.SerialPortList;
import java.util.concurrent.CountDownLatch;
import java.util.concurrent.TimeUnit;
import static com.rusefi.waves.WaveReport.isCloseEnough;
import static com.rusefi.waves.EngineReport.isCloseEnough;
/**
* @author Andrey Belomutskiy

View File

@ -2,17 +2,17 @@ package com.rusefi;
import com.rusefi.core.EngineState;
import com.rusefi.io.LinkManager;
import com.rusefi.waves.EngineChart;
import com.rusefi.waves.EngineReport;
import com.rusefi.waves.RevolutionLog;
import com.rusefi.waves.WaveChart;
import com.rusefi.waves.WaveChartParser;
import com.rusefi.waves.WaveReport;
import com.rusefi.waves.EngineChartParser;
import java.util.Arrays;
import java.util.List;
import java.util.concurrent.CountDownLatch;
import java.util.concurrent.atomic.AtomicReference;
import static com.rusefi.waves.WaveReport.isCloseEnough;
import static com.rusefi.waves.EngineReport.isCloseEnough;
/**
* @author Andrey Belomutskiy
@ -58,23 +58,23 @@ public class TestingUtils {
fail("Not true");
}
static void assertWave(WaveChart chart, String key, double width, double... expectedAngles) {
static void assertWave(EngineChart chart, String key, double width, double... expectedAngles) {
assertWave("", chart, key, width, expectedAngles);
}
static void assertWave(String msg, WaveChart chart, String key, double width, double... expectedAngles) {
assertWave(true, msg, chart, key, width, WaveReport.RATIO, WaveReport.RATIO, expectedAngles);
static void assertWave(String msg, EngineChart chart, String key, double width, double... expectedAngles) {
assertWave(true, msg, chart, key, width, EngineReport.RATIO, EngineReport.RATIO, expectedAngles);
}
static void assertWaveFall(WaveChart chart, String key, double width, double... expectedAngles) {
static void assertWaveFall(EngineChart chart, String key, double width, double... expectedAngles) {
assertWaveFall("", chart, key, width, expectedAngles);
}
static void assertWaveFall(String msg, WaveChart chart, String key, double width, double... expectedAngles) {
assertWave(false, msg, chart, key, width, WaveReport.RATIO, WaveReport.RATIO, expectedAngles);
static void assertWaveFall(String msg, EngineChart chart, String key, double width, double... expectedAngles) {
assertWave(false, msg, chart, key, width, EngineReport.RATIO, EngineReport.RATIO, expectedAngles);
}
static void assertWave(boolean rise, String msg, WaveChart chart, String key, double expectedWidth, double angleRatio, double widthRatio, double... expectedAngles) {
static void assertWave(boolean rise, String msg, EngineChart chart, String key, double expectedWidth, double angleRatio, double widthRatio, double... expectedAngles) {
if (isRealHardware)
return;
RevolutionLog revolutionLog = chart.getRevolutionsLog();
@ -83,9 +83,9 @@ public class TestingUtils {
StringBuilder events = chart.get(key);
assertTrue(msg + " Events not null for " + key, events != null);
List<WaveReport.UpDown> wr = WaveReport.parse(events.toString());
List<EngineReport.UpDown> wr = EngineReport.parse(events.toString());
assertTrue(msg + " waves for " + key, !wr.isEmpty());
for (WaveReport.UpDown ud : wr) {
for (EngineReport.UpDown ud : wr) {
int eventTime = rise ? ud.upTime : ud.downTime;
double angleByTime = revolutionLog.getCrankAngleByTime(eventTime);
assertCloseEnough(msg + " angle for " + key + "@" + eventTime, fixAngle(angleByTime), angleRatio, expectedAngles);
@ -104,13 +104,13 @@ public class TestingUtils {
assertTrue(msg, value == null);
}
static WaveChart nextChart() {
return WaveChartParser.unpackToMap(getNextWaveChart());
static EngineChart nextChart() {
return EngineChartParser.unpackToMap(getNextWaveChart());
}
static String getNextWaveChart() {
IoUtil.sendCommand("reset_wave_chart");
String result = getWaveChart();
String result = getEngineChart();
FileLog.MAIN.logLine("current chart: " + result);
return result;
}
@ -120,24 +120,24 @@ public class TestingUtils {
*
* @return next wave chart in the I/O pipeline
*/
private static String getWaveChart() {
final CountDownLatch waveChartLatch = new CountDownLatch(1);
private static String getEngineChart() {
final CountDownLatch engineChartLatch = new CountDownLatch(1);
final AtomicReference<String> result = new AtomicReference<>();
FileLog.MAIN.logLine("waiting for next chart");
LinkManager.engineState.replaceStringValueAction(WaveReport.WAVE_CHART, new EngineState.ValueCallback<String>() {
LinkManager.engineState.replaceStringValueAction(EngineReport.ENGINE_CHART, new EngineState.ValueCallback<String>() {
@Override
public void onUpdate(String value) {
waveChartLatch.countDown();
engineChartLatch.countDown();
result.set(value);
}
});
int timeout = 60;
long waitStartTime = System.currentTimeMillis();
IoUtil.wait(waveChartLatch, timeout);
IoUtil.wait(engineChartLatch, timeout);
FileLog.MAIN.logLine("got next chart in " + (System.currentTimeMillis() - waitStartTime) + "ms for engine_type " + AutoTest.currentEngineType);
LinkManager.engineState.replaceStringValueAction(WaveReport.WAVE_CHART, (EngineState.ValueCallback<String>) EngineState.ValueCallback.VOID);
LinkManager.engineState.replaceStringValueAction(EngineReport.ENGINE_CHART, (EngineState.ValueCallback<String>) EngineState.ValueCallback.VOID);
if (result.get() == null)
throw new IllegalStateException("Chart timeout: " + timeout);
return result.get();

View File

@ -3,7 +3,6 @@ package com.rusefi.core;
import com.rusefi.FileLog;
import com.rusefi.SensorConversion;
import com.rusefi.io.LinkManager;
import com.rusefi.waves.WaveReport;
import org.jetbrains.annotations.NotNull;
import javax.swing.*;

View File

@ -2,7 +2,7 @@ package com.rusefi.core;
import com.rusefi.CyclicBuffer;
import com.rusefi.SensorConversion;
import com.rusefi.waves.WaveReport;
import com.rusefi.waves.EngineReport;
/**
* 7/26/13
@ -59,7 +59,7 @@ public class SensorStats {
SensorCentral.getInstance().addListener(input1, new SensorCentral.SensorListener() {
@Override
public void onSensorUpdate(double value) {
double valueMs = 1.0 * (value - SensorCentral.getInstance().getValue(input2)) / WaveReport.SYS_TICKS_PER_MS;
double valueMs = 1.0 * (value - SensorCentral.getInstance().getValue(input2)) / EngineReport.SYS_TICKS_PER_MS;
SensorCentral.getInstance().setValue(valueMs, destination);
}
});

View File

@ -3,16 +3,16 @@ package com.rusefi.waves;
import java.util.Map;
/**
* A collection of {@link WaveReport}
* A collection of {@link EngineReport}
* <p/>
* <p/>
*
* @see WaveChartParser
* @see EngineChartParser
* <p/>
* Date: 3/17/14
* (c) Andrey Belomutskiy
*/
public class WaveChart {
public class EngineChart {
// todo: merge with NameUtil
public static final String INJECTOR_1 = "i1";
public static final String INJECTOR_2 = "i2";
@ -33,7 +33,7 @@ public class WaveChart {
public final Map<String, StringBuilder> map;
public WaveChart(Map<String, StringBuilder> map) {
public EngineChart(Map<String, StringBuilder> map) {
this.map = map;
}
@ -48,7 +48,7 @@ public class WaveChart {
@Override
public String toString() {
return "WaveChart{" +
return "EngineChart{" +
"size=" + map.size() +
'}';
}

View File

@ -9,13 +9,13 @@ import java.util.Map;
* 1/26/14
* Andrey Belomutskiy (c) 2012-2014
*/
public class WaveChartParser {
public class EngineChartParser {
private static final String DELI = "!";
/**
* This method unpacks a mixed-key message into a Map of messages by key
*/
public static WaveChart unpackToMap(String value) {
public static EngineChart unpackToMap(String value) {
if (value == null)
throw new NullPointerException("value");
FileLog.MAIN.logLine(": " + value);
@ -40,6 +40,6 @@ public class WaveChartParser {
sb.append(signal).append(DELI).append(val).append(DELI);
index += 3;
}
return new WaveChart(map);
return new EngineChart(map);
}
}

View File

@ -15,9 +15,9 @@ import java.util.List;
*
* @see com.rusefi.AnalogChartPanel.AnalogChart
*/
public class WaveReport implements TimeAxisTranslator {
public static final String WAVE_CHART = "wave_chart";
public static final WaveReport MOCK = new WaveReport(Collections.singletonList(new UpDown(0, -1, 1, -1)));
public class EngineReport implements TimeAxisTranslator {
public static final String ENGINE_CHART = "wave_chart";
public static final EngineReport MOCK = new EngineReport(Collections.singletonList(new UpDown(0, -1, 1, -1)));
/**
* number of ChibiOS systicks per ms
*/
@ -34,11 +34,11 @@ public class WaveReport implements TimeAxisTranslator {
*/
private int minTime;
public WaveReport(String report) {
public EngineReport(String report) {
this(parse(report));
}
public WaveReport(List<UpDown> list) {
public EngineReport(List<UpDown> list) {
this.list = list;
if (!list.isEmpty()) {
minTime = list.get(0).upTime;
@ -137,7 +137,7 @@ public class WaveReport implements TimeAxisTranslator {
@Override
public String toString() {
return "WaveReport{" +
return "EngineReport{" +
"size=" + list.size() +
", maxTime=" + maxTime +
", minTime=" + minTime +

View File

@ -61,7 +61,7 @@ public class RevolutionLog {
double diff = time - entry.getKey();
Integer rpm = entry.getValue();
double timeForRevolution = 60000 * WaveReport.SYS_TICKS_PER_MS / rpm;
double timeForRevolution = 60000 * EngineReport.SYS_TICKS_PER_MS / rpm;
return 360.0 * diff / timeForRevolution;
}

View File

@ -0,0 +1,64 @@
package com.rusefi.waves.test;
import com.rusefi.waves.EngineChart;
import com.rusefi.waves.EngineReport;
import com.rusefi.waves.RevolutionLog;
import com.rusefi.waves.EngineChartParser;
import org.junit.Test;
import java.util.List;
import static com.rusefi.waves.EngineReport.isCloseEnough;
import static junit.framework.Assert.*;
/**
* 1/26/14
* Andrey Belomutskiy (c) 2012-2014
*/
public class EngineChartParserTest {
@Test
public void testMultiParser() {
EngineChart result = EngineChartParser.unpackToMap("");
assertTrue(result.getMap().isEmpty());
result = EngineChartParser.unpackToMap("wave_chart,c1!u_154!0!c1!d_155!11!c1!u_156!24!spa5!u!36!c1!d_157!39!c1!u_158!49!c1!d_159!61!c1!u_160!74!c1!d_161!86!c1!u_162!99!c1!d_163!111!c1!u_164!124!");
assertEquals(3, result.getMap().size());
String crankReport = result.get("c1").toString();
List<EngineReport.UpDown> list = EngineReport.parse(crankReport);
assertEquals(4, list.size());
EngineReport.UpDown upDown = list.get(0);
assertEquals(24, upDown.upTime);
assertEquals(156, upDown.upIndex);
assertEquals(39, upDown.downTime);
assertEquals(157, upDown.downIndex);
}
@Test
public void testDutyCycle() {
EngineChart result = EngineChartParser.unpackToMap("r!1199!64224414!crank2!u!64225149_3!Injector 2!u!64225149!Spark 1!u!64225249!Injector 2!d!64225303!Spark 1!d!64225649!crank2!d!64226105_4!crank!d!64226980_5!crank2!u!64227730_6!Injector 1!u!64227730!Spark 1!u!64227830!Injector 1!d!64227884!Spark 1!d!64228230!crank2!d!64228678_7!crank2!u!64230212_8!Injector 3!u!64230212!Spark 1!u!64230312!Injector 3!d!64230366!Spark 1!d!64230712!crank2!d!64231156_9!crank!u!64231982_0!crank2!u!64232672_1!Injector 4!u!64232672!Spark 1!u!64232772!Injector 4!d!64232826!Spark 1!d!64233172!crank2!d!64233626_2!r!1200!64234412!crank2!u!64235150_3!Injector 2!u!64235150!Spark 1!u!64235250!Injector 2!d!64235304!Spark 1!d!64235650!crank2!d!64236106_4!crank!d!64236981_5!crank2!u!64237730_6!Injector 1!u!64237730!Spark 1!u!64237830!Injector 1!d!64237884!Spark 1!d!64238230!crank2!d!64238677_7!crank2!u!64240213_8!Injector 3!u!64240213!Spark 1!u!64240313!Injector 3!d!64240367!Spark 1!d!64240713!crank2!d!64241158_9!crank!u!64241982_0!crank2!u!64242674_1!Injector 4!u!64242674!Spark 1!u!64242774!Injector 4!d!64242828!Spark 1!d!64243174!crank2!d!64243625_2!r!1200!64244412!crank2!u!64245149_3!Injector 2!u!64245149!Spark 1!u!64245249!Injector 2!d!64245303!Spark 1!d!64245649!crank2!d!64246106_4!crank!d!64246980_5!crank2!u!64247728_6!Injector 1!u!64247728!Spark 1!u!64247828!Injector 1!d!64247882!Spark 1!d!64248228!crank2!d!64248679_7!crank2!u!64250212_8!Injector 3!u!64250212!Spark 1!u!64250312!Injector 3!d!64250366!Spark 1!d!64250712!crank2!d!64251158_9!crank!u!64251982_0!crank2!u!64252674_1!Injector 4!u!64252674!Spark 1!u!64252774!Injector 4!d!64252828!Spark 1!d!64253174!crank2!d!64253625_2!r!1200!64254412!crank2!u!64255150_3!Injector 2!u!64255150!Spark 1!u!64255250!Injector 2!d!64255304!Spark 1!d!64255650!crank2!d!64256106_4!crank!d!64256982_5!crank2!u!64257728_6!Injector 1!u!64257728!Spark 1!u!64257828!Injector 1!d!64257882!Spark 1!d!64258228!crank2!d!64258678_7!crank2!u!64260214_8!Injector 3!u!64260214!Spark 1!u!64260314!Injector 3!d!64260368!Spark 1!d!64260714!,");
assertFalse(result.getMap().isEmpty());
StringBuilder revolutions = result.get(RevolutionLog.TOP_DEAD_CENTER_MESSAGE);
RevolutionLog rl = RevolutionLog.parseRevolutions(revolutions);
StringBuilder inj1 = result.get("Injector 1");
EngineReport wr = new EngineReport(inj1.toString());
for (EngineReport.UpDown ud : wr.getList()) {
assertTrue(isCloseEnough(238.75, rl.getCrankAngleByTime(ud.upTime)));
assertTrue(ud.getDutyCycle(rl) + "", isCloseEnough(0.0307, ud.getDutyCycle(rl)));
}
}
@Test
public void testUpOnly() {
List<EngineReport.UpDown> list = EngineReport.parse("up!15500!u!25500!u!35500!u!45500!u!55500!u!65500!u!75500!u!85500!");
assertEquals(0, list.size());
}
}

View File

@ -1,6 +1,6 @@
package com.rusefi.waves.test;
import com.rusefi.waves.WaveReport;
import com.rusefi.waves.EngineReport;
import com.rusefi.waves.ZoomProvider;
import org.junit.Test;
@ -10,12 +10,12 @@ import static junit.framework.Assert.assertEquals;
* Date: 6/23/13
* (c) Andrey Belomutskiy
*/
public class WaveReportTest {
public class EngineReportTest {
public static final String report = "u!14679!d!15991!u!16823!d!18134!u!18965!d!20278!u!21108!d!22420!u!23251!d!24563!u!25394!d!26706!u!27536!d!28850!u!29678!d!30991!u!31822!d!33134!u!33965!d!35277!u!36108!d!37420!u!38251!d!39563!u!40394!d!41706!u!42537!d!43849!";
@Test
public void testParse() {
WaveReport wr = new WaveReport(report);
EngineReport wr = new EngineReport(report);
assertEquals(14, wr.getList().size());
assertEquals(14679, wr.getMinTime());

View File

@ -1,64 +0,0 @@
package com.rusefi.waves.test;
import com.rusefi.waves.RevolutionLog;
import com.rusefi.waves.WaveChart;
import com.rusefi.waves.WaveChartParser;
import com.rusefi.waves.WaveReport;
import org.junit.Test;
import java.util.List;
import static com.rusefi.waves.WaveReport.isCloseEnough;
import static junit.framework.Assert.*;
/**
* 1/26/14
* Andrey Belomutskiy (c) 2012-2014
*/
public class WaveChartParserTest {
@Test
public void testMultiParser() {
WaveChart result = WaveChartParser.unpackToMap("");
assertTrue(result.getMap().isEmpty());
result = WaveChartParser.unpackToMap("wave_chart,c1!u_154!0!c1!d_155!11!c1!u_156!24!spa5!u!36!c1!d_157!39!c1!u_158!49!c1!d_159!61!c1!u_160!74!c1!d_161!86!c1!u_162!99!c1!d_163!111!c1!u_164!124!");
assertEquals(3, result.getMap().size());
String crankReport = result.get("c1").toString();
List<WaveReport.UpDown> list = WaveReport.parse(crankReport);
assertEquals(4, list.size());
WaveReport.UpDown upDown = list.get(0);
assertEquals(24, upDown.upTime);
assertEquals(156, upDown.upIndex);
assertEquals(39, upDown.downTime);
assertEquals(157, upDown.downIndex);
}
@Test
public void testDutyCycle() {
WaveChart result = WaveChartParser.unpackToMap("r!1199!64224414!crank2!u!64225149_3!Injector 2!u!64225149!Spark 1!u!64225249!Injector 2!d!64225303!Spark 1!d!64225649!crank2!d!64226105_4!crank!d!64226980_5!crank2!u!64227730_6!Injector 1!u!64227730!Spark 1!u!64227830!Injector 1!d!64227884!Spark 1!d!64228230!crank2!d!64228678_7!crank2!u!64230212_8!Injector 3!u!64230212!Spark 1!u!64230312!Injector 3!d!64230366!Spark 1!d!64230712!crank2!d!64231156_9!crank!u!64231982_0!crank2!u!64232672_1!Injector 4!u!64232672!Spark 1!u!64232772!Injector 4!d!64232826!Spark 1!d!64233172!crank2!d!64233626_2!r!1200!64234412!crank2!u!64235150_3!Injector 2!u!64235150!Spark 1!u!64235250!Injector 2!d!64235304!Spark 1!d!64235650!crank2!d!64236106_4!crank!d!64236981_5!crank2!u!64237730_6!Injector 1!u!64237730!Spark 1!u!64237830!Injector 1!d!64237884!Spark 1!d!64238230!crank2!d!64238677_7!crank2!u!64240213_8!Injector 3!u!64240213!Spark 1!u!64240313!Injector 3!d!64240367!Spark 1!d!64240713!crank2!d!64241158_9!crank!u!64241982_0!crank2!u!64242674_1!Injector 4!u!64242674!Spark 1!u!64242774!Injector 4!d!64242828!Spark 1!d!64243174!crank2!d!64243625_2!r!1200!64244412!crank2!u!64245149_3!Injector 2!u!64245149!Spark 1!u!64245249!Injector 2!d!64245303!Spark 1!d!64245649!crank2!d!64246106_4!crank!d!64246980_5!crank2!u!64247728_6!Injector 1!u!64247728!Spark 1!u!64247828!Injector 1!d!64247882!Spark 1!d!64248228!crank2!d!64248679_7!crank2!u!64250212_8!Injector 3!u!64250212!Spark 1!u!64250312!Injector 3!d!64250366!Spark 1!d!64250712!crank2!d!64251158_9!crank!u!64251982_0!crank2!u!64252674_1!Injector 4!u!64252674!Spark 1!u!64252774!Injector 4!d!64252828!Spark 1!d!64253174!crank2!d!64253625_2!r!1200!64254412!crank2!u!64255150_3!Injector 2!u!64255150!Spark 1!u!64255250!Injector 2!d!64255304!Spark 1!d!64255650!crank2!d!64256106_4!crank!d!64256982_5!crank2!u!64257728_6!Injector 1!u!64257728!Spark 1!u!64257828!Injector 1!d!64257882!Spark 1!d!64258228!crank2!d!64258678_7!crank2!u!64260214_8!Injector 3!u!64260214!Spark 1!u!64260314!Injector 3!d!64260368!Spark 1!d!64260714!,");
assertFalse(result.getMap().isEmpty());
StringBuilder revolutions = result.get(RevolutionLog.TOP_DEAD_CENTER_MESSAGE);
RevolutionLog rl = RevolutionLog.parseRevolutions(revolutions);
StringBuilder inj1 = result.get("Injector 1");
WaveReport wr = new WaveReport(inj1.toString());
for (WaveReport.UpDown ud : wr.getList()) {
assertTrue(isCloseEnough(238.75, rl.getCrankAngleByTime(ud.upTime)));
assertTrue(ud.getDutyCycle(rl) + "", isCloseEnough(0.0307, ud.getDutyCycle(rl)));
}
}
@Test
public void testUpOnly() {
List<WaveReport.UpDown> list = WaveReport.parse("up!15500!u!25500!u!35500!u!45500!u!55500!u!65500!u!75500!u!85500!");
assertEquals(0, list.size());
}
}

View File

@ -13,10 +13,10 @@ import com.rusefi.ui.storage.Node;
import com.rusefi.ui.util.UiUtils;
import com.rusefi.ui.widgets.AnyCommand;
import com.rusefi.ui.util.URLLabel;
import com.rusefi.waves.EngineChart;
import com.rusefi.waves.EngineReport;
import com.rusefi.waves.RevolutionLog;
import com.rusefi.waves.WaveChart;
import com.rusefi.waves.WaveChartParser;
import com.rusefi.waves.WaveReport;
import com.rusefi.waves.EngineChartParser;
import javax.swing.*;
import java.awt.*;
@ -96,7 +96,7 @@ public class EngineSnifferPanel {
@Override
public void actionPerformed(ActionEvent e) {
for (UpDownImage image : images.values())
image.setWaveReport(WaveReport.MOCK, null);
image.setWaveReport(EngineReport.MOCK, null);
}
});
@ -166,7 +166,7 @@ public class EngineSnifferPanel {
// createSecondaryImage("input2 E5");
//
LinkManager.engineState.registerStringValueAction(WaveReport.WAVE_CHART, new EngineState.ValueCallback<String>() {
LinkManager.engineState.registerStringValueAction(EngineReport.ENGINE_CHART, new EngineState.ValueCallback<String>() {
@Override
public void onUpdate(String value) {
if (isPaused)
@ -188,7 +188,7 @@ public class EngineSnifferPanel {
}
public void displayChart(String value) {
WaveChart map = WaveChartParser.unpackToMap(value);
EngineChart map = EngineChartParser.unpackToMap(value);
StringBuilder revolutions = map.get(RevolutionLog.TOP_DEAD_CENTER_MESSAGE);
@ -210,8 +210,8 @@ public class EngineSnifferPanel {
String report = sb == null ? "" : sb.toString();
image.setRevolutions(revolutions);
List<WaveReport.UpDown> list = WaveReport.parse(report);
WaveReport wr = new WaveReport(list);
List<EngineReport.UpDown> list = EngineReport.parse(report);
EngineReport wr = new EngineReport(list);
image.setWaveReport(wr, revolutions);
}
/**

View File

@ -1,7 +1,7 @@
package com.rusefi.ui.engine;
import com.rusefi.waves.TimeAxisTranslator;
import com.rusefi.waves.WaveReport;
import com.rusefi.waves.EngineReport;
import com.rusefi.waves.ZoomProvider;
import com.rusefi.waves.RevolutionLog;
@ -24,7 +24,7 @@ public class EngineSnifferStatusPanel {
private final JLabel timeLabel = new JLabel();
private final JLabel angleLabel = new JLabel();
private final JLabel rpmLabel = new JLabel();
private TimeAxisTranslator translator = WaveReport.MOCK;
private TimeAxisTranslator translator = EngineReport.MOCK;
private RevolutionLog time2rpm = RevolutionLog.parseRevolutions(null);

View File

@ -7,7 +7,7 @@ import java.util.Map;
import java.util.TreeMap;
// todo: merge with WaveChart
// todo: merge with EngineChart
public class NameUtil {
/**
* See also 'CRANK1' in rusEfi firmware code

View File

@ -3,9 +3,9 @@ package com.rusefi.ui.engine;
import com.rusefi.core.Sensor;
import com.rusefi.core.SensorCentral;
import com.rusefi.ui.util.UiUtils;
import com.rusefi.waves.EngineReport;
import com.rusefi.waves.RevolutionLog;
import com.rusefi.waves.TimeAxisTranslator;
import com.rusefi.waves.WaveReport;
import com.rusefi.waves.ZoomProvider;
import javax.swing.*;
@ -18,14 +18,14 @@ import java.text.SimpleDateFormat;
import java.util.Date;
/**
* This is a renderer of an individual {@link WaveReport} - this makes a simple Logical Analyzer
* This is a renderer of an individual {@link EngineReport} - this makes a simple Logical Analyzer
* <p/>
* <p/>
* Date: 6/23/13
* (c) Andrey Belomutskiy
*
* @see EngineSnifferPanel
* @see WaveReport
* @see EngineReport
*/
public class UpDownImage extends JPanel {
private static final SimpleDateFormat FORMAT = new SimpleDateFormat("yyyy-MM-dd'T'hh:mm:ss");
@ -35,7 +35,7 @@ public class UpDownImage extends JPanel {
private long lastUpdateTime;
private ZoomProvider zoomProvider = ZoomProvider.DEFAULT;
private WaveReport wr;
private EngineReport wr;
private StringBuilder revolutions;
private final String name;
private TimeAxisTranslator translator;
@ -50,7 +50,7 @@ public class UpDownImage extends JPanel {
});
public UpDownImage(final String name) {
this(WaveReport.MOCK, name);
this(EngineReport.MOCK, name);
setToolTip();
}
@ -62,7 +62,7 @@ public class UpDownImage extends JPanel {
this.zoomProvider = zoomProvider;
}
public UpDownImage(WaveReport wr, String name) {
public UpDownImage(EngineReport wr, String name) {
this.name = name;
setWaveReport(wr, null);
setOpaque(true);
@ -106,7 +106,7 @@ public class UpDownImage extends JPanel {
};
}
public void setWaveReport(WaveReport wr, StringBuilder revolutions) {
public void setWaveReport(EngineReport wr, StringBuilder revolutions) {
this.wr = wr;
propagateDwellIntoSensor(wr);
this.revolutions = revolutions;
@ -114,13 +114,13 @@ public class UpDownImage extends JPanel {
UiUtils.trueRepaint(this);
}
private void propagateDwellIntoSensor(WaveReport wr) {
private void propagateDwellIntoSensor(EngineReport wr) {
Sensor sensor = NameUtil.name2sensor.get(name);
if (sensor == null)
return;
if (!wr.getList().isEmpty()) {
WaveReport.UpDown last = wr.getList().get(wr.getList().size() - 1);
EngineReport.UpDown last = wr.getList().get(wr.getList().size() - 1);
SensorCentral.getInstance().setValue(last.getDuration(), sensor);
}
}
@ -134,7 +134,7 @@ public class UpDownImage extends JPanel {
g.setColor(getBackground());
g.fillRect(0, 0, d.width, d.height);
for (WaveReport.UpDown upDown : wr.getList())
for (EngineReport.UpDown upDown : wr.getList())
paintUpDown(d, upDown, g);
paintScaleLines(g2, d);
@ -157,7 +157,7 @@ public class UpDownImage extends JPanel {
}
g.drawString("Tick length: " + duration + "; count=" + wr.getList().size(), 5, ++line * LINE_SIZE);
g.drawString("Total seconds: " + (duration / WaveReport.SYS_TICKS_PER_MS / 000.0), 5, ++line * LINE_SIZE);
g.drawString("Total seconds: " + (duration / EngineReport.SYS_TICKS_PER_MS / 000.0), 5, ++line * LINE_SIZE);
g.drawString(FORMAT.format(new Date(lastUpdateTime)), 5, ++line * LINE_SIZE);
drawStartOfRevolution(g2, d);
@ -184,11 +184,11 @@ public class UpDownImage extends JPanel {
* This method draws a vertical line every millisecond
*/
private void paintScaleLines(Graphics2D g2, Dimension d) {
int fromMs = translator.getMinTime() / WaveReport.mult;
int fromMs = translator.getMinTime() / EngineReport.mult;
g2.setStroke(LONG_STROKE);
g2.setColor(TIME_SCALE_COLOR);
int toMs = translator.getMaxTime() / WaveReport.mult;
int toMs = translator.getMaxTime() / EngineReport.mult;
if (toMs - fromMs > d.getWidth() / 5) {
/**
@ -200,13 +200,13 @@ public class UpDownImage extends JPanel {
}
for (int ms = fromMs; ms <= toMs; ms++) {
int tick = ms * WaveReport.mult;
int tick = ms * EngineReport.mult;
int x = translator.timeToScreen(tick, d.width, zoomProvider);
g2.drawLine(x, 0, x, d.height);
}
}
private void paintUpDown(Dimension d, WaveReport.UpDown upDown, Graphics g) {
private void paintUpDown(Dimension d, EngineReport.UpDown upDown, Graphics g) {
int x1 = translator.timeToScreen(upDown.upTime, d.width, zoomProvider);
int x2 = translator.timeToScreen(upDown.downTime, d.width, zoomProvider);
@ -226,7 +226,7 @@ public class UpDownImage extends JPanel {
g.drawLine(x2, y, x2, d.height);
g.setColor(Color.red);
String durationString = String.format(" %.2fms", upDown.getDuration() / WaveReport.SYS_TICKS_PER_MS);
String durationString = String.format(" %.2fms", upDown.getDuration() / EngineReport.SYS_TICKS_PER_MS);
g.drawString(durationString, x1, (int) (0.5 * d.height));

View File

@ -1,7 +1,7 @@
package com.rusefi.ui.engine.test;
import com.rusefi.waves.WaveReport;
import com.rusefi.waves.test.WaveReportTest;
import com.rusefi.waves.EngineReport;
import com.rusefi.waves.test.EngineReportTest;
import com.rusefi.ui.util.FrameHelper;
import com.rusefi.ui.engine.UpDownImage;
@ -16,7 +16,7 @@ public class UpDownSandbox extends FrameHelper {
public UpDownSandbox() {
WaveReport wr = new WaveReport(WaveReportTest.report);
EngineReport wr = new EngineReport(EngineReportTest.report);
showFrame(new UpDownImage(wr, "test"));