auto-sync

This commit is contained in:
rusEfi 2015-09-10 23:01:32 -04:00
parent 25ddcb651f
commit 0dab56dff9
4 changed files with 41 additions and 5 deletions

View File

@ -231,12 +231,13 @@ static void triggerShapeInfo(void) {
* This is used to generate trigger info which is later used by TriggerImage java class
* to generate images for documentation
*/
extern bool printTriggerDebug;
void printAllTriggers() {
FILE * fp = fopen (TRIGGERS_FILE_NAME, "w+");
fprintf(fp, "# Generated by rusEfi\r\n");
printTriggerDebug = true;
for (int triggerId = 1; triggerId < TT_UNUSED; triggerId++) {
trigger_type_e tt = (trigger_type_e) triggerId;

View File

@ -236,11 +236,21 @@ operation_mode_e TriggerShape::getOperationMode() {
return operationMode;
}
#if EFI_UNIT_TEST
extern bool printTriggerDebug;
#endif
void TriggerShape::addEvent(float angle, trigger_wheel_e const waveIndex, trigger_value_e const stateParam) {
efiAssertVoid(operationMode != OM_NONE, "operationMode not set");
efiAssertVoid(waveIndex!= T_SECONDARY || needSecondTriggerInput, "secondary needed or not?");
#if EFI_UNIT_TEST
if (printTriggerDebug) {
printf("addEvent %f\r\n", angle);
}
#endif
trigger_value_e state;
if (invertOnAdd) {
state = (stateParam == TV_LOW) ? TV_HIGH : TV_LOW;
@ -271,7 +281,7 @@ void TriggerShape::addEvent(float angle, trigger_wheel_e const waveIndex, trigge
efiAssertVoid(angle > 0, "angle should be positive");
if (size > 0) {
if (angle <= previousAngle) {
firmwareError("invalid angle order: %f and %f", angle, previousAngle);
firmwareError("invalid angle order: %f and %f, size=%d", angle, previousAngle, size);
return;
}
}

View File

@ -8,10 +8,34 @@
#include "trigger_subaru.h"
void initialize36_2_2_2(TriggerShape *s) {
float wide = 30;
s->reset(FOUR_STROKE_CAM_SENSOR, true);
float wide = 30 * 2;
float narrow = 10 * 2;
s->isSynchronizationNeeded = false;
s->addEvent(720 - wide / 2, T_SECONDARY, TV_HIGH);
s->addEvent(720, T_SECONDARY, TV_LOW);
float base = 0;
for (int i = 0; i < 12; i++) {
s->addEvent(base + narrow / 2, T_PRIMARY, TV_HIGH);
s->addEvent(base + narrow, T_PRIMARY, TV_LOW);
base += narrow;
}
s->addEvent(base + wide / 2, T_PRIMARY, TV_HIGH);
s->addEvent(base + wide, T_PRIMARY, TV_LOW);
base += wide;
for (int i = 0; i < 15; i++) {
s->addEvent(base + narrow / 2, T_PRIMARY, TV_HIGH);
s->addEvent(base + narrow, T_PRIMARY, TV_LOW);
base += narrow;
}
s->addEvent(720 - wide - wide / 2, T_PRIMARY, TV_HIGH);
s->addEvent(720 - wide, T_PRIMARY, TV_LOW);
s->addEvent(720 - wide / 2, T_PRIMARY, TV_HIGH);
s->addEvent(720, T_PRIMARY, TV_LOW);
}

View File

@ -546,6 +546,7 @@ void testTriggerDecoder(void) {
testTriggerDecoder2("sachs", SACHS, 0, 0.4800, 0.000);
printTriggerDebug = true;
// testTriggerDecoder3("36+2+2+2", DODGE_STRATUS, 0, 0.8833, 0.0, CHRYSLER_NGC6_GAP);
testTriggerDecoder3("stratus NGC6", DODGE_STRATUS, 0, 0.8833, 0.0, CHRYSLER_NGC6_GAP);
testTriggerDecoder2("vw ABA", VW_ABA, 114, 0.5000, 0.0);