Working v1
This commit is contained in:
@@ -57,7 +57,7 @@ void pm_init() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
extern "C" void app_main() {
|
extern "C" void app_main() {
|
||||||
// pm_init();
|
pm_init();
|
||||||
mainApp();
|
mainApp();
|
||||||
// servo_test();
|
// servo_test();
|
||||||
}
|
}
|
||||||
@@ -9,6 +9,7 @@
|
|||||||
#include "socketIO.hpp"
|
#include "socketIO.hpp"
|
||||||
#include "max17048.h"
|
#include "max17048.h"
|
||||||
#include "esp_sleep.h"
|
#include "esp_sleep.h"
|
||||||
|
#include "defines.h"
|
||||||
|
|
||||||
// Give C linkage so max17048.c (a C translation unit) can link against these
|
// Give C linkage so max17048.c (a C translation unit) can link against these
|
||||||
extern "C" {
|
extern "C" {
|
||||||
@@ -68,6 +69,8 @@ bool postServoPos(uint8_t currentAppPos) {
|
|||||||
cJSON_Delete(response);
|
cJSON_Delete(response);
|
||||||
|
|
||||||
if (awaitCalib) {
|
if (awaitCalib) {
|
||||||
|
gpio_set_level(debugLED, 1); // Start with LED off
|
||||||
|
gpio_hold_en(debugLED);
|
||||||
Calibration::clearCalibrated();
|
Calibration::clearCalibrated();
|
||||||
if (!calibrate()) {
|
if (!calibrate()) {
|
||||||
if (!WiFi::attemptDHCPrenewal())
|
if (!WiFi::attemptDHCPrenewal())
|
||||||
@@ -77,6 +80,8 @@ bool postServoPos(uint8_t currentAppPos) {
|
|||||||
setupAndCalibrate();
|
setupAndCalibrate();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
gpio_hold_dis(debugLED);
|
||||||
|
gpio_set_level(debugLED, 0);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return success;
|
return success;
|
||||||
@@ -201,7 +206,7 @@ void mainEventLoop() {
|
|||||||
postBatteryAlert(alertType, established_soc);
|
postBatteryAlert(alertType, established_soc);
|
||||||
printf("CRITICAL BATTERY EVENT (%s, SOC=%d%%). Entering deep sleep.\n",
|
printf("CRITICAL BATTERY EVENT (%s, SOC=%d%%). Entering deep sleep.\n",
|
||||||
battAlertTypeStr(alertType), established_soc);
|
battAlertTypeStr(alertType), established_soc);
|
||||||
// esp_deep_sleep_start();
|
esp_deep_sleep_start();
|
||||||
|
|
||||||
} else if (received_event_type == EVENT_BATTERY_WARNING) {
|
} else if (received_event_type == EVENT_BATTERY_WARNING) {
|
||||||
postBatteryAlert((batt_alert_type_t)bms_pending_alert, established_soc);
|
postBatteryAlert((batt_alert_type_t)bms_pending_alert, established_soc);
|
||||||
|
|||||||
@@ -91,7 +91,7 @@ void bms_checker_task(void *pvParameters) {
|
|||||||
|
|
||||||
main_event_type_t evt;
|
main_event_type_t evt;
|
||||||
|
|
||||||
if ((status & VHbit) || (status & HDbit) || ((status & VLbit) && soc < SOC_CRITICAL_VL)) {
|
if ((status & HDbit) || ((status & VLbit) && soc < SOC_CRITICAL_VL)) {
|
||||||
// Critical: overvoltage (hardware fault) or battery truly empty
|
// Critical: overvoltage (hardware fault) or battery truly empty
|
||||||
bms_pending_alert = (status & VHbit) ? BATT_ALERT_OVERVOLTAGE : BATT_ALERT_CRITICAL_LOW;
|
bms_pending_alert = (status & VHbit) ? BATT_ALERT_OVERVOLTAGE : BATT_ALERT_CRITICAL_LOW;
|
||||||
evt = EVENT_BATTERY_CRITICAL;
|
evt = EVENT_BATTERY_CRITICAL;
|
||||||
|
|||||||
@@ -23,6 +23,7 @@ void setupAndCalibrate() {
|
|||||||
gpio_reset_pin(debugLED);
|
gpio_reset_pin(debugLED);
|
||||||
gpio_set_direction(debugLED, GPIO_MODE_OUTPUT);
|
gpio_set_direction(debugLED, GPIO_MODE_OUTPUT);
|
||||||
gpio_set_level(debugLED, 1); // Start with LED off
|
gpio_set_level(debugLED, 1); // Start with LED off
|
||||||
|
gpio_hold_en(debugLED);
|
||||||
while (1) {
|
while (1) {
|
||||||
setupLoop();
|
setupLoop();
|
||||||
if (awaitCalibration) {
|
if (awaitCalibration) {
|
||||||
@@ -30,6 +31,7 @@ void setupAndCalibrate() {
|
|||||||
}
|
}
|
||||||
else break;
|
else break;
|
||||||
}
|
}
|
||||||
|
gpio_hold_dis(debugLED);
|
||||||
gpio_set_level(debugLED, 0); // Start with LED off
|
gpio_set_level(debugLED, 0); // Start with LED off
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user