static void getValue(const char *paramStr) { if (strEqualCaseInsensitive(paramStr, "todo")) { scheduleMsg(&logger, "something"); } #if EFI_RTC || defined(__DOXYGEN__) else if (strEqualCaseInsensitive(paramStr, "date")) { printDateTime(); } #endif }
static void setValue(const char *paramStr, const char *valueStr) { float valueF = atoff(valueStr); int valueI = atoi(valueStr); if (strEqualCaseInsensitive(paramStr, "vsscoeff")) { engineConfiguration->vehicleSpeedCoef = valueF; #if EFI_PROD_CODE || defined(__DOXYGEN__) } else if (strEqualCaseInsensitive(paramStr, "alt_t")) { if (valueI > 10) { engineConfiguration->alternatorDT = valueI; } showAltInfo(); } else if (strEqualCaseInsensitive(paramStr, "alt_offset")) { engineConfiguration->alternatorOffset = valueI; } else if (strEqualCaseInsensitive(paramStr, "alt_p")) { setAltPFactor(valueF); #endif } else if (strEqualCaseInsensitive(paramStr, "step1rpm")) { engineConfiguration->step1rpm = valueI; } else if (strEqualCaseInsensitive(paramStr, "step1timing")) { engineConfiguration->step1timing = valueI; } else if (strEqualCaseInsensitive(paramStr, "targetvbatt")) { engineConfiguration->targetVBatt = valueF; #if EFI_RTC || defined(__DOXYGEN__) } else if (strEqualCaseInsensitive(paramStr, "date")) { setDateTime(valueStr); #endif } }
static void testParsing(void) { char buffer[64]; assertTrue(strEqualCaseInsensitive("hello", "HELlo")); assertFalse(strEqualCaseInsensitive("hello", "HElo2")); const char *ptr; ptr = getNextToken(" hello ", buffer, sizeof(buffer)); assertTrue(strEqual("hello", buffer)); ptr = getNextToken("hello", buffer, sizeof(buffer)); assertTrue(strEqual("hello", buffer)); ptr = getNextToken(" hello world ", buffer, sizeof(buffer)); assertTrue(strEqual("hello", buffer)); ptr = getNextToken(ptr, buffer, sizeof(buffer)); assertTrue(strEqual("world", buffer)); assertTrue(isNumeric("123")); assertFalse(isNumeric("a123")); LEElement thepool[TEST_POOL_SIZE]; LEElementPool pool(thepool, TEST_POOL_SIZE); LEElement *element; element = pool.parseExpression("1 3 AND not"); assertTrue(element != NULL); assertEquals(element->action, LE_NUMERIC_VALUE); assertEquals(element->fValue, 1.0); element = element->next; assertEquals(element->action, LE_NUMERIC_VALUE); assertEquals(element->fValue, 3.0); element = element->next; assertEquals(element->action, LE_OPERATOR_AND); element = element->next; assertEquals(element->action, LE_OPERATOR_NOT); element = element->next; assertTrue(element == NULL); }
le_action_e parseAction(const char * line) { LENameOrdinalPair *pair = LE_FIRST; while (pair != NULL) { if (strEqualCaseInsensitive(pair->name, line)) { return pair->action; } pair = pair->next; } return LE_UNDEFINED; }
static void enableOrDisable(const char *param, bool isEnabled) { if (strEqualCaseInsensitive(param, "fastadc")) { boardConfiguration->isFastAdcEnabled = isEnabled; } else if (strEqualCaseInsensitive(param, "step1limimter")) { boardConfiguration->enabledStep1Limiter = isEnabled; } else if (strEqualCaseInsensitive(param, "serial")) { boardConfiguration->useSerialPort = isEnabled; } else if (strEqualCaseInsensitive(param, "stepperidle")) { boardConfiguration->useStepperIdle = isEnabled; } else if (strEqualCaseInsensitive(param, "trigger_only_front")) { engineConfiguration->useOnlyFrontForTrigger = isEnabled; incrementGlobalConfigurationVersion(); } else if (strEqualCaseInsensitive(param, "two_wire_batch")) { engineConfiguration->twoWireBatch = isEnabled; incrementGlobalConfigurationVersion(); } else if (strEqualCaseInsensitive(param, "joystick")) { engineConfiguration->isJoystickEnabled = isEnabled; } else if (strEqualCaseInsensitive(param, "HIP9011")) { boardConfiguration->isHip9011Enabled = isEnabled; } else if (strEqualCaseInsensitive(param, "altdebug")) { boardConfiguration->isVerboseAlternator = isEnabled; } else if (strEqualCaseInsensitive(param, "tpic_advanced_mode")) { boardConfiguration->useTpicAdvancedMode = isEnabled; } else if (strEqualCaseInsensitive(param, "knockdebug")) { engine->knockDebug = isEnabled; } else if (strEqualCaseInsensitive(param, "altcontrol")) { engineConfiguration->isAlternatorControlEnabled = isEnabled; } else if (strEqualCaseInsensitive(param, "sd")) { boardConfiguration->isSdCardEnabled = isEnabled; } else if (strEqualCaseInsensitive(param, "can")) { engineConfiguration->isCanEnabled = isEnabled; } else if (strEqualCaseInsensitive(param, "test_mode")) { engine->isTestMode = isEnabled; } else if (strEqualCaseInsensitive(param, "can_read")) { engineConfiguration->canReadEnabled = isEnabled; } else if (strEqualCaseInsensitive(param, "can_write")) { engineConfiguration->canWriteEnabled = isEnabled; } else if (strEqualCaseInsensitive(param, "injection")) { engineConfiguration->isInjectionEnabled = isEnabled; } else if (strEqualCaseInsensitive(param, "trigger_details")) { engineConfiguration->isPrintTriggerSynchDetails = isEnabled; } else if (strEqualCaseInsensitive(param, "ignition")) { engineConfiguration->isIgnitionEnabled = isEnabled; } else if (strEqualCaseInsensitive(param, "self_stimulation")) { engineConfiguration->directSelfStimulation = isEnabled; } else if (strEqualCaseInsensitive(param, "engine_control")) { boardConfiguration->isEngineControlEnabled = isEnabled; } else if (strEqualCaseInsensitive(param, "map_avg")) { engineConfiguration->isMapAveragingEnabled = isEnabled; } else if (strEqualCaseInsensitive(param, "mil")) { engineConfiguration->isMilEnabled = isEnabled; } else if (strEqualCaseInsensitive(param, "fuel_pump")) { engineConfiguration->isFuelPumpEnabled = isEnabled; } else if (strEqualCaseInsensitive(param, "tunerstudio")) { engineConfiguration->isTunerStudioEnabled = isEnabled; } else if (strEqualCaseInsensitive(param, "wave_analyzer")) { engineConfiguration->isWaveAnalyzerEnabled = isEnabled; } else if (strEqualCaseInsensitive(param, "idle_thread")) { engineConfiguration->isIdleThreadEnabled = isEnabled; } else if (strEqualCaseInsensitive(param, "manual_spinning")) { engineConfiguration->isManualSpinningMode = isEnabled; } else if (strEqualCaseInsensitive(param, "cylinder_cleanup")) { engineConfiguration->isCylinderCleanupEnabled = isEnabled; } else { scheduleMsg(&logger, "unexpected [%s]", param); return; // well, MISRA would not like this 'return' here :( } scheduleMsg(&logger, "[%s] %s", param, isEnabled ? "enabled" : "disabled"); }