live data progress

This commit is contained in:
rusefillc 2022-01-02 01:17:22 -05:00
parent e7175f2079
commit 2016ecbe98
18 changed files with 293 additions and 231 deletions

View File

@ -193,6 +193,7 @@ entry = tps2Split, "tps2Split", float, "%.3f"
entry = tps12Split, "tps12Split", float, "%.3f" entry = tps12Split, "tps12Split", float, "%.3f"
entry = accPedalSplit, "accPedalSplit", float, "%.3f" entry = accPedalSplit, "accPedalSplit", float, "%.3f"
entry = m_requested_pump, "DI: Pump Angle", float, "%.3f" entry = m_requested_pump, "DI: Pump Angle", float, "%.3f"
entry = boostControlTarget, "Pump Angle", float, "%.3f"
entry = fuel_requested_percent, "DI: fuel_requested_percent", float, "%.3f" entry = fuel_requested_percent, "DI: fuel_requested_percent", float, "%.3f"
entry = fuel_requested_percent_pi, "DI: fuel_requested_percent_pi", float, "%.3f" entry = fuel_requested_percent_pi, "DI: fuel_requested_percent_pi", float, "%.3f"
entry = m_I_sum_percent, "DI: m_I_sum_percent", float, "%.3f" entry = m_I_sum_percent, "DI: m_I_sum_percent", float, "%.3f"
@ -205,6 +206,9 @@ entry = launchIsLaunchCondition, "launchIsLaunchCondition", int, "%d"
entry = launchCombinedConditions, "launchCombinedConditions", int, "%d" entry = launchCombinedConditions, "launchCombinedConditions", int, "%d"
entry = launchActivatePinState, "launchActivatePinState", int, "%d" entry = launchActivatePinState, "launchActivatePinState", int, "%d"
entry = TEMPLOG_MAP_AT_CYCLE_COUNT, "TEMPLOG_MAP_AT_CYCLE_COUNT", int, "%d" entry = TEMPLOG_MAP_AT_CYCLE_COUNT, "TEMPLOG_MAP_AT_CYCLE_COUNT", int, "%d"
entry = boostControllerOutput, "boostControllerOutput", int, "%d"
entry = boostControllerClosedLoopPart, "boostControllerClosedLoopPart", int, "%d"
entry = boostControllerOpenLoopPart, "boostControllerOpenLoopPart", int, "%d"
entry = TEMPLOG_MAP_AT_SPECIAL_POINT, "TEMPLOG_MAP_AT_SPECIAL_POINT", float, "%.3f" entry = TEMPLOG_MAP_AT_SPECIAL_POINT, "TEMPLOG_MAP_AT_SPECIAL_POINT", float, "%.3f"
entry = TEMPLOG_MAP_AT_DIFF, "TEMPLOG_MAP_AT_DIFF", float, "%.3f" entry = TEMPLOG_MAP_AT_DIFF, "TEMPLOG_MAP_AT_DIFF", float, "%.3f"
entry = vvtSyncGapRatio, "vvtSyncGapRatio", float, "%.3f" entry = vvtSyncGapRatio, "vvtSyncGapRatio", float, "%.3f"

View File

@ -193,7 +193,7 @@ tps2SplitGauge = tps2Split,"tps2Split", "%", 0.0,0.0, 0.0,0.0, 0.0,0.0, 0,0
tps12SplitGauge = tps12Split,"tps12Split", "%", 0.0,0.0, 0.0,0.0, 0.0,0.0, 0,0 tps12SplitGauge = tps12Split,"tps12Split", "%", 0.0,0.0, 0.0,0.0, 0.0,0.0, 0,0
accPedalSplitGauge = accPedalSplit,"accPedalSplit", "%", 0.0,0.0, 0.0,0.0, 0.0,0.0, 0,0 accPedalSplitGauge = accPedalSplit,"accPedalSplit", "%", 0.0,0.0, 0.0,0.0, 0.0,0.0, 0,0
m_requested_pumpGauge = m_requested_pump,"DI: Pump Angle", "deg", 0.0,0.0, 0.0,0.0, 0.0,0.0, 0,0 m_requested_pumpGauge = m_requested_pump,"DI: Pump Angle", "deg", 0.0,0.0, 0.0,0.0, 0.0,0.0, 0,0
unused16Gauge = unused16,"Pump Angle", "deg", 0.0,0.0, 0.0,0.0, 0.0,0.0, 0,0 boostControlTargetGauge = boostControlTarget,"Pump Angle", "deg", 0.0,0.0, 0.0,0.0, 0.0,0.0, 0,0
alignmentFill_at_338Gauge = alignmentFill_at_338,"need 4 byte alignment", "units", -20.0,100.0, -20.0,100.0, -20.0,100.0, 0,0 alignmentFill_at_338Gauge = alignmentFill_at_338,"need 4 byte alignment", "units", -20.0,100.0, -20.0,100.0, -20.0,100.0, 0,0
fuel_requested_percentGauge = fuel_requested_percent,"DI: fuel_requested_percent", "v", 0.0,100.0, 0.0,100.0, 0.0,100.0, 0,0 fuel_requested_percentGauge = fuel_requested_percent,"DI: fuel_requested_percent", "v", 0.0,100.0, 0.0,100.0, 0.0,100.0, 0,0
fuel_requested_percent_piGauge = fuel_requested_percent_pi,"DI: fuel_requested_percent_pi", "v", 0.0,100.0, 0.0,100.0, 0.0,100.0, 0,0 fuel_requested_percent_piGauge = fuel_requested_percent_pi,"DI: fuel_requested_percent_pi", "v", 0.0,100.0, 0.0,100.0, 0.0,100.0, 0,0
@ -260,10 +260,9 @@ unusedBit_178_29Gauge = unusedBit_178_29,"unusedBit_178_29", "", -1.0,-1.0, -1.0
unusedBit_178_30Gauge = unusedBit_178_30,"unusedBit_178_30", "", -1.0,-1.0, -1.0,-1.0, -1.0,-1.0, -1,-1 unusedBit_178_30Gauge = unusedBit_178_30,"unusedBit_178_30", "", -1.0,-1.0, -1.0,-1.0, -1.0,-1.0, -1,-1
unusedBit_178_31Gauge = unusedBit_178_31,"unusedBit_178_31", "", -1.0,-1.0, -1.0,-1.0, -1.0,-1.0, -1,-1 unusedBit_178_31Gauge = unusedBit_178_31,"unusedBit_178_31", "", -1.0,-1.0, -1.0,-1.0, -1.0,-1.0, -1,-1
TEMPLOG_MAP_AT_CYCLE_COUNTGauge = TEMPLOG_MAP_AT_CYCLE_COUNT,"TEMPLOG_MAP_AT_CYCLE_COUNT", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 TEMPLOG_MAP_AT_CYCLE_COUNTGauge = TEMPLOG_MAP_AT_CYCLE_COUNT,"TEMPLOG_MAP_AT_CYCLE_COUNT", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3
unused11Gauge = unused11,"unused11", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 boostControllerOutputGauge = boostControllerOutput,"boostControllerOutput", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 0,0
unused11Gauge = unused11,"unused11", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 boostControllerClosedLoopPartGauge = boostControllerClosedLoopPart,"boostControllerClosedLoopPart", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 0,0
unused11Gauge = unused11,"unused11", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 boostControllerOpenLoopPartGauge = boostControllerOpenLoopPart,"boostControllerOpenLoopPart", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 0,0
alignmentFill_at_474Gauge = alignmentFill_at_474,"need 4 byte alignment", "units", -20.0,100.0, -20.0,100.0, -20.0,100.0, 0,0
TEMPLOG_MAP_AT_SPECIAL_POINTGauge = TEMPLOG_MAP_AT_SPECIAL_POINT,"TEMPLOG_MAP_AT_SPECIAL_POINT", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 TEMPLOG_MAP_AT_SPECIAL_POINTGauge = TEMPLOG_MAP_AT_SPECIAL_POINT,"TEMPLOG_MAP_AT_SPECIAL_POINT", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3
TEMPLOG_MAP_AT_DIFFGauge = TEMPLOG_MAP_AT_DIFF,"TEMPLOG_MAP_AT_DIFF", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 TEMPLOG_MAP_AT_DIFFGauge = TEMPLOG_MAP_AT_DIFF,"TEMPLOG_MAP_AT_DIFF", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3
vvtSyncGapRatioGauge = vvtSyncGapRatio,"vvtSyncGapRatio", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 vvtSyncGapRatioGauge = vvtSyncGapRatio,"vvtSyncGapRatio", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3

View File

@ -193,7 +193,7 @@ tps2Split = scalar, S16, 328, "%", 0.01, 0
tps12Split = scalar, S16, 330, "%", 0.01, 0 tps12Split = scalar, S16, 330, "%", 0.01, 0
accPedalSplit = scalar, S16, 332, "%", 0.01, 0 accPedalSplit = scalar, S16, 332, "%", 0.01, 0
m_requested_pump = scalar, S16, 334, "deg", 0.02, 0 m_requested_pump = scalar, S16, 334, "deg", 0.02, 0
unused16 = scalar, S16, 336, "deg", 0.02, 0 boostControlTarget = scalar, S16, 336, "deg", 0.03333333333333333, 0
alignmentFill_at_338 = array, U08, 338, [2], "units", 1, 0 alignmentFill_at_338 = array, U08, 338, [2], "units", 1, 0
fuel_requested_percent = scalar, F32, 340, "v", 1, 0 fuel_requested_percent = scalar, F32, 340, "v", 1, 0
fuel_requested_percent_pi = scalar, F32, 344, "v", 1, 0 fuel_requested_percent_pi = scalar, F32, 344, "v", 1, 0
@ -260,10 +260,9 @@ unusedBit_178_29 = bits, U32, 468, [29:29]
unusedBit_178_30 = bits, U32, 468, [30:30] unusedBit_178_30 = bits, U32, 468, [30:30]
unusedBit_178_31 = bits, U32, 468, [31:31] unusedBit_178_31 = bits, U32, 468, [31:31]
TEMPLOG_MAP_AT_CYCLE_COUNT = scalar, U08, 472, "", 1, 0 TEMPLOG_MAP_AT_CYCLE_COUNT = scalar, U08, 472, "", 1, 0
unused11 = scalar, U08, 473, "", 1, 0 boostControllerOutput = scalar, U08, 473, "", 1, 0
unused11 = scalar, U08, 473, "", 1, 0 boostControllerClosedLoopPart = scalar, U08, 474, "", 1, 0
unused11 = scalar, U08, 473, "", 1, 0 boostControllerOpenLoopPart = scalar, U08, 475, "", 1, 0
alignmentFill_at_474 = array, U08, 474, [2], "units", 1, 0
TEMPLOG_MAP_AT_SPECIAL_POINT = scalar, F32, 476, "", 1, 0 TEMPLOG_MAP_AT_SPECIAL_POINT = scalar, F32, 476, "", 1, 0
TEMPLOG_MAP_AT_DIFF = scalar, F32, 480, "", 1, 0 TEMPLOG_MAP_AT_DIFF = scalar, F32, 480, "", 1, 0
vvtSyncGapRatio = scalar, F32, 484, "", 1, 0 vvtSyncGapRatio = scalar, F32, 484, "", 1, 0

View File

@ -260,7 +260,7 @@ uint16_t rpmAcceleration;dRPM;"RPM/s",1, 0, 0, 0, 0
int16_t autoscale accPedalSplit;;"%",{1/@@PACK_MULT_PERCENT@@}, 0, 0, 0, 0 int16_t autoscale accPedalSplit;;"%",{1/@@PACK_MULT_PERCENT@@}, 0, 0, 0, 0
int16_t autoscale m_requested_pump;"DI: Pump Angle";"deg",{1/@@PACK_MULT_ANGLE@@}, 0, 0, 0, 0 int16_t autoscale m_requested_pump;"DI: Pump Angle";"deg",{1/@@PACK_MULT_ANGLE@@}, 0, 0, 0, 0
int16_t autoscale unused16;"Pump Angle";"deg",{1/@@PACK_MULT_ANGLE@@}, 0, 0, 0, 0 int16_t autoscale boostControlTarget;"Pump Angle";"deg",{1/@@PACK_MULT_PRESSURE@@}, 0, 0, 0, 0
float fuel_requested_percent;"DI: fuel_requested_percent";"v", 1, 0, 0, 100, 0 float fuel_requested_percent;"DI: fuel_requested_percent";"v", 1, 0, 0, 100, 0
float fuel_requested_percent_pi;"DI: fuel_requested_percent_pi";"v", 1, 0, 0, 100, 0 float fuel_requested_percent_pi;"DI: fuel_requested_percent_pi";"v", 1, 0, 0, 100, 0
float m_I_sum_percent;"DI: m_I_sum_percent";"v", 1, 0, 0, 100, 0 float m_I_sum_percent;"DI: m_I_sum_percent";"v", 1, 0, 0, 100, 0
@ -279,9 +279,9 @@ uint16_t rpmAcceleration;dRPM;"RPM/s",1, 0, 0, 0, 0
bit launchActivatePinState bit launchActivatePinState
uint8_t TEMPLOG_MAP_AT_CYCLE_COUNT;;"", 1, 0, -10000, 10000, 3 uint8_t TEMPLOG_MAP_AT_CYCLE_COUNT;;"", 1, 0, -10000, 10000, 3
uint8_t unused11;;"", 1, 0, -10000, 10000, 3 uint8_t boostControllerOutput;;"", 1, 0, -10000, 10000, 0
uint8_t unused11;;"", 1, 0, -10000, 10000, 3 uint8_t boostControllerClosedLoopPart;;"", 1, 0, -10000, 10000, 0
uint8_t unused11;;"", 1, 0, -10000, 10000, 3 uint8_t boostControllerOpenLoopPart;;"", 1, 0, -10000, 10000, 0
float autoscale TEMPLOG_MAP_AT_SPECIAL_POINT;;"", 1, 0, -10000, 10000, 3 float autoscale TEMPLOG_MAP_AT_SPECIAL_POINT;;"", 1, 0, -10000, 10000, 3
float autoscale TEMPLOG_MAP_AT_DIFF;;"", 1, 0, -10000, 10000, 3 float autoscale TEMPLOG_MAP_AT_DIFF;;"", 1, 0, -10000, 10000, 3

View File

@ -1,4 +1,4 @@
// this section was generated automatically by rusEFI tool ConfigDefinition.jar based on (unknown script) console/binary/output_channels.txt Sat Jan 01 17:12:52 EST 2022 // this section was generated automatically by rusEFI tool ConfigDefinition.jar based on (unknown script) console/binary/output_channels.txt Sun Jan 02 00:45:34 EST 2022
// by class com.rusefi.output.CHeaderConsumer // by class com.rusefi.output.CHeaderConsumer
// begin // begin
#pragma once #pragma once
@ -862,7 +862,7 @@ struct ts_outputs_s {
deg deg
* offset 336 * offset 336
*/ */
scaled_channel<int16_t, 50, 1> unused16 = (int16_t)0; scaled_channel<int16_t, 30, 1> boostControlTarget = (int16_t)0;
/** /**
* need 4 byte alignment * need 4 byte alignment
units units
@ -1000,13 +1000,15 @@ struct ts_outputs_s {
/** /**
* offset 473 * offset 473
*/ */
uint8_t unused11 = (uint8_t)0; uint8_t boostControllerOutput = (uint8_t)0;
/** /**
* need 4 byte alignment
units
* offset 474 * offset 474
*/ */
uint8_t alignmentFill_at_474[2]; uint8_t boostControllerClosedLoopPart = (uint8_t)0;
/**
* offset 475
*/
uint8_t boostControllerOpenLoopPart = (uint8_t)0;
/** /**
* offset 476 * offset 476
*/ */
@ -1188,4 +1190,4 @@ struct ts_outputs_s {
}; };
// end // end
// this section was generated automatically by rusEFI tool ConfigDefinition.jar based on (unknown script) console/binary/output_channels.txt Sat Jan 01 17:12:52 EST 2022 // this section was generated automatically by rusEFI tool ConfigDefinition.jar based on (unknown script) console/binary/output_channels.txt Sun Jan 02 00:45:34 EST 2022

View File

@ -52,15 +52,13 @@ expected<float> BoostController::getSetpoint() {
float rpm = GET_RPM(); float rpm = GET_RPM();
auto tps = Sensor::get(SensorType::DriverThrottleIntent); auto tps = Sensor::get(SensorType::DriverThrottleIntent);
isTpsValid = tps.Valid; isTpsInvalid = !tps.Valid;
if (!isTpsValid) { if (isTpsInvalid) {
return unexpected; return unexpected;
} }
if (!m_closedLoopTargetMap) { efiAssert(OBD_PCM_Processor_Fault, m_closedLoopTargetMap != nullptr, "boost closed loop target", unexpected);
return unexpected;
}
return m_closedLoopTargetMap->getValue(rpm, tps.Value); return m_closedLoopTargetMap->getValue(rpm, tps.Value);
} }
@ -72,25 +70,21 @@ expected<percent_t> BoostController::getOpenLoop(float target) {
float rpm = GET_RPM(); float rpm = GET_RPM();
auto tps = Sensor::get(SensorType::DriverThrottleIntent); auto tps = Sensor::get(SensorType::DriverThrottleIntent);
isTpsValid = tps.Valid; isTpsInvalid = !tps.Valid;
if (!isTpsValid) { if (isTpsInvalid) {
return unexpected; return unexpected;
} }
if (!m_openLoopMap) { efiAssert(OBD_PCM_Processor_Fault, m_openLoopMap != nullptr, "boost open loop", unexpected);
return unexpected;
}
percent_t openLoop = m_openLoopMap->getValue(rpm, tps.Value); openLoopPart = m_openLoopMap->getValue(rpm, tps.Value);
#if EFI_TUNER_STUDIO #if EFI_TUNER_STUDIO
if (engineConfiguration->debugMode == DBG_BOOST) { engine->outputChannels.boostControllerOpenLoopPart = openLoopPart;
engine->outputChannels.debugFloatField1 = openLoop;
}
#endif #endif
return openLoop; return openLoopPart;
} }
percent_t BoostController::getClosedLoopImpl(float target, float manifoldPressure) { percent_t BoostController::getClosedLoopImpl(float target, float manifoldPressure) {
@ -107,7 +101,8 @@ percent_t BoostController::getClosedLoopImpl(float target, float manifoldPressur
} }
// If the engine isn't running, don't correct. // If the engine isn't running, don't correct.
if (GET_RPM() == 0) { isZeroRpm = GET_RPM() == 0;
if (isZeroRpm) {
m_pid.reset(); m_pid.reset();
return 0; return 0;
} }
@ -121,6 +116,7 @@ percent_t BoostController::getClosedLoopImpl(float target, float manifoldPressur
} }
closedLoopPart = m_pid.getOutput(target, manifoldPressure, SLOW_CALLBACK_PERIOD_MS / 1000.0f); closedLoopPart = m_pid.getOutput(target, manifoldPressure, SLOW_CALLBACK_PERIOD_MS / 1000.0f);
engine->outputChannels.boostControllerClosedLoopPart = closedLoopPart;
return closedLoopPart; return closedLoopPart;
} }
@ -128,10 +124,7 @@ expected<percent_t> BoostController::getClosedLoop(float target, float manifoldP
auto closedLoop = getClosedLoopImpl(target, manifoldPressure); auto closedLoop = getClosedLoopImpl(target, manifoldPressure);
#if EFI_TUNER_STUDIO #if EFI_TUNER_STUDIO
if (engineConfiguration->debugMode == DBG_BOOST) { engine->outputChannels.boostControlTarget = target;
engine->outputChannels.debugFloatField2 = closedLoop;
engine->outputChannels.debugFloatField3 = target;
}
#endif /* EFI_TUNER_STUDIO */ #endif /* EFI_TUNER_STUDIO */
return closedLoop; return closedLoop;
@ -141,9 +134,7 @@ void BoostController::setOutput(expected<float> output) {
percent_t percent = output.value_or(engineConfiguration->boostControlSafeDutyCycle); percent_t percent = output.value_or(engineConfiguration->boostControlSafeDutyCycle);
#if EFI_TUNER_STUDIO #if EFI_TUNER_STUDIO
if (engineConfiguration->debugMode == DBG_BOOST) { engine->outputChannels.boostControllerOutput = percent;
engine->outputChannels.debugFloatField3 = percent;
}
#endif /* EFI_TUNER_STUDIO */ #endif /* EFI_TUNER_STUDIO */
float duty = PERCENT_TO_DUTY(percent); float duty = PERCENT_TO_DUTY(percent);

View File

@ -1,9 +1,10 @@
struct_no_prefix boost_control_s struct_no_prefix boost_control_s
bit isTpsValid bit isTpsInvalid
bit m_shouldResetPid bit m_shouldResetPid
bit isBelowClosedLoopThreshold; bit isBelowClosedLoopThreshold;
bit isNotClosedLoop; bit isNotClosedLoop;
bit isZeroRpm
float openLoopPart; float openLoopPart;
float closedLoopPart; float closedLoopPart;

View File

@ -1,4 +1,4 @@
// this section was generated automatically by rusEFI tool ConfigDefinition.jar based on (unknown script) controllers/actuators/boost_control.txt Wed Nov 24 19:10:13 UTC 2021 // this section was generated automatically by rusEFI tool ConfigDefinition.jar based on (unknown script) controllers/actuators/boost_control.txt Sun Jan 02 00:55:42 EST 2022
// by class com.rusefi.output.CHeaderConsumer // by class com.rusefi.output.CHeaderConsumer
// begin // begin
#pragma once #pragma once
@ -7,7 +7,7 @@
struct boost_control_s { struct boost_control_s {
/** /**
offset 0 bit 0 */ offset 0 bit 0 */
bool isTpsValid : 1 {}; bool isTpsInvalid : 1 {};
/** /**
offset 0 bit 1 */ offset 0 bit 1 */
bool m_shouldResetPid : 1 {}; bool m_shouldResetPid : 1 {};
@ -19,88 +19,88 @@ struct boost_control_s {
bool isNotClosedLoop : 1 {}; bool isNotClosedLoop : 1 {};
/** /**
offset 0 bit 4 */ offset 0 bit 4 */
bool unusedBit_4_4 : 1 {}; bool isZeroRpm : 1 {};
/** /**
offset 0 bit 5 */ offset 0 bit 5 */
bool unusedBit_4_5 : 1 {}; bool unusedBit_5_5 : 1 {};
/** /**
offset 0 bit 6 */ offset 0 bit 6 */
bool unusedBit_4_6 : 1 {}; bool unusedBit_5_6 : 1 {};
/** /**
offset 0 bit 7 */ offset 0 bit 7 */
bool unusedBit_4_7 : 1 {}; bool unusedBit_5_7 : 1 {};
/** /**
offset 0 bit 8 */ offset 0 bit 8 */
bool unusedBit_4_8 : 1 {}; bool unusedBit_5_8 : 1 {};
/** /**
offset 0 bit 9 */ offset 0 bit 9 */
bool unusedBit_4_9 : 1 {}; bool unusedBit_5_9 : 1 {};
/** /**
offset 0 bit 10 */ offset 0 bit 10 */
bool unusedBit_4_10 : 1 {}; bool unusedBit_5_10 : 1 {};
/** /**
offset 0 bit 11 */ offset 0 bit 11 */
bool unusedBit_4_11 : 1 {}; bool unusedBit_5_11 : 1 {};
/** /**
offset 0 bit 12 */ offset 0 bit 12 */
bool unusedBit_4_12 : 1 {}; bool unusedBit_5_12 : 1 {};
/** /**
offset 0 bit 13 */ offset 0 bit 13 */
bool unusedBit_4_13 : 1 {}; bool unusedBit_5_13 : 1 {};
/** /**
offset 0 bit 14 */ offset 0 bit 14 */
bool unusedBit_4_14 : 1 {}; bool unusedBit_5_14 : 1 {};
/** /**
offset 0 bit 15 */ offset 0 bit 15 */
bool unusedBit_4_15 : 1 {}; bool unusedBit_5_15 : 1 {};
/** /**
offset 0 bit 16 */ offset 0 bit 16 */
bool unusedBit_4_16 : 1 {}; bool unusedBit_5_16 : 1 {};
/** /**
offset 0 bit 17 */ offset 0 bit 17 */
bool unusedBit_4_17 : 1 {}; bool unusedBit_5_17 : 1 {};
/** /**
offset 0 bit 18 */ offset 0 bit 18 */
bool unusedBit_4_18 : 1 {}; bool unusedBit_5_18 : 1 {};
/** /**
offset 0 bit 19 */ offset 0 bit 19 */
bool unusedBit_4_19 : 1 {}; bool unusedBit_5_19 : 1 {};
/** /**
offset 0 bit 20 */ offset 0 bit 20 */
bool unusedBit_4_20 : 1 {}; bool unusedBit_5_20 : 1 {};
/** /**
offset 0 bit 21 */ offset 0 bit 21 */
bool unusedBit_4_21 : 1 {}; bool unusedBit_5_21 : 1 {};
/** /**
offset 0 bit 22 */ offset 0 bit 22 */
bool unusedBit_4_22 : 1 {}; bool unusedBit_5_22 : 1 {};
/** /**
offset 0 bit 23 */ offset 0 bit 23 */
bool unusedBit_4_23 : 1 {}; bool unusedBit_5_23 : 1 {};
/** /**
offset 0 bit 24 */ offset 0 bit 24 */
bool unusedBit_4_24 : 1 {}; bool unusedBit_5_24 : 1 {};
/** /**
offset 0 bit 25 */ offset 0 bit 25 */
bool unusedBit_4_25 : 1 {}; bool unusedBit_5_25 : 1 {};
/** /**
offset 0 bit 26 */ offset 0 bit 26 */
bool unusedBit_4_26 : 1 {}; bool unusedBit_5_26 : 1 {};
/** /**
offset 0 bit 27 */ offset 0 bit 27 */
bool unusedBit_4_27 : 1 {}; bool unusedBit_5_27 : 1 {};
/** /**
offset 0 bit 28 */ offset 0 bit 28 */
bool unusedBit_4_28 : 1 {}; bool unusedBit_5_28 : 1 {};
/** /**
offset 0 bit 29 */ offset 0 bit 29 */
bool unusedBit_4_29 : 1 {}; bool unusedBit_5_29 : 1 {};
/** /**
offset 0 bit 30 */ offset 0 bit 30 */
bool unusedBit_4_30 : 1 {}; bool unusedBit_5_30 : 1 {};
/** /**
offset 0 bit 31 */ offset 0 bit 31 */
bool unusedBit_4_31 : 1 {}; bool unusedBit_5_31 : 1 {};
/** /**
* offset 4 * offset 4
*/ */
@ -113,4 +113,4 @@ struct boost_control_s {
}; };
// end // end
// this section was generated automatically by rusEFI tool ConfigDefinition.jar based on (unknown script) controllers/actuators/boost_control.txt Wed Nov 24 19:10:13 UTC 2021 // this section was generated automatically by rusEFI tool ConfigDefinition.jar based on (unknown script) controllers/actuators/boost_control.txt Sun Jan 02 00:55:42 EST 2022

View File

@ -22,7 +22,9 @@ void FuelPumpController::onSlowCallback() {
#endif #endif
} }
void FuelPumpController::onIgnitionStateChanged(bool ignitionOn) { void FuelPumpController::onIgnitionStateChanged(bool ignitionOnParam) {
// live data parser convention is asking for a field
ignitionOn = ignitionOnParam;
if (ignitionOn) { if (ignitionOn) {
m_ignOnTimer.reset(); m_ignOnTimer.reset();
} }

View File

@ -2,4 +2,5 @@ struct_no_prefix fuel_pump_control_s
bit isPrime bit isPrime
bit engineTurnedRecently bit engineTurnedRecently
bit isPumpOn bit isPumpOn
bit ignitionOn
end_struct end_struct

View File

@ -1,4 +1,4 @@
// this section was generated automatically by rusEFI tool ConfigDefinition.jar based on (unknown script) controllers/actuators/fuel_pump.txt Sat Nov 20 03:34:13 UTC 2021 // this section was generated automatically by rusEFI tool ConfigDefinition.jar based on (unknown script) controllers/actuators/fuel_pump.txt Sun Jan 02 01:15:50 EST 2022
// by class com.rusefi.output.CHeaderConsumer // by class com.rusefi.output.CHeaderConsumer
// begin // begin
#pragma once #pragma once
@ -16,93 +16,93 @@ struct fuel_pump_control_s {
bool isPumpOn : 1 {}; bool isPumpOn : 1 {};
/** /**
offset 0 bit 3 */ offset 0 bit 3 */
bool unusedBit_3_3 : 1 {}; bool ignitionOn : 1 {};
/** /**
offset 0 bit 4 */ offset 0 bit 4 */
bool unusedBit_3_4 : 1 {}; bool unusedBit_4_4 : 1 {};
/** /**
offset 0 bit 5 */ offset 0 bit 5 */
bool unusedBit_3_5 : 1 {}; bool unusedBit_4_5 : 1 {};
/** /**
offset 0 bit 6 */ offset 0 bit 6 */
bool unusedBit_3_6 : 1 {}; bool unusedBit_4_6 : 1 {};
/** /**
offset 0 bit 7 */ offset 0 bit 7 */
bool unusedBit_3_7 : 1 {}; bool unusedBit_4_7 : 1 {};
/** /**
offset 0 bit 8 */ offset 0 bit 8 */
bool unusedBit_3_8 : 1 {}; bool unusedBit_4_8 : 1 {};
/** /**
offset 0 bit 9 */ offset 0 bit 9 */
bool unusedBit_3_9 : 1 {}; bool unusedBit_4_9 : 1 {};
/** /**
offset 0 bit 10 */ offset 0 bit 10 */
bool unusedBit_3_10 : 1 {}; bool unusedBit_4_10 : 1 {};
/** /**
offset 0 bit 11 */ offset 0 bit 11 */
bool unusedBit_3_11 : 1 {}; bool unusedBit_4_11 : 1 {};
/** /**
offset 0 bit 12 */ offset 0 bit 12 */
bool unusedBit_3_12 : 1 {}; bool unusedBit_4_12 : 1 {};
/** /**
offset 0 bit 13 */ offset 0 bit 13 */
bool unusedBit_3_13 : 1 {}; bool unusedBit_4_13 : 1 {};
/** /**
offset 0 bit 14 */ offset 0 bit 14 */
bool unusedBit_3_14 : 1 {}; bool unusedBit_4_14 : 1 {};
/** /**
offset 0 bit 15 */ offset 0 bit 15 */
bool unusedBit_3_15 : 1 {}; bool unusedBit_4_15 : 1 {};
/** /**
offset 0 bit 16 */ offset 0 bit 16 */
bool unusedBit_3_16 : 1 {}; bool unusedBit_4_16 : 1 {};
/** /**
offset 0 bit 17 */ offset 0 bit 17 */
bool unusedBit_3_17 : 1 {}; bool unusedBit_4_17 : 1 {};
/** /**
offset 0 bit 18 */ offset 0 bit 18 */
bool unusedBit_3_18 : 1 {}; bool unusedBit_4_18 : 1 {};
/** /**
offset 0 bit 19 */ offset 0 bit 19 */
bool unusedBit_3_19 : 1 {}; bool unusedBit_4_19 : 1 {};
/** /**
offset 0 bit 20 */ offset 0 bit 20 */
bool unusedBit_3_20 : 1 {}; bool unusedBit_4_20 : 1 {};
/** /**
offset 0 bit 21 */ offset 0 bit 21 */
bool unusedBit_3_21 : 1 {}; bool unusedBit_4_21 : 1 {};
/** /**
offset 0 bit 22 */ offset 0 bit 22 */
bool unusedBit_3_22 : 1 {}; bool unusedBit_4_22 : 1 {};
/** /**
offset 0 bit 23 */ offset 0 bit 23 */
bool unusedBit_3_23 : 1 {}; bool unusedBit_4_23 : 1 {};
/** /**
offset 0 bit 24 */ offset 0 bit 24 */
bool unusedBit_3_24 : 1 {}; bool unusedBit_4_24 : 1 {};
/** /**
offset 0 bit 25 */ offset 0 bit 25 */
bool unusedBit_3_25 : 1 {}; bool unusedBit_4_25 : 1 {};
/** /**
offset 0 bit 26 */ offset 0 bit 26 */
bool unusedBit_3_26 : 1 {}; bool unusedBit_4_26 : 1 {};
/** /**
offset 0 bit 27 */ offset 0 bit 27 */
bool unusedBit_3_27 : 1 {}; bool unusedBit_4_27 : 1 {};
/** /**
offset 0 bit 28 */ offset 0 bit 28 */
bool unusedBit_3_28 : 1 {}; bool unusedBit_4_28 : 1 {};
/** /**
offset 0 bit 29 */ offset 0 bit 29 */
bool unusedBit_3_29 : 1 {}; bool unusedBit_4_29 : 1 {};
/** /**
offset 0 bit 30 */ offset 0 bit 30 */
bool unusedBit_3_30 : 1 {}; bool unusedBit_4_30 : 1 {};
/** /**
offset 0 bit 31 */ offset 0 bit 31 */
bool unusedBit_3_31 : 1 {}; bool unusedBit_4_31 : 1 {};
/** total size 4*/ /** total size 4*/
}; };
// end // end
// this section was generated automatically by rusEFI tool ConfigDefinition.jar based on (unknown script) controllers/actuators/fuel_pump.txt Sat Nov 20 03:34:13 UTC 2021 // this section was generated automatically by rusEFI tool ConfigDefinition.jar based on (unknown script) controllers/actuators/fuel_pump.txt Sun Jan 02 01:15:50 EST 2022

View File

@ -314,6 +314,8 @@ float getOutputValueByName(const char *name) {
return engine->outputChannels.accPedalSplit; return engine->outputChannels.accPedalSplit;
if (strEqualCaseInsensitive(name, "m_requested_pump")) if (strEqualCaseInsensitive(name, "m_requested_pump"))
return engine->outputChannels.m_requested_pump; return engine->outputChannels.m_requested_pump;
if (strEqualCaseInsensitive(name, "boostControlTarget"))
return engine->outputChannels.boostControlTarget;
if (strEqualCaseInsensitive(name, "fuel_requested_percent")) if (strEqualCaseInsensitive(name, "fuel_requested_percent"))
return engine->outputChannels.fuel_requested_percent; return engine->outputChannels.fuel_requested_percent;
if (strEqualCaseInsensitive(name, "fuel_requested_percent_pi")) if (strEqualCaseInsensitive(name, "fuel_requested_percent_pi"))
@ -338,6 +340,12 @@ float getOutputValueByName(const char *name) {
return engine->outputChannels.launchActivatePinState; return engine->outputChannels.launchActivatePinState;
if (strEqualCaseInsensitive(name, "TEMPLOG_MAP_AT_CYCLE_COUNT")) if (strEqualCaseInsensitive(name, "TEMPLOG_MAP_AT_CYCLE_COUNT"))
return engine->outputChannels.TEMPLOG_MAP_AT_CYCLE_COUNT; return engine->outputChannels.TEMPLOG_MAP_AT_CYCLE_COUNT;
if (strEqualCaseInsensitive(name, "boostControllerOutput"))
return engine->outputChannels.boostControllerOutput;
if (strEqualCaseInsensitive(name, "boostControllerClosedLoopPart"))
return engine->outputChannels.boostControllerClosedLoopPart;
if (strEqualCaseInsensitive(name, "boostControllerOpenLoopPart"))
return engine->outputChannels.boostControllerOpenLoopPart;
if (strEqualCaseInsensitive(name, "TEMPLOG_MAP_AT_SPECIAL_POINT")) if (strEqualCaseInsensitive(name, "TEMPLOG_MAP_AT_SPECIAL_POINT"))
return engine->outputChannels.TEMPLOG_MAP_AT_SPECIAL_POINT; return engine->outputChannels.TEMPLOG_MAP_AT_SPECIAL_POINT;
if (strEqualCaseInsensitive(name, "TEMPLOG_MAP_AT_DIFF")) if (strEqualCaseInsensitive(name, "TEMPLOG_MAP_AT_DIFF"))

View File

@ -1,78 +1,78 @@
package com.rusefi.config.generated; package com.rusefi.config.generated;
// this file was generated automatically by rusEFI tool ConfigDefinition.jar based on (unknown script) controllers/actuators/boost_control.txt Wed Nov 24 19:10:13 UTC 2021 // this file was generated automatically by rusEFI tool ConfigDefinition.jar based on (unknown script) controllers/actuators/boost_control.txt Sun Jan 02 00:55:42 EST 2022
// by class com.rusefi.output.FileJavaFieldsConsumer // by class com.rusefi.output.FileJavaFieldsConsumer
import com.rusefi.config.*; import com.rusefi.config.*;
public class BoostControl { public class BoostControl {
public static final Field ISTPSVALID = Field.create("ISTPSVALID", 0, FieldType.BIT, 0); public static final Field ISTPSINVALID = Field.create("ISTPSINVALID", 0, FieldType.BIT, 0);
public static final Field M_SHOULDRESETPID = Field.create("M_SHOULDRESETPID", 0, FieldType.BIT, 1); public static final Field M_SHOULDRESETPID = Field.create("M_SHOULDRESETPID", 0, FieldType.BIT, 1);
public static final Field ISBELOWCLOSEDLOOPTHRESHOLD = Field.create("ISBELOWCLOSEDLOOPTHRESHOLD", 0, FieldType.BIT, 2); public static final Field ISBELOWCLOSEDLOOPTHRESHOLD = Field.create("ISBELOWCLOSEDLOOPTHRESHOLD", 0, FieldType.BIT, 2);
public static final Field ISNOTCLOSEDLOOP = Field.create("ISNOTCLOSEDLOOP", 0, FieldType.BIT, 3); public static final Field ISNOTCLOSEDLOOP = Field.create("ISNOTCLOSEDLOOP", 0, FieldType.BIT, 3);
public static final Field UNUSEDBIT_4_4 = Field.create("UNUSEDBIT_4_4", 0, FieldType.BIT, 4); public static final Field ISZERORPM = Field.create("ISZERORPM", 0, FieldType.BIT, 4);
public static final Field UNUSEDBIT_4_5 = Field.create("UNUSEDBIT_4_5", 0, FieldType.BIT, 5); public static final Field UNUSEDBIT_5_5 = Field.create("UNUSEDBIT_5_5", 0, FieldType.BIT, 5);
public static final Field UNUSEDBIT_4_6 = Field.create("UNUSEDBIT_4_6", 0, FieldType.BIT, 6); public static final Field UNUSEDBIT_5_6 = Field.create("UNUSEDBIT_5_6", 0, FieldType.BIT, 6);
public static final Field UNUSEDBIT_4_7 = Field.create("UNUSEDBIT_4_7", 0, FieldType.BIT, 7); public static final Field UNUSEDBIT_5_7 = Field.create("UNUSEDBIT_5_7", 0, FieldType.BIT, 7);
public static final Field UNUSEDBIT_4_8 = Field.create("UNUSEDBIT_4_8", 0, FieldType.BIT, 8); public static final Field UNUSEDBIT_5_8 = Field.create("UNUSEDBIT_5_8", 0, FieldType.BIT, 8);
public static final Field UNUSEDBIT_4_9 = Field.create("UNUSEDBIT_4_9", 0, FieldType.BIT, 9); public static final Field UNUSEDBIT_5_9 = Field.create("UNUSEDBIT_5_9", 0, FieldType.BIT, 9);
public static final Field UNUSEDBIT_4_10 = Field.create("UNUSEDBIT_4_10", 0, FieldType.BIT, 10); public static final Field UNUSEDBIT_5_10 = Field.create("UNUSEDBIT_5_10", 0, FieldType.BIT, 10);
public static final Field UNUSEDBIT_4_11 = Field.create("UNUSEDBIT_4_11", 0, FieldType.BIT, 11); public static final Field UNUSEDBIT_5_11 = Field.create("UNUSEDBIT_5_11", 0, FieldType.BIT, 11);
public static final Field UNUSEDBIT_4_12 = Field.create("UNUSEDBIT_4_12", 0, FieldType.BIT, 12); public static final Field UNUSEDBIT_5_12 = Field.create("UNUSEDBIT_5_12", 0, FieldType.BIT, 12);
public static final Field UNUSEDBIT_4_13 = Field.create("UNUSEDBIT_4_13", 0, FieldType.BIT, 13); public static final Field UNUSEDBIT_5_13 = Field.create("UNUSEDBIT_5_13", 0, FieldType.BIT, 13);
public static final Field UNUSEDBIT_4_14 = Field.create("UNUSEDBIT_4_14", 0, FieldType.BIT, 14); public static final Field UNUSEDBIT_5_14 = Field.create("UNUSEDBIT_5_14", 0, FieldType.BIT, 14);
public static final Field UNUSEDBIT_4_15 = Field.create("UNUSEDBIT_4_15", 0, FieldType.BIT, 15); public static final Field UNUSEDBIT_5_15 = Field.create("UNUSEDBIT_5_15", 0, FieldType.BIT, 15);
public static final Field UNUSEDBIT_4_16 = Field.create("UNUSEDBIT_4_16", 0, FieldType.BIT, 16); public static final Field UNUSEDBIT_5_16 = Field.create("UNUSEDBIT_5_16", 0, FieldType.BIT, 16);
public static final Field UNUSEDBIT_4_17 = Field.create("UNUSEDBIT_4_17", 0, FieldType.BIT, 17); public static final Field UNUSEDBIT_5_17 = Field.create("UNUSEDBIT_5_17", 0, FieldType.BIT, 17);
public static final Field UNUSEDBIT_4_18 = Field.create("UNUSEDBIT_4_18", 0, FieldType.BIT, 18); public static final Field UNUSEDBIT_5_18 = Field.create("UNUSEDBIT_5_18", 0, FieldType.BIT, 18);
public static final Field UNUSEDBIT_4_19 = Field.create("UNUSEDBIT_4_19", 0, FieldType.BIT, 19); public static final Field UNUSEDBIT_5_19 = Field.create("UNUSEDBIT_5_19", 0, FieldType.BIT, 19);
public static final Field UNUSEDBIT_4_20 = Field.create("UNUSEDBIT_4_20", 0, FieldType.BIT, 20); public static final Field UNUSEDBIT_5_20 = Field.create("UNUSEDBIT_5_20", 0, FieldType.BIT, 20);
public static final Field UNUSEDBIT_4_21 = Field.create("UNUSEDBIT_4_21", 0, FieldType.BIT, 21); public static final Field UNUSEDBIT_5_21 = Field.create("UNUSEDBIT_5_21", 0, FieldType.BIT, 21);
public static final Field UNUSEDBIT_4_22 = Field.create("UNUSEDBIT_4_22", 0, FieldType.BIT, 22); public static final Field UNUSEDBIT_5_22 = Field.create("UNUSEDBIT_5_22", 0, FieldType.BIT, 22);
public static final Field UNUSEDBIT_4_23 = Field.create("UNUSEDBIT_4_23", 0, FieldType.BIT, 23); public static final Field UNUSEDBIT_5_23 = Field.create("UNUSEDBIT_5_23", 0, FieldType.BIT, 23);
public static final Field UNUSEDBIT_4_24 = Field.create("UNUSEDBIT_4_24", 0, FieldType.BIT, 24); public static final Field UNUSEDBIT_5_24 = Field.create("UNUSEDBIT_5_24", 0, FieldType.BIT, 24);
public static final Field UNUSEDBIT_4_25 = Field.create("UNUSEDBIT_4_25", 0, FieldType.BIT, 25); public static final Field UNUSEDBIT_5_25 = Field.create("UNUSEDBIT_5_25", 0, FieldType.BIT, 25);
public static final Field UNUSEDBIT_4_26 = Field.create("UNUSEDBIT_4_26", 0, FieldType.BIT, 26); public static final Field UNUSEDBIT_5_26 = Field.create("UNUSEDBIT_5_26", 0, FieldType.BIT, 26);
public static final Field UNUSEDBIT_4_27 = Field.create("UNUSEDBIT_4_27", 0, FieldType.BIT, 27); public static final Field UNUSEDBIT_5_27 = Field.create("UNUSEDBIT_5_27", 0, FieldType.BIT, 27);
public static final Field UNUSEDBIT_4_28 = Field.create("UNUSEDBIT_4_28", 0, FieldType.BIT, 28); public static final Field UNUSEDBIT_5_28 = Field.create("UNUSEDBIT_5_28", 0, FieldType.BIT, 28);
public static final Field UNUSEDBIT_4_29 = Field.create("UNUSEDBIT_4_29", 0, FieldType.BIT, 29); public static final Field UNUSEDBIT_5_29 = Field.create("UNUSEDBIT_5_29", 0, FieldType.BIT, 29);
public static final Field UNUSEDBIT_4_30 = Field.create("UNUSEDBIT_4_30", 0, FieldType.BIT, 30); public static final Field UNUSEDBIT_5_30 = Field.create("UNUSEDBIT_5_30", 0, FieldType.BIT, 30);
public static final Field UNUSEDBIT_4_31 = Field.create("UNUSEDBIT_4_31", 0, FieldType.BIT, 31); public static final Field UNUSEDBIT_5_31 = Field.create("UNUSEDBIT_5_31", 0, FieldType.BIT, 31);
public static final Field OPENLOOPPART = Field.create("OPENLOOPPART", 4, FieldType.FLOAT); public static final Field OPENLOOPPART = Field.create("OPENLOOPPART", 4, FieldType.FLOAT);
public static final Field CLOSEDLOOPPART = Field.create("CLOSEDLOOPPART", 8, FieldType.FLOAT); public static final Field CLOSEDLOOPPART = Field.create("CLOSEDLOOPPART", 8, FieldType.FLOAT);
public static final Field[] VALUES = { public static final Field[] VALUES = {
ISTPSVALID, ISTPSINVALID,
M_SHOULDRESETPID, M_SHOULDRESETPID,
ISBELOWCLOSEDLOOPTHRESHOLD, ISBELOWCLOSEDLOOPTHRESHOLD,
ISNOTCLOSEDLOOP, ISNOTCLOSEDLOOP,
UNUSEDBIT_4_4, ISZERORPM,
UNUSEDBIT_4_5, UNUSEDBIT_5_5,
UNUSEDBIT_4_6, UNUSEDBIT_5_6,
UNUSEDBIT_4_7, UNUSEDBIT_5_7,
UNUSEDBIT_4_8, UNUSEDBIT_5_8,
UNUSEDBIT_4_9, UNUSEDBIT_5_9,
UNUSEDBIT_4_10, UNUSEDBIT_5_10,
UNUSEDBIT_4_11, UNUSEDBIT_5_11,
UNUSEDBIT_4_12, UNUSEDBIT_5_12,
UNUSEDBIT_4_13, UNUSEDBIT_5_13,
UNUSEDBIT_4_14, UNUSEDBIT_5_14,
UNUSEDBIT_4_15, UNUSEDBIT_5_15,
UNUSEDBIT_4_16, UNUSEDBIT_5_16,
UNUSEDBIT_4_17, UNUSEDBIT_5_17,
UNUSEDBIT_4_18, UNUSEDBIT_5_18,
UNUSEDBIT_4_19, UNUSEDBIT_5_19,
UNUSEDBIT_4_20, UNUSEDBIT_5_20,
UNUSEDBIT_4_21, UNUSEDBIT_5_21,
UNUSEDBIT_4_22, UNUSEDBIT_5_22,
UNUSEDBIT_4_23, UNUSEDBIT_5_23,
UNUSEDBIT_4_24, UNUSEDBIT_5_24,
UNUSEDBIT_4_25, UNUSEDBIT_5_25,
UNUSEDBIT_4_26, UNUSEDBIT_5_26,
UNUSEDBIT_4_27, UNUSEDBIT_5_27,
UNUSEDBIT_4_28, UNUSEDBIT_5_28,
UNUSEDBIT_4_29, UNUSEDBIT_5_29,
UNUSEDBIT_4_30, UNUSEDBIT_5_30,
UNUSEDBIT_4_31, UNUSEDBIT_5_31,
OPENLOOPPART, OPENLOOPPART,
CLOSEDLOOPPART, CLOSEDLOOPPART,
}; };

View File

@ -1,6 +1,6 @@
package com.rusefi.config.generated; package com.rusefi.config.generated;
// this file was generated automatically by rusEFI tool ConfigDefinition.jar based on (unknown script) controllers/actuators/fuel_pump.txt Sat Nov 20 03:34:13 UTC 2021 // this file was generated automatically by rusEFI tool ConfigDefinition.jar based on (unknown script) controllers/actuators/fuel_pump.txt Sun Jan 02 01:15:50 EST 2022
// by class com.rusefi.output.FileJavaFieldsConsumer // by class com.rusefi.output.FileJavaFieldsConsumer
import com.rusefi.config.*; import com.rusefi.config.*;
@ -9,67 +9,67 @@ public class FuelPump {
public static final Field ISPRIME = Field.create("ISPRIME", 0, FieldType.BIT, 0); public static final Field ISPRIME = Field.create("ISPRIME", 0, FieldType.BIT, 0);
public static final Field ENGINETURNEDRECENTLY = Field.create("ENGINETURNEDRECENTLY", 0, FieldType.BIT, 1); public static final Field ENGINETURNEDRECENTLY = Field.create("ENGINETURNEDRECENTLY", 0, FieldType.BIT, 1);
public static final Field ISPUMPON = Field.create("ISPUMPON", 0, FieldType.BIT, 2); public static final Field ISPUMPON = Field.create("ISPUMPON", 0, FieldType.BIT, 2);
public static final Field UNUSEDBIT_3_3 = Field.create("UNUSEDBIT_3_3", 0, FieldType.BIT, 3); public static final Field IGNITIONON = Field.create("IGNITIONON", 0, FieldType.BIT, 3);
public static final Field UNUSEDBIT_3_4 = Field.create("UNUSEDBIT_3_4", 0, FieldType.BIT, 4); public static final Field UNUSEDBIT_4_4 = Field.create("UNUSEDBIT_4_4", 0, FieldType.BIT, 4);
public static final Field UNUSEDBIT_3_5 = Field.create("UNUSEDBIT_3_5", 0, FieldType.BIT, 5); public static final Field UNUSEDBIT_4_5 = Field.create("UNUSEDBIT_4_5", 0, FieldType.BIT, 5);
public static final Field UNUSEDBIT_3_6 = Field.create("UNUSEDBIT_3_6", 0, FieldType.BIT, 6); public static final Field UNUSEDBIT_4_6 = Field.create("UNUSEDBIT_4_6", 0, FieldType.BIT, 6);
public static final Field UNUSEDBIT_3_7 = Field.create("UNUSEDBIT_3_7", 0, FieldType.BIT, 7); public static final Field UNUSEDBIT_4_7 = Field.create("UNUSEDBIT_4_7", 0, FieldType.BIT, 7);
public static final Field UNUSEDBIT_3_8 = Field.create("UNUSEDBIT_3_8", 0, FieldType.BIT, 8); public static final Field UNUSEDBIT_4_8 = Field.create("UNUSEDBIT_4_8", 0, FieldType.BIT, 8);
public static final Field UNUSEDBIT_3_9 = Field.create("UNUSEDBIT_3_9", 0, FieldType.BIT, 9); public static final Field UNUSEDBIT_4_9 = Field.create("UNUSEDBIT_4_9", 0, FieldType.BIT, 9);
public static final Field UNUSEDBIT_3_10 = Field.create("UNUSEDBIT_3_10", 0, FieldType.BIT, 10); public static final Field UNUSEDBIT_4_10 = Field.create("UNUSEDBIT_4_10", 0, FieldType.BIT, 10);
public static final Field UNUSEDBIT_3_11 = Field.create("UNUSEDBIT_3_11", 0, FieldType.BIT, 11); public static final Field UNUSEDBIT_4_11 = Field.create("UNUSEDBIT_4_11", 0, FieldType.BIT, 11);
public static final Field UNUSEDBIT_3_12 = Field.create("UNUSEDBIT_3_12", 0, FieldType.BIT, 12); public static final Field UNUSEDBIT_4_12 = Field.create("UNUSEDBIT_4_12", 0, FieldType.BIT, 12);
public static final Field UNUSEDBIT_3_13 = Field.create("UNUSEDBIT_3_13", 0, FieldType.BIT, 13); public static final Field UNUSEDBIT_4_13 = Field.create("UNUSEDBIT_4_13", 0, FieldType.BIT, 13);
public static final Field UNUSEDBIT_3_14 = Field.create("UNUSEDBIT_3_14", 0, FieldType.BIT, 14); public static final Field UNUSEDBIT_4_14 = Field.create("UNUSEDBIT_4_14", 0, FieldType.BIT, 14);
public static final Field UNUSEDBIT_3_15 = Field.create("UNUSEDBIT_3_15", 0, FieldType.BIT, 15); public static final Field UNUSEDBIT_4_15 = Field.create("UNUSEDBIT_4_15", 0, FieldType.BIT, 15);
public static final Field UNUSEDBIT_3_16 = Field.create("UNUSEDBIT_3_16", 0, FieldType.BIT, 16); public static final Field UNUSEDBIT_4_16 = Field.create("UNUSEDBIT_4_16", 0, FieldType.BIT, 16);
public static final Field UNUSEDBIT_3_17 = Field.create("UNUSEDBIT_3_17", 0, FieldType.BIT, 17); public static final Field UNUSEDBIT_4_17 = Field.create("UNUSEDBIT_4_17", 0, FieldType.BIT, 17);
public static final Field UNUSEDBIT_3_18 = Field.create("UNUSEDBIT_3_18", 0, FieldType.BIT, 18); public static final Field UNUSEDBIT_4_18 = Field.create("UNUSEDBIT_4_18", 0, FieldType.BIT, 18);
public static final Field UNUSEDBIT_3_19 = Field.create("UNUSEDBIT_3_19", 0, FieldType.BIT, 19); public static final Field UNUSEDBIT_4_19 = Field.create("UNUSEDBIT_4_19", 0, FieldType.BIT, 19);
public static final Field UNUSEDBIT_3_20 = Field.create("UNUSEDBIT_3_20", 0, FieldType.BIT, 20); public static final Field UNUSEDBIT_4_20 = Field.create("UNUSEDBIT_4_20", 0, FieldType.BIT, 20);
public static final Field UNUSEDBIT_3_21 = Field.create("UNUSEDBIT_3_21", 0, FieldType.BIT, 21); public static final Field UNUSEDBIT_4_21 = Field.create("UNUSEDBIT_4_21", 0, FieldType.BIT, 21);
public static final Field UNUSEDBIT_3_22 = Field.create("UNUSEDBIT_3_22", 0, FieldType.BIT, 22); public static final Field UNUSEDBIT_4_22 = Field.create("UNUSEDBIT_4_22", 0, FieldType.BIT, 22);
public static final Field UNUSEDBIT_3_23 = Field.create("UNUSEDBIT_3_23", 0, FieldType.BIT, 23); public static final Field UNUSEDBIT_4_23 = Field.create("UNUSEDBIT_4_23", 0, FieldType.BIT, 23);
public static final Field UNUSEDBIT_3_24 = Field.create("UNUSEDBIT_3_24", 0, FieldType.BIT, 24); public static final Field UNUSEDBIT_4_24 = Field.create("UNUSEDBIT_4_24", 0, FieldType.BIT, 24);
public static final Field UNUSEDBIT_3_25 = Field.create("UNUSEDBIT_3_25", 0, FieldType.BIT, 25); public static final Field UNUSEDBIT_4_25 = Field.create("UNUSEDBIT_4_25", 0, FieldType.BIT, 25);
public static final Field UNUSEDBIT_3_26 = Field.create("UNUSEDBIT_3_26", 0, FieldType.BIT, 26); public static final Field UNUSEDBIT_4_26 = Field.create("UNUSEDBIT_4_26", 0, FieldType.BIT, 26);
public static final Field UNUSEDBIT_3_27 = Field.create("UNUSEDBIT_3_27", 0, FieldType.BIT, 27); public static final Field UNUSEDBIT_4_27 = Field.create("UNUSEDBIT_4_27", 0, FieldType.BIT, 27);
public static final Field UNUSEDBIT_3_28 = Field.create("UNUSEDBIT_3_28", 0, FieldType.BIT, 28); public static final Field UNUSEDBIT_4_28 = Field.create("UNUSEDBIT_4_28", 0, FieldType.BIT, 28);
public static final Field UNUSEDBIT_3_29 = Field.create("UNUSEDBIT_3_29", 0, FieldType.BIT, 29); public static final Field UNUSEDBIT_4_29 = Field.create("UNUSEDBIT_4_29", 0, FieldType.BIT, 29);
public static final Field UNUSEDBIT_3_30 = Field.create("UNUSEDBIT_3_30", 0, FieldType.BIT, 30); public static final Field UNUSEDBIT_4_30 = Field.create("UNUSEDBIT_4_30", 0, FieldType.BIT, 30);
public static final Field UNUSEDBIT_3_31 = Field.create("UNUSEDBIT_3_31", 0, FieldType.BIT, 31); public static final Field UNUSEDBIT_4_31 = Field.create("UNUSEDBIT_4_31", 0, FieldType.BIT, 31);
public static final Field[] VALUES = { public static final Field[] VALUES = {
ISPRIME, ISPRIME,
ENGINETURNEDRECENTLY, ENGINETURNEDRECENTLY,
ISPUMPON, ISPUMPON,
UNUSEDBIT_3_3, IGNITIONON,
UNUSEDBIT_3_4, UNUSEDBIT_4_4,
UNUSEDBIT_3_5, UNUSEDBIT_4_5,
UNUSEDBIT_3_6, UNUSEDBIT_4_6,
UNUSEDBIT_3_7, UNUSEDBIT_4_7,
UNUSEDBIT_3_8, UNUSEDBIT_4_8,
UNUSEDBIT_3_9, UNUSEDBIT_4_9,
UNUSEDBIT_3_10, UNUSEDBIT_4_10,
UNUSEDBIT_3_11, UNUSEDBIT_4_11,
UNUSEDBIT_3_12, UNUSEDBIT_4_12,
UNUSEDBIT_3_13, UNUSEDBIT_4_13,
UNUSEDBIT_3_14, UNUSEDBIT_4_14,
UNUSEDBIT_3_15, UNUSEDBIT_4_15,
UNUSEDBIT_3_16, UNUSEDBIT_4_16,
UNUSEDBIT_3_17, UNUSEDBIT_4_17,
UNUSEDBIT_3_18, UNUSEDBIT_4_18,
UNUSEDBIT_3_19, UNUSEDBIT_4_19,
UNUSEDBIT_3_20, UNUSEDBIT_4_20,
UNUSEDBIT_3_21, UNUSEDBIT_4_21,
UNUSEDBIT_3_22, UNUSEDBIT_4_22,
UNUSEDBIT_3_23, UNUSEDBIT_4_23,
UNUSEDBIT_3_24, UNUSEDBIT_4_24,
UNUSEDBIT_3_25, UNUSEDBIT_4_25,
UNUSEDBIT_3_26, UNUSEDBIT_4_26,
UNUSEDBIT_3_27, UNUSEDBIT_4_27,
UNUSEDBIT_3_28, UNUSEDBIT_4_28,
UNUSEDBIT_3_29, UNUSEDBIT_4_29,
UNUSEDBIT_3_30, UNUSEDBIT_4_30,
UNUSEDBIT_3_31, UNUSEDBIT_4_31,
}; };
} }

View File

@ -15,7 +15,9 @@ import org.antlr.v4.runtime.tree.TerminalNode;
import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.NotNull;
import java.awt.*; import java.awt.*;
import java.util.ArrayList;
import java.util.Stack; import java.util.Stack;
import java.util.concurrent.atomic.AtomicReference;
import static com.devexperts.logging.Logging.getLogging; import static com.devexperts.logging.Logging.getLogging;
@ -30,13 +32,14 @@ public class CodeWalkthrough {
private static final Color BROKEN_CODE = Color.orange; private static final Color BROKEN_CODE = Color.orange;
static { static {
log.configureDebugEnabled(true); log.configureDebugEnabled(false);
} }
private static final String CONFIG_MAGIC_PREFIX = "engineConfiguration"; private static final String CONFIG_MAGIC_PREFIX = "engineConfiguration";
public static ParseResult applyVariables(VariableValueSource valueSource, String sourceCode, SourceCodePainter painter, ParseTree tree) { public static ParseResult applyVariables(VariableValueSource valueSource, String sourceCode, SourceCodePainter painter, ParseTree tree) {
Stack<BranchingState> currentState = new Stack<>(); Stack<BranchingState> currentState = new Stack<>();
java.util.List<String> brokenConditions = new ArrayList<>();
java.util.List<TerminalNode> allTerminals = new java.util.ArrayList<>(); java.util.List<TerminalNode> allTerminals = new java.util.ArrayList<>();
@ -105,6 +108,7 @@ public class CodeWalkthrough {
log.debug("CURRENT STATE ADD " + state); log.debug("CURRENT STATE ADD " + state);
currentState.add(branchingState); currentState.add(branchingState);
if (branchingState == BranchingState.BROKEN) { if (branchingState == BranchingState.BROKEN) {
brokenConditions.add(conditionVariable);
painter.paintBackground(BROKEN_CODE, new Range(ctx)); painter.paintBackground(BROKEN_CODE, new Range(ctx));
} else if (branchingState == BranchingState.TRUE) { } else if (branchingState == BranchingState.TRUE) {
painter.paintBackground(Color.GREEN, new Range(ctx)); painter.paintBackground(Color.GREEN, new Range(ctx));
@ -157,7 +161,7 @@ public class CodeWalkthrough {
configTokens.add(token); configTokens.add(token);
} }
} }
return new ParseResult(configTokens); return new ParseResult(configTokens, brokenConditions);
} }
private static void resetState(Stack<BranchingState> currentState) { private static void resetState(Stack<BranchingState> currentState) {

View File

@ -6,15 +6,21 @@ import java.util.Collections;
import java.util.List; import java.util.List;
public class ParseResult { public class ParseResult {
static ParseResult VOID = new ParseResult(Collections.emptyList()); static ParseResult VOID = new ParseResult(Collections.emptyList(), Collections.emptyList());
private final List<Token> configTokens; private final List<Token> configTokens;
private final List<String> brokenConditions;
public ParseResult(List<Token> configTokens) { public ParseResult(List<Token> configTokens, java.util.List<String> brokenConditions) {
this.configTokens = configTokens; this.configTokens = configTokens;
this.brokenConditions = brokenConditions;
} }
public List<Token> getConfigTokens() { public List<Token> getConfigTokens() {
return configTokens; return configTokens;
} }
public List<String> geBrokenConditions() {
return brokenConditions;
}
} }

View File

@ -0,0 +1,45 @@
package com.rusefi.livedata;
import com.rusefi.CodeWalkthrough;
import com.rusefi.config.Field;
import com.rusefi.ui.livedata.SourceCodePainter;
import com.rusefi.ui.livedata.VariableValueSource;
import org.antlr.v4.runtime.tree.ParseTree;
import org.junit.Ignore;
import org.junit.Test;
import java.io.IOException;
import java.net.URISyntaxException;
import static com.rusefi.livedata.LiveDataParserPanel.getParseTree;
import static org.junit.Assert.assertTrue;
public class LiveDataConventionTest {
@Test
@Ignore
public void assertLiveDataConvention() throws IOException, URISyntaxException {
for (LiveDataView view : LiveDataView.values())
assertFile(view.getFileName(), view.getValues());
}
private void assertFile(String fileName, Field[] values) throws IOException, URISyntaxException {
VariableValueSource valueSource = name -> {
Field f = Field.findFieldOrNull(values, "", name);
if (f == null) {
return null;
}
System.out.println("getValue");
return true;
};
String sourceCode = LiveDataParserPanel.getContent(LiveDataParserPanel.class, fileName);
assertTrue("No content " + fileName + " size=" + sourceCode.length(), sourceCode.length() > 100);
ParseTree tree = getParseTree(sourceCode);
ParseResult parseResult = CodeWalkthrough.applyVariables(valueSource, sourceCode, SourceCodePainter.VOID, tree);
assertTrue("Broken live data constraint in " + fileName + ": " + parseResult.geBrokenConditions(), parseResult.geBrokenConditions().isEmpty());
}
}

View File

@ -28,7 +28,7 @@ public class LiveDataParserPanelSandbox {
byte[] state = new byte[size]; byte[] state = new byte[size];
Field.findFieldOrNull(values, "", BoostControl.ISTPSVALID.getName()).setValue(state, true); Field.findFieldOrNull(values, "", BoostControl.ISTPSINVALID.getName()).setValue(state, true);
Field.findFieldOrNull(values, "", BoostControl.ISNOTCLOSEDLOOP.getName()).setValue(state, true); Field.findFieldOrNull(values, "", BoostControl.ISNOTCLOSEDLOOP.getName()).setValue(state, true);
LiveDocsRegistry.INSTANCE.refresh(context1 -> state LiveDocsRegistry.INSTANCE.refresh(context1 -> state