diff --git a/firmware/controllers/engine_controller.cpp b/firmware/controllers/engine_controller.cpp index fb7aaa695e..263a8dd34e 100644 --- a/firmware/controllers/engine_controller.cpp +++ b/firmware/controllers/engine_controller.cpp @@ -349,10 +349,14 @@ static void showFsioInfo(void) { for (int i = 0; i < LE_COMMAND_COUNT; i++) { char * exp = boardConfiguration->le_formulas[i]; if (exp[0] != 0) { - scheduleMsg(&logger, "FSIO #%d [%s] at %s@%dHz = %f", (i + 1), exp, + /** + * in case of FSIO user interface indexes are starting with 0, the argument for that + * is the fact that the target audience is more software developers + */ + scheduleMsg(&logger, "FSIO #%d [%s] at %s@%dHz value=%f", i, exp, hwPortname(boardConfiguration->fsioPins[i]), boardConfiguration->fsioFrequency[i], engineConfiguration2->fsioLastValue[i]); - scheduleMsg(&logger, "user-defined #%d value=%f", (i + 1), engine->engineConfiguration2->fsioLastValue[i]); +// scheduleMsg(&logger, "user-defined #%d value=%f", i, engine->engineConfiguration2->fsioLastValue[i]); showFsio(NULL, fsioLogics[i]); } } diff --git a/firmware/rusefi.cpp b/firmware/rusefi.cpp index d5db0d9f3a..f328c410c5 100644 --- a/firmware/rusefi.cpp +++ b/firmware/rusefi.cpp @@ -265,5 +265,5 @@ int getRusEfiVersion(void) { return 1; // this is here to make the compiler happy about the unused array if (UNUSED_CCM_SIZE == 0) return 1; // this is here to make the compiler happy about the unused array - return 20141210; + return 20141212; } diff --git a/firmware/tunerstudio/rusefi.ini b/firmware/tunerstudio/rusefi.ini index c8a72cb44b..006a57c154 100644 --- a/firmware/tunerstudio/rusefi.ini +++ b/firmware/tunerstudio/rusefi.ini @@ -336,6 +336,23 @@ enable2ndByteCanID = false fsioFrequency14 = scalar, U16, 6112, "Hz", 1, 0, 0, 3000, 0 ; size 2 fsioFrequency15 = scalar, U16, 6114, "Hz", 1, 0, 0, 3000, 0 ; size 2 + fsio_setting0 = scalar, F32, 6128, "Val", 1, 0, 0, 18000, 0 ; size 4 + fsio_setting1 = scalar, F32, 6132, "Val", 1, 0, 0, 18000, 0 ; size 4 + fsio_setting2 = scalar, F32, 6136, "Val", 1, 0, 0, 18000, 0 ; size 4 + fsio_setting3 = scalar, F32, 6140, "Val", 1, 0, 0, 18000, 0 ; size 4 + fsio_setting4 = scalar, F32, 6144, "Val", 1, 0, 0, 18000, 0 ; size 4 + fsio_setting5 = scalar, F32, 6148, "Val", 1, 0, 0, 18000, 0 ; size 4 + fsio_setting6 = scalar, F32, 6152, "Val", 1, 0, 0, 18000, 0 ; size 4 + fsio_setting7 = scalar, F32, 6156, "Val", 1, 0, 0, 18000, 0 ; size 4 + fsio_setting8 = scalar, F32, 6160, "Val", 1, 0, 0, 18000, 0 ; size 4 + fsio_setting9 = scalar, F32, 6164, "Val", 1, 0, 0, 18000, 0 ; size 4 + fsio_setting10 = scalar, F32, 6168, "Val", 1, 0, 0, 18000, 0 ; size 4 + fsio_setting11 = scalar, F32, 6172, "Val", 1, 0, 0, 18000, 0 ; size 4 + fsio_setting12 = scalar, F32, 6176, "Val", 1, 0, 0, 18000, 0 ; size 4 + fsio_setting13 = scalar, F32, 6180, "Val", 1, 0, 0, 18000, 0 ; size 4 + fsio_setting14 = scalar, F32, 6184, "Val", 1, 0, 0, 18000, 0 ; size 4 + fsio_setting15 = scalar, F32, 6188, "Val", 1, 0, 0, 18000, 0 ; size 4 + useConstantDwellDuringCranking= bits, U32, 6280, [3:3], "false", "true" ; hasCltSensor 6284 ; idleMode 6288 @@ -362,6 +379,7 @@ enable2ndByteCanID = false crankingCycleBins = array, F32, 9600, [8], "C", 1, 0, -80.0, 170.0, 2; size 32 ignitionDwellForCrankingMs=scalar, F32, 9632, "ms", 1, 0, 0, 200, 1; size 4 + [OutputChannels] @@ -532,8 +550,16 @@ fileVersion = { 20141103 } ;Name Var Title Units Lo Hi LoD LoW HiW HiD vd ld tachometer = rpm, "Engine Speed", "RPM", 0, 8000, 200, 500, 6000, 6000, 0, 0 +#if CELSIUS CLTGauge = coolant, "Coolant Temp", "°C", -40, 140, -15, 1, 95, 110, 1, 1 +#else + CLTGauge = coolant, "Coolant Temp", "°F", -40, 285, 5, 35, 205, 230, 1, 1 +#endif +#if CELSIUS IATGauge = intake, "Intake Air Temp", "°C", -40, 140, -15, 1, 95, 110, 1, 1 +#else + IATGauge = intake, "Intake Air Temp", "°F", -40, 285, 5, 35, 205, 230, 1, 1 +#endif throttleGauge = TPS, "Throttle Position", "%", 0, 100, 0, 0, 100, 100, 0, 0 afr1Gauge = AFRactual, "Air:Fuel Ratio 1", "", 10, 19.4, 12, 13, 15, 16, 2, 2 mafGauge = MAF, "Mass Air Flow", "v", 0, 5, 0, 1, 3, 4, 1, 1 @@ -600,17 +626,16 @@ fileVersion = { 20141103 } entry = MAP, "MAP", float, "%d" entry = AFRactual, "AFR", float, "%.2f" entry = VBatt, "vBatt", float, "%.2f" - entry = engineload "Load" float, "%d" - entry = pulseWidth "injPulse" float, "%.3f" - entry = baseFuel "baseFuel", float, "%.2f" - entry = ign_adv "ignAdv", float, "%.2f" + entry = engineload, "Load", float, "%d" + entry = pulseWidth, "injPulse", float, "%.3f" + entry = baseFuel, "baseFuel", float, "%.2f" + entry = ign_adv, "ignAdv", float, "%.2f" ; tpsADC = U16, "ADC", ; alignmet = U16, "al", ; atmPres = F32, "pres", ; crankingFuel = F32, "ms", ; tCharge = F32, "T", -; inj_adv = F32, "MAP", ; sparkDwell = F32, "MAP", ; warmUpEnrich = F32, "%", ; egt0 = S16, "°C", @@ -982,6 +1007,8 @@ fileVersion = { 20141103 } field = "output #14", fsioPin13 field = "output #15", fsioPin14 field = "output #16", fsioPin15 + field = "" + field = "" dialog = fsioFrequency, "Frequency" field = "freq #1", fsioFrequency0 @@ -1000,7 +1027,30 @@ fileVersion = { 20141103 } field = "freq #14", fsioFrequency13 field = "freq #15", fsioFrequency14 field = "freq #16", fsioFrequency15 + field = "" + field = "" + dialog = fsioSetting, "Setting" + field = "!Set number is not associated with the output number." + field = "!Set number, only the cell number with some numbers." + field = "set #0", fsio_setting0 + field = "set #1", fsio_setting1 + field = "set #2", fsio_setting2 + field = "set #3", fsio_setting3 + field = "set #4", fsio_setting4 + field = "set #5", fsio_setting5 + field = "set #6", fsio_setting6 + field = "set #7", fsio_setting7 + field = "set #8", fsio_setting8 + field = "set #9", fsio_setting9 + field = "set #10", fsio_setting10 + field = "set #11", fsio_setting11 + field = "set #12", fsio_setting12 + field = "set #13", fsio_setting13 + field = "set #14", fsio_setting14 + field = "set #15", fsio_setting15 + dialog = fsioDialog, "FSIO", border panel = fsioIO, West - panel = fsioFrequency, East \ No newline at end of file + panel = fsioFrequency, Center + panel = fsioSetting, East \ No newline at end of file diff --git a/unit_tests/test_logic_expression.cpp b/unit_tests/test_logic_expression.cpp index 644a43fd35..cd3661924f 100644 --- a/unit_tests/test_logic_expression.cpp +++ b/unit_tests/test_logic_expression.cpp @@ -175,10 +175,15 @@ void testLogicExpressions(void) { testExpression("10 99 max", 99); testExpression("fan NOT coolant 90 > AND fan coolant 85 > AND OR", 1); + testExpression("coolant", 100); + testExpression("fan_off_setting", 0); + testExpression("coolant fan_off_setting >", 1); testExpression("0 1 &", 0); testExpression("0 1 |", 1); + testExpression("0 1 >", 0); + testExpression(FAN_CONTROL_LOGIC, 1); mockRpm = 900;