auto-sync

This commit is contained in:
rusEfi 2014-09-24 12:05:03 -05:00
parent 19c4f82dc6
commit 68a85acba0
6 changed files with 29 additions and 21 deletions

View File

@ -38,6 +38,7 @@
// return interpolate(500, 0.5, 5000, 1.1, rpm); // return interpolate(500, 0.5, 5000, 1.1, rpm);
//} //}
/** /**
* @return number of milliseconds in one crankshaft revolution * @return number of milliseconds in one crankshaft revolution
*/ */
@ -101,8 +102,7 @@ int isCrankingRT(engine_configuration_s *engineConfiguration, int rpm) {
return rpm > 0 && rpm < engineConfiguration->crankingSettings.crankingRpm; return rpm > 0 && rpm < engineConfiguration->crankingSettings.crankingRpm;
} }
OutputSignalList injectonSignals CCM_OPTIONAL OutputSignalList injectonSignals CCM_OPTIONAL;
;
static void registerSparkEvent(engine_configuration_s const *engineConfiguration, trigger_shape_s * s, static void registerSparkEvent(engine_configuration_s const *engineConfiguration, trigger_shape_s * s,
IgnitionEventList *list, io_pin_e pin, float localAdvance, float dwell) { IgnitionEventList *list, io_pin_e pin, float localAdvance, float dwell) {
@ -131,8 +131,8 @@ void initializeIgnitionActions(float advance, float dwellAngle, engine_configura
// todo: extract method // todo: extract method
float localAdvance = advance + 720.0f * i / engineConfiguration->cylindersCount; float localAdvance = advance + 720.0f * i / engineConfiguration->cylindersCount;
registerSparkEvent(engineConfiguration, &engineConfiguration2->triggerShape, list, SPARKOUT_1_OUTPUT, registerSparkEvent(engineConfiguration, &engineConfiguration2->triggerShape, list,
localAdvance, dwellAngle); SPARKOUT_1_OUTPUT, localAdvance, dwellAngle);
} }
break; break;
case IM_WASTED_SPARK: case IM_WASTED_SPARK:
@ -144,8 +144,8 @@ void initializeIgnitionActions(float advance, float dwellAngle, engine_configura
int id = getCylinderId(engineConfiguration->firingOrder, wastedIndex) - 1; int id = getCylinderId(engineConfiguration->firingOrder, wastedIndex) - 1;
io_pin_e ioPin = (io_pin_e) (SPARKOUT_1_OUTPUT + id); io_pin_e ioPin = (io_pin_e) (SPARKOUT_1_OUTPUT + id);
registerSparkEvent(engineConfiguration, &engineConfiguration2->triggerShape, list, ioPin, localAdvance, registerSparkEvent(engineConfiguration, &engineConfiguration2->triggerShape, list,
dwellAngle); ioPin, localAdvance, dwellAngle);
} }
@ -155,8 +155,8 @@ void initializeIgnitionActions(float advance, float dwellAngle, engine_configura
float localAdvance = advance + 720.0f * i / engineConfiguration->cylindersCount; float localAdvance = advance + 720.0f * i / engineConfiguration->cylindersCount;
io_pin_e pin = (io_pin_e) ((int) SPARKOUT_1_OUTPUT + getCylinderId(engineConfiguration->firingOrder, i) - 1); io_pin_e pin = (io_pin_e) ((int) SPARKOUT_1_OUTPUT + getCylinderId(engineConfiguration->firingOrder, i) - 1);
registerSparkEvent(engineConfiguration, &engineConfiguration2->triggerShape, list, pin, localAdvance, registerSparkEvent(engineConfiguration, &engineConfiguration2->triggerShape, list, pin,
dwellAngle); localAdvance, dwellAngle);
} }
break; break;
@ -165,8 +165,12 @@ void initializeIgnitionActions(float advance, float dwellAngle, engine_configura
} }
} }
static void registerInjectionEvent(engine_configuration_s const *e, trigger_shape_s *s, ActuatorEventList *list, static void registerInjectionEvent(engine_configuration_s const *e,
io_pin_e pin, float angle) { trigger_shape_s *s,
ActuatorEventList *list,
io_pin_e pin,
float angle
) {
registerActuatorEventExt(e, s, list->getNextActuatorEvent(), injectonSignals.add(pin), angle); registerActuatorEventExt(e, s, list->getNextActuatorEvent(), injectonSignals.add(pin), angle);
} }
@ -248,6 +252,8 @@ void findTriggerPosition(engine_configuration_s const *engineConfiguration, trig
int engineCycleEventCount = getEngineCycleEventCount(engineConfiguration, s); int engineCycleEventCount = getEngineCycleEventCount(engineConfiguration, s);
efiAssertVoid(engineCycleEventCount > 0, "engineCycleEventCount");
uint32_t middle; uint32_t middle;
uint32_t left = 0; uint32_t left = 0;
uint32_t right = engineCycleEventCount - 1; uint32_t right = engineCycleEventCount - 1;
@ -261,7 +267,7 @@ void findTriggerPosition(engine_configuration_s const *engineConfiguration, trig
if (middle == left) { if (middle == left) {
break; break;
} }
if (angleOffset < s->eventAngles[middle]) { if (angleOffset < s->eventAngles[middle]) {
right = middle; right = middle;
@ -290,9 +296,9 @@ void registerActuatorEventExt(engine_configuration_s const *engineConfiguration,
efiAssertVoid(s->getSize() > 0, "uninitialized trigger_shape_s"); efiAssertVoid(s->getSize() > 0, "uninitialized trigger_shape_s");
if (e == NULL) { if (e == NULL) {
// error already reported // error already reported
return; return;
} }
e->actuator = actuator; e->actuator = actuator;
findTriggerPosition(engineConfiguration, s, &e->position, angleOffset); findTriggerPosition(engineConfiguration, s, &e->position, angleOffset);
@ -302,7 +308,7 @@ static int order_1_THEN_3_THEN_4_THEN2[] = { 1, 3, 4, 2 };
static int order_1_THEN_5_THEN_3_THEN_6_THEN_2_THEN_4[] = { 1, 5, 3, 6, 2, 4 }; static int order_1_THEN_5_THEN_3_THEN_6_THEN_2_THEN_4[] = { 1, 5, 3, 6, 2, 4 };
static int order_1_8_4_3_6_5_7_2[] = { 1, 8, 4, 3, 6, 5, 7, 2 }; static int order_1_8_4_3_6_5_7_2[] = {1, 8, 4, 3, 6, 5, 7, 2};
/** /**
* @param index from zero to cylindersCount - 1 * @param index from zero to cylindersCount - 1

View File

@ -118,7 +118,7 @@ static void handleFuel(Engine *engine, MainTriggerCallback *mainTriggerCallback,
} }
} }
static void handleSparkEvent(MainTriggerCallback *mainTriggerCallback, int eventIndex, IgnitionEvent *iEvent, int rpm) { static void handleSparkEvent(MainTriggerCallback *mainTriggerCallback, uint32_t eventIndex, IgnitionEvent *iEvent, int rpm) {
engine_configuration_s *engineConfiguration = mainTriggerCallback->engineConfiguration; engine_configuration_s *engineConfiguration = mainTriggerCallback->engineConfiguration;
engine_configuration2_s *engineConfiguration2 = mainTriggerCallback->engineConfiguration2; engine_configuration2_s *engineConfiguration2 = mainTriggerCallback->engineConfiguration2;
@ -182,7 +182,7 @@ static void handleSparkEvent(MainTriggerCallback *mainTriggerCallback, int event
} }
} }
static void handleSpark(MainTriggerCallback *mainTriggerCallback, int eventIndex, int rpm, IgnitionEventList *list) { static void handleSpark(MainTriggerCallback *mainTriggerCallback, uint32_t eventIndex, int rpm, IgnitionEventList *list) {
if (!isValidRpm(rpm) || !mainTriggerCallback->engineConfiguration->isIgnitionEnabled) if (!isValidRpm(rpm) || !mainTriggerCallback->engineConfiguration->isIgnitionEnabled)
return; // this might happen for instance in case of a single trigger event after a pause return; // this might happen for instance in case of a single trigger event after a pause

View File

@ -55,8 +55,10 @@ public:
* Total count of shaft events per CAM or CRANK shaft revolution. * Total count of shaft events per CAM or CRANK shaft revolution.
* TODO this should be migrated to CRANKshaft revolution, this would go together * TODO this should be migrated to CRANKshaft revolution, this would go together
* TODO with eliminating RPM_MULT magic constant * TODO with eliminating RPM_MULT magic constant
*
* todo: somehow changing the type of this to uint32_t breaks unit tests? WHY?
*/ */
uint32_t shaftPositionEventCount; int shaftPositionEventCount;
/** /**
* this one is per CRANKshaft revolution * this one is per CRANKshaft revolution

View File

@ -1,5 +1,5 @@
// This file was generated by Version2Header // This file was generated by Version2Header
// Fri Sep 12 10:36:39 EDT 2014 // Wed Sep 24 12:19:23 EDT 2014
#ifndef VCS_VERSION #ifndef VCS_VERSION
#define VCS_VERSION "4660" #define VCS_VERSION "4756"
#endif #endif

View File

@ -49,7 +49,7 @@ float maxF(float i1, float i2) {
return i1 > i2 ? i1 : i2; return i1 > i2 ? i1 : i2;
} }
int efiStrlen(const char *param) { uint32_t efiStrlen(const char *param) {
return strlen(param); return strlen(param);
} }

View File

@ -33,7 +33,7 @@ extern "C"
const char * boolToString(bool value); const char * boolToString(bool value);
int efiStrlen(const char *param); uint32_t efiStrlen(const char *param);
int indexOf(const char *string, char ch); int indexOf(const char *string, char ch);
float atoff(const char *string); float atoff(const char *string);
int atoi(const char *string); int atoi(const char *string);