1、运行中空电关机改看显示百分比,到 5% 立刻停电机、关绿灯,红灯闪 5 下后再深睡,避免电压先掉、APP 还没到 5% 就关机
2、充电/放电电量缓冲加快,放电突变拦截先关掉,电量曲线满电点收到 4.12V 3、上电串口打印软硬件版本和编译时间
This commit is contained in:
+36
-3
@@ -11,6 +11,7 @@
|
||||
* - V2.1.0, 2026.08.25, cyWu, 自己从 app_power/app_pair 取数并内部组装
|
||||
* - V2.2.0, 2026.08.25, cyWu, 重启/清场逻辑各提一个小函数,把意图写进注释
|
||||
* - V2.3.0, 2026.08.27, cyWu, 新增 OTA 红绿交替灯效
|
||||
* - V2.4.0, 2026.08.27, cyWu, 新增空电关机红闪 5 下灯效
|
||||
******************************************************************************/
|
||||
|
||||
#include "app_led.h"
|
||||
@@ -21,7 +22,8 @@
|
||||
#include "app_pair.h"
|
||||
|
||||
static uint8_t s_initialized;
|
||||
static uint8_t s_ota; /* 1=OTA 灯效中,app_led_run 不再叠其它灯 */
|
||||
static uint8_t s_ota; /* 1=OTA 灯效中,app_led_run 不再叠其它灯 */
|
||||
static uint8_t s_empty_off; /* 1=空电关机红闪中,只跑红灯 5 下 */
|
||||
|
||||
static void led_start_pair_result(uint8_t ok);
|
||||
|
||||
@@ -89,7 +91,7 @@ AppLed_Ret_t app_led_get_status(void)
|
||||
*/
|
||||
void app_led_request_mode_blink(void)
|
||||
{
|
||||
if (!s_initialized || s_ota) {
|
||||
if (!s_initialized || s_ota || s_empty_off) {
|
||||
return;
|
||||
}
|
||||
led_restart(LED_EVENT_MODE);
|
||||
@@ -101,7 +103,7 @@ void app_led_request_mode_blink(void)
|
||||
*/
|
||||
void app_led_hint_power_on(void)
|
||||
{
|
||||
if (!s_initialized || s_ota) {
|
||||
if (!s_initialized || s_ota || s_empty_off) {
|
||||
return;
|
||||
}
|
||||
led_restart(LED_EVENT_STANDBY);
|
||||
@@ -131,6 +133,30 @@ uint8_t app_led_is_ota(void)
|
||||
return s_ota;
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief 空电关机:清掉其它灯(含绿灯),只挂红灯闪 5 下
|
||||
* @return 无
|
||||
*/
|
||||
void app_led_request_empty_off(void)
|
||||
{
|
||||
if (!s_initialized || s_ota) {
|
||||
return; /* OTA 灯效优先,不打断升级提示 */
|
||||
}
|
||||
s_empty_off = 1;
|
||||
LED_EventAllDelete();
|
||||
bsp_led_all_off(); /* 先关绿灯 */
|
||||
LED_EventAdd(LED_EVENT_EMPTY);
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief 查询是否处于空电关机灯效
|
||||
* @return 1=空电红闪中,0=否
|
||||
*/
|
||||
uint8_t app_led_is_empty_off(void)
|
||||
{
|
||||
return s_empty_off;
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief 播放一次性配对结果灯
|
||||
* @param ok 1=成功常绿,0=失败红绿交替
|
||||
@@ -186,6 +212,13 @@ void app_led_run(uint16_t dt, uint8_t app_power)
|
||||
return;
|
||||
}
|
||||
|
||||
/* 空电关机:绿灯已关,只跑红灯闪 5 下;事件在 request 时已挂上,这里不要再 Add,
|
||||
* 否则闪完被删后又会重新开始闪。 */
|
||||
if (s_empty_off) {
|
||||
user_led_handle();
|
||||
return;
|
||||
}
|
||||
|
||||
/* 配对成功/失败是边沿事件,只在那一拍切灯效 */
|
||||
pair_evt = app_pair_tick_1ms(dt);
|
||||
if (pair_evt == APP_PAIR_EVT_OK) {
|
||||
|
||||
Reference in New Issue
Block a user