gpio: update config to use only one gpio for ATX PSU
All checks were successful
Build ESP32 BMC Firmware / build (push) Successful in 59s

This commit is contained in:
2026-03-12 15:28:20 +01:00
parent c6f4d26c58
commit ccf4569969
6 changed files with 25 additions and 143 deletions

View File

@@ -258,24 +258,7 @@ static esp_err_t api_gpio_config_handler(httpd_req_t *req) {
static esp_err_t api_power_status_handler(httpd_req_t *req) {
cJSON *status = cJSON_CreateObject();
cJSON_AddBoolToObject(status, "power_good", gpio_is_power_good());
// Get power control GPIO states
int power_on_idx = gpio_find_index(BMC_GPIO_POWER_ON);
int power_off_idx = gpio_find_index(BMC_GPIO_POWER_OFF);
if (power_on_idx >= 0) {
bmc_gpio_state_t state;
gpio_get_state(BMC_GPIO_POWER_ON, &state);
cJSON_AddNumberToObject(status, "power_on_state", state.value);
}
if (power_off_idx >= 0) {
bmc_gpio_state_t state;
gpio_get_state(BMC_GPIO_POWER_OFF, &state);
cJSON_AddNumberToObject(status, "power_off_state", state.value);
}
cJSON_AddStringToObject(status, "power_status", gpio_power_status() ? "on" : "off");
return send_json_success(req, status);
}
@@ -287,7 +270,7 @@ static esp_err_t api_power_on_handler(httpd_req_t *req) {
cJSON *response = cJSON_CreateObject();
cJSON_AddStringToObject(response, "message", "Power on sequence initiated");
cJSON_AddBoolToObject(response, "power_good", gpio_is_power_good());
cJSON_AddStringToObject(response, "power_status", "on");
return send_json_success(req, response);
}
@@ -300,6 +283,7 @@ static esp_err_t api_power_off_handler(httpd_req_t *req) {
cJSON *response = cJSON_CreateObject();
cJSON_AddStringToObject(response, "message", "Power off sequence initiated");
cJSON_AddStringToObject(response, "power_status", "off");
return send_json_success(req, response);
}
@@ -312,6 +296,7 @@ static esp_err_t api_power_reset_handler(httpd_req_t *req) {
cJSON *response = cJSON_CreateObject();
cJSON_AddStringToObject(response, "message", "Reset sequence initiated");
cJSON_AddStringToObject(response, "power_status", "on");
return send_json_success(req, response);
}
@@ -484,7 +469,7 @@ static esp_err_t api_system_status_handler(httpd_req_t *req) {
// Power status
cJSON *power = cJSON_CreateObject();
cJSON_AddBoolToObject(power, "power_good", gpio_is_power_good());
cJSON_AddBoolToObject(power, "power_status", gpio_power_status());
cJSON_AddItemToObject(status, "power", power);
// Network status
@@ -918,8 +903,9 @@ esp_err_t web_server_ws_broadcast(const uint8_t *data, size_t len) {
// Get client list - httpd has its own internal locking
esp_err_t ret = httpd_get_client_list(server, &clients, client_fds);
if (ret != ESP_OK) {
ESP_LOGW(TAG, "Failed to get client list: %s", esp_err_to_name(ret));
return ret;
// This can happen when there are no clients or server is busy - not a critical error
ESP_LOGD(TAG, "Could not get client list: %s (may be no clients connected)", esp_err_to_name(ret));
return ESP_OK; // Return OK since this is not a critical error
}
// Count and send to all WebSocket clients