auto-sync
This commit is contained in:
parent
b6bacbf8bb
commit
ee6a864777
|
@ -12,10 +12,14 @@ void configureNeon2003TriggerShape(trigger_shape_s *s) {
|
||||||
|
|
||||||
// voodoo magic - we always need 720 at the end
|
// voodoo magic - we always need 720 at the end
|
||||||
int base = 10;
|
int base = 10;
|
||||||
|
s->useRiseEdge = true;
|
||||||
|
|
||||||
s->gapBothDirections = true;
|
s->gapBothDirections = true;
|
||||||
|
|
||||||
setTriggerSynchronizationGap(s, 4);
|
/**
|
||||||
|
* Theoretical gap is 4, but in reality it's
|
||||||
|
*/
|
||||||
|
setTriggerSynchronizationGap2(s, 2.7, 5);
|
||||||
|
|
||||||
s->addEvent(base + 26, T_PRIMARY, TV_HIGH);
|
s->addEvent(base + 26, T_PRIMARY, TV_HIGH);
|
||||||
s->addEvent(base + 62, T_PRIMARY, TV_LOW);
|
s->addEvent(base + 62, T_PRIMARY, TV_LOW);
|
||||||
|
|
|
@ -36,14 +36,14 @@
|
||||||
static cyclic_buffer errorDetection;
|
static cyclic_buffer errorDetection;
|
||||||
|
|
||||||
#if ! EFI_PROD_CODE
|
#if ! EFI_PROD_CODE
|
||||||
|
|
||||||
bool printGapRatio = false;
|
bool printGapRatio = false;
|
||||||
|
|
||||||
#else
|
|
||||||
Logging logger;
|
|
||||||
|
|
||||||
#endif /* ! EFI_PROD_CODE */
|
#endif /* ! EFI_PROD_CODE */
|
||||||
|
|
||||||
|
#if (EFI_PROD_CODE || EFI_SIMULATOR)
|
||||||
|
Logging logger;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @return TRUE is something is wrong with trigger decoding
|
* @return TRUE is something is wrong with trigger decoding
|
||||||
*/
|
*/
|
||||||
|
@ -395,7 +395,7 @@ uint32_t findTriggerZeroEventIndex(trigger_shape_s * shape, trigger_config_s con
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
void initTriggerDecoder(void) {
|
void initTriggerDecoder(void) {
|
||||||
#if EFI_PROD_CODE || EFI_SIMULATOR
|
#if (EFI_PROD_CODE || EFI_SIMULATOR)
|
||||||
initLogging(&logger, "trigger decoder");
|
initLogging(&logger, "trigger decoder");
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
|
@ -284,10 +284,14 @@ void setToothedWheelConfiguration(trigger_shape_s *s, int total, int skipped,
|
||||||
getOperationMode(engineConfiguration));
|
getOperationMode(engineConfiguration));
|
||||||
}
|
}
|
||||||
|
|
||||||
void setTriggerSynchronizationGap(trigger_shape_s *s, float synchGap) {
|
void setTriggerSynchronizationGap2(trigger_shape_s *s, float syncGapFrom, float syncRatioTo) {
|
||||||
s->isSynchronizationNeeded = true;
|
s->isSynchronizationNeeded = true;
|
||||||
s->syncRatioFrom = synchGap * 0.75;
|
s->syncRatioFrom = syncGapFrom;
|
||||||
s->syncRatioTo = synchGap * 1.25;
|
s->syncRatioTo = syncRatioTo;
|
||||||
|
}
|
||||||
|
|
||||||
|
void setTriggerSynchronizationGap(trigger_shape_s *s, float synchGap) {
|
||||||
|
setTriggerSynchronizationGap2(s, synchGap * 0.75f, synchGap * 1.25f);
|
||||||
}
|
}
|
||||||
|
|
||||||
#define S24 (720.0f / 24 / 2)
|
#define S24 (720.0f / 24 / 2)
|
||||||
|
|
|
@ -121,6 +121,7 @@ private:
|
||||||
};
|
};
|
||||||
|
|
||||||
void setTriggerSynchronizationGap(trigger_shape_s *s, float synchGap);
|
void setTriggerSynchronizationGap(trigger_shape_s *s, float synchGap);
|
||||||
|
void setTriggerSynchronizationGap2(trigger_shape_s *s, float syncGapFrom, float syncRatioTo);
|
||||||
void setToothedWheelConfiguration(trigger_shape_s *s, int total, int skipped, engine_configuration_s const *engineConfiguration);
|
void setToothedWheelConfiguration(trigger_shape_s *s, int total, int skipped, engine_configuration_s const *engineConfiguration);
|
||||||
|
|
||||||
#endif /* TRIGGER_STRUCTURE_H_ */
|
#endif /* TRIGGER_STRUCTURE_H_ */
|
||||||
|
|
|
@ -7,7 +7,7 @@ package com.irnems.waves;
|
||||||
public interface TimeAxisTranslator {
|
public interface TimeAxisTranslator {
|
||||||
int timeToScreen(int time, int width, ZoomProvider zoomProvider);
|
int timeToScreen(int time, int width, ZoomProvider zoomProvider);
|
||||||
|
|
||||||
double screenToTime(int screen, int width, ZoomProvider zoomProvider);
|
double screenToTime(int screenX, int screenWidth, ZoomProvider zoomProvider);
|
||||||
|
|
||||||
int getMaxTime();
|
int getMaxTime();
|
||||||
|
|
||||||
|
|
|
@ -116,10 +116,10 @@ public class WaveReport implements TimeAxisTranslator {
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public double screenToTime(int screen, int width, ZoomProvider zoomProvider) {
|
public double screenToTime(int screenX, int screenWidth, ZoomProvider zoomProvider) {
|
||||||
// / SYS_TICKS_PER_MS / 1000
|
// / SYS_TICKS_PER_MS / 1000
|
||||||
double time = 1.0 * screen * getDuration() / width / zoomProvider.getZoomValue() + minTime;
|
double time = 1.0 * screenX * getDuration() / screenWidth / zoomProvider.getZoomValue() + minTime;
|
||||||
int x2 = timeToScreen((int) time, width, zoomProvider);
|
int x2 = timeToScreen((int) time, screenWidth, zoomProvider);
|
||||||
// FileLog.rlog("screenToTime " + (screen - x2));
|
// FileLog.rlog("screenToTime " + (screen - x2));
|
||||||
return (int) time;
|
return (int) time;
|
||||||
}
|
}
|
||||||
|
|
|
@ -19,7 +19,7 @@ import javax.swing.*;
|
||||||
* @see WavePanel
|
* @see WavePanel
|
||||||
*/
|
*/
|
||||||
public class Launcher extends FrameHelper {
|
public class Launcher extends FrameHelper {
|
||||||
public static final int CONSOLE_VERSION = 20141013;
|
public static final int CONSOLE_VERSION = 20141102;
|
||||||
public static final boolean SHOW_STIMULATOR = true;
|
public static final boolean SHOW_STIMULATOR = true;
|
||||||
private final String port;
|
private final String port;
|
||||||
|
|
||||||
|
|
|
@ -35,10 +35,12 @@ public class ChartStatusPanel {
|
||||||
int x = event.getX();
|
int x = event.getX();
|
||||||
xLabel.setText("" + x);
|
xLabel.setText("" + x);
|
||||||
|
|
||||||
|
UpDownImage s = (UpDownImage) event.getSource();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Time which corresponds to the mouse cursor screen location
|
* Time which corresponds to the mouse cursor screen location
|
||||||
*/
|
*/
|
||||||
double time = translator.screenToTime(x, infoPanel.getWidth(), zoomProvider);
|
double time = translator.screenToTime(x, s.getWidth(), zoomProvider);
|
||||||
timeLabel.setText("" + String.format("%.5f sec", time));
|
timeLabel.setText("" + String.format("%.5f sec", time));
|
||||||
|
|
||||||
String text = time2rpm == null ? "n/a" : time2rpm.getCrankAngleByTimeString(time);
|
String text = time2rpm == null ? "n/a" : time2rpm.getCrankAngleByTimeString(time);
|
||||||
|
|
|
@ -532,6 +532,7 @@ void testTriggerDecoder(void) {
|
||||||
|
|
||||||
printGapRatio = true;
|
printGapRatio = true;
|
||||||
testTriggerDecoder2("neon NGC", DODGE_NEON_2003, 12, 0.5139, 0.0);
|
testTriggerDecoder2("neon NGC", DODGE_NEON_2003, 12, 0.5139, 0.0);
|
||||||
|
printGapRatio = false;
|
||||||
|
|
||||||
testMazda323();
|
testMazda323();
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue