stop equipment before reboot

This commit is contained in:
amarofarinha 2024-10-02 20:49:01 +01:00
parent ed912f349f
commit 7b3594c248
3 changed files with 13 additions and 5 deletions

View file

@ -196,16 +196,21 @@ void update_machineryprotection() {
} }
//battery pause status begin //battery pause status begin
void setBatteryPause(bool pause_battery, bool pause_CAN, bool emergency_stop) { void setBatteryPause(bool pause_battery, bool pause_CAN, bool emergency_stop, bool store_settings) {
// First handle emergency stop / resume // First handle emergency stop / resume
if (emergency_stop && !datalayer.system.settings.equipment_stop_active) { if (emergency_stop && !datalayer.system.settings.equipment_stop_active) {
datalayer.system.settings.equipment_stop_active = true; datalayer.system.settings.equipment_stop_active = true;
store_settings_emergency_stop(); if (store_settings) {
store_settings_emergency_stop();
}
set_event(EVENT_EMERGENCY_STOP, 1); set_event(EVENT_EMERGENCY_STOP, 1);
} else if (!emergency_stop && datalayer.system.settings.equipment_stop_active) { } else if (!emergency_stop && datalayer.system.settings.equipment_stop_active) {
datalayer.system.settings.equipment_stop_active = false; datalayer.system.settings.equipment_stop_active = false;
store_settings_emergency_stop(); if (store_settings) {
store_settings_emergency_stop();
}
clear_event(EVENT_EMERGENCY_STOP); clear_event(EVENT_EMERGENCY_STOP);
} }

View file

@ -21,7 +21,7 @@ extern void store_settings_emergency_stop();
void update_machineryprotection(); void update_machineryprotection();
//battery pause status begin //battery pause status begin
void setBatteryPause(bool pause_battery, bool pause_CAN, bool emergency_stop = false); void setBatteryPause(bool pause_battery, bool pause_CAN, bool emergency_stop = false, bool store_settings = true);
void emulator_pause_state_send_CAN_battery(); void emulator_pause_state_send_CAN_battery();
std::string get_emulator_pause_status(); std::string get_emulator_pause_status();
//battery pause status end //battery pause status end

View file

@ -344,7 +344,10 @@ void init_webserver() {
if (WEBSERVER_AUTH_REQUIRED && !request->authenticate(http_username, http_password)) if (WEBSERVER_AUTH_REQUIRED && !request->authenticate(http_username, http_password))
return request->requestAuthentication(); return request->requestAuthentication();
request->send(200, "text/plain", "Rebooting server..."); request->send(200, "text/plain", "Rebooting server...");
//TODO: Should we handle contactors gracefully? Ifdef CONTACTOR_CONTROL then what?
//Equipment STOP without persisting the emergency state before restart
// Max Charge/Discharge = 0; CAN = stop; contactors = open
setBatteryPause(true, true, true, false);
delay(1000); delay(1000);
ESP.restart(); ESP.restart();
}); });