parent
220163e489
commit
ec8be9400c
|
@ -29,6 +29,7 @@ Release template (copy/paste this for new release):
|
||||||
- Time delay before DFCO #4292
|
- Time delay before DFCO #4292
|
||||||
- Idle coasting position table is now RPM-based, instead of CLT-based #4487
|
- Idle coasting position table is now RPM-based, instead of CLT-based #4487
|
||||||
- Manual electronic throttle synchronization #3680
|
- Manual electronic throttle synchronization #3680
|
||||||
|
- Delay before enabling AC compressor #4502
|
||||||
|
|
||||||
### Fixed
|
### Fixed
|
||||||
- Inverted vvt control #4464
|
- Inverted vvt control #4464
|
||||||
|
|
|
@ -58,7 +58,20 @@ void AcController::onSlowCallback() {
|
||||||
|
|
||||||
m_acEnabled = isEnabled;
|
m_acEnabled = isEnabled;
|
||||||
|
|
||||||
enginePins.acRelay.setValue(isEnabled);
|
if (!isEnabled) {
|
||||||
|
// reset the timer if AC is off
|
||||||
|
m_timeSinceNoAc.reset();
|
||||||
|
}
|
||||||
|
|
||||||
|
float acDelay = engineConfiguration->acDelay;
|
||||||
|
if (acDelay == 0) {
|
||||||
|
// Without delay configured, enable immediately
|
||||||
|
acCompressorState = isEnabled;
|
||||||
|
} else {
|
||||||
|
acCompressorState = isEnabled && m_timeSinceNoAc.hasElapsedSec(acDelay);
|
||||||
|
}
|
||||||
|
|
||||||
|
enginePins.acRelay.setValue(acCompressorState);
|
||||||
}
|
}
|
||||||
|
|
||||||
bool AcController::isAcEnabled() const {
|
bool AcController::isAcEnabled() const {
|
||||||
|
|
|
@ -11,4 +11,5 @@ public:
|
||||||
private:
|
private:
|
||||||
bool getAcState();
|
bool getAcState();
|
||||||
|
|
||||||
|
Timer m_timeSinceNoAc;
|
||||||
};
|
};
|
||||||
|
|
|
@ -11,6 +11,7 @@ bit noClt;AC no CLT
|
||||||
bit engineTooHot;AC engine too hot
|
bit engineTooHot;AC engine too hot
|
||||||
bit tpsTooHigh;AC tps too high
|
bit tpsTooHigh;AC tps too high
|
||||||
bit isDisabledByLua;AC disabled by Lua
|
bit isDisabledByLua;AC disabled by Lua
|
||||||
|
bit acCompressorState;AC compressor on
|
||||||
|
|
||||||
int latest_usage_ac_control;AC latest activity
|
int latest_usage_ac_control;AC latest activity
|
||||||
! todo: extract some helper which would contain boolean state and most recent toggle time?
|
! todo: extract some helper which would contain boolean state and most recent toggle time?
|
||||||
|
|
|
@ -1430,8 +1430,9 @@ tChargeMode_e tChargeMode;
|
||||||
uint8_t autoscale maxCamPhaseResolveRpm;Below this RPM, use camshaft information to synchronize the crank's position for full sequential operation. Use this if your cam sensor does weird things at high RPM. Set to 0 to disable, and always use cam to help sync crank.;"rpm", 50, 0, 0, 12500, 0
|
uint8_t autoscale maxCamPhaseResolveRpm;Below this RPM, use camshaft information to synchronize the crank's position for full sequential operation. Use this if your cam sensor does weird things at high RPM. Set to 0 to disable, and always use cam to help sync crank.;"rpm", 50, 0, 0, 12500, 0
|
||||||
|
|
||||||
uint8_t autoscale dfcoDelay;Delay before cutting fuel. Set to 0 to cut immediately with no delay. May cause rumbles and pops out of your exhaust...;"sec", 0.1, 0, 0, 10, 1
|
uint8_t autoscale dfcoDelay;Delay before cutting fuel. Set to 0 to cut immediately with no delay. May cause rumbles and pops out of your exhaust...;"sec", 0.1, 0, 0, 10, 1
|
||||||
|
uint8_t autoscale acDelay;Delay before engaging the AC compressor. Set to 0 to engage immediately with no delay. Use this to prevent bogging at idle when AC engages.;"sec", 0.1, 0, 0, 10, 1
|
||||||
|
|
||||||
int8_t[10] unused4080;;"", 1, 0, 0, 0, 0
|
int8_t[9] unused4080;;"", 1, 0, 0, 0, 0
|
||||||
|
|
||||||
! Someday there will be a 6th option for BMW S55 that uses a separate shaft just for HPFP
|
! Someday there will be a 6th option for BMW S55 that uses a separate shaft just for HPFP
|
||||||
#define hpfp_cam_e_enum "NONE", "Intake 1", "Exhaust 1", "Intake 2", "Exhaust 2"
|
#define hpfp_cam_e_enum "NONE", "Intake 1", "Exhaust 1", "Intake 2", "Exhaust 2"
|
||||||
|
|
|
@ -2948,6 +2948,7 @@ cmd_set_engine_type_default = "@@TS_IO_TEST_COMMAND_char@@\x00\x31\x00\x00"
|
||||||
field = "A/C switch mode", acSwitchMode
|
field = "A/C switch mode", acSwitchMode
|
||||||
field = "A/C Relay", acRelayPin
|
field = "A/C Relay", acRelayPin
|
||||||
field = "A/C Relay Mode", acRelayPinMode
|
field = "A/C Relay Mode", acRelayPinMode
|
||||||
|
field = "A/C compressor delay", acDelay
|
||||||
field = "Max RPM", maxAcRpm
|
field = "Max RPM", maxAcRpm
|
||||||
field = "Max CLT", maxAcClt
|
field = "Max CLT", maxAcClt
|
||||||
field = "Max TPS", maxAcTps
|
field = "Max TPS", maxAcTps
|
||||||
|
|
Loading…
Reference in New Issue