This commit is contained in:
167
main/ui_task.c
167
main/ui_task.c
@@ -887,34 +887,45 @@ static void view_storage(void)
|
||||
lv_obj_set_style_pad_all(stat_box, 8, 0);
|
||||
lv_obj_set_scrollbar_mode(stat_box, LV_SCROLLBAR_MODE_OFF);
|
||||
|
||||
lv_obj_t *key_lbl = lv_label_create(stat_box);
|
||||
lv_obj_set_width(key_lbl, 125);
|
||||
lv_obj_set_style_text_font(key_lbl, &lv_font_montserrat_14, 0);
|
||||
lv_obj_set_style_text_color(key_lbl, lv_color_hex(0x00E5FF), 0);
|
||||
lv_label_set_text(key_lbl,
|
||||
"CACHED CARDS:\n"
|
||||
"ART CROPS:\n\n"
|
||||
"STORAGE USED:\n"
|
||||
"PERCENT USED:\n"
|
||||
"DECK CAPACITY:");
|
||||
lv_obj_align(key_lbl, LV_ALIGN_TOP_LEFT, 0, 0);
|
||||
struct {
|
||||
const char *key;
|
||||
char val[32];
|
||||
} stat_rows[5];
|
||||
|
||||
snprintf(stat_rows[0].val, sizeof(stat_rows[0].val), "%d", json_c);
|
||||
stat_rows[0].key = "CACHED CARDS:";
|
||||
|
||||
snprintf(stat_rows[1].val, sizeof(stat_rows[1].val), "%d", jpg_c);
|
||||
stat_rows[1].key = "ART CROPS:";
|
||||
|
||||
snprintf(stat_rows[2].val, sizeof(stat_rows[2].val), "%d / %d KB", (int)(used_b / 1024), (int)(total_b / 1024));
|
||||
stat_rows[2].key = "STORAGE USED:";
|
||||
|
||||
lv_obj_t *val_lbl = lv_label_create(stat_box);
|
||||
lv_obj_set_width(val_lbl, 70);
|
||||
lv_obj_set_style_text_font(val_lbl, &lv_font_montserrat_14, 0);
|
||||
lv_obj_set_style_text_color(val_lbl, lv_color_hex(COLOR_AMBER), 0);
|
||||
lv_obj_set_style_text_align(val_lbl, LV_TEXT_ALIGN_RIGHT, 0);
|
||||
int percent = total_b > 0 ? (int)((used_b * 100) / total_b) : 0;
|
||||
lv_label_set_text_fmt(val_lbl,
|
||||
"%d\n"
|
||||
"%d\n\n"
|
||||
"%d KB\n"
|
||||
"%d%%\n"
|
||||
"~120-140",
|
||||
json_c, jpg_c,
|
||||
(int)(used_b / 1024),
|
||||
percent);
|
||||
lv_obj_align(val_lbl, LV_ALIGN_TOP_RIGHT, 0, 0);
|
||||
snprintf(stat_rows[3].val, sizeof(stat_rows[3].val), "%d%%", percent);
|
||||
stat_rows[3].key = "PERCENT USED:";
|
||||
|
||||
snprintf(stat_rows[4].val, sizeof(stat_rows[4].val), "~100 (EDH)");
|
||||
stat_rows[4].key = "DECK CAPACITY:";
|
||||
|
||||
for (int i = 0; i < 5; i++) {
|
||||
int y_pos = (i < 2) ? (i * 20) : (i * 20 + 8);
|
||||
|
||||
lv_obj_t *k = lv_label_create(stat_box);
|
||||
lv_label_set_text(k, stat_rows[i].key);
|
||||
lv_obj_set_style_text_font(k, &lv_font_montserrat_14, 0);
|
||||
lv_obj_set_style_text_color(k, lv_color_hex(0x00E5FF), 0);
|
||||
lv_obj_align(k, LV_ALIGN_TOP_LEFT, 0, y_pos);
|
||||
|
||||
lv_obj_t *v = lv_label_create(stat_box);
|
||||
lv_label_set_text(v, stat_rows[i].val);
|
||||
lv_obj_set_width(v, 90);
|
||||
lv_label_set_long_mode(v, LV_LABEL_LONG_DOT);
|
||||
lv_obj_set_style_text_font(v, &lv_font_montserrat_14, 0);
|
||||
lv_obj_set_style_text_color(v, lv_color_hex(COLOR_AMBER), 0);
|
||||
lv_obj_set_style_text_align(v, LV_TEXT_ALIGN_RIGHT, 0);
|
||||
lv_obj_align(v, LV_ALIGN_TOP_RIGHT, 0, y_pos);
|
||||
}
|
||||
|
||||
/* Action 0: Clear Cards Button */
|
||||
lv_obj_t *btn0 = lv_obj_create(lv_scr_act());
|
||||
@@ -990,54 +1001,66 @@ static void view_device_info(void)
|
||||
|
||||
const char *ssid = wifi_manager_get_connected_ssid();
|
||||
int rssi = wifi_manager_get_rssi();
|
||||
char wifi_line[32];
|
||||
char wifi_line[64];
|
||||
if (wifi_manager_connected() && ssid && strlen(ssid) > 0) {
|
||||
snprintf(wifi_line, sizeof(wifi_line), "%s (%ddB)", ssid, rssi);
|
||||
} else {
|
||||
snprintf(wifi_line, sizeof(wifi_line), "Disconnected");
|
||||
}
|
||||
|
||||
lv_obj_t *lbl_keys = lv_label_create(box);
|
||||
lv_obj_set_width(lbl_keys, 75);
|
||||
lv_obj_set_style_text_font(lbl_keys, &lv_font_montserrat_14, 0);
|
||||
lv_obj_set_style_text_color(lbl_keys, lv_color_hex(0x00E5FF), 0);
|
||||
lv_label_set_text(lbl_keys,
|
||||
"VERSION:\n"
|
||||
"WI-FI:\n"
|
||||
"IP ADDR:\n"
|
||||
"HOTSPOT:\n"
|
||||
"STORAGE:\n"
|
||||
"CARDS:\n"
|
||||
"FREE RAM:\n"
|
||||
"ENCODER:\n"
|
||||
"HARDWARE:\n"
|
||||
"RFID:");
|
||||
lv_obj_align(lbl_keys, LV_ALIGN_TOP_LEFT, 0, 0);
|
||||
struct {
|
||||
const char *key;
|
||||
char val[64];
|
||||
} rows[10];
|
||||
|
||||
lv_obj_t *lbl_vals = lv_label_create(box);
|
||||
lv_obj_set_width(lbl_vals, 117);
|
||||
lv_obj_set_style_text_font(lbl_vals, &lv_font_montserrat_14, 0);
|
||||
lv_obj_set_style_text_color(lbl_vals, lv_color_hex(COLOR_AMBER), 0);
|
||||
lv_obj_set_style_text_align(lbl_vals, LV_TEXT_ALIGN_RIGHT, 0);
|
||||
lv_label_set_text_fmt(lbl_vals,
|
||||
"%s\n"
|
||||
"%s\n"
|
||||
"%s\n"
|
||||
"192.168.4.1\n"
|
||||
"%d / %d KB\n"
|
||||
"%d cached\n"
|
||||
"%d KB\n"
|
||||
"%d steps\n"
|
||||
"ESP32+ST7789\n"
|
||||
"MFRC522",
|
||||
ota_manager_get_current_version(),
|
||||
wifi_line,
|
||||
wifi_manager_get_ip(),
|
||||
(int)(used_b / 1024), (int)(total_b / 1024),
|
||||
json_c,
|
||||
(int)(free_heap / 1024),
|
||||
(int)encoder_get_steps_per_detent());
|
||||
lv_obj_align(lbl_vals, LV_ALIGN_TOP_RIGHT, 0, 0);
|
||||
snprintf(rows[0].val, sizeof(rows[0].val), "%s", ota_manager_get_current_version());
|
||||
rows[0].key = "VERSION:";
|
||||
|
||||
snprintf(rows[1].val, sizeof(rows[1].val), "%s", wifi_line);
|
||||
rows[1].key = "WI-FI:";
|
||||
|
||||
snprintf(rows[2].val, sizeof(rows[2].val), "%s", wifi_manager_get_ip());
|
||||
rows[2].key = "IP ADDR:";
|
||||
|
||||
snprintf(rows[3].val, sizeof(rows[3].val), "192.168.4.1");
|
||||
rows[3].key = "HOTSPOT:";
|
||||
|
||||
snprintf(rows[4].val, sizeof(rows[4].val), "%d / %d KB", (int)(used_b / 1024), (int)(total_b / 1024));
|
||||
rows[4].key = "STORAGE:";
|
||||
|
||||
snprintf(rows[5].val, sizeof(rows[5].val), "%d cached", json_c);
|
||||
rows[5].key = "CARDS:";
|
||||
|
||||
snprintf(rows[6].val, sizeof(rows[6].val), "%d KB", (int)(free_heap / 1024));
|
||||
rows[6].key = "FREE RAM:";
|
||||
|
||||
snprintf(rows[7].val, sizeof(rows[7].val), "%d steps", (int)encoder_get_steps_per_detent());
|
||||
rows[7].key = "ENCODER:";
|
||||
|
||||
snprintf(rows[8].val, sizeof(rows[8].val), "ESP32+ST7789");
|
||||
rows[8].key = "HARDWARE:";
|
||||
|
||||
snprintf(rows[9].val, sizeof(rows[9].val), "MFRC522");
|
||||
rows[9].key = "RFID:";
|
||||
|
||||
for (int i = 0; i < 10; i++) {
|
||||
int y_pos = i * 20;
|
||||
|
||||
lv_obj_t *k = lv_label_create(box);
|
||||
lv_label_set_text(k, rows[i].key);
|
||||
lv_obj_set_style_text_font(k, &lv_font_montserrat_14, 0);
|
||||
lv_obj_set_style_text_color(k, lv_color_hex(0x00E5FF), 0);
|
||||
lv_obj_align(k, LV_ALIGN_TOP_LEFT, 0, y_pos);
|
||||
|
||||
lv_obj_t *v = lv_label_create(box);
|
||||
lv_label_set_text(v, rows[i].val);
|
||||
lv_obj_set_width(v, 120);
|
||||
lv_label_set_long_mode(v, LV_LABEL_LONG_DOT);
|
||||
lv_obj_set_style_text_font(v, &lv_font_montserrat_14, 0);
|
||||
lv_obj_set_style_text_color(v, lv_color_hex(COLOR_AMBER), 0);
|
||||
lv_obj_set_style_text_align(v, LV_TEXT_ALIGN_RIGHT, 0);
|
||||
lv_obj_align(v, LV_ALIGN_TOP_RIGHT, 0, y_pos);
|
||||
}
|
||||
|
||||
lv_obj_t *hint = lv_label_create(lv_scr_act());
|
||||
lv_label_set_text(hint, "CLICK: MENU");
|
||||
@@ -1561,6 +1584,7 @@ static void handle_new_card(const char *uid)
|
||||
char *name = NULL;
|
||||
esp_err_t ret = storage_manager_lookup_name(uid, &name);
|
||||
if (ret != ESP_OK || name == NULL) {
|
||||
wifi_manager_set_power_save(false);
|
||||
app_set_view(APP_STATE_REGISTRATION);
|
||||
view_unmapped(uid);
|
||||
buzzer_chirp(392, 80);
|
||||
@@ -1757,6 +1781,9 @@ static void handle_encoder_click(void)
|
||||
} else {
|
||||
if (s_storage_option_idx == 0) {
|
||||
storage_manager_clear_all_cards(true);
|
||||
s_card_name[0] = '\0';
|
||||
s_uid[0] = '\0';
|
||||
s_waiting_fetch = false;
|
||||
buzzer_chirp(1046, 100);
|
||||
s_storage_confirm_dialog = false;
|
||||
view_storage();
|
||||
@@ -1778,6 +1805,9 @@ static void handle_encoder_click(void)
|
||||
case APP_STATE_SCANNER:
|
||||
case APP_STATE_CARD_VIEW:
|
||||
case APP_STATE_REGISTRATION:
|
||||
if (cur == APP_STATE_REGISTRATION) {
|
||||
wifi_manager_set_power_save(true);
|
||||
}
|
||||
if (cur == APP_STATE_CARD_VIEW && s_card_name[0] != '\0' && !s_waiting_fetch) {
|
||||
char jp[72];
|
||||
snprintf(jp, sizeof(jp), STORAGE_CARDS_DIR "/%s.json", s_uid);
|
||||
@@ -1961,6 +1991,9 @@ static void ui_task(void *arg)
|
||||
buzzer_chirp(1046, 50);
|
||||
vTaskDelay(pdMS_TO_TICKS(40));
|
||||
buzzer_chirp(1318, 70);
|
||||
if (app_get_view() == APP_STATE_REGISTRATION) {
|
||||
wifi_manager_set_power_save(true);
|
||||
}
|
||||
app_set_view(APP_STATE_MENU);
|
||||
view_menu();
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user