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(){
tft.invertDisplay(get_current_printer_config()->invert_colors);
tft.invertDisplay(global_config.printer_config[global_config.printer_index].invert_colors);
}
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()
{
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])

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)
{
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);

View File

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

View File

@@ -5,7 +5,6 @@
#include "../ui/ui_utils.h"
#include <Esp.h>
#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];

View File

@@ -4,9 +4,7 @@
#include <HTTPClient.h>
#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();

View File

@@ -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);
}
}
}

View File

@@ -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();