This commit is contained in:
suchmememanyskill
2024-10-27 20:39:51 +01:00
parent 6273e10e5a
commit c0e329c57d
8 changed files with 23 additions and 40 deletions

View File

@@ -67,7 +67,7 @@ void screen_lv_touchRead(lv_indev_drv_t *indev_driver, lv_indev_data_t *data)
} }
void set_invert_display(){ 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() void screen_setup()

View File

@@ -86,7 +86,7 @@ void screen_lv_touchRead(lv_indev_drv_t *indev_driver, lv_indev_data_t *data)
void set_invert_display() 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]) void set_LED_color(uint8_t rgbVal[3])

View File

@@ -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) 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 w = (area->x2 - area->x1 + 1);
uint32_t h = (area->y2 - area->y1 + 1); uint32_t h = (area->y2 - area->y1 + 1);

View File

@@ -1,6 +1,7 @@
#pragma once #pragma once
#include "../printer_integration.hpp" #include "../printer_integration.hpp"
#include <HTTPClient.h>
class KlipperPrinter : public BasePrinter class KlipperPrinter : public BasePrinter
{ {

View File

@@ -5,7 +5,6 @@
#include "../ui/ui_utils.h" #include "../ui/ui_utils.h"
#include <Esp.h> #include <Esp.h>
#include "../ui/serial/serial_console.h" #include "../ui/serial/serial_console.h"
#include "printer_integration.hpp"
#ifndef CPU_FREQ_HIGH #ifndef CPU_FREQ_HIGH
#define CPU_FREQ_HIGH 240 #define CPU_FREQ_HIGH 240
@@ -255,7 +254,7 @@ void set_screen_timer_period()
void set_color_scheme() 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_disp_t *dispp = lv_disp_get_default();
lv_color_t main_color = {0}; lv_color_t main_color = {0};
ColorDefinition color_def = color_defs[config->color_scheme]; ColorDefinition color_def = color_defs[config->color_scheme];

View File

@@ -4,9 +4,7 @@
#include <HTTPClient.h> #include <HTTPClient.h>
#include "core/data_setup.h" #include "core/data_setup.h"
#include "ui_utils.h" #include "ui_utils.h"
#include "../core/macros_query.h"
#include "panels/panel.h" #include "panels/panel.h"
#include "../core/http_client.h"
#include "switch_printer.h" #include "switch_printer.h"
#include "macros.h" #include "macros.h"
#include "../core/lv_setup.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) else if (code == LV_EVENT_READY)
{ {
strcpy(get_current_printer_config()->klipper_host, lv_textarea_get_text(hostEntry)); strcpy(global_config.printer_config[global_config.printer_index].klipper_host, lv_textarea_get_text(hostEntry));
get_current_printer_config()->klipper_port = atoi(lv_textarea_get_text(portEntry)); global_config.printer_config[global_config.printer_index].klipper_port = atoi(lv_textarea_get_text(portEntry));
connection_status_t status = verify_ip(); connection_status_t status = verify_ip();
if (status == CONNECT_OK) 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(); write_global_config();
} }
else if (status == CONNECT_AUTH_REQUIRED) else if (status == CONNECT_AUTH_REQUIRED)
@@ -136,12 +134,13 @@ static void keyboard_event_auth_entry(lv_event_t * e) {
int len = strlen(txt); int len = strlen(txt);
if (len > 0) if (len > 0)
{ {
get_current_printer_config()->auth_configured = true; global_config.printer_config[global_config.printer_index].auth_configured = true;
strcpy(get_current_printer_config()->klipper_auth, txt); strcpy(global_config.printer_config[global_config.printer_index].klipper_auth, txt);
if (verify_ip() == CONNECT_OK) 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(); write_global_config();
} }
else else
@@ -158,7 +157,7 @@ static void keyboard_event_auth_entry(lv_event_t * e) {
void show_auth_entry() 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_clean(lv_scr_act());
lv_obj_t * root = lv_create_empty_panel(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_max_length(passEntry, 32);
lv_textarea_set_one_line(passEntry, true); lv_textarea_set_one_line(passEntry, true);
if (get_current_printer_config()->auth_configured) if (global_config.printer_config[global_config.printer_index].auth_configured)
lv_textarea_set_text(passEntry, get_current_printer_config()->klipper_auth); lv_textarea_set_text(passEntry, global_config.printer_config[global_config.printer_index].klipper_auth);
else else
lv_textarea_set_text(passEntry, ""); lv_textarea_set_text(passEntry, "");
@@ -246,12 +245,12 @@ void show_ip_entry()
} }
void ip_init(){ void ip_init(){
if (!get_current_printer_config()->ip_configured) if (!global_config.printer_config[global_config.printer_index].setup_complete)
{ {
show_ip_entry(); show_ip_entry();
} }
while (!get_current_printer_config()->ip_configured) while (!global_config.printer_config[global_config.printer_index].setup_complete)
{ {
lv_handler(); lv_handler();
serial_console::run(); serial_console::run();

View File

@@ -1,27 +1,17 @@
#include "switch_printer.h" #include "switch_printer.h"
#include "../conf/global_config.h" #include "../conf/global_config.h"
#include "ui_utils.h" #include "ui_utils.h"
#include "../core/http_client.h"
#include "../core/lv_setup.h" #include "../core/lv_setup.h"
#include "../core/macros_query.h"
#include "../core/screen_driver.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){ static void btn_switch_printer(lv_event_t *e){
lv_obj_t *btn = lv_event_get_target(e); lv_obj_t *btn = lv_event_get_target(e);
PrinterConfiguration * config = (PrinterConfiguration*)lv_event_get_user_data(e); PrinterConfiguration * config = (PrinterConfiguration*)lv_event_get_user_data(e);
int index = config - global_config.printer_config; 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))); 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]; PrinterConfiguration * config = &global_config.printer_config[i];
const char* printer_name = (config->printer_name[0] == 0) ? config->klipper_host : config->printer_name; 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"); lv_create_custom_menu_label(printer_name, parent, "Active");
continue; continue;
} }
if (config->ip_configured) { if (config->setup_complete) {
HTTPClient client; lv_create_custom_menu_button(printer_name, parent, btn_switch_printer, "Switch", config);
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);
} }
} }
} }

View File

@@ -1,6 +1,5 @@
#pragma once #pragma once
#include "lvgl.h" #include "lvgl.h"
void switch_printer(int index);
void switch_printer_init(); void switch_printer_init();
lv_obj_t * draw_switch_printer_button(); lv_obj_t * draw_switch_printer_button();