diff --git a/CYD-Klipper/src/core/device/ESP32-2432S028R.cpp b/CYD-Klipper/src/core/device/ESP32-2432S028R.cpp index d35cb34..110a90b 100644 --- a/CYD-Klipper/src/core/device/ESP32-2432S028R.cpp +++ b/CYD-Klipper/src/core/device/ESP32-2432S028R.cpp @@ -67,7 +67,7 @@ void screen_lv_touchRead(lv_indev_drv_t *indev_driver, lv_indev_data_t *data) } void set_invert_display(){ - tft.invertDisplay(get_current_printer_config()->invert_colors); + tft.invertDisplay(global_config.printer_config[global_config.printer_index].invert_colors); } void screen_setup() diff --git a/CYD-Klipper/src/core/device/ESP32-3248S035C.cpp b/CYD-Klipper/src/core/device/ESP32-3248S035C.cpp index 75c39b7..5688010 100644 --- a/CYD-Klipper/src/core/device/ESP32-3248S035C.cpp +++ b/CYD-Klipper/src/core/device/ESP32-3248S035C.cpp @@ -86,7 +86,7 @@ void screen_lv_touchRead(lv_indev_drv_t *indev_driver, lv_indev_data_t *data) void set_invert_display() { - tft.invertDisplay(get_current_printer_config()->invert_colors); + tft.invertDisplay(global_config.printer_config[global_config.printer_index].invert_colors); } void set_LED_color(uint8_t rgbVal[3]) diff --git a/CYD-Klipper/src/core/device/ESP32-smartdisplay.cpp b/CYD-Klipper/src/core/device/ESP32-smartdisplay.cpp index 4f723cf..dd3b997 100644 --- a/CYD-Klipper/src/core/device/ESP32-smartdisplay.cpp +++ b/CYD-Klipper/src/core/device/ESP32-smartdisplay.cpp @@ -21,7 +21,7 @@ void set_invert_display() void lv_screen_intercept(_lv_disp_drv_t *disp_drv, const lv_area_t *area, lv_color_t *color_p) { - if (get_current_printer_config()->invert_colors) { + if (global_config.printer_config[global_config.printer_index].invert_colors) { uint32_t w = (area->x2 - area->x1 + 1); uint32_t h = (area->y2 - area->y1 + 1); diff --git a/CYD-Klipper/src/core/klipper/klipper_printer_integration.hpp b/CYD-Klipper/src/core/klipper/klipper_printer_integration.hpp index e67e518..b43cae0 100644 --- a/CYD-Klipper/src/core/klipper/klipper_printer_integration.hpp +++ b/CYD-Klipper/src/core/klipper/klipper_printer_integration.hpp @@ -1,6 +1,7 @@ #pragma once #include "../printer_integration.hpp" +#include class KlipperPrinter : public BasePrinter { diff --git a/CYD-Klipper/src/core/lv_setup.cpp b/CYD-Klipper/src/core/lv_setup.cpp index c408dc8..e478bd5 100644 --- a/CYD-Klipper/src/core/lv_setup.cpp +++ b/CYD-Klipper/src/core/lv_setup.cpp @@ -5,7 +5,6 @@ #include "../ui/ui_utils.h" #include #include "../ui/serial/serial_console.h" -#include "printer_integration.hpp" #ifndef CPU_FREQ_HIGH #define CPU_FREQ_HIGH 240 @@ -255,7 +254,7 @@ void set_screen_timer_period() void set_color_scheme() { - PrinterConfiguration *config = get_current_printer()->printer_config; + PrinterConfiguration *config = &global_config.printer_config[global_config.printer_index]; lv_disp_t *dispp = lv_disp_get_default(); lv_color_t main_color = {0}; ColorDefinition color_def = color_defs[config->color_scheme]; diff --git a/CYD-Klipper/src/ui/ip_setup.cpp b/CYD-Klipper/src/ui/ip_setup.cpp index 6070e92..6a4af88 100644 --- a/CYD-Klipper/src/ui/ip_setup.cpp +++ b/CYD-Klipper/src/ui/ip_setup.cpp @@ -4,9 +4,7 @@ #include #include "core/data_setup.h" #include "ui_utils.h" -#include "../core/macros_query.h" #include "panels/panel.h" -#include "../core/http_client.h" #include "switch_printer.h" #include "macros.h" #include "../core/lv_setup.h" @@ -101,13 +99,13 @@ static void keyboard_event_ip_entry(lv_event_t * e) { } else if (code == LV_EVENT_READY) { - strcpy(get_current_printer_config()->klipper_host, lv_textarea_get_text(hostEntry)); - get_current_printer_config()->klipper_port = atoi(lv_textarea_get_text(portEntry)); + strcpy(global_config.printer_config[global_config.printer_index].klipper_host, lv_textarea_get_text(hostEntry)); + global_config.printer_config[global_config.printer_index].klipper_port = atoi(lv_textarea_get_text(portEntry)); connection_status_t status = verify_ip(); if (status == CONNECT_OK) { - get_current_printer_config()->ip_configured = true; + global_config.printer_config[global_config.printer_index].ip_configured = true; write_global_config(); } else if (status == CONNECT_AUTH_REQUIRED) @@ -136,12 +134,13 @@ static void keyboard_event_auth_entry(lv_event_t * e) { int len = strlen(txt); if (len > 0) { - get_current_printer_config()->auth_configured = true; - strcpy(get_current_printer_config()->klipper_auth, txt); + global_config.printer_config[global_config.printer_index].auth_configured = true; + strcpy(global_config.printer_config[global_config.printer_index].klipper_auth, txt); if (verify_ip() == CONNECT_OK) { - get_current_printer_config()->ip_configured = true; + global_config.printer_config[global_config.printer_index].ip_configured = true; + global_config.printer_config[global_config.printer_index].setup_complete = true; write_global_config(); } else @@ -158,7 +157,7 @@ static void keyboard_event_auth_entry(lv_event_t * e) { void show_auth_entry() { - get_current_printer_config()->klipper_auth[32] = 0; + global_config.printer_config[global_config.printer_index].klipper_auth[32] = 0; lv_obj_clean(lv_scr_act()); lv_obj_t * root = lv_create_empty_panel(lv_scr_act()); @@ -180,8 +179,8 @@ void show_auth_entry() lv_textarea_set_max_length(passEntry, 32); lv_textarea_set_one_line(passEntry, true); - if (get_current_printer_config()->auth_configured) - lv_textarea_set_text(passEntry, get_current_printer_config()->klipper_auth); + if (global_config.printer_config[global_config.printer_index].auth_configured) + lv_textarea_set_text(passEntry, global_config.printer_config[global_config.printer_index].klipper_auth); else lv_textarea_set_text(passEntry, ""); @@ -246,12 +245,12 @@ void show_ip_entry() } void ip_init(){ - if (!get_current_printer_config()->ip_configured) + if (!global_config.printer_config[global_config.printer_index].setup_complete) { show_ip_entry(); } - while (!get_current_printer_config()->ip_configured) + while (!global_config.printer_config[global_config.printer_index].setup_complete) { lv_handler(); serial_console::run(); diff --git a/CYD-Klipper/src/ui/switch_printer.cpp b/CYD-Klipper/src/ui/switch_printer.cpp index a703178..be95674 100644 --- a/CYD-Klipper/src/ui/switch_printer.cpp +++ b/CYD-Klipper/src/ui/switch_printer.cpp @@ -1,27 +1,17 @@ #include "switch_printer.h" #include "../conf/global_config.h" #include "ui_utils.h" -#include "../core/http_client.h" #include "../core/lv_setup.h" -#include "../core/macros_query.h" #include "../core/screen_driver.h" -#include "../core/data_setup.h" - -void switch_printer(int index) -{ - set_printer_config_index(index); - set_color_scheme(); - set_invert_display(); - printer.slicer_estimated_print_time_s = 0; -} static void btn_switch_printer(lv_event_t *e){ lv_obj_t *btn = lv_event_get_target(e); PrinterConfiguration * config = (PrinterConfiguration*)lv_event_get_user_data(e); int index = config - global_config.printer_config; - switch_printer(index); - + global_config_set_printer(index); + set_color_scheme(); + set_invert_display(); lv_obj_del(lv_obj_get_parent(lv_obj_get_parent(btn))); } @@ -48,19 +38,14 @@ void switch_printer_init() { PrinterConfiguration * config = &global_config.printer_config[i]; const char* printer_name = (config->printer_name[0] == 0) ? config->klipper_host : config->printer_name; - if (config == get_current_printer_config() && config->ip_configured) + if (i == global_config.printer_index && config->setup_complete) { lv_create_custom_menu_label(printer_name, parent, "Active"); continue; } - if (config->ip_configured) { - HTTPClient client; - configure_http_client(client, get_full_url("/printer/objects/query?webhooks&print_stats&virtual_sdcard", config), true, 1000); - - - int httpCode = client.GET(); - lv_create_custom_menu_button(printer_name, parent, btn_switch_printer, (httpCode == 200) ? "Switch" : "Offline", config); + if (config->setup_complete) { + lv_create_custom_menu_button(printer_name, parent, btn_switch_printer, "Switch", config); } } } diff --git a/CYD-Klipper/src/ui/switch_printer.h b/CYD-Klipper/src/ui/switch_printer.h index 070ef72..2926047 100644 --- a/CYD-Klipper/src/ui/switch_printer.h +++ b/CYD-Klipper/src/ui/switch_printer.h @@ -1,6 +1,5 @@ #pragma once #include "lvgl.h" -void switch_printer(int index); void switch_printer_init(); lv_obj_t * draw_switch_printer_button(); \ No newline at end of file