mirror of
https://github.com/suchmememanyskill/CYD-Klipper.git
synced 2026-03-21 05:33:24 +00:00
79 lines
2.2 KiB
C++
79 lines
2.2 KiB
C++
#include "main_ui.h"
|
|
#include "../core/data_setup.h"
|
|
#include "../conf/global_config.h"
|
|
#include "../core/screen_driver.h"
|
|
#include "lvgl.h"
|
|
#include "nav_buttons.h"
|
|
|
|
char extruder_temp_buff[20];
|
|
char bed_temp_buff[20];
|
|
char position_buff[20];
|
|
|
|
static void btn_click_restart(lv_event_t * e){
|
|
send_gcode(false, "RESTART");
|
|
}
|
|
|
|
static void btn_click_firmware_restart(lv_event_t * e){
|
|
send_gcode(false, "FIRMWARE_RESTART");
|
|
}
|
|
|
|
void error_ui(){
|
|
lv_obj_clean(lv_scr_act());
|
|
|
|
lv_obj_t * label;
|
|
label = lv_label_create(lv_scr_act());
|
|
lv_label_set_text(label, LV_SYMBOL_WARNING " Printer is not ready");
|
|
lv_obj_align(label, LV_ALIGN_TOP_LEFT, 10, 10);
|
|
|
|
label = lv_label_create(lv_scr_act());
|
|
lv_label_set_text(label, printer.state_message);
|
|
lv_obj_align(label, LV_ALIGN_TOP_LEFT, 10, 30);
|
|
lv_obj_set_size(label, TFT_HEIGHT - 20, TFT_WIDTH - 30);
|
|
lv_obj_clear_flag(label, LV_OBJ_FLAG_SCROLLABLE);
|
|
lv_label_set_long_mode(label, LV_LABEL_LONG_WRAP);
|
|
|
|
lv_obj_t * btn = lv_btn_create(lv_scr_act());
|
|
lv_obj_align(btn, LV_ALIGN_BOTTOM_LEFT, 10, -10);
|
|
lv_obj_set_size(btn, TFT_HEIGHT / 2 - 15, 30);
|
|
lv_obj_add_event_cb(btn, btn_click_restart, LV_EVENT_CLICKED, NULL);
|
|
|
|
label = lv_label_create(btn);
|
|
lv_label_set_text(label, "Restart");
|
|
lv_obj_center(label);
|
|
|
|
btn = lv_btn_create(lv_scr_act());
|
|
lv_obj_align(btn, LV_ALIGN_BOTTOM_RIGHT, -10, -10);
|
|
lv_obj_set_size(btn, TFT_HEIGHT / 2 - 15, 30);
|
|
lv_obj_add_event_cb(btn, btn_click_firmware_restart, LV_EVENT_CLICKED, NULL);
|
|
|
|
label = lv_label_create(btn);
|
|
lv_label_set_text(label, "Firmware Restart");
|
|
lv_obj_center(label);
|
|
}
|
|
|
|
void check_if_screen_needs_to_be_disabled(){
|
|
if (global_config.onDuringPrint && printer.state == PRINTER_STATE_PRINTING){
|
|
screen_timer_wake();
|
|
screen_timer_stop();
|
|
}
|
|
else {
|
|
screen_timer_start();
|
|
}
|
|
}
|
|
|
|
static void on_state_change(void * s, lv_msg_t * m){
|
|
check_if_screen_needs_to_be_disabled();
|
|
|
|
if (printer.state == PRINTER_STATE_ERROR){
|
|
error_ui();
|
|
}
|
|
else {
|
|
nav_buttons_setup(0);
|
|
}
|
|
}
|
|
|
|
|
|
void main_ui_setup(){
|
|
lv_msg_subscribe(DATA_PRINTER_STATE, on_state_change, NULL);
|
|
on_state_change(NULL, NULL);
|
|
} |