void emulate(void) { print("Emulating...\r\n"); setDiag(1); chThdSleep(1); setFullLog(1); for (int i = 400; i <= 1300; i++) { if (i % 50 != 0) continue; setTriggerEmulatorRPM(i); chThdSleepMilliseconds(PERIOD); } setTriggerEmulatorRPM(0); setFullLog(0); setDiag(0); chThdSleep(1); print("Emulation DONE!\r\n"); }
void initTriggerEmulatorLogic(Logging *sharedLogger, Engine *engine) { logger = sharedLogger; TriggerShape *s = &engine->triggerShape; setTriggerEmulatorRPM(engineConfiguration->bc.triggerSimulatorFrequency, engine); pin_state_t *pinStates[PWM_PHASE_MAX_WAVE_PER_PWM] = { s->wave.waves[0].pinStates, s->wave.waves[1].pinStates, s->wave.waves[2].pinStates }; triggerSignal.weComplexInit("position sensor", s->getSize(), s->wave.switchTimes, PWM_PHASE_MAX_WAVE_PER_PWM, pinStates, updateTriggerShapeIfNeeded, emulatorApplyPinState); addConsoleActionIP("rpm", (VoidIntVoidPtr) setTriggerEmulatorRPM, engine); addConsoleActionIP("stop_stimulator_at_index", (VoidIntVoidPtr) setEmulatorAtIndex, engine); addConsoleActionP("resume_stimulator", (VoidPtr) resumeStimulator, engine); }
void initTriggerEmulatorLogic(Logging *sharedLogger) { logger = sharedLogger; TriggerShape *s = &engine->triggerCentral.triggerShape; setTriggerEmulatorRPM(engineConfiguration->bc.triggerSimulatorFrequency PASS_ENGINE_PARAMETER_SUFFIX); pin_state_t *pinStates[PWM_PHASE_MAX_WAVE_PER_PWM] = { s->wave.waves[0].pinStates, s->wave.waves[1].pinStates, s->wave.waves[2].pinStates }; triggerSignal.weComplexInit("position sensor", s->getSize(), s->wave.switchTimes, PWM_PHASE_MAX_WAVE_PER_PWM, pinStates, updateTriggerShapeIfNeeded, emulatorApplyPinState); addConsoleActionI("rpm", setTriggerEmulatorRPM); addConsoleActionI("stop_stimulator_at_index", setEmulatorAtIndex); addConsoleAction("resume_stimulator", resumeStimulator); }
void rusEfiFunctionalTest(void) { printToWin32Console("Running version:"); printToWin32Console("TODO"); initIntermediateLoggingBuffer(); initErrorHandling(); engine->setConfig(config); initializeConsole(&sharedLogger); initStatusLoop(engine); initDataStructures(PASS_ENGINE_PARAMETER_F); // todo: reduce code duplication with initEngineContoller resetConfigurationExt(NULL, DEFAULT_ENGINE_TYPE PASS_ENGINE_PARAMETER); prepareShapes(PASS_ENGINE_PARAMETER_F); initAlgo(&sharedLogger, engineConfiguration); commonInitEngineController(&sharedLogger); initRpmCalculator(&sharedLogger, engine); #if EFI_SENSOR_CHART || defined(__DOXYGEN__) initSensorChart(); #endif /* EFI_SENSOR_CHART */ initTriggerCentral(&sharedLogger, engine); initTriggerEmulator(&sharedLogger, engine); #if EFI_MAP_AVERAGING || defined(__DOXYGEN__) initMapAveraging(&sharedLogger, engine); #endif /* EFI_MAP_AVERAGING */ initMainEventListener(&sharedLogger, engine); startStatusThreads(engine); initPeriodicEvents(PASS_ENGINE_PARAMETER_F); setTriggerEmulatorRPM(DEFAULT_SIM_RPM, engine); engineConfiguration->engineSnifferRpmThreshold = DEFAULT_SNIFFER_THR; }
void rusEfiFunctionalTest(void) { printToConsole("Running rusEfi simulator version:"); static char versionBuffer[20]; itoa10(versionBuffer, (int)getRusEfiVersion()); printToConsole(versionBuffer); initIntermediateLoggingBuffer(); initErrorHandling(); engine->setConfig(config); initializeConsole(&sharedLogger); initStatusLoop(); initDataStructures(PASS_ENGINE_PARAMETER_SIGNATURE); // todo: reduce code duplication with initEngineContoller resetConfigurationExt(NULL, FORD_ESCORT_GT PASS_ENGINE_PARAMETER_SUFFIX); prepareShapes(PASS_ENGINE_PARAMETER_SIGNATURE); initAlgo(&sharedLogger); commonInitEngineController(&sharedLogger); initRpmCalculator(&sharedLogger PASS_ENGINE_PARAMETER_SUFFIX); initTriggerCentral(&sharedLogger); initTriggerEmulator(&sharedLogger PASS_ENGINE_PARAMETER_SUFFIX); #if EFI_MAP_AVERAGING initMapAveraging(&sharedLogger, engine); #endif /* EFI_MAP_AVERAGING */ initMainEventListener(&sharedLogger PASS_ENGINE_PARAMETER_SUFFIX); startStatusThreads(); runChprintfTest(); initPeriodicEvents(PASS_ENGINE_PARAMETER_SIGNATURE); setTriggerEmulatorRPM(DEFAULT_SIM_RPM PASS_ENGINE_PARAMETER_SUFFIX); engineConfiguration->engineSnifferRpmThreshold = DEFAULT_SNIFFER_THR; }