diff --git a/firmware/tunerstudio/rusefi.input b/firmware/tunerstudio/rusefi.input index c952e1a947..8e7f741452 100644 --- a/firmware/tunerstudio/rusefi.input +++ b/firmware/tunerstudio/rusefi.input @@ -1954,14 +1954,13 @@ cmd_set_engine_type_default = "@@TS_IO_TEST_COMMAND_char@@\x00\x31\x00\x00" field = "#Cam is primary if you have cam sensor as part of trigger shape" ; cam if ; two-stroke, or - ; trigger without known location and cam selected, or - ; ! trigger is crank based - field = "Cam Sensor (Primary channel)", triggerInputPins1, 1, { twoStroke == 1 || ((@@TRIGGER_TYPE_WITHOUT_KNOWN_LOCATION@@) && skippedWheelOnCam) || ! (@@TRIGGER_CRANK_BASED@@) } - field = "Crank Sensor (Primary channel)", triggerInputPins1, 1, { !(twoStroke == 1 || ((@@TRIGGER_TYPE_WITHOUT_KNOWN_LOCATION@@) && skippedWheelOnCam) || ! (@@TRIGGER_CRANK_BASED@@)) } + ; not crank trigger and ((vague trigger and cam choice) or not vague trigger) + field = "Cam Sensor (Primary channel)", triggerInputPins1, 1, { twoStroke == 1 || ( !(@@TRIGGER_CRANK_BASED@@) && ( ( (@@TRIGGER_TYPE_WITHOUT_KNOWN_LOCATION@@) && skippedWheelOnCam) || !(@@TRIGGER_TYPE_WITHOUT_KNOWN_LOCATION@@) ) ) } + field = "Crank Sensor (Primary channel)", triggerInputPins1, 1, { !(twoStroke == 1 || ( !(@@TRIGGER_CRANK_BASED@@) && ( ( (@@TRIGGER_TYPE_WITHOUT_KNOWN_LOCATION@@) && skippedWheelOnCam) || !(@@TRIGGER_TYPE_WITHOUT_KNOWN_LOCATION@@) ) )) } field = "Invert Primary", invertPrimaryTriggerSignal - field = "Secondary channel", triggerInputPins2, { triggerInputPins1 != 0 && (@@TRIGGER_TYPE_WITH_SECOND_WHEEL@@)) } - field = "Invert Secondary", invertSecondaryTriggerSignal, { triggerInputPins2 != 0 && (@@TRIGGER_TYPE_WITH_SECOND_WHEEL@@)) } + field = "Secondary channel", triggerInputPins2, { triggerInputPins1 != 0 && (@@TRIGGER_TYPE_WITH_SECOND_WHEEL@@) } + field = "Invert Secondary", invertSecondaryTriggerSignal, { triggerInputPins2 != 0 && (@@TRIGGER_TYPE_WITH_SECOND_WHEEL@@) } field = "#VVT or Cam for 60/2 goes below" field = "#If your engine has no exhaust cam sensor, use intake cam inputs" field = "Cam sensor bank 1 intake", camInputs1, { vvtMode1 != @@vvt_mode_e_VVT_INACTIVE@@ } diff --git a/unit_tests/tests/trigger/test_all_triggers.cpp b/unit_tests/tests/trigger/test_all_triggers.cpp index 3ca9d10f9a..2ce7a20c57 100644 --- a/unit_tests/tests/trigger/test_all_triggers.cpp +++ b/unit_tests/tests/trigger/test_all_triggers.cpp @@ -67,11 +67,12 @@ TEST_P(AllTriggersFixture, TestTrigger) { ASSERT_FALSE(shape->shapeDefinitionError) << "Trigger shapeDefinitionError"; fprintf(fp, "TRIGGERTYPE %d %d %s %.2f\n", tt, shape->getLength(), getTrigger_type_e(tt), shape->tdcPosition); - // todo: use getCrankDivider instead to support symmetrical crank wheels? - fprintf(fp, "%s=%s\n", TRIGGER_IS_CRANK_KEY, shape->getOperationMode() == FOUR_STROKE_CRANK_SENSOR ? "true" : "false"); - fprintf(fp, "%s=%s\n", TRIGGER_IS_SECOND_WHEEL_CAM, shape->isSecondWheelCam ? "true" : "false"); - fprintf(fp, "%s=%s\n", TRIGGER_HAS_SECOND_CHANNEL, shape->needSecondTriggerInput ? "true" : "false"); + fprintf(fp, "%s=%s\n", TRIGGER_HARDCODED_OPERATION_MODE, shape->knownOperationMode ? "true" : "false"); + fprintf(fp, "%s=%s\n", TRIGGER_IS_CRANK_KEY, shape->knownOperationMode && (shape->getOperationMode() == FOUR_STROKE_CRANK_SENSOR) ? "true" : "false"); + + fprintf(fp, "%s=%s\n", TRIGGER_HAS_SECOND_CHANNEL, shape->needSecondTriggerInput ? "true" : "false"); + fprintf(fp, "%s=%s\n", TRIGGER_IS_SECOND_WHEEL_CAM, shape->isSecondWheelCam ? "true" : "false"); fprintf(fp, "# duty %.2f %.2f\n", shape->expectedDutyCycle[0], shape->expectedDutyCycle[1]); for (size_t i = 0; i < shape->getLength(); i++) {