Skip to content

Commit

Permalink
Power supply off: send cablecheck as phase if switching off after suc… (
Browse files Browse the repository at this point in the history
#907)

* Power supply off: send cablecheck as phase if switching off after success

Signed-off-by: Cornelius Claussen <cc@pionix.de>

* clang-format

Signed-off-by: Cornelius Claussen <cc@pionix.de>

---------

Signed-off-by: Cornelius Claussen <cc@pionix.de>
  • Loading branch information
corneliusclaussen authored and hikinggrass committed Nov 21, 2024
1 parent 3b519fc commit e574f65
Showing 1 changed file with 6 additions and 1 deletion.
7 changes: 6 additions & 1 deletion modules/EvseManager/EvseManager.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -1652,12 +1652,12 @@ bool EvseManager::powersupply_DC_set(double _voltage, double _current) {
}

void EvseManager::powersupply_DC_off() {
power_supply_DC_charging_phase = types::power_supply_DC::ChargingPhase::Other;
if (powersupply_dc_is_on) {
session_log.evse(false, "DC power supply OFF");
r_powersupply_DC[0]->call_setMode(types::power_supply_DC::Mode::Off, power_supply_DC_charging_phase);
powersupply_dc_is_on = false;
}
power_supply_DC_charging_phase = types::power_supply_DC::ChargingPhase::Other;
}

bool EvseManager::wait_powersupply_DC_voltage_reached(double target_voltage) {
Expand All @@ -1668,6 +1668,7 @@ bool EvseManager::wait_powersupply_DC_voltage_reached(double target_voltage) {
while (not timeout.reached()) {
if (cable_check_should_exit()) {
EVLOG_warning << "Cancel cable check wait voltage reached";
power_supply_DC_charging_phase = types::power_supply_DC::ChargingPhase::Other;
powersupply_DC_off();
r_hlc[0]->call_cable_check_finished(false);
charger->set_hlc_error();
Expand All @@ -1682,6 +1683,7 @@ bool EvseManager::wait_powersupply_DC_voltage_reached(double target_voltage) {
}
} else {
EVLOG_info << "Did not receive voltage measurement from power supply within 2 seconds.";
power_supply_DC_charging_phase = types::power_supply_DC::ChargingPhase::Other;
powersupply_DC_off();
break;
}
Expand All @@ -1697,6 +1699,7 @@ bool EvseManager::wait_powersupply_DC_below_voltage(double target_voltage) {
while (not timeout.reached()) {
if (cable_check_should_exit()) {
EVLOG_warning << "Cancel cable check wait below voltage";
power_supply_DC_charging_phase = types::power_supply_DC::ChargingPhase::Other;
powersupply_DC_off();
r_hlc[0]->call_cable_check_finished(false);
charger->set_hlc_error();
Expand All @@ -1711,6 +1714,7 @@ bool EvseManager::wait_powersupply_DC_below_voltage(double target_voltage) {
}
} else {
EVLOG_info << "Did not receive voltage measurement from power supply within 2 seconds.";
power_supply_DC_charging_phase = types::power_supply_DC::ChargingPhase::Other;
powersupply_DC_off();
break;
}
Expand Down Expand Up @@ -1765,6 +1769,7 @@ types::energy::ExternalLimits EvseManager::get_local_energy_limits() {

void EvseManager::fail_cable_check() {
if (config.charge_mode == "DC") {
power_supply_DC_charging_phase = types::power_supply_DC::ChargingPhase::Other;
powersupply_DC_off();
// CC.4.1.2: We need to wait until voltage is below 60V before sending a CableCheck Finished to the EV
if (not wait_powersupply_DC_below_voltage(CABLECHECK_SAFE_VOLTAGE)) {
Expand Down

0 comments on commit e574f65

Please sign in to comment.