diff --git a/src/drivers/battery/battery_adc.c b/src/drivers/battery/battery_adc.c index ec7cb7f..22aaba8 100644 --- a/src/drivers/battery/battery_adc.c +++ b/src/drivers/battery/battery_adc.c @@ -167,8 +167,8 @@ static void battery_work_handler(struct k_work *work) if (low_battery_cnt >= BATTERY_MONITOR_LIMIT_COUNT) { low_battery_cnt = 0; - DBG_PRINTF("[BATT] %ux low -> Power OFF\r\n", BATTERY_MONITOR_LIMIT_COUNT); - sleep_mode_enter(); + DBG_ERR("[BATT] %ux low -> Power OFF\r\n", BATTERY_MONITOR_LIMIT_COUNT); + sleep_mode_enter_reason("battery-low"); return; } } @@ -197,8 +197,8 @@ static void battery_work_handler(struct k_work *work) if (high_temperature_cnt >= BATTERY_MONITOR_LIMIT_COUNT) { high_temperature_cnt = 0; - DBG_PRINTF("[TEMP] %ux high -> Power OFF\r\n", BATTERY_MONITOR_LIMIT_COUNT); - sleep_mode_enter(); + DBG_ERR("[TEMP] %ux high -> Power OFF\r\n", BATTERY_MONITOR_LIMIT_COUNT); + sleep_mode_enter_reason("temperature-high"); return; } } diff --git a/src/main.h b/src/main.h index 5c9de4e..c78a100 100644 --- a/src/main.h +++ b/src/main.h @@ -63,7 +63,9 @@ typedef enum *============================================================================*/ void sleep_mode_enter(void); +void sleep_mode_enter_reason(const char *reason); void device_power_off(void); +void device_power_keep_on(void); void power_button_suspend(bool suspend); /*============================================================================== diff --git a/src/parser.c b/src/parser.c index 3c43b0b..9069652 100644 --- a/src/parser.c +++ b/src/parser.c @@ -720,7 +720,7 @@ static int cmd_msq(const uint8_t *data, uint8_t data_len) } DBG_PRINTF("[CMD] msq -> power off\r\n"); - sleep_mode_enter(); + sleep_mode_enter_reason("cmd-msq"); return 1; } @@ -821,7 +821,6 @@ static int cmd_mdf(const uint8_t *data, uint8_t data_len) return 1; } -/* msp? → IMU 1회 측정 → rsp: + accel XYZ + gyro XYZ (각 int16 빅엔디안) */ static int cmd_msp(const uint8_t *data, uint8_t data_len) { ARG_UNUSED(data);