Skip to content

Commit 04ede59

Browse files
committed
pwr: add autosave delay
1 parent e945874 commit 04ede59

File tree

6 files changed

+41
-11
lines changed

6 files changed

+41
-11
lines changed

main/inc/user/fan.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@ extern uint16_t fan_get_rpm(void);
2424
extern void fan_set_mode(bool val);
2525
extern bool fan_get_mode(void);
2626

27+
extern void fan_env_save(void);
2728
extern bool fan_env_saved(void);
2829

2930
extern void fan_init(void);

main/inc/user/pwr.h

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,9 @@ extern void pwr_set_mode(pwr_idx_t idx);
2525
extern pwr_idx_t pwr_get_mode(void);
2626
extern char *pwr_get_mode_str(void);
2727

28+
extern void pwr_env_save(void);
29+
extern bool pwr_env_saved(void);
30+
2831
extern void pwr_init(void);
2932

3033
#endif /* INC_USER_PWR_H_ */

main/src/user/fan.c

Lines changed: 13 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@
2020

2121
#include "user/ec.h"
2222
#include "user/fan.h"
23+
#include "user/pwr.h"
2324

2425
#define TAG "fan"
2526

@@ -203,12 +204,8 @@ static void fan_task(void *pvParameter)
203204
period_done = true;
204205
}
205206

206-
if (!env_saved && env_cnt++ == 50) {
207-
env_cnt = 0;
208-
209-
env_saved = true;
210-
app_setenv("FAN_INIT_CFG", &fan_duty, sizeof(fan_duty));
211-
}
207+
fan_env_save();
208+
pwr_env_save();
212209
}
213210
}
214211

@@ -266,6 +263,16 @@ bool fan_get_mode(void)
266263
return fan_mode;
267264
}
268265

266+
void fan_env_save(void)
267+
{
268+
if (!env_saved && env_cnt++ == 50) {
269+
env_cnt = 0;
270+
271+
env_saved = true;
272+
app_setenv("FAN_INIT_CFG", &fan_duty, sizeof(fan_duty));
273+
}
274+
}
275+
269276
bool fan_env_saved(void)
270277
{
271278
return env_saved;

main/src/user/gui.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -68,7 +68,7 @@ static void gui_task(void *pvParameter)
6868
snprintf(text_buff, sizeof(text_buff), "%u", fan_get_rpm());
6969
gdispGFillStringBox(gui_gdisp, 95, 34, 143, 32, text_buff, gui_font, Cyan, Black, justifyRight);
7070

71-
snprintf(text_buff, sizeof(text_buff), "%s", pwr_get_mode_str());
71+
snprintf(text_buff, sizeof(text_buff), "%s%s", pwr_get_mode_str(), pwr_env_saved() ? "" : "*");
7272
gdispGFillStringBox(gui_gdisp, 95, 67, 143, 32, text_buff, gui_font, Magenta, Black, justifyRight);
7373

7474
float voltage = ina219_get_bus_voltage_mv() * 0.001;

main/src/user/key_handle.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ void pwr_key_handle(void)
3030
{
3131
pwr_set_mode((pwr_get_mode() + 1) % PWR_IDX_MAX);
3232

33-
vTaskDelay(1000 / portTICK_RATE_MS);
33+
vTaskDelay(200 / portTICK_RATE_MS);
3434

3535
xEventGroupSetBits(user_event_group, KEY_RUN_BIT);
3636
}

main/src/user/pwr.c

Lines changed: 22 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -19,8 +19,11 @@
1919
#define TAG "pwr"
2020

2121
static bool qc_mode = false;
22-
static pwr_idx_t env_mode = PWR_IDX_DC;
2322
static pwr_idx_t pwr_mode = PWR_IDX_DC;
23+
static pwr_idx_t env_mode = PWR_IDX_DC;
24+
25+
static uint8_t env_cnt = 0;
26+
static bool env_saved = true;
2427

2528
static char pwr_mode_str[][8] = {
2629
"DC IN",
@@ -68,10 +71,11 @@ void pwr_set_mode(pwr_idx_t idx)
6871
if (env_mode != pwr_mode) {
6972
env_mode = pwr_mode;
7073

71-
app_setenv("PWR_INIT_CFG", &env_mode, sizeof(env_mode));
72-
74+
env_saved = false;
7375
ESP_LOGI(TAG, "%s", pwr_get_mode_str());
7476
}
77+
78+
env_cnt = 0;
7579
}
7680

7781
pwr_idx_t pwr_get_mode(void)
@@ -84,6 +88,21 @@ char *pwr_get_mode_str(void)
8488
return pwr_mode_str[pwr_mode];
8589
}
8690

91+
void pwr_env_save(void)
92+
{
93+
if (!env_saved && env_cnt++ == 50) {
94+
env_cnt = 0;
95+
96+
env_saved = true;
97+
app_setenv("PWR_INIT_CFG", &env_mode, sizeof(env_mode));
98+
}
99+
}
100+
101+
bool pwr_env_saved(void)
102+
{
103+
return env_saved;
104+
}
105+
87106
void pwr_init(void)
88107
{
89108
int dp_raw = 0, dp_cnt = 0;

0 commit comments

Comments
 (0)