Robin nano V2, TFT LVGL UI parameters, and more (#18500)
This commit is contained in:
parent
c5ec80d6c7
commit
d20d459132
|
@ -135,7 +135,7 @@
|
|||
//#define CUSTOM_MACHINE_NAME "3D Printer"
|
||||
|
||||
// Printer's unique ID, used by some programs to differentiate between machines.
|
||||
// Choose your own or use a service like http://www.uuidgenerator.net/version4
|
||||
// Choose your own or use a service like https://www.uuidgenerator.net/version4
|
||||
//#define MACHINE_UUID "00000000-0000-0000-0000-000000000000"
|
||||
|
||||
// @section extruder
|
||||
|
@ -2148,20 +2148,23 @@
|
|||
//
|
||||
// TFT LVGL UI
|
||||
//
|
||||
// Default MKS icons and fonts: https://git.io/JJvzK
|
||||
// Copy mks_pic and mks_font folders to the root of your SD
|
||||
// Using default MKS icons and fonts from: https://git.io/JJvzK
|
||||
// Just copy the `assets` folder from the build directory to the
|
||||
// root of your SD card, together with the compiled firmware.
|
||||
//
|
||||
//#define TFT_LVGL_UI
|
||||
// Robin nano v1.2 uses FSMC
|
||||
//
|
||||
//#define TFT_LVGL_UI_FSMC
|
||||
|
||||
// Robin nano v2.0 uses SPI
|
||||
//
|
||||
//#define TFT_LVGL_UI_SPI
|
||||
|
||||
|
||||
//=============================================================================
|
||||
//============================ Other Controllers ============================
|
||||
//=============================================================================
|
||||
|
||||
//
|
||||
// Robin nano v2.0 SPI touch screen
|
||||
//
|
||||
//#define SPI_GRAPHICAL_TFT
|
||||
|
||||
//
|
||||
// Ender-3 v2 OEM display. A DWIN display with Rotary Encoder.
|
||||
//
|
||||
|
|
|
@ -59,10 +59,11 @@
|
|||
#include "gcode/parser.h"
|
||||
#include "gcode/queue.h"
|
||||
|
||||
#if ENABLED(TFT_LVGL_UI)
|
||||
#include "lvgl.h"
|
||||
#if HAS_TFT_LVGL_UI
|
||||
#include "lcd/extui/lib/mks_ui/tft_lvgl_configuration.h"
|
||||
#include "lcd/extui/lib/mks_ui/draw_ui.h"
|
||||
#include "lcd/extui/lib/mks_ui/mks_hardware_test.h"
|
||||
#include <lvgl.h>
|
||||
#endif
|
||||
|
||||
#if ENABLED(DWIN_CREALITY_LCD)
|
||||
|
@ -755,7 +756,7 @@ void idle(TERN_(ADVANCED_PAUSE_FEATURE, bool no_stepper_sleep/*=false*/)) {
|
|||
// Direct Stepping
|
||||
TERN_(DIRECT_STEPPING, page_manager.write_responses());
|
||||
|
||||
#if ENABLED(TFT_LVGL_UI)
|
||||
#if HAS_TFT_LVGL_UI
|
||||
LV_TASK_HANDLER();
|
||||
#endif
|
||||
}
|
||||
|
@ -1192,7 +1193,7 @@ void setup() {
|
|||
SETUP_RUN(page_manager.init());
|
||||
#endif
|
||||
|
||||
#if ENABLED(TFT_LVGL_UI)
|
||||
#if HAS_TFT_LVGL_UI
|
||||
if (!card.isMounted()) SETUP_RUN(card.mount()); // Mount SD to load graphics and fonts
|
||||
SETUP_RUN(tft_lvgl_init());
|
||||
#endif
|
||||
|
@ -1229,7 +1230,7 @@ void loop() {
|
|||
|
||||
endstops.event_handler();
|
||||
|
||||
TERN_(TFT_LVGL_UI, printer_state_polling());
|
||||
TERN_(HAS_TFT_LVGL_UI, printer_state_polling());
|
||||
|
||||
} while (ENABLED(__AVR__)); // Loop forever on slower (AVR) boards
|
||||
}
|
||||
|
|
|
@ -288,30 +288,31 @@
|
|||
#define BOARD_MKS_ROBIN 4007 // MKS Robin (STM32F103ZET6)
|
||||
#define BOARD_MKS_ROBIN_MINI 4008 // MKS Robin Mini (STM32F103VET6)
|
||||
#define BOARD_MKS_ROBIN_NANO 4009 // MKS Robin Nano (STM32F103VET6)
|
||||
#define BOARD_MKS_ROBIN_LITE 4010 // MKS Robin Lite/Lite2 (STM32F103RCT6)
|
||||
#define BOARD_MKS_ROBIN_LITE3 4011 // MKS Robin Lite3 (STM32F103RCT6)
|
||||
#define BOARD_MKS_ROBIN_PRO 4012 // MKS Robin Pro (STM32F103ZET6)
|
||||
#define BOARD_BTT_SKR_MINI_V1_1 4013 // BigTreeTech SKR Mini v1.1 (STM32F103RC)
|
||||
#define BOARD_BTT_SKR_MINI_E3_V1_0 4014 // BigTreeTech SKR Mini E3 (STM32F103RC)
|
||||
#define BOARD_BTT_SKR_MINI_E3_V1_2 4015 // BigTreeTech SKR Mini E3 V1.2 (STM32F103RC)
|
||||
#define BOARD_BTT_SKR_MINI_E3_V2_0 4016 // BigTreeTech SKR Mini E3 V2.0 (STM32F103RC)
|
||||
#define BOARD_BTT_SKR_E3_DIP 4017 // BigTreeTech SKR E3 DIP V1.0 (STM32F103RC / STM32F103RE)
|
||||
#define BOARD_JGAURORA_A5S_A1 4018 // JGAurora A5S A1 (STM32F103ZET6)
|
||||
#define BOARD_FYSETC_AIO_II 4019 // FYSETC AIO_II
|
||||
#define BOARD_FYSETC_CHEETAH 4020 // FYSETC Cheetah
|
||||
#define BOARD_FYSETC_CHEETAH_V12 4021 // FYSETC Cheetah V1.2
|
||||
#define BOARD_LONGER3D_LK 4022 // Alfawise U20/U20+/U30 (Longer3D LK1/2) / STM32F103VET6
|
||||
#define BOARD_GTM32_MINI 4023 // STM32F103VET6 controller
|
||||
#define BOARD_GTM32_MINI_A30 4024 // STM32F103VET6 controller
|
||||
#define BOARD_GTM32_REV_B 4025 // STM32F103VET6 controller
|
||||
#define BOARD_MKS_ROBIN_E3D 4026 // MKS Robin E3D (STM32F103RCT6)
|
||||
#define BOARD_MKS_ROBIN_E3 4027 // MKS Robin E3 (STM32F103RCT6)
|
||||
#define BOARD_MALYAN_M300 4028 // STM32F070-based delta
|
||||
#define BOARD_CCROBOT_MEEB_3DP 4029 // ccrobot-online.com MEEB_3DP (STM32F103RC)
|
||||
#define BOARD_CHITU3D_V5 4030 // Chitu3D TronXY X5SA V5 Board
|
||||
#define BOARD_CHITU3D_V6 4031 // Chitu3D TronXY X5SA V5 Board
|
||||
#define BOARD_CREALITY_V4 4032 // Creality v4.x (STM32F103RE)
|
||||
#define BOARD_TRIGORILLA_PRO 4033 // Trigorilla Pro (STM32F103ZET6)
|
||||
#define BOARD_MKS_ROBIN_NANO_V2 4010 // MKS Robin Nano V2 (STM32F103VET6)
|
||||
#define BOARD_MKS_ROBIN_LITE 4011 // MKS Robin Lite/Lite2 (STM32F103RCT6)
|
||||
#define BOARD_MKS_ROBIN_LITE3 4012 // MKS Robin Lite3 (STM32F103RCT6)
|
||||
#define BOARD_MKS_ROBIN_PRO 4013 // MKS Robin Pro (STM32F103ZET6)
|
||||
#define BOARD_BTT_SKR_MINI_V1_1 4014 // BigTreeTech SKR Mini v1.1 (STM32F103RC)
|
||||
#define BOARD_BTT_SKR_MINI_E3_V1_0 4015 // BigTreeTech SKR Mini E3 (STM32F103RC)
|
||||
#define BOARD_BTT_SKR_MINI_E3_V1_2 4016 // BigTreeTech SKR Mini E3 V1.2 (STM32F103RC)
|
||||
#define BOARD_BTT_SKR_MINI_E3_V2_0 4017 // BigTreeTech SKR Mini E3 V2.0 (STM32F103RC)
|
||||
#define BOARD_BTT_SKR_E3_DIP 4018 // BigTreeTech SKR E3 DIP V1.0 (STM32F103RC / STM32F103RE)
|
||||
#define BOARD_JGAURORA_A5S_A1 4019 // JGAurora A5S A1 (STM32F103ZET6)
|
||||
#define BOARD_FYSETC_AIO_II 4020 // FYSETC AIO_II
|
||||
#define BOARD_FYSETC_CHEETAH 4021 // FYSETC Cheetah
|
||||
#define BOARD_FYSETC_CHEETAH_V12 4022 // FYSETC Cheetah V1.2
|
||||
#define BOARD_LONGER3D_LK 4023 // Alfawise U20/U20+/U30 (Longer3D LK1/2) / STM32F103VET6
|
||||
#define BOARD_GTM32_MINI 4024 // STM32F103VET6 controller
|
||||
#define BOARD_GTM32_MINI_A30 4025 // STM32F103VET6 controller
|
||||
#define BOARD_GTM32_REV_B 4026 // STM32F103VET6 controller
|
||||
#define BOARD_MKS_ROBIN_E3D 4027 // MKS Robin E3D (STM32F103RCT6)
|
||||
#define BOARD_MKS_ROBIN_E3 4028 // MKS Robin E3 (STM32F103RCT6)
|
||||
#define BOARD_MALYAN_M300 4029 // STM32F070-based delta
|
||||
#define BOARD_CCROBOT_MEEB_3DP 4030 // ccrobot-online.com MEEB_3DP (STM32F103RC)
|
||||
#define BOARD_CHITU3D_V5 4031 // Chitu3D TronXY X5SA V5 Board
|
||||
#define BOARD_CHITU3D_V6 4032 // Chitu3D TronXY X5SA V5 Board
|
||||
#define BOARD_CREALITY_V4 4033 // Creality v4.x (STM32F103RE)
|
||||
#define BOARD_TRIGORILLA_PRO 4034 // Trigorilla Pro (STM32F103ZET6)
|
||||
|
||||
//
|
||||
// ARM Cortex-M4F
|
||||
|
|
|
@ -255,12 +255,17 @@
|
|||
#define IS_ULTIPANEL
|
||||
#endif
|
||||
|
||||
// LVGL UI, SPI or FSMC
|
||||
#if EITHER(TFT_LVGL_UI_SPI, TFT_LVGL_UI_FSMC)
|
||||
#define HAS_TFT_LVGL_UI 1
|
||||
#endif
|
||||
|
||||
// FSMC/SPI TFT Panels
|
||||
#if ENABLED(FSMC_GRAPHICAL_TFT)
|
||||
#define DOGLCD
|
||||
#define IS_ULTIPANEL
|
||||
#define DELAYED_BACKLIGHT_INIT
|
||||
#elif ENABLED(SPI_GRAPHICAL_TFT)
|
||||
#elif ENABLED(TFT_LVGL_UI_SPI)
|
||||
#define DELAYED_BACKLIGHT_INIT
|
||||
#endif
|
||||
|
||||
|
|
|
@ -449,6 +449,10 @@
|
|||
#error "POWER_SUPPLY is now obsolete. Please remove it from Configuration.h."
|
||||
#elif defined(MKS_ROBIN_TFT)
|
||||
#error "MKS_ROBIN_TFT is now FSMC_GRAPHICAL_TFT. Please update your configuration."
|
||||
#elif defined(TFT_LVGL_UI)
|
||||
#error "TFT_LVGL_UI is now TFT_LVGL_UI_FSMC. Please update your configuration."
|
||||
#elif defined(SPI_GRAPHICAL_TFT)
|
||||
#error "SPI_GRAPHICAL_TFT is now TFT_LVGL_UI_SPI. Please update your configuration."
|
||||
#elif defined(SDPOWER)
|
||||
#error "SDPOWER is now SDPOWER_PIN. Please update your configuration and/or pins."
|
||||
#elif defined(STRING_SPLASH_LINE1) || defined(STRING_SPLASH_LINE2)
|
||||
|
@ -2217,8 +2221,8 @@ static_assert(hbm[Z_AXIS] >= 0, "HOMING_BUMP_MM.Z must be greater than or equal
|
|||
+ ENABLED(MALYAN_LCD) \
|
||||
+ ENABLED(TOUCH_UI_FTDI_EVE) \
|
||||
+ ENABLED(FSMC_GRAPHICAL_TFT) \
|
||||
+ ENABLED(TFT_LVGL_UI) \
|
||||
+ ENABLED(SPI_GRAPHICAL_TFT)
|
||||
+ ENABLED(TFT_LVGL_UI_FSMC) \
|
||||
+ ENABLED(TFT_LVGL_UI_SPI)
|
||||
#error "Please select no more than one LCD controller option."
|
||||
#endif
|
||||
|
||||
|
|
|
@ -22,11 +22,14 @@
|
|||
|
||||
#include "../../../../inc/MarlinConfigPre.h"
|
||||
|
||||
#if ENABLED(SPI_GRAPHICAL_TFT)
|
||||
#if ENABLED(TFT_LVGL_UI_SPI)
|
||||
|
||||
#include "SPI_TFT.h"
|
||||
#include "pic_manager.h"
|
||||
|
||||
#include "../../../../inc/MarlinConfig.h"
|
||||
|
||||
#include <SPI.h>
|
||||
#include "../../../../inc/MarlinConfig.h"
|
||||
#include "SPI_TFT.h"
|
||||
|
||||
TFT SPI_TFT;
|
||||
|
||||
|
@ -133,31 +136,43 @@
|
|||
}
|
||||
void TFT::LCD_WriteRAM_Prepare() {LCD_WR_REG(0X2C);}
|
||||
void TFT::SetCursor(uint16_t x, uint16_t y) {
|
||||
LCD_WR_REG(0x2a);
|
||||
LCD_WR_REG(0x2A);
|
||||
LCD_WR_DATA(x >> 8);
|
||||
LCD_WR_DATA(x);
|
||||
LCD_WR_DATA(x >> 8);
|
||||
LCD_WR_DATA(x);
|
||||
|
||||
LCD_WR_REG(0x2b);
|
||||
LCD_WR_REG(0x2B);
|
||||
LCD_WR_DATA(y >> 8);
|
||||
LCD_WR_DATA(y);
|
||||
LCD_WR_DATA(y >> 8);
|
||||
LCD_WR_DATA(y);
|
||||
}
|
||||
|
||||
void TFT::SetPoint(uint16_t x, uint16_t y, uint16_t point) {
|
||||
if ((x > 480) || (y > 320)) return;
|
||||
|
||||
SetCursor(x, y);
|
||||
|
||||
LCD_WriteRAM_Prepare();
|
||||
LCD_WR_DATA((uint8_t)(point >> 8));
|
||||
LCD_WR_DATA((uint8_t)point);
|
||||
}
|
||||
|
||||
void TFT::SetWindows(uint16_t x, uint16_t y, uint16_t with, uint16_t height) {
|
||||
LCD_WR_REG(0x2a);
|
||||
LCD_WR_REG(0x2A);
|
||||
LCD_WR_DATA(x >> 8);
|
||||
LCD_WR_DATA(x);
|
||||
LCD_WR_DATA((x + with) >> 8);
|
||||
LCD_WR_DATA((x + with));
|
||||
LCD_WR_DATA((x + with - 1) >> 8);
|
||||
LCD_WR_DATA((x + with - 1));
|
||||
|
||||
LCD_WR_REG(0x2b);
|
||||
LCD_WR_REG(0x2B);
|
||||
LCD_WR_DATA(y >> 8);
|
||||
LCD_WR_DATA(y);
|
||||
LCD_WR_DATA((y + height) >> 8);
|
||||
LCD_WR_DATA(y + height);
|
||||
LCD_WR_DATA((y + height - 1) >> 8);
|
||||
LCD_WR_DATA(y + height - 1);
|
||||
}
|
||||
|
||||
void TFT::LCD_init() {
|
||||
SPI_TFT_RST_H;
|
||||
delay(150);
|
||||
|
@ -169,9 +184,9 @@
|
|||
LCD_WR_REG(0x11);
|
||||
delay(120);
|
||||
|
||||
LCD_WR_REG(0xf0);
|
||||
LCD_WR_DATA(0xc3);
|
||||
LCD_WR_REG(0xf0);
|
||||
LCD_WR_REG(0xF0);
|
||||
LCD_WR_DATA(0xC3);
|
||||
LCD_WR_REG(0xF0);
|
||||
LCD_WR_DATA(0x96);
|
||||
|
||||
LCD_WR_REG(0x36);
|
||||
|
@ -184,65 +199,66 @@
|
|||
LCD_WR_DATA(0x01);
|
||||
LCD_WR_REG(0xB7);
|
||||
LCD_WR_DATA(0xC6);
|
||||
LCD_WR_REG(0xe8);
|
||||
LCD_WR_REG(0xE8);
|
||||
LCD_WR_DATA(0x40);
|
||||
LCD_WR_DATA(0x8a);
|
||||
LCD_WR_DATA(0x8A);
|
||||
LCD_WR_DATA(0x00);
|
||||
LCD_WR_DATA(0x00);
|
||||
LCD_WR_DATA(0x29);
|
||||
LCD_WR_DATA(0x19);
|
||||
LCD_WR_DATA(0xa5);
|
||||
LCD_WR_DATA(0xA5);
|
||||
LCD_WR_DATA(0x33);
|
||||
LCD_WR_REG(0xc1);
|
||||
LCD_WR_REG(0xC1);
|
||||
LCD_WR_DATA(0x06);
|
||||
LCD_WR_REG(0xc2);
|
||||
LCD_WR_DATA(0xa7);
|
||||
LCD_WR_REG(0xc5);
|
||||
LCD_WR_REG(0xC2);
|
||||
LCD_WR_DATA(0xA7);
|
||||
LCD_WR_REG(0xC5);
|
||||
LCD_WR_DATA(0x18);
|
||||
LCD_WR_REG(0xe0); // Positive Voltage Gamma Control
|
||||
LCD_WR_DATA(0xf0);
|
||||
LCD_WR_REG(0xE0); // Positive Voltage Gamma Control
|
||||
LCD_WR_DATA(0xF0);
|
||||
LCD_WR_DATA(0x09);
|
||||
LCD_WR_DATA(0x0b);
|
||||
LCD_WR_DATA(0x0B);
|
||||
LCD_WR_DATA(0x06);
|
||||
LCD_WR_DATA(0x04);
|
||||
LCD_WR_DATA(0x15);
|
||||
LCD_WR_DATA(0x2f);
|
||||
LCD_WR_DATA(0x2F);
|
||||
LCD_WR_DATA(0x54);
|
||||
LCD_WR_DATA(0x42);
|
||||
LCD_WR_DATA(0x3c);
|
||||
LCD_WR_DATA(0x3C);
|
||||
LCD_WR_DATA(0x17);
|
||||
LCD_WR_DATA(0x14);
|
||||
LCD_WR_DATA(0x18);
|
||||
LCD_WR_DATA(0x1b);
|
||||
LCD_WR_REG(0xe1); // Negative Voltage Gamma Control
|
||||
LCD_WR_DATA(0xf0);
|
||||
LCD_WR_DATA(0x1B);
|
||||
LCD_WR_REG(0xE1); // Negative Voltage Gamma Control
|
||||
LCD_WR_DATA(0xF0);
|
||||
LCD_WR_DATA(0x09);
|
||||
LCD_WR_DATA(0x0b);
|
||||
LCD_WR_DATA(0x0B);
|
||||
LCD_WR_DATA(0x06);
|
||||
LCD_WR_DATA(0x04);
|
||||
LCD_WR_DATA(0x03);
|
||||
LCD_WR_DATA(0x2d);
|
||||
LCD_WR_DATA(0x2D);
|
||||
LCD_WR_DATA(0x43);
|
||||
LCD_WR_DATA(0x42);
|
||||
LCD_WR_DATA(0x3b);
|
||||
LCD_WR_DATA(0x3B);
|
||||
LCD_WR_DATA(0x16);
|
||||
LCD_WR_DATA(0x14);
|
||||
LCD_WR_DATA(0x17);
|
||||
LCD_WR_DATA(0x1b);
|
||||
LCD_WR_REG(0xf0);
|
||||
LCD_WR_DATA(0x3c);
|
||||
LCD_WR_REG(0xf0);
|
||||
LCD_WR_DATA(0x1B);
|
||||
LCD_WR_REG(0xF0);
|
||||
LCD_WR_DATA(0x3C);
|
||||
LCD_WR_REG(0xF0);
|
||||
LCD_WR_DATA(0x69);
|
||||
delay(120); // Delay 120ms
|
||||
LCD_WR_REG(0x29); // Display ON
|
||||
|
||||
LCD_clear(0x0000); //
|
||||
LCD_Draw_Logo();
|
||||
SPI_TFT_BLK_H;
|
||||
|
||||
delay(2000);
|
||||
}
|
||||
|
||||
void TFT::LCD_clear(uint16_t color) {
|
||||
unsigned int i, m;
|
||||
uint32_t count;
|
||||
unsigned int i;
|
||||
uint8_t tbuf[960];
|
||||
|
||||
SetCursor(0, 0);
|
||||
|
@ -260,7 +276,6 @@
|
|||
// {
|
||||
// LCD_WR_DATA(color>>8);
|
||||
// LCD_WR_DATA(color);
|
||||
|
||||
SPI.dmaSend(tbuf, 960, true);
|
||||
// SPI_TFT_CS_H;
|
||||
// }
|
||||
|
@ -268,4 +283,56 @@
|
|||
SPI_TFT_CS_H;
|
||||
}
|
||||
|
||||
#endif // SPI_GRAPHICAL_TFT
|
||||
extern unsigned char bmp_public_buf[17 * 1024];
|
||||
|
||||
void TFT::LCD_Draw_Logo() {
|
||||
uint16_t i,y_off = 0;
|
||||
uint16_t *p_index;
|
||||
uint16_t Color;
|
||||
|
||||
#if 1
|
||||
for (y_off = 0; y_off < 320; y_off ++) {
|
||||
Pic_Logo_Read((uint8_t *)"", (uint8_t *)bmp_public_buf, 960);
|
||||
|
||||
SPI_TFT.spi_init(SPI_FULL_SPEED);
|
||||
SetWindows(0, y_off, 480, 1);
|
||||
LCD_WriteRAM_Prepare(); /* Prepare to write GRAM */
|
||||
for (i = 0; i < 960;) {
|
||||
p_index = (uint16_t *)(&bmp_public_buf[i]);
|
||||
Color = (*p_index >> 8);
|
||||
*p_index = Color | ((*p_index & 0xFF) << 8);
|
||||
i+=2;
|
||||
}
|
||||
SPI_TFT_CS_L;
|
||||
SPI_TFT_DC_H;
|
||||
SPI.dmaSend(bmp_public_buf,960,true);
|
||||
SPI_TFT_CS_H;
|
||||
}
|
||||
|
||||
#else
|
||||
|
||||
for (index = 0; index < 40; index ++) {
|
||||
Pic_Logo_Read((uint8_t *)"", bmp_public_buf, 480*8*2);
|
||||
i = 0;
|
||||
SetCursor(0,0);
|
||||
SetWindows(0, y_off * 8, 480, 8);
|
||||
LCD_WriteRAM_Prepare(); /* Prepare to write GRAM */
|
||||
for (i = 0; i < 480 * 8 * 2;) {
|
||||
p_index = (uint16_t *)(&bmp_public_buf[i]);
|
||||
Color = (*p_index >> 8);
|
||||
*p_index = Color | ((*p_index & 0xFF) << 8);
|
||||
i += 2;
|
||||
}
|
||||
SPI_TFT_CS_L;
|
||||
SPI_TFT_DC_H;
|
||||
SPI.dmaSend(bmp_public_buf,480*8*2,true);
|
||||
SPI_TFT_CS_H;
|
||||
|
||||
y_off++;
|
||||
}
|
||||
#endif
|
||||
|
||||
SetWindows(0, 0, 479, 319);
|
||||
}
|
||||
|
||||
#endif // HAS_TFT_LVGL_UI_SPI
|
||||
|
|
|
@ -46,10 +46,12 @@ public:
|
|||
void LCD_WR_REG(uint8_t cmd);
|
||||
void LCD_WR_DATA(uint8_t data);
|
||||
void SetCursor(uint16_t x, uint16_t y);
|
||||
void SetPoint(uint16_t x, uint16_t y, uint16_t point);
|
||||
void SetWindows(uint16_t x, uint16_t y, uint16_t with, uint16_t height);
|
||||
void LCD_init();
|
||||
void LCD_clear(uint16_t color);
|
||||
void LCD_WriteRAM_Prepare();
|
||||
void LCD_Draw_Logo();
|
||||
};
|
||||
|
||||
extern TFT SPI_TFT;
|
||||
|
|
|
@ -22,7 +22,7 @@
|
|||
#include "../../../../inc/MarlinConfigPre.h"
|
||||
|
||||
#if 1 // ENABLED(SPI_FLASH)
|
||||
#if ENABLED(TFT_LVGL_UI)
|
||||
#if HAS_TFT_LVGL_UI
|
||||
|
||||
#include <SPI.h>
|
||||
#include "../../../../inc/MarlinConfig.h"
|
||||
|
@ -131,7 +131,7 @@ void ext_FLASH::spi_flash_SendBlock(uint8_t token, const uint8_t* buf) {
|
|||
uint16_t ext_FLASH::W25QXX_ReadID(void) {
|
||||
uint16_t Temp = 0;
|
||||
W25QXX_CS_L;
|
||||
spi_flash_Send(0x90);//<2F><><EFBFBD>Ͷ<EFBFBD>ȡID<49><44><EFBFBD><EFBFBD>
|
||||
spi_flash_Send(0x90);
|
||||
spi_flash_Send(0x00);
|
||||
spi_flash_Send(0x00);
|
||||
spi_flash_Send(0x00);
|
||||
|
@ -391,5 +391,5 @@ void ext_FLASH::SPI_FLASH_BufferRead(uint8_t* pBuffer, uint32_t ReadAddr, uint16
|
|||
|
||||
void ext_FLASH::lv_pic_read(uint8_t *P_Rbuff, uint32_t addr, uint32_t size) {SPI_FLASH_BufferRead((uint8_t *)P_Rbuff, addr, size);}
|
||||
|
||||
#endif // TFT_LVGL_UI
|
||||
#endif // HAS_TFT_LVGL_UI
|
||||
#endif // 1 ... SPI_FLASH
|
||||
|
|
|
@ -56,38 +56,35 @@
|
|||
|
||||
#define PIC_NAME_MAX_LEN 50
|
||||
|
||||
#define LOGO_MAX_SIZE (300*1024)//logo<67><6F><EFBFBD>ֵ
|
||||
#define TITLELOGO_MAX_SIZE (150*1024)//logo<67><6F><EFBFBD>ֵ
|
||||
#define LOGO_MAX_SIZE (300*1024)
|
||||
#define TITLELOGO_MAX_SIZE (150*1024)
|
||||
#define DEFAULT_VIEW_MAX_SIZE (200*200*2)
|
||||
#define FLASH_VIEW_MAX_SIZE (200*200*2)
|
||||
|
||||
//ͼƬ
|
||||
//Robin2<6E>洢<EFBFBD><E6B4A2>ַ
|
||||
#define PIC_NAME_ADDR 0x003000 //ͼƬ<CDBC><C6AC>Ϣ<EFBFBD>洢<EFBFBD><E6B4A2>ַ<EFBFBD><D6B7>ͼƬ<CDBC><C6AC><EFBFBD><EFBFBD>
|
||||
#define PIC_SIZE_ADDR 0x007000 //ͼƬ<CDBC><C6AC>Ϣ<EFBFBD>洢<EFBFBD><E6B4A2>ַ<EFBFBD><D6B7>ͼƬ<CDBC><C6AC>Сֵ
|
||||
#define PIC_COUNTER_ADDR 0x008000 //ͼƬ<CDBC><C6AC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ<EFBFBD>洢<EFBFBD><E6B4A2>ַ
|
||||
#define PIC_LOGO_ADDR 0x009000 //ͼƬlogo<67>洢<EFBFBD><E6B4A2>ַ
|
||||
//#define PIC_DATA_ADDR 0x02f000 //ͼƬ<CDBC><C6AC><EFBFBD>ݴ洢<DDB4><E6B4A2>ַ
|
||||
//Robin 2
|
||||
#define PIC_NAME_ADDR 0x003000
|
||||
#define PIC_SIZE_ADDR 0x007000
|
||||
#define PIC_COUNTER_ADDR 0x008000
|
||||
#define PIC_LOGO_ADDR 0x009000
|
||||
//#define PIC_DATA_ADDR 0x02f000
|
||||
|
||||
#define DEFAULT_VIEW_ADDR 0XC5800
|
||||
#define BAK_VIEW_ADDR (DEFAULT_VIEW_ADDR+90*1024)
|
||||
#define PIC_ICON_LOGO_ADDR (BAK_VIEW_ADDR+80*1024)
|
||||
|
||||
#define PIC_DATA_ADDR (PIC_ICON_LOGO_ADDR+350*1024) //ͼƬ<CDBC><C6AC><EFBFBD>ݴ洢<DDB4><E6B4A2>ַ//(800*240)
|
||||
#define PIC_DATA_ADDR (PIC_ICON_LOGO_ADDR+350*1024)
|
||||
|
||||
// <20>ֿ<EFBFBD>
|
||||
#define FONTINFOADDR 0x600000 // 6M<36>Ժ<EFBFBD><D4BA>ַΪ<D6B7>ֿ<EFBFBD>
|
||||
#define FONTINFOADDR 0x600000
|
||||
#define UNIGBK_FLASH_ADDR (FONTINFOADDR+4096) // 4*1024
|
||||
#define GBK_FLASH_ADDR (UNIGBK_FLASH_ADDR+180224) // 176*1024
|
||||
|
||||
#define PER_PIC_MAX_SPACE (32*1024) // Ϊ<>˷<EFBFBD>ֹ<EFBFBD><D6B9><EFBFBD><EFBFBD>Խ<EFBFBD><D4BD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>⣬ÿ<E2A3AC><C3BF>СͼƬ<CDBC><C6AC><EFBFBD><EFBFBD><EFBFBD>仮<EFBFBD><E4BBAE>Ӧ<EFBFBD><D3A6>ȡ<EFBFBD>ܹ<EFBFBD><DCB9><EFBFBD><EFBFBD><EFBFBD>4K<34><4B>ֵ
|
||||
#define PER_PIC_MAX_SPACE (32*1024)
|
||||
|
||||
//
|
||||
union union32 {
|
||||
uint8_t bytes[4];
|
||||
uint32_t dwords;
|
||||
};
|
||||
// ͼƬ<CDBC><C6AC>Ϣ<EFBFBD>ṹ<EFBFBD><E1B9B9>
|
||||
|
||||
struct pic_msg {
|
||||
uint8_t name[PIC_NAME_MAX_LEN];
|
||||
union union32 size;
|
||||
|
|
|
@ -21,7 +21,7 @@
|
|||
*/
|
||||
#include "../../../../inc/MarlinConfigPre.h"
|
||||
|
||||
#if ENABLED(TFT_LVGL_UI)
|
||||
#if HAS_TFT_LVGL_UI
|
||||
|
||||
#include "lv_conf.h"
|
||||
#include "draw_ui.h"
|
||||
|
@ -67,7 +67,7 @@ void lv_draw_about(void) {
|
|||
lv_obj_clean(scr);
|
||||
|
||||
lv_obj_t * title = lv_label_create(scr, NULL);
|
||||
lv_obj_set_style(title, &tft_style_lable_rel);
|
||||
lv_obj_set_style(title, &tft_style_label_rel);
|
||||
lv_obj_set_pos(title, TITLE_XPOS, TITLE_YPOS);
|
||||
lv_label_set_text(title, creat_title_text());
|
||||
|
||||
|
@ -79,11 +79,11 @@ void lv_draw_about(void) {
|
|||
buttonBack = lv_imgbtn_create(scr, NULL);
|
||||
|
||||
#if 1
|
||||
lv_obj_set_event_cb_mks(buttonBack, event_handler, ID_A_RETURN, "bmp_Return.bin", 0);
|
||||
lv_obj_set_event_cb_mks(buttonBack, event_handler, ID_A_RETURN, "bmp_return.bin", 0);
|
||||
lv_imgbtn_set_src(buttonBack, LV_BTN_STATE_REL, &bmp_pic);
|
||||
lv_imgbtn_set_src(buttonBack, LV_BTN_STATE_PR, &bmp_pic);
|
||||
lv_imgbtn_set_style(buttonBack, LV_BTN_STATE_PR, &tft_style_lable_pre);
|
||||
lv_imgbtn_set_style(buttonBack, LV_BTN_STATE_REL, &tft_style_lable_rel);
|
||||
lv_imgbtn_set_style(buttonBack, LV_BTN_STATE_PR, &tft_style_label_pre);
|
||||
lv_imgbtn_set_style(buttonBack, LV_BTN_STATE_REL, &tft_style_label_rel);
|
||||
#endif
|
||||
|
||||
lv_obj_set_pos(buttonBack, BTN_X_PIXEL * 3 + INTERVAL_V * 4, BTN_Y_PIXEL + INTERVAL_H + titleHeight);
|
||||
|
@ -98,16 +98,16 @@ void lv_draw_about(void) {
|
|||
}
|
||||
|
||||
fw_version = lv_label_create(scr, NULL);
|
||||
lv_obj_set_style(fw_version, &tft_style_lable_rel);
|
||||
lv_obj_set_style(fw_version, &tft_style_label_rel);
|
||||
lv_label_set_text(fw_version, SHORT_BUILD_VERSION);
|
||||
lv_obj_align(fw_version, NULL, LV_ALIGN_CENTER, 0, -60);
|
||||
|
||||
fw_type = lv_label_create(scr, NULL);
|
||||
lv_obj_set_style(fw_type, &tft_style_lable_rel);
|
||||
lv_obj_set_style(fw_type, &tft_style_label_rel);
|
||||
lv_label_set_text(fw_type,
|
||||
#if MB(MKS_ROBIN_PRO)
|
||||
"Firmware: Robin_Pro35"
|
||||
#elif MB(MKS_ROBIN_NANO)
|
||||
#elif MB(MKS_ROBIN_NANO, MKS_ROBIN_NANO_V2)
|
||||
"Firmware: Robin_Nano35"
|
||||
#else
|
||||
CUSTOM_MACHINE_NAME
|
||||
|
@ -116,11 +116,11 @@ void lv_draw_about(void) {
|
|||
lv_obj_align(fw_type, NULL, LV_ALIGN_CENTER, 0, -20);
|
||||
|
||||
board = lv_label_create(scr, NULL);
|
||||
lv_obj_set_style(board, &tft_style_lable_rel);
|
||||
lv_obj_set_style(board, &tft_style_label_rel);
|
||||
lv_label_set_text(board, "Board: " BOARD_INFO_NAME);
|
||||
lv_obj_align(board, NULL, LV_ALIGN_CENTER, 0, 20);
|
||||
}
|
||||
|
||||
void lv_clear_about() { lv_obj_del(scr); }
|
||||
|
||||
#endif // TFT_LVGL_UI
|
||||
#endif // HAS_TFT_LVGL_UI
|
||||
|
|
483
Marlin/src/lcd/extui/lib/mks_ui/draw_acceleration_settings.cpp
Normal file
483
Marlin/src/lcd/extui/lib/mks_ui/draw_acceleration_settings.cpp
Normal file
|
@ -0,0 +1,483 @@
|
|||
/**
|
||||
* Marlin 3D Printer Firmware
|
||||
* Copyright (c) 2020 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
|
||||
*
|
||||
* Based on Sprinter and grbl.
|
||||
* Copyright (c) 2011 Camiel Gubbels / Erik van der Zalm
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*
|
||||
*/
|
||||
#include "../../../../inc/MarlinConfigPre.h"
|
||||
|
||||
#if HAS_TFT_LVGL_UI
|
||||
|
||||
#include "lv_conf.h"
|
||||
#include "draw_ui.h"
|
||||
|
||||
#include "../../../../MarlinCore.h"
|
||||
#include "../../../../module/planner.h"
|
||||
|
||||
static lv_obj_t * scr;
|
||||
|
||||
#define ID_ACCE_RETURN 1
|
||||
#define ID_ACCE_PRINT 2
|
||||
#define ID_ACCE_RETRA 3
|
||||
#define ID_ACCE_TRAVEL 4
|
||||
#define ID_ACCE_X 5
|
||||
#define ID_ACCE_Y 6
|
||||
#define ID_ACCE_Z 7
|
||||
#define ID_ACCE_E0 8
|
||||
#define ID_ACCE_E1 9
|
||||
#define ID_ACCE_UP 10
|
||||
#define ID_ACCE_DOWN 11
|
||||
|
||||
static void event_handler(lv_obj_t * obj, lv_event_t event) {
|
||||
switch (obj->mks_obj_id) {
|
||||
case ID_ACCE_RETURN:
|
||||
if (event == LV_EVENT_CLICKED) {
|
||||
|
||||
}
|
||||
else if (event == LV_EVENT_RELEASED) {
|
||||
uiCfg.para_ui_page = 0;
|
||||
lv_clear_acceleration_settings();
|
||||
draw_return_ui();
|
||||
}
|
||||
break;
|
||||
case ID_ACCE_PRINT:
|
||||
if (event == LV_EVENT_CLICKED) {
|
||||
|
||||
}
|
||||
else if (event == LV_EVENT_RELEASED) {
|
||||
value = PrintAcceleration;
|
||||
lv_clear_acceleration_settings();
|
||||
lv_draw_number_key();
|
||||
}
|
||||
break;
|
||||
case ID_ACCE_RETRA:
|
||||
if (event == LV_EVENT_CLICKED) {
|
||||
|
||||
}
|
||||
else if (event == LV_EVENT_RELEASED) {
|
||||
value = RetractAcceleration;
|
||||
lv_clear_acceleration_settings();
|
||||
lv_draw_number_key();
|
||||
}
|
||||
break;
|
||||
case ID_ACCE_TRAVEL:
|
||||
if (event == LV_EVENT_CLICKED) {
|
||||
|
||||
}
|
||||
else if (event == LV_EVENT_RELEASED) {
|
||||
value = TravelAcceleration;
|
||||
lv_clear_acceleration_settings();
|
||||
lv_draw_number_key();
|
||||
}
|
||||
break;
|
||||
case ID_ACCE_X:
|
||||
if (event == LV_EVENT_CLICKED) {
|
||||
|
||||
}
|
||||
else if (event == LV_EVENT_RELEASED) {
|
||||
value = XAcceleration;
|
||||
lv_clear_acceleration_settings();
|
||||
lv_draw_number_key();
|
||||
}
|
||||
break;
|
||||
case ID_ACCE_Y:
|
||||
if (event == LV_EVENT_CLICKED) {
|
||||
|
||||
}
|
||||
else if (event == LV_EVENT_RELEASED) {
|
||||
value = YAcceleration;
|
||||
lv_clear_acceleration_settings();
|
||||
lv_draw_number_key();
|
||||
}
|
||||
break;
|
||||
case ID_ACCE_Z:
|
||||
if (event == LV_EVENT_CLICKED) {
|
||||
|
||||
}
|
||||
else if (event == LV_EVENT_RELEASED) {
|
||||
value = ZAcceleration;
|
||||
lv_clear_acceleration_settings();
|
||||
lv_draw_number_key();
|
||||
}
|
||||
break;
|
||||
case ID_ACCE_E0:
|
||||
if (event == LV_EVENT_CLICKED) {
|
||||
|
||||
}
|
||||
else if (event == LV_EVENT_RELEASED) {
|
||||
value = E0Acceleration;
|
||||
lv_clear_acceleration_settings();
|
||||
lv_draw_number_key();
|
||||
}
|
||||
break;
|
||||
case ID_ACCE_E1:
|
||||
if (event == LV_EVENT_CLICKED) {
|
||||
|
||||
}
|
||||
else if (event == LV_EVENT_RELEASED) {
|
||||
value = E1Acceleration;
|
||||
lv_clear_acceleration_settings();
|
||||
lv_draw_number_key();
|
||||
}
|
||||
break;
|
||||
case ID_ACCE_UP:
|
||||
if (event == LV_EVENT_CLICKED) {
|
||||
|
||||
}
|
||||
else if (event == LV_EVENT_RELEASED) {
|
||||
uiCfg.para_ui_page = 0;
|
||||
lv_clear_acceleration_settings();
|
||||
lv_draw_acceleration_settings();
|
||||
}
|
||||
break;
|
||||
case ID_ACCE_DOWN:
|
||||
if (event == LV_EVENT_CLICKED) {
|
||||
|
||||
}
|
||||
else if (event == LV_EVENT_RELEASED) {
|
||||
uiCfg.para_ui_page = 1;
|
||||
lv_clear_acceleration_settings();
|
||||
lv_draw_acceleration_settings();
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
void lv_draw_acceleration_settings(void) {
|
||||
lv_obj_t *buttonBack = NULL, *label_Back = NULL, *buttonTurnPage = NULL, *labelTurnPage = NULL;
|
||||
lv_obj_t *buttonPrintText = NULL, *labelPrintText = NULL, *buttonPrintValue = NULL, *labelPrintValue = NULL;
|
||||
lv_obj_t *buttonRetraText = NULL, *labelRetraText = NULL, *buttonRetraValue = NULL, *labelRetraValue = NULL;
|
||||
lv_obj_t *buttonTravelText = NULL, *labelTravelText = NULL, *buttonTravelValue = NULL, *labelTravelValue = NULL;
|
||||
lv_obj_t *buttonXText = NULL, *labelXText = NULL, *buttonXValue = NULL, *labelXValue = NULL;
|
||||
lv_obj_t *buttonYText = NULL, *labelYText = NULL, *buttonYValue = NULL, *labelYValue = NULL;
|
||||
lv_obj_t *buttonZText = NULL, *labelZText = NULL, *buttonZValue = NULL, *labelZValue = NULL;
|
||||
lv_obj_t *buttonE0Text = NULL, *labelE0Text = NULL, *buttonE0Value = NULL, *labelE0Value = NULL;
|
||||
lv_obj_t *buttonE1Text = NULL, *labelE1Text = NULL, *buttonE1Value = NULL, *labelE1Value = NULL;
|
||||
lv_obj_t * line1 = NULL, * line2 = NULL, * line3 = NULL, * line4 = NULL;
|
||||
if (disp_state_stack._disp_state[disp_state_stack._disp_index] != ACCELERATION_UI) {
|
||||
disp_state_stack._disp_index++;
|
||||
disp_state_stack._disp_state[disp_state_stack._disp_index] = ACCELERATION_UI;
|
||||
}
|
||||
disp_state = ACCELERATION_UI;
|
||||
|
||||
scr = lv_obj_create(NULL, NULL);
|
||||
|
||||
lv_obj_set_style(scr, &tft_style_scr);
|
||||
lv_scr_load(scr);
|
||||
lv_obj_clean(scr);
|
||||
|
||||
lv_obj_t * title = lv_label_create(scr, NULL);
|
||||
lv_obj_set_style(title, &tft_style_label_rel);
|
||||
lv_obj_set_pos(title, TITLE_XPOS, TITLE_YPOS);
|
||||
lv_label_set_text(title, machine_menu.AccelerationConfTitle);
|
||||
|
||||
lv_refr_now(lv_refr_get_disp_refreshing());
|
||||
|
||||
LV_IMG_DECLARE(bmp_para_back);
|
||||
// LV_IMG_DECLARE(bmp_para_arrow);
|
||||
LV_IMG_DECLARE(bmp_para_bank);
|
||||
|
||||
if (uiCfg.para_ui_page != 1) {
|
||||
buttonPrintText = lv_btn_create(scr, NULL); /*Add a button the current screen*/
|
||||
lv_obj_set_pos(buttonPrintText, PARA_UI_POS_X, PARA_UI_POS_Y); /*Set its position*/
|
||||
lv_obj_set_size(buttonPrintText, PARA_UI_VALUE_SIZE_X, PARA_UI_SIZE_Y); /*Set its size*/
|
||||
lv_obj_set_event_cb(buttonPrintText, event_handler);
|
||||
lv_btn_set_style(buttonPrintText, LV_BTN_STYLE_REL, &tft_style_label_rel); /*Set the button's released style*/
|
||||
lv_btn_set_style(buttonPrintText, LV_BTN_STYLE_PR, &tft_style_label_pre); /*Set the button's pressed style*/
|
||||
lv_btn_set_layout(buttonPrintText, LV_LAYOUT_OFF);
|
||||
labelPrintText = lv_label_create(buttonPrintText, NULL); /*Add a label to the button*/
|
||||
|
||||
buttonPrintValue = lv_imgbtn_create(scr, NULL);
|
||||
lv_obj_set_pos(buttonPrintValue, PARA_UI_VALUE_POS_X, PARA_UI_POS_Y + PARA_UI_VALUE_V);
|
||||
lv_obj_set_event_cb_mks(buttonPrintValue, event_handler, ID_ACCE_PRINT, "bmp_value_blank.bin", 0);
|
||||
lv_imgbtn_set_src(buttonPrintValue, LV_BTN_STATE_REL, &bmp_para_bank);
|
||||
lv_imgbtn_set_src(buttonPrintValue, LV_BTN_STATE_PR, &bmp_para_bank);
|
||||
lv_imgbtn_set_style(buttonPrintValue, LV_BTN_STATE_PR, &style_para_value_pre);
|
||||
lv_imgbtn_set_style(buttonPrintValue, LV_BTN_STATE_REL, &style_para_value_rel);
|
||||
lv_btn_set_layout(buttonPrintValue, LV_LAYOUT_OFF);
|
||||
labelPrintValue = lv_label_create(buttonPrintValue, NULL);
|
||||
|
||||
line1 = lv_line_create(scr, NULL);
|
||||
lv_ex_line(line1, line_points[0]);
|
||||
|
||||
buttonRetraText = lv_btn_create(scr, NULL); /*Add a button the current screen*/
|
||||
lv_obj_set_pos(buttonRetraText, PARA_UI_POS_X, PARA_UI_POS_Y * 2); /*Set its position*/
|
||||
lv_obj_set_size(buttonRetraText, PARA_UI_VALUE_SIZE_X, PARA_UI_SIZE_Y); /*Set its size*/
|
||||
lv_obj_set_event_cb(buttonRetraText, event_handler);
|
||||
lv_btn_set_style(buttonRetraText, LV_BTN_STYLE_REL, &tft_style_label_rel); /*Set the button's released style*/
|
||||
lv_btn_set_style(buttonRetraText, LV_BTN_STYLE_PR, &tft_style_label_pre); /*Set the button's pressed style*/
|
||||
lv_btn_set_layout(buttonRetraText, LV_LAYOUT_OFF);
|
||||
labelRetraText = lv_label_create(buttonRetraText, NULL); /*Add a label to the button*/
|
||||
|
||||
buttonRetraValue = lv_imgbtn_create(scr, NULL);
|
||||
lv_obj_set_pos(buttonRetraValue, PARA_UI_VALUE_POS_X, PARA_UI_POS_Y * 2 + PARA_UI_VALUE_V);
|
||||
lv_obj_set_event_cb_mks(buttonRetraValue, event_handler, ID_ACCE_RETRA, "bmp_value_blank.bin", 0);
|
||||
lv_imgbtn_set_src(buttonRetraValue, LV_BTN_STATE_REL, &bmp_para_bank);
|
||||
lv_imgbtn_set_src(buttonRetraValue, LV_BTN_STATE_PR, &bmp_para_bank);
|
||||
lv_imgbtn_set_style(buttonRetraValue, LV_BTN_STATE_PR, &style_para_value_pre);
|
||||
lv_imgbtn_set_style(buttonRetraValue, LV_BTN_STATE_REL, &style_para_value_rel);
|
||||
lv_btn_set_layout(buttonRetraValue, LV_LAYOUT_OFF);
|
||||
labelRetraValue = lv_label_create(buttonRetraValue, NULL);
|
||||
|
||||
line2 = lv_line_create(scr, NULL);
|
||||
lv_ex_line(line2, line_points[1]);
|
||||
|
||||
buttonTravelText = lv_btn_create(scr, NULL); /*Add a button the current screen*/
|
||||
lv_obj_set_pos(buttonTravelText, PARA_UI_POS_X, PARA_UI_POS_Y * 3); /*Set its position*/
|
||||
lv_obj_set_size(buttonTravelText, PARA_UI_VALUE_SIZE_X, PARA_UI_SIZE_Y); /*Set its size*/
|
||||
lv_obj_set_event_cb(buttonTravelText, event_handler);
|
||||
lv_btn_set_style(buttonTravelText, LV_BTN_STYLE_REL, &tft_style_label_rel); /*Set the button's released style*/
|
||||
lv_btn_set_style(buttonTravelText, LV_BTN_STYLE_PR, &tft_style_label_pre); /*Set the button's pressed style*/
|
||||
lv_btn_set_layout(buttonTravelText, LV_LAYOUT_OFF);
|
||||
labelTravelText = lv_label_create(buttonTravelText, NULL); /*Add a label to the button*/
|
||||
|
||||
buttonTravelValue = lv_imgbtn_create(scr, NULL);
|
||||
lv_obj_set_pos(buttonTravelValue, PARA_UI_VALUE_POS_X, PARA_UI_POS_Y * 3 + PARA_UI_VALUE_V);
|
||||
lv_obj_set_event_cb_mks(buttonTravelValue, event_handler, ID_ACCE_TRAVEL, "bmp_value_blank.bin", 0);
|
||||
lv_imgbtn_set_src(buttonTravelValue, LV_BTN_STATE_REL, &bmp_para_bank);
|
||||
lv_imgbtn_set_src(buttonTravelValue, LV_BTN_STATE_PR, &bmp_para_bank);
|
||||
lv_imgbtn_set_style(buttonTravelValue, LV_BTN_STATE_PR, &style_para_value_pre);
|
||||
lv_imgbtn_set_style(buttonTravelValue, LV_BTN_STATE_REL, &style_para_value_rel);
|
||||
lv_btn_set_layout(buttonTravelValue, LV_LAYOUT_OFF);
|
||||
labelTravelValue = lv_label_create(buttonTravelValue, NULL);
|
||||
|
||||
line3 = lv_line_create(scr, NULL);
|
||||
lv_ex_line(line3, line_points[2]);
|
||||
|
||||
buttonXText = lv_btn_create(scr, NULL); /*Add a button the current screen*/
|
||||
lv_obj_set_pos(buttonXText, PARA_UI_POS_X, PARA_UI_POS_Y * 4); /*Set its position*/
|
||||
lv_obj_set_size(buttonXText, PARA_UI_VALUE_SIZE_X, PARA_UI_SIZE_Y); /*Set its size*/
|
||||
lv_obj_set_event_cb(buttonXText, event_handler);
|
||||
lv_btn_set_style(buttonXText, LV_BTN_STYLE_REL, &tft_style_label_rel); /*Set the button's released style*/
|
||||
lv_btn_set_style(buttonXText, LV_BTN_STYLE_PR, &tft_style_label_pre); /*Set the button's pressed style*/
|
||||
lv_btn_set_layout(buttonXText, LV_LAYOUT_OFF);
|
||||
labelXText = lv_label_create(buttonXText, NULL); /*Add a label to the button*/
|
||||
|
||||
buttonXValue = lv_imgbtn_create(scr, NULL);
|
||||
lv_obj_set_pos(buttonXValue, PARA_UI_VALUE_POS_X, PARA_UI_POS_Y * 4 + PARA_UI_VALUE_V);
|
||||
lv_obj_set_event_cb_mks(buttonXValue, event_handler, ID_ACCE_X, "bmp_value_blank.bin", 0);
|
||||
lv_imgbtn_set_src(buttonXValue, LV_BTN_STATE_REL, &bmp_para_bank);
|
||||
lv_imgbtn_set_src(buttonXValue, LV_BTN_STATE_PR, &bmp_para_bank);
|
||||
lv_imgbtn_set_style(buttonXValue, LV_BTN_STATE_PR, &style_para_value_pre);
|
||||
lv_imgbtn_set_style(buttonXValue, LV_BTN_STATE_REL, &style_para_value_rel);
|
||||
lv_btn_set_layout(buttonXValue, LV_LAYOUT_OFF);
|
||||
labelXValue = lv_label_create(buttonXValue, NULL);
|
||||
|
||||
line4 = lv_line_create(scr, NULL);
|
||||
lv_ex_line(line4, line_points[3]);
|
||||
|
||||
buttonTurnPage = lv_imgbtn_create(scr, NULL);
|
||||
lv_obj_set_event_cb_mks(buttonTurnPage, event_handler, ID_ACCE_DOWN, "bmp_back70x40.bin", 0);
|
||||
lv_imgbtn_set_src(buttonTurnPage, LV_BTN_STATE_REL, &bmp_para_back);
|
||||
lv_imgbtn_set_src(buttonTurnPage, LV_BTN_STATE_PR, &bmp_para_back);
|
||||
lv_imgbtn_set_style(buttonTurnPage, LV_BTN_STATE_PR, &tft_style_label_pre);
|
||||
lv_imgbtn_set_style(buttonTurnPage, LV_BTN_STATE_REL, &tft_style_label_rel);
|
||||
}
|
||||
else {
|
||||
buttonYText = lv_btn_create(scr, NULL); /*Add a button the current screen*/
|
||||
lv_obj_set_pos(buttonYText, PARA_UI_POS_X, PARA_UI_POS_Y); /*Set its position*/
|
||||
lv_obj_set_size(buttonYText, PARA_UI_VALUE_SIZE_X, PARA_UI_SIZE_Y); /*Set its size*/
|
||||
lv_obj_set_event_cb(buttonYText, event_handler);
|
||||
lv_btn_set_style(buttonYText, LV_BTN_STYLE_REL, &tft_style_label_rel); /*Set the button's released style*/
|
||||
lv_btn_set_style(buttonYText, LV_BTN_STYLE_PR, &tft_style_label_pre); /*Set the button's pressed style*/
|
||||
lv_btn_set_layout(buttonYText, LV_LAYOUT_OFF);
|
||||
labelYText = lv_label_create(buttonYText, NULL); /*Add a label to the button*/
|
||||
|
||||
buttonYValue = lv_imgbtn_create(scr, NULL);
|
||||
lv_obj_set_pos(buttonYValue, PARA_UI_VALUE_POS_X, PARA_UI_POS_Y + PARA_UI_VALUE_V);
|
||||
lv_obj_set_event_cb_mks(buttonYValue, event_handler, ID_ACCE_Y, "bmp_value_blank.bin", 0);
|
||||
lv_imgbtn_set_src(buttonYValue, LV_BTN_STATE_REL, &bmp_para_bank);
|
||||
lv_imgbtn_set_src(buttonYValue, LV_BTN_STATE_PR, &bmp_para_bank);
|
||||
lv_imgbtn_set_style(buttonYValue, LV_BTN_STATE_PR, &style_para_value_pre);
|
||||
lv_imgbtn_set_style(buttonYValue, LV_BTN_STATE_REL, &style_para_value_rel);
|
||||
lv_btn_set_layout(buttonYValue, LV_LAYOUT_OFF);
|
||||
labelYValue = lv_label_create(buttonYValue, NULL);
|
||||
|
||||
line1 = lv_line_create(scr, NULL);
|
||||
lv_ex_line(line1, line_points[0]);
|
||||
|
||||
buttonZText = lv_btn_create(scr, NULL); /*Add a button the current screen*/
|
||||
lv_obj_set_pos(buttonZText, PARA_UI_POS_X, PARA_UI_POS_Y * 2); /*Set its position*/
|
||||
lv_obj_set_size(buttonZText, PARA_UI_VALUE_SIZE_X, PARA_UI_SIZE_Y); /*Set its size*/
|
||||
lv_obj_set_event_cb(buttonZText, event_handler);
|
||||
lv_btn_set_style(buttonZText, LV_BTN_STYLE_REL, &tft_style_label_rel); /*Set the button's released style*/
|
||||
lv_btn_set_style(buttonZText, LV_BTN_STYLE_PR, &tft_style_label_pre); /*Set the button's pressed style*/
|
||||
lv_btn_set_layout(buttonZText, LV_LAYOUT_OFF);
|
||||
labelZText = lv_label_create(buttonZText, NULL); /*Add a label to the button*/
|
||||
|
||||
buttonZValue = lv_imgbtn_create(scr, NULL);
|
||||
lv_obj_set_pos(buttonZValue, PARA_UI_VALUE_POS_X, PARA_UI_POS_Y * 2 + PARA_UI_VALUE_V);
|
||||
lv_obj_set_event_cb_mks(buttonZValue, event_handler, ID_ACCE_Z, "bmp_value_blank.bin", 0);
|
||||
lv_imgbtn_set_src(buttonZValue, LV_BTN_STATE_REL, &bmp_para_bank);
|
||||
lv_imgbtn_set_src(buttonZValue, LV_BTN_STATE_PR, &bmp_para_bank);
|
||||
lv_imgbtn_set_style(buttonZValue, LV_BTN_STATE_PR, &style_para_value_pre);
|
||||
lv_imgbtn_set_style(buttonZValue, LV_BTN_STATE_REL, &style_para_value_rel);
|
||||
lv_btn_set_layout(buttonZValue, LV_LAYOUT_OFF);
|
||||
labelZValue = lv_label_create(buttonZValue, NULL);
|
||||
|
||||
line2 = lv_line_create(scr, NULL);
|
||||
lv_ex_line(line2, line_points[1]);
|
||||
|
||||
buttonE0Text = lv_btn_create(scr, NULL); /*Add a button the current screen*/
|
||||
lv_obj_set_pos(buttonE0Text, PARA_UI_POS_X, PARA_UI_POS_Y * 3); /*Set its position*/
|
||||
lv_obj_set_size(buttonE0Text, PARA_UI_VALUE_SIZE_X, PARA_UI_SIZE_Y); /*Set its size*/
|
||||
lv_obj_set_event_cb(buttonE0Text, event_handler);
|
||||
lv_btn_set_style(buttonE0Text, LV_BTN_STYLE_REL, &tft_style_label_rel); /*Set the button's released style*/
|
||||
lv_btn_set_style(buttonE0Text, LV_BTN_STYLE_PR, &tft_style_label_pre); /*Set the button's pressed style*/
|
||||
lv_btn_set_layout(buttonE0Text, LV_LAYOUT_OFF);
|
||||
labelE0Text = lv_label_create(buttonE0Text, NULL); /*Add a label to the button*/
|
||||
|
||||
buttonE0Value = lv_imgbtn_create(scr, NULL);
|
||||
lv_obj_set_pos(buttonE0Value, PARA_UI_VALUE_POS_X, PARA_UI_POS_Y * 3 + PARA_UI_VALUE_V);
|
||||
lv_obj_set_event_cb_mks(buttonE0Value, event_handler, ID_ACCE_E0, "bmp_value_blank.bin", 0);
|
||||
lv_imgbtn_set_src(buttonE0Value, LV_BTN_STATE_REL, &bmp_para_bank);
|
||||
lv_imgbtn_set_src(buttonE0Value, LV_BTN_STATE_PR, &bmp_para_bank);
|
||||
lv_imgbtn_set_style(buttonE0Value, LV_BTN_STATE_PR, &style_para_value_pre);
|
||||
lv_imgbtn_set_style(buttonE0Value, LV_BTN_STATE_REL, &style_para_value_rel);
|
||||
lv_btn_set_layout(buttonE0Value, LV_LAYOUT_OFF);
|
||||
labelE0Value = lv_label_create(buttonE0Value, NULL);
|
||||
|
||||
line3 = lv_line_create(scr, NULL);
|
||||
lv_ex_line(line3, line_points[2]);
|
||||
|
||||
buttonE1Text = lv_btn_create(scr, NULL); /*Add a button the current screen*/
|
||||
lv_obj_set_pos(buttonE1Text, PARA_UI_POS_X, PARA_UI_POS_Y * 4); /*Set its position*/
|
||||
lv_obj_set_size(buttonE1Text, PARA_UI_VALUE_SIZE_X, PARA_UI_SIZE_Y); /*Set its size*/
|
||||
lv_obj_set_event_cb(buttonE1Text, event_handler);
|
||||
lv_btn_set_style(buttonE1Text, LV_BTN_STYLE_REL, &tft_style_label_rel); /*Set the button's released style*/
|
||||
lv_btn_set_style(buttonE1Text, LV_BTN_STYLE_PR, &tft_style_label_pre); /*Set the button's pressed style*/
|
||||
lv_btn_set_layout(buttonE1Text, LV_LAYOUT_OFF);
|
||||
labelE1Text = lv_label_create(buttonE1Text, NULL); /*Add a label to the button*/
|
||||
|
||||
buttonE1Value = lv_imgbtn_create(scr, NULL);
|
||||
lv_obj_set_pos(buttonE1Value, PARA_UI_VALUE_POS_X, PARA_UI_POS_Y * 4 + PARA_UI_VALUE_V);
|
||||
lv_obj_set_event_cb_mks(buttonE1Value, event_handler, ID_ACCE_E1, "bmp_value_blank.bin", 0);
|
||||
lv_imgbtn_set_src(buttonE1Value, LV_BTN_STATE_REL, &bmp_para_bank);
|
||||
lv_imgbtn_set_src(buttonE1Value, LV_BTN_STATE_PR, &bmp_para_bank);
|
||||
lv_imgbtn_set_style(buttonE1Value, LV_BTN_STATE_PR, &style_para_value_pre);
|
||||
lv_imgbtn_set_style(buttonE1Value, LV_BTN_STATE_REL, &style_para_value_rel);
|
||||
lv_btn_set_layout(buttonE1Value, LV_LAYOUT_OFF);
|
||||
labelE1Value = lv_label_create(buttonE1Value, NULL);
|
||||
|
||||
line4 = lv_line_create(scr, NULL);
|
||||
lv_ex_line(line4, line_points[3]);
|
||||
|
||||
buttonTurnPage = lv_imgbtn_create(scr, NULL);
|
||||
lv_obj_set_event_cb_mks(buttonTurnPage, event_handler, ID_ACCE_UP, "bmp_back70x40.bin", 0);
|
||||
lv_imgbtn_set_src(buttonTurnPage, LV_BTN_STATE_REL, &bmp_para_back);
|
||||
lv_imgbtn_set_src(buttonTurnPage, LV_BTN_STATE_PR, &bmp_para_back);
|
||||
lv_imgbtn_set_style(buttonTurnPage, LV_BTN_STATE_PR, &tft_style_label_pre);
|
||||
lv_imgbtn_set_style(buttonTurnPage, LV_BTN_STATE_REL, &tft_style_label_rel);
|
||||
}
|
||||
|
||||
lv_obj_set_pos(buttonTurnPage, PARA_UI_TURN_PAGE_POS_X, PARA_UI_TURN_PAGE_POS_Y);
|
||||
lv_btn_set_layout(buttonTurnPage, LV_LAYOUT_OFF);
|
||||
labelTurnPage = lv_label_create(buttonTurnPage, NULL);
|
||||
|
||||
buttonBack = lv_imgbtn_create(scr, NULL);
|
||||
lv_obj_set_event_cb_mks(buttonBack, event_handler, ID_ACCE_RETURN, "bmp_back70x40.bin", 0);
|
||||
lv_imgbtn_set_src(buttonBack, LV_BTN_STATE_REL, &bmp_para_back);
|
||||
lv_imgbtn_set_src(buttonBack, LV_BTN_STATE_PR, &bmp_para_back);
|
||||
lv_imgbtn_set_style(buttonBack, LV_BTN_STATE_PR, &tft_style_label_pre);
|
||||
lv_imgbtn_set_style(buttonBack, LV_BTN_STATE_REL, &tft_style_label_rel);
|
||||
|
||||
lv_obj_set_pos(buttonBack, PARA_UI_BACL_POS_X, PARA_UI_BACL_POS_Y);
|
||||
lv_btn_set_layout(buttonBack, LV_LAYOUT_OFF);
|
||||
label_Back = lv_label_create(buttonBack, NULL);
|
||||
|
||||
if (gCfgItems.multiple_language != 0) {
|
||||
if (uiCfg.para_ui_page != 1) {
|
||||
lv_label_set_text(labelPrintText, machine_menu.PrintAcceleration);
|
||||
lv_obj_align(labelPrintText, buttonPrintText, LV_ALIGN_IN_LEFT_MID, 0, 0);
|
||||
|
||||
lv_label_set_text(labelRetraText, machine_menu.RetractAcceleration);
|
||||
lv_obj_align(labelRetraText, buttonRetraText, LV_ALIGN_IN_LEFT_MID, 0, 0);
|
||||
|
||||
lv_label_set_text(labelTravelText, machine_menu.TravelAcceleration);
|
||||
lv_obj_align(labelTravelText, buttonTravelText, LV_ALIGN_IN_LEFT_MID, 0, 0);
|
||||
|
||||
lv_label_set_text(labelXText, machine_menu.X_Acceleration);
|
||||
lv_obj_align(labelXText, buttonXText, LV_ALIGN_IN_LEFT_MID, 0, 0);
|
||||
|
||||
lv_label_set_text(labelTurnPage, machine_menu.next);
|
||||
lv_obj_align(labelTurnPage, buttonTurnPage, LV_ALIGN_CENTER, 0, 0);
|
||||
|
||||
ZERO(public_buf_l);
|
||||
sprintf_P(public_buf_l, PSTR("%.1f"), planner.settings.acceleration);
|
||||
lv_label_set_text(labelPrintValue, public_buf_l);
|
||||
lv_obj_align(labelPrintValue, buttonPrintValue, LV_ALIGN_CENTER, 0, 0);
|
||||
|
||||
ZERO(public_buf_l);
|
||||
sprintf_P(public_buf_l, PSTR("%.1f"), planner.settings.retract_acceleration);
|
||||
lv_label_set_text(labelRetraValue, public_buf_l);
|
||||
lv_obj_align(labelRetraValue, buttonRetraValue, LV_ALIGN_CENTER, 0, 0);
|
||||
|
||||
ZERO(public_buf_l);
|
||||
sprintf_P(public_buf_l, PSTR("%.1f"), planner.settings.travel_acceleration);
|
||||
lv_label_set_text(labelTravelValue, public_buf_l);
|
||||
lv_obj_align(labelTravelValue, buttonTravelValue, LV_ALIGN_CENTER, 0, 0);
|
||||
|
||||
ZERO(public_buf_l);
|
||||
sprintf_P(public_buf_l, PSTR("%d"), (int)planner.settings.max_acceleration_mm_per_s2[X_AXIS]);
|
||||
lv_label_set_text(labelXValue, public_buf_l);
|
||||
lv_obj_align(labelXValue, buttonXValue, LV_ALIGN_CENTER, 0, 0);
|
||||
}
|
||||
else {
|
||||
lv_label_set_text(labelYText, machine_menu.Y_Acceleration);
|
||||
lv_obj_align(labelYText, buttonYText, LV_ALIGN_IN_LEFT_MID, 0, 0);
|
||||
|
||||
lv_label_set_text(labelZText, machine_menu.Z_Acceleration);
|
||||
lv_obj_align(labelZText, buttonZText, LV_ALIGN_IN_LEFT_MID, 0, 0);
|
||||
|
||||
lv_label_set_text(labelE0Text, machine_menu.E0_Acceleration);
|
||||
lv_obj_align(labelE0Text, buttonE0Text, LV_ALIGN_IN_LEFT_MID, 0, 0);
|
||||
|
||||
lv_label_set_text(labelE1Text, machine_menu.E1_Acceleration);
|
||||
lv_obj_align(labelE1Text, buttonE1Text, LV_ALIGN_IN_LEFT_MID, 0, 0);
|
||||
|
||||
lv_label_set_text(labelTurnPage, machine_menu.previous);
|
||||
lv_obj_align(labelTurnPage, buttonTurnPage, LV_ALIGN_CENTER, 0, 0);
|
||||
ZERO(public_buf_l);
|
||||
sprintf_P(public_buf_l, PSTR("%d"), (int)planner.settings.max_acceleration_mm_per_s2[Y_AXIS]);
|
||||
lv_label_set_text(labelYValue, public_buf_l);
|
||||
lv_obj_align(labelYValue, buttonYValue, LV_ALIGN_CENTER, 0, 0);
|
||||
|
||||
ZERO(public_buf_l);
|
||||
sprintf_P(public_buf_l, PSTR("%d"), (int)planner.settings.max_acceleration_mm_per_s2[Z_AXIS]);
|
||||
lv_label_set_text(labelZValue, public_buf_l);
|
||||
lv_obj_align(labelZValue, buttonZValue, LV_ALIGN_CENTER, 0, 0);
|
||||
|
||||
ZERO(public_buf_l);
|
||||
sprintf_P(public_buf_l, PSTR("%d"), (int)planner.settings.max_acceleration_mm_per_s2[E_AXIS]);
|
||||
lv_label_set_text(labelE0Value, public_buf_l);
|
||||
lv_obj_align(labelE0Value, buttonE0Value, LV_ALIGN_CENTER, 0, 0);
|
||||
|
||||
ZERO(public_buf_l);
|
||||
sprintf_P(public_buf_l, PSTR("%d"), (int)planner.settings.max_acceleration_mm_per_s2[E_AXIS_N(1)]);
|
||||
lv_label_set_text(labelE1Value, public_buf_l);
|
||||
lv_obj_align(labelE1Value, buttonE1Value, LV_ALIGN_CENTER, 0, 0);
|
||||
}
|
||||
|
||||
lv_label_set_text(label_Back, common_menu.text_back);
|
||||
lv_obj_align(label_Back, buttonBack, LV_ALIGN_CENTER, 0, 0);
|
||||
}
|
||||
}
|
||||
|
||||
void lv_clear_acceleration_settings() { lv_obj_del(scr); }
|
||||
|
||||
#endif // HAS_TFT_LVGL_UI
|
33
Marlin/src/lcd/extui/lib/mks_ui/draw_acceleration_settings.h
Normal file
33
Marlin/src/lcd/extui/lib/mks_ui/draw_acceleration_settings.h
Normal file
|
@ -0,0 +1,33 @@
|
|||
/**
|
||||
* Marlin 3D Printer Firmware
|
||||
* Copyright (c) 2020 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
|
||||
*
|
||||
* Based on Sprinter and grbl.
|
||||
* Copyright (c) 2011 Camiel Gubbels / Erik van der Zalm
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*
|
||||
*/
|
||||
#pragma once
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" { /* C-declarations for C++ */
|
||||
#endif
|
||||
|
||||
extern void lv_draw_acceleration_settings(void);
|
||||
extern void lv_clear_acceleration_settings();
|
||||
|
||||
#ifdef __cplusplus
|
||||
} /* C-declarations for C++ */
|
||||
#endif
|
140
Marlin/src/lcd/extui/lib/mks_ui/draw_advance_settings.cpp
Normal file
140
Marlin/src/lcd/extui/lib/mks_ui/draw_advance_settings.cpp
Normal file
|
@ -0,0 +1,140 @@
|
|||
/**
|
||||
* Marlin 3D Printer Firmware
|
||||
* Copyright (c) 2020 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
|
||||
*
|
||||
* Based on Sprinter and grbl.
|
||||
* Copyright (c) 2011 Camiel Gubbels / Erik van der Zalm
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*
|
||||
*/
|
||||
#include "../../../../inc/MarlinConfigPre.h"
|
||||
|
||||
#if HAS_TFT_LVGL_UI
|
||||
|
||||
#include "lv_conf.h"
|
||||
#include "draw_ui.h"
|
||||
|
||||
#include "../../../../MarlinCore.h"
|
||||
|
||||
static lv_obj_t * scr;
|
||||
|
||||
#define ID_ADVANCE_RETURN 1
|
||||
#define ID_PAUSE_POS 2
|
||||
#define ID_PAUSE_POS_ARROW 3
|
||||
|
||||
static void event_handler(lv_obj_t * obj, lv_event_t event) {
|
||||
switch (obj->mks_obj_id) {
|
||||
case ID_ADVANCE_RETURN:
|
||||
if (event == LV_EVENT_CLICKED) {
|
||||
|
||||
}
|
||||
else if (event == LV_EVENT_RELEASED) {
|
||||
lv_clear_advance_settings();
|
||||
draw_return_ui();
|
||||
}
|
||||
break;
|
||||
case ID_PAUSE_POS:
|
||||
if (event == LV_EVENT_CLICKED) {
|
||||
|
||||
}
|
||||
else if (event == LV_EVENT_RELEASED) {
|
||||
lv_clear_advance_settings();
|
||||
lv_draw_pause_position();
|
||||
}
|
||||
break;
|
||||
case ID_PAUSE_POS_ARROW:
|
||||
if (event == LV_EVENT_CLICKED) {
|
||||
|
||||
}
|
||||
else if (event == LV_EVENT_RELEASED) {
|
||||
lv_clear_advance_settings();
|
||||
lv_draw_pause_position();
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
void lv_draw_advance_settings(void) {
|
||||
lv_obj_t *buttonBack, *label_Back;
|
||||
lv_obj_t *buttonPausePos, *labelPausePos, *buttonPausePosNarrow;
|
||||
lv_obj_t * line1;
|
||||
if (disp_state_stack._disp_state[disp_state_stack._disp_index] != ADVANCED_UI) {
|
||||
disp_state_stack._disp_index++;
|
||||
disp_state_stack._disp_state[disp_state_stack._disp_index] = ADVANCED_UI;
|
||||
}
|
||||
disp_state = ADVANCED_UI;
|
||||
|
||||
scr = lv_obj_create(NULL, NULL);
|
||||
|
||||
lv_obj_set_style(scr, &tft_style_scr);
|
||||
lv_scr_load(scr);
|
||||
lv_obj_clean(scr);
|
||||
|
||||
lv_obj_t * title = lv_label_create(scr, NULL);
|
||||
lv_obj_set_style(title, &tft_style_label_rel);
|
||||
lv_obj_set_pos(title, TITLE_XPOS, TITLE_YPOS);
|
||||
lv_label_set_text(title, machine_menu.AdvancedConfTitle);
|
||||
|
||||
lv_refr_now(lv_refr_get_disp_refreshing());
|
||||
|
||||
LV_IMG_DECLARE(bmp_para_back);
|
||||
LV_IMG_DECLARE(bmp_para_arrow);
|
||||
|
||||
buttonPausePos = lv_btn_create(scr, NULL); /*Add a button the current screen*/
|
||||
lv_obj_set_pos(buttonPausePos, PARA_UI_POS_X, PARA_UI_POS_Y); /*Set its position*/
|
||||
lv_obj_set_size(buttonPausePos, PARA_UI_SIZE_X, PARA_UI_SIZE_Y); /*Set its size*/
|
||||
// lv_obj_set_event_cb(buttonMachine, event_handler);
|
||||
lv_obj_set_event_cb_mks(buttonPausePos, event_handler, ID_PAUSE_POS, NULL, 0);
|
||||
lv_btn_set_style(buttonPausePos, LV_BTN_STYLE_REL, &tft_style_label_rel); /*Set the button's released style*/
|
||||
lv_btn_set_style(buttonPausePos, LV_BTN_STYLE_PR, &tft_style_label_pre); /*Set the button's pressed style*/
|
||||
lv_btn_set_layout(buttonPausePos, LV_LAYOUT_OFF);
|
||||
labelPausePos = lv_label_create(buttonPausePos, NULL); /*Add a label to the button*/
|
||||
|
||||
buttonPausePosNarrow = lv_imgbtn_create(scr, NULL);
|
||||
lv_obj_set_pos(buttonPausePosNarrow, PARA_UI_POS_X + PARA_UI_SIZE_X, PARA_UI_POS_Y + PARA_UI_ARROW_V);
|
||||
lv_obj_set_event_cb_mks(buttonPausePosNarrow, event_handler, ID_PAUSE_POS_ARROW, "bmp_arrow.bin", 0);
|
||||
lv_imgbtn_set_src(buttonPausePosNarrow, LV_BTN_STATE_REL, &bmp_para_arrow);
|
||||
lv_imgbtn_set_src(buttonPausePosNarrow, LV_BTN_STATE_PR, &bmp_para_arrow);
|
||||
lv_imgbtn_set_style(buttonPausePosNarrow, LV_BTN_STATE_PR, &tft_style_label_pre);
|
||||
lv_imgbtn_set_style(buttonPausePosNarrow, LV_BTN_STATE_REL, &tft_style_label_rel);
|
||||
lv_btn_set_layout(buttonPausePosNarrow, LV_LAYOUT_OFF);
|
||||
|
||||
line1 = lv_line_create(lv_scr_act(), NULL);
|
||||
lv_ex_line(line1, line_points[0]);
|
||||
|
||||
buttonBack = lv_imgbtn_create(scr, NULL);
|
||||
lv_obj_set_event_cb_mks(buttonBack, event_handler, ID_ADVANCE_RETURN, "bmp_back70x40.bin", 0);
|
||||
lv_imgbtn_set_src(buttonBack, LV_BTN_STATE_REL, &bmp_para_back);
|
||||
lv_imgbtn_set_src(buttonBack, LV_BTN_STATE_PR, &bmp_para_back);
|
||||
lv_imgbtn_set_style(buttonBack, LV_BTN_STATE_PR, &tft_style_label_pre);
|
||||
lv_imgbtn_set_style(buttonBack, LV_BTN_STATE_REL, &tft_style_label_rel);
|
||||
|
||||
lv_obj_set_pos(buttonBack, PARA_UI_BACL_POS_X, PARA_UI_BACL_POS_Y);
|
||||
lv_btn_set_layout(buttonBack, LV_LAYOUT_OFF);
|
||||
label_Back = lv_label_create(buttonBack, NULL);
|
||||
|
||||
if (gCfgItems.multiple_language != 0) {
|
||||
lv_label_set_text(label_Back, common_menu.text_back);
|
||||
lv_obj_align(label_Back, buttonBack, LV_ALIGN_CENTER, 0, 0);
|
||||
|
||||
lv_label_set_text(labelPausePos, machine_menu.PausePosition);
|
||||
lv_obj_align(labelPausePos, buttonPausePos, LV_ALIGN_IN_LEFT_MID, 0, 0);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
void lv_clear_advance_settings() { lv_obj_del(scr); }
|
||||
|
||||
#endif // HAS_TFT_LVGL_UI
|
33
Marlin/src/lcd/extui/lib/mks_ui/draw_advance_settings.h
Normal file
33
Marlin/src/lcd/extui/lib/mks_ui/draw_advance_settings.h
Normal file
|
@ -0,0 +1,33 @@
|
|||
/**
|
||||
* Marlin 3D Printer Firmware
|
||||
* Copyright (c) 2020 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
|
||||
*
|
||||
* Based on Sprinter and grbl.
|
||||
* Copyright (c) 2011 Camiel Gubbels / Erik van der Zalm
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*
|
||||
*/
|
||||
#pragma once
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" { /* C-declarations for C++ */
|
||||
#endif
|
||||
|
||||
extern void lv_draw_advance_settings(void);
|
||||
extern void lv_clear_advance_settings();
|
||||
|
||||
#ifdef __cplusplus
|
||||
} /* C-declarations for C++ */
|
||||
#endif
|
|
@ -21,7 +21,7 @@
|
|||
*/
|
||||
#include "../../../../inc/MarlinConfigPre.h"
|
||||
|
||||
#if ENABLED(TFT_LVGL_UI)
|
||||
#if HAS_TFT_LVGL_UI
|
||||
|
||||
#include "lv_conf.h"
|
||||
#include "draw_ui.h"
|
||||
|
@ -169,7 +169,7 @@ void lv_draw_change_speed(void) {
|
|||
lv_obj_clean(scr);
|
||||
|
||||
lv_obj_t * title = lv_label_create(scr, NULL);
|
||||
lv_obj_set_style(title, &tft_style_lable_rel);
|
||||
lv_obj_set_style(title, &tft_style_label_rel);
|
||||
lv_obj_set_pos(title, TITLE_XPOS, TITLE_YPOS);
|
||||
lv_label_set_text(title, creat_title_text());
|
||||
|
||||
|
@ -188,38 +188,37 @@ void lv_draw_change_speed(void) {
|
|||
lv_obj_set_event_cb_mks(buttonAdd, event_handler, ID_C_ADD, "bmp_Add.bin", 0);
|
||||
lv_imgbtn_set_src(buttonAdd, LV_BTN_STATE_REL, &bmp_pic);
|
||||
lv_imgbtn_set_src(buttonAdd, LV_BTN_STATE_PR, &bmp_pic);
|
||||
lv_imgbtn_set_style(buttonAdd, LV_BTN_STATE_PR, &tft_style_lable_pre);
|
||||
lv_imgbtn_set_style(buttonAdd, LV_BTN_STATE_REL, &tft_style_lable_rel);
|
||||
lv_imgbtn_set_style(buttonAdd, LV_BTN_STATE_PR, &tft_style_label_pre);
|
||||
lv_imgbtn_set_style(buttonAdd, LV_BTN_STATE_REL, &tft_style_label_rel);
|
||||
lv_obj_clear_protect(buttonAdd, LV_PROTECT_FOLLOW);
|
||||
|
||||
#if 1
|
||||
lv_obj_set_event_cb_mks(buttonDec, event_handler, ID_C_DEC, "bmp_Dec.bin", 0);
|
||||
lv_imgbtn_set_src(buttonDec, LV_BTN_STATE_REL, &bmp_pic);
|
||||
lv_imgbtn_set_src(buttonDec, LV_BTN_STATE_PR, &bmp_pic);
|
||||
lv_imgbtn_set_style(buttonDec, LV_BTN_STATE_PR, &tft_style_lable_pre);
|
||||
lv_imgbtn_set_style(buttonDec, LV_BTN_STATE_REL, &tft_style_lable_rel);
|
||||
|
||||
lv_imgbtn_set_style(buttonDec, LV_BTN_STATE_PR, &tft_style_label_pre);
|
||||
lv_imgbtn_set_style(buttonDec, LV_BTN_STATE_REL, &tft_style_label_rel);
|
||||
|
||||
lv_imgbtn_set_src(buttonMov, LV_BTN_STATE_REL, &bmp_pic);
|
||||
lv_imgbtn_set_src(buttonMov, LV_BTN_STATE_PR, &bmp_pic);
|
||||
lv_imgbtn_set_style(buttonMov, LV_BTN_STATE_PR, &tft_style_lable_pre);
|
||||
lv_imgbtn_set_style(buttonMov, LV_BTN_STATE_REL, &tft_style_lable_rel);
|
||||
lv_imgbtn_set_style(buttonMov, LV_BTN_STATE_PR, &tft_style_label_pre);
|
||||
lv_imgbtn_set_style(buttonMov, LV_BTN_STATE_REL, &tft_style_label_rel);
|
||||
|
||||
lv_imgbtn_set_src(buttonExt, LV_BTN_STATE_REL, &bmp_pic);
|
||||
lv_imgbtn_set_src(buttonExt, LV_BTN_STATE_PR, &bmp_pic);
|
||||
lv_imgbtn_set_style(buttonExt, LV_BTN_STATE_PR, &tft_style_lable_pre);
|
||||
lv_imgbtn_set_style(buttonExt, LV_BTN_STATE_REL, &tft_style_lable_rel);
|
||||
lv_imgbtn_set_style(buttonExt, LV_BTN_STATE_PR, &tft_style_label_pre);
|
||||
lv_imgbtn_set_style(buttonExt, LV_BTN_STATE_REL, &tft_style_label_rel);
|
||||
|
||||
lv_imgbtn_set_src(buttonStep, LV_BTN_STATE_REL, &bmp_pic);
|
||||
lv_imgbtn_set_src(buttonStep, LV_BTN_STATE_PR, &bmp_pic);
|
||||
lv_imgbtn_set_style(buttonStep, LV_BTN_STATE_PR, &tft_style_lable_pre);
|
||||
lv_imgbtn_set_style(buttonStep, LV_BTN_STATE_REL, &tft_style_lable_rel);
|
||||
lv_imgbtn_set_style(buttonStep, LV_BTN_STATE_PR, &tft_style_label_pre);
|
||||
lv_imgbtn_set_style(buttonStep, LV_BTN_STATE_REL, &tft_style_label_rel);
|
||||
|
||||
lv_obj_set_event_cb_mks(buttonBack, event_handler, ID_C_RETURN, "bmp_Return.bin", 0);
|
||||
lv_obj_set_event_cb_mks(buttonBack, event_handler, ID_C_RETURN, "bmp_return.bin", 0);
|
||||
lv_imgbtn_set_src(buttonBack, LV_BTN_STATE_REL, &bmp_pic);
|
||||
lv_imgbtn_set_src(buttonBack, LV_BTN_STATE_PR, &bmp_pic);
|
||||
lv_imgbtn_set_style(buttonBack, LV_BTN_STATE_PR, &tft_style_lable_pre);
|
||||
lv_imgbtn_set_style(buttonBack, LV_BTN_STATE_REL, &tft_style_lable_rel);
|
||||
lv_imgbtn_set_style(buttonBack, LV_BTN_STATE_PR, &tft_style_label_pre);
|
||||
lv_imgbtn_set_style(buttonBack, LV_BTN_STATE_REL, &tft_style_label_rel);
|
||||
#endif
|
||||
|
||||
lv_obj_set_pos(buttonAdd, INTERVAL_V, titleHeight);
|
||||
|
@ -258,17 +257,17 @@ void lv_draw_change_speed(void) {
|
|||
disp_speed_step();
|
||||
|
||||
printSpeedText = lv_label_create(scr, NULL);
|
||||
lv_obj_set_style(printSpeedText, &tft_style_lable_rel);
|
||||
lv_obj_set_style(printSpeedText, &tft_style_label_rel);
|
||||
disp_print_speed();
|
||||
}
|
||||
|
||||
void disp_speed_step() {
|
||||
if (uiCfg.stepPrintSpeed == 1)
|
||||
lv_obj_set_event_cb_mks(buttonStep, event_handler, ID_C_STEP, "bmp_Step1_percent.bin", 0);
|
||||
lv_obj_set_event_cb_mks(buttonStep, event_handler, ID_C_STEP, "bmp_step1_percent.bin", 0);
|
||||
else if (uiCfg.stepPrintSpeed == 5)
|
||||
lv_obj_set_event_cb_mks(buttonStep, event_handler, ID_C_STEP, "bmp_Step5_percent.bin", 0);
|
||||
lv_obj_set_event_cb_mks(buttonStep, event_handler, ID_C_STEP, "bmp_step5_percent.bin", 0);
|
||||
else if (uiCfg.stepPrintSpeed == 10)
|
||||
lv_obj_set_event_cb_mks(buttonStep, event_handler, ID_C_STEP, "bmp_Step10_percent.bin", 0);
|
||||
lv_obj_set_event_cb_mks(buttonStep, event_handler, ID_C_STEP, "bmp_step10_percent.bin", 0);
|
||||
|
||||
if (gCfgItems.multiple_language != 0) {
|
||||
if (uiCfg.stepPrintSpeed == 1) {
|
||||
|
@ -293,14 +292,14 @@ void disp_print_speed() {
|
|||
|
||||
if (speedType == 0) { // move
|
||||
strcat(public_buf_l, speed_menu.move_speed);
|
||||
strcat(public_buf_l, ": ");
|
||||
sprintf(buf, "%d%%", feedrate_percentage);
|
||||
strcat_P(public_buf_l, PSTR(": "));
|
||||
sprintf_P(buf, PSTR("%d%%"), feedrate_percentage);
|
||||
strcat(public_buf_l, buf);
|
||||
}
|
||||
else if (speedType == 1) { // e1
|
||||
strcat(public_buf_l, speed_menu.extrude_speed);
|
||||
strcat(public_buf_l, ": ");
|
||||
sprintf(buf, "%d%%", planner.flow_percentage[0]);
|
||||
strcat_P(public_buf_l, PSTR(": "));
|
||||
sprintf_P(buf, PSTR("%d%%"), planner.flow_percentage[0]);
|
||||
strcat(public_buf_l, buf);
|
||||
}
|
||||
lv_label_set_text(printSpeedText, public_buf_l);
|
||||
|
@ -311,11 +310,11 @@ void disp_speed_type() {
|
|||
switch (speedType) {
|
||||
case 1:
|
||||
lv_obj_set_event_cb_mks(buttonExt, event_handler, ID_C_EXT, "bmp_extruct_sel.bin", 0);
|
||||
lv_obj_set_event_cb_mks(buttonMov, event_handler, ID_C_MOVE, "bmp_mov_changespeed.bin", 0);
|
||||
lv_obj_set_event_cb_mks(buttonMov, event_handler, ID_C_MOVE, "bmp_mov_changeSpeed.bin", 0);
|
||||
break;
|
||||
|
||||
default:
|
||||
lv_obj_set_event_cb_mks(buttonExt, event_handler, ID_C_EXT, "bmp_Extruct.bin", 0);
|
||||
lv_obj_set_event_cb_mks(buttonExt, event_handler, ID_C_EXT, "bmp_speed_extruct.bin", 0);
|
||||
lv_obj_set_event_cb_mks(buttonMov, event_handler, ID_C_MOVE, "bmp_mov_sel.bin", 0);
|
||||
break;
|
||||
}
|
||||
|
@ -333,4 +332,4 @@ void disp_speed_type() {
|
|||
|
||||
void lv_clear_change_speed() { lv_obj_del(scr); }
|
||||
|
||||
#endif // TFT_LVGL_UI
|
||||
#endif // HAS_TFT_LVGL_UI
|
||||
|
|
|
@ -26,10 +26,11 @@
|
|||
|
||||
#include "../../../../inc/MarlinConfigPre.h"
|
||||
|
||||
#if ENABLED(TFT_LVGL_UI)
|
||||
#if HAS_TFT_LVGL_UI
|
||||
|
||||
#include "lv_conf.h"
|
||||
#include "draw_ui.h"
|
||||
|
||||
//#include "../lvgl/src/lv_objx/lv_imgbtn.h"
|
||||
//#include "../lvgl/src/lv_objx/lv_img.h"
|
||||
//#include "../lvgl/src/lv_core/lv_disp.h"
|
||||
|
@ -48,6 +49,7 @@
|
|||
#if ENABLED(PARK_HEAD_ON_PAUSE)
|
||||
#include "../../../../feature/pause.h"
|
||||
#endif
|
||||
#include "../../../../gcode/gcode.h"
|
||||
|
||||
static lv_obj_t * scr;
|
||||
extern uint8_t sel_id;
|
||||
|
@ -122,10 +124,7 @@ static void btn_ok_event_cb(lv_obj_t * btn, lv_event_t event) {
|
|||
//#if ENABLED(POWER_LOSS_RECOVERY)
|
||||
// recovery.purge();
|
||||
//#endif
|
||||
//queue.enqueue_one_now(PSTR("G91"));
|
||||
//queue.enqueue_one_now(PSTR("G1 Z10"));
|
||||
//queue.enqueue_one_now(PSTR("G90"));
|
||||
//queue.enqueue_one_now(PSTR("G28 X0 Y0"));
|
||||
//queue.enqueue_now_P(PSTR("G91\nG1 Z10\nG90\nG28 X0 Y0"));
|
||||
//queue.inject_P(PSTR("G91\nG1 Z10\nG90\nG28 X0 Y0\nM84\nM107"));
|
||||
#endif
|
||||
}
|
||||
|
@ -148,6 +147,21 @@ static void btn_ok_event_cb(lv_obj_t * btn, lv_event_t event) {
|
|||
draw_return_ui();
|
||||
}
|
||||
#endif
|
||||
else if (DialogType == DIALOG_STORE_EEPROM_TIPS) {
|
||||
gcode.process_subcommands_now_P(PSTR("M500"));
|
||||
clear_cur_ui();
|
||||
draw_return_ui();
|
||||
}
|
||||
else if (DialogType == DIALOG_READ_EEPROM_TIPS) {
|
||||
gcode.process_subcommands_now_P(PSTR("M501"));
|
||||
clear_cur_ui();
|
||||
draw_return_ui();
|
||||
}
|
||||
else if (DialogType == DIALOG_REVERT_EEPROM_TIPS) {
|
||||
gcode.process_subcommands_now_P(PSTR("M502"));
|
||||
clear_cur_ui();
|
||||
draw_return_ui();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -186,7 +200,7 @@ void lv_draw_dialog(uint8_t type) {
|
|||
lv_obj_clean(scr);
|
||||
|
||||
lv_obj_t * title = lv_label_create(scr, NULL);
|
||||
lv_obj_set_style(title, &tft_style_lable_rel);
|
||||
lv_obj_set_style(title, &tft_style_label_rel);
|
||||
lv_obj_set_pos(title, TITLE_XPOS, TITLE_YPOS);
|
||||
lv_label_set_text(title, creat_title_text());
|
||||
|
||||
|
@ -204,7 +218,7 @@ void lv_draw_dialog(uint8_t type) {
|
|||
style_btn_rel.body.shadow.type = LV_SHADOW_BOTTOM;
|
||||
style_btn_rel.body.radius = LV_RADIUS_CIRCLE;
|
||||
style_btn_rel.text.color = lv_color_hex3(0xDEF);
|
||||
style_btn_rel.text.font = &lv_font_roboto_22;
|
||||
style_btn_rel.text.font = &TERN(HAS_SPI_FLASH_FONT, gb2312_puhui32, lv_font_roboto_22);
|
||||
|
||||
static lv_style_t style_btn_pr; // A variable to store the pressed style
|
||||
lv_style_copy(&style_btn_pr, &style_btn_rel); // Initialize from the released style
|
||||
|
@ -213,10 +227,10 @@ void lv_draw_dialog(uint8_t type) {
|
|||
style_btn_pr.body.grad_color = lv_color_hex3(0x24A);
|
||||
style_btn_pr.body.shadow.width = 2;
|
||||
style_btn_pr.text.color = lv_color_hex3(0xBCD);
|
||||
style_btn_pr.text.font = &lv_font_roboto_22;
|
||||
style_btn_pr.text.font = &TERN(HAS_SPI_FLASH_FONT, gb2312_puhui32, lv_font_roboto_22);
|
||||
|
||||
lv_obj_t * labelDialog = lv_label_create(scr, NULL);
|
||||
lv_obj_set_style(labelDialog, &tft_style_lable_rel);
|
||||
lv_obj_set_style(labelDialog, &tft_style_label_rel);
|
||||
|
||||
if (DialogType == DIALOG_TYPE_FINISH_PRINT || DialogType == DIALOG_PAUSE_MESSAGE_RESUME) {
|
||||
lv_obj_t * btnOk = lv_btn_create(scr, NULL); // Add a button the current screen
|
||||
|
@ -230,7 +244,8 @@ void lv_draw_dialog(uint8_t type) {
|
|||
}
|
||||
else if (DialogType == DIALOG_PAUSE_MESSAGE_WAITING
|
||||
|| DialogType == DIALOG_PAUSE_MESSAGE_INSERT
|
||||
|| DialogType == DIALOG_PAUSE_MESSAGE_HEAT) {
|
||||
|| DialogType == DIALOG_PAUSE_MESSAGE_HEAT
|
||||
) {
|
||||
lv_obj_t * btnOk = lv_btn_create(scr, NULL); // Add a button the current screen
|
||||
lv_obj_set_pos(btnOk, BTN_OK_X + 90, BTN_OK_Y); // Set its position
|
||||
lv_obj_set_size(btnOk, 100, 50); // Set its size
|
||||
|
@ -281,7 +296,7 @@ void lv_draw_dialog(uint8_t type) {
|
|||
lv_obj_align(labelDialog, NULL, LV_ALIGN_CENTER, 0, -20);
|
||||
|
||||
lv_obj_t * labelFile = lv_label_create(scr, NULL);
|
||||
lv_obj_set_style(labelFile, &tft_style_lable_rel);
|
||||
lv_obj_set_style(labelFile, &tft_style_label_rel);
|
||||
|
||||
lv_label_set_text(labelFile, list_file.long_name[sel_id]);
|
||||
lv_obj_align(labelFile, NULL, LV_ALIGN_CENTER, 0, -60);
|
||||
|
@ -338,8 +353,20 @@ void lv_draw_dialog(uint8_t type) {
|
|||
lv_label_set_text(labelDialog, pause_msg_menu.option);
|
||||
lv_obj_align(labelDialog, NULL, LV_ALIGN_CENTER, 0, -20);
|
||||
}
|
||||
else if (DialogType == DIALOG_STORE_EEPROM_TIPS) {
|
||||
lv_label_set_text(labelDialog, eeprom_menu.storeTips);
|
||||
lv_obj_align(labelDialog, NULL, LV_ALIGN_CENTER, 0, -20);
|
||||
}
|
||||
else if (DialogType == DIALOG_READ_EEPROM_TIPS) {
|
||||
lv_label_set_text(labelDialog, eeprom_menu.readTips);
|
||||
lv_obj_align(labelDialog, NULL, LV_ALIGN_CENTER, 0, -20);
|
||||
}
|
||||
else if (DialogType == DIALOG_REVERT_EEPROM_TIPS) {
|
||||
lv_label_set_text(labelDialog, eeprom_menu.revertTips);
|
||||
lv_obj_align(labelDialog, NULL, LV_ALIGN_CENTER, 0, -20);
|
||||
}
|
||||
}
|
||||
|
||||
void lv_clear_dialog() { lv_obj_del(scr); }
|
||||
|
||||
#endif // TFT_LVGL_UI
|
||||
#endif // HAS_TFT_LVGL_UI
|
||||
|
|
|
@ -30,7 +30,7 @@ extern "C" { /* C-declarations for C++ */
|
|||
#define DIALOG_TYPE_REPRINT_NO_FILE 2
|
||||
|
||||
#define DIALOG_TYPE_M80_FAIL 3 //**
|
||||
#define DIALOG_TYPE_MESSEGE_ERR1 4 //**
|
||||
#define DIALOG_TYPE_MESSAGE_ERR1 4 //**
|
||||
|
||||
#define DIALOG_TYPE_UPDATE_ESP_FIRMARE 5
|
||||
#define DIALOG_TYPE_UPDATE_ESP_DATA 6
|
||||
|
@ -65,6 +65,10 @@ extern "C" { /* C-declarations for C++ */
|
|||
#define DIALOG_PAUSE_MESSAGE_HEATING 30
|
||||
#define DIALOG_PAUSE_MESSAGE_OPTION 31
|
||||
|
||||
#define DIALOG_STORE_EEPROM_TIPS 32
|
||||
#define DIALOG_READ_EEPROM_TIPS 33
|
||||
#define DIALOG_REVERT_EEPROM_TIPS 34
|
||||
|
||||
#define BTN_OK_X 100
|
||||
#define BTN_OK_Y 180
|
||||
#define BTN_CANCEL_X 280
|
||||
|
|
237
Marlin/src/lcd/extui/lib/mks_ui/draw_eeprom_settings.cpp
Normal file
237
Marlin/src/lcd/extui/lib/mks_ui/draw_eeprom_settings.cpp
Normal file
|
@ -0,0 +1,237 @@
|
|||
/**
|
||||
* Marlin 3D Printer Firmware
|
||||
* Copyright (c) 2020 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
|
||||
*
|
||||
* Based on Sprinter and grbl.
|
||||
* Copyright (c) 2011 Camiel Gubbels / Erik van der Zalm
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*
|
||||
*/
|
||||
#include "../../../../inc/MarlinConfigPre.h"
|
||||
|
||||
#if HAS_TFT_LVGL_UI
|
||||
|
||||
#include "lv_conf.h"
|
||||
#include "draw_ui.h"
|
||||
|
||||
#include "../../../../MarlinCore.h"
|
||||
|
||||
static lv_obj_t * scr;
|
||||
|
||||
#define ID_EEPROM_RETURN 1
|
||||
#define ID_EEPROM_STORE 2
|
||||
#define ID_EEPROM_STORE_ARROW 3
|
||||
#define ID_EEPROM_READ 4
|
||||
#define ID_EEPROM_READ_ARROW 5
|
||||
#define ID_EEPROM_REVERT 6
|
||||
#define ID_EEPROM_REVERT_ARROW 7
|
||||
|
||||
static void event_handler(lv_obj_t * obj, lv_event_t event) {
|
||||
switch (obj->mks_obj_id) {
|
||||
case ID_EEPROM_RETURN:
|
||||
if (event == LV_EVENT_CLICKED) {
|
||||
}
|
||||
else if (event == LV_EVENT_RELEASED) {
|
||||
lv_clear_eeprom_settings();
|
||||
draw_return_ui();
|
||||
}
|
||||
break;
|
||||
|
||||
#if 0
|
||||
case ID_EEPROM_STORE:
|
||||
if (event == LV_EVENT_CLICKED) {
|
||||
|
||||
}
|
||||
else if (event == LV_EVENT_RELEASED) {
|
||||
lv_clear_eeprom_settings();
|
||||
lv_draw_dialog(DIALOG_STORE_EEPROM_TIPS);
|
||||
}
|
||||
break;
|
||||
case ID_EEPROM_STORE_ARROW:
|
||||
if (event == LV_EVENT_CLICKED) {
|
||||
|
||||
}
|
||||
else if (event == LV_EVENT_RELEASED) {
|
||||
lv_clear_eeprom_settings();
|
||||
lv_draw_dialog(DIALOG_STORE_EEPROM_TIPS);
|
||||
}
|
||||
break;
|
||||
case ID_EEPROM_READ:
|
||||
if (event == LV_EVENT_CLICKED) {
|
||||
|
||||
}
|
||||
else if (event == LV_EVENT_RELEASED) {
|
||||
lv_clear_eeprom_settings();
|
||||
lv_draw_dialog(DIALOG_READ_EEPROM_TIPS);
|
||||
}
|
||||
break;
|
||||
case ID_EEPROM_READ_ARROW:
|
||||
if (event == LV_EVENT_CLICKED) {
|
||||
|
||||
}
|
||||
else if (event == LV_EVENT_RELEASED) {
|
||||
lv_clear_eeprom_settings();
|
||||
lv_draw_dialog(DIALOG_READ_EEPROM_TIPS);
|
||||
}
|
||||
break;
|
||||
#endif
|
||||
|
||||
case ID_EEPROM_REVERT:
|
||||
if (event == LV_EVENT_CLICKED) {
|
||||
|
||||
}
|
||||
else if (event == LV_EVENT_RELEASED) {
|
||||
lv_clear_eeprom_settings();
|
||||
lv_draw_dialog(DIALOG_REVERT_EEPROM_TIPS);
|
||||
}
|
||||
break;
|
||||
case ID_EEPROM_REVERT_ARROW:
|
||||
if (event == LV_EVENT_CLICKED) {
|
||||
|
||||
}
|
||||
else if (event == LV_EVENT_RELEASED) {
|
||||
lv_clear_eeprom_settings();
|
||||
lv_draw_dialog(DIALOG_REVERT_EEPROM_TIPS);
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
void lv_draw_eeprom_settings(void) {
|
||||
lv_obj_t *buttonBack, *label_Back;
|
||||
//lv_obj_t *buttonStore,*labelStore,*buttonStoreNarrow;
|
||||
//lv_obj_t *buttonRead,*labelRead,*buttonReadNarrow;
|
||||
lv_obj_t *buttonRevert, *labelRevert, *buttonRevertNarrow;
|
||||
lv_obj_t * line1; // * line2,* line3;
|
||||
if (disp_state_stack._disp_state[disp_state_stack._disp_index] != EEPROM_SETTINGS_UI) {
|
||||
disp_state_stack._disp_index++;
|
||||
disp_state_stack._disp_state[disp_state_stack._disp_index] = EEPROM_SETTINGS_UI;
|
||||
}
|
||||
disp_state = EEPROM_SETTINGS_UI;
|
||||
|
||||
scr = lv_obj_create(NULL, NULL);
|
||||
|
||||
lv_obj_set_style(scr, &tft_style_scr);
|
||||
lv_scr_load(scr);
|
||||
lv_obj_clean(scr);
|
||||
|
||||
lv_obj_t * title = lv_label_create(scr, NULL);
|
||||
lv_obj_set_style(title, &tft_style_label_rel);
|
||||
lv_obj_set_pos(title, TITLE_XPOS, TITLE_YPOS);
|
||||
lv_label_set_text(title, creat_title_text());
|
||||
|
||||
lv_refr_now(lv_refr_get_disp_refreshing());
|
||||
|
||||
LV_IMG_DECLARE(bmp_para_back);
|
||||
LV_IMG_DECLARE(bmp_para_arrow);
|
||||
#if 0
|
||||
buttonStore = lv_btn_create(scr, NULL); /*Add a button the current screen*/
|
||||
lv_obj_set_pos(buttonStore, PARA_UI_POS_X, PARA_UI_POS_Y); /*Set its position*/
|
||||
lv_obj_set_size(buttonStore, PARA_UI_SIZE_X, PARA_UI_SIZE_Y); /*Set its size*/
|
||||
//lv_obj_set_event_cb(buttonMachine, event_handler);
|
||||
lv_obj_set_event_cb_mks(buttonStore, event_handler, ID_EEPROM_STORE, NULL, 0);
|
||||
lv_btn_set_style(buttonStore, LV_BTN_STYLE_REL, &tft_style_label_rel); /*Set the button's released style*/
|
||||
lv_btn_set_style(buttonStore, LV_BTN_STYLE_PR, &tft_style_label_pre); /*Set the button's pressed style*/
|
||||
lv_btn_set_layout(buttonStore, LV_LAYOUT_OFF);
|
||||
labelStore = lv_label_create(buttonStore, NULL); /*Add a label to the button*/
|
||||
|
||||
buttonStoreNarrow = lv_imgbtn_create(scr, NULL);
|
||||
lv_obj_set_pos(buttonStoreNarrow, PARA_UI_POS_X + PARA_UI_SIZE_X, PARA_UI_POS_Y + PARA_UI_ARROW_V);
|
||||
lv_obj_set_event_cb_mks(buttonStoreNarrow, event_handler, ID_EEPROM_STORE_ARROW, "bmp_arrow.bin", 0);
|
||||
lv_imgbtn_set_src(buttonStoreNarrow, LV_BTN_STATE_REL, &bmp_para_arrow);
|
||||
lv_imgbtn_set_src(buttonStoreNarrow, LV_BTN_STATE_PR, &bmp_para_arrow);
|
||||
lv_imgbtn_set_style(buttonStoreNarrow, LV_BTN_STATE_PR, &tft_style_label_pre);
|
||||
lv_imgbtn_set_style(buttonStoreNarrow, LV_BTN_STATE_REL, &tft_style_label_rel);
|
||||
lv_btn_set_layout(buttonStoreNarrow, LV_LAYOUT_OFF);
|
||||
|
||||
line1 = lv_line_create(scr, NULL);
|
||||
lv_ex_line(line1, line_points[0]);
|
||||
|
||||
buttonRead = lv_btn_create(scr, NULL); /*Add a button the current screen*/
|
||||
lv_obj_set_pos(buttonRead, PARA_UI_POS_X, PARA_UI_POS_Y * 2); /*Set its position*/
|
||||
lv_obj_set_size(buttonRead, PARA_UI_SIZE_X, PARA_UI_SIZE_Y); /*Set its size*/
|
||||
//lv_obj_set_event_cb(buttonMotor, event_handler);
|
||||
lv_obj_set_event_cb_mks(buttonRead, event_handler, ID_EEPROM_READ, NULL, 0);
|
||||
lv_btn_set_style(buttonRead, LV_BTN_STYLE_REL, &tft_style_label_rel); /*Set the button's released style*/
|
||||
lv_btn_set_style(buttonRead, LV_BTN_STYLE_PR, &tft_style_label_pre); /*Set the button's pressed style*/
|
||||
lv_btn_set_layout(buttonRead, LV_LAYOUT_OFF);
|
||||
labelRead = lv_label_create(buttonRead, NULL); /*Add a label to the button*/
|
||||
|
||||
buttonReadNarrow = lv_imgbtn_create(scr, NULL);
|
||||
lv_obj_set_pos(buttonReadNarrow, PARA_UI_POS_X + PARA_UI_SIZE_X, PARA_UI_POS_Y * 2 + PARA_UI_ARROW_V);
|
||||
lv_obj_set_event_cb_mks(buttonReadNarrow, event_handler, ID_EEPROM_READ_ARROW, "bmp_arrow.bin", 0);
|
||||
lv_imgbtn_set_src(buttonReadNarrow, LV_BTN_STATE_REL, &bmp_para_arrow);
|
||||
lv_imgbtn_set_src(buttonReadNarrow, LV_BTN_STATE_PR, &bmp_para_arrow);
|
||||
lv_imgbtn_set_style(buttonReadNarrow, LV_BTN_STATE_PR, &tft_style_label_pre);
|
||||
lv_imgbtn_set_style(buttonReadNarrow, LV_BTN_STATE_REL, &tft_style_label_rel);
|
||||
lv_btn_set_layout(buttonReadNarrow, LV_LAYOUT_OFF);
|
||||
|
||||
line2 = lv_line_create(scr, NULL);
|
||||
lv_ex_line(line2, line_points[1]);
|
||||
#endif // if 0
|
||||
buttonRevert = lv_btn_create(scr, NULL); /*Add a button the current screen*/
|
||||
lv_obj_set_pos(buttonRevert, PARA_UI_POS_X, PARA_UI_POS_Y); /*Set its position*/
|
||||
lv_obj_set_size(buttonRevert, PARA_UI_SIZE_X, PARA_UI_SIZE_Y); /*Set its size*/
|
||||
//lv_obj_set_event_cb(buttonMotor, event_handler);
|
||||
lv_obj_set_event_cb_mks(buttonRevert, event_handler, ID_EEPROM_REVERT, NULL, 0);
|
||||
lv_btn_set_style(buttonRevert, LV_BTN_STYLE_REL, &tft_style_label_rel); /*Set the button's released style*/
|
||||
lv_btn_set_style(buttonRevert, LV_BTN_STYLE_PR, &tft_style_label_pre); /*Set the button's pressed style*/
|
||||
lv_btn_set_layout(buttonRevert, LV_LAYOUT_OFF);
|
||||
labelRevert = lv_label_create(buttonRevert, NULL); /*Add a label to the button*/
|
||||
|
||||
buttonRevertNarrow = lv_imgbtn_create(scr, NULL);
|
||||
lv_obj_set_pos(buttonRevertNarrow, PARA_UI_POS_X + PARA_UI_SIZE_X, PARA_UI_POS_Y + PARA_UI_ARROW_V);
|
||||
lv_obj_set_event_cb_mks(buttonRevertNarrow, event_handler, ID_EEPROM_REVERT_ARROW, "bmp_arrow.bin", 0);
|
||||
lv_imgbtn_set_src(buttonRevertNarrow, LV_BTN_STATE_REL, &bmp_para_arrow);
|
||||
lv_imgbtn_set_src(buttonRevertNarrow, LV_BTN_STATE_PR, &bmp_para_arrow);
|
||||
lv_imgbtn_set_style(buttonRevertNarrow, LV_BTN_STATE_PR, &tft_style_label_pre);
|
||||
lv_imgbtn_set_style(buttonRevertNarrow, LV_BTN_STATE_REL, &tft_style_label_rel);
|
||||
lv_btn_set_layout(buttonRevertNarrow, LV_LAYOUT_OFF);
|
||||
|
||||
//line3 = lv_line_create(scr, NULL);
|
||||
//lv_ex_line(line3,line_points[2]);
|
||||
line1 = lv_line_create(scr, NULL);
|
||||
lv_ex_line(line1, line_points[0]);
|
||||
|
||||
buttonBack = lv_imgbtn_create(scr, NULL);
|
||||
lv_obj_set_event_cb_mks(buttonBack, event_handler, ID_EEPROM_RETURN, "bmp_back70x40.bin", 0);
|
||||
lv_imgbtn_set_src(buttonBack, LV_BTN_STATE_REL, &bmp_para_back);
|
||||
lv_imgbtn_set_src(buttonBack, LV_BTN_STATE_PR, &bmp_para_back);
|
||||
lv_imgbtn_set_style(buttonBack, LV_BTN_STATE_PR, &tft_style_label_pre);
|
||||
lv_imgbtn_set_style(buttonBack, LV_BTN_STATE_REL, &tft_style_label_rel);
|
||||
|
||||
lv_obj_set_pos(buttonBack, PARA_UI_BACL_POS_X, PARA_UI_BACL_POS_Y);
|
||||
lv_btn_set_layout(buttonBack, LV_LAYOUT_OFF);
|
||||
label_Back = lv_label_create(buttonBack, NULL);
|
||||
|
||||
if (gCfgItems.multiple_language != 0) {
|
||||
lv_label_set_text(label_Back, common_menu.text_back);
|
||||
lv_obj_align(label_Back, buttonBack, LV_ALIGN_CENTER, 0, 0);
|
||||
|
||||
//lv_label_set_text(labelStore, eeprom_menu.store);
|
||||
//lv_obj_align(labelStore, buttonStore, LV_ALIGN_IN_LEFT_MID,0, 0);
|
||||
|
||||
//lv_label_set_text(labelRead, eeprom_menu.read);
|
||||
//lv_obj_align(labelRead, buttonRead, LV_ALIGN_IN_LEFT_MID,0, 0);
|
||||
|
||||
lv_label_set_text(labelRevert, eeprom_menu.revert);
|
||||
lv_obj_align(labelRevert, buttonRevert, LV_ALIGN_IN_LEFT_MID, 0, 0);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
void lv_clear_eeprom_settings() { lv_obj_del(scr); }
|
||||
|
||||
#endif // HAS_TFT_LVGL_UI
|
33
Marlin/src/lcd/extui/lib/mks_ui/draw_eeprom_settings.h
Normal file
33
Marlin/src/lcd/extui/lib/mks_ui/draw_eeprom_settings.h
Normal file
|
@ -0,0 +1,33 @@
|
|||
/**
|
||||
* Marlin 3D Printer Firmware
|
||||
* Copyright (c) 2020 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
|
||||
*
|
||||
* Based on Sprinter and grbl.
|
||||
* Copyright (c) 2011 Camiel Gubbels / Erik van der Zalm
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*
|
||||
*/
|
||||
#pragma once
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" { /* C-declarations for C++ */
|
||||
#endif
|
||||
|
||||
extern void lv_draw_eeprom_settings(void);
|
||||
extern void lv_clear_eeprom_settings();
|
||||
|
||||
#ifdef __cplusplus
|
||||
} /* C-declarations for C++ */
|
||||
#endif
|
|
@ -21,7 +21,11 @@
|
|||
*/
|
||||
#include "../../../../inc/MarlinConfigPre.h"
|
||||
|
||||
#if ENABLED(TFT_LVGL_UI)
|
||||
#if HAS_TFT_LVGL_UI
|
||||
|
||||
#if ENABLED(TFT_LVGL_UI_SPI)
|
||||
#include "SPI_TFT.h"
|
||||
#endif
|
||||
|
||||
#include "lv_conf.h"
|
||||
#include "draw_ui.h"
|
||||
|
@ -55,30 +59,30 @@ void lv_draw_error_message(PGM_P const msg) {
|
|||
|
||||
if (msg) {
|
||||
message = lv_label_create(scr, NULL);
|
||||
lv_obj_set_style(message, &tft_style_lable_rel);
|
||||
lv_obj_set_style(message, &tft_style_label_rel);
|
||||
lv_label_set_text(message, msg);
|
||||
lv_obj_align(message, NULL, LV_ALIGN_CENTER, 0, -50);
|
||||
}
|
||||
|
||||
kill_message = lv_label_create(scr, NULL);
|
||||
lv_obj_set_style(kill_message, &tft_style_lable_rel);
|
||||
lv_obj_set_style(kill_message, &tft_style_label_rel);
|
||||
lv_label_set_text(kill_message, "PRINTER HALTED");
|
||||
lv_obj_align(kill_message, NULL, LV_ALIGN_CENTER, 0, -10);
|
||||
|
||||
reset_tips = lv_label_create(scr, NULL);
|
||||
lv_obj_set_style(reset_tips, &tft_style_lable_rel);
|
||||
lv_obj_set_style(reset_tips, &tft_style_label_rel);
|
||||
lv_label_set_text(reset_tips, "Please Reset");
|
||||
lv_obj_align(reset_tips, NULL, LV_ALIGN_CENTER, 0, 30);
|
||||
|
||||
lv_task_handler();
|
||||
#endif
|
||||
LCD_Clear(0x0000);
|
||||
|
||||
TERN(TFT_LVGL_UI_SPI, SPI_TFT.LCD_clear, LCD_Clear)(0x0000);
|
||||
if (msg) disp_string((TFT_WIDTH - strlen(msg) * 16) / 2, 100, msg, 0xFFFF, 0x0000);
|
||||
disp_string((TFT_WIDTH - strlen("PRINTER HALTED") * 16) / 2, 140, "PRINTER HALTED", 0xFFFF, 0x0000);
|
||||
disp_string((TFT_WIDTH - strlen("Please Reset") * 16) / 2, 180, "Please Reset", 0xFFFF, 0x0000);
|
||||
|
||||
}
|
||||
|
||||
void lv_clear_error_message() { lv_obj_del(scr); }
|
||||
|
||||
#endif // TFT_LVGL_UI
|
||||
#endif // HAS_TFT_LVGL_UI
|
||||
|
|
|
@ -21,7 +21,7 @@
|
|||
*/
|
||||
#include "../../../../inc/MarlinConfigPre.h"
|
||||
|
||||
#if ENABLED(TFT_LVGL_UI)
|
||||
#if HAS_TFT_LVGL_UI
|
||||
|
||||
#include "lv_conf.h"
|
||||
#include "draw_ui.h"
|
||||
|
@ -59,11 +59,11 @@ static void event_handler(lv_obj_t * obj, lv_event_t event) {
|
|||
}
|
||||
else if (event == LV_EVENT_RELEASED) {
|
||||
if (thermalManager.temp_hotend[uiCfg.curSprayerChoose].celsius >= EXTRUDE_MINTEMP) {
|
||||
queue.enqueue_one_now(PSTR("G91"));
|
||||
memset(public_buf_l, 0, sizeof(public_buf_l));
|
||||
sprintf((char *)public_buf_l, "G1 E%d F%d", uiCfg.extruStep, 60 * uiCfg.extruSpeed);
|
||||
queue.enqueue_one_now(PSTR(public_buf_l));
|
||||
queue.enqueue_one_now(PSTR("G90"));
|
||||
queue.enqueue_now_P(PSTR("G91"));
|
||||
ZERO(public_buf_l);
|
||||
sprintf_P((char *)public_buf_l, PSTR("G1 E%d F%d"), uiCfg.extruStep, 60 * uiCfg.extruSpeed);
|
||||
queue.enqueue_one_now(public_buf_l);
|
||||
queue.enqueue_now_P(PSTR("G90"));
|
||||
extructAmount += uiCfg.extruStep;
|
||||
disp_extru_amount();
|
||||
}
|
||||
|
@ -75,11 +75,11 @@ static void event_handler(lv_obj_t * obj, lv_event_t event) {
|
|||
}
|
||||
else if (event == LV_EVENT_RELEASED) {
|
||||
if (thermalManager.temp_hotend[uiCfg.curSprayerChoose].celsius >= EXTRUDE_MINTEMP) {
|
||||
queue.enqueue_one_now(PSTR("G91"));
|
||||
memset(public_buf_l, 0, sizeof(public_buf_l));
|
||||
sprintf((char *)public_buf_l, "G1 E%d F%d", 0 - uiCfg.extruStep, 60 * uiCfg.extruSpeed);
|
||||
queue.enqueue_one_now(PSTR(public_buf_l));
|
||||
queue.enqueue_one_now(PSTR("G90"));
|
||||
queue.enqueue_now_P(PSTR("G91"));
|
||||
ZERO(public_buf_l);
|
||||
sprintf_P((char *)public_buf_l, PSTR("G1 E%d F%d"), 0 - uiCfg.extruStep, 60 * uiCfg.extruSpeed);
|
||||
queue.enqueue_one_now(public_buf_l);
|
||||
queue.enqueue_now_P(PSTR("G90"));
|
||||
extructAmount -= uiCfg.extruStep;
|
||||
disp_extru_amount();
|
||||
}
|
||||
|
@ -166,7 +166,7 @@ void lv_draw_extrusion(void) {
|
|||
lv_obj_clean(scr);
|
||||
|
||||
lv_obj_t * title = lv_label_create(scr, NULL);
|
||||
lv_obj_set_style(title, &tft_style_lable_rel);
|
||||
lv_obj_set_style(title, &tft_style_label_rel);
|
||||
lv_obj_set_pos(title, TITLE_XPOS, TITLE_YPOS);
|
||||
lv_label_set_text(title, creat_title_text());
|
||||
|
||||
|
@ -182,40 +182,39 @@ void lv_draw_extrusion(void) {
|
|||
buttonSpeed = lv_imgbtn_create(scr, NULL);
|
||||
buttonBack = lv_imgbtn_create(scr, NULL);
|
||||
|
||||
lv_obj_set_event_cb_mks(buttonAdd, event_handler, ID_E_ADD, "bmp_In.bin", 0);
|
||||
lv_obj_set_event_cb_mks(buttonAdd, event_handler, ID_E_ADD, "bmp_in.bin", 0);
|
||||
lv_imgbtn_set_src(buttonAdd, LV_BTN_STATE_REL, &bmp_pic);
|
||||
lv_imgbtn_set_src(buttonAdd, LV_BTN_STATE_PR, &bmp_pic);
|
||||
lv_imgbtn_set_style(buttonAdd, LV_BTN_STATE_PR, &tft_style_lable_pre);
|
||||
lv_imgbtn_set_style(buttonAdd, LV_BTN_STATE_REL, &tft_style_lable_rel);
|
||||
lv_imgbtn_set_style(buttonAdd, LV_BTN_STATE_PR, &tft_style_label_pre);
|
||||
lv_imgbtn_set_style(buttonAdd, LV_BTN_STATE_REL, &tft_style_label_rel);
|
||||
lv_obj_clear_protect(buttonAdd, LV_PROTECT_FOLLOW);
|
||||
|
||||
#if 1
|
||||
lv_obj_set_event_cb_mks(buttonDec, event_handler, ID_E_DEC, "bmp_Out.bin", 0);
|
||||
lv_obj_set_event_cb_mks(buttonDec, event_handler, ID_E_DEC, "bmp_out.bin", 0);
|
||||
lv_imgbtn_set_src(buttonDec, LV_BTN_STATE_REL, &bmp_pic);
|
||||
lv_imgbtn_set_src(buttonDec, LV_BTN_STATE_PR, &bmp_pic);
|
||||
lv_imgbtn_set_style(buttonDec, LV_BTN_STATE_PR, &tft_style_lable_pre);
|
||||
lv_imgbtn_set_style(buttonDec, LV_BTN_STATE_REL, &tft_style_lable_rel);
|
||||
lv_imgbtn_set_style(buttonDec, LV_BTN_STATE_PR, &tft_style_label_pre);
|
||||
lv_imgbtn_set_style(buttonDec, LV_BTN_STATE_REL, &tft_style_label_rel);
|
||||
|
||||
lv_imgbtn_set_src(buttoType, LV_BTN_STATE_REL, &bmp_pic);
|
||||
lv_imgbtn_set_src(buttoType, LV_BTN_STATE_PR, &bmp_pic);
|
||||
lv_imgbtn_set_style(buttoType, LV_BTN_STATE_PR, &tft_style_lable_pre);
|
||||
lv_imgbtn_set_style(buttoType, LV_BTN_STATE_REL, &tft_style_lable_rel);
|
||||
lv_imgbtn_set_style(buttoType, LV_BTN_STATE_PR, &tft_style_label_pre);
|
||||
lv_imgbtn_set_style(buttoType, LV_BTN_STATE_REL, &tft_style_label_rel);
|
||||
|
||||
lv_imgbtn_set_src(buttonStep, LV_BTN_STATE_REL, &bmp_pic);
|
||||
lv_imgbtn_set_src(buttonStep, LV_BTN_STATE_PR, &bmp_pic);
|
||||
lv_imgbtn_set_style(buttonStep, LV_BTN_STATE_PR, &tft_style_lable_pre);
|
||||
lv_imgbtn_set_style(buttonStep, LV_BTN_STATE_REL, &tft_style_lable_rel);
|
||||
lv_imgbtn_set_style(buttonStep, LV_BTN_STATE_PR, &tft_style_label_pre);
|
||||
lv_imgbtn_set_style(buttonStep, LV_BTN_STATE_REL, &tft_style_label_rel);
|
||||
|
||||
lv_imgbtn_set_src(buttonSpeed, LV_BTN_STATE_REL, &bmp_pic);
|
||||
lv_imgbtn_set_src(buttonSpeed, LV_BTN_STATE_PR, &bmp_pic);
|
||||
lv_imgbtn_set_style(buttonSpeed, LV_BTN_STATE_PR, &tft_style_lable_pre);
|
||||
lv_imgbtn_set_style(buttonSpeed, LV_BTN_STATE_REL, &tft_style_lable_rel);
|
||||
lv_imgbtn_set_style(buttonSpeed, LV_BTN_STATE_PR, &tft_style_label_pre);
|
||||
lv_imgbtn_set_style(buttonSpeed, LV_BTN_STATE_REL, &tft_style_label_rel);
|
||||
|
||||
lv_obj_set_event_cb_mks(buttonBack, event_handler, ID_E_RETURN, "bmp_Return.bin", 0);
|
||||
lv_obj_set_event_cb_mks(buttonBack, event_handler, ID_E_RETURN, "bmp_return.bin", 0);
|
||||
lv_imgbtn_set_src(buttonBack, LV_BTN_STATE_REL, &bmp_pic);
|
||||
lv_imgbtn_set_src(buttonBack, LV_BTN_STATE_PR, &bmp_pic);
|
||||
lv_imgbtn_set_style(buttonBack, LV_BTN_STATE_PR, &tft_style_lable_pre);
|
||||
lv_imgbtn_set_style(buttonBack, LV_BTN_STATE_REL, &tft_style_lable_rel);
|
||||
lv_imgbtn_set_style(buttonBack, LV_BTN_STATE_PR, &tft_style_label_pre);
|
||||
lv_imgbtn_set_style(buttonBack, LV_BTN_STATE_REL, &tft_style_label_rel);
|
||||
#endif
|
||||
|
||||
lv_obj_set_pos(buttonAdd, INTERVAL_V, titleHeight);
|
||||
|
@ -256,24 +255,24 @@ void lv_draw_extrusion(void) {
|
|||
disp_ext_speed();
|
||||
|
||||
tempText = lv_label_create(scr, NULL);
|
||||
lv_obj_set_style(tempText, &tft_style_lable_rel);
|
||||
lv_obj_set_style(tempText, &tft_style_label_rel);
|
||||
disp_hotend_temp();
|
||||
|
||||
ExtruText = lv_label_create(scr, NULL);
|
||||
lv_obj_set_style(ExtruText, &tft_style_lable_rel);
|
||||
lv_obj_set_style(ExtruText, &tft_style_label_rel);
|
||||
disp_extru_amount();
|
||||
}
|
||||
|
||||
void disp_ext_type() {
|
||||
if (uiCfg.curSprayerChoose == 1) {
|
||||
lv_obj_set_event_cb_mks(buttoType, event_handler, ID_E_TYPE, "bmp_Extru2.bin", 0);
|
||||
lv_obj_set_event_cb_mks(buttoType, event_handler, ID_E_TYPE, "bmp_extru2.bin", 0);
|
||||
if (gCfgItems.multiple_language != 0) {
|
||||
lv_label_set_text(labelType, extrude_menu.ext2);
|
||||
lv_obj_align(labelType, buttoType, LV_ALIGN_IN_BOTTOM_MID, 0, BUTTON_TEXT_Y_OFFSET);
|
||||
}
|
||||
}
|
||||
else {
|
||||
lv_obj_set_event_cb_mks(buttoType, event_handler, ID_E_TYPE, "bmp_Extru1.bin", 0);
|
||||
lv_obj_set_event_cb_mks(buttoType, event_handler, ID_E_TYPE, "bmp_extru1.bin", 0);
|
||||
if (gCfgItems.multiple_language != 0) {
|
||||
lv_label_set_text(labelType, extrude_menu.ext1);
|
||||
lv_obj_align(labelType, buttoType, LV_ALIGN_IN_BOTTOM_MID, 0, BUTTON_TEXT_Y_OFFSET);
|
||||
|
@ -283,11 +282,11 @@ void disp_ext_type() {
|
|||
|
||||
void disp_ext_speed() {
|
||||
if (uiCfg.extruSpeed == 20)
|
||||
lv_obj_set_event_cb_mks(buttonSpeed, event_handler, ID_E_SPEED, "bmp_Speed_high.bin", 0);
|
||||
lv_obj_set_event_cb_mks(buttonSpeed, event_handler, ID_E_SPEED, "bmp_speed_high.bin", 0);
|
||||
else if (uiCfg.extruSpeed == 1)
|
||||
lv_obj_set_event_cb_mks(buttonSpeed, event_handler, ID_E_SPEED, "bmp_Speed_slow.bin", 0);
|
||||
lv_obj_set_event_cb_mks(buttonSpeed, event_handler, ID_E_SPEED, "bmp_speed_slow.bin", 0);
|
||||
else
|
||||
lv_obj_set_event_cb_mks(buttonSpeed, event_handler, ID_E_SPEED, "bmp_Speed_normal.bin", 0);
|
||||
lv_obj_set_event_cb_mks(buttonSpeed, event_handler, ID_E_SPEED, "bmp_speed_normal.bin", 0);
|
||||
|
||||
if (gCfgItems.multiple_language != 0) {
|
||||
if (uiCfg.extruSpeed == 20) {
|
||||
|
@ -351,11 +350,11 @@ void disp_extru_amount() {
|
|||
|
||||
void disp_ext_step() {
|
||||
if (uiCfg.extruStep == 1)
|
||||
lv_obj_set_event_cb_mks(buttonStep, event_handler, ID_E_STEP, "bmp_Step1_mm.bin", 0);
|
||||
lv_obj_set_event_cb_mks(buttonStep, event_handler, ID_E_STEP, "bmp_step1_mm.bin", 0);
|
||||
else if (uiCfg.extruStep == 5)
|
||||
lv_obj_set_event_cb_mks(buttonStep, event_handler, ID_E_STEP, "bmp_Step5_mm.bin", 0);
|
||||
lv_obj_set_event_cb_mks(buttonStep, event_handler, ID_E_STEP, "bmp_step5_mm.bin", 0);
|
||||
else if (uiCfg.extruStep == 10)
|
||||
lv_obj_set_event_cb_mks(buttonStep, event_handler, ID_E_STEP, "bmp_Step10_mm.bin", 0);
|
||||
lv_obj_set_event_cb_mks(buttonStep, event_handler, ID_E_STEP, "bmp_step10_mm.bin", 0);
|
||||
|
||||
if (gCfgItems.multiple_language != 0) {
|
||||
if (uiCfg.extruStep == 1) {
|
||||
|
@ -375,4 +374,4 @@ void disp_ext_step() {
|
|||
|
||||
void lv_clear_extrusion() { lv_obj_del(scr); }
|
||||
|
||||
#endif // TFT_LVGL_UI
|
||||
#endif // HAS_TFT_LVGL_UI
|
||||
|
|
|
@ -21,7 +21,7 @@
|
|||
*/
|
||||
#include "../../../../inc/MarlinConfigPre.h"
|
||||
|
||||
#if ENABLED(TFT_LVGL_UI)
|
||||
#if HAS_TFT_LVGL_UI
|
||||
|
||||
#include "../../../../MarlinCore.h"
|
||||
#include "lv_conf.h"
|
||||
|
@ -33,6 +33,7 @@
|
|||
#include "draw_ui.h"
|
||||
#include "../../../../module/temperature.h"
|
||||
#include "../../../../gcode/queue.h"
|
||||
#include "../../../../gcode/gcode.h"
|
||||
|
||||
static lv_obj_t * scr;
|
||||
static lv_obj_t * fanText;
|
||||
|
@ -55,9 +56,9 @@ static void event_handler(lv_obj_t * obj, lv_event_t event) {
|
|||
else if (event == LV_EVENT_RELEASED) {
|
||||
if (fanSpeed + 1 <= 255) {
|
||||
fanSpeed++;
|
||||
memset(public_buf_l, 0, sizeof(public_buf_l));
|
||||
sprintf(public_buf_l, "M106 S%d", fanSpeed);
|
||||
queue.enqueue_one_now(PSTR(public_buf_l));
|
||||
ZERO(public_buf_l);
|
||||
sprintf_P(public_buf_l, PSTR("M106 S%d"), fanSpeed);
|
||||
gcode.process_subcommands_now(public_buf_l);
|
||||
}
|
||||
}
|
||||
break;
|
||||
|
@ -68,9 +69,9 @@ static void event_handler(lv_obj_t * obj, lv_event_t event) {
|
|||
else if (event == LV_EVENT_RELEASED) {
|
||||
if (fanSpeed > 0) {
|
||||
fanSpeed--;
|
||||
memset(public_buf_l, 0, sizeof(public_buf_l));
|
||||
sprintf(public_buf_l, "M106 S%d", fanSpeed);
|
||||
queue.enqueue_one_now(PSTR(public_buf_l));
|
||||
ZERO(public_buf_l);
|
||||
sprintf_P(public_buf_l, PSTR("M106 S%d"), fanSpeed);
|
||||
gcode.process_subcommands_now(public_buf_l);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -80,7 +81,7 @@ static void event_handler(lv_obj_t * obj, lv_event_t event) {
|
|||
// nothing to do
|
||||
}
|
||||
else if (event == LV_EVENT_RELEASED) {
|
||||
queue.enqueue_one_now(PSTR("M106 S255"));
|
||||
gcode.process_subcommands_now_P(PSTR("M106 S255"));
|
||||
}
|
||||
break;
|
||||
case ID_F_MID:
|
||||
|
@ -88,7 +89,7 @@ static void event_handler(lv_obj_t * obj, lv_event_t event) {
|
|||
// nothing to do
|
||||
}
|
||||
else if (event == LV_EVENT_RELEASED) {
|
||||
queue.enqueue_one_now(PSTR("M106 S127"));
|
||||
gcode.process_subcommands_now_P(PSTR("M106 S127"));
|
||||
}
|
||||
break;
|
||||
case ID_F_OFF:
|
||||
|
@ -96,7 +97,7 @@ static void event_handler(lv_obj_t * obj, lv_event_t event) {
|
|||
// nothing to do
|
||||
}
|
||||
else if (event == LV_EVENT_RELEASED) {
|
||||
queue.enqueue_one_now(PSTR("M107"));
|
||||
gcode.process_subcommands_now_P(PSTR("M107"));
|
||||
}
|
||||
break;
|
||||
case ID_F_RETURN:
|
||||
|
@ -111,11 +112,13 @@ static void event_handler(lv_obj_t * obj, lv_event_t event) {
|
|||
}
|
||||
}
|
||||
|
||||
|
||||
void lv_draw_fan(void) {
|
||||
lv_obj_t *buttonAdd, *buttonDec, *buttonHigh, *buttonMid;
|
||||
lv_obj_t *buttonOff, *buttonBack;
|
||||
|
||||
#if HAS_FAN
|
||||
fanSpeed = thermalManager.fan_speed[0];
|
||||
#endif
|
||||
if (disp_state_stack._disp_state[disp_state_stack._disp_index] != FAN_UI) {
|
||||
disp_state_stack._disp_index++;
|
||||
disp_state_stack._disp_state[disp_state_stack._disp_index] = FAN_UI;
|
||||
|
@ -129,7 +132,7 @@ void lv_draw_fan(void) {
|
|||
lv_obj_clean(scr);
|
||||
|
||||
lv_obj_t * title = lv_label_create(scr, NULL);
|
||||
lv_obj_set_style(title, &tft_style_lable_rel);
|
||||
lv_obj_set_style(title, &tft_style_label_rel);
|
||||
lv_obj_set_pos(title, TITLE_XPOS, TITLE_YPOS);
|
||||
lv_label_set_text(title, creat_title_text());
|
||||
|
||||
|
@ -148,39 +151,39 @@ void lv_draw_fan(void) {
|
|||
lv_obj_set_event_cb_mks(buttonAdd, event_handler, ID_F_ADD, "bmp_Add.bin", 0);
|
||||
lv_imgbtn_set_src(buttonAdd, LV_BTN_STATE_REL, &bmp_pic);
|
||||
lv_imgbtn_set_src(buttonAdd, LV_BTN_STATE_PR, &bmp_pic);
|
||||
lv_imgbtn_set_style(buttonAdd, LV_BTN_STATE_PR, &tft_style_lable_pre);
|
||||
lv_imgbtn_set_style(buttonAdd, LV_BTN_STATE_REL, &tft_style_lable_rel);
|
||||
lv_imgbtn_set_style(buttonAdd, LV_BTN_STATE_PR, &tft_style_label_pre);
|
||||
lv_imgbtn_set_style(buttonAdd, LV_BTN_STATE_REL, &tft_style_label_rel);
|
||||
lv_obj_clear_protect(buttonAdd, LV_PROTECT_FOLLOW);
|
||||
#if 1
|
||||
lv_obj_set_event_cb_mks(buttonDec, event_handler, ID_F_DEC, "bmp_Dec.bin", 0);
|
||||
lv_imgbtn_set_src(buttonDec, LV_BTN_STATE_REL, &bmp_pic);
|
||||
lv_imgbtn_set_src(buttonDec, LV_BTN_STATE_PR, &bmp_pic);
|
||||
lv_imgbtn_set_style(buttonDec, LV_BTN_STATE_PR, &tft_style_lable_pre);
|
||||
lv_imgbtn_set_style(buttonDec, LV_BTN_STATE_REL, &tft_style_lable_rel);
|
||||
lv_imgbtn_set_style(buttonDec, LV_BTN_STATE_PR, &tft_style_label_pre);
|
||||
lv_imgbtn_set_style(buttonDec, LV_BTN_STATE_REL, &tft_style_label_rel);
|
||||
|
||||
lv_obj_set_event_cb_mks(buttonHigh, event_handler, ID_F_HIGH, "bmp_Speed255.bin", 0);
|
||||
lv_obj_set_event_cb_mks(buttonHigh, event_handler,ID_F_HIGH,"bmp_speed255.bin",0);
|
||||
lv_imgbtn_set_src(buttonHigh, LV_BTN_STATE_REL, &bmp_pic);
|
||||
lv_imgbtn_set_src(buttonHigh, LV_BTN_STATE_PR, &bmp_pic);
|
||||
lv_imgbtn_set_style(buttonHigh, LV_BTN_STATE_PR, &tft_style_lable_pre);
|
||||
lv_imgbtn_set_style(buttonHigh, LV_BTN_STATE_REL, &tft_style_lable_rel);
|
||||
lv_imgbtn_set_style(buttonHigh, LV_BTN_STATE_PR, &tft_style_label_pre);
|
||||
lv_imgbtn_set_style(buttonHigh, LV_BTN_STATE_REL, &tft_style_label_rel);
|
||||
|
||||
lv_obj_set_event_cb_mks(buttonMid, event_handler, ID_F_MID, "bmp_Speed127.bin", 0);
|
||||
lv_obj_set_event_cb_mks(buttonMid, event_handler,ID_F_MID,"bmp_speed127.bin",0);
|
||||
lv_imgbtn_set_src(buttonMid, LV_BTN_STATE_REL, &bmp_pic);
|
||||
lv_imgbtn_set_src(buttonMid, LV_BTN_STATE_PR, &bmp_pic);
|
||||
lv_imgbtn_set_style(buttonMid, LV_BTN_STATE_PR, &tft_style_lable_pre);
|
||||
lv_imgbtn_set_style(buttonMid, LV_BTN_STATE_REL, &tft_style_lable_rel);
|
||||
lv_imgbtn_set_style(buttonMid, LV_BTN_STATE_PR, &tft_style_label_pre);
|
||||
lv_imgbtn_set_style(buttonMid, LV_BTN_STATE_REL, &tft_style_label_rel);
|
||||
|
||||
lv_obj_set_event_cb_mks(buttonOff, event_handler, ID_F_OFF, "bmp_Speed0.bin", 0);
|
||||
lv_obj_set_event_cb_mks(buttonOff, event_handler,ID_F_OFF,"bmp_speed0.bin",0);
|
||||
lv_imgbtn_set_src(buttonOff, LV_BTN_STATE_REL, &bmp_pic);
|
||||
lv_imgbtn_set_src(buttonOff, LV_BTN_STATE_PR, &bmp_pic);
|
||||
lv_imgbtn_set_style(buttonOff, LV_BTN_STATE_PR, &tft_style_lable_pre);
|
||||
lv_imgbtn_set_style(buttonOff, LV_BTN_STATE_REL, &tft_style_lable_rel);
|
||||
lv_imgbtn_set_style(buttonOff, LV_BTN_STATE_PR, &tft_style_label_pre);
|
||||
lv_imgbtn_set_style(buttonOff, LV_BTN_STATE_REL, &tft_style_label_rel);
|
||||
|
||||
lv_obj_set_event_cb_mks(buttonBack, event_handler, ID_F_RETURN, "bmp_Return.bin", 0);
|
||||
lv_obj_set_event_cb_mks(buttonBack, event_handler,ID_F_RETURN,"bmp_return.bin",0);
|
||||
lv_imgbtn_set_src(buttonBack, LV_BTN_STATE_REL, &bmp_pic);
|
||||
lv_imgbtn_set_src(buttonBack, LV_BTN_STATE_PR, &bmp_pic);
|
||||
lv_imgbtn_set_style(buttonBack, LV_BTN_STATE_PR, &tft_style_lable_pre);
|
||||
lv_imgbtn_set_style(buttonBack, LV_BTN_STATE_REL, &tft_style_lable_rel);
|
||||
lv_imgbtn_set_style(buttonBack, LV_BTN_STATE_PR, &tft_style_label_pre);
|
||||
lv_imgbtn_set_style(buttonBack, LV_BTN_STATE_REL, &tft_style_label_rel);
|
||||
#endif
|
||||
|
||||
lv_obj_set_pos(buttonAdd, INTERVAL_V, titleHeight);
|
||||
|
@ -227,7 +230,7 @@ void lv_draw_fan(void) {
|
|||
}
|
||||
|
||||
fanText = lv_label_create(scr, NULL);
|
||||
lv_obj_set_style(fanText, &tft_style_lable_rel);
|
||||
lv_obj_set_style(fanText, &tft_style_label_rel);
|
||||
disp_fan_value();
|
||||
}
|
||||
|
||||
|
@ -235,8 +238,8 @@ void disp_fan_value() {
|
|||
char buf1[10] = {0};
|
||||
public_buf_l[0] = '\0';
|
||||
strcat(public_buf_l, fan_menu.state);
|
||||
strcat(public_buf_l, ": ");
|
||||
sprintf(buf1, "%3d", thermalManager.fan_speed[0]);
|
||||
strcat_P(public_buf_l, PSTR(": "));
|
||||
sprintf_P(buf1, PSTR("%3d"), thermalManager.fan_speed[0]);
|
||||
strcat(public_buf_l, buf1);
|
||||
lv_label_set_text(fanText, public_buf_l);
|
||||
lv_obj_align(fanText, NULL, LV_ALIGN_CENTER, 0, -65);
|
||||
|
@ -244,4 +247,4 @@ void disp_fan_value() {
|
|||
|
||||
void lv_clear_fan() { lv_obj_del(scr); }
|
||||
|
||||
#endif // TFT_LVGL_UI
|
||||
#endif // HAS_TFT_LVGL_UI
|
||||
|
|
|
@ -21,7 +21,7 @@
|
|||
*/
|
||||
#include "../../../../inc/MarlinConfigPre.h"
|
||||
|
||||
#if ENABLED(TFT_LVGL_UI)
|
||||
#if HAS_TFT_LVGL_UI
|
||||
|
||||
#include "../../../../MarlinCore.h"
|
||||
#include "draw_ready_print.h"
|
||||
|
@ -48,8 +48,6 @@ static void event_handler(lv_obj_t * obj, lv_event_t event) {
|
|||
switch (obj->mks_obj_id) {
|
||||
case ID_H_ALL:
|
||||
if (event == LV_EVENT_CLICKED) {
|
||||
|
||||
|
||||
}
|
||||
else if (event == LV_EVENT_RELEASED) {
|
||||
queue.inject_P(PSTR("G28"));
|
||||
|
@ -57,8 +55,6 @@ static void event_handler(lv_obj_t * obj, lv_event_t event) {
|
|||
break;
|
||||
case ID_H_X:
|
||||
if (event == LV_EVENT_CLICKED) {
|
||||
|
||||
|
||||
}
|
||||
else if (event == LV_EVENT_RELEASED) {
|
||||
queue.inject_P(PSTR("G28 X0"));
|
||||
|
@ -66,8 +62,6 @@ static void event_handler(lv_obj_t * obj, lv_event_t event) {
|
|||
break;
|
||||
case ID_H_Y:
|
||||
if (event == LV_EVENT_CLICKED) {
|
||||
|
||||
|
||||
}
|
||||
else if (event == LV_EVENT_RELEASED) {
|
||||
queue.inject_P(PSTR("G28 Y0"));
|
||||
|
@ -75,8 +69,6 @@ static void event_handler(lv_obj_t * obj, lv_event_t event) {
|
|||
break;
|
||||
case ID_H_Z:
|
||||
if (event == LV_EVENT_CLICKED) {
|
||||
|
||||
|
||||
}
|
||||
else if (event == LV_EVENT_RELEASED) {
|
||||
queue.inject_P(PSTR("G28 Z0"));
|
||||
|
@ -84,8 +76,6 @@ static void event_handler(lv_obj_t * obj, lv_event_t event) {
|
|||
break;
|
||||
case ID_H_OFF_ALL:
|
||||
if (event == LV_EVENT_CLICKED) {
|
||||
|
||||
|
||||
}
|
||||
else if (event == LV_EVENT_RELEASED) {
|
||||
queue.inject_P(PSTR("M84"));
|
||||
|
@ -93,8 +83,6 @@ static void event_handler(lv_obj_t * obj, lv_event_t event) {
|
|||
break;
|
||||
case ID_H_OFF_XY:
|
||||
if (event == LV_EVENT_CLICKED) {
|
||||
|
||||
|
||||
}
|
||||
else if (event == LV_EVENT_RELEASED) {
|
||||
queue.inject_P(PSTR("M84 X Y"));
|
||||
|
@ -102,7 +90,6 @@ static void event_handler(lv_obj_t * obj, lv_event_t event) {
|
|||
break;
|
||||
case ID_H_RETURN:
|
||||
if (event == LV_EVENT_CLICKED) {
|
||||
|
||||
}
|
||||
else if (event == LV_EVENT_RELEASED) {
|
||||
lv_obj_del(scr);
|
||||
|
@ -113,7 +100,6 @@ static void event_handler(lv_obj_t * obj, lv_event_t event) {
|
|||
}
|
||||
}
|
||||
|
||||
|
||||
void lv_draw_home(void) {
|
||||
lv_obj_t *buttonHomeAll, *buttonHomeX, *buttonHomeY, *buttonHomeZ;
|
||||
lv_obj_t *buttonBack;
|
||||
|
@ -134,7 +120,7 @@ void lv_draw_home(void) {
|
|||
lv_obj_clean(scr);
|
||||
|
||||
lv_obj_t * title = lv_label_create(scr, NULL);
|
||||
lv_obj_set_style(title, &tft_style_lable_rel);
|
||||
lv_obj_set_style(title, &tft_style_label_rel);
|
||||
lv_obj_set_pos(title, TITLE_XPOS, TITLE_YPOS);
|
||||
lv_label_set_text(title, creat_title_text());
|
||||
|
||||
|
@ -156,58 +142,59 @@ void lv_draw_home(void) {
|
|||
//lv_obj_set_event_cb_mks(buttonWifi, event_handler,ID_S_WIFI,"bmp_Wifi.bin",0);
|
||||
//lv_imgbtn_set_src(buttonWifi, LV_BTN_STATE_REL, &bmp_pic);
|
||||
//lv_imgbtn_set_src(buttonWifi, LV_BTN_STATE_PR, &bmp_pic);
|
||||
//lv_imgbtn_set_style(buttonWifi, LV_BTN_STATE_PR, &tft_style_lable_pre);
|
||||
//lv_imgbtn_set_style(buttonWifi, LV_BTN_STATE_REL, &tft_style_lable_rel);
|
||||
//lv_imgbtn_set_style(buttonWifi, LV_BTN_STATE_PR, &tft_style_label_pre);
|
||||
//lv_imgbtn_set_style(buttonWifi, LV_BTN_STATE_REL, &tft_style_label_rel);
|
||||
//lv_obj_clear_protect(buttonWifi, LV_PROTECT_FOLLOW);
|
||||
#if 1
|
||||
lv_obj_set_event_cb_mks(buttonHomeAll, event_handler, ID_H_ALL, "bmp_Zero.bin", 0);
|
||||
lv_obj_set_event_cb_mks(buttonHomeAll, event_handler,ID_H_ALL,"bmp_zero.bin",0);
|
||||
lv_imgbtn_set_src(buttonHomeAll, LV_BTN_STATE_REL, &bmp_pic);
|
||||
lv_imgbtn_set_src(buttonHomeAll, LV_BTN_STATE_PR, &bmp_pic);
|
||||
lv_imgbtn_set_style(buttonHomeAll, LV_BTN_STATE_PR, &tft_style_lable_pre);
|
||||
lv_imgbtn_set_style(buttonHomeAll, LV_BTN_STATE_REL, &tft_style_lable_rel);
|
||||
lv_imgbtn_set_style(buttonHomeAll, LV_BTN_STATE_PR, &tft_style_label_pre);
|
||||
lv_imgbtn_set_style(buttonHomeAll, LV_BTN_STATE_REL, &tft_style_label_rel);
|
||||
|
||||
lv_obj_set_event_cb_mks(buttonHomeX, event_handler, ID_H_X, "bmp_zeroX.bin", 0);
|
||||
lv_imgbtn_set_src(buttonHomeX, LV_BTN_STATE_REL, &bmp_pic);
|
||||
lv_imgbtn_set_src(buttonHomeX, LV_BTN_STATE_PR, &bmp_pic);
|
||||
lv_imgbtn_set_style(buttonHomeX, LV_BTN_STATE_PR, &tft_style_lable_pre);
|
||||
lv_imgbtn_set_style(buttonHomeX, LV_BTN_STATE_REL, &tft_style_lable_rel);
|
||||
lv_imgbtn_set_style(buttonHomeX, LV_BTN_STATE_PR, &tft_style_label_pre);
|
||||
lv_imgbtn_set_style(buttonHomeX, LV_BTN_STATE_REL, &tft_style_label_rel);
|
||||
|
||||
//lv_obj_set_event_cb_mks(buttonContinue, event_handler,ID_S_CONTINUE,"bmp_Breakpoint.bin",0);
|
||||
//lv_imgbtn_set_src(buttonContinue, LV_BTN_STATE_REL, &bmp_pic);
|
||||
//lv_imgbtn_set_src(buttonContinue, LV_BTN_STATE_PR, &bmp_pic);
|
||||
//lv_imgbtn_set_style(buttonContinue, LV_BTN_STATE_PR, &tft_style_lable_pre);
|
||||
//lv_imgbtn_set_style(buttonContinue, LV_BTN_STATE_REL, &tft_style_lable_rel);
|
||||
//lv_imgbtn_set_style(buttonContinue, LV_BTN_STATE_PR, &tft_style_label_pre);
|
||||
//lv_imgbtn_set_style(buttonContinue, LV_BTN_STATE_REL, &tft_style_label_rel);
|
||||
|
||||
lv_obj_set_event_cb_mks(buttonHomeY, event_handler, ID_H_Y, "bmp_zeroY.bin", 0);
|
||||
lv_imgbtn_set_src(buttonHomeY, LV_BTN_STATE_REL, &bmp_pic);
|
||||
lv_imgbtn_set_src(buttonHomeY, LV_BTN_STATE_PR, &bmp_pic);
|
||||
lv_imgbtn_set_style(buttonHomeY, LV_BTN_STATE_PR, &tft_style_lable_pre);
|
||||
lv_imgbtn_set_style(buttonHomeY, LV_BTN_STATE_REL, &tft_style_lable_rel);
|
||||
lv_imgbtn_set_style(buttonHomeY, LV_BTN_STATE_PR, &tft_style_label_pre);
|
||||
lv_imgbtn_set_style(buttonHomeY, LV_BTN_STATE_REL, &tft_style_label_rel);
|
||||
|
||||
lv_obj_set_event_cb_mks(buttonHomeZ, event_handler, ID_H_Z, "bmp_zeroZ.bin", 0);
|
||||
lv_imgbtn_set_src(buttonHomeZ, LV_BTN_STATE_REL, &bmp_pic);
|
||||
lv_imgbtn_set_src(buttonHomeZ, LV_BTN_STATE_PR, &bmp_pic);
|
||||
lv_imgbtn_set_style(buttonHomeZ, LV_BTN_STATE_PR, &tft_style_lable_pre);
|
||||
lv_imgbtn_set_style(buttonHomeZ, LV_BTN_STATE_REL, &tft_style_lable_rel);
|
||||
lv_imgbtn_set_style(buttonHomeZ, LV_BTN_STATE_PR, &tft_style_label_pre);
|
||||
lv_imgbtn_set_style(buttonHomeZ, LV_BTN_STATE_REL, &tft_style_label_rel);
|
||||
|
||||
lv_obj_set_event_cb_mks(buttonOffAll, event_handler, ID_H_OFF_ALL, "bmp_manual_off.bin", 0);
|
||||
lv_obj_set_event_cb_mks(buttonOffAll, event_handler,ID_H_OFF_ALL,"bmp_function1.bin",0);
|
||||
lv_imgbtn_set_src(buttonOffAll, LV_BTN_STATE_REL, &bmp_pic);
|
||||
lv_imgbtn_set_src(buttonOffAll, LV_BTN_STATE_PR, &bmp_pic);
|
||||
lv_imgbtn_set_style(buttonOffAll, LV_BTN_STATE_PR, &tft_style_lable_pre);
|
||||
lv_imgbtn_set_style(buttonOffAll, LV_BTN_STATE_REL, &tft_style_lable_rel);
|
||||
lv_imgbtn_set_style(buttonOffAll, LV_BTN_STATE_PR, &tft_style_label_pre);
|
||||
lv_imgbtn_set_style(buttonOffAll, LV_BTN_STATE_REL, &tft_style_label_rel);
|
||||
|
||||
lv_obj_set_event_cb_mks(buttonOffXY, event_handler, ID_H_OFF_XY, "bmp_manual_off.bin", 0);
|
||||
lv_obj_set_event_cb_mks(buttonOffXY, event_handler,ID_H_OFF_XY,"bmp_function1.bin",0);
|
||||
lv_imgbtn_set_src(buttonOffXY, LV_BTN_STATE_REL, &bmp_pic);
|
||||
lv_imgbtn_set_src(buttonOffXY, LV_BTN_STATE_PR, &bmp_pic);
|
||||
lv_imgbtn_set_style(buttonOffXY, LV_BTN_STATE_PR, &tft_style_lable_pre);
|
||||
lv_imgbtn_set_style(buttonOffXY, LV_BTN_STATE_REL, &tft_style_lable_rel);
|
||||
lv_imgbtn_set_style(buttonOffXY, LV_BTN_STATE_PR, &tft_style_label_pre);
|
||||
lv_imgbtn_set_style(buttonOffXY, LV_BTN_STATE_REL, &tft_style_label_rel);
|
||||
|
||||
lv_obj_set_event_cb_mks(buttonBack, event_handler, ID_H_RETURN, "bmp_Return.bin", 0);
|
||||
lv_obj_set_event_cb_mks(buttonBack, event_handler,ID_H_RETURN,"bmp_return.bin",0);
|
||||
lv_imgbtn_set_src(buttonBack, LV_BTN_STATE_REL, &bmp_pic);
|
||||
lv_imgbtn_set_src(buttonBack, LV_BTN_STATE_PR, &bmp_pic);
|
||||
lv_imgbtn_set_style(buttonBack, LV_BTN_STATE_PR, &tft_style_lable_pre);
|
||||
lv_imgbtn_set_style(buttonBack, LV_BTN_STATE_REL, &tft_style_lable_rel);
|
||||
lv_imgbtn_set_style(buttonBack, LV_BTN_STATE_PR, &tft_style_label_pre);
|
||||
lv_imgbtn_set_style(buttonBack, LV_BTN_STATE_REL, &tft_style_label_rel);
|
||||
#endif
|
||||
|
||||
/*lv_obj_set_pos(buttonWifi, INTERVAL_V, titleHeight);
|
||||
lv_obj_set_pos(buttonFan, BTN_X_PIXEL+INTERVAL_V*2, titleHeight);
|
||||
lv_obj_set_pos(buttonAbout, BTN_X_PIXEL*2+INTERVAL_V*3, titleHeight);
|
||||
|
@ -280,4 +267,4 @@ void lv_draw_home(void) {
|
|||
|
||||
void lv_clear_home() { lv_obj_del(scr); }
|
||||
|
||||
#endif // TFT_LVGL_UI
|
||||
#endif // HAS_TFT_LVGL_UI
|
||||
|
|
263
Marlin/src/lcd/extui/lib/mks_ui/draw_jerk_settings.cpp
Normal file
263
Marlin/src/lcd/extui/lib/mks_ui/draw_jerk_settings.cpp
Normal file
|
@ -0,0 +1,263 @@
|
|||
/**
|
||||
* Marlin 3D Printer Firmware
|
||||
* Copyright (c) 2020 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
|
||||
*
|
||||
* Based on Sprinter and grbl.
|
||||
* Copyright (c) 2011 Camiel Gubbels / Erik van der Zalm
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*
|
||||
*/
|
||||
#include "../../../../inc/MarlinConfigPre.h"
|
||||
|
||||
#if BOTH(HAS_TFT_LVGL_UI, HAS_CLASSIC_JERK)
|
||||
|
||||
#include "lv_conf.h"
|
||||
#include "draw_ui.h"
|
||||
|
||||
#include "../../../../MarlinCore.h"
|
||||
#include "../../../../module/planner.h"
|
||||
|
||||
static lv_obj_t * scr;
|
||||
|
||||
#define ID_JERK_RETURN 1
|
||||
#define ID_JERK_X 2
|
||||
#define ID_JERK_Y 3
|
||||
#define ID_JERK_Z 4
|
||||
#define ID_JERK_E 5
|
||||
|
||||
static void event_handler(lv_obj_t * obj, lv_event_t event) {
|
||||
switch (obj->mks_obj_id) {
|
||||
case ID_JERK_RETURN:
|
||||
if (event == LV_EVENT_CLICKED) {
|
||||
|
||||
}
|
||||
else if (event == LV_EVENT_RELEASED) {
|
||||
lv_clear_jerk_settings();
|
||||
draw_return_ui();
|
||||
}
|
||||
break;
|
||||
case ID_JERK_X:
|
||||
if (event == LV_EVENT_CLICKED) {
|
||||
|
||||
}
|
||||
else if (event == LV_EVENT_RELEASED) {
|
||||
value = XJerk;
|
||||
lv_clear_jerk_settings();
|
||||
lv_draw_number_key();
|
||||
}
|
||||
break;
|
||||
case ID_JERK_Y:
|
||||
if (event == LV_EVENT_CLICKED) {
|
||||
|
||||
}
|
||||
else if (event == LV_EVENT_RELEASED) {
|
||||
value = YJerk;
|
||||
lv_clear_jerk_settings();
|
||||
lv_draw_number_key();
|
||||
}
|
||||
break;
|
||||
case ID_JERK_Z:
|
||||
if (event == LV_EVENT_CLICKED) {
|
||||
|
||||
}
|
||||
else if (event == LV_EVENT_RELEASED) {
|
||||
value = ZJerk;
|
||||
lv_clear_jerk_settings();
|
||||
lv_draw_number_key();
|
||||
}
|
||||
break;
|
||||
case ID_JERK_E:
|
||||
if (event == LV_EVENT_CLICKED) {
|
||||
|
||||
}
|
||||
else if (event == LV_EVENT_RELEASED) {
|
||||
value = EJerk;
|
||||
lv_clear_jerk_settings();
|
||||
lv_draw_number_key();
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
void lv_draw_jerk_settings(void) {
|
||||
lv_obj_t *buttonBack = NULL, *label_Back = NULL;
|
||||
lv_obj_t *buttonXText = NULL, *labelXText = NULL, *buttonXValue = NULL, *labelXValue = NULL;
|
||||
lv_obj_t *buttonYText = NULL, *labelYText = NULL, *buttonYValue = NULL, *labelYValue = NULL;
|
||||
lv_obj_t *buttonZText = NULL, *labelZText = NULL, *buttonZValue = NULL, *labelZValue = NULL;
|
||||
lv_obj_t *buttonEText = NULL, *labelEText = NULL, *buttonEValue = NULL, *labelEValue = NULL;
|
||||
lv_obj_t * line1 = NULL, * line2 = NULL, * line3 = NULL, * line4 = NULL;
|
||||
if (disp_state_stack._disp_state[disp_state_stack._disp_index] != JERK_UI) {
|
||||
disp_state_stack._disp_index++;
|
||||
disp_state_stack._disp_state[disp_state_stack._disp_index] = JERK_UI;
|
||||
}
|
||||
disp_state = JERK_UI;
|
||||
|
||||
scr = lv_obj_create(NULL, NULL);
|
||||
|
||||
lv_obj_set_style(scr, &tft_style_scr);
|
||||
lv_scr_load(scr);
|
||||
lv_obj_clean(scr);
|
||||
|
||||
lv_obj_t * title = lv_label_create(scr, NULL);
|
||||
lv_obj_set_style(title, &tft_style_label_rel);
|
||||
lv_obj_set_pos(title, TITLE_XPOS, TITLE_YPOS);
|
||||
lv_label_set_text(title, machine_menu.JerkConfTitle);
|
||||
|
||||
lv_refr_now(lv_refr_get_disp_refreshing());
|
||||
|
||||
LV_IMG_DECLARE(bmp_para_back);
|
||||
// LV_IMG_DECLARE(bmp_para_arrow);
|
||||
LV_IMG_DECLARE(bmp_para_bank);
|
||||
|
||||
buttonXText = lv_btn_create(scr, NULL); /*Add a button the current screen*/
|
||||
lv_obj_set_pos(buttonXText, PARA_UI_POS_X, PARA_UI_POS_Y); /*Set its position*/
|
||||
lv_obj_set_size(buttonXText, PARA_UI_VALUE_SIZE_X, PARA_UI_SIZE_Y); /*Set its size*/
|
||||
lv_obj_set_event_cb(buttonXText, event_handler);
|
||||
lv_btn_set_style(buttonXText, LV_BTN_STYLE_REL, &tft_style_label_rel); /*Set the button's released style*/
|
||||
lv_btn_set_style(buttonXText, LV_BTN_STYLE_PR, &tft_style_label_pre); /*Set the button's pressed style*/
|
||||
lv_btn_set_layout(buttonXText, LV_LAYOUT_OFF);
|
||||
labelXText = lv_label_create(buttonXText, NULL); /*Add a label to the button*/
|
||||
|
||||
buttonXValue = lv_imgbtn_create(scr, NULL);
|
||||
lv_obj_set_pos(buttonXValue, PARA_UI_VALUE_POS_X, PARA_UI_POS_Y + PARA_UI_VALUE_V);
|
||||
lv_obj_set_event_cb_mks(buttonXValue, event_handler, ID_JERK_X, "bmp_value_blank.bin", 0);
|
||||
lv_imgbtn_set_src(buttonXValue, LV_BTN_STATE_REL, &bmp_para_bank);
|
||||
lv_imgbtn_set_src(buttonXValue, LV_BTN_STATE_PR, &bmp_para_bank);
|
||||
lv_imgbtn_set_style(buttonXValue, LV_BTN_STATE_PR, &style_para_value_pre);
|
||||
lv_imgbtn_set_style(buttonXValue, LV_BTN_STATE_REL, &style_para_value_rel);
|
||||
lv_btn_set_layout(buttonXValue, LV_LAYOUT_OFF);
|
||||
labelXValue = lv_label_create(buttonXValue, NULL);
|
||||
|
||||
line1 = lv_line_create(scr, NULL);
|
||||
lv_ex_line(line1, line_points[0]);
|
||||
|
||||
buttonYText = lv_btn_create(scr, NULL); /*Add a button the current screen*/
|
||||
lv_obj_set_pos(buttonYText, PARA_UI_POS_X, PARA_UI_POS_Y * 2); /*Set its position*/
|
||||
lv_obj_set_size(buttonYText, PARA_UI_VALUE_SIZE_X, PARA_UI_SIZE_Y); /*Set its size*/
|
||||
lv_obj_set_event_cb(buttonYText, event_handler);
|
||||
lv_btn_set_style(buttonYText, LV_BTN_STYLE_REL, &tft_style_label_rel); /*Set the button's released style*/
|
||||
lv_btn_set_style(buttonYText, LV_BTN_STYLE_PR, &tft_style_label_pre); /*Set the button's pressed style*/
|
||||
lv_btn_set_layout(buttonYText, LV_LAYOUT_OFF);
|
||||
labelYText = lv_label_create(buttonYText, NULL); /*Add a label to the button*/
|
||||
|
||||
buttonYValue = lv_imgbtn_create(scr, NULL);
|
||||
lv_obj_set_pos(buttonYValue, PARA_UI_VALUE_POS_X, PARA_UI_POS_Y * 2 + PARA_UI_VALUE_V);
|
||||
lv_obj_set_event_cb_mks(buttonYValue, event_handler, ID_JERK_Y, "bmp_value_blank.bin", 0);
|
||||
lv_imgbtn_set_src(buttonYValue, LV_BTN_STATE_REL, &bmp_para_bank);
|
||||
lv_imgbtn_set_src(buttonYValue, LV_BTN_STATE_PR, &bmp_para_bank);
|
||||
lv_imgbtn_set_style(buttonYValue, LV_BTN_STATE_PR, &style_para_value_pre);
|
||||
lv_imgbtn_set_style(buttonYValue, LV_BTN_STATE_REL, &style_para_value_rel);
|
||||
lv_btn_set_layout(buttonYValue, LV_LAYOUT_OFF);
|
||||
labelYValue = lv_label_create(buttonYValue, NULL);
|
||||
|
||||
line2 = lv_line_create(scr, NULL);
|
||||
lv_ex_line(line2, line_points[1]);
|
||||
|
||||
buttonZText = lv_btn_create(scr, NULL); /*Add a button the current screen*/
|
||||
lv_obj_set_pos(buttonZText, PARA_UI_POS_X, PARA_UI_POS_Y * 3); /*Set its position*/
|
||||
lv_obj_set_size(buttonZText, PARA_UI_VALUE_SIZE_X, PARA_UI_SIZE_Y); /*Set its size*/
|
||||
lv_obj_set_event_cb(buttonZText, event_handler);
|
||||
lv_btn_set_style(buttonZText, LV_BTN_STYLE_REL, &tft_style_label_rel); /*Set the button's released style*/
|
||||
lv_btn_set_style(buttonZText, LV_BTN_STYLE_PR, &tft_style_label_pre); /*Set the button's pressed style*/
|
||||
lv_btn_set_layout(buttonZText, LV_LAYOUT_OFF);
|
||||
labelZText = lv_label_create(buttonZText, NULL); /*Add a label to the button*/
|
||||
|
||||
buttonZValue = lv_imgbtn_create(scr, NULL);
|
||||
lv_obj_set_pos(buttonZValue, PARA_UI_VALUE_POS_X, PARA_UI_POS_Y * 3 + PARA_UI_VALUE_V);
|
||||
lv_obj_set_event_cb_mks(buttonZValue, event_handler, ID_JERK_Z, "bmp_value_blank.bin", 0);
|
||||
lv_imgbtn_set_src(buttonZValue, LV_BTN_STATE_REL, &bmp_para_bank);
|
||||
lv_imgbtn_set_src(buttonZValue, LV_BTN_STATE_PR, &bmp_para_bank);
|
||||
lv_imgbtn_set_style(buttonZValue, LV_BTN_STATE_PR, &style_para_value_pre);
|
||||
lv_imgbtn_set_style(buttonZValue, LV_BTN_STATE_REL, &style_para_value_rel);
|
||||
lv_btn_set_layout(buttonZValue, LV_LAYOUT_OFF);
|
||||
labelZValue = lv_label_create(buttonZValue, NULL);
|
||||
|
||||
line3 = lv_line_create(scr, NULL);
|
||||
lv_ex_line(line3, line_points[2]);
|
||||
|
||||
buttonEText = lv_btn_create(scr, NULL); /*Add a button the current screen*/
|
||||
lv_obj_set_pos(buttonEText, PARA_UI_POS_X, PARA_UI_POS_Y * 4); /*Set its position*/
|
||||
lv_obj_set_size(buttonEText, PARA_UI_VALUE_SIZE_X, PARA_UI_SIZE_Y); /*Set its size*/
|
||||
lv_obj_set_event_cb(buttonEText, event_handler);
|
||||
lv_btn_set_style(buttonEText, LV_BTN_STYLE_REL, &tft_style_label_rel); /*Set the button's released style*/
|
||||
lv_btn_set_style(buttonEText, LV_BTN_STYLE_PR, &tft_style_label_pre); /*Set the button's pressed style*/
|
||||
lv_btn_set_layout(buttonEText, LV_LAYOUT_OFF);
|
||||
labelEText = lv_label_create(buttonEText, NULL); /*Add a label to the button*/
|
||||
|
||||
buttonEValue = lv_imgbtn_create(scr, NULL);
|
||||
lv_obj_set_pos(buttonEValue, PARA_UI_VALUE_POS_X, PARA_UI_POS_Y * 4 + PARA_UI_VALUE_V);
|
||||
lv_obj_set_event_cb_mks(buttonEValue, event_handler, ID_JERK_E, "bmp_value_blank.bin", 0);
|
||||
lv_imgbtn_set_src(buttonEValue, LV_BTN_STATE_REL, &bmp_para_bank);
|
||||
lv_imgbtn_set_src(buttonEValue, LV_BTN_STATE_PR, &bmp_para_bank);
|
||||
lv_imgbtn_set_style(buttonEValue, LV_BTN_STATE_PR, &style_para_value_pre);
|
||||
lv_imgbtn_set_style(buttonEValue, LV_BTN_STATE_REL, &style_para_value_rel);
|
||||
lv_btn_set_layout(buttonEValue, LV_LAYOUT_OFF);
|
||||
labelEValue = lv_label_create(buttonEValue, NULL);
|
||||
|
||||
line4 = lv_line_create(scr, NULL);
|
||||
lv_ex_line(line4, line_points[3]);
|
||||
|
||||
buttonBack = lv_imgbtn_create(scr, NULL);
|
||||
lv_obj_set_event_cb_mks(buttonBack, event_handler, ID_JERK_RETURN, "bmp_back70x40.bin", 0);
|
||||
lv_imgbtn_set_src(buttonBack, LV_BTN_STATE_REL, &bmp_para_back);
|
||||
lv_imgbtn_set_src(buttonBack, LV_BTN_STATE_PR, &bmp_para_back);
|
||||
lv_imgbtn_set_style(buttonBack, LV_BTN_STATE_PR, &tft_style_label_pre);
|
||||
lv_imgbtn_set_style(buttonBack, LV_BTN_STATE_REL, &tft_style_label_rel);
|
||||
|
||||
lv_obj_set_pos(buttonBack, PARA_UI_BACL_POS_X, PARA_UI_BACL_POS_Y);
|
||||
lv_btn_set_layout(buttonBack, LV_LAYOUT_OFF);
|
||||
label_Back = lv_label_create(buttonBack, NULL);
|
||||
|
||||
if (gCfgItems.multiple_language != 0) {
|
||||
ZERO(public_buf_l);
|
||||
sprintf_P(public_buf_l, PSTR("%.1f"), planner.max_jerk[X_AXIS]);
|
||||
lv_label_set_text(labelXValue, public_buf_l);
|
||||
lv_obj_align(labelXValue, buttonXValue, LV_ALIGN_CENTER, 0, 0);
|
||||
|
||||
ZERO(public_buf_l);
|
||||
sprintf_P(public_buf_l, PSTR("%.1f"), planner.max_jerk[Y_AXIS]);
|
||||
lv_label_set_text(labelYValue, public_buf_l);
|
||||
lv_obj_align(labelYValue, buttonYValue, LV_ALIGN_CENTER, 0, 0);
|
||||
|
||||
ZERO(public_buf_l);
|
||||
sprintf_P(public_buf_l, PSTR("%.1f"), planner.max_jerk[Z_AXIS]);
|
||||
lv_label_set_text(labelZValue, public_buf_l);
|
||||
lv_obj_align(labelZValue, buttonZValue, LV_ALIGN_CENTER, 0, 0);
|
||||
|
||||
ZERO(public_buf_l);
|
||||
sprintf_P(public_buf_l, PSTR("%.1f"), planner.max_jerk[E_AXIS]);
|
||||
lv_label_set_text(labelEValue, public_buf_l);
|
||||
lv_obj_align(labelEValue, buttonEValue, LV_ALIGN_CENTER, 0, 0);
|
||||
|
||||
lv_label_set_text(labelXText, machine_menu.X_Jerk);
|
||||
lv_obj_align(labelXText, buttonXText, LV_ALIGN_IN_LEFT_MID, 0, 0);
|
||||
|
||||
lv_label_set_text(labelYText, machine_menu.Y_Jerk);
|
||||
lv_obj_align(labelYText, buttonYText, LV_ALIGN_IN_LEFT_MID, 0, 0);
|
||||
|
||||
lv_label_set_text(labelZText, machine_menu.Z_Jerk);
|
||||
lv_obj_align(labelZText, buttonZText, LV_ALIGN_IN_LEFT_MID, 0, 0);
|
||||
|
||||
lv_label_set_text(labelEText, machine_menu.E_Jerk);
|
||||
lv_obj_align(labelEText, buttonEText, LV_ALIGN_IN_LEFT_MID, 0, 0);
|
||||
|
||||
lv_label_set_text(label_Back, common_menu.text_back);
|
||||
lv_obj_align(label_Back, buttonBack, LV_ALIGN_CENTER, 0, 0);
|
||||
}
|
||||
}
|
||||
|
||||
void lv_clear_jerk_settings() { lv_obj_del(scr); }
|
||||
|
||||
#endif // HAS_TFT_LVGL_UI && HAS_CLASSIC_JERK
|
33
Marlin/src/lcd/extui/lib/mks_ui/draw_jerk_settings.h
Normal file
33
Marlin/src/lcd/extui/lib/mks_ui/draw_jerk_settings.h
Normal file
|
@ -0,0 +1,33 @@
|
|||
/**
|
||||
* Marlin 3D Printer Firmware
|
||||
* Copyright (c) 2020 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
|
||||
*
|
||||
* Based on Sprinter and grbl.
|
||||
* Copyright (c) 2011 Camiel Gubbels / Erik van der Zalm
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*
|
||||
*/
|
||||
#pragma once
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" { /* C-declarations for C++ */
|
||||
#endif
|
||||
|
||||
extern void lv_draw_jerk_settings(void);
|
||||
extern void lv_clear_jerk_settings();
|
||||
|
||||
#ifdef __cplusplus
|
||||
} /* C-declarations for C++ */
|
||||
#endif
|
|
@ -21,7 +21,7 @@
|
|||
*/
|
||||
#include "../../../../inc/MarlinConfigPre.h"
|
||||
|
||||
#if ENABLED(TFT_LVGL_UI)
|
||||
#if HAS_TFT_LVGL_UI
|
||||
|
||||
#include "lv_conf.h"
|
||||
#include "draw_ui.h"
|
||||
|
@ -85,7 +85,7 @@ static void event_handler(lv_obj_t * obj, lv_event_t event) {
|
|||
}
|
||||
else if (event == LV_EVENT_RELEASED) {
|
||||
disp_language(gCfgItems.language, UNSELECTED);
|
||||
lv_obj_set_event_cb_mks(buttonEN, event_handler, ID_EN, "bmp_English_sel.bin", 0);
|
||||
lv_obj_set_event_cb_mks(buttonEN, event_handler, ID_EN, "bmp_english_sel.bin", 0);
|
||||
gCfgItems.language = LANG_ENGLISH;
|
||||
gCfg_to_spiFlah();
|
||||
disp_language_init();
|
||||
|
@ -97,7 +97,7 @@ static void event_handler(lv_obj_t * obj, lv_event_t event) {
|
|||
}
|
||||
else if (event == LV_EVENT_RELEASED) {
|
||||
disp_language(gCfgItems.language, UNSELECTED);
|
||||
lv_obj_set_event_cb_mks(buttonRU, event_handler, ID_RU, "bmp_Russian_sel.bin", 0);
|
||||
lv_obj_set_event_cb_mks(buttonRU, event_handler, ID_RU, "bmp_russian_sel.bin", 0);
|
||||
gCfgItems.language = LANG_RUSSIAN;
|
||||
gCfg_to_spiFlah();
|
||||
disp_language_init();
|
||||
|
@ -109,7 +109,7 @@ static void event_handler(lv_obj_t * obj, lv_event_t event) {
|
|||
}
|
||||
else if (event == LV_EVENT_RELEASED) {
|
||||
disp_language(gCfgItems.language, UNSELECTED);
|
||||
lv_obj_set_event_cb_mks(buttonES, event_handler, ID_ES, "bmp_Spanish_sel.bin", 0);
|
||||
lv_obj_set_event_cb_mks(buttonES, event_handler, ID_ES, "bmp_spanish_sel.bin", 0);
|
||||
gCfgItems.language = LANG_SPANISH;
|
||||
gCfg_to_spiFlah();
|
||||
disp_language_init();
|
||||
|
@ -121,7 +121,7 @@ static void event_handler(lv_obj_t * obj, lv_event_t event) {
|
|||
}
|
||||
else if (event == LV_EVENT_RELEASED) {
|
||||
disp_language(gCfgItems.language, UNSELECTED);
|
||||
lv_obj_set_event_cb_mks(buttonFR, event_handler, ID_FR, "bmp_French_sel.bin", 0);
|
||||
lv_obj_set_event_cb_mks(buttonFR, event_handler, ID_FR, "bmp_french_sel.bin", 0);
|
||||
gCfgItems.language = LANG_FRENCH;
|
||||
gCfg_to_spiFlah();
|
||||
disp_language_init();
|
||||
|
@ -133,7 +133,7 @@ static void event_handler(lv_obj_t * obj, lv_event_t event) {
|
|||
}
|
||||
else if (event == LV_EVENT_RELEASED) {
|
||||
disp_language(gCfgItems.language, UNSELECTED);
|
||||
lv_obj_set_event_cb_mks(buttonIT, event_handler, ID_FR, "bmp_Italy_sel.bin", 0);
|
||||
lv_obj_set_event_cb_mks(buttonIT, event_handler, ID_FR, "bmp_italy_sel.bin", 0);
|
||||
gCfgItems.language = LANG_ITALY;
|
||||
gCfg_to_spiFlah();
|
||||
disp_language_init();
|
||||
|
@ -170,52 +170,51 @@ static void disp_language(uint8_t language, uint8_t state) {
|
|||
public_buf_l[0] = '\0';
|
||||
|
||||
switch (language) {
|
||||
|
||||
case LANG_SIMPLE_CHINESE:
|
||||
id = ID_CN;
|
||||
strcat(public_buf_l, "bmp_Simple_cn");
|
||||
strcpy_P(public_buf_l, PSTR("bmp_simplified_cn"));
|
||||
obj = buttonCN;
|
||||
|
||||
break;
|
||||
case LANG_COMPLEX_CHINESE:
|
||||
id = ID_T_CN;
|
||||
strcat(public_buf_l, "bmp_Tradition_cn");
|
||||
strcpy_P(public_buf_l, PSTR("bmp_traditional_cn"));
|
||||
obj = buttonT_CN;
|
||||
break;
|
||||
case LANG_ENGLISH:
|
||||
id = ID_EN;
|
||||
strcat(public_buf_l, "bmp_English");
|
||||
strcpy_P(public_buf_l, PSTR("bmp_english"));
|
||||
obj = buttonEN;
|
||||
break;
|
||||
case LANG_RUSSIAN:
|
||||
id = ID_RU;
|
||||
strcat(public_buf_l, "bmp_Russian");
|
||||
strcpy_P(public_buf_l, PSTR("bmp_russian"));
|
||||
obj = buttonRU;
|
||||
break;
|
||||
case LANG_SPANISH:
|
||||
id = ID_ES;
|
||||
strcat(public_buf_l, "bmp_Spanish");
|
||||
strcpy_P(public_buf_l, PSTR("bmp_spanish"));
|
||||
obj = buttonES;
|
||||
break;
|
||||
case LANG_FRENCH:
|
||||
id = ID_FR;
|
||||
strcat(public_buf_l, "bmp_French");
|
||||
strcpy_P(public_buf_l, PSTR("bmp_french"));
|
||||
obj = buttonFR;
|
||||
break;
|
||||
case LANG_ITALY:
|
||||
id = ID_IT;
|
||||
strcat(public_buf_l, "bmp_Italy");
|
||||
strcpy_P(public_buf_l, PSTR("bmp_italy"));
|
||||
obj = buttonIT;
|
||||
break;
|
||||
default:
|
||||
id = ID_CN;
|
||||
strcat(public_buf_l, "bmp_Simple_cn");
|
||||
strcpy_P(public_buf_l, PSTR("bmp_simplified_cn"));
|
||||
obj = buttonCN;
|
||||
break;
|
||||
}
|
||||
|
||||
if (state == SELECTED) strcat(public_buf_l, "_sel.bin");
|
||||
else strcat(public_buf_l, ".bin");
|
||||
if (state == SELECTED) strcat_P(public_buf_l, PSTR("_sel"));
|
||||
|
||||
strcat_P(public_buf_l, PSTR(".bin"));
|
||||
|
||||
lv_obj_set_event_cb_mks(obj, event_handler, id, public_buf_l, 0);
|
||||
|
||||
|
@ -239,7 +238,7 @@ void lv_draw_language(void) {
|
|||
lv_obj_clean(scr);
|
||||
|
||||
lv_obj_t * title = lv_label_create(scr, NULL);
|
||||
lv_obj_set_style(title, &tft_style_lable_rel);
|
||||
lv_obj_set_style(title, &tft_style_label_rel);
|
||||
lv_obj_set_pos(title, TITLE_XPOS, TITLE_YPOS);
|
||||
lv_label_set_text(title, creat_title_text());
|
||||
|
||||
|
@ -257,56 +256,55 @@ void lv_draw_language(void) {
|
|||
buttonIT = lv_imgbtn_create(scr, NULL);
|
||||
buttonBack = lv_imgbtn_create(scr, NULL);
|
||||
|
||||
|
||||
lv_obj_set_event_cb_mks(buttonCN, event_handler, ID_CN, "bmp_simplified_cn.bin", 0);
|
||||
lv_imgbtn_set_src(buttonCN, LV_BTN_STATE_REL, &bmp_pic);
|
||||
lv_imgbtn_set_src(buttonCN, LV_BTN_STATE_PR, &bmp_pic);
|
||||
lv_imgbtn_set_style(buttonCN, LV_BTN_STATE_PR, &tft_style_lable_pre);
|
||||
lv_imgbtn_set_style(buttonCN, LV_BTN_STATE_REL, &tft_style_lable_rel);
|
||||
lv_imgbtn_set_style(buttonCN, LV_BTN_STATE_PR, &tft_style_label_pre);
|
||||
lv_imgbtn_set_style(buttonCN, LV_BTN_STATE_REL, &tft_style_label_rel);
|
||||
lv_obj_clear_protect(buttonCN, LV_PROTECT_FOLLOW);
|
||||
#if 1
|
||||
lv_obj_set_event_cb_mks(buttonT_CN, event_handler, ID_T_CN, "bmp_traditional_cn.bin", 0);
|
||||
lv_imgbtn_set_src(buttonT_CN, LV_BTN_STATE_REL, &bmp_pic);
|
||||
lv_imgbtn_set_src(buttonT_CN, LV_BTN_STATE_PR, &bmp_pic);
|
||||
lv_imgbtn_set_style(buttonT_CN, LV_BTN_STATE_PR, &tft_style_lable_pre);
|
||||
lv_imgbtn_set_style(buttonT_CN, LV_BTN_STATE_REL, &tft_style_lable_rel);
|
||||
lv_imgbtn_set_style(buttonT_CN, LV_BTN_STATE_PR, &tft_style_label_pre);
|
||||
lv_imgbtn_set_style(buttonT_CN, LV_BTN_STATE_REL, &tft_style_label_rel);
|
||||
|
||||
lv_obj_set_event_cb_mks(buttonEN, event_handler, ID_EN, "bmp_English.bin", 0);
|
||||
lv_obj_set_event_cb_mks(buttonEN, event_handler, ID_EN, "bmp_english.bin", 0);
|
||||
lv_imgbtn_set_src(buttonEN, LV_BTN_STATE_REL, &bmp_pic);
|
||||
lv_imgbtn_set_src(buttonEN, LV_BTN_STATE_PR, &bmp_pic);
|
||||
lv_imgbtn_set_style(buttonEN, LV_BTN_STATE_PR, &tft_style_lable_pre);
|
||||
lv_imgbtn_set_style(buttonEN, LV_BTN_STATE_REL, &tft_style_lable_rel);
|
||||
lv_imgbtn_set_style(buttonEN, LV_BTN_STATE_PR, &tft_style_label_pre);
|
||||
lv_imgbtn_set_style(buttonEN, LV_BTN_STATE_REL, &tft_style_label_rel);
|
||||
|
||||
lv_obj_set_event_cb_mks(buttonRU, event_handler, ID_RU, "bmp_Russian.bin", 0);
|
||||
lv_obj_set_event_cb_mks(buttonRU, event_handler, ID_RU, "bmp_russian.bin", 0);
|
||||
lv_imgbtn_set_src(buttonRU, LV_BTN_STATE_REL, &bmp_pic);
|
||||
lv_imgbtn_set_src(buttonRU, LV_BTN_STATE_PR, &bmp_pic);
|
||||
lv_imgbtn_set_style(buttonRU, LV_BTN_STATE_PR, &tft_style_lable_pre);
|
||||
lv_imgbtn_set_style(buttonRU, LV_BTN_STATE_REL, &tft_style_lable_rel);
|
||||
lv_imgbtn_set_style(buttonRU, LV_BTN_STATE_PR, &tft_style_label_pre);
|
||||
lv_imgbtn_set_style(buttonRU, LV_BTN_STATE_REL, &tft_style_label_rel);
|
||||
|
||||
lv_obj_set_event_cb_mks(buttonES, event_handler, ID_ES, "bmp_Spanish.bin", 0);
|
||||
lv_obj_set_event_cb_mks(buttonES, event_handler, ID_ES, "bmp_spanish.bin", 0);
|
||||
lv_imgbtn_set_src(buttonES, LV_BTN_STATE_REL, &bmp_pic);
|
||||
lv_imgbtn_set_src(buttonES, LV_BTN_STATE_PR, &bmp_pic);
|
||||
lv_imgbtn_set_style(buttonES, LV_BTN_STATE_PR, &tft_style_lable_pre);
|
||||
lv_imgbtn_set_style(buttonES, LV_BTN_STATE_REL, &tft_style_lable_rel);
|
||||
lv_imgbtn_set_style(buttonES, LV_BTN_STATE_PR, &tft_style_label_pre);
|
||||
lv_imgbtn_set_style(buttonES, LV_BTN_STATE_REL, &tft_style_label_rel);
|
||||
|
||||
lv_obj_set_event_cb_mks(buttonFR, event_handler, ID_FR, "bmp_French.bin", 0);
|
||||
lv_obj_set_event_cb_mks(buttonFR, event_handler, ID_FR, "bmp_french.bin", 0);
|
||||
lv_imgbtn_set_src(buttonFR, LV_BTN_STATE_REL, &bmp_pic);
|
||||
lv_imgbtn_set_src(buttonFR, LV_BTN_STATE_PR, &bmp_pic);
|
||||
lv_imgbtn_set_style(buttonFR, LV_BTN_STATE_PR, &tft_style_lable_pre);
|
||||
lv_imgbtn_set_style(buttonFR, LV_BTN_STATE_REL, &tft_style_lable_rel);
|
||||
lv_imgbtn_set_style(buttonFR, LV_BTN_STATE_PR, &tft_style_label_pre);
|
||||
lv_imgbtn_set_style(buttonFR, LV_BTN_STATE_REL, &tft_style_label_rel);
|
||||
|
||||
lv_obj_set_event_cb_mks(buttonIT, event_handler, ID_IT, "bmp_Italy.bin", 0);
|
||||
lv_obj_set_event_cb_mks(buttonIT, event_handler, ID_IT, "bmp_italy.bin", 0);
|
||||
lv_imgbtn_set_src(buttonIT, LV_BTN_STATE_REL, &bmp_pic);
|
||||
lv_imgbtn_set_src(buttonIT, LV_BTN_STATE_PR, &bmp_pic);
|
||||
lv_imgbtn_set_style(buttonIT, LV_BTN_STATE_PR, &tft_style_lable_pre);
|
||||
lv_imgbtn_set_style(buttonIT, LV_BTN_STATE_REL, &tft_style_lable_rel);
|
||||
lv_imgbtn_set_style(buttonIT, LV_BTN_STATE_PR, &tft_style_label_pre);
|
||||
lv_imgbtn_set_style(buttonIT, LV_BTN_STATE_REL, &tft_style_label_rel);
|
||||
|
||||
lv_obj_set_event_cb_mks(buttonBack, event_handler, ID_L_RETURN, "bmp_Return.bin", 0);
|
||||
lv_obj_set_event_cb_mks(buttonBack, event_handler, ID_L_RETURN, "bmp_return.bin", 0);
|
||||
lv_imgbtn_set_src(buttonBack, LV_BTN_STATE_REL, &bmp_pic);
|
||||
lv_imgbtn_set_src(buttonBack, LV_BTN_STATE_PR, &bmp_pic);
|
||||
lv_imgbtn_set_style(buttonBack, LV_BTN_STATE_PR, &tft_style_lable_pre);
|
||||
lv_imgbtn_set_style(buttonBack, LV_BTN_STATE_REL, &tft_style_lable_rel);
|
||||
#endif
|
||||
lv_imgbtn_set_style(buttonBack, LV_BTN_STATE_PR, &tft_style_label_pre);
|
||||
lv_imgbtn_set_style(buttonBack, LV_BTN_STATE_REL, &tft_style_label_rel);
|
||||
#endif // if 1
|
||||
|
||||
lv_obj_set_pos(buttonCN, INTERVAL_V, titleHeight);
|
||||
lv_obj_set_pos(buttonT_CN, BTN_X_PIXEL + INTERVAL_V * 2, titleHeight);
|
||||
|
@ -367,4 +365,4 @@ void lv_draw_language(void) {
|
|||
|
||||
void lv_clear_language() { lv_obj_del(scr); }
|
||||
|
||||
#endif // TFT_LVGL_UI
|
||||
#endif // HAS_TFT_LVGL_UI
|
||||
|
|
232
Marlin/src/lcd/extui/lib/mks_ui/draw_machine_para.cpp
Normal file
232
Marlin/src/lcd/extui/lib/mks_ui/draw_machine_para.cpp
Normal file
|
@ -0,0 +1,232 @@
|
|||
/**
|
||||
* Marlin 3D Printer Firmware
|
||||
* Copyright (c) 2020 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
|
||||
*
|
||||
* Based on Sprinter and grbl.
|
||||
* Copyright (c) 2011 Camiel Gubbels / Erik van der Zalm
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*
|
||||
*/
|
||||
#include "../../../../inc/MarlinConfigPre.h"
|
||||
|
||||
#if HAS_TFT_LVGL_UI
|
||||
|
||||
#include "lv_conf.h"
|
||||
#include "draw_ui.h"
|
||||
|
||||
#include "../../../../MarlinCore.h"
|
||||
|
||||
static lv_obj_t * scr;
|
||||
|
||||
#define ID_PARA_RETURN 1
|
||||
#define ID_PARA_MACHINE 2
|
||||
#define ID_PARA_MACHINE_ARROW 3
|
||||
#define ID_PARA_MOTOR 4
|
||||
#define ID_PARA_MOTOR_ARROW 5
|
||||
#define ID_PARA_ADVANCE 6
|
||||
#define ID_PARA_ADVANCE_ARROW 7
|
||||
|
||||
static void event_handler(lv_obj_t * obj, lv_event_t event) {
|
||||
switch (obj->mks_obj_id) {
|
||||
case ID_PARA_RETURN:
|
||||
if (event == LV_EVENT_CLICKED) {
|
||||
|
||||
}
|
||||
else if (event == LV_EVENT_RELEASED) {
|
||||
lv_clear_machine_para();
|
||||
draw_return_ui();
|
||||
}
|
||||
break;
|
||||
case ID_PARA_MACHINE:
|
||||
if (event == LV_EVENT_CLICKED) {
|
||||
|
||||
}
|
||||
else if (event == LV_EVENT_RELEASED) {
|
||||
lv_clear_machine_para();
|
||||
lv_draw_machine_settings();
|
||||
}
|
||||
break;
|
||||
case ID_PARA_MACHINE_ARROW:
|
||||
if (event == LV_EVENT_CLICKED) {
|
||||
|
||||
}
|
||||
else if (event == LV_EVENT_RELEASED) {
|
||||
lv_clear_machine_para();
|
||||
lv_draw_machine_settings();
|
||||
}
|
||||
break;
|
||||
case ID_PARA_MOTOR:
|
||||
if (event == LV_EVENT_CLICKED) {
|
||||
|
||||
}
|
||||
else if (event == LV_EVENT_RELEASED) {
|
||||
lv_clear_machine_para();
|
||||
lv_draw_motor_settings();
|
||||
}
|
||||
break;
|
||||
case ID_PARA_MOTOR_ARROW:
|
||||
if (event == LV_EVENT_CLICKED) {
|
||||
|
||||
}
|
||||
else if (event == LV_EVENT_RELEASED) {
|
||||
lv_clear_machine_para();
|
||||
lv_draw_motor_settings();
|
||||
}
|
||||
break;
|
||||
case ID_PARA_ADVANCE:
|
||||
if (event == LV_EVENT_CLICKED) {
|
||||
|
||||
}
|
||||
else if (event == LV_EVENT_RELEASED) {
|
||||
lv_clear_machine_para();
|
||||
lv_draw_advance_settings();
|
||||
}
|
||||
break;
|
||||
case ID_PARA_ADVANCE_ARROW:
|
||||
if (event == LV_EVENT_CLICKED) {
|
||||
|
||||
}
|
||||
else if (event == LV_EVENT_RELEASED) {
|
||||
lv_clear_machine_para();
|
||||
lv_draw_advance_settings();
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
void lv_draw_machine_para(void) {
|
||||
lv_obj_t *buttonBack, *label_Back;
|
||||
lv_obj_t *buttonMachine, *labelMachine, *buttonMachineNarrow;
|
||||
lv_obj_t *buttonMotor, *labelMotor, *buttonMotorNarrow;
|
||||
lv_obj_t *buttonAdvance, *labelAdvance, *buttonAdvanceNarrow;
|
||||
lv_obj_t * line1, * line2, * line3;
|
||||
if (disp_state_stack._disp_state[disp_state_stack._disp_index] != MACHINE_PARA_UI) {
|
||||
disp_state_stack._disp_index++;
|
||||
disp_state_stack._disp_state[disp_state_stack._disp_index] = MACHINE_PARA_UI;
|
||||
}
|
||||
disp_state = MACHINE_PARA_UI;
|
||||
|
||||
scr = lv_obj_create(NULL, NULL);
|
||||
|
||||
lv_obj_set_style(scr, &tft_style_scr);
|
||||
lv_scr_load(scr);
|
||||
lv_obj_clean(scr);
|
||||
|
||||
lv_obj_t * title = lv_label_create(scr, NULL);
|
||||
lv_obj_set_style(title, &tft_style_label_rel);
|
||||
lv_obj_set_pos(title, TITLE_XPOS, TITLE_YPOS);
|
||||
lv_label_set_text(title, creat_title_text());
|
||||
|
||||
lv_refr_now(lv_refr_get_disp_refreshing());
|
||||
|
||||
LV_IMG_DECLARE(bmp_para_back);
|
||||
LV_IMG_DECLARE(bmp_para_arrow);
|
||||
|
||||
buttonMachine = lv_btn_create(scr, NULL); /*Add a button the current screen*/
|
||||
lv_obj_set_pos(buttonMachine, PARA_UI_POS_X, PARA_UI_POS_Y); /*Set its position*/
|
||||
lv_obj_set_size(buttonMachine, PARA_UI_SIZE_X, PARA_UI_SIZE_Y); /*Set its size*/
|
||||
// lv_obj_set_event_cb(buttonMachine, event_handler);
|
||||
lv_obj_set_event_cb_mks(buttonMachine, event_handler, ID_PARA_MACHINE, NULL, 0);
|
||||
lv_btn_set_style(buttonMachine, LV_BTN_STYLE_REL, &tft_style_label_rel); /*Set the button's released style*/
|
||||
lv_btn_set_style(buttonMachine, LV_BTN_STYLE_PR, &tft_style_label_pre); /*Set the button's pressed style*/
|
||||
lv_btn_set_layout(buttonMachine, LV_LAYOUT_OFF);
|
||||
labelMachine = lv_label_create(buttonMachine, NULL); /*Add a label to the button*/
|
||||
|
||||
buttonMachineNarrow = lv_imgbtn_create(scr, NULL);
|
||||
lv_obj_set_pos(buttonMachineNarrow, PARA_UI_POS_X + PARA_UI_SIZE_X, PARA_UI_POS_Y + PARA_UI_ARROW_V);
|
||||
lv_obj_set_event_cb_mks(buttonMachineNarrow, event_handler, ID_PARA_MACHINE_ARROW, "bmp_arrow.bin", 0);
|
||||
lv_imgbtn_set_src(buttonMachineNarrow, LV_BTN_STATE_REL, &bmp_para_arrow);
|
||||
lv_imgbtn_set_src(buttonMachineNarrow, LV_BTN_STATE_PR, &bmp_para_arrow);
|
||||
lv_imgbtn_set_style(buttonMachineNarrow, LV_BTN_STATE_PR, &tft_style_label_pre);
|
||||
lv_imgbtn_set_style(buttonMachineNarrow, LV_BTN_STATE_REL, &tft_style_label_rel);
|
||||
lv_btn_set_layout(buttonMachineNarrow, LV_LAYOUT_OFF);
|
||||
|
||||
line1 = lv_line_create(scr, NULL);
|
||||
lv_ex_line(line1, line_points[0]);
|
||||
|
||||
buttonMotor = lv_btn_create(scr, NULL); /*Add a button the current screen*/
|
||||
lv_obj_set_pos(buttonMotor, PARA_UI_POS_X, PARA_UI_POS_Y * 2); /*Set its position*/
|
||||
lv_obj_set_size(buttonMotor, PARA_UI_SIZE_X, PARA_UI_SIZE_Y); /*Set its size*/
|
||||
// lv_obj_set_event_cb(buttonMotor, event_handler);
|
||||
lv_obj_set_event_cb_mks(buttonMotor, event_handler, ID_PARA_MOTOR, NULL, 0);
|
||||
lv_btn_set_style(buttonMotor, LV_BTN_STYLE_REL, &tft_style_label_rel); /*Set the button's released style*/
|
||||
lv_btn_set_style(buttonMotor, LV_BTN_STYLE_PR, &tft_style_label_pre); /*Set the button's pressed style*/
|
||||
lv_btn_set_layout(buttonMotor, LV_LAYOUT_OFF);
|
||||
labelMotor = lv_label_create(buttonMotor, NULL); /*Add a label to the button*/
|
||||
|
||||
buttonMotorNarrow = lv_imgbtn_create(scr, NULL);
|
||||
lv_obj_set_pos(buttonMotorNarrow, PARA_UI_POS_X + PARA_UI_SIZE_X, PARA_UI_POS_Y * 2 + PARA_UI_ARROW_V);
|
||||
lv_obj_set_event_cb_mks(buttonMotorNarrow, event_handler, ID_PARA_MOTOR_ARROW, "bmp_arrow.bin", 0);
|
||||
lv_imgbtn_set_src(buttonMotorNarrow, LV_BTN_STATE_REL, &bmp_para_arrow);
|
||||
lv_imgbtn_set_src(buttonMotorNarrow, LV_BTN_STATE_PR, &bmp_para_arrow);
|
||||
lv_imgbtn_set_style(buttonMotorNarrow, LV_BTN_STATE_PR, &tft_style_label_pre);
|
||||
lv_imgbtn_set_style(buttonMotorNarrow, LV_BTN_STATE_REL, &tft_style_label_rel);
|
||||
lv_btn_set_layout(buttonMotorNarrow, LV_LAYOUT_OFF);
|
||||
|
||||
line2 = lv_line_create(scr, NULL);
|
||||
lv_ex_line(line2, line_points[1]);
|
||||
|
||||
buttonAdvance = lv_btn_create(scr, NULL); /*Add a button the current screen*/
|
||||
lv_obj_set_pos(buttonAdvance, PARA_UI_POS_X, PARA_UI_POS_Y * 3); /*Set its position*/
|
||||
lv_obj_set_size(buttonAdvance, PARA_UI_SIZE_X, PARA_UI_SIZE_Y); /*Set its size*/
|
||||
// lv_obj_set_event_cb(buttonMotor, event_handler);
|
||||
lv_obj_set_event_cb_mks(buttonAdvance, event_handler, ID_PARA_ADVANCE, NULL, 0);
|
||||
lv_btn_set_style(buttonAdvance, LV_BTN_STYLE_REL, &tft_style_label_rel); /*Set the button's released style*/
|
||||
lv_btn_set_style(buttonAdvance, LV_BTN_STYLE_PR, &tft_style_label_pre); /*Set the button's pressed style*/
|
||||
lv_btn_set_layout(buttonAdvance, LV_LAYOUT_OFF);
|
||||
labelAdvance = lv_label_create(buttonAdvance, NULL); /*Add a label to the button*/
|
||||
|
||||
buttonAdvanceNarrow = lv_imgbtn_create(scr, NULL);
|
||||
lv_obj_set_pos(buttonAdvanceNarrow, PARA_UI_POS_X + PARA_UI_SIZE_X, PARA_UI_POS_Y * 3 + PARA_UI_ARROW_V);
|
||||
lv_obj_set_event_cb_mks(buttonAdvanceNarrow, event_handler, ID_PARA_ADVANCE_ARROW, "bmp_arrow.bin", 0);
|
||||
lv_imgbtn_set_src(buttonAdvanceNarrow, LV_BTN_STATE_REL, &bmp_para_arrow);
|
||||
lv_imgbtn_set_src(buttonAdvanceNarrow, LV_BTN_STATE_PR, &bmp_para_arrow);
|
||||
lv_imgbtn_set_style(buttonAdvanceNarrow, LV_BTN_STATE_PR, &tft_style_label_pre);
|
||||
lv_imgbtn_set_style(buttonAdvanceNarrow, LV_BTN_STATE_REL, &tft_style_label_rel);
|
||||
lv_btn_set_layout(buttonAdvanceNarrow, LV_LAYOUT_OFF);
|
||||
|
||||
line3 = lv_line_create(scr, NULL);
|
||||
lv_ex_line(line3, line_points[2]);
|
||||
|
||||
buttonBack = lv_imgbtn_create(scr, NULL);
|
||||
lv_obj_set_event_cb_mks(buttonBack, event_handler, ID_PARA_RETURN, "bmp_back70x40.bin", 0);
|
||||
lv_imgbtn_set_src(buttonBack, LV_BTN_STATE_REL, &bmp_para_back);
|
||||
lv_imgbtn_set_src(buttonBack, LV_BTN_STATE_PR, &bmp_para_back);
|
||||
lv_imgbtn_set_style(buttonBack, LV_BTN_STATE_PR, &tft_style_label_pre);
|
||||
lv_imgbtn_set_style(buttonBack, LV_BTN_STATE_REL, &tft_style_label_rel);
|
||||
|
||||
lv_obj_set_pos(buttonBack, PARA_UI_BACL_POS_X, PARA_UI_BACL_POS_Y);
|
||||
lv_btn_set_layout(buttonBack, LV_LAYOUT_OFF);
|
||||
label_Back = lv_label_create(buttonBack, NULL);
|
||||
|
||||
if (gCfgItems.multiple_language != 0) {
|
||||
lv_label_set_text(label_Back, common_menu.text_back);
|
||||
lv_obj_align(label_Back, buttonBack, LV_ALIGN_CENTER, 0, 0);
|
||||
|
||||
lv_label_set_text(labelMachine, MachinePara_menu.MachineSetting);
|
||||
lv_obj_align(labelMachine, buttonMachine, LV_ALIGN_IN_LEFT_MID, 0, 0);
|
||||
|
||||
lv_label_set_text(labelMotor, MachinePara_menu.MotorSetting);
|
||||
lv_obj_align(labelMotor, buttonMotor, LV_ALIGN_IN_LEFT_MID, 0, 0);
|
||||
|
||||
lv_label_set_text(labelAdvance, MachinePara_menu.AdvanceSetting);
|
||||
lv_obj_align(labelAdvance, buttonAdvance, LV_ALIGN_IN_LEFT_MID, 0, 0);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
void lv_clear_machine_para() { lv_obj_del(scr); }
|
||||
|
||||
#endif // HAS_TFT_LVGL_UI
|
33
Marlin/src/lcd/extui/lib/mks_ui/draw_machine_para.h
Normal file
33
Marlin/src/lcd/extui/lib/mks_ui/draw_machine_para.h
Normal file
|
@ -0,0 +1,33 @@
|
|||
/**
|
||||
* Marlin 3D Printer Firmware
|
||||
* Copyright (c) 2020 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
|
||||
*
|
||||
* Based on Sprinter and grbl.
|
||||
* Copyright (c) 2011 Camiel Gubbels / Erik van der Zalm
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*
|
||||
*/
|
||||
#pragma once
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" { /* C-declarations for C++ */
|
||||
#endif
|
||||
|
||||
extern void lv_draw_machine_para(void);
|
||||
extern void lv_clear_machine_para();
|
||||
|
||||
#ifdef __cplusplus
|
||||
} /* C-declarations for C++ */
|
||||
#endif
|
241
Marlin/src/lcd/extui/lib/mks_ui/draw_machine_settings.cpp
Normal file
241
Marlin/src/lcd/extui/lib/mks_ui/draw_machine_settings.cpp
Normal file
|
@ -0,0 +1,241 @@
|
|||
/**
|
||||
* Marlin 3D Printer Firmware
|
||||
* Copyright (c) 2020 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
|
||||
*
|
||||
* Based on Sprinter and grbl.
|
||||
* Copyright (c) 2011 Camiel Gubbels / Erik van der Zalm
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*
|
||||
*/
|
||||
#include "../../../../inc/MarlinConfigPre.h"
|
||||
|
||||
#if HAS_TFT_LVGL_UI
|
||||
|
||||
#include "lv_conf.h"
|
||||
#include "draw_ui.h"
|
||||
|
||||
#include "../../../../MarlinCore.h"
|
||||
|
||||
static lv_obj_t * scr;
|
||||
|
||||
#define ID_MACHINE_RETURN 1
|
||||
#define ID_MACHINE_ACCELERATION 2
|
||||
#define ID_MACHINE_ACCELERATION_ARROW 3
|
||||
#define ID_MACHINE_FEEDRATE 4
|
||||
#define ID_MACHINE_FEEDRATE_ARROW 5
|
||||
#define ID_MACHINE_JERK 6
|
||||
#define ID_MACHINE_JERK_ARROW 7
|
||||
|
||||
static void event_handler(lv_obj_t * obj, lv_event_t event) {
|
||||
switch (obj->mks_obj_id) {
|
||||
case ID_MACHINE_RETURN:
|
||||
if (event == LV_EVENT_CLICKED) {
|
||||
|
||||
}
|
||||
else if (event == LV_EVENT_RELEASED) {
|
||||
lv_clear_machine_settings();
|
||||
draw_return_ui();
|
||||
}
|
||||
break;
|
||||
case ID_MACHINE_ACCELERATION:
|
||||
if (event == LV_EVENT_CLICKED) {
|
||||
|
||||
}
|
||||
else if (event == LV_EVENT_RELEASED) {
|
||||
lv_clear_machine_settings();
|
||||
lv_draw_acceleration_settings();
|
||||
}
|
||||
break;
|
||||
case ID_MACHINE_ACCELERATION_ARROW:
|
||||
if (event == LV_EVENT_CLICKED) {
|
||||
|
||||
}
|
||||
else if (event == LV_EVENT_RELEASED) {
|
||||
lv_clear_machine_settings();
|
||||
lv_draw_acceleration_settings();
|
||||
}
|
||||
break;
|
||||
case ID_MACHINE_FEEDRATE:
|
||||
if (event == LV_EVENT_CLICKED) {
|
||||
|
||||
}
|
||||
else if (event == LV_EVENT_RELEASED) {
|
||||
lv_clear_machine_settings();
|
||||
lv_draw_max_feedrate_settings();
|
||||
}
|
||||
break;
|
||||
case ID_MACHINE_FEEDRATE_ARROW:
|
||||
if (event == LV_EVENT_CLICKED) {
|
||||
|
||||
}
|
||||
else if (event == LV_EVENT_RELEASED) {
|
||||
lv_clear_machine_settings();
|
||||
lv_draw_max_feedrate_settings();
|
||||
}
|
||||
break;
|
||||
#if HAS_CLASSIC_JERK
|
||||
case ID_MACHINE_JERK:
|
||||
if (event == LV_EVENT_CLICKED) {
|
||||
|
||||
}
|
||||
else if (event == LV_EVENT_RELEASED) {
|
||||
lv_clear_machine_settings();
|
||||
lv_draw_jerk_settings();
|
||||
}
|
||||
break;
|
||||
case ID_MACHINE_JERK_ARROW:
|
||||
if (event == LV_EVENT_CLICKED) {
|
||||
|
||||
}
|
||||
else if (event == LV_EVENT_RELEASED) {
|
||||
lv_clear_machine_settings();
|
||||
lv_draw_jerk_settings();
|
||||
}
|
||||
break;
|
||||
#endif
|
||||
}
|
||||
}
|
||||
|
||||
void lv_draw_machine_settings(void) {
|
||||
lv_obj_t *buttonBack, *label_Back;
|
||||
lv_obj_t *buttonAcceleration, *labelAcceleration, *buttonAccelerationNarrow;
|
||||
lv_obj_t *buttonMaxFeedrate, *labelMaxFeedrate, *buttonMaxFeedrateNarrow;
|
||||
#if HAS_CLASSIC_JERK
|
||||
lv_obj_t *buttonJerk, *labelJerk, *buttonJerkNarrow;
|
||||
#endif
|
||||
lv_obj_t * line1, * line2;
|
||||
#if HAS_CLASSIC_JERK
|
||||
lv_obj_t * line3;
|
||||
#endif
|
||||
if (disp_state_stack._disp_state[disp_state_stack._disp_index] != MACHINE_SETTINGS_UI) {
|
||||
disp_state_stack._disp_index++;
|
||||
disp_state_stack._disp_state[disp_state_stack._disp_index] = MACHINE_SETTINGS_UI;
|
||||
}
|
||||
disp_state = MACHINE_SETTINGS_UI;
|
||||
|
||||
scr = lv_obj_create(NULL, NULL);
|
||||
|
||||
lv_obj_set_style(scr, &tft_style_scr);
|
||||
lv_scr_load(scr);
|
||||
lv_obj_clean(scr);
|
||||
|
||||
lv_obj_t * title = lv_label_create(scr, NULL);
|
||||
lv_obj_set_style(title, &tft_style_label_rel);
|
||||
lv_obj_set_pos(title, TITLE_XPOS, TITLE_YPOS);
|
||||
lv_label_set_text(title, machine_menu.MachineConfigTitle);
|
||||
|
||||
lv_refr_now(lv_refr_get_disp_refreshing());
|
||||
|
||||
LV_IMG_DECLARE(bmp_para_back);
|
||||
LV_IMG_DECLARE(bmp_para_arrow);
|
||||
|
||||
buttonAcceleration = lv_btn_create(scr, NULL); /*Add a button the current screen*/
|
||||
lv_obj_set_pos(buttonAcceleration, PARA_UI_POS_X, PARA_UI_POS_Y); /*Set its position*/
|
||||
lv_obj_set_size(buttonAcceleration, PARA_UI_SIZE_X, PARA_UI_SIZE_Y); /*Set its size*/
|
||||
// lv_obj_set_event_cb(buttonMachine, event_handler);
|
||||
lv_obj_set_event_cb_mks(buttonAcceleration, event_handler, ID_MACHINE_ACCELERATION, NULL, 0);
|
||||
lv_btn_set_style(buttonAcceleration, LV_BTN_STYLE_REL, &tft_style_label_rel); /*Set the button's released style*/
|
||||
lv_btn_set_style(buttonAcceleration, LV_BTN_STYLE_PR, &tft_style_label_pre); /*Set the button's pressed style*/
|
||||
lv_btn_set_layout(buttonAcceleration, LV_LAYOUT_OFF);
|
||||
labelAcceleration = lv_label_create(buttonAcceleration, NULL); /*Add a label to the button*/
|
||||
|
||||
buttonAccelerationNarrow = lv_imgbtn_create(scr, NULL);
|
||||
lv_obj_set_pos(buttonAccelerationNarrow, PARA_UI_POS_X + PARA_UI_SIZE_X, PARA_UI_POS_Y + PARA_UI_ARROW_V);
|
||||
lv_obj_set_event_cb_mks(buttonAccelerationNarrow, event_handler, ID_MACHINE_ACCELERATION_ARROW, "bmp_arrow.bin", 0);
|
||||
lv_imgbtn_set_src(buttonAccelerationNarrow, LV_BTN_STATE_REL, &bmp_para_arrow);
|
||||
lv_imgbtn_set_src(buttonAccelerationNarrow, LV_BTN_STATE_PR, &bmp_para_arrow);
|
||||
lv_imgbtn_set_style(buttonAccelerationNarrow, LV_BTN_STATE_PR, &tft_style_label_pre);
|
||||
lv_imgbtn_set_style(buttonAccelerationNarrow, LV_BTN_STATE_REL, &tft_style_label_rel);
|
||||
lv_btn_set_layout(buttonAccelerationNarrow, LV_LAYOUT_OFF);
|
||||
|
||||
line1 = lv_line_create(lv_scr_act(), NULL);
|
||||
lv_ex_line(line1, line_points[0]);
|
||||
|
||||
buttonMaxFeedrate = lv_btn_create(scr, NULL); /*Add a button the current screen*/
|
||||
lv_obj_set_pos(buttonMaxFeedrate, PARA_UI_POS_X, PARA_UI_POS_Y * 2); /*Set its position*/
|
||||
lv_obj_set_size(buttonMaxFeedrate, PARA_UI_SIZE_X, PARA_UI_SIZE_Y); /*Set its size*/
|
||||
// lv_obj_set_event_cb(buttonMachine, event_handler);
|
||||
lv_obj_set_event_cb_mks(buttonMaxFeedrate, event_handler, ID_MACHINE_FEEDRATE, NULL, 0);
|
||||
lv_btn_set_style(buttonMaxFeedrate, LV_BTN_STYLE_REL, &tft_style_label_rel); /*Set the button's released style*/
|
||||
lv_btn_set_style(buttonMaxFeedrate, LV_BTN_STYLE_PR, &tft_style_label_pre); /*Set the button's pressed style*/
|
||||
lv_btn_set_layout(buttonMaxFeedrate, LV_LAYOUT_OFF);
|
||||
labelMaxFeedrate = lv_label_create(buttonMaxFeedrate, NULL); /*Add a label to the button*/
|
||||
|
||||
buttonMaxFeedrateNarrow = lv_imgbtn_create(scr, NULL);
|
||||
lv_obj_set_pos(buttonMaxFeedrateNarrow, PARA_UI_POS_X + PARA_UI_SIZE_X, PARA_UI_POS_Y * 2 + PARA_UI_ARROW_V);
|
||||
lv_obj_set_event_cb_mks(buttonMaxFeedrateNarrow, event_handler, ID_MACHINE_FEEDRATE_ARROW, "bmp_arrow.bin", 0);
|
||||
lv_imgbtn_set_src(buttonMaxFeedrateNarrow, LV_BTN_STATE_REL, &bmp_para_arrow);
|
||||
lv_imgbtn_set_src(buttonMaxFeedrateNarrow, LV_BTN_STATE_PR, &bmp_para_arrow);
|
||||
lv_imgbtn_set_style(buttonMaxFeedrateNarrow, LV_BTN_STATE_PR, &tft_style_label_pre);
|
||||
lv_imgbtn_set_style(buttonMaxFeedrateNarrow, LV_BTN_STATE_REL, &tft_style_label_rel);
|
||||
lv_btn_set_layout(buttonMaxFeedrateNarrow, LV_LAYOUT_OFF);
|
||||
|
||||
line2 = lv_line_create(lv_scr_act(), NULL);
|
||||
lv_ex_line(line2, line_points[1]);
|
||||
|
||||
#if HAS_CLASSIC_JERK
|
||||
buttonJerk = lv_btn_create(scr, NULL); /*Add a button the current screen*/
|
||||
lv_obj_set_pos(buttonJerk, PARA_UI_POS_X, PARA_UI_POS_Y * 3); /*Set its position*/
|
||||
lv_obj_set_size(buttonJerk, PARA_UI_SIZE_X, PARA_UI_SIZE_Y); /*Set its size*/
|
||||
// lv_obj_set_event_cb(buttonMotor, event_handler);
|
||||
lv_obj_set_event_cb_mks(buttonJerk, event_handler, ID_MACHINE_JERK, NULL, 0);
|
||||
lv_btn_set_style(buttonJerk, LV_BTN_STYLE_REL, &tft_style_label_rel); /*Set the button's released style*/
|
||||
lv_btn_set_style(buttonJerk, LV_BTN_STYLE_PR, &tft_style_label_pre); /*Set the button's pressed style*/
|
||||
lv_btn_set_layout(buttonJerk, LV_LAYOUT_OFF);
|
||||
labelJerk = lv_label_create(buttonJerk, NULL); /*Add a label to the button*/
|
||||
|
||||
buttonJerkNarrow = lv_imgbtn_create(scr, NULL);
|
||||
lv_obj_set_pos(buttonJerkNarrow, PARA_UI_POS_X + PARA_UI_SIZE_X, PARA_UI_POS_Y * 3 + PARA_UI_ARROW_V);
|
||||
lv_obj_set_event_cb_mks(buttonJerkNarrow, event_handler, ID_MACHINE_JERK_ARROW, "bmp_arrow.bin", 0);
|
||||
lv_imgbtn_set_src(buttonJerkNarrow, LV_BTN_STATE_REL, &bmp_para_arrow);
|
||||
lv_imgbtn_set_src(buttonJerkNarrow, LV_BTN_STATE_PR, &bmp_para_arrow);
|
||||
lv_imgbtn_set_style(buttonJerkNarrow, LV_BTN_STATE_PR, &tft_style_label_pre);
|
||||
lv_imgbtn_set_style(buttonJerkNarrow, LV_BTN_STATE_REL, &tft_style_label_rel);
|
||||
lv_btn_set_layout(buttonJerkNarrow, LV_LAYOUT_OFF);
|
||||
|
||||
line3 = lv_line_create(lv_scr_act(), NULL);
|
||||
lv_ex_line(line3, line_points[2]);
|
||||
#endif
|
||||
|
||||
buttonBack = lv_imgbtn_create(scr, NULL);
|
||||
lv_obj_set_event_cb_mks(buttonBack, event_handler, ID_MACHINE_RETURN, "bmp_back70x40.bin", 0);
|
||||
lv_imgbtn_set_src(buttonBack, LV_BTN_STATE_REL, &bmp_para_back);
|
||||
lv_imgbtn_set_src(buttonBack, LV_BTN_STATE_PR, &bmp_para_back);
|
||||
lv_imgbtn_set_style(buttonBack, LV_BTN_STATE_PR, &tft_style_label_pre);
|
||||
lv_imgbtn_set_style(buttonBack, LV_BTN_STATE_REL, &tft_style_label_rel);
|
||||
|
||||
lv_obj_set_pos(buttonBack, PARA_UI_BACL_POS_X, PARA_UI_BACL_POS_Y);
|
||||
lv_btn_set_layout(buttonBack, LV_LAYOUT_OFF);
|
||||
label_Back = lv_label_create(buttonBack, NULL);
|
||||
|
||||
if (gCfgItems.multiple_language != 0) {
|
||||
lv_label_set_text(label_Back, common_menu.text_back);
|
||||
lv_obj_align(label_Back, buttonBack, LV_ALIGN_CENTER, 0, 0);
|
||||
|
||||
lv_label_set_text(labelAcceleration, machine_menu.AccelerationConf);
|
||||
lv_obj_align(labelAcceleration, buttonAcceleration, LV_ALIGN_IN_LEFT_MID, 0, 0);
|
||||
|
||||
lv_label_set_text(labelMaxFeedrate, machine_menu.MaxFeedRateConf);
|
||||
lv_obj_align(labelMaxFeedrate, buttonMaxFeedrate, LV_ALIGN_IN_LEFT_MID, 0, 0);
|
||||
#if HAS_CLASSIC_JERK
|
||||
lv_label_set_text(labelJerk, machine_menu.JerkConf);
|
||||
lv_obj_align(labelJerk, buttonJerk, LV_ALIGN_IN_LEFT_MID, 0, 0);
|
||||
#endif
|
||||
}
|
||||
}
|
||||
|
||||
void lv_clear_machine_settings() { lv_obj_del(scr); }
|
||||
|
||||
#endif // HAS_TFT_LVGL_UI
|
33
Marlin/src/lcd/extui/lib/mks_ui/draw_machine_settings.h
Normal file
33
Marlin/src/lcd/extui/lib/mks_ui/draw_machine_settings.h
Normal file
|
@ -0,0 +1,33 @@
|
|||
/**
|
||||
* Marlin 3D Printer Firmware
|
||||
* Copyright (c) 2020 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
|
||||
*
|
||||
* Based on Sprinter and grbl.
|
||||
* Copyright (c) 2011 Camiel Gubbels / Erik van der Zalm
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*
|
||||
*/
|
||||
#pragma once
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" { /* C-declarations for C++ */
|
||||
#endif
|
||||
|
||||
extern void lv_draw_machine_settings(void);
|
||||
extern void lv_clear_machine_settings();
|
||||
|
||||
#ifdef __cplusplus
|
||||
} /* C-declarations for C++ */
|
||||
#endif
|
|
@ -21,7 +21,7 @@
|
|||
*/
|
||||
#include "../../../../inc/MarlinConfigPre.h"
|
||||
|
||||
#if ENABLED(TFT_LVGL_UI)
|
||||
#if HAS_TFT_LVGL_UI
|
||||
|
||||
#include "../../../../MarlinCore.h"
|
||||
#include "lv_conf.h"
|
||||
|
@ -40,7 +40,6 @@ static lv_obj_t * scr;
|
|||
#define ID_M_POINT3 3
|
||||
#define ID_M_POINT4 4
|
||||
#define ID_M_POINT5 5
|
||||
|
||||
#define ID_MANUAL_RETURN 6
|
||||
|
||||
static void event_handler(lv_obj_t * obj, lv_event_t event) {
|
||||
|
@ -53,16 +52,16 @@ static void event_handler(lv_obj_t * obj, lv_event_t event) {
|
|||
|
||||
if (queue.length == 0) {
|
||||
if (uiCfg.leveling_first_time) {
|
||||
queue.enqueue_one_P(PSTR("G28"));
|
||||
queue.enqueue_now_P(PSTR("G28"));
|
||||
uiCfg.leveling_first_time = 0;
|
||||
}
|
||||
|
||||
queue.enqueue_one_P(PSTR("G1 Z10"));
|
||||
queue.enqueue_now_P(PSTR("G1 Z10"));
|
||||
|
||||
memset(public_buf_l, 0, sizeof(public_buf_l));
|
||||
sprintf(public_buf_l, "G1 X%d Y%d", X_MIN_POS + 30, Y_MIN_POS + 30);
|
||||
queue.enqueue_one_P(PSTR(public_buf_l));
|
||||
queue.enqueue_one_P(PSTR("G1 Z0"));
|
||||
ZERO(public_buf_l);
|
||||
sprintf_P(public_buf_l, PSTR("G1 X%d Y%d"), X_MIN_POS + 30, Y_MIN_POS + 30);
|
||||
queue.enqueue_one_now(public_buf_l);
|
||||
queue.enqueue_now_P(PSTR("G1 Z0"));
|
||||
}
|
||||
}
|
||||
break;
|
||||
|
@ -73,16 +72,16 @@ static void event_handler(lv_obj_t * obj, lv_event_t event) {
|
|||
else if (event == LV_EVENT_RELEASED) {
|
||||
if (queue.length == 0) {
|
||||
if (uiCfg.leveling_first_time) {
|
||||
queue.enqueue_one_P(PSTR("G28"));
|
||||
queue.enqueue_now_P(PSTR("G28"));
|
||||
uiCfg.leveling_first_time = 0;
|
||||
}
|
||||
|
||||
queue.enqueue_one_P(PSTR("G1 Z10"));
|
||||
queue.enqueue_now_P(PSTR("G1 Z10"));
|
||||
|
||||
memset(public_buf_l, 0, sizeof(public_buf_l));
|
||||
sprintf(public_buf_l, "G1 X%d Y%d", X_MAX_POS - 30, Y_MIN_POS + 30);
|
||||
queue.enqueue_one_P(PSTR(public_buf_l));
|
||||
queue.enqueue_one_P(PSTR("G1 Z0"));
|
||||
ZERO(public_buf_l);
|
||||
sprintf_P(public_buf_l, PSTR("G1 X%d Y%d"), X_MAX_POS - 30, Y_MIN_POS + 30);
|
||||
queue.enqueue_one_now(public_buf_l);
|
||||
queue.enqueue_now_P(PSTR("G1 Z0"));
|
||||
}
|
||||
}
|
||||
break;
|
||||
|
@ -93,16 +92,16 @@ static void event_handler(lv_obj_t * obj, lv_event_t event) {
|
|||
else if (event == LV_EVENT_RELEASED) {
|
||||
if (queue.length == 0) {
|
||||
if (uiCfg.leveling_first_time) {
|
||||
queue.enqueue_one_P(PSTR("G28"));
|
||||
queue.enqueue_now_P(PSTR("G28"));
|
||||
uiCfg.leveling_first_time = 0;
|
||||
}
|
||||
|
||||
queue.enqueue_one_P(PSTR("G1 Z10"));
|
||||
queue.enqueue_now_P(PSTR("G1 Z10"));
|
||||
|
||||
memset(public_buf_l, 0, sizeof(public_buf_l));
|
||||
sprintf(public_buf_l, "G1 X%d Y%d", X_MAX_POS - 30, Y_MAX_POS - 30);
|
||||
queue.enqueue_one_P(PSTR(public_buf_l));
|
||||
queue.enqueue_one_P(PSTR("G1 Z0"));
|
||||
ZERO(public_buf_l);
|
||||
sprintf_P(public_buf_l, PSTR("G1 X%d Y%d"), X_MAX_POS - 30, Y_MAX_POS - 30);
|
||||
queue.enqueue_one_now(public_buf_l);
|
||||
queue.enqueue_now_P(PSTR("G1 Z0"));
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -114,16 +113,16 @@ static void event_handler(lv_obj_t * obj, lv_event_t event) {
|
|||
else if (event == LV_EVENT_RELEASED) {
|
||||
if (queue.length == 0) {
|
||||
if (uiCfg.leveling_first_time) {
|
||||
queue.enqueue_one_P(PSTR("G28"));
|
||||
queue.enqueue_now_P(PSTR("G28"));
|
||||
uiCfg.leveling_first_time = 0;
|
||||
}
|
||||
|
||||
queue.enqueue_one_P(PSTR("G1 Z10"));
|
||||
queue.enqueue_now_P(PSTR("G1 Z10"));
|
||||
|
||||
memset(public_buf_l, 0, sizeof(public_buf_l));
|
||||
sprintf(public_buf_l, "G1 X%d Y%d", X_MIN_POS + 30, Y_MAX_POS - 30);
|
||||
queue.enqueue_one_P(PSTR(public_buf_l));
|
||||
queue.enqueue_one_P(PSTR("G1 Z0"));
|
||||
ZERO(public_buf_l);
|
||||
sprintf_P(public_buf_l, PSTR("G1 X%d Y%d"), X_MIN_POS + 30, Y_MAX_POS - 30);
|
||||
queue.enqueue_one_now(public_buf_l);
|
||||
queue.enqueue_now_P(PSTR("G1 Z0"));
|
||||
}
|
||||
}
|
||||
break;
|
||||
|
@ -134,16 +133,16 @@ static void event_handler(lv_obj_t * obj, lv_event_t event) {
|
|||
else if (event == LV_EVENT_RELEASED) {
|
||||
if (queue.length == 0) {
|
||||
if (uiCfg.leveling_first_time) {
|
||||
queue.enqueue_one_P(PSTR("G28"));
|
||||
queue.enqueue_now_P(PSTR("G28"));
|
||||
uiCfg.leveling_first_time = 0;
|
||||
}
|
||||
|
||||
queue.enqueue_one_P(PSTR("G1 Z10"));
|
||||
queue.enqueue_now_P(PSTR("G1 Z10"));
|
||||
|
||||
memset(public_buf_l, 0, sizeof(public_buf_l));
|
||||
sprintf(public_buf_l, "G1 X%d Y%d", X_BED_SIZE / 2, Y_BED_SIZE / 2);
|
||||
queue.enqueue_one_P(PSTR(public_buf_l));
|
||||
queue.enqueue_one_P(PSTR("G1 Z0"));
|
||||
ZERO(public_buf_l);
|
||||
sprintf_P(public_buf_l, PSTR("G1 X%d Y%d"), X_BED_SIZE / 2, Y_BED_SIZE / 2);
|
||||
queue.enqueue_one_now(public_buf_l);
|
||||
queue.enqueue_now_P(PSTR("G1 Z0"));
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -157,7 +156,6 @@ static void event_handler(lv_obj_t * obj, lv_event_t event) {
|
|||
lv_draw_tool();
|
||||
}
|
||||
break;
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -181,7 +179,7 @@ void lv_draw_manualLevel(void) {
|
|||
lv_obj_clean(scr);
|
||||
|
||||
lv_obj_t * title = lv_label_create(scr, NULL);
|
||||
lv_obj_set_style(title, &tft_style_lable_rel);
|
||||
lv_obj_set_style(title, &tft_style_label_rel);
|
||||
lv_obj_set_pos(title, TITLE_XPOS, TITLE_YPOS);
|
||||
lv_label_set_text(title, creat_title_text());
|
||||
|
||||
|
@ -197,42 +195,42 @@ void lv_draw_manualLevel(void) {
|
|||
buttonPoint5 = lv_imgbtn_create(scr, NULL);
|
||||
buttonBack = lv_imgbtn_create(scr, NULL);
|
||||
|
||||
lv_obj_set_event_cb_mks(buttonPoint1, event_handler, ID_M_POINT1, "bmp_Leveling1.bin", 0);
|
||||
lv_obj_set_event_cb_mks(buttonPoint1, event_handler, ID_M_POINT1, "bmp_leveling1.bin", 0);
|
||||
lv_imgbtn_set_src(buttonPoint1, LV_BTN_STATE_REL, &bmp_pic);
|
||||
lv_imgbtn_set_src(buttonPoint1, LV_BTN_STATE_PR, &bmp_pic);
|
||||
lv_imgbtn_set_style(buttonPoint1, LV_BTN_STATE_PR, &tft_style_lable_pre);
|
||||
lv_imgbtn_set_style(buttonPoint1, LV_BTN_STATE_REL, &tft_style_lable_rel);
|
||||
lv_imgbtn_set_style(buttonPoint1, LV_BTN_STATE_PR, &tft_style_label_pre);
|
||||
lv_imgbtn_set_style(buttonPoint1, LV_BTN_STATE_REL, &tft_style_label_rel);
|
||||
lv_obj_clear_protect(buttonPoint1, LV_PROTECT_FOLLOW);
|
||||
#if 1
|
||||
lv_obj_set_event_cb_mks(buttonPoint2, event_handler, ID_M_POINT2, "bmp_Leveling2.bin", 0);
|
||||
lv_obj_set_event_cb_mks(buttonPoint2, event_handler, ID_M_POINT2, "bmp_leveling2.bin", 0);
|
||||
lv_imgbtn_set_src(buttonPoint2, LV_BTN_STATE_REL, &bmp_pic);
|
||||
lv_imgbtn_set_src(buttonPoint2, LV_BTN_STATE_PR, &bmp_pic);
|
||||
lv_imgbtn_set_style(buttonPoint2, LV_BTN_STATE_PR, &tft_style_lable_pre);
|
||||
lv_imgbtn_set_style(buttonPoint2, LV_BTN_STATE_REL, &tft_style_lable_rel);
|
||||
lv_imgbtn_set_style(buttonPoint2, LV_BTN_STATE_PR, &tft_style_label_pre);
|
||||
lv_imgbtn_set_style(buttonPoint2, LV_BTN_STATE_REL, &tft_style_label_rel);
|
||||
|
||||
lv_obj_set_event_cb_mks(buttonPoint3, event_handler, ID_M_POINT3, "bmp_Leveling3.bin", 0);
|
||||
lv_obj_set_event_cb_mks(buttonPoint3, event_handler, ID_M_POINT3, "bmp_leveling3.bin", 0);
|
||||
lv_imgbtn_set_src(buttonPoint3, LV_BTN_STATE_REL, &bmp_pic);
|
||||
lv_imgbtn_set_src(buttonPoint3, LV_BTN_STATE_PR, &bmp_pic);
|
||||
lv_imgbtn_set_style(buttonPoint3, LV_BTN_STATE_PR, &tft_style_lable_pre);
|
||||
lv_imgbtn_set_style(buttonPoint3, LV_BTN_STATE_REL, &tft_style_lable_rel);
|
||||
lv_imgbtn_set_style(buttonPoint3, LV_BTN_STATE_PR, &tft_style_label_pre);
|
||||
lv_imgbtn_set_style(buttonPoint3, LV_BTN_STATE_REL, &tft_style_label_rel);
|
||||
|
||||
lv_obj_set_event_cb_mks(buttonPoint4, event_handler, ID_M_POINT4, "bmp_Leveling4.bin", 0);
|
||||
lv_obj_set_event_cb_mks(buttonPoint4, event_handler, ID_M_POINT4, "bmp_leveling4.bin", 0);
|
||||
lv_imgbtn_set_src(buttonPoint4, LV_BTN_STATE_REL, &bmp_pic);
|
||||
lv_imgbtn_set_src(buttonPoint4, LV_BTN_STATE_PR, &bmp_pic);
|
||||
lv_imgbtn_set_style(buttonPoint4, LV_BTN_STATE_PR, &tft_style_lable_pre);
|
||||
lv_imgbtn_set_style(buttonPoint4, LV_BTN_STATE_REL, &tft_style_lable_rel);
|
||||
lv_imgbtn_set_style(buttonPoint4, LV_BTN_STATE_PR, &tft_style_label_pre);
|
||||
lv_imgbtn_set_style(buttonPoint4, LV_BTN_STATE_REL, &tft_style_label_rel);
|
||||
|
||||
lv_obj_set_event_cb_mks(buttonPoint5, event_handler, ID_M_POINT5, "bmp_Leveling5.bin", 0);
|
||||
lv_obj_set_event_cb_mks(buttonPoint5, event_handler, ID_M_POINT5, "bmp_leveling5.bin", 0);
|
||||
lv_imgbtn_set_src(buttonPoint5, LV_BTN_STATE_REL, &bmp_pic);
|
||||
lv_imgbtn_set_src(buttonPoint5, LV_BTN_STATE_PR, &bmp_pic);
|
||||
lv_imgbtn_set_style(buttonPoint5, LV_BTN_STATE_PR, &tft_style_lable_pre);
|
||||
lv_imgbtn_set_style(buttonPoint5, LV_BTN_STATE_REL, &tft_style_lable_rel);
|
||||
lv_imgbtn_set_style(buttonPoint5, LV_BTN_STATE_PR, &tft_style_label_pre);
|
||||
lv_imgbtn_set_style(buttonPoint5, LV_BTN_STATE_REL, &tft_style_label_rel);
|
||||
|
||||
lv_obj_set_event_cb_mks(buttonBack, event_handler, ID_MANUAL_RETURN, "bmp_Return.bin", 0);
|
||||
lv_obj_set_event_cb_mks(buttonBack, event_handler, ID_MANUAL_RETURN, "bmp_return.bin", 0);
|
||||
lv_imgbtn_set_src(buttonBack, LV_BTN_STATE_REL, &bmp_pic);
|
||||
lv_imgbtn_set_src(buttonBack, LV_BTN_STATE_PR, &bmp_pic);
|
||||
lv_imgbtn_set_style(buttonBack, LV_BTN_STATE_PR, &tft_style_lable_pre);
|
||||
lv_imgbtn_set_style(buttonBack, LV_BTN_STATE_REL, &tft_style_lable_rel);
|
||||
lv_imgbtn_set_style(buttonBack, LV_BTN_STATE_PR, &tft_style_label_pre);
|
||||
lv_imgbtn_set_style(buttonBack, LV_BTN_STATE_REL, &tft_style_label_rel);
|
||||
#endif
|
||||
|
||||
lv_obj_set_pos(buttonPoint1, INTERVAL_V, titleHeight);
|
||||
|
@ -257,7 +255,6 @@ void lv_draw_manualLevel(void) {
|
|||
lv_obj_t * label_Point5 = lv_label_create(buttonPoint5, NULL);
|
||||
lv_obj_t * label_Back = lv_label_create(buttonBack, NULL);
|
||||
|
||||
|
||||
if (gCfgItems.multiple_language != 0) {
|
||||
lv_label_set_text(label_Point1, leveling_menu.position1);
|
||||
lv_obj_align(label_Point1, buttonPoint1, LV_ALIGN_IN_BOTTOM_MID, 0, BUTTON_TEXT_Y_OFFSET);
|
||||
|
@ -281,4 +278,4 @@ void lv_draw_manualLevel(void) {
|
|||
|
||||
void lv_clear_manualLevel() { lv_obj_del(scr); }
|
||||
|
||||
#endif // TFT_LVGL_UI
|
||||
#endif // HAS_TFT_LVGL_UI
|
||||
|
|
359
Marlin/src/lcd/extui/lib/mks_ui/draw_max_feedrate_settings.cpp
Normal file
359
Marlin/src/lcd/extui/lib/mks_ui/draw_max_feedrate_settings.cpp
Normal file
|
@ -0,0 +1,359 @@
|
|||
/**
|
||||
* Marlin 3D Printer Firmware
|
||||
* Copyright (c) 2020 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
|
||||
*
|
||||
* Based on Sprinter and grbl.
|
||||
* Copyright (c) 2011 Camiel Gubbels / Erik van der Zalm
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*
|
||||
*/
|
||||
#include "../../../../inc/MarlinConfigPre.h"
|
||||
|
||||
#if HAS_TFT_LVGL_UI
|
||||
|
||||
#include "lv_conf.h"
|
||||
#include "draw_ui.h"
|
||||
|
||||
#include "../../../../MarlinCore.h"
|
||||
#include "../../../../module/planner.h"
|
||||
|
||||
static lv_obj_t * scr;
|
||||
|
||||
#define ID_FEED_RETURN 1
|
||||
#define ID_FEED_X 2
|
||||
#define ID_FEED_Y 3
|
||||
#define ID_FEED_Z 4
|
||||
#define ID_FEED_E0 5
|
||||
#define ID_FEED_E1 6
|
||||
#define ID_FEED_DOWN 7
|
||||
#define ID_FEED_UP 8
|
||||
|
||||
static void event_handler(lv_obj_t * obj, lv_event_t event) {
|
||||
switch (obj->mks_obj_id) {
|
||||
case ID_FEED_RETURN:
|
||||
if (event == LV_EVENT_CLICKED) {
|
||||
|
||||
}
|
||||
else if (event == LV_EVENT_RELEASED) {
|
||||
uiCfg.para_ui_page = 0;
|
||||
lv_clear_max_feedrate_settings();
|
||||
draw_return_ui();
|
||||
}
|
||||
break;
|
||||
case ID_FEED_X:
|
||||
if (event == LV_EVENT_CLICKED) {
|
||||
|
||||
}
|
||||
else if (event == LV_EVENT_RELEASED) {
|
||||
value = XMaxFeedRate;
|
||||
lv_clear_max_feedrate_settings();
|
||||
lv_draw_number_key();
|
||||
}
|
||||
break;
|
||||
case ID_FEED_Y:
|
||||
if (event == LV_EVENT_CLICKED) {
|
||||
|
||||
}
|
||||
else if (event == LV_EVENT_RELEASED) {
|
||||
value = YMaxFeedRate;
|
||||
lv_clear_max_feedrate_settings();
|
||||
lv_draw_number_key();
|
||||
}
|
||||
break;
|
||||
case ID_FEED_Z:
|
||||
if (event == LV_EVENT_CLICKED) {
|
||||
|
||||
}
|
||||
else if (event == LV_EVENT_RELEASED) {
|
||||
value = ZMaxFeedRate;
|
||||
lv_clear_max_feedrate_settings();
|
||||
lv_draw_number_key();
|
||||
}
|
||||
break;
|
||||
case ID_FEED_E0:
|
||||
if (event == LV_EVENT_CLICKED) {
|
||||
|
||||
}
|
||||
else if (event == LV_EVENT_RELEASED) {
|
||||
value = E0MaxFeedRate;
|
||||
lv_clear_max_feedrate_settings();
|
||||
lv_draw_number_key();
|
||||
}
|
||||
break;
|
||||
case ID_FEED_E1:
|
||||
if (event == LV_EVENT_CLICKED) {
|
||||
|
||||
}
|
||||
else if (event == LV_EVENT_RELEASED) {
|
||||
value = E1MaxFeedRate;
|
||||
lv_clear_max_feedrate_settings();
|
||||
lv_draw_number_key();
|
||||
}
|
||||
break;
|
||||
case ID_FEED_UP:
|
||||
if (event == LV_EVENT_CLICKED) {
|
||||
|
||||
}
|
||||
else if (event == LV_EVENT_RELEASED) {
|
||||
uiCfg.para_ui_page = 0;
|
||||
lv_clear_max_feedrate_settings();
|
||||
lv_draw_max_feedrate_settings();
|
||||
}
|
||||
break;
|
||||
case ID_FEED_DOWN:
|
||||
if (event == LV_EVENT_CLICKED) {
|
||||
|
||||
}
|
||||
else if (event == LV_EVENT_RELEASED) {
|
||||
uiCfg.para_ui_page = 1;
|
||||
lv_clear_max_feedrate_settings();
|
||||
lv_draw_max_feedrate_settings();
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
void lv_draw_max_feedrate_settings(void) {
|
||||
lv_obj_t *buttonBack = NULL, *label_Back = NULL, *buttonTurnPage = NULL, *labelTurnPage = NULL;
|
||||
lv_obj_t *buttonXText = NULL, *labelXText = NULL, *buttonXValue = NULL, *labelXValue = NULL;
|
||||
lv_obj_t *buttonYText = NULL, *labelYText = NULL, *buttonYValue = NULL, *labelYValue = NULL;
|
||||
lv_obj_t *buttonZText = NULL, *labelZText = NULL, *buttonZValue = NULL, *labelZValue = NULL;
|
||||
lv_obj_t *buttonE0Text = NULL, *labelE0Text = NULL, *buttonE0Value = NULL, *labelE0Value = NULL;
|
||||
lv_obj_t *buttonE1Text = NULL, *labelE1Text = NULL, *buttonE1Value = NULL, *labelE1Value = NULL;
|
||||
lv_obj_t * line1 = NULL, * line2 = NULL, * line3 = NULL, * line4 = NULL;
|
||||
if (disp_state_stack._disp_state[disp_state_stack._disp_index] != MAXFEEDRATE_UI) {
|
||||
disp_state_stack._disp_index++;
|
||||
disp_state_stack._disp_state[disp_state_stack._disp_index] = MAXFEEDRATE_UI;
|
||||
}
|
||||
disp_state = MAXFEEDRATE_UI;
|
||||
|
||||
scr = lv_obj_create(NULL, NULL);
|
||||
|
||||
lv_obj_set_style(scr, &tft_style_scr);
|
||||
lv_scr_load(scr);
|
||||
lv_obj_clean(scr);
|
||||
|
||||
lv_obj_t * title = lv_label_create(scr, NULL);
|
||||
lv_obj_set_style(title, &tft_style_label_rel);
|
||||
lv_obj_set_pos(title, TITLE_XPOS, TITLE_YPOS);
|
||||
lv_label_set_text(title, machine_menu.MaxFeedRateConfTitle);
|
||||
|
||||
lv_refr_now(lv_refr_get_disp_refreshing());
|
||||
|
||||
LV_IMG_DECLARE(bmp_para_back);
|
||||
// LV_IMG_DECLARE(bmp_para_arrow);
|
||||
LV_IMG_DECLARE(bmp_para_bank);
|
||||
|
||||
if (uiCfg.para_ui_page != 1) {
|
||||
buttonXText = lv_btn_create(scr, NULL); /*Add a button the current screen*/
|
||||
lv_obj_set_pos(buttonXText, PARA_UI_POS_X, PARA_UI_POS_Y); /*Set its position*/
|
||||
lv_obj_set_size(buttonXText, PARA_UI_VALUE_SIZE_X, PARA_UI_SIZE_Y); /*Set its size*/
|
||||
lv_obj_set_event_cb(buttonXText, event_handler);
|
||||
lv_btn_set_style(buttonXText, LV_BTN_STYLE_REL, &tft_style_label_rel); /*Set the button's released style*/
|
||||
lv_btn_set_style(buttonXText, LV_BTN_STYLE_PR, &tft_style_label_pre); /*Set the button's pressed style*/
|
||||
lv_btn_set_layout(buttonXText, LV_LAYOUT_OFF);
|
||||
labelXText = lv_label_create(buttonXText, NULL); /*Add a label to the button*/
|
||||
|
||||
buttonXValue = lv_imgbtn_create(scr, NULL);
|
||||
lv_obj_set_pos(buttonXValue, PARA_UI_VALUE_POS_X, PARA_UI_POS_Y + PARA_UI_VALUE_V);
|
||||
lv_obj_set_event_cb_mks(buttonXValue, event_handler, ID_FEED_X, "bmp_value_blank.bin", 0);
|
||||
lv_imgbtn_set_src(buttonXValue, LV_BTN_STATE_REL, &bmp_para_bank);
|
||||
lv_imgbtn_set_src(buttonXValue, LV_BTN_STATE_PR, &bmp_para_bank);
|
||||
lv_imgbtn_set_style(buttonXValue, LV_BTN_STATE_PR, &style_para_value_pre);
|
||||
lv_imgbtn_set_style(buttonXValue, LV_BTN_STATE_REL, &style_para_value_rel);
|
||||
lv_btn_set_layout(buttonXValue, LV_LAYOUT_OFF);
|
||||
labelXValue = lv_label_create(buttonXValue, NULL);
|
||||
|
||||
line1 = lv_line_create(scr, NULL);
|
||||
lv_ex_line(line1, line_points[0]);
|
||||
|
||||
buttonYText = lv_btn_create(scr, NULL); /*Add a button the current screen*/
|
||||
lv_obj_set_pos(buttonYText, PARA_UI_POS_X, PARA_UI_POS_Y * 2); /*Set its position*/
|
||||
lv_obj_set_size(buttonYText, PARA_UI_VALUE_SIZE_X, PARA_UI_SIZE_Y); /*Set its size*/
|
||||
lv_obj_set_event_cb(buttonYText, event_handler);
|
||||
lv_btn_set_style(buttonYText, LV_BTN_STYLE_REL, &tft_style_label_rel); /*Set the button's released style*/
|
||||
lv_btn_set_style(buttonYText, LV_BTN_STYLE_PR, &tft_style_label_pre); /*Set the button's pressed style*/
|
||||
lv_btn_set_layout(buttonYText, LV_LAYOUT_OFF);
|
||||
labelYText = lv_label_create(buttonYText, NULL); /*Add a label to the button*/
|
||||
|
||||
buttonYValue = lv_imgbtn_create(scr, NULL);
|
||||
lv_obj_set_pos(buttonYValue, PARA_UI_VALUE_POS_X, PARA_UI_POS_Y * 2 + PARA_UI_VALUE_V);
|
||||
lv_obj_set_event_cb_mks(buttonYValue, event_handler, ID_FEED_Y, "bmp_value_blank.bin", 0);
|
||||
lv_imgbtn_set_src(buttonYValue, LV_BTN_STATE_REL, &bmp_para_bank);
|
||||
lv_imgbtn_set_src(buttonYValue, LV_BTN_STATE_PR, &bmp_para_bank);
|
||||
lv_imgbtn_set_style(buttonYValue, LV_BTN_STATE_PR, &style_para_value_pre);
|
||||
lv_imgbtn_set_style(buttonYValue, LV_BTN_STATE_REL, &style_para_value_rel);
|
||||
lv_btn_set_layout(buttonYValue, LV_LAYOUT_OFF);
|
||||
labelYValue = lv_label_create(buttonYValue, NULL);
|
||||
|
||||
line2 = lv_line_create(scr, NULL);
|
||||
lv_ex_line(line2, line_points[1]);
|
||||
|
||||
buttonZText = lv_btn_create(scr, NULL); /*Add a button the current screen*/
|
||||
lv_obj_set_pos(buttonZText, PARA_UI_POS_X, PARA_UI_POS_Y * 3); /*Set its position*/
|
||||
lv_obj_set_size(buttonZText, PARA_UI_VALUE_SIZE_X, PARA_UI_SIZE_Y); /*Set its size*/
|
||||
lv_obj_set_event_cb(buttonZText, event_handler);
|
||||
lv_btn_set_style(buttonZText, LV_BTN_STYLE_REL, &tft_style_label_rel); /*Set the button's released style*/
|
||||
lv_btn_set_style(buttonZText, LV_BTN_STYLE_PR, &tft_style_label_pre); /*Set the button's pressed style*/
|
||||
lv_btn_set_layout(buttonZText, LV_LAYOUT_OFF);
|
||||
labelZText = lv_label_create(buttonZText, NULL); /*Add a label to the button*/
|
||||
|
||||
buttonZValue = lv_imgbtn_create(scr, NULL);
|
||||
lv_obj_set_pos(buttonZValue, PARA_UI_VALUE_POS_X, PARA_UI_POS_Y * 3 + PARA_UI_VALUE_V);
|
||||
lv_obj_set_event_cb_mks(buttonZValue, event_handler, ID_FEED_Z, "bmp_value_blank.bin", 0);
|
||||
lv_imgbtn_set_src(buttonZValue, LV_BTN_STATE_REL, &bmp_para_bank);
|
||||
lv_imgbtn_set_src(buttonZValue, LV_BTN_STATE_PR, &bmp_para_bank);
|
||||
lv_imgbtn_set_style(buttonZValue, LV_BTN_STATE_PR, &style_para_value_pre);
|
||||
lv_imgbtn_set_style(buttonZValue, LV_BTN_STATE_REL, &style_para_value_rel);
|
||||
lv_btn_set_layout(buttonZValue, LV_LAYOUT_OFF);
|
||||
labelZValue = lv_label_create(buttonZValue, NULL);
|
||||
|
||||
line3 = lv_line_create(scr, NULL);
|
||||
lv_ex_line(line3, line_points[2]);
|
||||
|
||||
buttonE0Text = lv_btn_create(scr, NULL); /*Add a button the current screen*/
|
||||
lv_obj_set_pos(buttonE0Text, PARA_UI_POS_X, PARA_UI_POS_Y * 4); /*Set its position*/
|
||||
lv_obj_set_size(buttonE0Text, PARA_UI_VALUE_SIZE_X, PARA_UI_SIZE_Y); /*Set its size*/
|
||||
lv_obj_set_event_cb(buttonE0Text, event_handler);
|
||||
lv_btn_set_style(buttonE0Text, LV_BTN_STYLE_REL, &tft_style_label_rel); /*Set the button's released style*/
|
||||
lv_btn_set_style(buttonE0Text, LV_BTN_STYLE_PR, &tft_style_label_pre); /*Set the button's pressed style*/
|
||||
lv_btn_set_layout(buttonE0Text, LV_LAYOUT_OFF);
|
||||
labelE0Text = lv_label_create(buttonE0Text, NULL); /*Add a label to the button*/
|
||||
|
||||
buttonE0Value = lv_imgbtn_create(scr, NULL);
|
||||
lv_obj_set_pos(buttonE0Value, PARA_UI_VALUE_POS_X, PARA_UI_POS_Y * 4 + PARA_UI_VALUE_V);
|
||||
lv_obj_set_event_cb_mks(buttonE0Value, event_handler, ID_FEED_E0, "bmp_value_blank.bin", 0);
|
||||
lv_imgbtn_set_src(buttonE0Value, LV_BTN_STATE_REL, &bmp_para_bank);
|
||||
lv_imgbtn_set_src(buttonE0Value, LV_BTN_STATE_PR, &bmp_para_bank);
|
||||
lv_imgbtn_set_style(buttonE0Value, LV_BTN_STATE_PR, &style_para_value_pre);
|
||||
lv_imgbtn_set_style(buttonE0Value, LV_BTN_STATE_REL, &style_para_value_rel);
|
||||
lv_btn_set_layout(buttonE0Value, LV_LAYOUT_OFF);
|
||||
labelE0Value = lv_label_create(buttonE0Value, NULL);
|
||||
|
||||
line4 = lv_line_create(scr, NULL);
|
||||
lv_ex_line(line4, line_points[3]);
|
||||
|
||||
buttonTurnPage = lv_imgbtn_create(scr, NULL);
|
||||
lv_obj_set_event_cb_mks(buttonTurnPage, event_handler, ID_FEED_DOWN, "bmp_back70x40.bin", 0);
|
||||
lv_imgbtn_set_src(buttonTurnPage, LV_BTN_STATE_REL, &bmp_para_back);
|
||||
lv_imgbtn_set_src(buttonTurnPage, LV_BTN_STATE_PR, &bmp_para_back);
|
||||
lv_imgbtn_set_style(buttonTurnPage, LV_BTN_STATE_PR, &tft_style_label_pre);
|
||||
lv_imgbtn_set_style(buttonTurnPage, LV_BTN_STATE_REL, &tft_style_label_rel);
|
||||
}
|
||||
else {
|
||||
buttonE1Text = lv_btn_create(scr, NULL); /*Add a button the current screen*/
|
||||
lv_obj_set_pos(buttonE1Text, PARA_UI_POS_X, PARA_UI_POS_Y); /*Set its position*/
|
||||
lv_obj_set_size(buttonE1Text, PARA_UI_VALUE_SIZE_X, PARA_UI_SIZE_Y); /*Set its size*/
|
||||
lv_obj_set_event_cb(buttonE1Text, event_handler);
|
||||
lv_btn_set_style(buttonE1Text, LV_BTN_STYLE_REL, &tft_style_label_rel); /*Set the button's released style*/
|
||||
lv_btn_set_style(buttonE1Text, LV_BTN_STYLE_PR, &tft_style_label_pre); /*Set the button's pressed style*/
|
||||
lv_btn_set_layout(buttonE1Text, LV_LAYOUT_OFF);
|
||||
labelE1Text = lv_label_create(buttonE1Text, NULL); /*Add a label to the button*/
|
||||
|
||||
buttonE1Value = lv_imgbtn_create(scr, NULL);
|
||||
lv_obj_set_pos(buttonE1Value, PARA_UI_VALUE_POS_X, PARA_UI_POS_Y + PARA_UI_VALUE_V);
|
||||
lv_obj_set_event_cb_mks(buttonE1Value, event_handler, ID_FEED_E1, "bmp_value_blank.bin", 0);
|
||||
lv_imgbtn_set_src(buttonE1Value, LV_BTN_STATE_REL, &bmp_para_bank);
|
||||
lv_imgbtn_set_src(buttonE1Value, LV_BTN_STATE_PR, &bmp_para_bank);
|
||||
lv_imgbtn_set_style(buttonE1Value, LV_BTN_STATE_PR, &style_para_value_pre);
|
||||
lv_imgbtn_set_style(buttonE1Value, LV_BTN_STATE_REL, &style_para_value_rel);
|
||||
lv_btn_set_layout(buttonE1Value, LV_LAYOUT_OFF);
|
||||
labelE1Value = lv_label_create(buttonE1Value, NULL);
|
||||
|
||||
line1 = lv_line_create(scr, NULL);
|
||||
lv_ex_line(line1, line_points[0]);
|
||||
|
||||
buttonTurnPage = lv_imgbtn_create(scr, NULL);
|
||||
lv_obj_set_event_cb_mks(buttonTurnPage, event_handler, ID_FEED_UP, "bmp_back70x40.bin", 0);
|
||||
lv_imgbtn_set_src(buttonTurnPage, LV_BTN_STATE_REL, &bmp_para_back);
|
||||
lv_imgbtn_set_src(buttonTurnPage, LV_BTN_STATE_PR, &bmp_para_back);
|
||||
lv_imgbtn_set_style(buttonTurnPage, LV_BTN_STATE_PR, &tft_style_label_pre);
|
||||
lv_imgbtn_set_style(buttonTurnPage, LV_BTN_STATE_REL, &tft_style_label_rel);
|
||||
}
|
||||
|
||||
lv_obj_set_pos(buttonTurnPage, PARA_UI_TURN_PAGE_POS_X, PARA_UI_TURN_PAGE_POS_Y);
|
||||
lv_btn_set_layout(buttonTurnPage, LV_LAYOUT_OFF);
|
||||
labelTurnPage = lv_label_create(buttonTurnPage, NULL);
|
||||
|
||||
|
||||
buttonBack = lv_imgbtn_create(scr, NULL);
|
||||
lv_obj_set_event_cb_mks(buttonBack, event_handler, ID_FEED_RETURN, "bmp_back70x40.bin", 0);
|
||||
lv_imgbtn_set_src(buttonBack, LV_BTN_STATE_REL, &bmp_para_back);
|
||||
lv_imgbtn_set_src(buttonBack, LV_BTN_STATE_PR, &bmp_para_back);
|
||||
lv_imgbtn_set_style(buttonBack, LV_BTN_STATE_PR, &tft_style_label_pre);
|
||||
lv_imgbtn_set_style(buttonBack, LV_BTN_STATE_REL, &tft_style_label_rel);
|
||||
|
||||
lv_obj_set_pos(buttonBack, PARA_UI_BACL_POS_X, PARA_UI_BACL_POS_Y);
|
||||
lv_btn_set_layout(buttonBack, LV_LAYOUT_OFF);
|
||||
label_Back = lv_label_create(buttonBack, NULL);
|
||||
|
||||
if (gCfgItems.multiple_language != 0) {
|
||||
if (uiCfg.para_ui_page != 1) {
|
||||
lv_label_set_text(labelXText, machine_menu.XMaxFeedRate);
|
||||
lv_obj_align(labelXText, buttonXText, LV_ALIGN_IN_LEFT_MID, 0, 0);
|
||||
|
||||
lv_label_set_text(labelYText, machine_menu.YMaxFeedRate);
|
||||
lv_obj_align(labelYText, buttonYText, LV_ALIGN_IN_LEFT_MID, 0, 0);
|
||||
|
||||
lv_label_set_text(labelZText, machine_menu.ZMaxFeedRate);
|
||||
lv_obj_align(labelZText, buttonZText, LV_ALIGN_IN_LEFT_MID, 0, 0);
|
||||
|
||||
lv_label_set_text(labelE0Text, machine_menu.E0MaxFeedRate);
|
||||
lv_obj_align(labelE0Text, buttonE0Text, LV_ALIGN_IN_LEFT_MID, 0, 0);
|
||||
|
||||
lv_label_set_text(labelTurnPage, machine_menu.next);
|
||||
lv_obj_align(labelTurnPage, buttonTurnPage, LV_ALIGN_CENTER, 0, 0);
|
||||
|
||||
ZERO(public_buf_l);
|
||||
sprintf_P(public_buf_l, PSTR("%.1f"), planner.settings.max_feedrate_mm_s[X_AXIS]);
|
||||
lv_label_set_text(labelXValue, public_buf_l);
|
||||
lv_obj_align(labelXValue, buttonXValue, LV_ALIGN_CENTER, 0, 0);
|
||||
|
||||
ZERO(public_buf_l);
|
||||
sprintf_P(public_buf_l, PSTR("%.1f"), planner.settings.max_feedrate_mm_s[Y_AXIS]);
|
||||
lv_label_set_text(labelYValue, public_buf_l);
|
||||
lv_obj_align(labelYValue, buttonYValue, LV_ALIGN_CENTER, 0, 0);
|
||||
|
||||
ZERO(public_buf_l);
|
||||
sprintf_P(public_buf_l, PSTR("%.1f"), planner.settings.max_feedrate_mm_s[Z_AXIS]);
|
||||
lv_label_set_text(labelZValue, public_buf_l);
|
||||
lv_obj_align(labelZValue, buttonZValue, LV_ALIGN_CENTER, 0, 0);
|
||||
|
||||
ZERO(public_buf_l);
|
||||
sprintf_P(public_buf_l, PSTR("%.1f"), planner.settings.max_feedrate_mm_s[E_AXIS]);
|
||||
lv_label_set_text(labelE0Value, public_buf_l);
|
||||
lv_obj_align(labelE0Value, buttonE0Value, LV_ALIGN_CENTER, 0, 0);
|
||||
}
|
||||
else {
|
||||
lv_label_set_text(labelE1Text, machine_menu.E1MaxFeedRate);
|
||||
lv_obj_align(labelE1Text, buttonE1Text, LV_ALIGN_IN_LEFT_MID, 0, 0);
|
||||
|
||||
lv_label_set_text(labelTurnPage, machine_menu.previous);
|
||||
lv_obj_align(labelTurnPage, buttonTurnPage, LV_ALIGN_CENTER, 0, 0);
|
||||
|
||||
ZERO(public_buf_l);
|
||||
sprintf_P(public_buf_l, PSTR("%.1f"), planner.settings.max_feedrate_mm_s[E_AXIS_N(1)]);
|
||||
lv_label_set_text(labelE1Value, public_buf_l);
|
||||
lv_obj_align(labelE1Value, buttonE1Value, LV_ALIGN_CENTER, 0, 0);
|
||||
}
|
||||
|
||||
lv_label_set_text(label_Back, common_menu.text_back);
|
||||
lv_obj_align(label_Back, buttonBack, LV_ALIGN_CENTER, 0, 0);
|
||||
}
|
||||
}
|
||||
|
||||
void lv_clear_max_feedrate_settings() { lv_obj_del(scr); }
|
||||
|
||||
#endif // HAS_TFT_LVGL_UI
|
33
Marlin/src/lcd/extui/lib/mks_ui/draw_max_feedrate_settings.h
Normal file
33
Marlin/src/lcd/extui/lib/mks_ui/draw_max_feedrate_settings.h
Normal file
|
@ -0,0 +1,33 @@
|
|||
/**
|
||||
* Marlin 3D Printer Firmware
|
||||
* Copyright (c) 2020 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
|
||||
*
|
||||
* Based on Sprinter and grbl.
|
||||
* Copyright (c) 2011 Camiel Gubbels / Erik van der Zalm
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*
|
||||
*/
|
||||
#pragma once
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" { /* C-declarations for C++ */
|
||||
#endif
|
||||
|
||||
extern void lv_draw_max_feedrate_settings(void);
|
||||
extern void lv_clear_max_feedrate_settings();
|
||||
|
||||
#ifdef __cplusplus
|
||||
} /* C-declarations for C++ */
|
||||
#endif
|
247
Marlin/src/lcd/extui/lib/mks_ui/draw_motor_settings.cpp
Normal file
247
Marlin/src/lcd/extui/lib/mks_ui/draw_motor_settings.cpp
Normal file
|
@ -0,0 +1,247 @@
|
|||
/**
|
||||
* Marlin 3D Printer Firmware
|
||||
* Copyright (c) 2020 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
|
||||
*
|
||||
* Based on Sprinter and grbl.
|
||||
* Copyright (c) 2011 Camiel Gubbels / Erik van der Zalm
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*
|
||||
*/
|
||||
#include "../../../../inc/MarlinConfigPre.h"
|
||||
|
||||
#if HAS_TFT_LVGL_UI
|
||||
|
||||
#include "lv_conf.h"
|
||||
#include "draw_ui.h"
|
||||
|
||||
#include "../../../../MarlinCore.h"
|
||||
|
||||
static lv_obj_t * scr;
|
||||
|
||||
#define ID_MOTOR_RETURN 1
|
||||
#define ID_MOTOR_STEPS 2
|
||||
#define ID_MOTOR_STEPS_ARROW 3
|
||||
#define ID_MOTOR_TMC_CURRENT 4
|
||||
#define ID_MOTOR_TMC_CURRENT_ARROW 5
|
||||
#define ID_MOTOR_STEP_MODE 6
|
||||
#define ID_MOTOR_STEP_MODE_ARROW 7
|
||||
|
||||
static void event_handler(lv_obj_t * obj, lv_event_t event) {
|
||||
switch (obj->mks_obj_id) {
|
||||
case ID_MOTOR_RETURN:
|
||||
if (event == LV_EVENT_CLICKED) {
|
||||
|
||||
}
|
||||
else if (event == LV_EVENT_RELEASED) {
|
||||
lv_clear_motor_settings();
|
||||
draw_return_ui();
|
||||
}
|
||||
break;
|
||||
case ID_MOTOR_STEPS:
|
||||
if (event == LV_EVENT_CLICKED) {
|
||||
|
||||
}
|
||||
else if (event == LV_EVENT_RELEASED) {
|
||||
lv_clear_motor_settings();
|
||||
lv_draw_step_settings();
|
||||
}
|
||||
break;
|
||||
case ID_MOTOR_STEPS_ARROW:
|
||||
if (event == LV_EVENT_CLICKED) {
|
||||
|
||||
}
|
||||
else if (event == LV_EVENT_RELEASED) {
|
||||
lv_clear_motor_settings();
|
||||
lv_draw_step_settings();
|
||||
}
|
||||
break;
|
||||
#if HAS_TRINAMIC_CONFIG
|
||||
case ID_MOTOR_TMC_CURRENT:
|
||||
if (event == LV_EVENT_CLICKED) {
|
||||
|
||||
}
|
||||
else if (event == LV_EVENT_RELEASED) {
|
||||
lv_clear_motor_settings();
|
||||
lv_draw_tmc_current_settings();
|
||||
}
|
||||
break;
|
||||
case ID_MOTOR_TMC_CURRENT_ARROW:
|
||||
if (event == LV_EVENT_CLICKED) {
|
||||
|
||||
}
|
||||
else if (event == LV_EVENT_RELEASED) {
|
||||
lv_clear_motor_settings();
|
||||
lv_draw_tmc_current_settings();
|
||||
}
|
||||
break;
|
||||
#if HAS_STEALTHCHOP
|
||||
case ID_MOTOR_STEP_MODE:
|
||||
if (event == LV_EVENT_CLICKED) {
|
||||
|
||||
}
|
||||
else if (event == LV_EVENT_RELEASED) {
|
||||
lv_clear_motor_settings();
|
||||
lv_draw_tmc_step_mode_settings();
|
||||
}
|
||||
break;
|
||||
case ID_MOTOR_STEP_MODE_ARROW:
|
||||
if (event == LV_EVENT_CLICKED) {
|
||||
|
||||
}
|
||||
else if (event == LV_EVENT_RELEASED) {
|
||||
lv_clear_motor_settings();
|
||||
lv_draw_tmc_step_mode_settings();
|
||||
}
|
||||
break;
|
||||
#endif
|
||||
#endif
|
||||
}
|
||||
}
|
||||
|
||||
void lv_draw_motor_settings(void) {
|
||||
lv_obj_t *buttonBack, *label_Back;
|
||||
lv_obj_t *buttonSteps, *labelSteps, *buttonStepsNarrow;
|
||||
#if HAS_TRINAMIC_CONFIG
|
||||
lv_obj_t *buttonTMCcurrent, *labelTMCcurrent, *buttonTMCcurrentNarrow;
|
||||
lv_obj_t * line2;
|
||||
#if HAS_STEALTHCHOP
|
||||
lv_obj_t *buttonStepMode, *labelStepMode, *buttonStepModeNarrow;
|
||||
lv_obj_t * line3;
|
||||
#endif
|
||||
#endif
|
||||
lv_obj_t * line1;
|
||||
if (disp_state_stack._disp_state[disp_state_stack._disp_index] != MOTOR_SETTINGS_UI) {
|
||||
disp_state_stack._disp_index++;
|
||||
disp_state_stack._disp_state[disp_state_stack._disp_index] = MOTOR_SETTINGS_UI;
|
||||
}
|
||||
disp_state = MOTOR_SETTINGS_UI;
|
||||
|
||||
scr = lv_obj_create(NULL, NULL);
|
||||
|
||||
lv_obj_set_style(scr, &tft_style_scr);
|
||||
lv_scr_load(scr);
|
||||
lv_obj_clean(scr);
|
||||
|
||||
lv_obj_t * title = lv_label_create(scr, NULL);
|
||||
lv_obj_set_style(title, &tft_style_label_rel);
|
||||
lv_obj_set_pos(title, TITLE_XPOS, TITLE_YPOS);
|
||||
lv_label_set_text(title, machine_menu.MotorConfTitle);
|
||||
|
||||
lv_refr_now(lv_refr_get_disp_refreshing());
|
||||
|
||||
LV_IMG_DECLARE(bmp_para_back);
|
||||
LV_IMG_DECLARE(bmp_para_arrow);
|
||||
|
||||
buttonSteps = lv_btn_create(scr, NULL); /*Add a button the current screen*/
|
||||
lv_obj_set_pos(buttonSteps, PARA_UI_POS_X, PARA_UI_POS_Y); /*Set its position*/
|
||||
lv_obj_set_size(buttonSteps, PARA_UI_SIZE_X, PARA_UI_SIZE_Y); /*Set its size*/
|
||||
// lv_obj_set_event_cb(buttonMachine, event_handler);
|
||||
lv_obj_set_event_cb_mks(buttonSteps, event_handler, ID_MOTOR_STEPS, NULL, 0);
|
||||
lv_btn_set_style(buttonSteps, LV_BTN_STYLE_REL, &tft_style_label_rel); /*Set the button's released style*/
|
||||
lv_btn_set_style(buttonSteps, LV_BTN_STYLE_PR, &tft_style_label_pre); /*Set the button's pressed style*/
|
||||
lv_btn_set_layout(buttonSteps, LV_LAYOUT_OFF);
|
||||
labelSteps = lv_label_create(buttonSteps, NULL); /*Add a label to the button*/
|
||||
|
||||
buttonStepsNarrow = lv_imgbtn_create(scr, NULL);
|
||||
lv_obj_set_pos(buttonStepsNarrow, PARA_UI_POS_X + PARA_UI_SIZE_X, PARA_UI_POS_Y + PARA_UI_ARROW_V);
|
||||
lv_obj_set_event_cb_mks(buttonStepsNarrow, event_handler, ID_MOTOR_STEPS_ARROW, "bmp_arrow.bin", 0);
|
||||
lv_imgbtn_set_src(buttonStepsNarrow, LV_BTN_STATE_REL, &bmp_para_arrow);
|
||||
lv_imgbtn_set_src(buttonStepsNarrow, LV_BTN_STATE_PR, &bmp_para_arrow);
|
||||
lv_imgbtn_set_style(buttonStepsNarrow, LV_BTN_STATE_PR, &tft_style_label_pre);
|
||||
lv_imgbtn_set_style(buttonStepsNarrow, LV_BTN_STATE_REL, &tft_style_label_rel);
|
||||
lv_btn_set_layout(buttonStepsNarrow, LV_LAYOUT_OFF);
|
||||
|
||||
line1 = lv_line_create(lv_scr_act(), NULL);
|
||||
lv_ex_line(line1, line_points[0]);
|
||||
#if HAS_TRINAMIC_CONFIG
|
||||
buttonTMCcurrent = lv_btn_create(scr, NULL); /*Add a button the current screen*/
|
||||
lv_obj_set_pos(buttonTMCcurrent, PARA_UI_POS_X, PARA_UI_POS_Y * 2); /*Set its position*/
|
||||
lv_obj_set_size(buttonTMCcurrent, PARA_UI_SIZE_X, PARA_UI_SIZE_Y); /*Set its size*/
|
||||
// lv_obj_set_event_cb(buttonMachine, event_handler);
|
||||
lv_obj_set_event_cb_mks(buttonTMCcurrent, event_handler, ID_MOTOR_TMC_CURRENT, NULL, 0);
|
||||
lv_btn_set_style(buttonTMCcurrent, LV_BTN_STYLE_REL, &tft_style_label_rel); /*Set the button's released style*/
|
||||
lv_btn_set_style(buttonTMCcurrent, LV_BTN_STYLE_PR, &tft_style_label_pre); /*Set the button's pressed style*/
|
||||
lv_btn_set_layout(buttonTMCcurrent, LV_LAYOUT_OFF);
|
||||
labelTMCcurrent = lv_label_create(buttonTMCcurrent, NULL); /*Add a label to the button*/
|
||||
|
||||
buttonTMCcurrentNarrow = lv_imgbtn_create(scr, NULL);
|
||||
lv_obj_set_pos(buttonTMCcurrentNarrow, PARA_UI_POS_X + PARA_UI_SIZE_X, PARA_UI_POS_Y * 2 + PARA_UI_ARROW_V);
|
||||
lv_obj_set_event_cb_mks(buttonTMCcurrentNarrow, event_handler, ID_MOTOR_TMC_CURRENT_ARROW, "bmp_arrow.bin", 0);
|
||||
lv_imgbtn_set_src(buttonTMCcurrentNarrow, LV_BTN_STATE_REL, &bmp_para_arrow);
|
||||
lv_imgbtn_set_src(buttonTMCcurrentNarrow, LV_BTN_STATE_PR, &bmp_para_arrow);
|
||||
lv_imgbtn_set_style(buttonTMCcurrentNarrow, LV_BTN_STATE_PR, &tft_style_label_pre);
|
||||
lv_imgbtn_set_style(buttonTMCcurrentNarrow, LV_BTN_STATE_REL, &tft_style_label_rel);
|
||||
lv_btn_set_layout(buttonTMCcurrentNarrow, LV_LAYOUT_OFF);
|
||||
|
||||
line2 = lv_line_create(lv_scr_act(), NULL);
|
||||
lv_ex_line(line2, line_points[1]);
|
||||
|
||||
#if HAS_STEALTHCHOP
|
||||
buttonStepMode = lv_btn_create(scr, NULL); /*Add a button the current screen*/
|
||||
lv_obj_set_pos(buttonStepMode, PARA_UI_POS_X, PARA_UI_POS_Y * 3); /*Set its position*/
|
||||
lv_obj_set_size(buttonStepMode, PARA_UI_SIZE_X, PARA_UI_SIZE_Y); /*Set its size*/
|
||||
// lv_obj_set_event_cb(buttonMachine, event_handler);
|
||||
lv_obj_set_event_cb_mks(buttonStepMode, event_handler, ID_MOTOR_STEP_MODE, NULL, 0);
|
||||
lv_btn_set_style(buttonStepMode, LV_BTN_STYLE_REL, &tft_style_label_rel); /*Set the button's released style*/
|
||||
lv_btn_set_style(buttonStepMode, LV_BTN_STYLE_PR, &tft_style_label_pre); /*Set the button's pressed style*/
|
||||
lv_btn_set_layout(buttonStepMode, LV_LAYOUT_OFF);
|
||||
labelStepMode = lv_label_create(buttonStepMode, NULL); /*Add a label to the button*/
|
||||
|
||||
buttonStepModeNarrow = lv_imgbtn_create(scr, NULL);
|
||||
lv_obj_set_pos(buttonStepModeNarrow, PARA_UI_POS_X + PARA_UI_SIZE_X, PARA_UI_POS_Y * 3 + PARA_UI_ARROW_V);
|
||||
lv_obj_set_event_cb_mks(buttonStepModeNarrow, event_handler, ID_MOTOR_STEP_MODE_ARROW, "bmp_arrow.bin", 0);
|
||||
lv_imgbtn_set_src(buttonStepModeNarrow, LV_BTN_STATE_REL, &bmp_para_arrow);
|
||||
lv_imgbtn_set_src(buttonStepModeNarrow, LV_BTN_STATE_PR, &bmp_para_arrow);
|
||||
lv_imgbtn_set_style(buttonStepModeNarrow, LV_BTN_STATE_PR, &tft_style_label_pre);
|
||||
lv_imgbtn_set_style(buttonStepModeNarrow, LV_BTN_STATE_REL, &tft_style_label_rel);
|
||||
lv_btn_set_layout(buttonStepModeNarrow, LV_LAYOUT_OFF);
|
||||
|
||||
line3 = lv_line_create(lv_scr_act(), NULL);
|
||||
lv_ex_line(line3, line_points[2]);
|
||||
#endif
|
||||
#endif // HAS_TRINAMIC_CONFIG
|
||||
|
||||
buttonBack = lv_imgbtn_create(scr, NULL);
|
||||
lv_obj_set_event_cb_mks(buttonBack, event_handler, ID_MOTOR_RETURN, "bmp_back70x40.bin", 0);
|
||||
lv_imgbtn_set_src(buttonBack, LV_BTN_STATE_REL, &bmp_para_back);
|
||||
lv_imgbtn_set_src(buttonBack, LV_BTN_STATE_PR, &bmp_para_back);
|
||||
lv_imgbtn_set_style(buttonBack, LV_BTN_STATE_PR, &tft_style_label_pre);
|
||||
lv_imgbtn_set_style(buttonBack, LV_BTN_STATE_REL, &tft_style_label_rel);
|
||||
|
||||
lv_obj_set_pos(buttonBack, PARA_UI_BACL_POS_X, PARA_UI_BACL_POS_Y);
|
||||
lv_btn_set_layout(buttonBack, LV_LAYOUT_OFF);
|
||||
label_Back = lv_label_create(buttonBack, NULL);
|
||||
|
||||
if (gCfgItems.multiple_language != 0) {
|
||||
lv_label_set_text(label_Back, common_menu.text_back);
|
||||
lv_obj_align(label_Back, buttonBack, LV_ALIGN_CENTER, 0, 0);
|
||||
|
||||
lv_label_set_text(labelSteps, machine_menu.StepsConf);
|
||||
lv_obj_align(labelSteps, buttonSteps, LV_ALIGN_IN_LEFT_MID, 0, 0);
|
||||
#if HAS_TRINAMIC_CONFIG
|
||||
lv_label_set_text(labelTMCcurrent, machine_menu.TMCcurrentConf);
|
||||
lv_obj_align(labelTMCcurrent, buttonTMCcurrent, LV_ALIGN_IN_LEFT_MID, 0, 0);
|
||||
#if HAS_STEALTHCHOP
|
||||
lv_label_set_text(labelStepMode, machine_menu.TMCStepModeConf);
|
||||
lv_obj_align(labelStepMode, buttonStepMode, LV_ALIGN_IN_LEFT_MID, 0, 0);
|
||||
#endif
|
||||
#endif
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
void lv_clear_motor_settings() { lv_obj_del(scr); }
|
||||
|
||||
#endif // HAS_TFT_LVGL_UI
|
33
Marlin/src/lcd/extui/lib/mks_ui/draw_motor_settings.h
Normal file
33
Marlin/src/lcd/extui/lib/mks_ui/draw_motor_settings.h
Normal file
|
@ -0,0 +1,33 @@
|
|||
/**
|
||||
* Marlin 3D Printer Firmware
|
||||
* Copyright (c) 2020 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
|
||||
*
|
||||
* Based on Sprinter and grbl.
|
||||
* Copyright (c) 2011 Camiel Gubbels / Erik van der Zalm
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*
|
||||
*/
|
||||
#pragma once
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" { /* C-declarations for C++ */
|
||||
#endif
|
||||
|
||||
extern void lv_draw_motor_settings(void);
|
||||
extern void lv_clear_motor_settings();
|
||||
|
||||
#ifdef __cplusplus
|
||||
} /* C-declarations for C++ */
|
||||
#endif
|
|
@ -21,7 +21,7 @@
|
|||
*/
|
||||
#include "../../../../inc/MarlinConfigPre.h"
|
||||
|
||||
#if ENABLED(TFT_LVGL_UI)
|
||||
#if HAS_TFT_LVGL_UI
|
||||
|
||||
#include "../../../../MarlinCore.h"
|
||||
#include "lv_conf.h"
|
||||
|
@ -53,10 +53,10 @@ static void event_handler(lv_obj_t * obj, lv_event_t event) {
|
|||
}
|
||||
else if (event == LV_EVENT_RELEASED) {
|
||||
if (queue.length <= (BUFSIZE - 3)) {
|
||||
memset(public_buf_l, 0, sizeof(public_buf_l));
|
||||
ZERO(public_buf_l);
|
||||
queue.enqueue_one_P(PSTR("G91"));
|
||||
sprintf(public_buf_l, "G1 X%3.1f F%d", uiCfg.move_dist, uiCfg.moveSpeed);
|
||||
queue.enqueue_one_P(PSTR(public_buf_l));
|
||||
sprintf_P(public_buf_l, PSTR("G1 X%3.1f F%d"), uiCfg.move_dist, uiCfg.moveSpeed);
|
||||
queue.enqueue_one_now(public_buf_l);
|
||||
queue.enqueue_one_P(PSTR("G90"));
|
||||
}
|
||||
}
|
||||
|
@ -67,11 +67,11 @@ static void event_handler(lv_obj_t * obj, lv_event_t event) {
|
|||
}
|
||||
else if (event == LV_EVENT_RELEASED) {
|
||||
if (queue.length <= (BUFSIZE - 3)) {
|
||||
memset(public_buf_l, 0, sizeof(public_buf_l));
|
||||
queue.enqueue_one_now(PSTR("G91"));
|
||||
sprintf(public_buf_l, "G1 X-%3.1f F%d", uiCfg.move_dist, uiCfg.moveSpeed);
|
||||
queue.enqueue_one_now(PSTR(public_buf_l));
|
||||
queue.enqueue_one_now(PSTR("G90"));
|
||||
ZERO(public_buf_l);
|
||||
queue.enqueue_now_P(PSTR("G91"));
|
||||
sprintf_P(public_buf_l, PSTR("G1 X-%3.1f F%d"), uiCfg.move_dist, uiCfg.moveSpeed);
|
||||
queue.enqueue_one_now(public_buf_l);
|
||||
queue.enqueue_now_P(PSTR("G90"));
|
||||
}
|
||||
}
|
||||
break;
|
||||
|
@ -81,11 +81,11 @@ static void event_handler(lv_obj_t * obj, lv_event_t event) {
|
|||
}
|
||||
else if (event == LV_EVENT_RELEASED) {
|
||||
if (queue.length <= (BUFSIZE - 3)) {
|
||||
memset(public_buf_l, 0, sizeof(public_buf_l));
|
||||
queue.enqueue_one_now(PSTR("G91"));
|
||||
sprintf(public_buf_l, "G1 Y%3.1f F%d", uiCfg.move_dist, uiCfg.moveSpeed);
|
||||
queue.enqueue_one_now(PSTR(public_buf_l));
|
||||
queue.enqueue_one_now(PSTR("G90"));
|
||||
ZERO(public_buf_l);
|
||||
queue.enqueue_now_P(PSTR("G91"));
|
||||
sprintf_P(public_buf_l, PSTR("G1 Y%3.1f F%d"), uiCfg.move_dist, uiCfg.moveSpeed);
|
||||
queue.enqueue_one_now(public_buf_l);
|
||||
queue.enqueue_now_P(PSTR("G90"));
|
||||
}
|
||||
}
|
||||
break;
|
||||
|
@ -95,11 +95,11 @@ static void event_handler(lv_obj_t * obj, lv_event_t event) {
|
|||
}
|
||||
else if (event == LV_EVENT_RELEASED) {
|
||||
if (queue.length <= (BUFSIZE - 3)) {
|
||||
memset(public_buf_l, 0, sizeof(public_buf_l));
|
||||
queue.enqueue_one_now(PSTR("G91"));
|
||||
sprintf(public_buf_l, "G1 Y-%3.1f F%d", uiCfg.move_dist, uiCfg.moveSpeed);
|
||||
queue.enqueue_one_now(PSTR(public_buf_l));
|
||||
queue.enqueue_one_now(PSTR("G90"));
|
||||
ZERO(public_buf_l);
|
||||
queue.enqueue_now_P(PSTR("G91"));
|
||||
sprintf_P(public_buf_l, PSTR("G1 Y-%3.1f F%d"), uiCfg.move_dist, uiCfg.moveSpeed);
|
||||
queue.enqueue_one_now(public_buf_l);
|
||||
queue.enqueue_now_P(PSTR("G90"));
|
||||
}
|
||||
}
|
||||
break;
|
||||
|
@ -109,11 +109,11 @@ static void event_handler(lv_obj_t * obj, lv_event_t event) {
|
|||
}
|
||||
else if (event == LV_EVENT_RELEASED) {
|
||||
if (queue.length <= (BUFSIZE - 3)) {
|
||||
memset(public_buf_l, 0, sizeof(public_buf_l));
|
||||
queue.enqueue_one_now(PSTR("G91"));
|
||||
sprintf(public_buf_l, "G1 Z%3.1f F%d", uiCfg.move_dist, uiCfg.moveSpeed);
|
||||
queue.enqueue_one_now(PSTR(public_buf_l));
|
||||
queue.enqueue_one_now(PSTR("G90"));
|
||||
ZERO(public_buf_l);
|
||||
queue.enqueue_now_P(PSTR("G91"));
|
||||
sprintf_P(public_buf_l, PSTR("G1 Z%3.1f F%d"), uiCfg.move_dist, uiCfg.moveSpeed);
|
||||
queue.enqueue_one_now(public_buf_l);
|
||||
queue.enqueue_now_P(PSTR("G90"));
|
||||
}
|
||||
}
|
||||
break;
|
||||
|
@ -123,11 +123,11 @@ static void event_handler(lv_obj_t * obj, lv_event_t event) {
|
|||
}
|
||||
else if (event == LV_EVENT_RELEASED) {
|
||||
if (queue.length <= (BUFSIZE - 3)) {
|
||||
memset(public_buf_l, 0, sizeof(public_buf_l));
|
||||
queue.enqueue_one_now(PSTR("G91"));
|
||||
sprintf(public_buf_l, "G1 Z-%3.1f F%d", uiCfg.move_dist, uiCfg.moveSpeed);
|
||||
queue.enqueue_one_now(PSTR(public_buf_l));
|
||||
queue.enqueue_one_now(PSTR("G90"));
|
||||
ZERO(public_buf_l);
|
||||
queue.enqueue_now_P(PSTR("G91"));
|
||||
sprintf_P(public_buf_l, PSTR("G1 Z-%3.1f F%d"), uiCfg.move_dist, uiCfg.moveSpeed);
|
||||
queue.enqueue_one_now(public_buf_l);
|
||||
queue.enqueue_now_P(PSTR("G90"));
|
||||
}
|
||||
}
|
||||
break;
|
||||
|
@ -154,14 +154,11 @@ static void event_handler(lv_obj_t * obj, lv_event_t event) {
|
|||
draw_return_ui();
|
||||
}
|
||||
break;
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
void lv_draw_move_motor(void) {
|
||||
lv_obj_t *buttonXI, *buttonXD, *buttonYI, *buttonYD;
|
||||
lv_obj_t *buttonZI, *buttonZD, *buttonBack;
|
||||
lv_obj_t *buttonXI, *buttonXD, *buttonYI, *buttonYD, *buttonZI, *buttonZD, *buttonBack;
|
||||
|
||||
if (disp_state_stack._disp_state[disp_state_stack._disp_index] != MOVE_MOTOR_UI) {
|
||||
disp_state_stack._disp_index++;
|
||||
|
@ -176,7 +173,7 @@ void lv_draw_move_motor(void) {
|
|||
lv_obj_clean(scr);
|
||||
|
||||
lv_obj_t * title = lv_label_create(scr, NULL);
|
||||
lv_obj_set_style(title, &tft_style_lable_rel);
|
||||
lv_obj_set_style(title, &tft_style_label_rel);
|
||||
lv_obj_set_pos(title, TITLE_XPOS, TITLE_YPOS);
|
||||
lv_label_set_text(title, creat_title_text());
|
||||
|
||||
|
@ -184,7 +181,6 @@ void lv_draw_move_motor(void) {
|
|||
|
||||
LV_IMG_DECLARE(bmp_pic);
|
||||
|
||||
|
||||
/*Create an Image button*/
|
||||
buttonXI = lv_imgbtn_create(scr, NULL);
|
||||
buttonXD = lv_imgbtn_create(scr, NULL);
|
||||
|
@ -198,52 +194,52 @@ void lv_draw_move_motor(void) {
|
|||
lv_obj_set_event_cb_mks(buttonXI, event_handler, ID_M_X_P, "bmp_xAdd.bin", 0);
|
||||
lv_imgbtn_set_src(buttonXI, LV_BTN_STATE_REL, &bmp_pic);
|
||||
lv_imgbtn_set_src(buttonXI, LV_BTN_STATE_PR, &bmp_pic);
|
||||
lv_imgbtn_set_style(buttonXI, LV_BTN_STATE_PR, &tft_style_lable_pre);
|
||||
lv_imgbtn_set_style(buttonXI, LV_BTN_STATE_REL, &tft_style_lable_rel);
|
||||
lv_imgbtn_set_style(buttonXI, LV_BTN_STATE_PR, &tft_style_label_pre);
|
||||
lv_imgbtn_set_style(buttonXI, LV_BTN_STATE_REL, &tft_style_label_rel);
|
||||
lv_obj_clear_protect(buttonXI, LV_PROTECT_FOLLOW);
|
||||
#if 1
|
||||
lv_obj_set_event_cb_mks(buttonXD, event_handler, ID_M_X_N, "bmp_xDec.bin", 0);
|
||||
lv_imgbtn_set_src(buttonXD, LV_BTN_STATE_REL, &bmp_pic);
|
||||
lv_imgbtn_set_src(buttonXD, LV_BTN_STATE_PR, &bmp_pic);
|
||||
lv_imgbtn_set_style(buttonXD, LV_BTN_STATE_PR, &tft_style_lable_pre);
|
||||
lv_imgbtn_set_style(buttonXD, LV_BTN_STATE_REL, &tft_style_lable_rel);
|
||||
lv_imgbtn_set_style(buttonXD, LV_BTN_STATE_PR, &tft_style_label_pre);
|
||||
lv_imgbtn_set_style(buttonXD, LV_BTN_STATE_REL, &tft_style_label_rel);
|
||||
|
||||
lv_obj_set_event_cb_mks(buttonYI, event_handler, ID_M_Y_P, "bmp_yAdd.bin", 0);
|
||||
lv_imgbtn_set_src(buttonYI, LV_BTN_STATE_REL, &bmp_pic);
|
||||
lv_imgbtn_set_src(buttonYI, LV_BTN_STATE_PR, &bmp_pic);
|
||||
lv_imgbtn_set_style(buttonYI, LV_BTN_STATE_PR, &tft_style_lable_pre);
|
||||
lv_imgbtn_set_style(buttonYI, LV_BTN_STATE_REL, &tft_style_lable_rel);
|
||||
lv_imgbtn_set_style(buttonYI, LV_BTN_STATE_PR, &tft_style_label_pre);
|
||||
lv_imgbtn_set_style(buttonYI, LV_BTN_STATE_REL, &tft_style_label_rel);
|
||||
|
||||
lv_obj_set_event_cb_mks(buttonYD, event_handler, ID_M_Y_N, "bmp_yDec.bin", 0);
|
||||
lv_imgbtn_set_src(buttonYD, LV_BTN_STATE_REL, &bmp_pic);
|
||||
lv_imgbtn_set_src(buttonYD, LV_BTN_STATE_PR, &bmp_pic);
|
||||
lv_imgbtn_set_style(buttonYD, LV_BTN_STATE_PR, &tft_style_lable_pre);
|
||||
lv_imgbtn_set_style(buttonYD, LV_BTN_STATE_REL, &tft_style_lable_rel);
|
||||
lv_imgbtn_set_style(buttonYD, LV_BTN_STATE_PR, &tft_style_label_pre);
|
||||
lv_imgbtn_set_style(buttonYD, LV_BTN_STATE_REL, &tft_style_label_rel);
|
||||
|
||||
lv_obj_set_event_cb_mks(buttonZI, event_handler, ID_M_Z_P, "bmp_zAdd.bin", 0);
|
||||
lv_imgbtn_set_src(buttonZI, LV_BTN_STATE_REL, &bmp_pic);
|
||||
lv_imgbtn_set_src(buttonZI, LV_BTN_STATE_PR, &bmp_pic);
|
||||
lv_imgbtn_set_style(buttonZI, LV_BTN_STATE_PR, &tft_style_lable_pre);
|
||||
lv_imgbtn_set_style(buttonZI, LV_BTN_STATE_REL, &tft_style_lable_rel);
|
||||
lv_imgbtn_set_style(buttonZI, LV_BTN_STATE_PR, &tft_style_label_pre);
|
||||
lv_imgbtn_set_style(buttonZI, LV_BTN_STATE_REL, &tft_style_label_rel);
|
||||
|
||||
lv_obj_set_event_cb_mks(buttonZD, event_handler, ID_M_Z_N, "bmp_zDec.bin", 0);
|
||||
lv_imgbtn_set_src(buttonZD, LV_BTN_STATE_REL, &bmp_pic);
|
||||
lv_imgbtn_set_src(buttonZD, LV_BTN_STATE_PR, &bmp_pic);
|
||||
lv_imgbtn_set_style(buttonZD, LV_BTN_STATE_PR, &tft_style_lable_pre);
|
||||
lv_imgbtn_set_style(buttonZD, LV_BTN_STATE_REL, &tft_style_lable_rel);
|
||||
lv_imgbtn_set_style(buttonZD, LV_BTN_STATE_PR, &tft_style_label_pre);
|
||||
lv_imgbtn_set_style(buttonZD, LV_BTN_STATE_REL, &tft_style_label_rel);
|
||||
|
||||
// lv_obj_set_event_cb_mks(buttonV, event_handler,ID_T_MORE,"bmp_More.bin",0);
|
||||
lv_imgbtn_set_src(buttonV, LV_BTN_STATE_REL, &bmp_pic);
|
||||
lv_imgbtn_set_src(buttonV, LV_BTN_STATE_PR, &bmp_pic);
|
||||
lv_imgbtn_set_style(buttonV, LV_BTN_STATE_PR, &tft_style_lable_pre);
|
||||
lv_imgbtn_set_style(buttonV, LV_BTN_STATE_REL, &tft_style_lable_rel);
|
||||
lv_imgbtn_set_style(buttonV, LV_BTN_STATE_PR, &tft_style_label_pre);
|
||||
lv_imgbtn_set_style(buttonV, LV_BTN_STATE_REL, &tft_style_label_rel);
|
||||
|
||||
lv_obj_set_event_cb_mks(buttonBack, event_handler, ID_M_RETURN, "bmp_Return.bin", 0);
|
||||
lv_obj_set_event_cb_mks(buttonBack, event_handler, ID_M_RETURN, "bmp_return.bin", 0);
|
||||
lv_imgbtn_set_src(buttonBack, LV_BTN_STATE_REL, &bmp_pic);
|
||||
lv_imgbtn_set_src(buttonBack, LV_BTN_STATE_PR, &bmp_pic);
|
||||
lv_imgbtn_set_style(buttonBack, LV_BTN_STATE_PR, &tft_style_lable_pre);
|
||||
lv_imgbtn_set_style(buttonBack, LV_BTN_STATE_REL, &tft_style_lable_rel);
|
||||
#endif
|
||||
lv_imgbtn_set_style(buttonBack, LV_BTN_STATE_PR, &tft_style_label_pre);
|
||||
lv_imgbtn_set_style(buttonBack, LV_BTN_STATE_REL, &tft_style_label_rel);
|
||||
#endif // if 1
|
||||
lv_obj_set_pos(buttonXI, INTERVAL_V, titleHeight);
|
||||
lv_obj_set_pos(buttonYI, BTN_X_PIXEL + INTERVAL_V * 2, titleHeight);
|
||||
lv_obj_set_pos(buttonZI, BTN_X_PIXEL * 2 + INTERVAL_V * 3, titleHeight);
|
||||
|
@ -272,7 +268,6 @@ void lv_draw_move_motor(void) {
|
|||
labelV = lv_label_create(buttonV, NULL);
|
||||
lv_obj_t * label_Back = lv_label_create(buttonBack, NULL);
|
||||
|
||||
|
||||
if (gCfgItems.multiple_language != 0) {
|
||||
lv_label_set_text(labelXI, move_menu.x_add);
|
||||
lv_obj_align(labelXI, buttonXI, LV_ALIGN_IN_BOTTOM_MID, 0, BUTTON_TEXT_Y_OFFSET);
|
||||
|
@ -303,11 +298,11 @@ void disp_move_dist() {
|
|||
// char buf[30] = {0};
|
||||
|
||||
if ((int)(10 * uiCfg.move_dist) == 1)
|
||||
lv_obj_set_event_cb_mks(buttonV, event_handler, ID_M_STEP, "bmp_Step_move0_1.bin", 0);
|
||||
lv_obj_set_event_cb_mks(buttonV, event_handler, ID_M_STEP, "bmp_step_move0_1.bin", 0);
|
||||
else if ((int)(10 * uiCfg.move_dist) == 10)
|
||||
lv_obj_set_event_cb_mks(buttonV, event_handler, ID_M_STEP, "bmp_Step_move1.bin", 0);
|
||||
lv_obj_set_event_cb_mks(buttonV, event_handler, ID_M_STEP, "bmp_step_move1.bin", 0);
|
||||
else if ((int)(10 * uiCfg.move_dist) == 100)
|
||||
lv_obj_set_event_cb_mks(buttonV, event_handler, ID_M_STEP, "bmp_Step_move10.bin", 0);
|
||||
lv_obj_set_event_cb_mks(buttonV, event_handler, ID_M_STEP, "bmp_step_move10.bin", 0);
|
||||
if (gCfgItems.multiple_language != 0) {
|
||||
if ((int)(10 * uiCfg.move_dist) == 1) {
|
||||
lv_label_set_text(labelV, move_menu.step_01mm);
|
||||
|
@ -326,4 +321,4 @@ void disp_move_dist() {
|
|||
|
||||
void lv_clear_move_motor() { lv_obj_del(scr); }
|
||||
|
||||
#endif // TFT_LVGL_UI
|
||||
#endif // HAS_TFT_LVGL_UI
|
||||
|
|
799
Marlin/src/lcd/extui/lib/mks_ui/draw_number_key.cpp
Normal file
799
Marlin/src/lcd/extui/lib/mks_ui/draw_number_key.cpp
Normal file
|
@ -0,0 +1,799 @@
|
|||
/**
|
||||
* Marlin 3D Printer Firmware
|
||||
* Copyright (c) 2020 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
|
||||
*
|
||||
* Based on Sprinter and grbl.
|
||||
* Copyright (c) 2011 Camiel Gubbels / Erik van der Zalm
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*
|
||||
*/
|
||||
#include "../../../../inc/MarlinConfigPre.h"
|
||||
|
||||
#if HAS_TFT_LVGL_UI
|
||||
|
||||
#include "lv_conf.h"
|
||||
//#include "../../lvgl/src/lv_objx/lv_imgbtn.h"
|
||||
//#include "../../lvgl/src/lv_objx/lv_img.h"
|
||||
//#include "../../lvgl/src/lv_core/lv_disp.h"
|
||||
//#include "../../lvgl/src/lv_core/lv_refr.h"
|
||||
//#include "../../MarlinCore.h"
|
||||
#include "draw_ui.h"
|
||||
|
||||
#include "../../../../MarlinCore.h"
|
||||
#include "../../../../module/temperature.h"
|
||||
#include "../../../../gcode/queue.h"
|
||||
#if ENABLED(POWER_LOSS_RECOVERY)
|
||||
#include "../../../../../feature/powerloss.h"
|
||||
#endif
|
||||
|
||||
#include "../../../../gcode/gcode.h"
|
||||
#include "../../../../module/planner.h"
|
||||
|
||||
#if HAS_TRINAMIC_CONFIG
|
||||
#include "../../../../module/stepper/indirection.h"
|
||||
#include "../../../../feature/tmc_util.h"
|
||||
#endif
|
||||
|
||||
static lv_obj_t * scr;
|
||||
static lv_obj_t *buttonValue = NULL;
|
||||
static lv_obj_t *labelValue = NULL;
|
||||
|
||||
static char key_value[11] = {0};
|
||||
static uint8_t cnt = 0;
|
||||
static char point_flg = 1;
|
||||
|
||||
#define ID_NUM_KEY1 1
|
||||
#define ID_NUM_KEY2 2
|
||||
#define ID_NUM_KEY3 3
|
||||
#define ID_NUM_KEY4 4
|
||||
#define ID_NUM_KEY5 5
|
||||
#define ID_NUM_KEY6 6
|
||||
#define ID_NUM_KEY7 7
|
||||
#define ID_NUM_KEY8 8
|
||||
#define ID_NUM_KEY9 9
|
||||
#define ID_NUM_KEY0 10
|
||||
#define ID_NUM_BACK 11
|
||||
#define ID_NUM_RESET 12
|
||||
#define ID_NUM_CONFIRM 13
|
||||
#define ID_NUM_POINT 14
|
||||
#define ID_NUM_NAGETIVE 15
|
||||
|
||||
static void disp_key_value() {
|
||||
char *temp;
|
||||
#if HAS_TRINAMIC_CONFIG
|
||||
float milliamps;
|
||||
#endif
|
||||
|
||||
switch (value) {
|
||||
case PrintAcceleration:
|
||||
ZERO(public_buf_m);
|
||||
sprintf_P(public_buf_m, PSTR("%.1f"), planner.settings.acceleration);
|
||||
break;
|
||||
case RetractAcceleration:
|
||||
ZERO(public_buf_m);
|
||||
sprintf_P(public_buf_m, PSTR("%.1f"), planner.settings.retract_acceleration);
|
||||
break;
|
||||
case TravelAcceleration:
|
||||
ZERO(public_buf_m);
|
||||
sprintf_P(public_buf_m, PSTR("%.1f"), planner.settings.travel_acceleration);
|
||||
break;
|
||||
case XAcceleration:
|
||||
ZERO(public_buf_m);
|
||||
sprintf_P(public_buf_m, PSTR("%d"), (int)planner.settings.max_acceleration_mm_per_s2[X_AXIS]);
|
||||
break;
|
||||
case YAcceleration:
|
||||
ZERO(public_buf_m);
|
||||
sprintf_P(public_buf_m, PSTR("%d"), (int)planner.settings.max_acceleration_mm_per_s2[Y_AXIS]);
|
||||
break;
|
||||
case ZAcceleration:
|
||||
ZERO(public_buf_m);
|
||||
sprintf_P(public_buf_m, PSTR("%d"), (int)planner.settings.max_acceleration_mm_per_s2[Z_AXIS]);
|
||||
break;
|
||||
case E0Acceleration:
|
||||
ZERO(public_buf_m);
|
||||
sprintf_P(public_buf_m, PSTR("%d"), (int)planner.settings.max_acceleration_mm_per_s2[E_AXIS]);
|
||||
break;
|
||||
case E1Acceleration:
|
||||
ZERO(public_buf_m);
|
||||
sprintf_P(public_buf_m, PSTR("%d"), (int)planner.settings.max_acceleration_mm_per_s2[E_AXIS_N(1)]);
|
||||
break;
|
||||
case XMaxFeedRate:
|
||||
ZERO(public_buf_m);
|
||||
sprintf_P(public_buf_m, PSTR("%.1f"), planner.settings.max_feedrate_mm_s[X_AXIS]);
|
||||
break;
|
||||
case YMaxFeedRate:
|
||||
ZERO(public_buf_m);
|
||||
sprintf_P(public_buf_m, PSTR("%.1f"), planner.settings.max_feedrate_mm_s[Y_AXIS]);
|
||||
break;
|
||||
case ZMaxFeedRate:
|
||||
ZERO(public_buf_m);
|
||||
sprintf_P(public_buf_m, PSTR("%.1f"), planner.settings.max_feedrate_mm_s[Z_AXIS]);
|
||||
break;
|
||||
case E0MaxFeedRate:
|
||||
ZERO(public_buf_m);
|
||||
sprintf_P(public_buf_m, PSTR("%.1f"), planner.settings.max_feedrate_mm_s[E_AXIS]);
|
||||
break;
|
||||
case E1MaxFeedRate:
|
||||
ZERO(public_buf_m);
|
||||
sprintf_P(public_buf_m, PSTR("%.1f"), planner.settings.max_feedrate_mm_s[E_AXIS_N(1)]);
|
||||
break;
|
||||
|
||||
case XJerk:
|
||||
#if HAS_CLASSIC_JERK
|
||||
ZERO(public_buf_m);
|
||||
sprintf_P(public_buf_m, PSTR("%.1f"), planner.max_jerk[X_AXIS]);
|
||||
#endif
|
||||
break;
|
||||
case YJerk:
|
||||
#if HAS_CLASSIC_JERK
|
||||
ZERO(public_buf_m);
|
||||
sprintf_P(public_buf_m, PSTR("%.1f"), planner.max_jerk[Y_AXIS]);
|
||||
#endif
|
||||
break;
|
||||
case ZJerk:
|
||||
#if HAS_CLASSIC_JERK
|
||||
ZERO(public_buf_m);
|
||||
sprintf_P(public_buf_m, PSTR("%.1f"), planner.max_jerk[Z_AXIS]);
|
||||
#endif
|
||||
break;
|
||||
case EJerk:
|
||||
#if HAS_CLASSIC_JERK
|
||||
ZERO(public_buf_m);
|
||||
sprintf_P(public_buf_m, PSTR("%.1f"), planner.max_jerk[E_AXIS]);
|
||||
#endif
|
||||
break;
|
||||
|
||||
case Xstep:
|
||||
ZERO(public_buf_m);
|
||||
sprintf_P(public_buf_m, PSTR("%.1f"), planner.settings.axis_steps_per_mm[X_AXIS]);
|
||||
|
||||
break;
|
||||
case Ystep:
|
||||
ZERO(public_buf_m);
|
||||
sprintf_P(public_buf_m, PSTR("%.1f"), planner.settings.axis_steps_per_mm[Y_AXIS]);
|
||||
|
||||
break;
|
||||
case Zstep:
|
||||
ZERO(public_buf_m);
|
||||
sprintf_P(public_buf_m, PSTR("%.1f"), planner.settings.axis_steps_per_mm[Z_AXIS]);
|
||||
|
||||
break;
|
||||
case E0step:
|
||||
ZERO(public_buf_m);
|
||||
sprintf_P(public_buf_m, PSTR("%.1f"), planner.settings.axis_steps_per_mm[E_AXIS]);
|
||||
|
||||
break;
|
||||
case E1step:
|
||||
ZERO(public_buf_m);
|
||||
sprintf_P(public_buf_m, PSTR("%.1f"), planner.settings.axis_steps_per_mm[E_AXIS_N(1)]);
|
||||
break;
|
||||
|
||||
case Xcurrent:
|
||||
#if AXIS_IS_TMC(X)
|
||||
ZERO(public_buf_m);
|
||||
milliamps = stepperX.getMilliamps();
|
||||
sprintf_P(public_buf_m, PSTR("%.1f"), milliamps);
|
||||
#endif
|
||||
break;
|
||||
|
||||
case Ycurrent:
|
||||
#if AXIS_IS_TMC(Y)
|
||||
ZERO(public_buf_m);
|
||||
milliamps = stepperY.getMilliamps();
|
||||
sprintf_P(public_buf_m, PSTR("%.1f"), milliamps);
|
||||
#endif
|
||||
break;
|
||||
|
||||
case Zcurrent:
|
||||
#if AXIS_IS_TMC(Z)
|
||||
ZERO(public_buf_m);
|
||||
milliamps = stepperZ.getMilliamps();
|
||||
sprintf_P(public_buf_m, PSTR("%.1f"), milliamps);
|
||||
#endif
|
||||
break;
|
||||
|
||||
case E0current:
|
||||
#if AXIS_IS_TMC(E0)
|
||||
ZERO(public_buf_m);
|
||||
milliamps = stepperE0.getMilliamps();
|
||||
sprintf_P(public_buf_m, PSTR("%.1f"), milliamps);
|
||||
#endif
|
||||
break;
|
||||
|
||||
case E1current:
|
||||
#if AXIS_IS_TMC(E1)
|
||||
ZERO(public_buf_m);
|
||||
milliamps = stepperE1.getMilliamps();
|
||||
sprintf_P(public_buf_m, PSTR("%.1f"), milliamps);
|
||||
#endif
|
||||
break;
|
||||
|
||||
case pause_pos_x:
|
||||
ZERO(public_buf_m);
|
||||
sprintf_P(public_buf_m, PSTR("%.1f"), gCfgItems.pausePosX);
|
||||
break;
|
||||
case pause_pos_y:
|
||||
ZERO(public_buf_m);
|
||||
sprintf_P(public_buf_m, PSTR("%.1f"), gCfgItems.pausePosY);
|
||||
break;
|
||||
case pause_pos_z:
|
||||
ZERO(public_buf_m);
|
||||
sprintf_P(public_buf_m, PSTR("%.1f"), gCfgItems.pausePosZ);
|
||||
break;
|
||||
}
|
||||
ZERO(key_value);
|
||||
strcpy(key_value, public_buf_m);
|
||||
cnt = strlen(key_value);
|
||||
temp = strchr(key_value, '.');
|
||||
if (temp)
|
||||
point_flg = 0;
|
||||
else
|
||||
point_flg = 1;
|
||||
lv_label_set_text(labelValue, key_value);
|
||||
lv_obj_align(labelValue, buttonValue, LV_ALIGN_CENTER, 0, 0);
|
||||
|
||||
}
|
||||
|
||||
static void set_value_confirm() {
|
||||
#if HAS_TRINAMIC_CONFIG
|
||||
uint16_t current_mA;
|
||||
#endif
|
||||
switch (value) {
|
||||
case PrintAcceleration:
|
||||
planner.settings.acceleration = atof(key_value);
|
||||
|
||||
break;
|
||||
case RetractAcceleration:
|
||||
planner.settings.retract_acceleration = atof(key_value);
|
||||
|
||||
break;
|
||||
case TravelAcceleration:
|
||||
planner.settings.travel_acceleration = atof(key_value);
|
||||
|
||||
break;
|
||||
case XAcceleration:
|
||||
planner.settings.max_acceleration_mm_per_s2[X_AXIS] = atof(key_value);
|
||||
break;
|
||||
case YAcceleration:
|
||||
planner.settings.max_acceleration_mm_per_s2[Y_AXIS] = atof(key_value);
|
||||
break;
|
||||
case ZAcceleration:
|
||||
planner.settings.max_acceleration_mm_per_s2[Z_AXIS] = atof(key_value);
|
||||
break;
|
||||
case E0Acceleration:
|
||||
planner.settings.max_acceleration_mm_per_s2[E_AXIS] = atof(key_value);
|
||||
break;
|
||||
case E1Acceleration:
|
||||
planner.settings.max_acceleration_mm_per_s2[E_AXIS_N(1)] = atof(key_value);
|
||||
break;
|
||||
case XMaxFeedRate:
|
||||
planner.settings.max_feedrate_mm_s[X_AXIS] = atof(key_value);
|
||||
break;
|
||||
case YMaxFeedRate:
|
||||
planner.settings.max_feedrate_mm_s[Y_AXIS] = atof(key_value);
|
||||
break;
|
||||
case ZMaxFeedRate:
|
||||
planner.settings.max_feedrate_mm_s[Z_AXIS] = atof(key_value);
|
||||
break;
|
||||
case E0MaxFeedRate:
|
||||
planner.settings.max_feedrate_mm_s[E_AXIS] = atof(key_value);
|
||||
break;
|
||||
case E1MaxFeedRate:
|
||||
planner.settings.max_feedrate_mm_s[E_AXIS_N(1)] = atof(key_value);
|
||||
break;
|
||||
|
||||
case XJerk:
|
||||
#if HAS_CLASSIC_JERK
|
||||
planner.max_jerk[X_AXIS] = atof(key_value);
|
||||
#endif
|
||||
break;
|
||||
case YJerk:
|
||||
#if HAS_CLASSIC_JERK
|
||||
planner.max_jerk[Y_AXIS] = atof(key_value);
|
||||
#endif
|
||||
break;
|
||||
case ZJerk:
|
||||
#if HAS_CLASSIC_JERK
|
||||
planner.max_jerk[Z_AXIS] = atof(key_value);
|
||||
#endif
|
||||
break;
|
||||
case EJerk:
|
||||
#if HAS_CLASSIC_JERK
|
||||
planner.max_jerk[E_AXIS] = atof(key_value);
|
||||
#endif
|
||||
break;
|
||||
|
||||
case Xstep:
|
||||
planner.settings.axis_steps_per_mm[X_AXIS] = atof(key_value);
|
||||
break;
|
||||
case Ystep:
|
||||
planner.settings.axis_steps_per_mm[Y_AXIS] = atof(key_value);
|
||||
break;
|
||||
case Zstep:
|
||||
planner.settings.axis_steps_per_mm[Z_AXIS] = atof(key_value);
|
||||
break;
|
||||
case E0step:
|
||||
planner.settings.axis_steps_per_mm[E_AXIS] = atof(key_value);
|
||||
break;
|
||||
case E1step:
|
||||
planner.settings.axis_steps_per_mm[E_AXIS_N(1)] = atof(key_value);
|
||||
break;
|
||||
|
||||
case Xcurrent:
|
||||
#if AXIS_IS_TMC(X)
|
||||
current_mA = atoi(key_value);
|
||||
stepperX.rms_current(current_mA);
|
||||
#endif
|
||||
break;
|
||||
|
||||
case Ycurrent:
|
||||
#if AXIS_IS_TMC(Y)
|
||||
current_mA = atoi(key_value);
|
||||
stepperY.rms_current(current_mA);
|
||||
#endif
|
||||
break;
|
||||
|
||||
case Zcurrent:
|
||||
#if AXIS_IS_TMC(Z)
|
||||
current_mA = atoi(key_value);
|
||||
stepperZ.rms_current(current_mA);
|
||||
#endif
|
||||
break;
|
||||
|
||||
case E0current:
|
||||
#if AXIS_IS_TMC(E0)
|
||||
current_mA = atoi(key_value);
|
||||
stepperE0.rms_current(current_mA);
|
||||
#endif
|
||||
break;
|
||||
|
||||
case E1current:
|
||||
#if AXIS_IS_TMC(E1)
|
||||
current_mA = atoi(key_value);
|
||||
stepperE1.rms_current(current_mA);
|
||||
#endif
|
||||
break;
|
||||
|
||||
break;
|
||||
case pause_pos_x:
|
||||
gCfgItems.pausePosX = atof(key_value);
|
||||
update_spi_flash();
|
||||
break;
|
||||
case pause_pos_y:
|
||||
gCfgItems.pausePosY = atof(key_value);
|
||||
update_spi_flash();
|
||||
break;
|
||||
case pause_pos_z:
|
||||
gCfgItems.pausePosZ = atof(key_value);
|
||||
update_spi_flash();
|
||||
break;
|
||||
}
|
||||
gcode.process_subcommands_now_P(PSTR("M500"));
|
||||
}
|
||||
|
||||
static void event_handler(lv_obj_t * obj, lv_event_t event) {
|
||||
switch (obj->mks_obj_id) {
|
||||
case ID_NUM_KEY1:
|
||||
if (event == LV_EVENT_CLICKED) {
|
||||
|
||||
}
|
||||
else if (event == LV_EVENT_RELEASED) {
|
||||
if (cnt <= 10) {
|
||||
key_value[cnt] = (char)'1';
|
||||
lv_label_set_text(labelValue, key_value);
|
||||
lv_obj_align(labelValue, buttonValue, LV_ALIGN_CENTER, 0, 0);
|
||||
cnt++;
|
||||
}
|
||||
}
|
||||
break;
|
||||
case ID_NUM_KEY2:
|
||||
if (event == LV_EVENT_CLICKED) {
|
||||
|
||||
}
|
||||
else if (event == LV_EVENT_RELEASED) {
|
||||
if (cnt <= 10) {
|
||||
key_value[cnt] = (char)'2';
|
||||
lv_label_set_text(labelValue, key_value);
|
||||
lv_obj_align(labelValue, buttonValue, LV_ALIGN_CENTER, 0, 0);
|
||||
cnt++;
|
||||
}
|
||||
}
|
||||
break;
|
||||
case ID_NUM_KEY3:
|
||||
if (event == LV_EVENT_CLICKED) {
|
||||
|
||||
}
|
||||
else if (event == LV_EVENT_RELEASED) {
|
||||
if (cnt <= 10) {
|
||||
key_value[cnt] = (char)'3';
|
||||
lv_label_set_text(labelValue, key_value);
|
||||
lv_obj_align(labelValue, buttonValue, LV_ALIGN_CENTER, 0, 0);
|
||||
cnt++;
|
||||
}
|
||||
}
|
||||
break;
|
||||
case ID_NUM_KEY4:
|
||||
if (event == LV_EVENT_CLICKED) {
|
||||
|
||||
}
|
||||
else if (event == LV_EVENT_RELEASED) {
|
||||
if (cnt <= 10) {
|
||||
key_value[cnt] = (char)'4';
|
||||
lv_label_set_text(labelValue, key_value);
|
||||
lv_obj_align(labelValue, buttonValue, LV_ALIGN_CENTER, 0, 0);
|
||||
cnt++;
|
||||
}
|
||||
}
|
||||
break;
|
||||
case ID_NUM_KEY5:
|
||||
if (event == LV_EVENT_CLICKED) {
|
||||
|
||||
}
|
||||
else if (event == LV_EVENT_RELEASED) {
|
||||
if (cnt <= 10) {
|
||||
key_value[cnt] = (char)'5';
|
||||
lv_label_set_text(labelValue, key_value);
|
||||
lv_obj_align(labelValue, buttonValue, LV_ALIGN_CENTER, 0, 0);
|
||||
cnt++;
|
||||
}
|
||||
}
|
||||
break;
|
||||
case ID_NUM_KEY6:
|
||||
if (event == LV_EVENT_CLICKED) {
|
||||
|
||||
}
|
||||
else if (event == LV_EVENT_RELEASED) {
|
||||
if (cnt <= 10) {
|
||||
key_value[cnt] = (char)'6';
|
||||
lv_label_set_text(labelValue, key_value);
|
||||
lv_obj_align(labelValue, buttonValue, LV_ALIGN_CENTER, 0, 0);
|
||||
cnt++;
|
||||
}
|
||||
}
|
||||
break;
|
||||
case ID_NUM_KEY7:
|
||||
if (event == LV_EVENT_CLICKED) {
|
||||
|
||||
}
|
||||
else if (event == LV_EVENT_RELEASED) {
|
||||
if (cnt <= 10) {
|
||||
key_value[cnt] = (char)'7';
|
||||
lv_label_set_text(labelValue, key_value);
|
||||
lv_obj_align(labelValue, buttonValue, LV_ALIGN_CENTER, 0, 0);
|
||||
cnt++;
|
||||
}
|
||||
}
|
||||
break;
|
||||
case ID_NUM_KEY8:
|
||||
if (event == LV_EVENT_CLICKED) {
|
||||
|
||||
}
|
||||
else if (event == LV_EVENT_RELEASED) {
|
||||
if (cnt <= 10) {
|
||||
key_value[cnt] = (char)'8';
|
||||
lv_label_set_text(labelValue, key_value);
|
||||
lv_obj_align(labelValue, buttonValue, LV_ALIGN_CENTER, 0, 0);
|
||||
cnt++;
|
||||
}
|
||||
}
|
||||
break;
|
||||
case ID_NUM_KEY9:
|
||||
if (event == LV_EVENT_CLICKED) {
|
||||
|
||||
}
|
||||
else if (event == LV_EVENT_RELEASED) {
|
||||
if (cnt <= 10) {
|
||||
key_value[cnt] = (char)'9';
|
||||
lv_label_set_text(labelValue, key_value);
|
||||
lv_obj_align(labelValue, buttonValue, LV_ALIGN_CENTER, 0, 0);
|
||||
cnt++;
|
||||
}
|
||||
}
|
||||
break;
|
||||
case ID_NUM_KEY0:
|
||||
if (event == LV_EVENT_CLICKED) {
|
||||
|
||||
}
|
||||
else if (event == LV_EVENT_RELEASED) {
|
||||
if (cnt <= 10) {
|
||||
key_value[cnt] = (char)'0';
|
||||
lv_label_set_text(labelValue, key_value);
|
||||
lv_obj_align(labelValue, buttonValue, LV_ALIGN_CENTER, 0, 0);
|
||||
cnt++;
|
||||
}
|
||||
}
|
||||
break;
|
||||
case ID_NUM_BACK:
|
||||
if (event == LV_EVENT_CLICKED) {
|
||||
|
||||
}
|
||||
else if (event == LV_EVENT_RELEASED) {
|
||||
if (cnt > 0)
|
||||
cnt--;
|
||||
if (key_value[cnt] == (char)'.') point_flg = 1;
|
||||
key_value[cnt] = (char)'\0';
|
||||
lv_label_set_text(labelValue, key_value);
|
||||
lv_obj_align(labelValue, buttonValue, LV_ALIGN_CENTER, 0, 0);
|
||||
}
|
||||
break;
|
||||
case ID_NUM_RESET:
|
||||
if (event == LV_EVENT_CLICKED) {
|
||||
|
||||
}
|
||||
else if (event == LV_EVENT_RELEASED) {
|
||||
ZERO(key_value);
|
||||
cnt = 0;
|
||||
key_value[cnt] = (char)'0';
|
||||
point_flg = 1;
|
||||
lv_label_set_text(labelValue, key_value);
|
||||
lv_obj_align(labelValue, buttonValue, LV_ALIGN_CENTER, 0, 0);
|
||||
}
|
||||
break;
|
||||
case ID_NUM_POINT:
|
||||
if (event == LV_EVENT_CLICKED) {
|
||||
|
||||
}
|
||||
else if (event == LV_EVENT_RELEASED) {
|
||||
if ((cnt != 0) && (point_flg == 1)) {
|
||||
point_flg = 0;
|
||||
key_value[cnt] = (char)'.';
|
||||
lv_label_set_text(labelValue, key_value);
|
||||
lv_obj_align(labelValue, buttonValue, LV_ALIGN_CENTER, 0, 0);
|
||||
cnt++;
|
||||
}
|
||||
}
|
||||
break;
|
||||
case ID_NUM_NAGETIVE:
|
||||
if (event == LV_EVENT_CLICKED) {
|
||||
|
||||
}
|
||||
else if (event == LV_EVENT_RELEASED) {
|
||||
if (cnt == 0) {
|
||||
key_value[cnt] = (char)'-';
|
||||
lv_label_set_text(labelValue, key_value);
|
||||
lv_obj_align(labelValue, buttonValue, LV_ALIGN_CENTER, 0, 0);
|
||||
cnt++;
|
||||
}
|
||||
}
|
||||
break;
|
||||
case ID_NUM_CONFIRM:
|
||||
if (event == LV_EVENT_CLICKED) {
|
||||
|
||||
}
|
||||
else if (event == LV_EVENT_RELEASED) {
|
||||
last_disp_state = NUMBER_KEY_UI;
|
||||
if (strlen(key_value) != 0)
|
||||
set_value_confirm();
|
||||
lv_clear_number_key();
|
||||
draw_return_ui();
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
void lv_draw_number_key(void) {
|
||||
lv_obj_t *NumberKey_1 = NULL, *NumberKey_2 = NULL, *NumberKey_3 = NULL, *NumberKey_4 = NULL, *NumberKey_5 = NULL;
|
||||
lv_obj_t *NumberKey_6 = NULL, *NumberKey_7 = NULL, *NumberKey_8 = NULL, *NumberKey_9 = NULL, *NumberKey_0 = NULL;
|
||||
lv_obj_t *KeyPoint = NULL, *KeyConfirm = NULL, *KeyReset = NULL, *KeyBack = NULL;
|
||||
lv_obj_t *Minus = NULL;
|
||||
lv_obj_t *labelKey_1 = NULL, *labelKey_2 = NULL, *labelKey_3 = NULL, *labelKey_4 = NULL, *labelKey_5 = NULL;
|
||||
lv_obj_t *labelKey_6 = NULL, *labelKey_7 = NULL, *labelKey_8 = NULL, *labelKey_9 = NULL, *labelKey_0 = NULL;
|
||||
lv_obj_t *labelKeyPoint = NULL, *labelKeyConfirm = NULL, *labelKeyReset = NULL, *labelKeyBack = NULL;
|
||||
lv_obj_t *labelMinus = NULL;
|
||||
|
||||
buttonValue = NULL;
|
||||
labelValue = NULL;
|
||||
|
||||
if (disp_state_stack._disp_state[disp_state_stack._disp_index] != NUMBER_KEY_UI) {
|
||||
disp_state_stack._disp_index++;
|
||||
disp_state_stack._disp_state[disp_state_stack._disp_index] = NUMBER_KEY_UI;
|
||||
}
|
||||
disp_state = NUMBER_KEY_UI;
|
||||
|
||||
scr = lv_obj_create(NULL, NULL);
|
||||
|
||||
lv_obj_set_style(scr, &tft_style_scr);
|
||||
lv_scr_load(scr);
|
||||
lv_obj_clean(scr);
|
||||
|
||||
//lv_obj_t * title = lv_label_create(scr, NULL);
|
||||
//lv_obj_set_style(title, &tft_style_label_rel);
|
||||
//lv_obj_set_pos(title,TITLE_XPOS,TITLE_YPOS);
|
||||
//lv_label_set_text(title, creat_title_text());
|
||||
|
||||
lv_refr_now(lv_refr_get_disp_refreshing());
|
||||
|
||||
//LV_IMG_DECLARE(bmp_pic);
|
||||
|
||||
buttonValue = lv_btn_create(scr, NULL); /*Add a button the current screen*/
|
||||
lv_obj_set_pos(buttonValue, 92, 40); /*Set its position*/
|
||||
lv_obj_set_size(buttonValue, 296, 40);
|
||||
lv_obj_set_event_cb_mks(buttonValue, event_handler, ID_NUM_KEY1, NULL, 0);
|
||||
lv_btn_set_style(buttonValue, LV_BTN_STYLE_REL, &style_num_text); /*Set the button's released style*/
|
||||
lv_btn_set_style(buttonValue, LV_BTN_STYLE_PR, &style_num_text); /*Set the button's pressed style*/
|
||||
lv_btn_set_layout(buttonValue, LV_LAYOUT_OFF);
|
||||
labelValue = lv_label_create(buttonValue, NULL); /*Add a label to the button*/
|
||||
|
||||
NumberKey_1 = lv_btn_create(scr, NULL); /*Add a button the current screen*/
|
||||
lv_obj_set_pos(NumberKey_1, 92, 90); /*Set its position*/
|
||||
lv_obj_set_size(NumberKey_1, 68, 40);
|
||||
lv_obj_set_event_cb_mks(NumberKey_1, event_handler, ID_NUM_KEY1, NULL, 0);
|
||||
lv_btn_set_style(NumberKey_1, LV_BTN_STYLE_REL, &style_num_key_pre); /*Set the button's released style*/
|
||||
lv_btn_set_style(NumberKey_1, LV_BTN_STYLE_PR, &style_num_key_rel); /*Set the button's pressed style*/
|
||||
lv_btn_set_layout(NumberKey_1, LV_LAYOUT_OFF);
|
||||
labelKey_1 = lv_label_create(NumberKey_1, NULL); /*Add a label to the button*/
|
||||
lv_label_set_text(labelKey_1, machine_menu.key_1);
|
||||
lv_obj_align(labelKey_1, NumberKey_1, LV_ALIGN_CENTER, 0, 0);
|
||||
|
||||
NumberKey_2 = lv_btn_create(scr, NULL); /*Add a button the current screen*/
|
||||
lv_obj_set_pos(NumberKey_2, 168, 90); /*Set its position*/
|
||||
lv_obj_set_size(NumberKey_2, 68, 40);
|
||||
lv_obj_set_event_cb_mks(NumberKey_2, event_handler, ID_NUM_KEY2, NULL, 0);
|
||||
lv_btn_set_style(NumberKey_2, LV_BTN_STYLE_REL, &style_num_key_pre); /*Set the button's released style*/
|
||||
lv_btn_set_style(NumberKey_2, LV_BTN_STYLE_PR, &style_num_key_rel); /*Set the button's pressed style*/
|
||||
lv_btn_set_layout(NumberKey_2, LV_LAYOUT_OFF);
|
||||
labelKey_2 = lv_label_create(NumberKey_2, NULL); /*Add a label to the button*/
|
||||
lv_label_set_text(labelKey_2, machine_menu.key_2);
|
||||
lv_obj_align(labelKey_2, NumberKey_2, LV_ALIGN_CENTER, 0, 0);
|
||||
|
||||
NumberKey_3 = lv_btn_create(scr, NULL); /*Add a button the current screen*/
|
||||
lv_obj_set_pos(NumberKey_3, 244, 90); /*Set its position*/
|
||||
lv_obj_set_size(NumberKey_3, 68, 40);
|
||||
lv_obj_set_event_cb_mks(NumberKey_3, event_handler, ID_NUM_KEY3, NULL, 0);
|
||||
lv_btn_set_style(NumberKey_3, LV_BTN_STYLE_REL, &style_num_key_pre); /*Set the button's released style*/
|
||||
lv_btn_set_style(NumberKey_3, LV_BTN_STYLE_PR, &style_num_key_rel); /*Set the button's pressed style*/
|
||||
lv_btn_set_layout(NumberKey_3, LV_LAYOUT_OFF);
|
||||
labelKey_3 = lv_label_create(NumberKey_3, NULL); /*Add a label to the button*/
|
||||
lv_label_set_text(labelKey_3, machine_menu.key_3);
|
||||
lv_obj_align(labelKey_3, NumberKey_3, LV_ALIGN_CENTER, 0, 0);
|
||||
|
||||
NumberKey_4 = lv_btn_create(scr, NULL); /*Add a button the current screen*/
|
||||
lv_obj_set_pos(NumberKey_4, 92, 140); /*Set its position*/
|
||||
lv_obj_set_size(NumberKey_4, 68, 40);
|
||||
lv_obj_set_event_cb_mks(NumberKey_4, event_handler, ID_NUM_KEY4, NULL, 0);
|
||||
lv_btn_set_style(NumberKey_4, LV_BTN_STYLE_REL, &style_num_key_pre); /*Set the button's released style*/
|
||||
lv_btn_set_style(NumberKey_4, LV_BTN_STYLE_PR, &style_num_key_rel); /*Set the button's pressed style*/
|
||||
lv_btn_set_layout(NumberKey_4, LV_LAYOUT_OFF);
|
||||
labelKey_4 = lv_label_create(NumberKey_4, NULL); /*Add a label to the button*/
|
||||
lv_label_set_text(labelKey_4, machine_menu.key_4);
|
||||
lv_obj_align(labelKey_4, NumberKey_4, LV_ALIGN_CENTER, 0, 0);
|
||||
|
||||
NumberKey_5 = lv_btn_create(scr, NULL); /*Add a button the current screen*/
|
||||
lv_obj_set_pos(NumberKey_5, 168, 140); /*Set its position*/
|
||||
lv_obj_set_size(NumberKey_5, 68, 40);
|
||||
lv_obj_set_event_cb_mks(NumberKey_5, event_handler, ID_NUM_KEY5, NULL, 0);
|
||||
lv_btn_set_style(NumberKey_5, LV_BTN_STYLE_REL, &style_num_key_pre); /*Set the button's released style*/
|
||||
lv_btn_set_style(NumberKey_5, LV_BTN_STYLE_PR, &style_num_key_rel); /*Set the button's pressed style*/
|
||||
lv_btn_set_layout(NumberKey_5, LV_LAYOUT_OFF);
|
||||
labelKey_5 = lv_label_create(NumberKey_5, NULL); /*Add a label to the button*/
|
||||
lv_label_set_text(labelKey_5, machine_menu.key_5);
|
||||
lv_obj_align(labelKey_5, NumberKey_5, LV_ALIGN_CENTER, 0, 0);
|
||||
|
||||
NumberKey_6 = lv_btn_create(scr, NULL); /*Add a button the current screen*/
|
||||
lv_obj_set_pos(NumberKey_6, 244, 140); /*Set its position*/
|
||||
lv_obj_set_size(NumberKey_6, 68, 40);
|
||||
lv_obj_set_event_cb_mks(NumberKey_6, event_handler, ID_NUM_KEY6, NULL, 0);
|
||||
lv_btn_set_style(NumberKey_6, LV_BTN_STYLE_REL, &style_num_key_pre); /*Set the button's released style*/
|
||||
lv_btn_set_style(NumberKey_6, LV_BTN_STYLE_PR, &style_num_key_rel); /*Set the button's pressed style*/
|
||||
lv_btn_set_layout(NumberKey_6, LV_LAYOUT_OFF);
|
||||
labelKey_6 = lv_label_create(NumberKey_6, NULL); /*Add a label to the button*/
|
||||
lv_label_set_text(labelKey_6, machine_menu.key_6);
|
||||
lv_obj_align(labelKey_6, NumberKey_6, LV_ALIGN_CENTER, 0, 0);
|
||||
|
||||
NumberKey_7 = lv_btn_create(scr, NULL); /*Add a button the current screen*/
|
||||
lv_obj_set_pos(NumberKey_7, 92, 190); /*Set its position*/
|
||||
lv_obj_set_size(NumberKey_7, 68, 40);
|
||||
lv_obj_set_event_cb_mks(NumberKey_7, event_handler, ID_NUM_KEY7, NULL, 0);
|
||||
lv_btn_set_style(NumberKey_7, LV_BTN_STYLE_REL, &style_num_key_pre); /*Set the button's released style*/
|
||||
lv_btn_set_style(NumberKey_7, LV_BTN_STYLE_PR, &style_num_key_rel); /*Set the button's pressed style*/
|
||||
lv_btn_set_layout(NumberKey_7, LV_LAYOUT_OFF);
|
||||
labelKey_7 = lv_label_create(NumberKey_7, NULL); /*Add a label to the button*/
|
||||
lv_label_set_text(labelKey_7, machine_menu.key_7);
|
||||
lv_obj_align(labelKey_7, NumberKey_7, LV_ALIGN_CENTER, 0, 0);
|
||||
|
||||
NumberKey_8 = lv_btn_create(scr, NULL); /*Add a button the current screen*/
|
||||
lv_obj_set_pos(NumberKey_8, 168, 190); /*Set its position*/
|
||||
lv_obj_set_size(NumberKey_8, 68, 40);
|
||||
lv_obj_set_event_cb_mks(NumberKey_8, event_handler, ID_NUM_KEY8, NULL, 0);
|
||||
lv_btn_set_style(NumberKey_8, LV_BTN_STYLE_REL, &style_num_key_pre); /*Set the button's released style*/
|
||||
lv_btn_set_style(NumberKey_8, LV_BTN_STYLE_PR, &style_num_key_rel); /*Set the button's pressed style*/
|
||||
lv_btn_set_layout(NumberKey_8, LV_LAYOUT_OFF);
|
||||
labelKey_8 = lv_label_create(NumberKey_8, NULL); /*Add a label to the button*/
|
||||
lv_label_set_text(labelKey_8, machine_menu.key_8);
|
||||
lv_obj_align(labelKey_8, NumberKey_8, LV_ALIGN_CENTER, 0, 0);
|
||||
|
||||
NumberKey_9 = lv_btn_create(scr, NULL); /*Add a button the current screen*/
|
||||
lv_obj_set_pos(NumberKey_9, 244, 190); /*Set its position*/
|
||||
lv_obj_set_size(NumberKey_9, 68, 40);
|
||||
lv_obj_set_event_cb_mks(NumberKey_9, event_handler, ID_NUM_KEY9, NULL, 0);
|
||||
lv_btn_set_style(NumberKey_9, LV_BTN_STYLE_REL, &style_num_key_pre); /*Set the button's released style*/
|
||||
lv_btn_set_style(NumberKey_9, LV_BTN_STYLE_PR, &style_num_key_rel); /*Set the button's pressed style*/
|
||||
lv_btn_set_layout(NumberKey_9, LV_LAYOUT_OFF);
|
||||
labelKey_9 = lv_label_create(NumberKey_9, NULL); /*Add a label to the button*/
|
||||
lv_label_set_text(labelKey_9, machine_menu.key_9);
|
||||
lv_obj_align(labelKey_9, NumberKey_9, LV_ALIGN_CENTER, 0, 0);
|
||||
|
||||
NumberKey_0 = lv_btn_create(scr, NULL); /*Add a button the current screen*/
|
||||
lv_obj_set_pos(NumberKey_0, 92, 240); /*Set its position*/
|
||||
lv_obj_set_size(NumberKey_0, 68, 40);
|
||||
lv_obj_set_event_cb_mks(NumberKey_0, event_handler, ID_NUM_KEY0, NULL, 0);
|
||||
lv_btn_set_style(NumberKey_0, LV_BTN_STYLE_REL, &style_num_key_pre); /*Set the button's released style*/
|
||||
lv_btn_set_style(NumberKey_0, LV_BTN_STYLE_PR, &style_num_key_rel); /*Set the button's pressed style*/
|
||||
lv_btn_set_layout(NumberKey_0, LV_LAYOUT_OFF);
|
||||
labelKey_0 = lv_label_create(NumberKey_0, NULL); /*Add a label to the button*/
|
||||
lv_label_set_text(labelKey_0, machine_menu.key_0);
|
||||
lv_obj_align(labelKey_0, NumberKey_0, LV_ALIGN_CENTER, 0, 0);
|
||||
|
||||
KeyBack = lv_btn_create(scr, NULL); /*Add a button the current screen*/
|
||||
lv_obj_set_pos(KeyBack, 320, 90); /*Set its position*/
|
||||
lv_obj_set_size(KeyBack, 68, 40);
|
||||
lv_obj_set_event_cb_mks(KeyBack, event_handler, ID_NUM_BACK, NULL, 0);
|
||||
lv_btn_set_style(KeyBack, LV_BTN_STYLE_REL, &style_num_key_pre); /*Set the button's released style*/
|
||||
lv_btn_set_style(KeyBack, LV_BTN_STYLE_PR, &style_num_key_rel); /*Set the button's pressed style*/
|
||||
lv_btn_set_layout(KeyBack, LV_LAYOUT_OFF);
|
||||
labelKeyBack = lv_label_create(KeyBack, NULL); /*Add a label to the button*/
|
||||
lv_label_set_text(labelKeyBack, machine_menu.key_back);
|
||||
lv_obj_align(labelKeyBack, KeyBack, LV_ALIGN_CENTER, 0, 0);
|
||||
|
||||
KeyReset = lv_btn_create(scr, NULL); /*Add a button the current screen*/
|
||||
lv_obj_set_pos(KeyReset, 320, 140); /*Set its position*/
|
||||
lv_obj_set_size(KeyReset, 68, 40);
|
||||
lv_obj_set_event_cb_mks(KeyReset, event_handler, ID_NUM_RESET, NULL, 0);
|
||||
lv_btn_set_style(KeyReset, LV_BTN_STYLE_REL, &style_num_key_pre); /*Set the button's released style*/
|
||||
lv_btn_set_style(KeyReset, LV_BTN_STYLE_PR, &style_num_key_rel); /*Set the button's pressed style*/
|
||||
lv_btn_set_layout(KeyReset, LV_LAYOUT_OFF);
|
||||
labelKeyReset = lv_label_create(KeyReset, NULL); /*Add a label to the button*/
|
||||
lv_label_set_text(labelKeyReset, machine_menu.key_reset);
|
||||
lv_obj_align(labelKeyReset, KeyReset, LV_ALIGN_CENTER, 0, 0);
|
||||
|
||||
KeyConfirm = lv_btn_create(scr, NULL); /*Add a button the current screen*/
|
||||
lv_obj_set_pos(KeyConfirm, 320, 190); /*Set its position*/
|
||||
lv_obj_set_size(KeyConfirm, 68, 90);
|
||||
lv_obj_set_event_cb_mks(KeyConfirm, event_handler, ID_NUM_CONFIRM, NULL, 0);
|
||||
lv_btn_set_style(KeyConfirm, LV_BTN_STYLE_REL, &style_num_key_pre); /*Set the button's released style*/
|
||||
lv_btn_set_style(KeyConfirm, LV_BTN_STYLE_PR, &style_num_key_rel); /*Set the button's pressed style*/
|
||||
lv_btn_set_layout(KeyConfirm, LV_LAYOUT_OFF);
|
||||
labelKeyConfirm = lv_label_create(KeyConfirm, NULL); /*Add a label to the button*/
|
||||
lv_label_set_text(labelKeyConfirm, machine_menu.key_confirm);
|
||||
lv_obj_align(labelKeyConfirm, KeyConfirm, LV_ALIGN_CENTER, 0, 0);
|
||||
|
||||
KeyPoint = lv_btn_create(scr, NULL); /*Add a button the current screen*/
|
||||
lv_obj_set_pos(KeyPoint, 244, 240); /*Set its position*/
|
||||
lv_obj_set_size(KeyPoint, 68, 40);
|
||||
lv_obj_set_event_cb_mks(KeyPoint, event_handler, ID_NUM_POINT, NULL, 0);
|
||||
lv_btn_set_style(KeyPoint, LV_BTN_STYLE_REL, &style_num_key_pre); /*Set the button's released style*/
|
||||
lv_btn_set_style(KeyPoint, LV_BTN_STYLE_PR, &style_num_key_rel); /*Set the button's pressed style*/
|
||||
lv_btn_set_layout(KeyPoint, LV_LAYOUT_OFF);
|
||||
labelKeyPoint = lv_label_create(KeyPoint, NULL); /*Add a label to the button*/
|
||||
lv_label_set_text(labelKeyPoint, machine_menu.key_point);
|
||||
lv_obj_align(labelKeyPoint, KeyPoint, LV_ALIGN_CENTER, 0, 0);
|
||||
|
||||
Minus = lv_btn_create(scr, NULL); /*Add a button the current screen*/
|
||||
lv_obj_set_pos(Minus, 168, 240); /*Set its position*/
|
||||
lv_obj_set_size(Minus, 68, 40);
|
||||
lv_obj_set_event_cb_mks(Minus, event_handler, ID_NUM_NAGETIVE, NULL, 0);
|
||||
lv_btn_set_style(Minus, LV_BTN_STYLE_REL, &style_num_key_pre); /*Set the button's released style*/
|
||||
lv_btn_set_style(Minus, LV_BTN_STYLE_PR, &style_num_key_rel); /*Set the button's pressed style*/
|
||||
lv_btn_set_layout(Minus, LV_LAYOUT_OFF);
|
||||
labelMinus = lv_label_create(Minus, NULL); /*Add a label to the button*/
|
||||
lv_label_set_text(labelMinus, machine_menu.negative);
|
||||
lv_obj_align(labelMinus, Minus, LV_ALIGN_CENTER, 0, 0);
|
||||
|
||||
disp_key_value();
|
||||
}
|
||||
|
||||
void lv_clear_number_key() { lv_obj_del(scr); }
|
||||
|
||||
#endif // HAS_TFT_LVGL_UI
|
33
Marlin/src/lcd/extui/lib/mks_ui/draw_number_key.h
Normal file
33
Marlin/src/lcd/extui/lib/mks_ui/draw_number_key.h
Normal file
|
@ -0,0 +1,33 @@
|
|||
/**
|
||||
* Marlin 3D Printer Firmware
|
||||
* Copyright (c) 2020 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
|
||||
*
|
||||
* Based on Sprinter and grbl.
|
||||
* Copyright (c) 2011 Camiel Gubbels / Erik van der Zalm
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*
|
||||
*/
|
||||
#pragma once
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" { /* C-declarations for C++ */
|
||||
#endif
|
||||
|
||||
extern void lv_draw_number_key(void);
|
||||
extern void lv_clear_number_key();
|
||||
|
||||
#ifdef __cplusplus
|
||||
} /* C-declarations for C++ */
|
||||
#endif
|
|
@ -21,7 +21,7 @@
|
|||
*/
|
||||
#include "../../../../inc/MarlinConfigPre.h"
|
||||
|
||||
#if ENABLED(TFT_LVGL_UI)
|
||||
#if HAS_TFT_LVGL_UI
|
||||
|
||||
#include "lv_conf.h"
|
||||
#include "draw_ui.h"
|
||||
|
@ -53,7 +53,7 @@ static void event_handler(lv_obj_t * obj, lv_event_t event) {
|
|||
// nothing to do
|
||||
}
|
||||
else if (event == LV_EVENT_RELEASED) {
|
||||
lv_clear_opration();
|
||||
lv_clear_operation();
|
||||
lv_draw_preHeat();
|
||||
}
|
||||
break;
|
||||
|
@ -62,7 +62,7 @@ static void event_handler(lv_obj_t * obj, lv_event_t event) {
|
|||
// nothing to do
|
||||
}
|
||||
else if (event == LV_EVENT_RELEASED) {
|
||||
lv_clear_opration();
|
||||
lv_clear_operation();
|
||||
lv_draw_extrusion();
|
||||
}
|
||||
break;
|
||||
|
@ -71,7 +71,7 @@ static void event_handler(lv_obj_t * obj, lv_event_t event) {
|
|||
// nothing to do
|
||||
}
|
||||
else if (event == LV_EVENT_RELEASED) {
|
||||
lv_clear_opration();
|
||||
lv_clear_operation();
|
||||
lv_draw_move_motor();
|
||||
}
|
||||
break;
|
||||
|
@ -87,7 +87,7 @@ static void event_handler(lv_obj_t * obj, lv_event_t event) {
|
|||
// nothing to do
|
||||
}
|
||||
else if (event == LV_EVENT_RELEASED) {
|
||||
lv_clear_opration();
|
||||
lv_clear_operation();
|
||||
lv_draw_fan();
|
||||
}
|
||||
break;
|
||||
|
@ -96,7 +96,7 @@ static void event_handler(lv_obj_t * obj, lv_event_t event) {
|
|||
// nothing to do
|
||||
}
|
||||
else if (event == LV_EVENT_RELEASED) {
|
||||
lv_clear_opration();
|
||||
lv_clear_operation();
|
||||
lv_draw_change_speed();
|
||||
}
|
||||
break;
|
||||
|
@ -116,7 +116,7 @@ static void event_handler(lv_obj_t * obj, lv_event_t event) {
|
|||
else if (event == LV_EVENT_RELEASED) {
|
||||
if (gCfgItems.finish_power_off == 1) {
|
||||
gCfgItems.finish_power_off = 0;
|
||||
lv_obj_set_event_cb_mks(obj, event_handler, ID_O_POWER_OFF, "bmp_manual_off.bin", 0); //dindt find bmp_Mamual...
|
||||
lv_obj_set_event_cb_mks(obj, event_handler, ID_O_POWER_OFF, "bmp_manual_off.bin", 0); // didn't find bmp_Mamual...
|
||||
lv_label_set_text(label_PowerOff, printing_more_menu.manual);
|
||||
lv_obj_align(label_PowerOff, buttonPowerOff, LV_ALIGN_IN_BOTTOM_MID, 0, BUTTON_TEXT_Y_OFFSET);
|
||||
lv_obj_refresh_ext_draw_pad(label_PowerOff);
|
||||
|
@ -136,7 +136,7 @@ static void event_handler(lv_obj_t * obj, lv_event_t event) {
|
|||
}
|
||||
}
|
||||
|
||||
void lv_draw_opration(void) {
|
||||
void lv_draw_operation(void) {
|
||||
lv_obj_t *buttonPreHeat, *buttonExtrusion, *buttonSpeed;
|
||||
lv_obj_t *buttonBack, *buttonFan;
|
||||
lv_obj_t *labelPreHeat, *labelExtrusion;
|
||||
|
@ -156,7 +156,7 @@ void lv_draw_opration(void) {
|
|||
lv_obj_clean(scr);
|
||||
|
||||
lv_obj_t * title = lv_label_create(scr, NULL);
|
||||
lv_obj_set_style(title, &tft_style_lable_rel);
|
||||
lv_obj_set_style(title, &tft_style_label_rel);
|
||||
lv_obj_set_pos(title, TITLE_XPOS, TITLE_YPOS);
|
||||
lv_label_set_text(title, creat_title_text());
|
||||
|
||||
|
@ -170,52 +170,54 @@ void lv_draw_opration(void) {
|
|||
buttonFan = lv_imgbtn_create(scr, NULL);
|
||||
buttonSpeed = lv_imgbtn_create(scr, NULL);
|
||||
|
||||
if (uiCfg.print_state != WORKING)
|
||||
if (uiCfg.print_state != WORKING) {
|
||||
//buttonFilament = lv_imgbtn_create(scr, NULL);
|
||||
//else
|
||||
//} else {
|
||||
buttonMove = lv_imgbtn_create(scr, NULL);
|
||||
}
|
||||
|
||||
buttonPowerOff = lv_imgbtn_create(scr, NULL);
|
||||
buttonBack = lv_imgbtn_create(scr, NULL);
|
||||
|
||||
lv_obj_set_event_cb_mks(buttonPreHeat, event_handler, ID_O_PRE_HEAT, "bmp_PreHeat.bin", 0);
|
||||
lv_obj_set_event_cb_mks(buttonPreHeat, event_handler, ID_O_PRE_HEAT, "bmp_temp.bin", 0);
|
||||
lv_imgbtn_set_src(buttonPreHeat, LV_BTN_STATE_REL, &bmp_pic);
|
||||
lv_imgbtn_set_src(buttonPreHeat, LV_BTN_STATE_PR, &bmp_pic);
|
||||
lv_imgbtn_set_style(buttonPreHeat, LV_BTN_STATE_PR, &tft_style_lable_pre);
|
||||
lv_imgbtn_set_style(buttonPreHeat, LV_BTN_STATE_REL, &tft_style_lable_rel);
|
||||
lv_imgbtn_set_style(buttonPreHeat, LV_BTN_STATE_PR, &tft_style_label_pre);
|
||||
lv_imgbtn_set_style(buttonPreHeat, LV_BTN_STATE_REL, &tft_style_label_rel);
|
||||
lv_obj_clear_protect(buttonPreHeat, LV_PROTECT_FOLLOW);
|
||||
#if 1
|
||||
lv_obj_set_event_cb_mks(buttonExtrusion, event_handler, ID_O_EXTRUCT, "bmp_Extruct.bin", 0);
|
||||
lv_obj_set_event_cb_mks(buttonExtrusion, event_handler, ID_O_EXTRUCT, "bmp_extrude_opr.bin", 0);
|
||||
lv_imgbtn_set_src(buttonExtrusion, LV_BTN_STATE_REL, &bmp_pic);
|
||||
lv_imgbtn_set_src(buttonExtrusion, LV_BTN_STATE_PR, &bmp_pic);
|
||||
lv_imgbtn_set_style(buttonExtrusion, LV_BTN_STATE_PR, &tft_style_lable_pre);
|
||||
lv_imgbtn_set_style(buttonExtrusion, LV_BTN_STATE_REL, &tft_style_lable_rel);
|
||||
lv_imgbtn_set_style(buttonExtrusion, LV_BTN_STATE_PR, &tft_style_label_pre);
|
||||
lv_imgbtn_set_style(buttonExtrusion, LV_BTN_STATE_REL, &tft_style_label_rel);
|
||||
|
||||
lv_obj_set_event_cb_mks(buttonFan, event_handler, ID_O_FAN, "bmp_Fan.bin", 0);
|
||||
lv_obj_set_event_cb_mks(buttonFan, event_handler, ID_O_FAN, "bmp_fan.bin", 0);
|
||||
lv_imgbtn_set_src(buttonFan, LV_BTN_STATE_REL, &bmp_pic);
|
||||
lv_imgbtn_set_src(buttonFan, LV_BTN_STATE_PR, &bmp_pic);
|
||||
lv_imgbtn_set_style(buttonFan, LV_BTN_STATE_PR, &tft_style_lable_pre);
|
||||
lv_imgbtn_set_style(buttonFan, LV_BTN_STATE_REL, &tft_style_lable_rel);
|
||||
lv_imgbtn_set_style(buttonFan, LV_BTN_STATE_PR, &tft_style_label_pre);
|
||||
lv_imgbtn_set_style(buttonFan, LV_BTN_STATE_REL, &tft_style_label_rel);
|
||||
|
||||
lv_obj_set_event_cb_mks(buttonSpeed, event_handler, ID_O_SPEED, "bmp_Speed.bin", 0);
|
||||
lv_obj_set_event_cb_mks(buttonSpeed, event_handler, ID_O_SPEED, "bmp_speed.bin", 0);
|
||||
lv_imgbtn_set_src(buttonSpeed, LV_BTN_STATE_REL, &bmp_pic);
|
||||
lv_imgbtn_set_src(buttonSpeed, LV_BTN_STATE_PR, &bmp_pic);
|
||||
lv_imgbtn_set_style(buttonSpeed, LV_BTN_STATE_PR, &tft_style_lable_pre);
|
||||
lv_imgbtn_set_style(buttonSpeed, LV_BTN_STATE_REL, &tft_style_lable_rel);
|
||||
lv_imgbtn_set_style(buttonSpeed, LV_BTN_STATE_PR, &tft_style_label_pre);
|
||||
lv_imgbtn_set_style(buttonSpeed, LV_BTN_STATE_REL, &tft_style_label_rel);
|
||||
|
||||
if (uiCfg.print_state != WORKING) {
|
||||
/*{
|
||||
/*
|
||||
lv_obj_set_event_cb_mks(buttonFilament, event_handler,ID_O_FILAMENT,"bmp_Filamentchange.bin",0);
|
||||
lv_imgbtn_set_src(buttonFilament, LV_BTN_STATE_REL, &bmp_pic);
|
||||
lv_imgbtn_set_src(buttonFilament, LV_BTN_STATE_PR, &bmp_pic);
|
||||
lv_imgbtn_set_style(buttonFilament, LV_BTN_STATE_PR, &tft_style_lable_pre);
|
||||
lv_imgbtn_set_style(buttonFilament, LV_BTN_STATE_REL, &tft_style_lable_rel);
|
||||
}
|
||||
else*/
|
||||
lv_obj_set_event_cb_mks(buttonMove, event_handler, ID_O_MOV, "bmp_Mov.bin", 0);
|
||||
lv_imgbtn_set_style(buttonFilament, LV_BTN_STATE_PR, &tft_style_label_pre);
|
||||
lv_imgbtn_set_style(buttonFilament, LV_BTN_STATE_REL, &tft_style_label_rel);
|
||||
} else {
|
||||
*/
|
||||
lv_obj_set_event_cb_mks(buttonMove, event_handler, ID_O_MOV, "bmp_move_opr.bin", 0);
|
||||
lv_imgbtn_set_src(buttonMove, LV_BTN_STATE_REL, &bmp_pic);
|
||||
lv_imgbtn_set_src(buttonMove, LV_BTN_STATE_PR, &bmp_pic);
|
||||
lv_imgbtn_set_style(buttonMove, LV_BTN_STATE_PR, &tft_style_lable_pre);
|
||||
lv_imgbtn_set_style(buttonMove, LV_BTN_STATE_REL, &tft_style_lable_rel);
|
||||
lv_imgbtn_set_style(buttonMove, LV_BTN_STATE_PR, &tft_style_label_pre);
|
||||
lv_imgbtn_set_style(buttonMove, LV_BTN_STATE_REL, &tft_style_label_rel);
|
||||
}
|
||||
if (gCfgItems.finish_power_off == 1)
|
||||
lv_obj_set_event_cb_mks(buttonPowerOff, event_handler, ID_O_POWER_OFF, "bmp_auto_off.bin", 0);
|
||||
|
@ -223,15 +225,15 @@ void lv_draw_opration(void) {
|
|||
lv_obj_set_event_cb_mks(buttonPowerOff, event_handler, ID_O_POWER_OFF, "bmp_manual_off.bin", 0);
|
||||
lv_imgbtn_set_src(buttonPowerOff, LV_BTN_STATE_REL, &bmp_pic);
|
||||
lv_imgbtn_set_src(buttonPowerOff, LV_BTN_STATE_PR, &bmp_pic);
|
||||
lv_imgbtn_set_style(buttonPowerOff, LV_BTN_STATE_PR, &tft_style_lable_pre);
|
||||
lv_imgbtn_set_style(buttonPowerOff, LV_BTN_STATE_REL, &tft_style_lable_rel);
|
||||
lv_imgbtn_set_style(buttonPowerOff, LV_BTN_STATE_PR, &tft_style_label_pre);
|
||||
lv_imgbtn_set_style(buttonPowerOff, LV_BTN_STATE_REL, &tft_style_label_rel);
|
||||
|
||||
lv_obj_set_event_cb_mks(buttonBack, event_handler, ID_O_RETURN, "bmp_Return.bin", 0);
|
||||
lv_obj_set_event_cb_mks(buttonBack, event_handler, ID_O_RETURN, "bmp_return.bin", 0);
|
||||
lv_imgbtn_set_src(buttonBack, LV_BTN_STATE_REL, &bmp_pic);
|
||||
lv_imgbtn_set_src(buttonBack, LV_BTN_STATE_PR, &bmp_pic);
|
||||
lv_imgbtn_set_style(buttonBack, LV_BTN_STATE_PR, &tft_style_lable_pre);
|
||||
lv_imgbtn_set_style(buttonBack, LV_BTN_STATE_REL, &tft_style_lable_rel);
|
||||
#endif
|
||||
lv_imgbtn_set_style(buttonBack, LV_BTN_STATE_PR, &tft_style_label_pre);
|
||||
lv_imgbtn_set_style(buttonBack, LV_BTN_STATE_REL, &tft_style_label_rel);
|
||||
#endif // if 1
|
||||
|
||||
lv_obj_set_pos(buttonPreHeat, INTERVAL_V, titleHeight);
|
||||
lv_obj_set_pos(buttonExtrusion, BTN_X_PIXEL + INTERVAL_V * 2, titleHeight);
|
||||
|
@ -240,10 +242,10 @@ void lv_draw_opration(void) {
|
|||
lv_obj_set_pos(buttonSpeed, BTN_X_PIXEL * 3 + INTERVAL_V * 4, titleHeight);
|
||||
|
||||
if (uiCfg.print_state != WORKING) {
|
||||
/*{
|
||||
/*
|
||||
lv_obj_set_pos(buttonFilament,INTERVAL_V,BTN_Y_PIXEL+INTERVAL_H+titleHeight);
|
||||
}
|
||||
else*/
|
||||
} else {
|
||||
*/
|
||||
lv_obj_set_pos(buttonMove, INTERVAL_V, BTN_Y_PIXEL + INTERVAL_H + titleHeight);
|
||||
lv_obj_set_pos(buttonPowerOff, BTN_X_PIXEL + INTERVAL_V * 2, BTN_Y_PIXEL + INTERVAL_H + titleHeight);
|
||||
}
|
||||
|
@ -258,12 +260,13 @@ void lv_draw_opration(void) {
|
|||
lv_btn_set_layout(buttonFan, LV_LAYOUT_OFF);
|
||||
lv_btn_set_layout(buttonSpeed, LV_LAYOUT_OFF);
|
||||
|
||||
if (uiCfg.print_state != WORKING)
|
||||
/*{
|
||||
if (uiCfg.print_state != WORKING) {
|
||||
/*
|
||||
lv_btn_set_layout(buttonFilament, LV_LAYOUT_OFF);
|
||||
}
|
||||
else*/
|
||||
} else {
|
||||
*/
|
||||
lv_btn_set_layout(buttonMove, LV_LAYOUT_OFF);
|
||||
}
|
||||
lv_btn_set_layout(buttonPowerOff, LV_LAYOUT_OFF);
|
||||
lv_btn_set_layout(buttonBack, LV_LAYOUT_OFF);
|
||||
|
||||
|
@ -273,12 +276,13 @@ void lv_draw_opration(void) {
|
|||
label_Fan = lv_label_create(buttonFan, NULL);
|
||||
label_Speed = lv_label_create(buttonSpeed, NULL);
|
||||
|
||||
if (uiCfg.print_state != WORKING)
|
||||
/*{
|
||||
if (uiCfg.print_state != WORKING) {
|
||||
/*
|
||||
label_Filament = lv_label_create(buttonFilament, NULL);
|
||||
}
|
||||
else*/
|
||||
} else {
|
||||
*/
|
||||
label_Move = lv_label_create(buttonMove, NULL);
|
||||
}
|
||||
label_PowerOff = lv_label_create(buttonPowerOff, NULL);
|
||||
|
||||
label_Back = lv_label_create(buttonBack, NULL);
|
||||
|
@ -297,11 +301,11 @@ void lv_draw_opration(void) {
|
|||
lv_obj_align(label_Speed, buttonSpeed, LV_ALIGN_IN_BOTTOM_MID, 0, BUTTON_TEXT_Y_OFFSET);
|
||||
|
||||
if (uiCfg.print_state != WORKING) {
|
||||
/*{
|
||||
/*
|
||||
lv_label_set_text(label_Filament, operation_menu.filament);
|
||||
lv_obj_align(label_Filament, buttonFilament, LV_ALIGN_IN_BOTTOM_MID,0, BUTTON_TEXT_Y_OFFSET);
|
||||
}
|
||||
else*/
|
||||
} else {
|
||||
*/
|
||||
lv_label_set_text(label_Move, operation_menu.move);
|
||||
lv_obj_align(label_Move, buttonMove, LV_ALIGN_IN_BOTTOM_MID, 0, BUTTON_TEXT_Y_OFFSET);
|
||||
}
|
||||
|
@ -317,6 +321,6 @@ void lv_draw_opration(void) {
|
|||
}
|
||||
}
|
||||
|
||||
void lv_clear_opration() { lv_obj_del(scr); }
|
||||
void lv_clear_operation() { lv_obj_del(scr); }
|
||||
|
||||
#endif // TFT_LVGL_UI
|
||||
#endif // HAS_TFT_LVGL_UI
|
|
@ -25,8 +25,8 @@
|
|||
extern "C" { /* C-declarations for C++ */
|
||||
#endif
|
||||
|
||||
extern void lv_draw_opration(void);
|
||||
extern void lv_clear_opration();
|
||||
extern void lv_draw_operation(void);
|
||||
extern void lv_clear_operation();
|
||||
|
||||
//extern void disp_temp_ready_print();
|
||||
#ifdef __cplusplus
|
|
@ -21,7 +21,7 @@
|
|||
*/
|
||||
#include "../../../../inc/MarlinConfigPre.h"
|
||||
|
||||
#if BOTH(TFT_LVGL_UI, ADVANCED_PAUSE_FEATURE)
|
||||
#if BOTH(HAS_TFT_LVGL_UI, ADVANCED_PAUSE_FEATURE)
|
||||
|
||||
#include "draw_ui.h"
|
||||
#include "lv_conf.h"
|
||||
|
@ -52,4 +52,4 @@ void lv_draw_pause_message(const PauseMessage msg) {
|
|||
}
|
||||
}
|
||||
|
||||
#endif // TFT_LVGL_UI && ADVANCED_PAUSE_FEATURE
|
||||
#endif // HAS_TFT_LVGL_UI && ADVANCED_PAUSE_FEATURE
|
||||
|
|
222
Marlin/src/lcd/extui/lib/mks_ui/draw_pause_position.cpp
Normal file
222
Marlin/src/lcd/extui/lib/mks_ui/draw_pause_position.cpp
Normal file
|
@ -0,0 +1,222 @@
|
|||
/**
|
||||
* Marlin 3D Printer Firmware
|
||||
* Copyright (c) 2020 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
|
||||
*
|
||||
* Based on Sprinter and grbl.
|
||||
* Copyright (c) 2011 Camiel Gubbels / Erik van der Zalm
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*
|
||||
*/
|
||||
#include "../../../../inc/MarlinConfigPre.h"
|
||||
|
||||
#if HAS_TFT_LVGL_UI
|
||||
|
||||
#include "lv_conf.h"
|
||||
#include "draw_ui.h"
|
||||
|
||||
#include "../../../../MarlinCore.h"
|
||||
#include "../../../../module/planner.h"
|
||||
|
||||
static lv_obj_t * scr;
|
||||
|
||||
#define ID_PAUSE_RETURN 1
|
||||
#define ID_PAUSE_X 2
|
||||
#define ID_PAUSE_Y 3
|
||||
#define ID_PAUSE_Z 4
|
||||
|
||||
static void event_handler(lv_obj_t * obj, lv_event_t event) {
|
||||
switch (obj->mks_obj_id) {
|
||||
case ID_PAUSE_RETURN:
|
||||
if (event == LV_EVENT_CLICKED) {
|
||||
|
||||
}
|
||||
else if (event == LV_EVENT_RELEASED) {
|
||||
lv_clear_pause_position();
|
||||
draw_return_ui();
|
||||
}
|
||||
break;
|
||||
case ID_PAUSE_X:
|
||||
if (event == LV_EVENT_CLICKED) {
|
||||
|
||||
}
|
||||
else if (event == LV_EVENT_RELEASED) {
|
||||
value = pause_pos_x;
|
||||
lv_clear_pause_position();
|
||||
lv_draw_number_key();
|
||||
}
|
||||
break;
|
||||
case ID_PAUSE_Y:
|
||||
if (event == LV_EVENT_CLICKED) {
|
||||
|
||||
}
|
||||
else if (event == LV_EVENT_RELEASED) {
|
||||
value = pause_pos_y;
|
||||
lv_clear_pause_position();
|
||||
lv_draw_number_key();
|
||||
}
|
||||
break;
|
||||
case ID_PAUSE_Z:
|
||||
if (event == LV_EVENT_CLICKED) {
|
||||
|
||||
}
|
||||
else if (event == LV_EVENT_RELEASED) {
|
||||
value = pause_pos_z;
|
||||
lv_clear_pause_position();
|
||||
lv_draw_number_key();
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
void lv_draw_pause_position(void) {
|
||||
lv_obj_t *buttonBack = NULL, *label_Back = NULL;
|
||||
lv_obj_t *buttonXText = NULL, *labelXText = NULL, *buttonXValue = NULL, *labelXValue = NULL;
|
||||
lv_obj_t *buttonYText = NULL, *labelYText = NULL, *buttonYValue = NULL, *labelYValue = NULL;
|
||||
lv_obj_t *buttonZText = NULL, *labelZText = NULL, *buttonZValue = NULL, *labelZValue = NULL;
|
||||
|
||||
lv_obj_t * line1 = NULL, * line2 = NULL, * line3 = NULL;
|
||||
if (disp_state_stack._disp_state[disp_state_stack._disp_index] != PAUSE_POS_UI) {
|
||||
disp_state_stack._disp_index++;
|
||||
disp_state_stack._disp_state[disp_state_stack._disp_index] = PAUSE_POS_UI;
|
||||
}
|
||||
disp_state = PAUSE_POS_UI;
|
||||
|
||||
scr = lv_obj_create(NULL, NULL);
|
||||
|
||||
lv_obj_set_style(scr, &tft_style_scr);
|
||||
lv_scr_load(scr);
|
||||
lv_obj_clean(scr);
|
||||
|
||||
lv_obj_t * title = lv_label_create(scr, NULL);
|
||||
lv_obj_set_style(title, &tft_style_label_rel);
|
||||
lv_obj_set_pos(title, TITLE_XPOS, TITLE_YPOS);
|
||||
lv_label_set_text(title, machine_menu.PausePosText);
|
||||
|
||||
lv_refr_now(lv_refr_get_disp_refreshing());
|
||||
|
||||
LV_IMG_DECLARE(bmp_para_back);
|
||||
// LV_IMG_DECLARE(bmp_para_arrow);
|
||||
LV_IMG_DECLARE(bmp_para_bank);
|
||||
|
||||
buttonXText = lv_btn_create(scr, NULL); /*Add a button the current screen*/
|
||||
lv_obj_set_pos(buttonXText, PARA_UI_POS_X, PARA_UI_POS_Y); /*Set its position*/
|
||||
lv_obj_set_size(buttonXText, PARA_UI_VALUE_SIZE_X, PARA_UI_SIZE_Y); /*Set its size*/
|
||||
lv_obj_set_event_cb(buttonXText, event_handler);
|
||||
lv_btn_set_style(buttonXText, LV_BTN_STYLE_REL, &tft_style_label_rel); /*Set the button's released style*/
|
||||
lv_btn_set_style(buttonXText, LV_BTN_STYLE_PR, &tft_style_label_pre); /*Set the button's pressed style*/
|
||||
lv_btn_set_layout(buttonXText, LV_LAYOUT_OFF);
|
||||
labelXText = lv_label_create(buttonXText, NULL); /*Add a label to the button*/
|
||||
|
||||
buttonXValue = lv_imgbtn_create(scr, NULL);
|
||||
lv_obj_set_pos(buttonXValue, PARA_UI_VALUE_POS_X, PARA_UI_POS_Y + PARA_UI_VALUE_V);
|
||||
lv_obj_set_event_cb_mks(buttonXValue, event_handler, ID_PAUSE_X, "bmp_value_blank.bin", 0);
|
||||
lv_imgbtn_set_src(buttonXValue, LV_BTN_STATE_REL, &bmp_para_bank);
|
||||
lv_imgbtn_set_src(buttonXValue, LV_BTN_STATE_PR, &bmp_para_bank);
|
||||
lv_imgbtn_set_style(buttonXValue, LV_BTN_STATE_PR, &style_para_value_pre);
|
||||
lv_imgbtn_set_style(buttonXValue, LV_BTN_STATE_REL, &style_para_value_rel);
|
||||
lv_btn_set_layout(buttonXValue, LV_LAYOUT_OFF);
|
||||
labelXValue = lv_label_create(buttonXValue, NULL);
|
||||
|
||||
line1 = lv_line_create(scr, NULL);
|
||||
lv_ex_line(line1, line_points[0]);
|
||||
|
||||
buttonYText = lv_btn_create(scr, NULL); /*Add a button the current screen*/
|
||||
lv_obj_set_pos(buttonYText, PARA_UI_POS_X, PARA_UI_POS_Y * 2); /*Set its position*/
|
||||
lv_obj_set_size(buttonYText, PARA_UI_VALUE_SIZE_X, PARA_UI_SIZE_Y); /*Set its size*/
|
||||
lv_obj_set_event_cb(buttonYText, event_handler);
|
||||
lv_btn_set_style(buttonYText, LV_BTN_STYLE_REL, &tft_style_label_rel); /*Set the button's released style*/
|
||||
lv_btn_set_style(buttonYText, LV_BTN_STYLE_PR, &tft_style_label_pre); /*Set the button's pressed style*/
|
||||
lv_btn_set_layout(buttonYText, LV_LAYOUT_OFF);
|
||||
labelYText = lv_label_create(buttonYText, NULL); /*Add a label to the button*/
|
||||
|
||||
buttonYValue = lv_imgbtn_create(scr, NULL);
|
||||
lv_obj_set_pos(buttonYValue, PARA_UI_VALUE_POS_X, PARA_UI_POS_Y * 2 + PARA_UI_VALUE_V);
|
||||
lv_obj_set_event_cb_mks(buttonYValue, event_handler, ID_PAUSE_Y, "bmp_value_blank.bin", 0);
|
||||
lv_imgbtn_set_src(buttonYValue, LV_BTN_STATE_REL, &bmp_para_bank);
|
||||
lv_imgbtn_set_src(buttonYValue, LV_BTN_STATE_PR, &bmp_para_bank);
|
||||
lv_imgbtn_set_style(buttonYValue, LV_BTN_STATE_PR, &style_para_value_pre);
|
||||
lv_imgbtn_set_style(buttonYValue, LV_BTN_STATE_REL, &style_para_value_rel);
|
||||
lv_btn_set_layout(buttonYValue, LV_LAYOUT_OFF);
|
||||
labelYValue = lv_label_create(buttonYValue, NULL);
|
||||
|
||||
line2 = lv_line_create(scr, NULL);
|
||||
lv_ex_line(line2, line_points[1]);
|
||||
|
||||
buttonZText = lv_btn_create(scr, NULL); /*Add a button the current screen*/
|
||||
lv_obj_set_pos(buttonZText, PARA_UI_POS_X, PARA_UI_POS_Y * 3); /*Set its position*/
|
||||
lv_obj_set_size(buttonZText, PARA_UI_VALUE_SIZE_X, PARA_UI_SIZE_Y); /*Set its size*/
|
||||
lv_obj_set_event_cb(buttonZText, event_handler);
|
||||
lv_btn_set_style(buttonZText, LV_BTN_STYLE_REL, &tft_style_label_rel); /*Set the button's released style*/
|
||||
lv_btn_set_style(buttonZText, LV_BTN_STYLE_PR, &tft_style_label_pre); /*Set the button's pressed style*/
|
||||
lv_btn_set_layout(buttonZText, LV_LAYOUT_OFF);
|
||||
labelZText = lv_label_create(buttonZText, NULL); /*Add a label to the button*/
|
||||
|
||||
buttonZValue = lv_imgbtn_create(scr, NULL);
|
||||
lv_obj_set_pos(buttonZValue, PARA_UI_VALUE_POS_X, PARA_UI_POS_Y * 3 + PARA_UI_VALUE_V);
|
||||
lv_obj_set_event_cb_mks(buttonZValue, event_handler, ID_PAUSE_Z, "bmp_value_blank.bin", 0);
|
||||
lv_imgbtn_set_src(buttonZValue, LV_BTN_STATE_REL, &bmp_para_bank);
|
||||
lv_imgbtn_set_src(buttonZValue, LV_BTN_STATE_PR, &bmp_para_bank);
|
||||
lv_imgbtn_set_style(buttonZValue, LV_BTN_STATE_PR, &style_para_value_pre);
|
||||
lv_imgbtn_set_style(buttonZValue, LV_BTN_STATE_REL, &style_para_value_rel);
|
||||
lv_btn_set_layout(buttonZValue, LV_LAYOUT_OFF);
|
||||
labelZValue = lv_label_create(buttonZValue, NULL);
|
||||
|
||||
line3 = lv_line_create(scr, NULL);
|
||||
lv_ex_line(line3, line_points[2]);
|
||||
|
||||
buttonBack = lv_imgbtn_create(scr, NULL);
|
||||
lv_obj_set_event_cb_mks(buttonBack, event_handler, ID_PAUSE_RETURN, "bmp_back70x40.bin", 0);
|
||||
lv_imgbtn_set_src(buttonBack, LV_BTN_STATE_REL, &bmp_para_back);
|
||||
lv_imgbtn_set_src(buttonBack, LV_BTN_STATE_PR, &bmp_para_back);
|
||||
lv_imgbtn_set_style(buttonBack, LV_BTN_STATE_PR, &tft_style_label_pre);
|
||||
lv_imgbtn_set_style(buttonBack, LV_BTN_STATE_REL, &tft_style_label_rel);
|
||||
|
||||
lv_obj_set_pos(buttonBack, PARA_UI_BACL_POS_X, PARA_UI_BACL_POS_Y);
|
||||
lv_btn_set_layout(buttonBack, LV_LAYOUT_OFF);
|
||||
label_Back = lv_label_create(buttonBack, NULL);
|
||||
|
||||
if (gCfgItems.multiple_language != 0) {
|
||||
ZERO(public_buf_l);
|
||||
sprintf_P(public_buf_l, PSTR("%.1f"), gCfgItems.pausePosX);
|
||||
lv_label_set_text(labelXValue, public_buf_l);
|
||||
lv_obj_align(labelXValue, buttonXValue, LV_ALIGN_CENTER, 0, 0);
|
||||
|
||||
ZERO(public_buf_l);
|
||||
sprintf_P(public_buf_l, PSTR("%.1f"), gCfgItems.pausePosY);
|
||||
lv_label_set_text(labelYValue, public_buf_l);
|
||||
lv_obj_align(labelYValue, buttonYValue, LV_ALIGN_CENTER, 0, 0);
|
||||
|
||||
ZERO(public_buf_l);
|
||||
sprintf_P(public_buf_l, PSTR("%.1f"), gCfgItems.pausePosZ);
|
||||
lv_label_set_text(labelZValue, public_buf_l);
|
||||
lv_obj_align(labelZValue, buttonZValue, LV_ALIGN_CENTER, 0, 0);
|
||||
|
||||
lv_label_set_text(labelXText, machine_menu.xPos);
|
||||
lv_obj_align(labelXText, buttonXText, LV_ALIGN_IN_LEFT_MID, 0, 0);
|
||||
|
||||
lv_label_set_text(labelYText, machine_menu.yPos);
|
||||
lv_obj_align(labelYText, buttonYText, LV_ALIGN_IN_LEFT_MID, 0, 0);
|
||||
|
||||
lv_label_set_text(labelZText, machine_menu.zPos);
|
||||
lv_obj_align(labelZText, buttonZText, LV_ALIGN_IN_LEFT_MID, 0, 0);
|
||||
|
||||
lv_label_set_text(label_Back, common_menu.text_back);
|
||||
lv_obj_align(label_Back, buttonBack, LV_ALIGN_CENTER, 0, 0);
|
||||
}
|
||||
}
|
||||
|
||||
void lv_clear_pause_position() { lv_obj_del(scr); }
|
||||
|
||||
#endif // HAS_TFT_LVGL_UI
|
33
Marlin/src/lcd/extui/lib/mks_ui/draw_pause_position.h
Normal file
33
Marlin/src/lcd/extui/lib/mks_ui/draw_pause_position.h
Normal file
|
@ -0,0 +1,33 @@
|
|||
/**
|
||||
* Marlin 3D Printer Firmware
|
||||
* Copyright (c) 2020 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
|
||||
*
|
||||
* Based on Sprinter and grbl.
|
||||
* Copyright (c) 2011 Camiel Gubbels / Erik van der Zalm
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*
|
||||
*/
|
||||
#pragma once
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" { /* C-declarations for C++ */
|
||||
#endif
|
||||
|
||||
extern void lv_draw_pause_position(void);
|
||||
extern void lv_clear_pause_position();
|
||||
|
||||
#ifdef __cplusplus
|
||||
} /* C-declarations for C++ */
|
||||
#endif
|
|
@ -21,7 +21,7 @@
|
|||
*/
|
||||
#include "../../../../inc/MarlinConfigPre.h"
|
||||
|
||||
#if ENABLED(TFT_LVGL_UI)
|
||||
#if HAS_TFT_LVGL_UI
|
||||
|
||||
#include "lv_conf.h"
|
||||
#include "draw_ui.h"
|
||||
|
@ -58,28 +58,23 @@ static void event_handler(lv_obj_t * obj, lv_event_t event) {
|
|||
if (uiCfg.curSprayerChoose == 0) {
|
||||
if ((int)thermalManager.temp_hotend[uiCfg.curSprayerChoose].target > (HEATER_0_MAXTEMP - (WATCH_TEMP_INCREASE + TEMP_HYSTERESIS + 1))) {
|
||||
thermalManager.temp_hotend[uiCfg.curSprayerChoose].target = (float)HEATER_0_MAXTEMP - (WATCH_TEMP_INCREASE + TEMP_HYSTERESIS + 1);
|
||||
|
||||
thermalManager.start_watching_hotend(uiCfg.curSprayerChoose);
|
||||
}
|
||||
}
|
||||
#if !defined(SINGLENOZZLE) && EXTRUDERS >= 2
|
||||
else if ((int)thermalManager.temp_hotend[uiCfg.curSprayerChoose].target > (HEATER_1_MAXTEMP - (WATCH_TEMP_INCREASE + TEMP_HYSTERESIS + 1))) {
|
||||
thermalManager.temp_hotend[uiCfg.curSprayerChoose].target = (float)HEATER_1_MAXTEMP - (WATCH_TEMP_INCREASE + TEMP_HYSTERESIS + 1);
|
||||
|
||||
thermalManager.start_watching_hotend(uiCfg.curSprayerChoose);
|
||||
}
|
||||
#endif
|
||||
}
|
||||
#if HAS_HEATED_BED
|
||||
else {
|
||||
|
||||
thermalManager.temp_bed.target += uiCfg.stepHeat;
|
||||
|
||||
if ((int)thermalManager.temp_bed.target > BED_MAXTEMP - (WATCH_BED_TEMP_INCREASE + TEMP_BED_HYSTERESIS + 1)) {
|
||||
thermalManager.temp_bed.target = (float)BED_MAXTEMP - (WATCH_BED_TEMP_INCREASE + TEMP_BED_HYSTERESIS + 1);
|
||||
thermalManager.start_watching_bed();
|
||||
}
|
||||
|
||||
}
|
||||
#endif
|
||||
disp_desire_temp();
|
||||
|
@ -211,7 +206,7 @@ void lv_draw_preHeat(void) {
|
|||
lv_obj_clean(scr);
|
||||
|
||||
lv_obj_t * title = lv_label_create(scr, NULL);
|
||||
lv_obj_set_style(title, &tft_style_lable_rel);
|
||||
lv_obj_set_style(title, &tft_style_label_rel);
|
||||
lv_obj_set_pos(title, TITLE_XPOS, TITLE_YPOS);
|
||||
lv_label_set_text(title, creat_title_text());
|
||||
|
||||
|
@ -230,39 +225,39 @@ void lv_draw_preHeat(void) {
|
|||
lv_obj_set_event_cb_mks(buttonAdd, event_handler, ID_P_ADD, "bmp_Add.bin", 0);
|
||||
lv_imgbtn_set_src(buttonAdd, LV_BTN_STATE_REL, &bmp_pic);
|
||||
lv_imgbtn_set_src(buttonAdd, LV_BTN_STATE_PR, &bmp_pic);
|
||||
lv_imgbtn_set_style(buttonAdd, LV_BTN_STATE_PR, &tft_style_lable_pre);
|
||||
lv_imgbtn_set_style(buttonAdd, LV_BTN_STATE_REL, &tft_style_lable_rel);
|
||||
lv_imgbtn_set_style(buttonAdd, LV_BTN_STATE_PR, &tft_style_label_pre);
|
||||
lv_imgbtn_set_style(buttonAdd, LV_BTN_STATE_REL, &tft_style_label_rel);
|
||||
lv_obj_clear_protect(buttonAdd, LV_PROTECT_FOLLOW);
|
||||
#if 1
|
||||
lv_obj_set_event_cb_mks(buttonDec, event_handler, ID_P_DEC, "bmp_Dec.bin", 0);
|
||||
lv_imgbtn_set_src(buttonDec, LV_BTN_STATE_REL, &bmp_pic);
|
||||
lv_imgbtn_set_src(buttonDec, LV_BTN_STATE_PR, &bmp_pic);
|
||||
lv_imgbtn_set_style(buttonDec, LV_BTN_STATE_PR, &tft_style_lable_pre);
|
||||
lv_imgbtn_set_style(buttonDec, LV_BTN_STATE_REL, &tft_style_lable_rel);
|
||||
lv_imgbtn_set_style(buttonDec, LV_BTN_STATE_PR, &tft_style_label_pre);
|
||||
lv_imgbtn_set_style(buttonDec, LV_BTN_STATE_REL, &tft_style_label_rel);
|
||||
|
||||
|
||||
lv_imgbtn_set_src(buttoType, LV_BTN_STATE_REL, &bmp_pic);
|
||||
lv_imgbtn_set_src(buttoType, LV_BTN_STATE_PR, &bmp_pic);
|
||||
lv_imgbtn_set_style(buttoType, LV_BTN_STATE_PR, &tft_style_lable_pre);
|
||||
lv_imgbtn_set_style(buttoType, LV_BTN_STATE_REL, &tft_style_lable_rel);
|
||||
lv_imgbtn_set_style(buttoType, LV_BTN_STATE_PR, &tft_style_label_pre);
|
||||
lv_imgbtn_set_style(buttoType, LV_BTN_STATE_REL, &tft_style_label_rel);
|
||||
|
||||
|
||||
lv_imgbtn_set_src(buttonStep, LV_BTN_STATE_REL, &bmp_pic);
|
||||
lv_imgbtn_set_src(buttonStep, LV_BTN_STATE_PR, &bmp_pic);
|
||||
lv_imgbtn_set_style(buttonStep, LV_BTN_STATE_PR, &tft_style_lable_pre);
|
||||
lv_imgbtn_set_style(buttonStep, LV_BTN_STATE_REL, &tft_style_lable_rel);
|
||||
lv_imgbtn_set_style(buttonStep, LV_BTN_STATE_PR, &tft_style_label_pre);
|
||||
lv_imgbtn_set_style(buttonStep, LV_BTN_STATE_REL, &tft_style_label_rel);
|
||||
|
||||
lv_obj_set_event_cb_mks(buttonOff, event_handler, ID_P_OFF, "bmp_Speed0.bin", 0);
|
||||
lv_obj_set_event_cb_mks(buttonOff, event_handler, ID_P_OFF, "bmp_speed0.bin", 0);
|
||||
lv_imgbtn_set_src(buttonOff, LV_BTN_STATE_REL, &bmp_pic);
|
||||
lv_imgbtn_set_src(buttonOff, LV_BTN_STATE_PR, &bmp_pic);
|
||||
lv_imgbtn_set_style(buttonOff, LV_BTN_STATE_PR, &tft_style_lable_pre);
|
||||
lv_imgbtn_set_style(buttonOff, LV_BTN_STATE_REL, &tft_style_lable_rel);
|
||||
lv_imgbtn_set_style(buttonOff, LV_BTN_STATE_PR, &tft_style_label_pre);
|
||||
lv_imgbtn_set_style(buttonOff, LV_BTN_STATE_REL, &tft_style_label_rel);
|
||||
|
||||
lv_obj_set_event_cb_mks(buttonBack, event_handler, ID_P_RETURN, "bmp_Return.bin", 0);
|
||||
lv_obj_set_event_cb_mks(buttonBack, event_handler, ID_P_RETURN, "bmp_return.bin", 0);
|
||||
lv_imgbtn_set_src(buttonBack, LV_BTN_STATE_REL, &bmp_pic);
|
||||
lv_imgbtn_set_src(buttonBack, LV_BTN_STATE_PR, &bmp_pic);
|
||||
lv_imgbtn_set_style(buttonBack, LV_BTN_STATE_PR, &tft_style_lable_pre);
|
||||
lv_imgbtn_set_style(buttonBack, LV_BTN_STATE_REL, &tft_style_lable_rel);
|
||||
lv_imgbtn_set_style(buttonBack, LV_BTN_STATE_PR, &tft_style_label_pre);
|
||||
lv_imgbtn_set_style(buttonBack, LV_BTN_STATE_REL, &tft_style_label_rel);
|
||||
#endif
|
||||
|
||||
lv_obj_set_pos(buttonAdd, INTERVAL_V, titleHeight);
|
||||
|
@ -306,7 +301,7 @@ void lv_draw_preHeat(void) {
|
|||
disp_step_heat();
|
||||
|
||||
tempText1 = lv_label_create(scr, NULL);
|
||||
lv_obj_set_style(tempText1, &tft_style_lable_rel);
|
||||
lv_obj_set_style(tempText1, &tft_style_label_rel);
|
||||
disp_desire_temp();
|
||||
}
|
||||
|
||||
|
@ -314,14 +309,14 @@ void disp_temp_type() {
|
|||
|
||||
if (uiCfg.curTempType == 0) {
|
||||
if (uiCfg.curSprayerChoose == 1) {
|
||||
lv_obj_set_event_cb_mks(buttoType, event_handler, ID_P_TYPE, "bmp_Extru2.bin", 0);
|
||||
lv_obj_set_event_cb_mks(buttoType, event_handler, ID_P_TYPE, "bmp_extru2.bin", 0);
|
||||
if (gCfgItems.multiple_language != 0) {
|
||||
lv_label_set_text(labelType, preheat_menu.ext2);
|
||||
lv_obj_align(labelType, buttoType, LV_ALIGN_IN_BOTTOM_MID, 0, BUTTON_TEXT_Y_OFFSET);
|
||||
}
|
||||
}
|
||||
else {
|
||||
lv_obj_set_event_cb_mks(buttoType, event_handler, ID_P_TYPE, "bmp_Extru1.bin", 0);
|
||||
lv_obj_set_event_cb_mks(buttoType, event_handler, ID_P_TYPE, "bmp_extru1.bin", 0);
|
||||
if (gCfgItems.multiple_language != 0) {
|
||||
lv_label_set_text(labelType, preheat_menu.ext1);
|
||||
lv_obj_align(labelType, buttoType, LV_ALIGN_IN_BOTTOM_MID, 0, BUTTON_TEXT_Y_OFFSET);
|
||||
|
@ -330,7 +325,7 @@ void disp_temp_type() {
|
|||
|
||||
}
|
||||
else {
|
||||
lv_obj_set_event_cb_mks(buttoType, event_handler, ID_P_TYPE, "bmp_Bed.bin", 0);
|
||||
lv_obj_set_event_cb_mks(buttoType, event_handler, ID_P_TYPE, "bmp_bed.bin", 0);
|
||||
if (gCfgItems.multiple_language != 0) {
|
||||
lv_label_set_text(labelType, preheat_menu.hotbed);
|
||||
lv_obj_align(labelType, buttoType, LV_ALIGN_IN_BOTTOM_MID, 0, BUTTON_TEXT_Y_OFFSET);
|
||||
|
@ -357,7 +352,7 @@ void disp_desire_temp() {
|
|||
sprintf(buf, preheat_menu.value_state, (int)thermalManager.temp_bed.celsius, (int)thermalManager.temp_bed.target);
|
||||
}
|
||||
#endif
|
||||
strcat(public_buf_l, ": ");
|
||||
strcat_P(public_buf_l, PSTR(": "));
|
||||
strcat(public_buf_l, buf);
|
||||
lv_label_set_text(tempText1, public_buf_l);
|
||||
lv_obj_align(tempText1, NULL, LV_ALIGN_CENTER, 0, -50);
|
||||
|
@ -365,11 +360,11 @@ void disp_desire_temp() {
|
|||
|
||||
void disp_step_heat() {
|
||||
if (uiCfg.stepHeat == 1)
|
||||
lv_obj_set_event_cb_mks(buttonStep, event_handler, ID_P_STEP, "bmp_Step1_degree.bin", 0);
|
||||
lv_obj_set_event_cb_mks(buttonStep, event_handler, ID_P_STEP, "bmp_step1_degree.bin", 0);
|
||||
else if (uiCfg.stepHeat == 5)
|
||||
lv_obj_set_event_cb_mks(buttonStep, event_handler, ID_P_STEP, "bmp_Step5_degree.bin", 0);
|
||||
lv_obj_set_event_cb_mks(buttonStep, event_handler, ID_P_STEP, "bmp_step5_degree.bin", 0);
|
||||
else if (uiCfg.stepHeat == 10)
|
||||
lv_obj_set_event_cb_mks(buttonStep, event_handler, ID_P_STEP, "bmp_Step10_degree.bin", 0);
|
||||
lv_obj_set_event_cb_mks(buttonStep, event_handler, ID_P_STEP, "bmp_step10_degree.bin", 0);
|
||||
|
||||
if (gCfgItems.multiple_language != 0) {
|
||||
if (uiCfg.stepHeat == 1) {
|
||||
|
@ -389,4 +384,4 @@ void disp_step_heat() {
|
|||
|
||||
void lv_clear_preHeat() { lv_obj_del(scr); }
|
||||
|
||||
#endif // TFT_LVGL_UI
|
||||
#endif // HAS_TFT_LVGL_UI
|
||||
|
|
|
@ -21,7 +21,7 @@
|
|||
*/
|
||||
#include "../../../../inc/MarlinConfigPre.h"
|
||||
|
||||
#if ENABLED(TFT_LVGL_UI)
|
||||
#if HAS_TFT_LVGL_UI
|
||||
|
||||
#include "../../../../MarlinCore.h"
|
||||
#include "lv_conf.h"
|
||||
|
@ -34,9 +34,8 @@
|
|||
|
||||
static lv_obj_t * scr;
|
||||
|
||||
static lv_obj_t *buttonPageUp, *buttonPageDown, *buttonBack, *buttonGcode[FILE_BTN_CNT];
|
||||
static lv_obj_t * labelPageUp[FILE_BTN_CNT];
|
||||
static lv_obj_t *buttonText[FILE_BTN_CNT];
|
||||
static lv_obj_t *buttonPageUp, *buttonPageDown, *buttonBack,
|
||||
*buttonGcode[FILE_BTN_CNT], *labelPageUp[FILE_BTN_CNT], *buttonText[FILE_BTN_CNT];
|
||||
|
||||
#define ID_P_UP 7
|
||||
#define ID_P_DOWN 8
|
||||
|
@ -74,9 +73,7 @@ static uint8_t search_file() {
|
|||
card.getfilename_sorted(nr);
|
||||
|
||||
if (card.flag.filenameIsDir)
|
||||
/*
|
||||
SERIAL_ECHOLN(card.longest_filename);
|
||||
*/
|
||||
//SERIAL_ECHOLN(card.longest_filename);
|
||||
list_file.IsFolder[valid_name_cnt] = 1;
|
||||
else
|
||||
//SERIAL_ECHOLN(card.longFilename);
|
||||
|
@ -86,7 +83,7 @@ static uint8_t search_file() {
|
|||
//
|
||||
memset(list_file.file_name[valid_name_cnt], 0, strlen(list_file.file_name[valid_name_cnt]));
|
||||
strcpy(list_file.file_name[valid_name_cnt], list_file.curDirPath);
|
||||
strcat(list_file.file_name[valid_name_cnt], "/");
|
||||
strcat_P(list_file.file_name[valid_name_cnt], PSTR("/"));
|
||||
strcat(list_file.file_name[valid_name_cnt], card.filename);
|
||||
//
|
||||
memset(list_file.long_name[valid_name_cnt], 0, strlen(list_file.long_name[valid_name_cnt]));
|
||||
|
@ -221,7 +218,7 @@ static void event_handler(lv_obj_t * obj, lv_event_t event) {
|
|||
else if (event == LV_EVENT_RELEASED) {
|
||||
if (list_file.file_name[i][0] != 0) {
|
||||
if (list_file.IsFolder[i] == 1) {
|
||||
memset(list_file.curDirPath, 0, sizeof(list_file.curDirPath));
|
||||
ZERO(list_file.curDirPath);
|
||||
strcpy(list_file.curDirPath, list_file.file_name[i]);
|
||||
curDirLever++;
|
||||
list_file.Sd_file_offset = dir_offset[curDirLever].cur_page_first_offset;
|
||||
|
@ -300,7 +297,7 @@ void disp_gcode_icon(uint8_t file_num) {
|
|||
lv_obj_clean(scr);
|
||||
|
||||
lv_obj_t * title = lv_label_create(scr, NULL);
|
||||
lv_obj_set_style(title, &tft_style_lable_rel);
|
||||
lv_obj_set_style(title, &tft_style_label_rel);
|
||||
lv_obj_set_pos(title, TITLE_XPOS, TITLE_YPOS);
|
||||
lv_label_set_text(title, creat_title_text());
|
||||
|
||||
|
@ -313,22 +310,22 @@ void disp_gcode_icon(uint8_t file_num) {
|
|||
lv_obj_set_event_cb_mks(buttonPageUp, event_handler, ID_P_UP, "bmp_pageUp.bin", 0);
|
||||
lv_imgbtn_set_src(buttonPageUp, LV_BTN_STATE_REL, &bmp_pic_117x92);
|
||||
lv_imgbtn_set_src(buttonPageUp, LV_BTN_STATE_PR, &bmp_pic_117x92);
|
||||
lv_imgbtn_set_style(buttonPageUp, LV_BTN_STATE_PR, &tft_style_lable_pre);
|
||||
lv_imgbtn_set_style(buttonPageUp, LV_BTN_STATE_REL, &tft_style_lable_rel);
|
||||
lv_imgbtn_set_style(buttonPageUp, LV_BTN_STATE_PR, &tft_style_label_pre);
|
||||
lv_imgbtn_set_style(buttonPageUp, LV_BTN_STATE_REL, &tft_style_label_rel);
|
||||
lv_obj_clear_protect(buttonPageUp, LV_PROTECT_FOLLOW);
|
||||
|
||||
#if 1
|
||||
lv_obj_set_event_cb_mks(buttonPageDown, event_handler, ID_P_DOWN, "bmp_pageDown.bin", 0);
|
||||
lv_imgbtn_set_src(buttonPageDown, LV_BTN_STATE_REL, &bmp_pic_117x92);
|
||||
lv_imgbtn_set_src(buttonPageDown, LV_BTN_STATE_PR, &bmp_pic_117x92);
|
||||
lv_imgbtn_set_style(buttonPageDown, LV_BTN_STATE_PR, &tft_style_lable_pre);
|
||||
lv_imgbtn_set_style(buttonPageDown, LV_BTN_STATE_REL, &tft_style_lable_rel);
|
||||
lv_imgbtn_set_style(buttonPageDown, LV_BTN_STATE_PR, &tft_style_label_pre);
|
||||
lv_imgbtn_set_style(buttonPageDown, LV_BTN_STATE_REL, &tft_style_label_rel);
|
||||
|
||||
lv_obj_set_event_cb_mks(buttonBack, event_handler, ID_P_RETURN, "bmp_Return.bin", 0);
|
||||
lv_obj_set_event_cb_mks(buttonBack, event_handler, ID_P_RETURN, "bmp_back.bin", 0);
|
||||
lv_imgbtn_set_src(buttonBack, LV_BTN_STATE_REL, &bmp_pic_117x92);
|
||||
lv_imgbtn_set_src(buttonBack, LV_BTN_STATE_PR, &bmp_pic_117x92);
|
||||
lv_imgbtn_set_style(buttonBack, LV_BTN_STATE_PR, &tft_style_lable_pre);
|
||||
lv_imgbtn_set_style(buttonBack, LV_BTN_STATE_REL, &tft_style_lable_rel);
|
||||
lv_imgbtn_set_style(buttonBack, LV_BTN_STATE_PR, &tft_style_label_pre);
|
||||
lv_imgbtn_set_style(buttonBack, LV_BTN_STATE_REL, &tft_style_label_rel);
|
||||
#endif
|
||||
|
||||
lv_obj_set_pos(buttonPageUp, OTHER_BTN_XPIEL * 3 + INTERVAL_V * 4, titleHeight);
|
||||
|
@ -357,8 +354,8 @@ void disp_gcode_icon(uint8_t file_num) {
|
|||
#ifdef TFT35
|
||||
buttonGcode[i] = lv_imgbtn_create(scr, NULL);
|
||||
|
||||
lv_imgbtn_set_style(buttonGcode[i], LV_BTN_STATE_PR, &tft_style_lable_pre);
|
||||
lv_imgbtn_set_style(buttonGcode[i], LV_BTN_STATE_REL, &tft_style_lable_rel);
|
||||
lv_imgbtn_set_style(buttonGcode[i], LV_BTN_STATE_PR, &tft_style_label_pre);
|
||||
lv_imgbtn_set_style(buttonGcode[i], LV_BTN_STATE_REL, &tft_style_label_rel);
|
||||
lv_obj_clear_protect(buttonGcode[i], LV_PROTECT_FOLLOW);
|
||||
lv_btn_set_layout(buttonGcode[i], LV_LAYOUT_OFF);
|
||||
|
||||
|
@ -366,7 +363,7 @@ void disp_gcode_icon(uint8_t file_num) {
|
|||
cutFileName((char *)list_file.long_name[i], 16, 8, (char *)public_buf_m);
|
||||
|
||||
if (list_file.IsFolder[i] == 1) {
|
||||
lv_obj_set_event_cb_mks(buttonGcode[i], event_handler, (i + 1), "bmp_Dir.bin", 0);
|
||||
lv_obj_set_event_cb_mks(buttonGcode[i], event_handler, (i + 1), "bmp_dir.bin", 0);
|
||||
lv_imgbtn_set_src(buttonGcode[i], LV_BTN_STATE_REL, &bmp_pic);
|
||||
lv_imgbtn_set_src(buttonGcode[i], LV_BTN_STATE_PR, &bmp_pic);
|
||||
if (i < 3)
|
||||
|
@ -375,7 +372,7 @@ void disp_gcode_icon(uint8_t file_num) {
|
|||
lv_obj_set_pos(buttonGcode[i], BTN_X_PIXEL * (i - 3) + INTERVAL_V * ((i - 3) + 1), BTN_Y_PIXEL + INTERVAL_H + titleHeight);
|
||||
|
||||
labelPageUp[i] = lv_label_create(buttonGcode[i], NULL);
|
||||
lv_obj_set_style(labelPageUp[i], &tft_style_lable_rel);
|
||||
lv_obj_set_style(labelPageUp[i], &tft_style_label_rel);
|
||||
lv_label_set_text(labelPageUp[i], public_buf_m);
|
||||
lv_obj_align(labelPageUp[i], buttonGcode[i], LV_ALIGN_IN_BOTTOM_MID, 0, -5);
|
||||
}
|
||||
|
@ -389,10 +386,10 @@ void disp_gcode_icon(uint8_t file_num) {
|
|||
buttonText[i] = lv_btn_create(scr, NULL);
|
||||
//lv_obj_set_event_cb(buttonText[i], event_handler);
|
||||
|
||||
lv_btn_set_style(buttonText[i], LV_BTN_STATE_PR, &tft_style_lable_pre);
|
||||
lv_btn_set_style(buttonText[i], LV_BTN_STATE_REL, &tft_style_lable_rel);
|
||||
//lv_obj_set_style(buttonText[i], &tft_style_lable_pre);
|
||||
//lv_obj_set_style(buttonText[i], &tft_style_lable_rel);
|
||||
lv_btn_set_style(buttonText[i], LV_BTN_STATE_PR, &tft_style_label_pre);
|
||||
lv_btn_set_style(buttonText[i], LV_BTN_STATE_REL, &tft_style_label_rel);
|
||||
//lv_obj_set_style(buttonText[i], &tft_style_label_pre);
|
||||
//lv_obj_set_style(buttonText[i], &tft_style_label_rel);
|
||||
lv_obj_clear_protect(buttonText[i], LV_PROTECT_FOLLOW);
|
||||
lv_btn_set_layout(buttonText[i], LV_LAYOUT_OFF);
|
||||
//lv_obj_set_event_cb_mks(buttonText[i], event_handler,(i+10),NULL,0);
|
||||
|
@ -406,10 +403,10 @@ void disp_gcode_icon(uint8_t file_num) {
|
|||
buttonText[i] = lv_btn_create(scr, NULL);
|
||||
//lv_obj_set_event_cb(buttonText[i], event_handler);
|
||||
|
||||
lv_btn_set_style(buttonText[i], LV_BTN_STATE_PR, &tft_style_lable_pre);
|
||||
lv_btn_set_style(buttonText[i], LV_BTN_STATE_REL, &tft_style_lable_rel);
|
||||
lv_btn_set_style(buttonText[i], LV_BTN_STATE_PR, &tft_style_label_pre);
|
||||
lv_btn_set_style(buttonText[i], LV_BTN_STATE_REL, &tft_style_label_rel);
|
||||
|
||||
//lv_imgbtn_set_style(buttonText[i], LV_BTN_STATE_REL, &tft_style_lable_rel);
|
||||
//lv_imgbtn_set_style(buttonText[i], LV_BTN_STATE_REL, &tft_style_label_rel);
|
||||
lv_obj_clear_protect(buttonText[i], LV_PROTECT_FOLLOW);
|
||||
lv_btn_set_layout(buttonText[i], LV_LAYOUT_OFF);
|
||||
//lv_obj_set_event_cb_mks(buttonText[i], event_handler,(i+10),NULL,0);
|
||||
|
@ -419,12 +416,12 @@ void disp_gcode_icon(uint8_t file_num) {
|
|||
lv_obj_set_size(buttonText[i], 100, 40);
|
||||
}
|
||||
labelPageUp[i] = lv_label_create(buttonText[i], NULL);
|
||||
lv_obj_set_style(labelPageUp[i], &tft_style_lable_rel);
|
||||
lv_obj_set_style(labelPageUp[i], &tft_style_label_rel);
|
||||
lv_label_set_text(labelPageUp[i], public_buf_m);
|
||||
lv_obj_align(labelPageUp[i], buttonText[i], LV_ALIGN_IN_BOTTOM_MID, 0, 0);
|
||||
}
|
||||
else {
|
||||
lv_obj_set_event_cb_mks(buttonGcode[i], event_handler, (i + 1), "bmp_File.bin", 0);
|
||||
lv_obj_set_event_cb_mks(buttonGcode[i], event_handler, (i + 1), "bmp_file.bin", 0);
|
||||
lv_imgbtn_set_src(buttonGcode[i], LV_BTN_STATE_REL, &bmp_pic);
|
||||
lv_imgbtn_set_src(buttonGcode[i], LV_BTN_STATE_PR, &bmp_pic);
|
||||
if (i < 3)
|
||||
|
@ -433,27 +430,38 @@ void disp_gcode_icon(uint8_t file_num) {
|
|||
lv_obj_set_pos(buttonGcode[i], BTN_X_PIXEL * (i - 3) + INTERVAL_V * ((i - 3) + 1), BTN_Y_PIXEL + INTERVAL_H + titleHeight);
|
||||
|
||||
labelPageUp[i] = lv_label_create(buttonGcode[i], NULL);
|
||||
lv_obj_set_style(labelPageUp[i], &tft_style_lable_rel);
|
||||
lv_obj_set_style(labelPageUp[i], &tft_style_label_rel);
|
||||
lv_label_set_text(labelPageUp[i], public_buf_m);
|
||||
lv_obj_align(labelPageUp[i], buttonGcode[i], LV_ALIGN_IN_BOTTOM_MID, 0, -5);
|
||||
}
|
||||
}
|
||||
#else // ifdef TFT35
|
||||
#endif // ifdef TFT35
|
||||
#else // !TFT35
|
||||
#endif // !TFT35
|
||||
}
|
||||
}
|
||||
|
||||
void lv_open_gcode_file(char *path) {
|
||||
#if ENABLED(SDSUPPORT)
|
||||
uint32_t *ps4;
|
||||
int pre_sread_cnt;
|
||||
char *cur_name;
|
||||
|
||||
cur_name = strrchr(path, '/');
|
||||
|
||||
card.openFileRead(cur_name);
|
||||
#endif
|
||||
card.read(public_buf, 512);
|
||||
ps4 = (uint32_t *)strstr((char *)public_buf, ";simage:");
|
||||
// Ignore the beginning message of gcode file
|
||||
if (ps4) {
|
||||
pre_sread_cnt = (uint32_t)ps4 - (uint32_t)((uint32_t *)(&public_buf[0]));
|
||||
card.setIndex(pre_sread_cnt);
|
||||
}
|
||||
#endif // SDSUPPORT
|
||||
}
|
||||
|
||||
|
||||
int ascii2dec_test(char *ascii) {
|
||||
int result = 0;
|
||||
|
||||
if (ascii == 0) return 0;
|
||||
|
||||
if (*(ascii) >= '0' && *(ascii) <= '9')
|
||||
|
@ -468,8 +476,7 @@ int ascii2dec_test(char *ascii) {
|
|||
return result;
|
||||
}
|
||||
|
||||
void lv_gcode_file_read(uint8_t *data_buf)
|
||||
{
|
||||
void lv_gcode_file_read(uint8_t *data_buf) {
|
||||
#if ENABLED(SDSUPPORT)
|
||||
uint16_t i = 0, j = 0, k = 0;
|
||||
uint16_t row_1 = 0;
|
||||
|
@ -479,8 +486,7 @@ void lv_gcode_file_read(uint8_t *data_buf)
|
|||
|
||||
memset(public_buf, 0, 200);
|
||||
|
||||
while(card.isFileOpen())
|
||||
{
|
||||
while (card.isFileOpen()) {
|
||||
if (ignore_start) card.read(temp_test, 8); // line start -> ignore
|
||||
card.read(temp_test, 200); // data
|
||||
// \r;;gimage: we got the bit img, so stop here
|
||||
|
@ -496,17 +502,14 @@ void lv_gcode_file_read(uint8_t *data_buf)
|
|||
|
||||
uint16_t c = card.get();
|
||||
// check if we have more data or finished the line (CR)
|
||||
if (c == '\r') {
|
||||
break;
|
||||
}
|
||||
if (c == '\r') break;
|
||||
card.setIndex(card.getIndex());
|
||||
k++;
|
||||
j = 0;
|
||||
ignore_start = false;
|
||||
}
|
||||
#if ENABLED(SPI_GRAPHICAL_TFT)
|
||||
for(i=0;i<200;)
|
||||
{
|
||||
#if ENABLED(TFT_LVGL_UI_SPI)
|
||||
for (i = 0; i < 200;) {
|
||||
p_index = (uint16_t *)(&public_buf[i]);
|
||||
|
||||
//Color = (*p_index >> 8);
|
||||
|
@ -515,17 +518,16 @@ void lv_gcode_file_read(uint8_t *data_buf)
|
|||
if (*p_index == 0x0000) *p_index = LV_COLOR_BACKGROUND.full;
|
||||
}
|
||||
#else
|
||||
for(i=0;i<200;)
|
||||
{
|
||||
for (i = 0; i < 200;) {
|
||||
p_index = (uint16_t *)(&public_buf[i]);
|
||||
//Color = (*p_index >> 8);
|
||||
//*p_index = Color | ((*p_index & 0xff) << 8);
|
||||
i += 2;
|
||||
if (*p_index == 0x0000) *p_index = LV_COLOR_BACKGROUND.full; // 0x18C3; //
|
||||
}
|
||||
#endif
|
||||
#endif // TFT_LVGL_UI_SPI
|
||||
memcpy(data_buf, public_buf, 200);
|
||||
#endif
|
||||
#endif // SDSUPPORT
|
||||
}
|
||||
|
||||
void lv_close_gcode_file() {TERN_(SDSUPPORT, card.closefile());}
|
||||
|
@ -578,7 +580,7 @@ void cutFileName(char *path, int len, int bytePerLine, char *outStr) {
|
|||
#else
|
||||
//strncpy(outStr, beginIndex, len - 3);
|
||||
strncpy(outStr, beginIndex, len - 4);
|
||||
strcat(outStr, "~.g");
|
||||
strcat_P(outStr, PSTR("~.g"));
|
||||
#endif
|
||||
}
|
||||
else {
|
||||
|
@ -587,7 +589,7 @@ void cutFileName(char *path, int len, int bytePerLine, char *outStr) {
|
|||
wcscat(outStr, (const WCHAR *)&gFileTail[3]);
|
||||
#else
|
||||
strncpy(outStr, beginIndex, strIndex2 - beginIndex + 1);
|
||||
strcat(outStr, "g");
|
||||
strcat_P(outStr, PSTR("g"));
|
||||
#endif
|
||||
}
|
||||
}
|
||||
|
@ -607,11 +609,11 @@ void cutFileName(char *path, int len, int bytePerLine, char *outStr) {
|
|||
strcat(outStr, secSeg);
|
||||
}
|
||||
else {
|
||||
strcat(outStr, "\n");
|
||||
strcat_P(outStr, PSTR("\n"));
|
||||
}
|
||||
#endif
|
||||
}
|
||||
|
||||
void lv_clear_print_file() { lv_obj_del(scr); }
|
||||
|
||||
#endif // TFT_LVGL_UI
|
||||
#endif // HAS_TFT_LVGL_UI
|
||||
|
|
|
@ -21,7 +21,7 @@
|
|||
*/
|
||||
#include "../../../../inc/MarlinConfigPre.h"
|
||||
|
||||
#if ENABLED(TFT_LVGL_UI)
|
||||
#if HAS_TFT_LVGL_UI
|
||||
|
||||
#include "lv_conf.h"
|
||||
#include "draw_ui.h"
|
||||
|
@ -82,21 +82,21 @@ static void event_handler(lv_obj_t * obj, lv_event_t event) {
|
|||
stop_print_time();
|
||||
uiCfg.print_state = PAUSING;
|
||||
#endif
|
||||
lv_obj_set_event_cb_mks(buttonPause, event_handler, ID_PAUSE, "bmp_Pause.bin", 0);
|
||||
lv_obj_set_event_cb_mks(buttonPause, event_handler, ID_PAUSE, "bmp_resume.bin", 0);
|
||||
lv_label_set_text(labelPause, printing_menu.resume);
|
||||
lv_obj_align(labelPause, buttonPause, LV_ALIGN_CENTER, 30, 0);
|
||||
}
|
||||
else if (uiCfg.print_state == PAUSED) {
|
||||
uiCfg.print_state = RESUMING;
|
||||
// if (IS_SD_PAUSED())queue.inject_P(PSTR("M24"));// queue.inject_P(M24_STR);
|
||||
lv_obj_set_event_cb_mks(obj, event_handler, ID_PAUSE, "bmp_Resume.bin", 0);
|
||||
lv_obj_set_event_cb_mks(obj, event_handler, ID_PAUSE, "bmp_pause.bin", 0);
|
||||
lv_label_set_text(labelPause, printing_menu.pause);
|
||||
lv_obj_align(labelPause, buttonPause, LV_ALIGN_CENTER, 30, 0);
|
||||
}
|
||||
#if ENABLED(POWER_LOSS_RECOVERY)
|
||||
else if (uiCfg.print_state == REPRINTING) {
|
||||
uiCfg.print_state = REPRINTED;
|
||||
lv_obj_set_event_cb_mks(obj, event_handler, ID_PAUSE, "bmp_Resume.bin", 0);
|
||||
lv_obj_set_event_cb_mks(obj, event_handler, ID_PAUSE, "bmp_pause.bin", 0);
|
||||
lv_label_set_text(labelPause, printing_menu.pause);
|
||||
lv_obj_align(labelPause, buttonPause, LV_ALIGN_CENTER, 30, 0);
|
||||
// recovery.resume();
|
||||
|
@ -127,7 +127,7 @@ static void event_handler(lv_obj_t * obj, lv_event_t event) {
|
|||
else if (event == LV_EVENT_RELEASED) {
|
||||
if (gcode_preview_over != 1) {
|
||||
lv_obj_del(scr);
|
||||
lv_draw_opration();
|
||||
lv_draw_operation();
|
||||
}
|
||||
}
|
||||
break;
|
||||
|
@ -153,7 +153,7 @@ void lv_draw_printing(void) {
|
|||
lv_obj_clean(scr);
|
||||
|
||||
lv_obj_t * title = lv_label_create(scr, NULL);
|
||||
lv_obj_set_style(title, &tft_style_lable_rel);
|
||||
lv_obj_set_style(title, &tft_style_label_rel);
|
||||
lv_obj_set_pos(title, TITLE_XPOS, TITLE_YPOS);
|
||||
lv_label_set_text(title, creat_title_text());
|
||||
|
||||
|
@ -178,68 +178,68 @@ void lv_draw_printing(void) {
|
|||
buttonOperat = lv_imgbtn_create(scr, NULL);
|
||||
buttonTime = lv_imgbtn_create(scr, NULL);
|
||||
|
||||
lv_obj_set_event_cb_mks(buttonExt1, event_handler, 0, "bmp_Ext1_state.bin", 0);
|
||||
lv_obj_set_event_cb_mks(buttonExt1, event_handler, 0, "bmp_ext1_state.bin", 0);
|
||||
lv_imgbtn_set_src(buttonExt1, LV_BTN_STATE_REL, &bmp_pic_45x45);
|
||||
lv_imgbtn_set_src(buttonExt1, LV_BTN_STATE_PR, &bmp_pic_45x45);
|
||||
lv_imgbtn_set_style(buttonExt1, LV_BTN_STATE_PR, &tft_style_lable_pre);
|
||||
lv_imgbtn_set_style(buttonExt1, LV_BTN_STATE_REL, &tft_style_lable_rel);
|
||||
lv_imgbtn_set_style(buttonExt1, LV_BTN_STATE_PR, &tft_style_label_pre);
|
||||
lv_imgbtn_set_style(buttonExt1, LV_BTN_STATE_REL, &tft_style_label_rel);
|
||||
lv_obj_clear_protect(buttonExt1, LV_PROTECT_FOLLOW);
|
||||
#if 1
|
||||
if (EXTRUDERS == 2) {
|
||||
lv_obj_set_event_cb_mks(buttonExt2, event_handler, 0, "bmp_Ext2_state.bin", 0);
|
||||
lv_obj_set_event_cb_mks(buttonExt2, event_handler, 0, "bmp_ext2_state.bin", 0);
|
||||
lv_imgbtn_set_src(buttonExt2, LV_BTN_STATE_REL, &bmp_pic_45x45);
|
||||
lv_imgbtn_set_src(buttonExt2, LV_BTN_STATE_PR, &bmp_pic_45x45);
|
||||
lv_imgbtn_set_style(buttonExt2, LV_BTN_STATE_PR, &tft_style_lable_pre);
|
||||
lv_imgbtn_set_style(buttonExt2, LV_BTN_STATE_REL, &tft_style_lable_rel);
|
||||
lv_imgbtn_set_style(buttonExt2, LV_BTN_STATE_PR, &tft_style_label_pre);
|
||||
lv_imgbtn_set_style(buttonExt2, LV_BTN_STATE_REL, &tft_style_label_rel);
|
||||
}
|
||||
#if HAS_HEATED_BED
|
||||
lv_obj_set_event_cb_mks(buttonBedstate, event_handler, 0, "bmp_Bed_state.bin", 0);
|
||||
lv_obj_set_event_cb_mks(buttonBedstate, event_handler, 0, "bmp_bed_state.bin", 0);
|
||||
lv_imgbtn_set_src(buttonBedstate, LV_BTN_STATE_REL, &bmp_pic_45x45);
|
||||
lv_imgbtn_set_src(buttonBedstate, LV_BTN_STATE_PR, &bmp_pic_45x45);
|
||||
lv_imgbtn_set_style(buttonBedstate, LV_BTN_STATE_PR, &tft_style_lable_pre);
|
||||
lv_imgbtn_set_style(buttonBedstate, LV_BTN_STATE_REL, &tft_style_lable_rel);
|
||||
lv_imgbtn_set_style(buttonBedstate, LV_BTN_STATE_PR, &tft_style_label_pre);
|
||||
lv_imgbtn_set_style(buttonBedstate, LV_BTN_STATE_REL, &tft_style_label_rel);
|
||||
#endif
|
||||
|
||||
lv_obj_set_event_cb_mks(buttonFanstate, event_handler, 0, "bmp_Fan_state.bin", 0);
|
||||
lv_obj_set_event_cb_mks(buttonFanstate, event_handler, 0, "bmp_fan_state.bin", 0);
|
||||
lv_imgbtn_set_src(buttonFanstate, LV_BTN_STATE_REL, &bmp_pic_45x45);
|
||||
lv_imgbtn_set_src(buttonFanstate, LV_BTN_STATE_PR, &bmp_pic_45x45);
|
||||
lv_imgbtn_set_style(buttonFanstate, LV_BTN_STATE_PR, &tft_style_lable_pre);
|
||||
lv_imgbtn_set_style(buttonFanstate, LV_BTN_STATE_REL, &tft_style_lable_rel);
|
||||
lv_imgbtn_set_style(buttonFanstate, LV_BTN_STATE_PR, &tft_style_label_pre);
|
||||
lv_imgbtn_set_style(buttonFanstate, LV_BTN_STATE_REL, &tft_style_label_rel);
|
||||
|
||||
lv_obj_set_event_cb_mks(buttonTime, event_handler, 0, "bmp_Time_state.bin", 0);
|
||||
lv_obj_set_event_cb_mks(buttonTime, event_handler, 0, "bmp_time_state.bin", 0);
|
||||
lv_imgbtn_set_src(buttonTime, LV_BTN_STATE_REL, &bmp_pic_45x45);
|
||||
lv_imgbtn_set_src(buttonTime, LV_BTN_STATE_PR, &bmp_pic_45x45);
|
||||
lv_imgbtn_set_style(buttonTime, LV_BTN_STATE_PR, &tft_style_lable_pre);
|
||||
lv_imgbtn_set_style(buttonTime, LV_BTN_STATE_REL, &tft_style_lable_rel);
|
||||
lv_imgbtn_set_style(buttonTime, LV_BTN_STATE_PR, &tft_style_label_pre);
|
||||
lv_imgbtn_set_style(buttonTime, LV_BTN_STATE_REL, &tft_style_label_rel);
|
||||
|
||||
lv_obj_set_event_cb_mks(buttonZpos, event_handler, 0, "bmp_Zpos_state.bin", 0);
|
||||
lv_obj_set_event_cb_mks(buttonZpos, event_handler, 0, "bmp_zpos_state.bin", 0);
|
||||
lv_imgbtn_set_src(buttonZpos, LV_BTN_STATE_REL, &bmp_pic_45x45);
|
||||
lv_imgbtn_set_src(buttonZpos, LV_BTN_STATE_PR, &bmp_pic_45x45);
|
||||
lv_imgbtn_set_style(buttonZpos, LV_BTN_STATE_PR, &tft_style_lable_pre);
|
||||
lv_imgbtn_set_style(buttonZpos, LV_BTN_STATE_REL, &tft_style_lable_rel);
|
||||
lv_imgbtn_set_style(buttonZpos, LV_BTN_STATE_PR, &tft_style_label_pre);
|
||||
lv_imgbtn_set_style(buttonZpos, LV_BTN_STATE_REL, &tft_style_label_rel);
|
||||
|
||||
if (uiCfg.print_state == WORKING)
|
||||
lv_obj_set_event_cb_mks(buttonPause, event_handler, ID_PAUSE, "bmp_Resume.bin", 0);
|
||||
lv_obj_set_event_cb_mks(buttonPause, event_handler, ID_PAUSE, "bmp_pause.bin", 0);
|
||||
else
|
||||
lv_obj_set_event_cb_mks(buttonPause, event_handler, ID_PAUSE, "bmp_Pause.bin", 0);
|
||||
lv_obj_set_event_cb_mks(buttonPause, event_handler, ID_PAUSE, "bmp_resume.bin", 0);
|
||||
|
||||
lv_imgbtn_set_src(buttonPause, LV_BTN_STATE_REL, &bmp_pic_150x80);
|
||||
lv_imgbtn_set_src(buttonPause, LV_BTN_STATE_PR, &bmp_pic_150x80);
|
||||
lv_imgbtn_set_style(buttonPause, LV_BTN_STATE_PR, &tft_style_lable_pre);
|
||||
lv_imgbtn_set_style(buttonPause, LV_BTN_STATE_REL, &tft_style_lable_rel);
|
||||
lv_imgbtn_set_style(buttonPause, LV_BTN_STATE_PR, &tft_style_label_pre);
|
||||
lv_imgbtn_set_style(buttonPause, LV_BTN_STATE_REL, &tft_style_label_rel);
|
||||
|
||||
lv_obj_set_event_cb_mks(buttonStop, event_handler, ID_STOP, "bmp_Stop.bin", 0);
|
||||
lv_obj_set_event_cb_mks(buttonStop, event_handler, ID_STOP, "bmp_stop.bin", 0);
|
||||
lv_imgbtn_set_src(buttonStop, LV_BTN_STATE_REL, &bmp_pic_150x80);
|
||||
lv_imgbtn_set_src(buttonStop, LV_BTN_STATE_PR, &bmp_pic_150x80);
|
||||
lv_imgbtn_set_style(buttonStop, LV_BTN_STATE_PR, &tft_style_lable_pre);
|
||||
lv_imgbtn_set_style(buttonStop, LV_BTN_STATE_REL, &tft_style_lable_rel);
|
||||
lv_imgbtn_set_style(buttonStop, LV_BTN_STATE_PR, &tft_style_label_pre);
|
||||
lv_imgbtn_set_style(buttonStop, LV_BTN_STATE_REL, &tft_style_label_rel);
|
||||
|
||||
lv_obj_set_event_cb_mks(buttonOperat, event_handler, ID_OPTION, "bmp_Operate.bin", 0);
|
||||
lv_obj_set_event_cb_mks(buttonOperat, event_handler, ID_OPTION, "bmp_operate.bin", 0);
|
||||
lv_imgbtn_set_src(buttonOperat, LV_BTN_STATE_REL, &bmp_pic_150x80);
|
||||
lv_imgbtn_set_src(buttonOperat, LV_BTN_STATE_PR, &bmp_pic_150x80);
|
||||
lv_imgbtn_set_style(buttonOperat, LV_BTN_STATE_PR, &tft_style_lable_pre);
|
||||
lv_imgbtn_set_style(buttonOperat, LV_BTN_STATE_REL, &tft_style_lable_rel);
|
||||
#endif
|
||||
lv_imgbtn_set_style(buttonOperat, LV_BTN_STATE_PR, &tft_style_label_pre);
|
||||
lv_imgbtn_set_style(buttonOperat, LV_BTN_STATE_REL, &tft_style_label_rel);
|
||||
#endif // if 1
|
||||
|
||||
lv_obj_set_pos(buttonExt1, 205, 136);
|
||||
if (EXTRUDERS == 2)
|
||||
|
@ -272,31 +272,31 @@ void lv_draw_printing(void) {
|
|||
lv_btn_set_layout(buttonOperat, LV_LAYOUT_OFF);
|
||||
|
||||
labelExt1 = lv_label_create(scr, NULL);
|
||||
lv_obj_set_style(labelExt1, &tft_style_lable_rel);
|
||||
lv_obj_set_style(labelExt1, &tft_style_label_rel);
|
||||
lv_obj_set_pos(labelExt1, 250, 146);
|
||||
|
||||
if (EXTRUDERS == 2) {
|
||||
labelExt2 = lv_label_create(scr, NULL);
|
||||
lv_obj_set_style(labelExt2, &tft_style_lable_rel);
|
||||
lv_obj_set_style(labelExt2, &tft_style_label_rel);
|
||||
lv_obj_set_pos(labelExt2, 395, 146);
|
||||
}
|
||||
|
||||
#if HAS_HEATED_BED
|
||||
labelBed = lv_label_create(scr, NULL);
|
||||
lv_obj_set_style(labelBed, &tft_style_lable_rel);
|
||||
lv_obj_set_style(labelBed, &tft_style_label_rel);
|
||||
lv_obj_set_pos(labelBed, 250, 196);
|
||||
#endif
|
||||
|
||||
labelFan = lv_label_create(scr, NULL);
|
||||
lv_obj_set_style(labelFan, &tft_style_lable_rel);
|
||||
lv_obj_set_style(labelFan, &tft_style_label_rel);
|
||||
lv_obj_set_pos(labelFan, 395, 196);
|
||||
|
||||
labelZpos = lv_label_create(scr, NULL);
|
||||
lv_obj_set_style(labelZpos, &tft_style_lable_rel);
|
||||
lv_obj_set_style(labelZpos, &tft_style_label_rel);
|
||||
lv_obj_set_pos(labelZpos, 395, 96);
|
||||
|
||||
labelTime = lv_label_create(scr, NULL);
|
||||
lv_obj_set_style(labelTime, &tft_style_lable_rel);
|
||||
lv_obj_set_style(labelTime, &tft_style_label_rel);
|
||||
lv_obj_set_pos(labelTime, 250, 96);
|
||||
|
||||
labelPause = lv_label_create(buttonPause, NULL);
|
||||
|
@ -340,12 +340,12 @@ void lv_draw_printing(void) {
|
|||
}
|
||||
|
||||
void disp_ext_temp() {
|
||||
memset(public_buf_l, 0, sizeof(public_buf_l));
|
||||
ZERO(public_buf_l);
|
||||
sprintf(public_buf_l, printing_menu.temp1, (int)thermalManager.temp_hotend[0].celsius, (int)thermalManager.temp_hotend[0].target);
|
||||
lv_label_set_text(labelExt1, public_buf_l);
|
||||
|
||||
if (EXTRUDERS == 2) {
|
||||
memset(public_buf_l, 0, sizeof(public_buf_l));
|
||||
ZERO(public_buf_l);
|
||||
sprintf(public_buf_l, printing_menu.temp1, (int)thermalManager.temp_hotend[1].celsius, (int)thermalManager.temp_hotend[1].target);
|
||||
lv_label_set_text(labelExt2, public_buf_l);
|
||||
}
|
||||
|
@ -353,32 +353,32 @@ void disp_ext_temp() {
|
|||
|
||||
void disp_bed_temp() {
|
||||
#if HAS_HEATED_BED
|
||||
memset(public_buf_l, 0, sizeof(public_buf_l));
|
||||
ZERO(public_buf_l);
|
||||
sprintf(public_buf_l, printing_menu.bed_temp, (int)thermalManager.temp_bed.celsius, (int)thermalManager.temp_bed.target);
|
||||
lv_label_set_text(labelBed, public_buf_l);
|
||||
#endif
|
||||
}
|
||||
|
||||
void disp_fan_speed() {
|
||||
memset(public_buf_l, 0, sizeof(public_buf_l));
|
||||
sprintf(public_buf_l, "%3d", thermalManager.fan_speed[0]);
|
||||
ZERO(public_buf_l);
|
||||
sprintf_P(public_buf_l, PSTR("%3d"), thermalManager.fan_speed[0]);
|
||||
lv_label_set_text(labelFan, public_buf_l);
|
||||
}
|
||||
|
||||
void disp_print_time() {
|
||||
memset(public_buf_l, 0, sizeof(public_buf_l));
|
||||
ZERO(public_buf_l);
|
||||
#if BOTH(LCD_SET_PROGRESS_MANUALLY, USE_M73_REMAINING_TIME)
|
||||
const uint32_t r = ui.get_remaining_time();
|
||||
sprintf(public_buf_l, "%02d:%02d R", r / 3600, (r % 3600) / 60);
|
||||
sprintf_P(public_buf_l, PSTR("%02d:%02d R"), r / 3600, (r % 3600) / 60);
|
||||
#else
|
||||
sprintf(public_buf_l, "%d%d:%d%d:%d%d", print_time.hours / 10, print_time.hours % 10, print_time.minutes / 10, print_time.minutes % 10, print_time.seconds / 10, print_time.seconds % 10);
|
||||
sprintf_P(public_buf_l, PSTR("%d%d:%d%d:%d%d"), print_time.hours / 10, print_time.hours % 10, print_time.minutes / 10, print_time.minutes % 10, print_time.seconds / 10, print_time.seconds % 10);
|
||||
#endif
|
||||
lv_label_set_text(labelTime, public_buf_l);
|
||||
}
|
||||
|
||||
void disp_fan_Zpos() {
|
||||
memset(public_buf_l, 0, sizeof(public_buf_l));
|
||||
sprintf(public_buf_l, "%.3f", current_position[Z_AXIS]);
|
||||
ZERO(public_buf_l);
|
||||
sprintf_P(public_buf_l, PSTR("%.3f"), current_position[Z_AXIS]);
|
||||
lv_label_set_text(labelZpos, public_buf_l);
|
||||
}
|
||||
|
||||
|
@ -440,4 +440,4 @@ void setProBarRate() {
|
|||
|
||||
void lv_clear_printing() { lv_obj_del(scr); }
|
||||
|
||||
#endif // TFT_LVGL_UI
|
||||
#endif // HAS_TFT_LVGL_UI
|
||||
|
|
|
@ -21,12 +21,11 @@
|
|||
*/
|
||||
#include "../../../../inc/MarlinConfigPre.h"
|
||||
|
||||
#if ENABLED(TFT_LVGL_UI)
|
||||
#if HAS_TFT_LVGL_UI
|
||||
|
||||
#include "draw_ready_print.h"
|
||||
#include "draw_tool.h"
|
||||
#include "lv_conf.h"
|
||||
#include "lvgl.h"
|
||||
//#include "../lvgl/src/lv_objx/lv_imgbtn.h"
|
||||
//#include "../lvgl/src/lv_objx/lv_img.h"
|
||||
//#include "../lvgl/src/lv_core/lv_disp.h"
|
||||
|
@ -35,11 +34,13 @@
|
|||
#include "mks_hardware_test.h"
|
||||
#include "draw_ui.h"
|
||||
|
||||
#include <stdio.h>
|
||||
#include <lvgl.h>
|
||||
|
||||
#include "../../../../MarlinCore.h"
|
||||
#include "../../../../module/temperature.h"
|
||||
|
||||
#include <stdio.h>
|
||||
|
||||
//static lv_obj_t *buttonPrint,*buttonTool,*buttonSet;
|
||||
static lv_obj_t * scr;
|
||||
#if ENABLED(MKS_TEST)
|
||||
|
@ -57,9 +58,7 @@ static void event_handler(lv_obj_t * obj, lv_event_t event) {
|
|||
// nothing to do
|
||||
}
|
||||
else if (event == LV_EVENT_RELEASED) {
|
||||
#if ENABLED(MKS_TEST)
|
||||
curent_disp_ui = 2;
|
||||
#endif
|
||||
|
||||
lv_obj_del(scr);
|
||||
lv_draw_tool();
|
||||
}
|
||||
|
@ -85,9 +84,6 @@ static void event_handler(lv_obj_t * obj, lv_event_t event) {
|
|||
}
|
||||
}
|
||||
|
||||
|
||||
#if ENABLED(MKS_TEST)
|
||||
|
||||
lv_obj_t *limit_info, *det_info;
|
||||
lv_style_t limit_style, det_style;
|
||||
void disp_Limit_ok() {
|
||||
|
@ -113,102 +109,137 @@ static void event_handler(lv_obj_t * obj, lv_event_t event) {
|
|||
}
|
||||
|
||||
lv_obj_t *e1, *e2, *e3, *bed;
|
||||
void disp_test() {
|
||||
void mks_disp_test() {
|
||||
char buf[30] = {0};
|
||||
//lv_obj_t * label_tool2 = lv_label_create(scr, NULL);
|
||||
//lv_obj_set_pos(label_tool,20,50);
|
||||
memset(buf, 0, sizeof(buf));
|
||||
sprintf(buf, "e1:%d", (int)thermalManager.temp_hotend[0].celsius);
|
||||
ZERO(buf);
|
||||
sprintf_P(buf, PSTR("e1:%d"), (int)thermalManager.temp_hotend[0].celsius);
|
||||
lv_label_set_text(e1, buf);
|
||||
|
||||
memset(buf, 0, sizeof(buf));
|
||||
sprintf(buf, "e2:%d", (int)thermalManager.temp_hotend[1].celsius);
|
||||
#if HAS_MULTI_HOTEND
|
||||
ZERO(buf);
|
||||
sprintf_P(buf, PSTR("e2:%d"), (int)thermalManager.temp_hotend[1].celsius);
|
||||
lv_label_set_text(e2, buf);
|
||||
#endif
|
||||
|
||||
memset(buf, 0, sizeof(buf));
|
||||
sprintf(buf, "e3:%d", (int)thermalManager.temp_hotend[2].celsius);
|
||||
lv_label_set_text(e3, buf);
|
||||
|
||||
memset(buf, 0, sizeof(buf));
|
||||
sprintf(buf, "bed:%d", (int)thermalManager.temp_bed.celsius);
|
||||
//ZERO(buf);
|
||||
//sprintf_P(buf, PSTR("e3:%d"), (int)thermalManager.temp_hotend[2].celsius);
|
||||
//lv_label_set_text(e3, buf);
|
||||
#if HAS_HEATED_BED
|
||||
ZERO(buf);
|
||||
sprintf_P(buf, PSTR("bed:%d"), (int)thermalManager.temp_bed.celsius);
|
||||
lv_label_set_text(bed, buf);
|
||||
#endif
|
||||
}
|
||||
|
||||
#endif // MKS_TEST
|
||||
|
||||
extern unsigned char bmp_public_buf[17 * 1024];
|
||||
void lv_draw_ready_print(void) {
|
||||
#if ENABLED(MKS_TEST)
|
||||
char buf[30] = {0};
|
||||
lv_obj_t *buttonTool;
|
||||
lv_obj_t *buttonPrint, *buttonTool, *buttonSet;
|
||||
|
||||
static lv_style_t style_pr, style_rel;
|
||||
disp_state_stack._disp_index = 0;
|
||||
ZERO(disp_state_stack._disp_state);
|
||||
disp_state_stack._disp_state[disp_state_stack._disp_index] = PRINT_READY_UI;
|
||||
|
||||
curent_disp_ui = 1;
|
||||
disp_state = PRINT_READY_UI;
|
||||
|
||||
scr = lv_obj_create(NULL, NULL);
|
||||
|
||||
static lv_style_t ready_style;
|
||||
|
||||
lv_style_copy(&ready_style, &lv_style_scr);
|
||||
//ready_style.body.main_color.full = 0X18C3;
|
||||
//ready_style.body.grad_color.full = 0X18C3;
|
||||
ready_style.body.main_color.full = 0X0000;
|
||||
ready_style.body.grad_color.full = 0X0000;
|
||||
ready_style.text.color.full = 0Xffff;
|
||||
lv_obj_set_style(scr, &ready_style);
|
||||
lv_obj_set_style(scr, &tft_style_scr);
|
||||
lv_scr_load(scr);
|
||||
lv_obj_clean(scr);
|
||||
//lv_obj_set_hidden(scr,true);
|
||||
lv_refr_now(lv_refr_get_disp_refreshing());
|
||||
|
||||
LV_IMG_DECLARE(bmp_pic);
|
||||
//LV_IMG_DECLARE(bmp_pic2);
|
||||
//LV_IMG_DECLARE(bmp_pic3);
|
||||
|
||||
//scr = lv_obj_create(NULL, NULL);
|
||||
//lv_scr_load(scr);
|
||||
if (mks_test_flag == 0x1e) {
|
||||
//lv_obj_t * title = lv_label_create(scr, NULL);
|
||||
//lv_obj_set_style(title, &tft_style_label_rel);
|
||||
//lv_obj_set_pos(title,TITLE_XPOS,TITLE_YPOS);
|
||||
//lv_label_set_text(title, creat_title_text());
|
||||
|
||||
/*Create an Image button*/
|
||||
//buttonPrint = lv_imgbtn_create(scr, NULL);
|
||||
buttonTool = lv_imgbtn_create(scr, NULL);
|
||||
//buttonSet = lv_imgbtn_create(scr, NULL);
|
||||
|
||||
//lv_btn_setting(&style_pr,0x5d8f16,0x5d8f16);
|
||||
//lv_btn_setting(&style_rel,0x5d8f16,0x5d8f16);
|
||||
//lv_obj_set_event_cb_mks(buttonPrint, event_handler,ID_PRINT,"bmp_printing.bin",0);
|
||||
//lv_imgbtn_set_src_mks(buttonPrint, LV_BTN_STATE_REL, &bmp_pic,(uint8_t *)"bmp_printing.bin");
|
||||
//lv_imgbtn_set_src(buttonPrint, LV_BTN_STATE_REL, &bmp_pic);
|
||||
//lv_imgbtn_set_src(buttonPrint, LV_BTN_STATE_PR, &bmp_pic);
|
||||
//lv_imgbtn_set_style(buttonPrint, LV_BTN_STATE_PR, &tft_style_label_pre);
|
||||
//lv_imgbtn_set_style(buttonPrint, LV_BTN_STATE_REL, &tft_style_label_rel);
|
||||
//lv_obj_clear_protect(buttonPrint, LV_PROTECT_FOLLOW);
|
||||
|
||||
lv_obj_set_event_cb_mks(buttonTool, event_handler, 3, "bmp_Tool.bin", 0);
|
||||
#if 1
|
||||
//lv_obj_set_event_cb_mks(buttonSet, event_handler,ID_SET,"bmp_set.bin",0);
|
||||
//lv_imgbtn_set_src_mks(buttonSet, LV_BTN_STATE_REL, &bmp_pic,(uint8_t *)"bmp_set.bin");
|
||||
//lv_imgbtn_set_src(buttonSet, LV_BTN_STATE_REL, &bmp_pic);
|
||||
//lv_imgbtn_set_src(buttonSet, LV_BTN_STATE_PR, &bmp_pic);
|
||||
//lv_imgbtn_set_style(buttonSet, LV_BTN_STATE_PR, &tft_style_label_pre);
|
||||
//lv_imgbtn_set_style(buttonSet, LV_BTN_STATE_REL, &tft_style_label_rel);
|
||||
|
||||
lv_obj_set_event_cb_mks(buttonTool, event_handler, ID_TOOL, "bmp_tool.bin", 0);
|
||||
//lv_imgbtn_set_src_mks(buttonTool, LV_BTN_STATE_REL, &bmp_pic,(uint8_t *)"bmp_tool.bin");
|
||||
lv_imgbtn_set_src(buttonTool, LV_BTN_STATE_REL, &bmp_pic);
|
||||
lv_imgbtn_set_src(buttonTool, LV_BTN_STATE_PR, &bmp_pic);
|
||||
lv_imgbtn_set_style(buttonTool, LV_BTN_STATE_PR, &style_pr);
|
||||
lv_imgbtn_set_style(buttonTool, LV_BTN_STATE_REL, &style_rel);
|
||||
lv_imgbtn_set_style(buttonTool, LV_BTN_STATE_PR, &tft_style_label_pre);
|
||||
lv_imgbtn_set_style(buttonTool, LV_BTN_STATE_REL, &tft_style_label_rel);
|
||||
#endif
|
||||
|
||||
lv_obj_set_pos(buttonTool, 360, 180);
|
||||
//lv_obj_set_pos(buttonSet,180,90);
|
||||
//lv_obj_set_pos(buttonPrint,340,90);
|
||||
|
||||
//lv_obj_set_pos(buttonTool,SIMPLE_FIRST_PAGE_GRAP+1,(TFT_HEIGHT-BTN_Y_PIXEL)/2+2);
|
||||
//lv_obj_set_pos(buttonSet,BTN_X_PIXEL+SIMPLE_FIRST_PAGE_GRAP*2+1,(TFT_HEIGHT-BTN_Y_PIXEL)/2+2);
|
||||
//lv_obj_set_pos(buttonPrint,BTN_X_PIXEL*2+SIMPLE_FIRST_PAGE_GRAP*3+1,(TFT_HEIGHT-BTN_Y_PIXEL)/2+2);
|
||||
|
||||
/*Create a label on the Image button*/
|
||||
//lv_btn_set_layout(buttonPrint, LV_LAYOUT_OFF);
|
||||
//lv_btn_set_layout(buttonSet, LV_LAYOUT_OFF);
|
||||
lv_btn_set_layout(buttonTool, LV_LAYOUT_OFF);
|
||||
|
||||
//lv_obj_t * label_print = lv_label_create(buttonPrint, NULL);
|
||||
//lv_obj_t * label_set = lv_label_create(buttonSet, NULL);
|
||||
lv_obj_t * label_tool = lv_label_create(buttonTool, NULL);
|
||||
if (gCfgItems.multiple_language != 0) {
|
||||
//lv_label_set_text(label_print, main_menu.print);
|
||||
//lv_obj_align(label_print, buttonPrint, LV_ALIGN_IN_BOTTOM_MID,0, BUTTON_TEXT_Y_OFFSET);
|
||||
|
||||
lv_obj_set_pos(label_tool, 30, 100);
|
||||
lv_label_set_text(label_tool, "Back");
|
||||
//lv_label_set_text(label_set, main_menu.set);
|
||||
//lv_obj_align(label_set, buttonSet, LV_ALIGN_IN_BOTTOM_MID,0, BUTTON_TEXT_Y_OFFSET);
|
||||
|
||||
//lv_label_set_style(label_tool,LV_BTN_STATE_PR,&tft_style_label_pre);
|
||||
//lv_label_set_style(label_tool,LV_BTN_STATE_REL,&tft_style_label_rel);
|
||||
lv_label_set_text(label_tool, main_menu.tool);
|
||||
lv_obj_align(label_tool, buttonTool, LV_ALIGN_IN_BOTTOM_MID, 0, BUTTON_TEXT_Y_OFFSET);
|
||||
}
|
||||
|
||||
#if 1
|
||||
e1 = lv_label_create(scr, NULL);
|
||||
lv_obj_set_pos(e1, 20, 20);
|
||||
sprintf(buf, "e1: %d", (int)thermalManager.temp_hotend[0].celsius);
|
||||
sprintf_P(buf, PSTR("e1: %d"), (int)thermalManager.temp_hotend[0].celsius);
|
||||
lv_label_set_text(e1, buf);
|
||||
|
||||
#if HAS_MULTI_HOTEND
|
||||
e2 = lv_label_create(scr, NULL);
|
||||
lv_obj_set_pos(e2, 20, 45);
|
||||
sprintf(buf, "e1: %d", (int)thermalManager.temp_hotend[1].celsius);
|
||||
sprintf_P(buf, PSTR("e1: %d"), (int)thermalManager.temp_hotend[1].celsius);
|
||||
lv_label_set_text(e2, buf);
|
||||
#endif
|
||||
|
||||
e3 = lv_label_create(scr, NULL);
|
||||
lv_obj_set_pos(e3, 20, 70);
|
||||
sprintf(buf, "e1: %d", (int)thermalManager.temp_hotend[2].celsius);
|
||||
lv_label_set_text(e3, buf);
|
||||
//e3 = lv_label_create(scr, NULL);
|
||||
//lv_obj_set_pos(e3,20,70);
|
||||
//sprintf_P(buf, PSTR("e1: %d"), (int)thermalManager.temp_hotend[2].celsius);
|
||||
//lv_label_set_text(e3, buf);
|
||||
|
||||
#if HAS_HEATED_BED
|
||||
bed = lv_label_create(scr, NULL);
|
||||
lv_obj_set_pos(bed, 20, 95);
|
||||
sprintf(buf, "bed: %d", (int)thermalManager.temp_bed.celsius);
|
||||
sprintf_P(buf, PSTR("bed: %d"), (int)thermalManager.temp_bed.celsius);
|
||||
lv_label_set_text(bed, buf);
|
||||
#endif
|
||||
|
||||
limit_info = lv_label_create(scr, NULL);
|
||||
|
||||
|
@ -231,27 +262,12 @@ void lv_draw_ready_print(void) {
|
|||
|
||||
lv_obj_set_pos(det_info, 20, 145);
|
||||
lv_label_set_text(det_info, " ");
|
||||
#else // !MKS_TEST
|
||||
lv_obj_t *buttonPrint, *buttonTool, *buttonSet;
|
||||
|
||||
disp_state_stack._disp_index = 0;
|
||||
memset(disp_state_stack._disp_state, 0, sizeof(disp_state_stack._disp_state));
|
||||
disp_state_stack._disp_state[disp_state_stack._disp_index] = PRINT_READY_UI;
|
||||
|
||||
disp_state = PRINT_READY_UI;
|
||||
|
||||
scr = lv_obj_create(NULL, NULL);
|
||||
|
||||
lv_obj_set_style(scr, &tft_style_scr);
|
||||
lv_scr_load(scr);
|
||||
lv_obj_clean(scr);
|
||||
//lv_obj_set_hidden(scr,true);
|
||||
lv_refr_now(lv_refr_get_disp_refreshing());
|
||||
|
||||
LV_IMG_DECLARE(bmp_pic);
|
||||
#endif // if 1
|
||||
|
||||
}
|
||||
else {
|
||||
//lv_obj_t * title = lv_label_create(scr, NULL);
|
||||
//lv_obj_set_style(title, &tft_style_lable_rel);
|
||||
//lv_obj_set_style(title, &tft_style_label_rel);
|
||||
//lv_obj_set_pos(title,TITLE_XPOS,TITLE_YPOS);
|
||||
//lv_label_set_text(title, creat_title_text());
|
||||
|
||||
|
@ -264,24 +280,26 @@ void lv_draw_ready_print(void) {
|
|||
//lv_imgbtn_set_src_mks(buttonPrint, LV_BTN_STATE_REL, &bmp_pic,(uint8_t *)"bmp_printing.bin");
|
||||
lv_imgbtn_set_src(buttonPrint, LV_BTN_STATE_REL, &bmp_pic);
|
||||
lv_imgbtn_set_src(buttonPrint, LV_BTN_STATE_PR, &bmp_pic);
|
||||
lv_imgbtn_set_style(buttonPrint, LV_BTN_STATE_PR, &tft_style_lable_pre);
|
||||
lv_imgbtn_set_style(buttonPrint, LV_BTN_STATE_REL, &tft_style_lable_rel);
|
||||
lv_imgbtn_set_style(buttonPrint, LV_BTN_STATE_PR, &tft_style_label_pre);
|
||||
lv_imgbtn_set_style(buttonPrint, LV_BTN_STATE_REL, &tft_style_label_rel);
|
||||
lv_obj_clear_protect(buttonPrint, LV_PROTECT_FOLLOW);
|
||||
|
||||
#if 1
|
||||
lv_obj_set_event_cb_mks(buttonSet, event_handler, ID_SET, "bmp_Set.bin", 0);
|
||||
lv_obj_set_event_cb_mks(buttonSet, event_handler, ID_SET, "bmp_set.bin", 0);
|
||||
//lv_imgbtn_set_src_mks(buttonSet, LV_BTN_STATE_REL, &bmp_pic,(uint8_t *)"bmp_set.bin");
|
||||
lv_imgbtn_set_src(buttonSet, LV_BTN_STATE_REL, &bmp_pic);
|
||||
lv_imgbtn_set_src(buttonSet, LV_BTN_STATE_PR, &bmp_pic);
|
||||
lv_imgbtn_set_style(buttonSet, LV_BTN_STATE_PR, &tft_style_lable_pre);
|
||||
lv_imgbtn_set_style(buttonSet, LV_BTN_STATE_REL, &tft_style_lable_rel);
|
||||
lv_imgbtn_set_style(buttonSet, LV_BTN_STATE_PR, &tft_style_label_pre);
|
||||
lv_imgbtn_set_style(buttonSet, LV_BTN_STATE_REL, &tft_style_label_rel);
|
||||
|
||||
lv_obj_set_event_cb_mks(buttonTool, event_handler, ID_TOOL, "bmp_Tool.bin", 0);
|
||||
lv_obj_set_event_cb_mks(buttonTool, event_handler, ID_TOOL, "bmp_tool.bin", 0);
|
||||
//lv_imgbtn_set_src_mks(buttonTool, LV_BTN_STATE_REL, &bmp_pic,(uint8_t *)"bmp_tool.bin");
|
||||
lv_imgbtn_set_src(buttonTool, LV_BTN_STATE_REL, &bmp_pic);
|
||||
lv_imgbtn_set_src(buttonTool, LV_BTN_STATE_PR, &bmp_pic);
|
||||
lv_imgbtn_set_style(buttonTool, LV_BTN_STATE_PR, &tft_style_lable_pre);
|
||||
lv_imgbtn_set_style(buttonTool, LV_BTN_STATE_REL, &tft_style_lable_rel);
|
||||
lv_imgbtn_set_style(buttonTool, LV_BTN_STATE_PR, &tft_style_label_pre);
|
||||
lv_imgbtn_set_style(buttonTool, LV_BTN_STATE_REL, &tft_style_label_rel);
|
||||
#endif
|
||||
|
||||
lv_obj_set_pos(buttonTool, 20, 90);
|
||||
lv_obj_set_pos(buttonSet, 180, 90);
|
||||
lv_obj_set_pos(buttonPrint, 340, 90);
|
||||
|
@ -299,21 +317,20 @@ void lv_draw_ready_print(void) {
|
|||
lv_obj_t * label_set = lv_label_create(buttonSet, NULL);
|
||||
lv_obj_t * label_tool = lv_label_create(buttonTool, NULL);
|
||||
if (gCfgItems.multiple_language != 0) {
|
||||
|
||||
lv_label_set_text(label_print, main_menu.print);
|
||||
lv_obj_align(label_print, buttonPrint, LV_ALIGN_IN_BOTTOM_MID, 0, BUTTON_TEXT_Y_OFFSET);
|
||||
|
||||
lv_label_set_text(label_set, main_menu.set);
|
||||
lv_obj_align(label_set, buttonSet, LV_ALIGN_IN_BOTTOM_MID, 0, BUTTON_TEXT_Y_OFFSET);
|
||||
|
||||
//lv_label_set_style(label_tool,LV_BTN_STATE_PR,&tft_style_lable_pre);
|
||||
//lv_label_set_style(label_tool,LV_BTN_STATE_REL,&tft_style_lable_rel);
|
||||
//lv_label_set_style(label_tool,LV_BTN_STATE_PR,&tft_style_label_pre);
|
||||
//lv_label_set_style(label_tool,LV_BTN_STATE_REL,&tft_style_label_rel);
|
||||
lv_label_set_text(label_tool, main_menu.tool);
|
||||
lv_obj_align(label_tool, buttonTool, LV_ALIGN_IN_BOTTOM_MID, 0, BUTTON_TEXT_Y_OFFSET);
|
||||
}
|
||||
#endif // !MKS_TEST
|
||||
}
|
||||
}
|
||||
|
||||
void lv_clear_ready_print() { lv_obj_del(scr); }
|
||||
|
||||
#endif // TFT_LVGL_UI
|
||||
#endif // HAS_TFT_LVGL_UI
|
||||
|
|
|
@ -26,7 +26,7 @@ extern "C" { /* C-declarations for C++ */
|
|||
#endif
|
||||
|
||||
extern void lv_draw_ready_print(void);
|
||||
extern void disp_test();
|
||||
extern void mks_disp_test();
|
||||
extern void disp_Limit_ok();
|
||||
extern void disp_Limit_error();
|
||||
extern void disp_det_error();
|
||||
|
|
|
@ -21,7 +21,7 @@
|
|||
*/
|
||||
#include "../../../../inc/MarlinConfigPre.h"
|
||||
|
||||
#if ENABLED(TFT_LVGL_UI)
|
||||
#if HAS_TFT_LVGL_UI
|
||||
|
||||
#include "../../../../MarlinCore.h"
|
||||
#include "draw_ready_print.h"
|
||||
|
@ -43,7 +43,9 @@ static lv_obj_t * scr;
|
|||
#define ID_S_CONTINUE 4
|
||||
#define ID_S_MOTOR_OFF 5
|
||||
#define ID_S_LANGUAGE 6
|
||||
#define ID_S_RETURN 7
|
||||
#define ID_S_MACHINE_PARA 7
|
||||
#define ID_S_EEPROM_SET 8
|
||||
#define ID_S_RETURN 9
|
||||
|
||||
static void event_handler(lv_obj_t * obj, lv_event_t event) {
|
||||
switch (obj->mks_obj_id) {
|
||||
|
@ -83,7 +85,7 @@ static void event_handler(lv_obj_t * obj, lv_event_t event) {
|
|||
#if HAS_SUICIDE
|
||||
suicide();
|
||||
#else
|
||||
queue.enqueue_one_now(PSTR("M84"));
|
||||
queue.enqueue_now_P(PSTR("M84"));
|
||||
#endif
|
||||
}
|
||||
break;
|
||||
|
@ -96,6 +98,24 @@ static void event_handler(lv_obj_t * obj, lv_event_t event) {
|
|||
lv_draw_language();
|
||||
}
|
||||
break;
|
||||
case ID_S_MACHINE_PARA:
|
||||
if (event == LV_EVENT_CLICKED) {
|
||||
|
||||
}
|
||||
else if (event == LV_EVENT_RELEASED) {
|
||||
lv_obj_del(scr);
|
||||
lv_draw_machine_para();
|
||||
}
|
||||
break;
|
||||
case ID_S_EEPROM_SET:
|
||||
if (event == LV_EVENT_CLICKED) {
|
||||
|
||||
}
|
||||
else if (event == LV_EVENT_RELEASED) {
|
||||
lv_obj_del(scr);
|
||||
lv_draw_eeprom_settings();
|
||||
}
|
||||
break;
|
||||
case ID_S_RETURN:
|
||||
if (event == LV_EVENT_CLICKED) {
|
||||
// nothing to do
|
||||
|
@ -115,6 +135,8 @@ void lv_draw_set(void) {
|
|||
#if HAS_LANG_SELECT_SCREEN
|
||||
lv_obj_t *buttonLanguage;
|
||||
#endif
|
||||
lv_obj_t *buttonMachinePara;
|
||||
lv_obj_t *buttonEepromSet;
|
||||
|
||||
if (disp_state_stack._disp_state[disp_state_stack._disp_index] != SET_UI) {
|
||||
disp_state_stack._disp_index++;
|
||||
|
@ -131,7 +153,7 @@ void lv_draw_set(void) {
|
|||
lv_obj_clean(scr);
|
||||
|
||||
lv_obj_t * title = lv_label_create(scr, NULL);
|
||||
lv_obj_set_style(title, &tft_style_lable_rel);
|
||||
lv_obj_set_style(title, &tft_style_label_rel);
|
||||
lv_obj_set_pos(title, TITLE_XPOS, TITLE_YPOS);
|
||||
lv_label_set_text(title, creat_title_text());
|
||||
|
||||
|
@ -148,57 +170,69 @@ void lv_draw_set(void) {
|
|||
#if HAS_LANG_SELECT_SCREEN
|
||||
buttonLanguage = lv_imgbtn_create(scr, NULL);
|
||||
#endif
|
||||
buttonMachinePara = lv_imgbtn_create(scr, NULL);
|
||||
buttonEepromSet = lv_imgbtn_create(scr, NULL);
|
||||
buttonBack = lv_imgbtn_create(scr, NULL);
|
||||
|
||||
|
||||
//lv_obj_set_event_cb_mks(buttonWifi, event_handler,ID_S_WIFI,"bmp_Wifi.bin",0);
|
||||
//lv_imgbtn_set_src(buttonWifi, LV_BTN_STATE_REL, &bmp_pic);
|
||||
//lv_imgbtn_set_src(buttonWifi, LV_BTN_STATE_PR, &bmp_pic);
|
||||
//lv_imgbtn_set_style(buttonWifi, LV_BTN_STATE_PR, &tft_style_lable_pre);
|
||||
//lv_imgbtn_set_style(buttonWifi, LV_BTN_STATE_REL, &tft_style_lable_rel);
|
||||
//lv_imgbtn_set_style(buttonWifi, LV_BTN_STATE_PR, &tft_style_label_pre);
|
||||
//lv_imgbtn_set_style(buttonWifi, LV_BTN_STATE_REL, &tft_style_label_rel);
|
||||
//lv_obj_clear_protect(buttonWifi, LV_PROTECT_FOLLOW);
|
||||
#if 1
|
||||
lv_obj_set_event_cb_mks(buttonFan, event_handler, ID_S_FAN, "bmp_Fan.bin", 0);
|
||||
lv_obj_set_event_cb_mks(buttonFan, event_handler, ID_S_FAN, "bmp_fan.bin", 0);
|
||||
lv_imgbtn_set_src(buttonFan, LV_BTN_STATE_REL, &bmp_pic);
|
||||
lv_imgbtn_set_src(buttonFan, LV_BTN_STATE_PR, &bmp_pic);
|
||||
lv_imgbtn_set_style(buttonFan, LV_BTN_STATE_PR, &tft_style_lable_pre);
|
||||
lv_imgbtn_set_style(buttonFan, LV_BTN_STATE_REL, &tft_style_lable_rel);
|
||||
lv_imgbtn_set_style(buttonFan, LV_BTN_STATE_PR, &tft_style_label_pre);
|
||||
lv_imgbtn_set_style(buttonFan, LV_BTN_STATE_REL, &tft_style_label_rel);
|
||||
|
||||
lv_obj_set_event_cb_mks(buttonAbout, event_handler, ID_S_ABOUT, "bmp_About.bin", 0);
|
||||
lv_obj_set_event_cb_mks(buttonAbout, event_handler, ID_S_ABOUT, "bmp_about.bin", 0);
|
||||
lv_imgbtn_set_src(buttonAbout, LV_BTN_STATE_REL, &bmp_pic);
|
||||
lv_imgbtn_set_src(buttonAbout, LV_BTN_STATE_PR, &bmp_pic);
|
||||
lv_imgbtn_set_style(buttonAbout, LV_BTN_STATE_PR, &tft_style_lable_pre);
|
||||
lv_imgbtn_set_style(buttonAbout, LV_BTN_STATE_REL, &tft_style_lable_rel);
|
||||
lv_imgbtn_set_style(buttonAbout, LV_BTN_STATE_PR, &tft_style_label_pre);
|
||||
lv_imgbtn_set_style(buttonAbout, LV_BTN_STATE_REL, &tft_style_label_rel);
|
||||
|
||||
//lv_obj_set_event_cb_mks(buttonContinue, event_handler,ID_S_CONTINUE,"bmp_Breakpoint.bin",0);
|
||||
//lv_imgbtn_set_src(buttonContinue, LV_BTN_STATE_REL, &bmp_pic);
|
||||
//lv_imgbtn_set_src(buttonContinue, LV_BTN_STATE_PR, &bmp_pic);
|
||||
//lv_imgbtn_set_style(buttonContinue, LV_BTN_STATE_PR, &tft_style_lable_pre);
|
||||
//lv_imgbtn_set_style(buttonContinue, LV_BTN_STATE_REL, &tft_style_lable_rel);
|
||||
//lv_imgbtn_set_style(buttonContinue, LV_BTN_STATE_PR, &tft_style_label_pre);
|
||||
//lv_imgbtn_set_style(buttonContinue, LV_BTN_STATE_REL, &tft_style_label_rel);
|
||||
#if HAS_SUICIDE
|
||||
lv_obj_set_event_cb_mks(buMotorOff, event_handler, ID_S_MOTOR_OFF, "bmp_manual_off.bin", 0);
|
||||
lv_obj_set_event_cb_mks(buMotorOff, event_handler, ID_S_MOTOR_OFF, "bmp_Mamual.bin", 0);
|
||||
#else
|
||||
lv_obj_set_event_cb_mks(buMotorOff, event_handler, ID_S_MOTOR_OFF, "bmp_manual_off.bin", 0);
|
||||
lv_obj_set_event_cb_mks(buMotorOff, event_handler, ID_S_MOTOR_OFF, "bmp_function1.bin", 0);
|
||||
#endif
|
||||
lv_imgbtn_set_src(buMotorOff, LV_BTN_STATE_REL, &bmp_pic);
|
||||
lv_imgbtn_set_src(buMotorOff, LV_BTN_STATE_PR, &bmp_pic);
|
||||
lv_imgbtn_set_style(buMotorOff, LV_BTN_STATE_PR, &tft_style_lable_pre);
|
||||
lv_imgbtn_set_style(buMotorOff, LV_BTN_STATE_REL, &tft_style_lable_rel);
|
||||
lv_imgbtn_set_style(buMotorOff, LV_BTN_STATE_PR, &tft_style_label_pre);
|
||||
lv_imgbtn_set_style(buMotorOff, LV_BTN_STATE_REL, &tft_style_label_rel);
|
||||
|
||||
#if HAS_LANG_SELECT_SCREEN
|
||||
lv_obj_set_event_cb_mks(buttonLanguage, event_handler, ID_S_LANGUAGE, "bmp_Language.bin", 0);
|
||||
lv_obj_set_event_cb_mks(buttonLanguage, event_handler, ID_S_LANGUAGE, "bmp_language.bin", 0);
|
||||
lv_imgbtn_set_src(buttonLanguage, LV_BTN_STATE_REL, &bmp_pic);
|
||||
lv_imgbtn_set_src(buttonLanguage, LV_BTN_STATE_PR, &bmp_pic);
|
||||
lv_imgbtn_set_style(buttonLanguage, LV_BTN_STATE_PR, &tft_style_lable_pre);
|
||||
lv_imgbtn_set_style(buttonLanguage, LV_BTN_STATE_REL, &tft_style_lable_rel);
|
||||
lv_imgbtn_set_style(buttonLanguage, LV_BTN_STATE_PR, &tft_style_label_pre);
|
||||
lv_imgbtn_set_style(buttonLanguage, LV_BTN_STATE_REL, &tft_style_label_rel);
|
||||
#endif
|
||||
lv_obj_set_event_cb_mks(buttonMachinePara, event_handler, ID_S_MACHINE_PARA, "bmp_machine_para.bin", 0);
|
||||
lv_imgbtn_set_src(buttonMachinePara, LV_BTN_STATE_REL, &bmp_pic);
|
||||
lv_imgbtn_set_src(buttonMachinePara, LV_BTN_STATE_PR, &bmp_pic);
|
||||
lv_imgbtn_set_style(buttonMachinePara, LV_BTN_STATE_PR, &tft_style_label_pre);
|
||||
lv_imgbtn_set_style(buttonMachinePara, LV_BTN_STATE_REL, &tft_style_label_rel);
|
||||
|
||||
lv_obj_set_event_cb_mks(buttonBack, event_handler, ID_S_RETURN, "bmp_Return.bin", 0);
|
||||
lv_obj_set_event_cb_mks(buttonEepromSet, event_handler, ID_S_EEPROM_SET, "bmp_eeprom_settings.bin", 0);
|
||||
lv_imgbtn_set_src(buttonEepromSet, LV_BTN_STATE_REL, &bmp_pic);
|
||||
lv_imgbtn_set_src(buttonEepromSet, LV_BTN_STATE_PR, &bmp_pic);
|
||||
lv_imgbtn_set_style(buttonEepromSet, LV_BTN_STATE_PR, &tft_style_label_pre);
|
||||
lv_imgbtn_set_style(buttonEepromSet, LV_BTN_STATE_REL, &tft_style_label_rel);
|
||||
lv_obj_set_event_cb_mks(buttonBack, event_handler, ID_S_RETURN, "bmp_return.bin", 0);
|
||||
lv_imgbtn_set_src(buttonBack, LV_BTN_STATE_REL, &bmp_pic);
|
||||
lv_imgbtn_set_src(buttonBack, LV_BTN_STATE_PR, &bmp_pic);
|
||||
lv_imgbtn_set_style(buttonBack, LV_BTN_STATE_PR, &tft_style_lable_pre);
|
||||
lv_imgbtn_set_style(buttonBack, LV_BTN_STATE_REL, &tft_style_lable_rel);
|
||||
#endif
|
||||
lv_imgbtn_set_style(buttonBack, LV_BTN_STATE_PR, &tft_style_label_pre);
|
||||
lv_imgbtn_set_style(buttonBack, LV_BTN_STATE_REL, &tft_style_label_rel);
|
||||
#endif // if 1
|
||||
|
||||
/*lv_obj_set_pos(buttonWifi,INTERVAL_V,titleHeight);
|
||||
lv_obj_set_pos(buttonFan,BTN_X_PIXEL+INTERVAL_V*2,titleHeight);
|
||||
|
@ -216,6 +250,8 @@ void lv_draw_set(void) {
|
|||
#if HAS_LANG_SELECT_SCREEN
|
||||
lv_obj_set_pos(buttonLanguage, INTERVAL_V, titleHeight);
|
||||
#endif
|
||||
lv_obj_set_pos(buttonMachinePara, INTERVAL_V, BTN_Y_PIXEL + INTERVAL_H + titleHeight);
|
||||
lv_obj_set_pos(buttonEepromSet, BTN_X_PIXEL + INTERVAL_V * 2, BTN_Y_PIXEL + INTERVAL_H + titleHeight);
|
||||
lv_obj_set_pos(buttonBack, BTN_X_PIXEL * 3 + INTERVAL_V * 4, BTN_Y_PIXEL + INTERVAL_H + titleHeight);
|
||||
|
||||
/*Create a label on the Image button*/
|
||||
|
@ -227,6 +263,8 @@ void lv_draw_set(void) {
|
|||
#if HAS_LANG_SELECT_SCREEN
|
||||
lv_btn_set_layout(buttonLanguage, LV_LAYOUT_OFF);
|
||||
#endif
|
||||
lv_btn_set_layout(buttonMachinePara, LV_LAYOUT_OFF);
|
||||
lv_btn_set_layout(buttonEepromSet, LV_LAYOUT_OFF);
|
||||
lv_btn_set_layout(buttonBack, LV_LAYOUT_OFF);
|
||||
|
||||
//lv_obj_t * labelWifi= lv_label_create(buttonWifi, NULL);
|
||||
|
@ -237,9 +275,10 @@ void lv_draw_set(void) {
|
|||
#if HAS_LANG_SELECT_SCREEN
|
||||
lv_obj_t * label_Language = lv_label_create(buttonLanguage, NULL);
|
||||
#endif
|
||||
lv_obj_t * label_MachinePara = lv_label_create(buttonMachinePara, NULL);
|
||||
lv_obj_t * label_EepromSet = lv_label_create(buttonEepromSet, NULL);
|
||||
lv_obj_t * label_Back = lv_label_create(buttonBack, NULL);
|
||||
|
||||
|
||||
if (gCfgItems.multiple_language != 0) {
|
||||
//lv_label_set_text(labelWifi, set_menu.wifi);
|
||||
//lv_obj_align(labelWifi, buttonWifi, LV_ALIGN_IN_BOTTOM_MID,0, BUTTON_TEXT_Y_OFFSET);
|
||||
|
@ -263,6 +302,11 @@ void lv_draw_set(void) {
|
|||
lv_label_set_text(label_Language, set_menu.language);
|
||||
lv_obj_align(label_Language, buttonLanguage, LV_ALIGN_IN_BOTTOM_MID, 0, BUTTON_TEXT_Y_OFFSET);
|
||||
#endif
|
||||
lv_label_set_text(label_MachinePara, set_menu.machine_para);
|
||||
lv_obj_align(label_MachinePara, buttonMachinePara, LV_ALIGN_IN_BOTTOM_MID, 0, BUTTON_TEXT_Y_OFFSET);
|
||||
|
||||
lv_label_set_text(label_EepromSet, set_menu.eepromSet);
|
||||
lv_obj_align(label_EepromSet, buttonEepromSet, LV_ALIGN_IN_BOTTOM_MID, 0, BUTTON_TEXT_Y_OFFSET);
|
||||
|
||||
lv_label_set_text(label_Back, common_menu.text_back);
|
||||
lv_obj_align(label_Back, buttonBack, LV_ALIGN_IN_BOTTOM_MID, 0, BUTTON_TEXT_Y_OFFSET);
|
||||
|
@ -271,4 +315,4 @@ void lv_draw_set(void) {
|
|||
|
||||
void lv_clear_set() { lv_obj_del(scr); }
|
||||
|
||||
#endif // TFT_LVGL_UI
|
||||
#endif // HAS_TFT_LVGL_UI
|
||||
|
|
358
Marlin/src/lcd/extui/lib/mks_ui/draw_step_settings.cpp
Normal file
358
Marlin/src/lcd/extui/lib/mks_ui/draw_step_settings.cpp
Normal file
|
@ -0,0 +1,358 @@
|
|||
/**
|
||||
* Marlin 3D Printer Firmware
|
||||
* Copyright (c) 2020 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
|
||||
*
|
||||
* Based on Sprinter and grbl.
|
||||
* Copyright (c) 2011 Camiel Gubbels / Erik van der Zalm
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*
|
||||
*/
|
||||
#include "../../../../inc/MarlinConfigPre.h"
|
||||
|
||||
#if HAS_TFT_LVGL_UI
|
||||
|
||||
#include "lv_conf.h"
|
||||
#include "draw_ui.h"
|
||||
|
||||
#include "../../../../MarlinCore.h"
|
||||
#include "../../../../module/planner.h"
|
||||
|
||||
static lv_obj_t * scr;
|
||||
|
||||
#define ID_STEP_RETURN 1
|
||||
#define ID_STEP_X 2
|
||||
#define ID_STEP_Y 3
|
||||
#define ID_STEP_Z 4
|
||||
#define ID_STEP_E0 5
|
||||
#define ID_STEP_E1 6
|
||||
#define ID_STEP_DOWN 7
|
||||
#define ID_STEP_UP 8
|
||||
|
||||
static void event_handler(lv_obj_t * obj, lv_event_t event) {
|
||||
switch (obj->mks_obj_id) {
|
||||
case ID_STEP_RETURN:
|
||||
if (event == LV_EVENT_CLICKED) {
|
||||
|
||||
}
|
||||
else if (event == LV_EVENT_RELEASED) {
|
||||
uiCfg.para_ui_page = 0;
|
||||
lv_clear_step_settings();
|
||||
draw_return_ui();
|
||||
}
|
||||
break;
|
||||
case ID_STEP_X:
|
||||
if (event == LV_EVENT_CLICKED) {
|
||||
|
||||
}
|
||||
else if (event == LV_EVENT_RELEASED) {
|
||||
value = Xstep;
|
||||
lv_clear_step_settings();
|
||||
lv_draw_number_key();
|
||||
}
|
||||
break;
|
||||
case ID_STEP_Y:
|
||||
if (event == LV_EVENT_CLICKED) {
|
||||
|
||||
}
|
||||
else if (event == LV_EVENT_RELEASED) {
|
||||
value = Ystep;
|
||||
lv_clear_step_settings();
|
||||
lv_draw_number_key();
|
||||
}
|
||||
break;
|
||||
case ID_STEP_Z:
|
||||
if (event == LV_EVENT_CLICKED) {
|
||||
|
||||
}
|
||||
else if (event == LV_EVENT_RELEASED) {
|
||||
value = Zstep;
|
||||
lv_clear_step_settings();
|
||||
lv_draw_number_key();
|
||||
}
|
||||
break;
|
||||
case ID_STEP_E0:
|
||||
if (event == LV_EVENT_CLICKED) {
|
||||
|
||||
}
|
||||
else if (event == LV_EVENT_RELEASED) {
|
||||
value = E0step;
|
||||
lv_clear_step_settings();
|
||||
lv_draw_number_key();
|
||||
}
|
||||
break;
|
||||
case ID_STEP_E1:
|
||||
if (event == LV_EVENT_CLICKED) {
|
||||
|
||||
}
|
||||
else if (event == LV_EVENT_RELEASED) {
|
||||
value = E1step;
|
||||
lv_clear_step_settings();
|
||||
lv_draw_number_key();
|
||||
}
|
||||
break;
|
||||
case ID_STEP_UP:
|
||||
if (event == LV_EVENT_CLICKED) {
|
||||
|
||||
}
|
||||
else if (event == LV_EVENT_RELEASED) {
|
||||
uiCfg.para_ui_page = 0;
|
||||
lv_clear_step_settings();
|
||||
lv_draw_step_settings();
|
||||
}
|
||||
break;
|
||||
case ID_STEP_DOWN:
|
||||
if (event == LV_EVENT_CLICKED) {
|
||||
|
||||
}
|
||||
else if (event == LV_EVENT_RELEASED) {
|
||||
uiCfg.para_ui_page = 1;
|
||||
lv_clear_step_settings();
|
||||
lv_draw_step_settings();
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
void lv_draw_step_settings(void) {
|
||||
lv_obj_t *buttonBack = NULL, *label_Back = NULL, *buttonTurnPage = NULL, *labelTurnPage = NULL;
|
||||
lv_obj_t *buttonXText = NULL, *labelXText = NULL, *buttonXValue = NULL, *labelXValue = NULL;
|
||||
lv_obj_t *buttonYText = NULL, *labelYText = NULL, *buttonYValue = NULL, *labelYValue = NULL;
|
||||
lv_obj_t *buttonZText = NULL, *labelZText = NULL, *buttonZValue = NULL, *labelZValue = NULL;
|
||||
lv_obj_t *buttonE0Text = NULL, *labelE0Text = NULL, *buttonE0Value = NULL, *labelE0Value = NULL;
|
||||
lv_obj_t *buttonE1Text = NULL, *labelE1Text = NULL, *buttonE1Value = NULL, *labelE1Value = NULL;
|
||||
lv_obj_t * line1 = NULL, * line2 = NULL, * line3 = NULL, * line4 = NULL;
|
||||
if (disp_state_stack._disp_state[disp_state_stack._disp_index] != STEPS_UI) {
|
||||
disp_state_stack._disp_index++;
|
||||
disp_state_stack._disp_state[disp_state_stack._disp_index] = STEPS_UI;
|
||||
}
|
||||
disp_state = STEPS_UI;
|
||||
|
||||
scr = lv_obj_create(NULL, NULL);
|
||||
|
||||
lv_obj_set_style(scr, &tft_style_scr);
|
||||
lv_scr_load(scr);
|
||||
lv_obj_clean(scr);
|
||||
|
||||
lv_obj_t * title = lv_label_create(scr, NULL);
|
||||
lv_obj_set_style(title, &tft_style_label_rel);
|
||||
lv_obj_set_pos(title, TITLE_XPOS, TITLE_YPOS);
|
||||
lv_label_set_text(title, machine_menu.StepsConfTitle);
|
||||
|
||||
lv_refr_now(lv_refr_get_disp_refreshing());
|
||||
|
||||
LV_IMG_DECLARE(bmp_para_back);
|
||||
// LV_IMG_DECLARE(bmp_para_arrow);
|
||||
LV_IMG_DECLARE(bmp_para_bank);
|
||||
|
||||
if (uiCfg.para_ui_page != 1) {
|
||||
buttonXText = lv_btn_create(scr, NULL); /*Add a button the current screen*/
|
||||
lv_obj_set_pos(buttonXText, PARA_UI_POS_X, PARA_UI_POS_Y); /*Set its position*/
|
||||
lv_obj_set_size(buttonXText, PARA_UI_VALUE_SIZE_X, PARA_UI_SIZE_Y); /*Set its size*/
|
||||
lv_obj_set_event_cb(buttonXText, event_handler);
|
||||
lv_btn_set_style(buttonXText, LV_BTN_STYLE_REL, &tft_style_label_rel); /*Set the button's released style*/
|
||||
lv_btn_set_style(buttonXText, LV_BTN_STYLE_PR, &tft_style_label_pre); /*Set the button's pressed style*/
|
||||
lv_btn_set_layout(buttonXText, LV_LAYOUT_OFF);
|
||||
labelXText = lv_label_create(buttonXText, NULL); /*Add a label to the button*/
|
||||
|
||||
buttonXValue = lv_imgbtn_create(scr, NULL);
|
||||
lv_obj_set_pos(buttonXValue, PARA_UI_VALUE_POS_X, PARA_UI_POS_Y + PARA_UI_VALUE_V);
|
||||
lv_obj_set_event_cb_mks(buttonXValue, event_handler, ID_STEP_X, "bmp_value_blank.bin", 0);
|
||||
lv_imgbtn_set_src(buttonXValue, LV_BTN_STATE_REL, &bmp_para_bank);
|
||||
lv_imgbtn_set_src(buttonXValue, LV_BTN_STATE_PR, &bmp_para_bank);
|
||||
lv_imgbtn_set_style(buttonXValue, LV_BTN_STATE_PR, &style_para_value_pre);
|
||||
lv_imgbtn_set_style(buttonXValue, LV_BTN_STATE_REL, &style_para_value_rel);
|
||||
lv_btn_set_layout(buttonXValue, LV_LAYOUT_OFF);
|
||||
labelXValue = lv_label_create(buttonXValue, NULL);
|
||||
|
||||
line1 = lv_line_create(scr, NULL);
|
||||
lv_ex_line(line1, line_points[0]);
|
||||
|
||||
buttonYText = lv_btn_create(scr, NULL); /*Add a button the current screen*/
|
||||
lv_obj_set_pos(buttonYText, PARA_UI_POS_X, PARA_UI_POS_Y * 2); /*Set its position*/
|
||||
lv_obj_set_size(buttonYText, PARA_UI_VALUE_SIZE_X, PARA_UI_SIZE_Y); /*Set its size*/
|
||||
lv_obj_set_event_cb(buttonYText, event_handler);
|
||||
lv_btn_set_style(buttonYText, LV_BTN_STYLE_REL, &tft_style_label_rel); /*Set the button's released style*/
|
||||
lv_btn_set_style(buttonYText, LV_BTN_STYLE_PR, &tft_style_label_pre); /*Set the button's pressed style*/
|
||||
lv_btn_set_layout(buttonYText, LV_LAYOUT_OFF);
|
||||
labelYText = lv_label_create(buttonYText, NULL); /*Add a label to the button*/
|
||||
|
||||
buttonYValue = lv_imgbtn_create(scr, NULL);
|
||||
lv_obj_set_pos(buttonYValue, PARA_UI_VALUE_POS_X, PARA_UI_POS_Y * 2 + PARA_UI_VALUE_V);
|
||||
lv_obj_set_event_cb_mks(buttonYValue, event_handler, ID_STEP_Y, "bmp_value_blank.bin", 0);
|
||||
lv_imgbtn_set_src(buttonYValue, LV_BTN_STATE_REL, &bmp_para_bank);
|
||||
lv_imgbtn_set_src(buttonYValue, LV_BTN_STATE_PR, &bmp_para_bank);
|
||||
lv_imgbtn_set_style(buttonYValue, LV_BTN_STATE_PR, &style_para_value_pre);
|
||||
lv_imgbtn_set_style(buttonYValue, LV_BTN_STATE_REL, &style_para_value_rel);
|
||||
lv_btn_set_layout(buttonYValue, LV_LAYOUT_OFF);
|
||||
labelYValue = lv_label_create(buttonYValue, NULL);
|
||||
|
||||
line2 = lv_line_create(scr, NULL);
|
||||
lv_ex_line(line2, line_points[1]);
|
||||
|
||||
buttonZText = lv_btn_create(scr, NULL); /*Add a button the current screen*/
|
||||
lv_obj_set_pos(buttonZText, PARA_UI_POS_X, PARA_UI_POS_Y * 3); /*Set its position*/
|
||||
lv_obj_set_size(buttonZText, PARA_UI_VALUE_SIZE_X, PARA_UI_SIZE_Y); /*Set its size*/
|
||||
lv_obj_set_event_cb(buttonZText, event_handler);
|
||||
lv_btn_set_style(buttonZText, LV_BTN_STYLE_REL, &tft_style_label_rel); /*Set the button's released style*/
|
||||
lv_btn_set_style(buttonZText, LV_BTN_STYLE_PR, &tft_style_label_pre); /*Set the button's pressed style*/
|
||||
lv_btn_set_layout(buttonZText, LV_LAYOUT_OFF);
|
||||
labelZText = lv_label_create(buttonZText, NULL); /*Add a label to the button*/
|
||||
|
||||
buttonZValue = lv_imgbtn_create(scr, NULL);
|
||||
lv_obj_set_pos(buttonZValue, PARA_UI_VALUE_POS_X, PARA_UI_POS_Y * 3 + PARA_UI_VALUE_V);
|
||||
lv_obj_set_event_cb_mks(buttonZValue, event_handler, ID_STEP_Z, "bmp_value_blank.bin", 0);
|
||||
lv_imgbtn_set_src(buttonZValue, LV_BTN_STATE_REL, &bmp_para_bank);
|
||||
lv_imgbtn_set_src(buttonZValue, LV_BTN_STATE_PR, &bmp_para_bank);
|
||||
lv_imgbtn_set_style(buttonZValue, LV_BTN_STATE_PR, &style_para_value_pre);
|
||||
lv_imgbtn_set_style(buttonZValue, LV_BTN_STATE_REL, &style_para_value_rel);
|
||||
lv_btn_set_layout(buttonZValue, LV_LAYOUT_OFF);
|
||||
labelZValue = lv_label_create(buttonZValue, NULL);
|
||||
|
||||
line3 = lv_line_create(scr, NULL);
|
||||
lv_ex_line(line3, line_points[2]);
|
||||
|
||||
buttonE0Text = lv_btn_create(scr, NULL); /*Add a button the current screen*/
|
||||
lv_obj_set_pos(buttonE0Text, PARA_UI_POS_X, PARA_UI_POS_Y * 4); /*Set its position*/
|
||||
lv_obj_set_size(buttonE0Text, PARA_UI_VALUE_SIZE_X, PARA_UI_SIZE_Y); /*Set its size*/
|
||||
lv_obj_set_event_cb(buttonE0Text, event_handler);
|
||||
lv_btn_set_style(buttonE0Text, LV_BTN_STYLE_REL, &tft_style_label_rel); /*Set the button's released style*/
|
||||
lv_btn_set_style(buttonE0Text, LV_BTN_STYLE_PR, &tft_style_label_pre); /*Set the button's pressed style*/
|
||||
lv_btn_set_layout(buttonE0Text, LV_LAYOUT_OFF);
|
||||
labelE0Text = lv_label_create(buttonE0Text, NULL); /*Add a label to the button*/
|
||||
|
||||
buttonE0Value = lv_imgbtn_create(scr, NULL);
|
||||
lv_obj_set_pos(buttonE0Value, PARA_UI_VALUE_POS_X, PARA_UI_POS_Y * 4 + PARA_UI_VALUE_V);
|
||||
lv_obj_set_event_cb_mks(buttonE0Value, event_handler, ID_STEP_E0, "bmp_value_blank.bin", 0);
|
||||
lv_imgbtn_set_src(buttonE0Value, LV_BTN_STATE_REL, &bmp_para_bank);
|
||||
lv_imgbtn_set_src(buttonE0Value, LV_BTN_STATE_PR, &bmp_para_bank);
|
||||
lv_imgbtn_set_style(buttonE0Value, LV_BTN_STATE_PR, &style_para_value_pre);
|
||||
lv_imgbtn_set_style(buttonE0Value, LV_BTN_STATE_REL, &style_para_value_rel);
|
||||
lv_btn_set_layout(buttonE0Value, LV_LAYOUT_OFF);
|
||||
labelE0Value = lv_label_create(buttonE0Value, NULL);
|
||||
|
||||
line4 = lv_line_create(scr, NULL);
|
||||
lv_ex_line(line4, line_points[3]);
|
||||
|
||||
buttonTurnPage = lv_imgbtn_create(scr, NULL);
|
||||
lv_obj_set_event_cb_mks(buttonTurnPage, event_handler, ID_STEP_DOWN, "bmp_back70x40.bin", 0);
|
||||
lv_imgbtn_set_src(buttonTurnPage, LV_BTN_STATE_REL, &bmp_para_back);
|
||||
lv_imgbtn_set_src(buttonTurnPage, LV_BTN_STATE_PR, &bmp_para_back);
|
||||
lv_imgbtn_set_style(buttonTurnPage, LV_BTN_STATE_PR, &tft_style_label_pre);
|
||||
lv_imgbtn_set_style(buttonTurnPage, LV_BTN_STATE_REL, &tft_style_label_rel);
|
||||
}
|
||||
else {
|
||||
buttonE1Text = lv_btn_create(scr, NULL); /*Add a button the current screen*/
|
||||
lv_obj_set_pos(buttonE1Text, PARA_UI_POS_X, PARA_UI_POS_Y); /*Set its position*/
|
||||
lv_obj_set_size(buttonE1Text, PARA_UI_VALUE_SIZE_X, PARA_UI_SIZE_Y); /*Set its size*/
|
||||
lv_obj_set_event_cb(buttonE1Text, event_handler);
|
||||
lv_btn_set_style(buttonE1Text, LV_BTN_STYLE_REL, &tft_style_label_rel); /*Set the button's released style*/
|
||||
lv_btn_set_style(buttonE1Text, LV_BTN_STYLE_PR, &tft_style_label_pre); /*Set the button's pressed style*/
|
||||
lv_btn_set_layout(buttonE1Text, LV_LAYOUT_OFF);
|
||||
labelE1Text = lv_label_create(buttonE1Text, NULL); /*Add a label to the button*/
|
||||
|
||||
buttonE1Value = lv_imgbtn_create(scr, NULL);
|
||||
lv_obj_set_pos(buttonE1Value, PARA_UI_VALUE_POS_X, PARA_UI_POS_Y + PARA_UI_VALUE_V);
|
||||
lv_obj_set_event_cb_mks(buttonE1Value, event_handler, ID_STEP_E1, "bmp_value_blank.bin", 0);
|
||||
lv_imgbtn_set_src(buttonE1Value, LV_BTN_STATE_REL, &bmp_para_bank);
|
||||
lv_imgbtn_set_src(buttonE1Value, LV_BTN_STATE_PR, &bmp_para_bank);
|
||||
lv_imgbtn_set_style(buttonE1Value, LV_BTN_STATE_PR, &style_para_value_pre);
|
||||
lv_imgbtn_set_style(buttonE1Value, LV_BTN_STATE_REL, &style_para_value_rel);
|
||||
lv_btn_set_layout(buttonE1Value, LV_LAYOUT_OFF);
|
||||
labelE1Value = lv_label_create(buttonE1Value, NULL);
|
||||
|
||||
line1 = lv_line_create(scr, NULL);
|
||||
lv_ex_line(line1, line_points[0]);
|
||||
|
||||
buttonTurnPage = lv_imgbtn_create(scr, NULL);
|
||||
lv_obj_set_event_cb_mks(buttonTurnPage, event_handler, ID_STEP_UP, "bmp_back70x40.bin", 0);
|
||||
lv_imgbtn_set_src(buttonTurnPage, LV_BTN_STATE_REL, &bmp_para_back);
|
||||
lv_imgbtn_set_src(buttonTurnPage, LV_BTN_STATE_PR, &bmp_para_back);
|
||||
lv_imgbtn_set_style(buttonTurnPage, LV_BTN_STATE_PR, &tft_style_label_pre);
|
||||
lv_imgbtn_set_style(buttonTurnPage, LV_BTN_STATE_REL, &tft_style_label_rel);
|
||||
}
|
||||
|
||||
lv_obj_set_pos(buttonTurnPage, PARA_UI_TURN_PAGE_POS_X, PARA_UI_TURN_PAGE_POS_Y);
|
||||
lv_btn_set_layout(buttonTurnPage, LV_LAYOUT_OFF);
|
||||
labelTurnPage = lv_label_create(buttonTurnPage, NULL);
|
||||
|
||||
buttonBack = lv_imgbtn_create(scr, NULL);
|
||||
lv_obj_set_event_cb_mks(buttonBack, event_handler, ID_STEP_RETURN, "bmp_back70x40.bin", 0);
|
||||
lv_imgbtn_set_src(buttonBack, LV_BTN_STATE_REL, &bmp_para_back);
|
||||
lv_imgbtn_set_src(buttonBack, LV_BTN_STATE_PR, &bmp_para_back);
|
||||
lv_imgbtn_set_style(buttonBack, LV_BTN_STATE_PR, &tft_style_label_pre);
|
||||
lv_imgbtn_set_style(buttonBack, LV_BTN_STATE_REL, &tft_style_label_rel);
|
||||
|
||||
lv_obj_set_pos(buttonBack, PARA_UI_BACL_POS_X, PARA_UI_BACL_POS_Y);
|
||||
lv_btn_set_layout(buttonBack, LV_LAYOUT_OFF);
|
||||
label_Back = lv_label_create(buttonBack, NULL);
|
||||
|
||||
if (gCfgItems.multiple_language != 0) {
|
||||
if (uiCfg.para_ui_page != 1) {
|
||||
lv_label_set_text(labelXText, machine_menu.X_Steps);
|
||||
lv_obj_align(labelXText, buttonXText, LV_ALIGN_IN_LEFT_MID, 0, 0);
|
||||
|
||||
lv_label_set_text(labelYText, machine_menu.Y_Steps);
|
||||
lv_obj_align(labelYText, buttonYText, LV_ALIGN_IN_LEFT_MID, 0, 0);
|
||||
|
||||
lv_label_set_text(labelZText, machine_menu.Z_Steps);
|
||||
lv_obj_align(labelZText, buttonZText, LV_ALIGN_IN_LEFT_MID, 0, 0);
|
||||
|
||||
lv_label_set_text(labelE0Text, machine_menu.E0_Steps);
|
||||
lv_obj_align(labelE0Text, buttonE0Text, LV_ALIGN_IN_LEFT_MID, 0, 0);
|
||||
|
||||
lv_label_set_text(labelTurnPage, machine_menu.next);
|
||||
lv_obj_align(labelTurnPage, buttonTurnPage, LV_ALIGN_CENTER, 0, 0);
|
||||
|
||||
ZERO(public_buf_l);
|
||||
sprintf_P(public_buf_l, PSTR("%.1f"), planner.settings.axis_steps_per_mm[X_AXIS]);
|
||||
lv_label_set_text(labelXValue, public_buf_l);
|
||||
lv_obj_align(labelXValue, buttonXValue, LV_ALIGN_CENTER, 0, 0);
|
||||
|
||||
ZERO(public_buf_l);
|
||||
sprintf_P(public_buf_l, PSTR("%.1f"), planner.settings.axis_steps_per_mm[Y_AXIS]);
|
||||
lv_label_set_text(labelYValue, public_buf_l);
|
||||
lv_obj_align(labelYValue, buttonYValue, LV_ALIGN_CENTER, 0, 0);
|
||||
|
||||
ZERO(public_buf_l);
|
||||
sprintf_P(public_buf_l, PSTR("%.1f"), planner.settings.axis_steps_per_mm[Z_AXIS]);
|
||||
lv_label_set_text(labelZValue, public_buf_l);
|
||||
lv_obj_align(labelZValue, buttonZValue, LV_ALIGN_CENTER, 0, 0);
|
||||
|
||||
ZERO(public_buf_l);
|
||||
sprintf_P(public_buf_l, PSTR("%.1f"), planner.settings.axis_steps_per_mm[E_AXIS]);
|
||||
lv_label_set_text(labelE0Value, public_buf_l);
|
||||
lv_obj_align(labelE0Value, buttonE0Value, LV_ALIGN_CENTER, 0, 0);
|
||||
}
|
||||
else {
|
||||
lv_label_set_text(labelE1Text, machine_menu.E1_Steps);
|
||||
lv_obj_align(labelE1Text, buttonE1Text, LV_ALIGN_IN_LEFT_MID, 0, 0);
|
||||
|
||||
lv_label_set_text(labelTurnPage, machine_menu.previous);
|
||||
lv_obj_align(labelTurnPage, buttonTurnPage, LV_ALIGN_CENTER, 0, 0);
|
||||
|
||||
ZERO(public_buf_l);
|
||||
sprintf_P(public_buf_l, PSTR("%.1f"), planner.settings.axis_steps_per_mm[E_AXIS_N(1)]);
|
||||
lv_label_set_text(labelE1Value, public_buf_l);
|
||||
lv_obj_align(labelE1Value, buttonE1Value, LV_ALIGN_CENTER, 0, 0);
|
||||
}
|
||||
|
||||
lv_label_set_text(label_Back, common_menu.text_back);
|
||||
lv_obj_align(label_Back, buttonBack, LV_ALIGN_CENTER, 0, 0);
|
||||
}
|
||||
}
|
||||
|
||||
void lv_clear_step_settings() { lv_obj_del(scr); }
|
||||
|
||||
#endif // HAS_TFT_LVGL_UI
|
33
Marlin/src/lcd/extui/lib/mks_ui/draw_step_settings.h
Normal file
33
Marlin/src/lcd/extui/lib/mks_ui/draw_step_settings.h
Normal file
|
@ -0,0 +1,33 @@
|
|||
/**
|
||||
* Marlin 3D Printer Firmware
|
||||
* Copyright (c) 2020 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
|
||||
*
|
||||
* Based on Sprinter and grbl.
|
||||
* Copyright (c) 2011 Camiel Gubbels / Erik van der Zalm
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*
|
||||
*/
|
||||
#pragma once
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" { /* C-declarations for C++ */
|
||||
#endif
|
||||
|
||||
extern void lv_draw_step_settings(void);
|
||||
extern void lv_clear_step_settings();
|
||||
|
||||
#ifdef __cplusplus
|
||||
} /* C-declarations for C++ */
|
||||
#endif
|
385
Marlin/src/lcd/extui/lib/mks_ui/draw_tmc_current_settings.cpp
Normal file
385
Marlin/src/lcd/extui/lib/mks_ui/draw_tmc_current_settings.cpp
Normal file
|
@ -0,0 +1,385 @@
|
|||
/**
|
||||
* Marlin 3D Printer Firmware
|
||||
* Copyright (c) 2020 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
|
||||
*
|
||||
* Based on Sprinter and grbl.
|
||||
* Copyright (c) 2011 Camiel Gubbels / Erik van der Zalm
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*
|
||||
*/
|
||||
#include "../../../../inc/MarlinConfigPre.h"
|
||||
|
||||
#if BOTH(HAS_TFT_LVGL_UI, HAS_TRINAMIC_CONFIG)
|
||||
|
||||
#include "lv_conf.h"
|
||||
#include "draw_ui.h"
|
||||
#include "../../../../MarlinCore.h"
|
||||
#include "../../../../module/planner.h"
|
||||
#include "../../../../module/stepper/indirection.h"
|
||||
#include "../../../../feature/tmc_util.h"
|
||||
|
||||
static lv_obj_t * scr;
|
||||
|
||||
#define ID_TMC_CURRENT_RETURN 1
|
||||
#define ID_TMC_CURRENT_X 2
|
||||
#define ID_TMC_CURRENT_Y 3
|
||||
#define ID_TMC_CURRENT_Z 4
|
||||
#define ID_TMC_CURRENT_E0 5
|
||||
#define ID_TMC_CURRENT_E1 6
|
||||
#define ID_TMC_CURRENT_DOWN 7
|
||||
#define ID_TMC_CURRENT_UP 8
|
||||
|
||||
static void event_handler(lv_obj_t * obj, lv_event_t event) {
|
||||
switch (obj->mks_obj_id) {
|
||||
case ID_TMC_CURRENT_RETURN:
|
||||
if (event == LV_EVENT_CLICKED) {
|
||||
|
||||
}
|
||||
else if (event == LV_EVENT_RELEASED) {
|
||||
uiCfg.para_ui_page = 0;
|
||||
lv_clear_tmc_current_settings();
|
||||
draw_return_ui();
|
||||
}
|
||||
break;
|
||||
case ID_TMC_CURRENT_X:
|
||||
if (event == LV_EVENT_CLICKED) {
|
||||
|
||||
}
|
||||
else if (event == LV_EVENT_RELEASED) {
|
||||
value = Xcurrent;
|
||||
lv_clear_tmc_current_settings();
|
||||
lv_draw_number_key();
|
||||
}
|
||||
break;
|
||||
case ID_TMC_CURRENT_Y:
|
||||
if (event == LV_EVENT_CLICKED) {
|
||||
|
||||
}
|
||||
else if (event == LV_EVENT_RELEASED) {
|
||||
value = Ycurrent;
|
||||
lv_clear_tmc_current_settings();
|
||||
lv_draw_number_key();
|
||||
}
|
||||
break;
|
||||
case ID_TMC_CURRENT_Z:
|
||||
if (event == LV_EVENT_CLICKED) {
|
||||
|
||||
}
|
||||
else if (event == LV_EVENT_RELEASED) {
|
||||
value = Zcurrent;
|
||||
lv_clear_tmc_current_settings();
|
||||
lv_draw_number_key();
|
||||
}
|
||||
break;
|
||||
case ID_TMC_CURRENT_E0:
|
||||
if (event == LV_EVENT_CLICKED) {
|
||||
|
||||
}
|
||||
else if (event == LV_EVENT_RELEASED) {
|
||||
value = E0current;
|
||||
lv_clear_tmc_current_settings();
|
||||
lv_draw_number_key();
|
||||
}
|
||||
break;
|
||||
#if AXIS_IS_TMC(E1)
|
||||
case ID_TMC_CURRENT_E1:
|
||||
if (event == LV_EVENT_CLICKED) {
|
||||
|
||||
}
|
||||
else if (event == LV_EVENT_RELEASED) {
|
||||
value = E1current;
|
||||
lv_clear_tmc_current_settings();
|
||||
lv_draw_number_key();
|
||||
}
|
||||
break;
|
||||
|
||||
case ID_TMC_CURRENT_UP:
|
||||
if (event == LV_EVENT_CLICKED) {
|
||||
|
||||
}
|
||||
else if (event == LV_EVENT_RELEASED) {
|
||||
uiCfg.para_ui_page = 0;
|
||||
lv_clear_tmc_current_settings();
|
||||
lv_draw_tmc_current_settings();
|
||||
}
|
||||
break;
|
||||
case ID_TMC_CURRENT_DOWN:
|
||||
if (event == LV_EVENT_CLICKED) {
|
||||
|
||||
}
|
||||
else if (event == LV_EVENT_RELEASED) {
|
||||
uiCfg.para_ui_page = 1;
|
||||
lv_clear_tmc_current_settings();
|
||||
lv_draw_tmc_current_settings();
|
||||
}
|
||||
break;
|
||||
#endif
|
||||
}
|
||||
}
|
||||
|
||||
void lv_draw_tmc_current_settings(void) {
|
||||
lv_obj_t *buttonBack = NULL, *label_Back = NULL;
|
||||
lv_obj_t *buttonXText = NULL, *labelXText = NULL, *buttonXValue = NULL, *labelXValue = NULL;
|
||||
lv_obj_t *buttonYText = NULL, *labelYText = NULL, *buttonYValue = NULL, *labelYValue = NULL;
|
||||
lv_obj_t *buttonZText = NULL, *labelZText = NULL, *buttonZValue = NULL, *labelZValue = NULL;
|
||||
lv_obj_t *buttonE0Text = NULL, *labelE0Text = NULL, *buttonE0Value = NULL, *labelE0Value = NULL;
|
||||
|
||||
lv_obj_t * line1 = NULL, * line2 = NULL, * line3 = NULL, * line4 = NULL;
|
||||
#if AXIS_IS_TMC(E1)
|
||||
lv_obj_t *buttonTurnPage = NULL, *labelTurnPage = NULL;
|
||||
lv_obj_t *buttonE1Text = NULL, *labelE1Text = NULL, *buttonE1Value = NULL, *labelE1Value = NULL;
|
||||
#endif
|
||||
float milliamps;
|
||||
|
||||
if (disp_state_stack._disp_state[disp_state_stack._disp_index] != TMC_CURRENT_UI) {
|
||||
disp_state_stack._disp_index++;
|
||||
disp_state_stack._disp_state[disp_state_stack._disp_index] = TMC_CURRENT_UI;
|
||||
}
|
||||
disp_state = TMC_CURRENT_UI;
|
||||
|
||||
scr = lv_obj_create(NULL, NULL);
|
||||
|
||||
lv_obj_set_style(scr, &tft_style_scr);
|
||||
lv_scr_load(scr);
|
||||
lv_obj_clean(scr);
|
||||
|
||||
lv_obj_t * title = lv_label_create(scr, NULL);
|
||||
lv_obj_set_style(title, &tft_style_label_rel);
|
||||
lv_obj_set_pos(title, TITLE_XPOS, TITLE_YPOS);
|
||||
lv_label_set_text(title, machine_menu.TmcCurrentConfTitle);
|
||||
|
||||
lv_refr_now(lv_refr_get_disp_refreshing());
|
||||
|
||||
LV_IMG_DECLARE(bmp_para_back);
|
||||
// LV_IMG_DECLARE(bmp_para_arrow);
|
||||
LV_IMG_DECLARE(bmp_para_bank);
|
||||
|
||||
if (uiCfg.para_ui_page != 1) {
|
||||
buttonXText = lv_btn_create(scr, NULL); /*Add a button the current screen*/
|
||||
lv_obj_set_pos(buttonXText, PARA_UI_POS_X, PARA_UI_POS_Y); /*Set its position*/
|
||||
lv_obj_set_size(buttonXText, PARA_UI_VALUE_SIZE_X, PARA_UI_SIZE_Y); /*Set its size*/
|
||||
lv_obj_set_event_cb(buttonXText, event_handler);
|
||||
lv_btn_set_style(buttonXText, LV_BTN_STYLE_REL, &tft_style_label_rel); /*Set the button's released style*/
|
||||
lv_btn_set_style(buttonXText, LV_BTN_STYLE_PR, &tft_style_label_pre); /*Set the button's pressed style*/
|
||||
lv_btn_set_layout(buttonXText, LV_LAYOUT_OFF);
|
||||
labelXText = lv_label_create(buttonXText, NULL); /*Add a label to the button*/
|
||||
|
||||
buttonXValue = lv_imgbtn_create(scr, NULL);
|
||||
lv_obj_set_pos(buttonXValue, PARA_UI_VALUE_POS_X, PARA_UI_POS_Y + PARA_UI_VALUE_V);
|
||||
lv_obj_set_event_cb_mks(buttonXValue, event_handler, ID_TMC_CURRENT_X, "bmp_value_blank.bin", 0);
|
||||
lv_imgbtn_set_src(buttonXValue, LV_BTN_STATE_REL, &bmp_para_bank);
|
||||
lv_imgbtn_set_src(buttonXValue, LV_BTN_STATE_PR, &bmp_para_bank);
|
||||
lv_imgbtn_set_style(buttonXValue, LV_BTN_STATE_PR, &style_para_value_pre);
|
||||
lv_imgbtn_set_style(buttonXValue, LV_BTN_STATE_REL, &style_para_value_rel);
|
||||
lv_btn_set_layout(buttonXValue, LV_LAYOUT_OFF);
|
||||
labelXValue = lv_label_create(buttonXValue, NULL);
|
||||
|
||||
line1 = lv_line_create(scr, NULL);
|
||||
lv_ex_line(line1, line_points[0]);
|
||||
|
||||
buttonYText = lv_btn_create(scr, NULL); /*Add a button the current screen*/
|
||||
lv_obj_set_pos(buttonYText, PARA_UI_POS_X, PARA_UI_POS_Y * 2); /*Set its position*/
|
||||
lv_obj_set_size(buttonYText, PARA_UI_VALUE_SIZE_X, PARA_UI_SIZE_Y); /*Set its size*/
|
||||
lv_obj_set_event_cb(buttonYText, event_handler);
|
||||
lv_btn_set_style(buttonYText, LV_BTN_STYLE_REL, &tft_style_label_rel); /*Set the button's released style*/
|
||||
lv_btn_set_style(buttonYText, LV_BTN_STYLE_PR, &tft_style_label_pre); /*Set the button's pressed style*/
|
||||
lv_btn_set_layout(buttonYText, LV_LAYOUT_OFF);
|
||||
labelYText = lv_label_create(buttonYText, NULL); /*Add a label to the button*/
|
||||
|
||||
buttonYValue = lv_imgbtn_create(scr, NULL);
|
||||
lv_obj_set_pos(buttonYValue, PARA_UI_VALUE_POS_X, PARA_UI_POS_Y * 2 + PARA_UI_VALUE_V);
|
||||
lv_obj_set_event_cb_mks(buttonYValue, event_handler, ID_TMC_CURRENT_Y, "bmp_value_blank.bin", 0);
|
||||
lv_imgbtn_set_src(buttonYValue, LV_BTN_STATE_REL, &bmp_para_bank);
|
||||
lv_imgbtn_set_src(buttonYValue, LV_BTN_STATE_PR, &bmp_para_bank);
|
||||
lv_imgbtn_set_style(buttonYValue, LV_BTN_STATE_PR, &style_para_value_pre);
|
||||
lv_imgbtn_set_style(buttonYValue, LV_BTN_STATE_REL, &style_para_value_rel);
|
||||
lv_btn_set_layout(buttonYValue, LV_LAYOUT_OFF);
|
||||
labelYValue = lv_label_create(buttonYValue, NULL);
|
||||
|
||||
line2 = lv_line_create(scr, NULL);
|
||||
lv_ex_line(line2, line_points[1]);
|
||||
|
||||
buttonZText = lv_btn_create(scr, NULL); /*Add a button the current screen*/
|
||||
lv_obj_set_pos(buttonZText, PARA_UI_POS_X, PARA_UI_POS_Y * 3); /*Set its position*/
|
||||
lv_obj_set_size(buttonZText, PARA_UI_VALUE_SIZE_X, PARA_UI_SIZE_Y); /*Set its size*/
|
||||
lv_obj_set_event_cb(buttonZText, event_handler);
|
||||
lv_btn_set_style(buttonZText, LV_BTN_STYLE_REL, &tft_style_label_rel); /*Set the button's released style*/
|
||||
lv_btn_set_style(buttonZText, LV_BTN_STYLE_PR, &tft_style_label_pre); /*Set the button's pressed style*/
|
||||
lv_btn_set_layout(buttonZText, LV_LAYOUT_OFF);
|
||||
labelZText = lv_label_create(buttonZText, NULL); /*Add a label to the button*/
|
||||
|
||||
buttonZValue = lv_imgbtn_create(scr, NULL);
|
||||
lv_obj_set_pos(buttonZValue, PARA_UI_VALUE_POS_X, PARA_UI_POS_Y * 3 + PARA_UI_VALUE_V);
|
||||
lv_obj_set_event_cb_mks(buttonZValue, event_handler, ID_TMC_CURRENT_Z, "bmp_value_blank.bin", 0);
|
||||
lv_imgbtn_set_src(buttonZValue, LV_BTN_STATE_REL, &bmp_para_bank);
|
||||
lv_imgbtn_set_src(buttonZValue, LV_BTN_STATE_PR, &bmp_para_bank);
|
||||
lv_imgbtn_set_style(buttonZValue, LV_BTN_STATE_PR, &style_para_value_pre);
|
||||
lv_imgbtn_set_style(buttonZValue, LV_BTN_STATE_REL, &style_para_value_rel);
|
||||
lv_btn_set_layout(buttonZValue, LV_LAYOUT_OFF);
|
||||
labelZValue = lv_label_create(buttonZValue, NULL);
|
||||
|
||||
line3 = lv_line_create(scr, NULL);
|
||||
lv_ex_line(line3, line_points[2]);
|
||||
|
||||
buttonE0Text = lv_btn_create(scr, NULL); /*Add a button the current screen*/
|
||||
lv_obj_set_pos(buttonE0Text, PARA_UI_POS_X, PARA_UI_POS_Y * 4); /*Set its position*/
|
||||
lv_obj_set_size(buttonE0Text, PARA_UI_VALUE_SIZE_X, PARA_UI_SIZE_Y); /*Set its size*/
|
||||
lv_obj_set_event_cb(buttonE0Text, event_handler);
|
||||
lv_btn_set_style(buttonE0Text, LV_BTN_STYLE_REL, &tft_style_label_rel); /*Set the button's released style*/
|
||||
lv_btn_set_style(buttonE0Text, LV_BTN_STYLE_PR, &tft_style_label_pre); /*Set the button's pressed style*/
|
||||
lv_btn_set_layout(buttonE0Text, LV_LAYOUT_OFF);
|
||||
labelE0Text = lv_label_create(buttonE0Text, NULL); /*Add a label to the button*/
|
||||
|
||||
buttonE0Value = lv_imgbtn_create(scr, NULL);
|
||||
lv_obj_set_pos(buttonE0Value, PARA_UI_VALUE_POS_X, PARA_UI_POS_Y * 4 + PARA_UI_VALUE_V);
|
||||
lv_obj_set_event_cb_mks(buttonE0Value, event_handler, ID_TMC_CURRENT_E0, "bmp_value_blank.bin", 0);
|
||||
lv_imgbtn_set_src(buttonE0Value, LV_BTN_STATE_REL, &bmp_para_bank);
|
||||
lv_imgbtn_set_src(buttonE0Value, LV_BTN_STATE_PR, &bmp_para_bank);
|
||||
lv_imgbtn_set_style(buttonE0Value, LV_BTN_STATE_PR, &style_para_value_pre);
|
||||
lv_imgbtn_set_style(buttonE0Value, LV_BTN_STATE_REL, &style_para_value_rel);
|
||||
lv_btn_set_layout(buttonE0Value, LV_LAYOUT_OFF);
|
||||
labelE0Value = lv_label_create(buttonE0Value, NULL);
|
||||
|
||||
line4 = lv_line_create(scr, NULL);
|
||||
lv_ex_line(line4, line_points[3]);
|
||||
|
||||
#if AXIS_IS_TMC(E1)
|
||||
buttonTurnPage = lv_imgbtn_create(scr, NULL);
|
||||
lv_obj_set_event_cb_mks(buttonTurnPage, event_handler, ID_TMC_CURRENT_DOWN, "bmp_back70x40.bin", 0);
|
||||
lv_imgbtn_set_src(buttonTurnPage, LV_BTN_STATE_REL, &bmp_para_back);
|
||||
lv_imgbtn_set_src(buttonTurnPage, LV_BTN_STATE_PR, &bmp_para_back);
|
||||
lv_imgbtn_set_style(buttonTurnPage, LV_BTN_STATE_PR, &tft_style_label_pre);
|
||||
lv_imgbtn_set_style(buttonTurnPage, LV_BTN_STATE_REL, &tft_style_label_rel);
|
||||
#endif
|
||||
}
|
||||
else {
|
||||
#if AXIS_IS_TMC(E1)
|
||||
buttonE1Text = lv_btn_create(scr, NULL); /*Add a button the current screen*/
|
||||
lv_obj_set_pos(buttonE1Text, PARA_UI_POS_X, PARA_UI_POS_Y); /*Set its position*/
|
||||
lv_obj_set_size(buttonE1Text, PARA_UI_VALUE_SIZE_X, PARA_UI_SIZE_Y); /*Set its size*/
|
||||
lv_obj_set_event_cb(buttonE1Text, event_handler);
|
||||
lv_btn_set_style(buttonE1Text, LV_BTN_STYLE_REL, &tft_style_label_rel); /*Set the button's released style*/
|
||||
lv_btn_set_style(buttonE1Text, LV_BTN_STYLE_PR, &tft_style_label_pre); /*Set the button's pressed style*/
|
||||
lv_btn_set_layout(buttonE1Text, LV_LAYOUT_OFF);
|
||||
labelE1Text = lv_label_create(buttonE1Text, NULL); /*Add a label to the button*/
|
||||
|
||||
buttonE1Value = lv_imgbtn_create(scr, NULL);
|
||||
lv_obj_set_pos(buttonE1Value, PARA_UI_VALUE_POS_X, PARA_UI_POS_Y + PARA_UI_VALUE_V);
|
||||
lv_obj_set_event_cb_mks(buttonE1Value, event_handler, ID_TMC_CURRENT_E1, "bmp_value_blank.bin", 0);
|
||||
lv_imgbtn_set_src(buttonE1Value, LV_BTN_STATE_REL, &bmp_para_bank);
|
||||
lv_imgbtn_set_src(buttonE1Value, LV_BTN_STATE_PR, &bmp_para_bank);
|
||||
lv_imgbtn_set_style(buttonE1Value, LV_BTN_STATE_PR, &style_para_value_pre);
|
||||
lv_imgbtn_set_style(buttonE1Value, LV_BTN_STATE_REL, &style_para_value_rel);
|
||||
lv_btn_set_layout(buttonE1Value, LV_LAYOUT_OFF);
|
||||
labelE1Value = lv_label_create(buttonE1Value, NULL);
|
||||
|
||||
line1 = lv_line_create(scr, NULL);
|
||||
lv_ex_line(line1, line_points[0]);
|
||||
|
||||
buttonTurnPage = lv_imgbtn_create(scr, NULL);
|
||||
lv_obj_set_event_cb_mks(buttonTurnPage, event_handler, ID_TMC_CURRENT_UP, "bmp_back70x40.bin", 0);
|
||||
lv_imgbtn_set_src(buttonTurnPage, LV_BTN_STATE_REL, &bmp_para_back);
|
||||
lv_imgbtn_set_src(buttonTurnPage, LV_BTN_STATE_PR, &bmp_para_back);
|
||||
lv_imgbtn_set_style(buttonTurnPage, LV_BTN_STATE_PR, &tft_style_label_pre);
|
||||
lv_imgbtn_set_style(buttonTurnPage, LV_BTN_STATE_REL, &tft_style_label_rel);
|
||||
#endif
|
||||
}
|
||||
#if AXIS_IS_TMC(E1)
|
||||
lv_obj_set_pos(buttonTurnPage, PARA_UI_TURN_PAGE_POS_X, PARA_UI_TURN_PAGE_POS_Y);
|
||||
lv_btn_set_layout(buttonTurnPage, LV_LAYOUT_OFF);
|
||||
labelTurnPage = lv_label_create(buttonTurnPage, NULL);
|
||||
#endif
|
||||
|
||||
buttonBack = lv_imgbtn_create(scr, NULL);
|
||||
lv_obj_set_event_cb_mks(buttonBack, event_handler, ID_TMC_CURRENT_RETURN, "bmp_back70x40.bin", 0);
|
||||
lv_imgbtn_set_src(buttonBack, LV_BTN_STATE_REL, &bmp_para_back);
|
||||
lv_imgbtn_set_src(buttonBack, LV_BTN_STATE_PR, &bmp_para_back);
|
||||
lv_imgbtn_set_style(buttonBack, LV_BTN_STATE_PR, &tft_style_label_pre);
|
||||
lv_imgbtn_set_style(buttonBack, LV_BTN_STATE_REL, &tft_style_label_rel);
|
||||
|
||||
lv_obj_set_pos(buttonBack, PARA_UI_BACL_POS_X, PARA_UI_BACL_POS_Y);
|
||||
lv_btn_set_layout(buttonBack, LV_LAYOUT_OFF);
|
||||
label_Back = lv_label_create(buttonBack, NULL);
|
||||
|
||||
if (gCfgItems.multiple_language != 0) {
|
||||
if (uiCfg.para_ui_page != 1) {
|
||||
lv_label_set_text(labelXText, machine_menu.X_Current);
|
||||
lv_obj_align(labelXText, buttonXText, LV_ALIGN_IN_LEFT_MID, 0, 0);
|
||||
|
||||
lv_label_set_text(labelYText, machine_menu.Y_Current);
|
||||
lv_obj_align(labelYText, buttonYText, LV_ALIGN_IN_LEFT_MID, 0, 0);
|
||||
|
||||
lv_label_set_text(labelZText, machine_menu.Z_Current);
|
||||
lv_obj_align(labelZText, buttonZText, LV_ALIGN_IN_LEFT_MID, 0, 0);
|
||||
|
||||
lv_label_set_text(labelE0Text, machine_menu.E0_Current);
|
||||
lv_obj_align(labelE0Text, buttonE0Text, LV_ALIGN_IN_LEFT_MID, 0, 0);
|
||||
#if AXIS_IS_TMC(E1)
|
||||
lv_label_set_text(labelTurnPage, machine_menu.next);
|
||||
lv_obj_align(labelTurnPage, buttonTurnPage, LV_ALIGN_CENTER, 0, 0);
|
||||
#endif
|
||||
#if AXIS_IS_TMC(X)
|
||||
milliamps = stepperX.getMilliamps();
|
||||
ZERO(public_buf_l);
|
||||
sprintf_P(public_buf_l, PSTR("%.1f"), milliamps);
|
||||
lv_label_set_text(labelXValue, public_buf_l);
|
||||
lv_obj_align(labelXValue, buttonXValue, LV_ALIGN_CENTER, 0, 0);
|
||||
#endif
|
||||
#if AXIS_IS_TMC(Y)
|
||||
milliamps = stepperY.getMilliamps();
|
||||
ZERO(public_buf_l);
|
||||
sprintf_P(public_buf_l, PSTR("%.1f"), milliamps);
|
||||
lv_label_set_text(labelYValue, public_buf_l);
|
||||
lv_obj_align(labelYValue, buttonYValue, LV_ALIGN_CENTER, 0, 0);
|
||||
#endif
|
||||
#if AXIS_IS_TMC(Z)
|
||||
milliamps = stepperZ.getMilliamps();
|
||||
ZERO(public_buf_l);
|
||||
sprintf_P(public_buf_l, PSTR("%.1f"), milliamps);
|
||||
lv_label_set_text(labelZValue, public_buf_l);
|
||||
lv_obj_align(labelZValue, buttonZValue, LV_ALIGN_CENTER, 0, 0);
|
||||
#endif
|
||||
#if AXIS_IS_TMC(E0)
|
||||
milliamps = stepperE0.getMilliamps();
|
||||
ZERO(public_buf_l);
|
||||
sprintf_P(public_buf_l, PSTR("%.1f"), milliamps);
|
||||
lv_label_set_text(labelE0Value, public_buf_l);
|
||||
lv_obj_align(labelE0Value, buttonE0Value, LV_ALIGN_CENTER, 0, 0);
|
||||
#endif
|
||||
}
|
||||
else {
|
||||
#if AXIS_IS_TMC(E1)
|
||||
lv_label_set_text(labelE1Text, machine_menu.E1_Current);
|
||||
lv_obj_align(labelE1Text, buttonE1Text, LV_ALIGN_IN_LEFT_MID, 0, 0);
|
||||
|
||||
lv_label_set_text(labelTurnPage, machine_menu.previous);
|
||||
lv_obj_align(labelTurnPage, buttonTurnPage, LV_ALIGN_CENTER, 0, 0);
|
||||
|
||||
milliamps = stepperE1.getMilliamps();
|
||||
ZERO(public_buf_l);
|
||||
sprintf_P(public_buf_l, PSTR("%.1f"), milliamps);
|
||||
lv_label_set_text(labelE1Value, public_buf_l);
|
||||
lv_obj_align(labelE1Value, buttonE1Value, LV_ALIGN_CENTER, 0, 0);
|
||||
#endif
|
||||
}
|
||||
|
||||
lv_label_set_text(label_Back, common_menu.text_back);
|
||||
lv_obj_align(label_Back, buttonBack, LV_ALIGN_CENTER, 0, 0);
|
||||
}
|
||||
}
|
||||
|
||||
void lv_clear_tmc_current_settings() { lv_obj_del(scr); }
|
||||
|
||||
#endif // HAS_TFT_LVGL_UI && HAS_TRINAMIC_CONFIG
|
34
Marlin/src/lcd/extui/lib/mks_ui/draw_tmc_current_settings.h
Normal file
34
Marlin/src/lcd/extui/lib/mks_ui/draw_tmc_current_settings.h
Normal file
|
@ -0,0 +1,34 @@
|
|||
/**
|
||||
* Marlin 3D Printer Firmware
|
||||
* Copyright (c) 2020 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
|
||||
*
|
||||
* Based on Sprinter and grbl.
|
||||
* Copyright (c) 2011 Camiel Gubbels / Erik van der Zalm
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*
|
||||
*/
|
||||
#pragma once
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" { /* C-declarations for C++ */
|
||||
#endif
|
||||
|
||||
extern void lv_draw_tmc_current_settings(void);
|
||||
extern void lv_clear_tmc_current_settings();
|
||||
|
||||
#ifdef __cplusplus
|
||||
} /* C-declarations for C++ */
|
||||
#endif
|
||||
|
478
Marlin/src/lcd/extui/lib/mks_ui/draw_tmc_step_mode_settings.cpp
Normal file
478
Marlin/src/lcd/extui/lib/mks_ui/draw_tmc_step_mode_settings.cpp
Normal file
|
@ -0,0 +1,478 @@
|
|||
/**
|
||||
* Marlin 3D Printer Firmware
|
||||
* Copyright (c) 2020 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
|
||||
*
|
||||
* Based on Sprinter and grbl.
|
||||
* Copyright (c) 2011 Camiel Gubbels / Erik van der Zalm
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*
|
||||
*/
|
||||
#include "../../../../inc/MarlinConfigPre.h"
|
||||
|
||||
#if BOTH(HAS_TFT_LVGL_UI, HAS_STEALTHCHOP)
|
||||
|
||||
#include "lv_conf.h"
|
||||
#include "draw_ui.h"
|
||||
|
||||
#include "../../../../MarlinCore.h"
|
||||
#include "../../../../module/planner.h"
|
||||
#include "../../../../module/stepper/indirection.h"
|
||||
#include "../../../../feature/tmc_util.h"
|
||||
#include "../../../../gcode/gcode.h"
|
||||
#include "../../../../module/planner.h"
|
||||
|
||||
static lv_obj_t * scr;
|
||||
|
||||
#define ID_TMC_MODE_RETURN 1
|
||||
#define ID_TMC_MODE_X 2
|
||||
#define ID_TMC_MODE_Y 3
|
||||
#define ID_TMC_MODE_Z 4
|
||||
#define ID_TMC_MODE_E0 5
|
||||
#define ID_TMC_MODE_E1 6
|
||||
#define ID_TMC_MODE_DOWN 7
|
||||
#define ID_TMC_MODE_UP 8
|
||||
|
||||
static lv_obj_t *labelXState = NULL, *labelYState = NULL, *labelZState = NULL, *labelE0State = NULL;
|
||||
static lv_obj_t *buttonXState = NULL, *buttonYState = NULL, *buttonZState = NULL, *buttonE0State = NULL;
|
||||
|
||||
#if AXIS_HAS_STEALTHCHOP(E1)
|
||||
static lv_obj_t *labelE1State = NULL, *buttonE1State = NULL;
|
||||
#endif
|
||||
|
||||
static void event_handler(lv_obj_t * obj, lv_event_t event) {
|
||||
switch (obj->mks_obj_id) {
|
||||
case ID_TMC_MODE_RETURN:
|
||||
if (event == LV_EVENT_CLICKED) {
|
||||
|
||||
}
|
||||
else if (event == LV_EVENT_RELEASED) {
|
||||
uiCfg.para_ui_page = 0;
|
||||
lv_clear_tmc_step_mode_settings();
|
||||
draw_return_ui();
|
||||
}
|
||||
break;
|
||||
case ID_TMC_MODE_X:
|
||||
if (event == LV_EVENT_CLICKED) {
|
||||
|
||||
}
|
||||
else if (event == LV_EVENT_RELEASED) {
|
||||
if (stepperX.stored.stealthChop_enabled == true) {
|
||||
stepperX.stored.stealthChop_enabled = false;
|
||||
stepperX.refresh_stepping_mode();
|
||||
lv_obj_set_event_cb_mks(buttonXState, event_handler, ID_TMC_MODE_X, "bmp_disable.bin", 0);
|
||||
lv_label_set_text(labelXState, machine_menu.disable);
|
||||
// lv_obj_align(labelXState, buttonE1State, LV_ALIGN_IN_LEFT_MID,0, 0);
|
||||
// gcode.process_subcommands_now_P(PSTR("M500"));
|
||||
}
|
||||
else {
|
||||
stepperX.stored.stealthChop_enabled = true;
|
||||
stepperX.refresh_stepping_mode();
|
||||
lv_obj_set_event_cb_mks(buttonXState, event_handler, ID_TMC_MODE_X, "bmp_enable.bin", 0);
|
||||
lv_label_set_text(labelXState, machine_menu.enable);
|
||||
// gcode.process_subcommands_now_P(PSTR("M500"));
|
||||
}
|
||||
gcode.process_subcommands_now_P(PSTR("M500"));
|
||||
}
|
||||
break;
|
||||
case ID_TMC_MODE_Y:
|
||||
if (event == LV_EVENT_CLICKED) {
|
||||
|
||||
}
|
||||
else if (event == LV_EVENT_RELEASED) {
|
||||
if (stepperY.stored.stealthChop_enabled == true) {
|
||||
stepperY.stored.stealthChop_enabled = false;
|
||||
stepperY.refresh_stepping_mode();
|
||||
lv_obj_set_event_cb_mks(buttonYState, event_handler, ID_TMC_MODE_Y, "bmp_disable.bin", 0);
|
||||
lv_label_set_text(labelYState, machine_menu.disable);
|
||||
// lv_obj_align(labelXState, buttonE1State, LV_ALIGN_IN_LEFT_MID,0, 0);
|
||||
}
|
||||
else {
|
||||
stepperY.stored.stealthChop_enabled = true;
|
||||
stepperY.refresh_stepping_mode();
|
||||
lv_obj_set_event_cb_mks(buttonYState, event_handler, ID_TMC_MODE_Y, "bmp_enable.bin", 0);
|
||||
lv_label_set_text(labelYState, machine_menu.enable);
|
||||
}
|
||||
gcode.process_subcommands_now_P(PSTR("M500"));
|
||||
}
|
||||
break;
|
||||
case ID_TMC_MODE_Z:
|
||||
if (event == LV_EVENT_CLICKED) {
|
||||
|
||||
}
|
||||
else if (event == LV_EVENT_RELEASED) {
|
||||
if (stepperZ.stored.stealthChop_enabled == true) {
|
||||
stepperZ.stored.stealthChop_enabled = false;
|
||||
stepperZ.refresh_stepping_mode();
|
||||
lv_obj_set_event_cb_mks(buttonZState, event_handler, ID_TMC_MODE_Z, "bmp_disable.bin", 0);
|
||||
lv_label_set_text(labelZState, machine_menu.disable);
|
||||
// lv_obj_align(labelXState, buttonE1State, LV_ALIGN_IN_LEFT_MID,0, 0);
|
||||
}
|
||||
else {
|
||||
stepperZ.stored.stealthChop_enabled = true;
|
||||
stepperZ.refresh_stepping_mode();
|
||||
lv_obj_set_event_cb_mks(buttonZState, event_handler, ID_TMC_MODE_Z, "bmp_enable.bin", 0);
|
||||
lv_label_set_text(labelZState, machine_menu.enable);
|
||||
}
|
||||
gcode.process_subcommands_now_P(PSTR("M500"));
|
||||
}
|
||||
break;
|
||||
case ID_TMC_MODE_E0:
|
||||
if (event == LV_EVENT_CLICKED) {
|
||||
|
||||
}
|
||||
else if (event == LV_EVENT_RELEASED) {
|
||||
if (stepperE0.stored.stealthChop_enabled == true) {
|
||||
stepperE0.stored.stealthChop_enabled = false;
|
||||
stepperE0.refresh_stepping_mode();
|
||||
lv_obj_set_event_cb_mks(buttonE0State, event_handler, ID_TMC_MODE_E0, "bmp_disable.bin", 0);
|
||||
lv_label_set_text(labelE0State, machine_menu.disable);
|
||||
// lv_obj_align(labelXState, buttonE1State, LV_ALIGN_IN_LEFT_MID,0, 0);
|
||||
}
|
||||
else {
|
||||
stepperE0.stored.stealthChop_enabled = true;
|
||||
stepperE0.refresh_stepping_mode();
|
||||
lv_obj_set_event_cb_mks(buttonE0State, event_handler, ID_TMC_MODE_E0, "bmp_enable.bin", 0);
|
||||
lv_label_set_text(labelE0State, machine_menu.enable);
|
||||
}
|
||||
gcode.process_subcommands_now_P(PSTR("M500"));
|
||||
}
|
||||
break;
|
||||
#if AXIS_HAS_STEALTHCHOP(E1)
|
||||
case ID_TMC_MODE_E1:
|
||||
if (event == LV_EVENT_CLICKED) {
|
||||
|
||||
}
|
||||
else if (event == LV_EVENT_RELEASED) {
|
||||
if (stepperE1.stored.stealthChop_enabled == true) {
|
||||
stepperE1.stored.stealthChop_enabled = false;
|
||||
stepperE1.refresh_stepping_mode();
|
||||
lv_obj_set_event_cb_mks(buttonE1State, event_handler, ID_TMC_MODE_E1, "bmp_disable.bin", 0);
|
||||
lv_label_set_text(labelE1State, machine_menu.disable);
|
||||
// lv_obj_align(labelXState, buttonE1State, LV_ALIGN_IN_LEFT_MID,0, 0);
|
||||
}
|
||||
else {
|
||||
stepperE1.stored.stealthChop_enabled = true;
|
||||
stepperE1.refresh_stepping_mode();
|
||||
lv_obj_set_event_cb_mks(buttonE1State, event_handler, ID_TMC_MODE_E1, "bmp_enable.bin", 0);
|
||||
lv_label_set_text(labelE1State, machine_menu.enable);
|
||||
}
|
||||
gcode.process_subcommands_now_P(PSTR("M500"));
|
||||
}
|
||||
break;
|
||||
|
||||
case ID_TMC_MODE_UP:
|
||||
if (event == LV_EVENT_CLICKED) {
|
||||
|
||||
}
|
||||
else if (event == LV_EVENT_RELEASED) {
|
||||
uiCfg.para_ui_page = 0;
|
||||
lv_clear_tmc_step_mode_settings();
|
||||
lv_draw_tmc_step_mode_settings();
|
||||
}
|
||||
break;
|
||||
case ID_TMC_MODE_DOWN:
|
||||
if (event == LV_EVENT_CLICKED) {
|
||||
|
||||
}
|
||||
else if (event == LV_EVENT_RELEASED) {
|
||||
uiCfg.para_ui_page = 1;
|
||||
lv_clear_tmc_step_mode_settings();
|
||||
lv_draw_tmc_step_mode_settings();
|
||||
}
|
||||
break;
|
||||
#endif // if AXIS_HAS_STEALTHCHOP(E1)
|
||||
}
|
||||
}
|
||||
|
||||
void lv_draw_tmc_step_mode_settings(void) {
|
||||
lv_obj_t *buttonBack = NULL, *label_Back = NULL;
|
||||
lv_obj_t *buttonXText = NULL, *labelXText = NULL;
|
||||
lv_obj_t *buttonYText = NULL, *labelYText = NULL;
|
||||
lv_obj_t *buttonZText = NULL, *labelZText = NULL;
|
||||
lv_obj_t *buttonE0Text = NULL, *labelE0Text = NULL;
|
||||
|
||||
lv_obj_t * line1 = NULL, * line2 = NULL, * line3 = NULL, * line4 = NULL;
|
||||
#if AXIS_HAS_STEALTHCHOP(E1)
|
||||
lv_obj_t *buttonTurnPage = NULL, *labelTurnPage = NULL;
|
||||
lv_obj_t *buttonE1Text = NULL, *labelE1Text = NULL;
|
||||
#endif
|
||||
|
||||
|
||||
labelXState = NULL;
|
||||
buttonXState = NULL;
|
||||
labelYState = NULL;
|
||||
buttonYState = NULL;
|
||||
labelZState = NULL;
|
||||
buttonZState = NULL;
|
||||
labelE0State = NULL;
|
||||
buttonE0State = NULL;
|
||||
#if AXIS_HAS_STEALTHCHOP(E1)
|
||||
labelE1State = NULL;
|
||||
buttonE1State = NULL;
|
||||
#endif
|
||||
|
||||
if (disp_state_stack._disp_state[disp_state_stack._disp_index] != TMC_MODE_UI) {
|
||||
disp_state_stack._disp_index++;
|
||||
disp_state_stack._disp_state[disp_state_stack._disp_index] = TMC_MODE_UI;
|
||||
}
|
||||
disp_state = TMC_MODE_UI;
|
||||
|
||||
scr = lv_obj_create(NULL, NULL);
|
||||
|
||||
lv_obj_set_style(scr, &tft_style_scr);
|
||||
lv_scr_load(scr);
|
||||
lv_obj_clean(scr);
|
||||
|
||||
lv_obj_t * title = lv_label_create(scr, NULL);
|
||||
lv_obj_set_style(title, &tft_style_label_rel);
|
||||
lv_obj_set_pos(title, TITLE_XPOS, TITLE_YPOS);
|
||||
lv_label_set_text(title, machine_menu.TmcStepModeConfTitle);
|
||||
|
||||
lv_refr_now(lv_refr_get_disp_refreshing());
|
||||
|
||||
LV_IMG_DECLARE(bmp_para_back);
|
||||
LV_IMG_DECLARE(bmp_para_state);
|
||||
// LV_IMG_DECLARE(bmp_para_bank);
|
||||
|
||||
if (uiCfg.para_ui_page != 1) {
|
||||
buttonXText = lv_btn_create(scr, NULL); /*Add a button the current screen*/
|
||||
lv_obj_set_pos(buttonXText, PARA_UI_POS_X, PARA_UI_POS_Y); /*Set its position*/
|
||||
lv_obj_set_size(buttonXText, PARA_UI_VALUE_SIZE_X, PARA_UI_SIZE_Y); /*Set its size*/
|
||||
lv_obj_set_event_cb(buttonXText, event_handler);
|
||||
lv_btn_set_style(buttonXText, LV_BTN_STYLE_REL, &tft_style_label_rel); /*Set the button's released style*/
|
||||
lv_btn_set_style(buttonXText, LV_BTN_STYLE_PR, &tft_style_label_pre); /*Set the button's pressed style*/
|
||||
lv_btn_set_layout(buttonXText, LV_LAYOUT_OFF);
|
||||
labelXText = lv_label_create(buttonXText, NULL); /*Add a label to the button*/
|
||||
|
||||
buttonXState = lv_imgbtn_create(scr, NULL);
|
||||
lv_obj_set_pos(buttonXState, PARA_UI_STATE_POS_X, PARA_UI_POS_Y + PARA_UI_STATE_V);
|
||||
if (stepperX.get_stealthChop_status())
|
||||
lv_obj_set_event_cb_mks(buttonXState, event_handler, ID_TMC_MODE_X, "bmp_enable.bin", 0);
|
||||
else
|
||||
lv_obj_set_event_cb_mks(buttonXState, event_handler, ID_TMC_MODE_X, "bmp_disable.bin", 0);
|
||||
lv_imgbtn_set_src(buttonXState, LV_BTN_STATE_REL, &bmp_para_state);
|
||||
lv_imgbtn_set_src(buttonXState, LV_BTN_STATE_PR, &bmp_para_state);
|
||||
lv_imgbtn_set_style(buttonXState, LV_BTN_STATE_PR, &tft_style_label_pre);
|
||||
lv_imgbtn_set_style(buttonXState, LV_BTN_STATE_REL, &tft_style_label_rel);
|
||||
lv_btn_set_layout(buttonXState, LV_LAYOUT_OFF);
|
||||
labelXState = lv_label_create(buttonXState, NULL);
|
||||
|
||||
line1 = lv_line_create(scr, NULL);
|
||||
lv_ex_line(line1, line_points[0]);
|
||||
|
||||
buttonYText = lv_btn_create(scr, NULL); /*Add a button the current screen*/
|
||||
lv_obj_set_pos(buttonYText, PARA_UI_POS_X, PARA_UI_POS_Y * 2); /*Set its position*/
|
||||
lv_obj_set_size(buttonYText, PARA_UI_VALUE_SIZE_X, PARA_UI_SIZE_Y); /*Set its size*/
|
||||
lv_obj_set_event_cb(buttonYText, event_handler);
|
||||
lv_btn_set_style(buttonYText, LV_BTN_STYLE_REL, &tft_style_label_rel); /*Set the button's released style*/
|
||||
lv_btn_set_style(buttonYText, LV_BTN_STYLE_PR, &tft_style_label_pre); /*Set the button's pressed style*/
|
||||
lv_btn_set_layout(buttonYText, LV_LAYOUT_OFF);
|
||||
labelYText = lv_label_create(buttonYText, NULL); /*Add a label to the button*/
|
||||
|
||||
buttonYState = lv_imgbtn_create(scr, NULL);
|
||||
lv_obj_set_pos(buttonYState, PARA_UI_STATE_POS_X, PARA_UI_POS_Y * 2 + PARA_UI_STATE_V);
|
||||
if (stepperY.get_stealthChop_status())
|
||||
lv_obj_set_event_cb_mks(buttonYState, event_handler, ID_TMC_MODE_Y, "bmp_enable.bin", 0);
|
||||
else
|
||||
lv_obj_set_event_cb_mks(buttonYState, event_handler, ID_TMC_MODE_Y, "bmp_disable.bin", 0);
|
||||
lv_imgbtn_set_src(buttonYState, LV_BTN_STATE_REL, &bmp_para_state);
|
||||
lv_imgbtn_set_src(buttonYState, LV_BTN_STATE_PR, &bmp_para_state);
|
||||
lv_imgbtn_set_style(buttonYState, LV_BTN_STATE_PR, &tft_style_label_pre);
|
||||
lv_imgbtn_set_style(buttonYState, LV_BTN_STATE_REL, &tft_style_label_rel);
|
||||
lv_btn_set_layout(buttonYState, LV_LAYOUT_OFF);
|
||||
labelYState = lv_label_create(buttonYState, NULL);
|
||||
|
||||
line2 = lv_line_create(scr, NULL);
|
||||
lv_ex_line(line2, line_points[1]);
|
||||
|
||||
buttonZText = lv_btn_create(scr, NULL); /*Add a button the current screen*/
|
||||
lv_obj_set_pos(buttonZText, PARA_UI_POS_X, PARA_UI_POS_Y * 3); /*Set its position*/
|
||||
lv_obj_set_size(buttonZText, PARA_UI_VALUE_SIZE_X, PARA_UI_SIZE_Y); /*Set its size*/
|
||||
lv_obj_set_event_cb(buttonZText, event_handler);
|
||||
lv_btn_set_style(buttonZText, LV_BTN_STYLE_REL, &tft_style_label_rel); /*Set the button's released style*/
|
||||
lv_btn_set_style(buttonZText, LV_BTN_STYLE_PR, &tft_style_label_pre); /*Set the button's pressed style*/
|
||||
lv_btn_set_layout(buttonZText, LV_LAYOUT_OFF);
|
||||
labelZText = lv_label_create(buttonZText, NULL); /*Add a label to the button*/
|
||||
|
||||
buttonZState = lv_imgbtn_create(scr, NULL);
|
||||
lv_obj_set_pos(buttonZState, PARA_UI_STATE_POS_X, PARA_UI_POS_Y * 3 + PARA_UI_STATE_V);
|
||||
if (stepperZ.get_stealthChop_status())
|
||||
lv_obj_set_event_cb_mks(buttonZState, event_handler, ID_TMC_MODE_Z, "bmp_enable.bin", 0);
|
||||
else
|
||||
lv_obj_set_event_cb_mks(buttonZState, event_handler, ID_TMC_MODE_Z, "bmp_disable.bin", 0);
|
||||
lv_imgbtn_set_src(buttonZState, LV_BTN_STATE_REL, &bmp_para_state);
|
||||
lv_imgbtn_set_src(buttonZState, LV_BTN_STATE_PR, &bmp_para_state);
|
||||
lv_imgbtn_set_style(buttonZState, LV_BTN_STATE_PR, &tft_style_label_pre);
|
||||
lv_imgbtn_set_style(buttonZState, LV_BTN_STATE_REL, &tft_style_label_rel);
|
||||
lv_btn_set_layout(buttonZState, LV_LAYOUT_OFF);
|
||||
labelZState = lv_label_create(buttonZState, NULL);
|
||||
|
||||
line3 = lv_line_create(scr, NULL);
|
||||
lv_ex_line(line3, line_points[2]);
|
||||
|
||||
buttonE0Text = lv_btn_create(scr, NULL); /*Add a button the current screen*/
|
||||
lv_obj_set_pos(buttonE0Text, PARA_UI_POS_X, PARA_UI_POS_Y * 4); /*Set its position*/
|
||||
lv_obj_set_size(buttonE0Text, PARA_UI_VALUE_SIZE_X, PARA_UI_SIZE_Y); /*Set its size*/
|
||||
lv_obj_set_event_cb(buttonE0Text, event_handler);
|
||||
lv_btn_set_style(buttonE0Text, LV_BTN_STYLE_REL, &tft_style_label_rel); /*Set the button's released style*/
|
||||
lv_btn_set_style(buttonE0Text, LV_BTN_STYLE_PR, &tft_style_label_pre); /*Set the button's pressed style*/
|
||||
lv_btn_set_layout(buttonE0Text, LV_LAYOUT_OFF);
|
||||
labelE0Text = lv_label_create(buttonE0Text, NULL); /*Add a label to the button*/
|
||||
|
||||
buttonE0State = lv_imgbtn_create(scr, NULL);
|
||||
lv_obj_set_pos(buttonE0State, PARA_UI_STATE_POS_X, PARA_UI_POS_Y * 4 + PARA_UI_STATE_V);
|
||||
if (stepperE0.get_stealthChop_status())
|
||||
lv_obj_set_event_cb_mks(buttonE0State, event_handler, ID_TMC_MODE_E0, "bmp_enable.bin", 0);
|
||||
else
|
||||
lv_obj_set_event_cb_mks(buttonE0State, event_handler, ID_TMC_MODE_E0, "bmp_disable.bin", 0);
|
||||
lv_imgbtn_set_src(buttonE0State, LV_BTN_STATE_REL, &bmp_para_state);
|
||||
lv_imgbtn_set_src(buttonE0State, LV_BTN_STATE_PR, &bmp_para_state);
|
||||
lv_imgbtn_set_style(buttonE0State, LV_BTN_STATE_PR, &tft_style_label_pre);
|
||||
lv_imgbtn_set_style(buttonE0State, LV_BTN_STATE_REL, &tft_style_label_rel);
|
||||
lv_btn_set_layout(buttonE0State, LV_LAYOUT_OFF);
|
||||
labelE0State = lv_label_create(buttonE0State, NULL);
|
||||
|
||||
line4 = lv_line_create(scr, NULL);
|
||||
lv_ex_line(line4, line_points[3]);
|
||||
|
||||
#if AXIS_HAS_STEALTHCHOP(E1)
|
||||
buttonTurnPage = lv_imgbtn_create(scr, NULL);
|
||||
lv_obj_set_event_cb_mks(buttonTurnPage, event_handler, ID_TMC_MODE_DOWN, "bmp_back70x40.bin", 0);
|
||||
lv_imgbtn_set_src(buttonTurnPage, LV_BTN_STATE_REL, &bmp_para_back);
|
||||
lv_imgbtn_set_src(buttonTurnPage, LV_BTN_STATE_PR, &bmp_para_back);
|
||||
lv_imgbtn_set_style(buttonTurnPage, LV_BTN_STATE_PR, &tft_style_label_pre);
|
||||
lv_imgbtn_set_style(buttonTurnPage, LV_BTN_STATE_REL, &tft_style_label_rel);
|
||||
#endif
|
||||
}
|
||||
else {
|
||||
#if AXIS_HAS_STEALTHCHOP(E1)
|
||||
buttonE1Text = lv_btn_create(scr, NULL); /*Add a button the current screen*/
|
||||
lv_obj_set_pos(buttonE1Text, PARA_UI_POS_X, PARA_UI_POS_Y); /*Set its position*/
|
||||
lv_obj_set_size(buttonE1Text, PARA_UI_VALUE_SIZE_X, PARA_UI_SIZE_Y); /*Set its size*/
|
||||
lv_obj_set_event_cb(buttonE1Text, event_handler);
|
||||
lv_btn_set_style(buttonE1Text, LV_BTN_STYLE_REL, &tft_style_label_rel); /*Set the button's released style*/
|
||||
lv_btn_set_style(buttonE1Text, LV_BTN_STYLE_PR, &tft_style_label_pre); /*Set the button's pressed style*/
|
||||
lv_btn_set_layout(buttonE1Text, LV_LAYOUT_OFF);
|
||||
labelE1Text = lv_label_create(buttonE1Text, NULL); /*Add a label to the button*/
|
||||
|
||||
buttonE1State = lv_imgbtn_create(scr, NULL);
|
||||
lv_obj_set_pos(buttonE1State, PARA_UI_STATE_POS_X, PARA_UI_POS_Y + PARA_UI_STATE_V);
|
||||
if (stepperE1.get_stealthChop_status())
|
||||
lv_obj_set_event_cb_mks(buttonE1State, event_handler, ID_TMC_MODE_E1, "bmp_enable.bin", 0);
|
||||
else
|
||||
lv_obj_set_event_cb_mks(buttonE1State, event_handler, ID_TMC_MODE_E1, "bmp_disable.bin", 0);
|
||||
lv_imgbtn_set_src(buttonE1State, LV_BTN_STATE_REL, &bmp_para_state);
|
||||
lv_imgbtn_set_src(buttonE1State, LV_BTN_STATE_PR, &bmp_para_state);
|
||||
lv_imgbtn_set_style(buttonE1State, LV_BTN_STATE_PR, &tft_style_label_pre);
|
||||
lv_imgbtn_set_style(buttonE1State, LV_BTN_STATE_REL, &tft_style_label_rel);
|
||||
lv_btn_set_layout(buttonE1State, LV_LAYOUT_OFF);
|
||||
labelE1State = lv_label_create(buttonE1State, NULL);
|
||||
|
||||
line1 = lv_line_create(scr, NULL);
|
||||
lv_ex_line(line1, line_points[0]);
|
||||
|
||||
buttonTurnPage = lv_imgbtn_create(scr, NULL);
|
||||
lv_obj_set_event_cb_mks(buttonTurnPage, event_handler, ID_TMC_MODE_UP, "bmp_back70x40.bin", 0);
|
||||
lv_imgbtn_set_src(buttonTurnPage, LV_BTN_STATE_REL, &bmp_para_back);
|
||||
lv_imgbtn_set_src(buttonTurnPage, LV_BTN_STATE_PR, &bmp_para_back);
|
||||
lv_imgbtn_set_style(buttonTurnPage, LV_BTN_STATE_PR, &tft_style_label_pre);
|
||||
lv_imgbtn_set_style(buttonTurnPage, LV_BTN_STATE_REL, &tft_style_label_rel);
|
||||
#endif
|
||||
}
|
||||
#if AXIS_HAS_STEALTHCHOP(E1)
|
||||
lv_obj_set_pos(buttonTurnPage, PARA_UI_TURN_PAGE_POS_X, PARA_UI_TURN_PAGE_POS_Y);
|
||||
lv_btn_set_layout(buttonTurnPage, LV_LAYOUT_OFF);
|
||||
labelTurnPage = lv_label_create(buttonTurnPage, NULL);
|
||||
#endif
|
||||
|
||||
buttonBack = lv_imgbtn_create(scr, NULL);
|
||||
lv_obj_set_event_cb_mks(buttonBack, event_handler, ID_TMC_MODE_RETURN, "bmp_back70x40.bin", 0);
|
||||
lv_imgbtn_set_src(buttonBack, LV_BTN_STATE_REL, &bmp_para_back);
|
||||
lv_imgbtn_set_src(buttonBack, LV_BTN_STATE_PR, &bmp_para_back);
|
||||
lv_imgbtn_set_style(buttonBack, LV_BTN_STATE_PR, &tft_style_label_pre);
|
||||
lv_imgbtn_set_style(buttonBack, LV_BTN_STATE_REL, &tft_style_label_rel);
|
||||
|
||||
lv_obj_set_pos(buttonBack, PARA_UI_BACL_POS_X, PARA_UI_BACL_POS_Y);
|
||||
lv_btn_set_layout(buttonBack, LV_LAYOUT_OFF);
|
||||
label_Back = lv_label_create(buttonBack, NULL);
|
||||
|
||||
if (gCfgItems.multiple_language != 0) {
|
||||
if (uiCfg.para_ui_page != 1) {
|
||||
lv_label_set_text(labelXText, machine_menu.X_StepMode);
|
||||
lv_obj_align(labelXText, buttonXText, LV_ALIGN_IN_LEFT_MID, 0, 0);
|
||||
|
||||
lv_label_set_text(labelYText, machine_menu.Y_StepMode);
|
||||
lv_obj_align(labelYText, buttonYText, LV_ALIGN_IN_LEFT_MID, 0, 0);
|
||||
|
||||
lv_label_set_text(labelZText, machine_menu.Z_StepMode);
|
||||
lv_obj_align(labelZText, buttonZText, LV_ALIGN_IN_LEFT_MID, 0, 0);
|
||||
|
||||
lv_label_set_text(labelE0Text, machine_menu.E0_StepMode);
|
||||
lv_obj_align(labelE0Text, buttonE0Text, LV_ALIGN_IN_LEFT_MID, 0, 0);
|
||||
|
||||
if (stepperX.get_stealthChop_status())
|
||||
lv_label_set_text(labelXState, machine_menu.enable);
|
||||
else
|
||||
lv_label_set_text(labelXState, machine_menu.disable);
|
||||
lv_obj_align(labelXState, buttonXState, LV_ALIGN_CENTER, 0, 0);
|
||||
|
||||
if (stepperY.get_stealthChop_status())
|
||||
lv_label_set_text(labelYState, machine_menu.enable);
|
||||
else
|
||||
lv_label_set_text(labelYState, machine_menu.disable);
|
||||
lv_obj_align(labelYState, buttonYState, LV_ALIGN_CENTER, 0, 0);
|
||||
|
||||
if (stepperZ.get_stealthChop_status())
|
||||
lv_label_set_text(labelZState, machine_menu.enable);
|
||||
else
|
||||
lv_label_set_text(labelZState, machine_menu.disable);
|
||||
lv_obj_align(labelZState, buttonZState, LV_ALIGN_CENTER, 0, 0);
|
||||
|
||||
if (stepperE0.get_stealthChop_status())
|
||||
lv_label_set_text(labelE0State, machine_menu.enable);
|
||||
else
|
||||
lv_label_set_text(labelE0State, machine_menu.disable);
|
||||
lv_obj_align(labelE0State, buttonE0State, LV_ALIGN_CENTER, 0, 0);
|
||||
|
||||
#if AXIS_HAS_STEALTHCHOP(E1)
|
||||
lv_label_set_text(labelTurnPage, machine_menu.next);
|
||||
lv_obj_align(labelTurnPage, buttonTurnPage, LV_ALIGN_CENTER, 0, 0);
|
||||
#endif
|
||||
}
|
||||
else {
|
||||
#if AXIS_HAS_STEALTHCHOP(E1)
|
||||
lv_label_set_text(labelE1Text, machine_menu.E1_StepMode);
|
||||
lv_obj_align(labelE1Text, buttonE1Text, LV_ALIGN_IN_LEFT_MID, 0, 0);
|
||||
|
||||
if (stepperE1.get_stealthChop_status())
|
||||
lv_label_set_text(labelE1State, machine_menu.enable);
|
||||
else
|
||||
lv_label_set_text(labelE1State, machine_menu.disable);
|
||||
lv_obj_align(labelE1State, buttonE1State, LV_ALIGN_CENTER, 0, 0);
|
||||
|
||||
lv_label_set_text(labelTurnPage, machine_menu.previous);
|
||||
lv_obj_align(labelTurnPage, buttonTurnPage, LV_ALIGN_CENTER, 0, 0);
|
||||
|
||||
#endif
|
||||
}
|
||||
|
||||
lv_label_set_text(label_Back, common_menu.text_back);
|
||||
lv_obj_align(label_Back, buttonBack, LV_ALIGN_CENTER, 0, 0);
|
||||
}
|
||||
}
|
||||
|
||||
void lv_clear_tmc_step_mode_settings() { lv_obj_del(scr); }
|
||||
|
||||
#endif // HAS_TFT_LVGL_UI && HAS_STEALTHCHOP
|
|
@ -0,0 +1,33 @@
|
|||
/**
|
||||
* Marlin 3D Printer Firmware
|
||||
* Copyright (c) 2020 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
|
||||
*
|
||||
* Based on Sprinter and grbl.
|
||||
* Copyright (c) 2011 Camiel Gubbels / Erik van der Zalm
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*
|
||||
*/
|
||||
#pragma once
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" { /* C-declarations for C++ */
|
||||
#endif
|
||||
|
||||
extern void lv_draw_tmc_step_mode_settings(void);
|
||||
extern void lv_clear_tmc_step_mode_settings();
|
||||
|
||||
#ifdef __cplusplus
|
||||
} /* C-declarations for C++ */
|
||||
#endif
|
|
@ -21,7 +21,7 @@
|
|||
*/
|
||||
#include "../../../../inc/MarlinConfigPre.h"
|
||||
|
||||
#if ENABLED(TFT_LVGL_UI)
|
||||
#if HAS_TFT_LVGL_UI
|
||||
|
||||
#include "lv_conf.h"
|
||||
#include "draw_ui.h"
|
||||
|
@ -35,9 +35,6 @@
|
|||
|
||||
// static lv_obj_t *buttonMoveZ,*buttonTest,*buttonZ0,*buttonStop,*buttonReturn;
|
||||
static lv_obj_t * scr;
|
||||
#if ENABLED(MKS_TEST)
|
||||
extern uint8_t curent_disp_ui;
|
||||
#endif
|
||||
|
||||
#define ID_T_PRE_HEAT 1
|
||||
#define ID_T_EXTRUCT 2
|
||||
|
@ -135,7 +132,7 @@ void lv_draw_tool(void) {
|
|||
lv_obj_clean(scr);
|
||||
|
||||
lv_obj_t * title = lv_label_create(scr, NULL);
|
||||
lv_obj_set_style(title, &tft_style_lable_rel);
|
||||
lv_obj_set_style(title, &tft_style_label_rel);
|
||||
lv_obj_set_pos(title, TITLE_XPOS, TITLE_YPOS);
|
||||
lv_label_set_text(title, creat_title_text());
|
||||
|
||||
|
@ -153,56 +150,56 @@ void lv_draw_tool(void) {
|
|||
// buttonMore = lv_imgbtn_create(scr, NULL);
|
||||
buttonBack = lv_imgbtn_create(scr, NULL);
|
||||
|
||||
lv_obj_set_event_cb_mks(buttonPreHeat, event_handler, ID_T_PRE_HEAT, "bmp_PreHeat.bin", 0);
|
||||
lv_obj_set_event_cb_mks(buttonPreHeat, event_handler, ID_T_PRE_HEAT, "bmp_preHeat.bin", 0);
|
||||
lv_imgbtn_set_src(buttonPreHeat, LV_BTN_STATE_REL, &bmp_pic);
|
||||
lv_imgbtn_set_src(buttonPreHeat, LV_BTN_STATE_PR, &bmp_pic);
|
||||
lv_imgbtn_set_style(buttonPreHeat, LV_BTN_STATE_PR, &tft_style_lable_pre);
|
||||
lv_imgbtn_set_style(buttonPreHeat, LV_BTN_STATE_REL, &tft_style_lable_rel);
|
||||
lv_imgbtn_set_style(buttonPreHeat, LV_BTN_STATE_PR, &tft_style_label_pre);
|
||||
lv_imgbtn_set_style(buttonPreHeat, LV_BTN_STATE_REL, &tft_style_label_rel);
|
||||
lv_obj_clear_protect(buttonPreHeat, LV_PROTECT_FOLLOW);
|
||||
|
||||
#if 1
|
||||
lv_obj_set_event_cb_mks(buttonExtrusion, event_handler, ID_T_EXTRUCT, "bmp_Extruct.bin", 0);
|
||||
lv_obj_set_event_cb_mks(buttonExtrusion, event_handler, ID_T_EXTRUCT, "bmp_extruct.bin", 0);
|
||||
lv_imgbtn_set_src(buttonExtrusion, LV_BTN_STATE_REL, &bmp_pic);
|
||||
lv_imgbtn_set_src(buttonExtrusion, LV_BTN_STATE_PR, &bmp_pic);
|
||||
lv_imgbtn_set_style(buttonExtrusion, LV_BTN_STATE_PR, &tft_style_lable_pre);
|
||||
lv_imgbtn_set_style(buttonExtrusion, LV_BTN_STATE_REL, &tft_style_lable_rel);
|
||||
lv_imgbtn_set_style(buttonExtrusion, LV_BTN_STATE_PR, &tft_style_label_pre);
|
||||
lv_imgbtn_set_style(buttonExtrusion, LV_BTN_STATE_REL, &tft_style_label_rel);
|
||||
|
||||
lv_obj_set_event_cb_mks(buttonMove, event_handler, ID_T_MOV, "bmp_Mov.bin", 0);
|
||||
lv_obj_set_event_cb_mks(buttonMove, event_handler, ID_T_MOV, "bmp_mov.bin", 0);
|
||||
lv_imgbtn_set_src(buttonMove, LV_BTN_STATE_REL, &bmp_pic);
|
||||
lv_imgbtn_set_src(buttonMove, LV_BTN_STATE_PR, &bmp_pic);
|
||||
lv_imgbtn_set_style(buttonMove, LV_BTN_STATE_PR, &tft_style_lable_pre);
|
||||
lv_imgbtn_set_style(buttonMove, LV_BTN_STATE_REL, &tft_style_lable_rel);
|
||||
lv_imgbtn_set_style(buttonMove, LV_BTN_STATE_PR, &tft_style_label_pre);
|
||||
lv_imgbtn_set_style(buttonMove, LV_BTN_STATE_REL, &tft_style_label_rel);
|
||||
|
||||
lv_obj_set_event_cb_mks(buttonHome, event_handler, ID_T_HOME, "bmp_Zero.bin", 0);
|
||||
lv_obj_set_event_cb_mks(buttonHome, event_handler, ID_T_HOME, "bmp_zero.bin", 0);
|
||||
lv_imgbtn_set_src(buttonHome, LV_BTN_STATE_REL, &bmp_pic);
|
||||
lv_imgbtn_set_src(buttonHome, LV_BTN_STATE_PR, &bmp_pic);
|
||||
lv_imgbtn_set_style(buttonHome, LV_BTN_STATE_PR, &tft_style_lable_pre);
|
||||
lv_imgbtn_set_style(buttonHome, LV_BTN_STATE_REL, &tft_style_lable_rel);
|
||||
lv_imgbtn_set_style(buttonHome, LV_BTN_STATE_PR, &tft_style_label_pre);
|
||||
lv_imgbtn_set_style(buttonHome, LV_BTN_STATE_REL, &tft_style_label_rel);
|
||||
|
||||
lv_obj_set_event_cb_mks(buttonLevel, event_handler, ID_T_LEVELING, "bmp_Leveling.bin", 0);
|
||||
lv_obj_set_event_cb_mks(buttonLevel, event_handler, ID_T_LEVELING, "bmp_leveling.bin", 0);
|
||||
lv_imgbtn_set_src(buttonLevel, LV_BTN_STATE_REL, &bmp_pic);
|
||||
lv_imgbtn_set_src(buttonLevel, LV_BTN_STATE_PR, &bmp_pic);
|
||||
lv_imgbtn_set_style(buttonLevel, LV_BTN_STATE_PR, &tft_style_lable_pre);
|
||||
lv_imgbtn_set_style(buttonLevel, LV_BTN_STATE_REL, &tft_style_lable_rel);
|
||||
lv_imgbtn_set_style(buttonLevel, LV_BTN_STATE_PR, &tft_style_label_pre);
|
||||
lv_imgbtn_set_style(buttonLevel, LV_BTN_STATE_REL, &tft_style_label_rel);
|
||||
|
||||
// lv_obj_set_event_cb_mks(buttonFilament, event_handler,ID_T_FILAMENT,"bmp_Filamentchange.bin",0);
|
||||
// lv_imgbtn_set_src(buttonFilament, LV_BTN_STATE_REL, &bmp_pic);
|
||||
// lv_imgbtn_set_src(buttonFilament, LV_BTN_STATE_PR, &bmp_pic);
|
||||
//lv_imgbtn_set_style(buttonFilament, LV_BTN_STATE_PR, &tft_style_lable_pre);
|
||||
//lv_imgbtn_set_style(buttonFilament, LV_BTN_STATE_REL, &tft_style_lable_rel);
|
||||
// lv_imgbtn_set_style(buttonFilament, LV_BTN_STATE_PR, &tft_style_label_pre);
|
||||
// lv_imgbtn_set_style(buttonFilament, LV_BTN_STATE_REL, &tft_style_label_rel);
|
||||
|
||||
// lv_obj_set_event_cb_mks(buttonMore, event_handler,ID_T_MORE,"bmp_More.bin",0);
|
||||
// lv_imgbtn_set_src(buttonMore, LV_BTN_STATE_REL, &bmp_pic);
|
||||
// lv_imgbtn_set_src(buttonMore, LV_BTN_STATE_PR, &bmp_pic);
|
||||
//lv_imgbtn_set_style(buttonMore, LV_BTN_STATE_PR, &tft_style_lable_pre);
|
||||
//lv_imgbtn_set_style(buttonMore, LV_BTN_STATE_REL, &tft_style_lable_rel);
|
||||
// lv_imgbtn_set_style(buttonMore, LV_BTN_STATE_PR, &tft_style_label_pre);
|
||||
// lv_imgbtn_set_style(buttonMore, LV_BTN_STATE_REL, &tft_style_label_rel);
|
||||
|
||||
lv_obj_set_event_cb_mks(buttonBack, event_handler, ID_T_RETURN, "bmp_Return.bin", 0);
|
||||
lv_obj_set_event_cb_mks(buttonBack, event_handler, ID_T_RETURN, "bmp_return.bin", 0);
|
||||
lv_imgbtn_set_src(buttonBack, LV_BTN_STATE_REL, &bmp_pic);
|
||||
lv_imgbtn_set_src(buttonBack, LV_BTN_STATE_PR, &bmp_pic);
|
||||
lv_imgbtn_set_style(buttonBack, LV_BTN_STATE_PR, &tft_style_lable_pre);
|
||||
lv_imgbtn_set_style(buttonBack, LV_BTN_STATE_REL, &tft_style_lable_rel);
|
||||
#endif
|
||||
lv_imgbtn_set_style(buttonBack, LV_BTN_STATE_PR, &tft_style_label_pre);
|
||||
lv_imgbtn_set_style(buttonBack, LV_BTN_STATE_REL, &tft_style_label_rel);
|
||||
#endif // if 1
|
||||
|
||||
lv_obj_set_pos(buttonPreHeat, INTERVAL_V, titleHeight);
|
||||
lv_obj_set_pos(buttonExtrusion, BTN_X_PIXEL + INTERVAL_V * 2, titleHeight);
|
||||
|
@ -267,4 +264,4 @@ void lv_draw_tool(void) {
|
|||
|
||||
void lv_clear_tool() { lv_obj_del(scr); }
|
||||
|
||||
#endif // TFT_LVGL_UI
|
||||
#endif // HAS_TFT_LVGL_UI
|
||||
|
|
|
@ -21,24 +21,27 @@
|
|||
*/
|
||||
#include "../../../../inc/MarlinConfigPre.h"
|
||||
|
||||
#if ENABLED(TFT_LVGL_UI)
|
||||
#if HAS_TFT_LVGL_UI
|
||||
|
||||
#if ENABLED(TFT_LVGL_UI_SPI)
|
||||
#include "SPI_TFT.h"
|
||||
#endif
|
||||
|
||||
#include "W25Qxx.h"
|
||||
#include "tft_lvgl_configuration.h"
|
||||
|
||||
#include <SPI.h>
|
||||
#include "pic_manager.h"
|
||||
|
||||
#if ENABLED(SPI_GRAPHICAL_TFT)
|
||||
#include "SPI_TFT.h"
|
||||
#endif
|
||||
#include "draw_ui.h"
|
||||
#include "mks_hardware_test.h"
|
||||
|
||||
#include <SPI.h>
|
||||
|
||||
#include "../../../../MarlinCore.h"
|
||||
#include "../../../../sd/cardreader.h"
|
||||
#include "../../../../module/motion.h"
|
||||
#include "../../../../module/planner.h"
|
||||
|
||||
#include "pic_manager.h"
|
||||
|
||||
#if ENABLED(POWER_LOSS_RECOVERY)
|
||||
#include "../../../../feature/powerloss.h"
|
||||
#endif
|
||||
|
@ -47,14 +50,13 @@
|
|||
#include "../../../../feature/pause.h"
|
||||
#endif
|
||||
|
||||
#include "draw_ui.h"
|
||||
|
||||
CFG_ITMES gCfgItems;
|
||||
UI_CFG uiCfg;
|
||||
DISP_STATE_STACK disp_state_stack;
|
||||
DISP_STATE disp_state = MAIN_UI;
|
||||
DISP_STATE last_disp_state;
|
||||
PRINT_TIME print_time;
|
||||
value_state value;
|
||||
|
||||
uint32_t To_pre_view;
|
||||
uint8_t gcode_preview_over;
|
||||
|
@ -72,6 +74,12 @@ extern uint8_t bmp_public_buf[17 * 1024];
|
|||
|
||||
extern void LCD_IO_WriteData(uint16_t RegValue);
|
||||
|
||||
lv_point_t line_points[4][2] = {
|
||||
{{PARA_UI_POS_X, PARA_UI_POS_Y + PARA_UI_SIZE_Y}, {TFT_WIDTH, PARA_UI_POS_Y + PARA_UI_SIZE_Y}},
|
||||
{{PARA_UI_POS_X, PARA_UI_POS_Y*2 + PARA_UI_SIZE_Y}, {TFT_WIDTH, PARA_UI_POS_Y*2 + PARA_UI_SIZE_Y}},
|
||||
{{PARA_UI_POS_X, PARA_UI_POS_Y*3 + PARA_UI_SIZE_Y}, {TFT_WIDTH, PARA_UI_POS_Y*3 + PARA_UI_SIZE_Y}},
|
||||
{{PARA_UI_POS_X, PARA_UI_POS_Y*4 + PARA_UI_SIZE_Y}, {TFT_WIDTH, PARA_UI_POS_Y*4 + PARA_UI_SIZE_Y}}
|
||||
};
|
||||
void gCfgItems_init() {
|
||||
gCfgItems.multiple_language = MULTI_LANGUAGE_ENABLE;
|
||||
#if 1 // LCD_LANGUAGE == en
|
||||
|
@ -106,7 +114,9 @@ void gCfgItems_init() {
|
|||
gCfgItems.curFilesize = 0;
|
||||
gCfgItems.finish_power_off = 0;
|
||||
gCfgItems.pause_reprint = 0;
|
||||
|
||||
gCfgItems.pausePosX = -1;
|
||||
gCfgItems.pausePosY = -1;
|
||||
gCfgItems.pausePosZ = 5;
|
||||
W25QXX.SPI_FLASH_BufferRead((uint8_t *)&gCfgItems.spi_flash_flag, VAR_INF_ADDR, sizeof(gCfgItems.spi_flash_flag));
|
||||
if (gCfgItems.spi_flash_flag == GCFG_FLAG_VALUE) {
|
||||
W25QXX.SPI_FLASH_BufferRead((uint8_t *)&gCfgItems, VAR_INF_ADDR, sizeof(gCfgItems));
|
||||
|
@ -116,7 +126,6 @@ void gCfgItems_init() {
|
|||
W25QXX.SPI_FLASH_SectorErase(VAR_INF_ADDR);
|
||||
W25QXX.SPI_FLASH_BufferWrite((uint8_t *)&gCfgItems, VAR_INF_ADDR, sizeof(gCfgItems));
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
void gCfg_to_spiFlah() {
|
||||
|
@ -129,6 +138,7 @@ void ui_cfg_init() {
|
|||
uiCfg.curSprayerChoose = 0;
|
||||
uiCfg.stepHeat = 10;
|
||||
uiCfg.leveling_first_time = 0;
|
||||
uiCfg.para_ui_page = 0;
|
||||
uiCfg.extruStep = 5;
|
||||
uiCfg.extruSpeed = 10;
|
||||
uiCfg.move_dist = 1;
|
||||
|
@ -143,9 +153,16 @@ void update_spi_flash() {
|
|||
}
|
||||
|
||||
lv_style_t tft_style_scr;
|
||||
lv_style_t tft_style_lable_pre;
|
||||
lv_style_t tft_style_lable_rel;
|
||||
lv_style_t tft_style_label_pre;
|
||||
lv_style_t tft_style_label_rel;
|
||||
lv_style_t style_line;
|
||||
lv_style_t style_para_value_pre;
|
||||
lv_style_t style_para_value_rel;
|
||||
|
||||
lv_style_t style_num_key_pre;
|
||||
lv_style_t style_num_key_rel;
|
||||
|
||||
lv_style_t style_num_text;
|
||||
void tft_style_init() {
|
||||
lv_style_copy(&tft_style_scr, &lv_style_scr);
|
||||
tft_style_scr.body.main_color = LV_COLOR_BACKGROUND;
|
||||
|
@ -156,35 +173,86 @@ void tft_style_init() {
|
|||
tft_style_scr.text.letter_space = 0;
|
||||
tft_style_scr.text.line_space = 0;
|
||||
|
||||
lv_style_copy(&tft_style_lable_pre, &lv_style_scr);
|
||||
lv_style_copy(&tft_style_lable_rel, &lv_style_scr);
|
||||
tft_style_lable_pre.body.main_color = LV_COLOR_BACKGROUND;
|
||||
tft_style_lable_pre.body.grad_color = LV_COLOR_BACKGROUND;
|
||||
tft_style_lable_pre.text.color = LV_COLOR_TEXT;
|
||||
tft_style_lable_pre.text.sel_color = LV_COLOR_TEXT;
|
||||
tft_style_lable_rel.body.main_color = LV_COLOR_BACKGROUND;
|
||||
tft_style_lable_rel.body.grad_color = LV_COLOR_BACKGROUND;
|
||||
tft_style_lable_rel.text.color = LV_COLOR_TEXT;
|
||||
tft_style_lable_rel.text.sel_color = LV_COLOR_TEXT;
|
||||
lv_style_copy(&tft_style_label_pre, &lv_style_scr);
|
||||
lv_style_copy(&tft_style_label_rel, &lv_style_scr);
|
||||
tft_style_label_pre.body.main_color = LV_COLOR_BACKGROUND;
|
||||
tft_style_label_pre.body.grad_color = LV_COLOR_BACKGROUND;
|
||||
tft_style_label_pre.text.color = LV_COLOR_TEXT;
|
||||
tft_style_label_pre.text.sel_color = LV_COLOR_TEXT;
|
||||
tft_style_label_rel.body.main_color = LV_COLOR_BACKGROUND;
|
||||
tft_style_label_rel.body.grad_color = LV_COLOR_BACKGROUND;
|
||||
tft_style_label_rel.text.color = LV_COLOR_TEXT;
|
||||
tft_style_label_rel.text.sel_color = LV_COLOR_TEXT;
|
||||
tft_style_label_pre.text.font = TERN(HAS_SPI_FLASH_FONT, &gb2312_puhui32, LV_FONT_DEFAULT);
|
||||
tft_style_label_rel.text.font = TERN(HAS_SPI_FLASH_FONT, &gb2312_puhui32, LV_FONT_DEFAULT);
|
||||
tft_style_label_pre.line.width = 0;
|
||||
tft_style_label_rel.line.width = 0;
|
||||
tft_style_label_pre.text.letter_space = 0;
|
||||
tft_style_label_rel.text.letter_space = 0;
|
||||
tft_style_label_pre.text.line_space = -5;
|
||||
tft_style_label_rel.text.line_space = -5;
|
||||
lv_style_copy(&style_para_value_pre, &lv_style_scr);
|
||||
lv_style_copy(&style_para_value_rel, &lv_style_scr);
|
||||
style_para_value_pre.body.main_color = LV_COLOR_BACKGROUND;
|
||||
style_para_value_pre.body.grad_color = LV_COLOR_BACKGROUND;
|
||||
style_para_value_pre.text.color = LV_COLOR_BLACK;
|
||||
style_para_value_pre.text.sel_color = LV_COLOR_BLACK;
|
||||
style_para_value_rel.body.main_color = LV_COLOR_BACKGROUND;
|
||||
style_para_value_rel.body.grad_color = LV_COLOR_BACKGROUND;
|
||||
style_para_value_rel.text.color = LV_COLOR_BLACK;
|
||||
style_para_value_rel.text.sel_color = LV_COLOR_BLACK;
|
||||
style_para_value_pre.text.font = TERN(HAS_SPI_FLASH_FONT, &gb2312_puhui32, LV_FONT_DEFAULT);
|
||||
style_para_value_rel.text.font = TERN(HAS_SPI_FLASH_FONT, &gb2312_puhui32, LV_FONT_DEFAULT);
|
||||
style_para_value_pre.line.width = 0;
|
||||
style_para_value_rel.line.width = 0;
|
||||
style_para_value_pre.text.letter_space = 0;
|
||||
style_para_value_rel.text.letter_space = 0;
|
||||
style_para_value_pre.text.line_space = -5;
|
||||
style_para_value_rel.text.line_space = -5;
|
||||
lv_style_copy(&style_num_key_pre, &lv_style_scr);
|
||||
lv_style_copy(&style_num_key_rel, &lv_style_scr);
|
||||
style_num_key_pre.body.main_color = LV_COLOR_KEY_BACKGROUND;
|
||||
style_num_key_pre.body.grad_color = LV_COLOR_KEY_BACKGROUND;
|
||||
style_num_key_pre.text.color = LV_COLOR_TEXT;
|
||||
style_num_key_pre.text.sel_color = LV_COLOR_TEXT;
|
||||
style_num_key_rel.body.main_color = LV_COLOR_KEY_BACKGROUND;
|
||||
style_num_key_rel.body.grad_color = LV_COLOR_KEY_BACKGROUND;
|
||||
style_num_key_rel.text.color = LV_COLOR_TEXT;
|
||||
style_num_key_rel.text.sel_color = LV_COLOR_TEXT;
|
||||
#if HAS_SPI_FLASH_FONT
|
||||
tft_style_lable_pre.text.font = &gb2312_puhui32;
|
||||
tft_style_lable_rel.text.font = &gb2312_puhui32;
|
||||
style_num_key_pre.text.font = &gb2312_puhui32;
|
||||
style_num_key_rel.text.font = &gb2312_puhui32;
|
||||
#else
|
||||
tft_style_lable_pre.text.font = LV_FONT_DEFAULT;
|
||||
tft_style_lable_rel.text.font = LV_FONT_DEFAULT;
|
||||
style_num_key_pre.text.font = LV_FONT_DEFAULT;
|
||||
style_num_key_rel.text.font = LV_FONT_DEFAULT;
|
||||
#endif
|
||||
tft_style_lable_pre.line.width = 0;
|
||||
tft_style_lable_rel.line.width = 0;
|
||||
tft_style_lable_pre.text.letter_space = 0;
|
||||
tft_style_lable_rel.text.letter_space = 0;
|
||||
tft_style_lable_pre.text.line_space = -5;
|
||||
tft_style_lable_rel.text.line_space = -5;
|
||||
|
||||
style_num_key_pre.line.width = 0;
|
||||
style_num_key_rel.line.width = 0;
|
||||
style_num_key_pre.text.letter_space = 0;
|
||||
style_num_key_rel.text.letter_space = 0;
|
||||
style_num_key_pre.text.line_space = -5;
|
||||
style_num_key_rel.text.line_space = -5;
|
||||
lv_style_copy(&style_num_text, &lv_style_scr);
|
||||
|
||||
style_num_text.body.main_color = LV_COLOR_WHITE;
|
||||
style_num_text.body.grad_color = LV_COLOR_WHITE;
|
||||
style_num_text.text.color = LV_COLOR_BLACK;
|
||||
style_num_text.text.sel_color = LV_COLOR_BLACK;
|
||||
style_num_text.text.font = TERN(HAS_SPI_FLASH_FONT, &gb2312_puhui32, LV_FONT_DEFAULT);
|
||||
style_num_text.line.width = 0;
|
||||
style_num_text.text.letter_space = 0;
|
||||
style_num_text.text.line_space = -5;
|
||||
|
||||
lv_style_copy(&style_line, &lv_style_plain);
|
||||
style_line.line.color = LV_COLOR_MAKE(0x49, 0x54, 0xff);
|
||||
style_line.line.width = 1;
|
||||
style_line.line.rounded = 1;
|
||||
}
|
||||
|
||||
#define MAX_TITLE_LEN 28
|
||||
|
||||
char public_buf_m[100] = {0};
|
||||
|
||||
char public_buf_l[30];
|
||||
|
||||
void titleText_cat(char *str, int strSize, char *addPart) {
|
||||
|
@ -195,7 +263,7 @@ void titleText_cat(char *str, int strSize, char *addPart) {
|
|||
|
||||
char *getDispText(int index) {
|
||||
|
||||
memset(public_buf_l, 0, sizeof(public_buf_l));
|
||||
ZERO(public_buf_l);
|
||||
|
||||
switch (disp_state_stack._disp_state[index]) {
|
||||
case PRINT_READY_UI:
|
||||
|
@ -244,7 +312,8 @@ char *getDispText(int index) {
|
|||
strcpy(public_buf_l, fan_menu.title);
|
||||
break;
|
||||
case PRE_HEAT_UI:
|
||||
if ((disp_state_stack._disp_state[disp_state_stack._disp_index - 1] == OPERATE_UI)) strcpy(public_buf_l, preheat_menu.adjust_title);
|
||||
if ((disp_state_stack._disp_state[disp_state_stack._disp_index - 1] == OPERATE_UI))
|
||||
strcpy(public_buf_l, preheat_menu.adjust_title);
|
||||
else strcpy(public_buf_l, preheat_menu.title);
|
||||
break;
|
||||
case SET_UI:
|
||||
|
@ -300,6 +369,9 @@ char *getDispText(int index) {
|
|||
case BABY_STEP_UI:
|
||||
strcpy(public_buf_l, operation_menu.babystep);
|
||||
break;
|
||||
case EEPROM_SETTINGS_UI:
|
||||
strcpy(public_buf_l, eeprom_menu.title);
|
||||
break;
|
||||
default: break;
|
||||
}
|
||||
|
||||
|
@ -311,7 +383,7 @@ char *creat_title_text() {
|
|||
char *tmpText = 0;
|
||||
char tmpCurFileStr[20];
|
||||
|
||||
memset(tmpCurFileStr, 0, sizeof(tmpCurFileStr));
|
||||
ZERO(tmpCurFileStr);
|
||||
|
||||
#if _LFN_UNICODE
|
||||
// cutFileName((TCHAR *)curFileName, 16, 16, (TCHAR *)tmpCurFileStr);
|
||||
|
@ -319,7 +391,7 @@ char *creat_title_text() {
|
|||
cutFileName(list_file.long_name[sel_id], 16, 16, tmpCurFileStr);
|
||||
#endif
|
||||
|
||||
memset(public_buf_m, 0, sizeof(public_buf_m));
|
||||
ZERO(public_buf_m);
|
||||
|
||||
while (index <= disp_state_stack._disp_index) {
|
||||
tmpText = getDispText(index);
|
||||
|
@ -336,14 +408,14 @@ char *creat_title_text() {
|
|||
|
||||
if (disp_state_stack._disp_state[disp_state_stack._disp_index] == PRINTING_UI
|
||||
/*|| disp_state_stack._disp_state[disp_state_stack._disp_index] == OPERATE_UI
|
||||
|| disp_state_stack._disp_state[disp_state_stack._disp_index] == PAUSE_UI*/) {
|
||||
|| disp_state_stack._disp_state[disp_state_stack._disp_index] == PAUSE_UI*/
|
||||
) {
|
||||
titleText_cat(public_buf_m, sizeof(public_buf_m), (char *)":");
|
||||
titleText_cat(public_buf_m, sizeof(public_buf_m), tmpCurFileStr);
|
||||
}
|
||||
|
||||
if (strlen(public_buf_m) > MAX_TITLE_LEN) {
|
||||
memset(public_buf_m, 0, sizeof(public_buf_m));
|
||||
|
||||
ZERO(public_buf_m);
|
||||
tmpText = getDispText(0);
|
||||
if (*tmpText != 0) {
|
||||
titleText_cat(public_buf_m, sizeof(public_buf_m), tmpText);
|
||||
|
@ -351,13 +423,13 @@ char *creat_title_text() {
|
|||
tmpText = getDispText(disp_state_stack._disp_index);
|
||||
if (*tmpText != 0) titleText_cat(public_buf_m, sizeof(public_buf_m), tmpText);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
return public_buf_m;
|
||||
}
|
||||
|
||||
#if HAS_GCODE_PREVIEW
|
||||
|
||||
uint32_t gPicturePreviewStart = 0;
|
||||
|
||||
void preview_gcode_prehandle(char *path) {
|
||||
|
@ -392,6 +464,8 @@ void preview_gcode_prehandle(char *path) {
|
|||
#endif
|
||||
}
|
||||
|
||||
#if 1
|
||||
|
||||
void gcode_preview(char *path, int xpos_pixel, int ypos_pixel) {
|
||||
#if ENABLED(SDSUPPORT)
|
||||
// uint8_t ress;
|
||||
|
@ -422,7 +496,7 @@ void gcode_preview(char *path, int xpos_pixel, int ypos_pixel) {
|
|||
// SERIAL_ECHOLNPAIR("gPicturePreviewStart: ", gPicturePreviewStart, " PREVIEW_LITTLE_PIC_SIZE: ", PREVIEW_LITTLE_PIC_SIZE);
|
||||
|
||||
card.setIndex((gPicturePreviewStart + To_pre_view) + size * row + 8);
|
||||
#if ENABLED(SPI_GRAPHICAL_TFT)
|
||||
#if ENABLED(TFT_LVGL_UI_SPI)
|
||||
SPI_TFT.spi_init(SPI_FULL_SPEED);
|
||||
// SPI_TFT.SetCursor(0,0);
|
||||
SPI_TFT.SetWindows(xpos_pixel, ypos_pixel + row, 200, 1);
|
||||
|
@ -441,26 +515,17 @@ void gcode_preview(char *path, int xpos_pixel, int ypos_pixel) {
|
|||
i += 2;
|
||||
j++;
|
||||
}
|
||||
|
||||
//if (i > 800) break;
|
||||
//#ifdef TFT70
|
||||
//if (j>400) {
|
||||
// f_read(file, buff_pic, 1, &read);
|
||||
// break;
|
||||
//}
|
||||
//#elif defined(TFT35)
|
||||
if (j >= 400)
|
||||
//f_read(file, buff_pic, 1, &read);
|
||||
break;
|
||||
//#endif
|
||||
|
||||
if (j >= 400) break;
|
||||
}
|
||||
#if ENABLED(SPI_GRAPHICAL_TFT)
|
||||
#if ENABLED(TFT_LVGL_UI_SPI)
|
||||
uint16_t Color, SpiColor;
|
||||
SpiColor = (LV_COLOR_BACKGROUND.full >> 8) | ((LV_COLOR_BACKGROUND.full & 0xFF) << 8);
|
||||
for (i = 0; i < 400;) {
|
||||
p_index = (uint16_t *)(&bmp_public_buf[i]);
|
||||
Color = (*p_index >> 8);
|
||||
*p_index = Color | ((*p_index & 0xFF) << 8);
|
||||
i += 2;
|
||||
if (*p_index == 0x0000) *p_index = SpiColor;
|
||||
}
|
||||
SPI_TFT_CS_L;
|
||||
SPI_TFT_DC_H;
|
||||
|
@ -538,31 +603,186 @@ void gcode_preview(char *path, int xpos_pixel, int ypos_pixel) {
|
|||
#endif // SDSUPPORT
|
||||
}
|
||||
|
||||
#else // if 1
|
||||
|
||||
void gcode_preview(char *path, int xpos_pixel, int ypos_pixel) {
|
||||
#if ENABLED(SDSUPPORT)
|
||||
// uint8_t ress;
|
||||
// uint32_t write;
|
||||
volatile uint32_t i, j;
|
||||
volatile uint16_t *p_index;
|
||||
// int res;
|
||||
char *cur_name;
|
||||
uint16_t Color;
|
||||
|
||||
cur_name = strrchr(path, '/');
|
||||
card.openFileRead(cur_name);
|
||||
|
||||
card.setIndex((PREVIEW_LITTLE_PIC_SIZE + To_pre_view) + size * row + 8);
|
||||
#if ENABLED(TFT_LVGL_UI_SPI)
|
||||
SPI_TFT.spi_init(SPI_FULL_SPEED);
|
||||
// SPI_TFT.SetCursor(0,0);
|
||||
SPI_TFT.SetWindows(xpos_pixel, ypos_pixel + row, 200, 1);
|
||||
SPI_TFT.LCD_WriteRAM_Prepare();
|
||||
#else
|
||||
ili9320_SetWindows(xpos_pixel, ypos_pixel + row, 200, 1);
|
||||
LCD_WriteRAM_Prepare();
|
||||
#endif
|
||||
|
||||
j = 0;
|
||||
i = 0;
|
||||
|
||||
while (1) {
|
||||
card.read(public_buf, 400);
|
||||
for (i = 0; i < 400;) {
|
||||
bmp_public_buf[j] = ascii2dec_test((char*)&public_buf[i]) << 4 | ascii2dec_test((char*)&public_buf[i + 1]);
|
||||
i += 2;
|
||||
j++;
|
||||
}
|
||||
|
||||
//if (i > 800) break;
|
||||
//#ifdef TFT70
|
||||
// if (j > 400) {
|
||||
// f_read(file, buff_pic, 1, &read);
|
||||
// break;
|
||||
// }
|
||||
//#elif defined(TFT35)
|
||||
if (j >= 400)
|
||||
//f_read(file, buff_pic, 1, &read);
|
||||
break;
|
||||
//#endif
|
||||
|
||||
}
|
||||
#if ENABLED(TFT_LVGL_UI_SPI)
|
||||
for (i = 0; i < 400;) {
|
||||
p_index = (uint16_t *)(&bmp_public_buf[i]);
|
||||
|
||||
Color = (*p_index >> 8);
|
||||
*p_index = Color | ((*p_index & 0xff) << 8);
|
||||
i += 2;
|
||||
if (*p_index == 0x0000) *p_index = 0xC318;
|
||||
}
|
||||
SPI_TFT_CS_L;
|
||||
SPI_TFT_DC_H;
|
||||
SPI.dmaSend(bmp_public_buf, 400, true);
|
||||
SPI_TFT_CS_H;
|
||||
|
||||
#else
|
||||
for (i = 0; i < 400;) {
|
||||
p_index = (uint16_t *)(&bmp_public_buf[i]);
|
||||
if (*p_index == 0x0000) *p_index = 0x18C3;
|
||||
LCD_IO_WriteData(*p_index);
|
||||
i = i + 2;
|
||||
}
|
||||
#endif
|
||||
W25QXX.init(SPI_QUARTER_SPEED);
|
||||
if (row < 20)
|
||||
W25QXX.SPI_FLASH_SectorErase(BAK_VIEW_ADDR_TFT35 + row * 4096);
|
||||
W25QXX.SPI_FLASH_BufferWrite(bmp_public_buf, BAK_VIEW_ADDR_TFT35 + row * 400, 400);
|
||||
row++;
|
||||
if (row >= 200) {
|
||||
size = 809;
|
||||
row = 0;
|
||||
|
||||
gcode_preview_over = 0;
|
||||
// flash_preview_begin = 1;
|
||||
|
||||
card.closefile();
|
||||
|
||||
/*
|
||||
if (gCurFileState.file_open_flag != 0xaa) {
|
||||
reset_file_info();
|
||||
res = f_open(file, curFileName, FA_OPEN_EXISTING | FA_READ);
|
||||
if (res == FR_OK) {
|
||||
f_lseek(file,PREVIEW_SIZE+To_pre_view);
|
||||
gCurFileState.file_open_flag = 0xaa;
|
||||
//bakup_file_path((uint8_t *)curFileName, strlen(curFileName));
|
||||
srcfp = file;
|
||||
mksReprint.mks_printer_state = MKS_WORKING;
|
||||
once_flag = 0;
|
||||
}
|
||||
}
|
||||
*/
|
||||
char *cur_name;
|
||||
|
||||
cur_name = strrchr(list_file.file_name[sel_id], '/');
|
||||
|
||||
SdFile file;
|
||||
SdFile *curDir;
|
||||
card.endFilePrint();
|
||||
const char * const fname = card.diveToFile(true, curDir, cur_name);
|
||||
if (!fname) return;
|
||||
if (file.open(curDir, fname, O_READ)) {
|
||||
gCfgItems.curFilesize = file.fileSize();
|
||||
file.close();
|
||||
update_spi_flash();
|
||||
}
|
||||
|
||||
card.openFileRead(cur_name);
|
||||
if (card.isFileOpen()) {
|
||||
feedrate_percentage = 100;
|
||||
// saved_feedrate_percentage = feedrate_percentage;
|
||||
planner.flow_percentage[0] = 100;
|
||||
planner.e_factor[0] = planner.flow_percentage[0] * 0.01;
|
||||
if (EXTRUDERS == 2) {
|
||||
planner.flow_percentage[1] = 100;
|
||||
planner.e_factor[1] = planner.flow_percentage[1] * 0.01;
|
||||
}
|
||||
card.startFileprint();
|
||||
TERN_(POWER_LOSS_RECOVERY, recovery.prepare());
|
||||
once_flag = 0;
|
||||
}
|
||||
return;
|
||||
}
|
||||
card.closefile();
|
||||
#endif // SDSUPPORT
|
||||
}
|
||||
|
||||
#endif // if 1
|
||||
|
||||
void Draw_default_preview(int xpos_pixel, int ypos_pixel, uint8_t sel) {
|
||||
int index;
|
||||
int x_off = 0, y_off = 0;
|
||||
int y_off = 0;
|
||||
int _y;
|
||||
uint16_t *p_index;
|
||||
int i;
|
||||
uint16_t temp_p;
|
||||
|
||||
for (index = 0; index < 10; index++) { // 200*200
|
||||
#if HAS_BAK_VIEW_IN_FLASH
|
||||
if (sel == 1) flash_view_Read(bmp_public_buf, 8000); //20k
|
||||
//memset(bmp_public_buf,0x1f,8000);
|
||||
else
|
||||
//memset(bmp_public_buf,0x1f,8000);
|
||||
if (sel == 1) {
|
||||
flash_view_Read(bmp_public_buf, 8000); // 20k
|
||||
}
|
||||
else {
|
||||
default_view_Read(bmp_public_buf, DEFAULT_VIEW_MAX_SIZE / 10); // 20k
|
||||
#if ENABLED(TFT_LVGL_UI_SPI)
|
||||
uint16_t Color;
|
||||
for (i = 0; i < (DEFAULT_VIEW_MAX_SIZE / 10);) {
|
||||
p_index = (uint16_t *)(&bmp_public_buf[i]);
|
||||
Color = (*p_index >> 8);
|
||||
*p_index = Color | ((*p_index & 0xff) << 8);
|
||||
i += 2;
|
||||
}
|
||||
#endif
|
||||
}
|
||||
#else
|
||||
default_view_Read(bmp_public_buf, DEFAULT_VIEW_MAX_SIZE / 10); // 20k
|
||||
#if ENABLED(TFT_LVGL_UI_SPI)
|
||||
for (i = 0; i < (DEFAULT_VIEW_MAX_SIZE / 10);) {
|
||||
p_index = (uint16_t *)(&bmp_public_buf[i]);
|
||||
Color = (*p_index >> 8);
|
||||
*p_index = Color | ((*p_index & 0xff) << 8);
|
||||
i += 2;
|
||||
}
|
||||
#endif
|
||||
#endif
|
||||
|
||||
i = 0;
|
||||
#if ENABLED(SPI_GRAPHICAL_TFT)
|
||||
#if ENABLED(TFT_LVGL_UI_SPI)
|
||||
|
||||
// SPI_TFT.spi_init(SPI_FULL_SPEED);
|
||||
// SPI_TFT.SetWindows(xpos_pixel, y_off * 20+ypos_pixel, 200,20); //200*200
|
||||
// SPI_TFT.LCD_WriteRAM_Prepare();
|
||||
j = 0;
|
||||
int j = 0;
|
||||
for (_y = y_off * 20; _y < (y_off + 1) * 20; _y++) {
|
||||
SPI_TFT.spi_init(SPI_FULL_SPEED);
|
||||
SPI_TFT.SetWindows(xpos_pixel, y_off * 20 + ypos_pixel + j, 200, 1); // 200*200
|
||||
|
@ -579,6 +799,8 @@ void Draw_default_preview(int xpos_pixel, int ypos_pixel, uint8_t sel) {
|
|||
if (i >= 8000) break;
|
||||
}
|
||||
#else
|
||||
int x_off = 0;
|
||||
uint16_t temp_p;
|
||||
ili9320_SetWindows(xpos_pixel, y_off * 20 + ypos_pixel, 200, 20); // 200*200
|
||||
|
||||
LCD_WriteRAM_Prepare();
|
||||
|
@ -598,7 +820,7 @@ void Draw_default_preview(int xpos_pixel, int ypos_pixel, uint8_t sel) {
|
|||
}
|
||||
if (i >= 8000) break;
|
||||
}
|
||||
#endif
|
||||
#endif // if ENABLED(TFT_LVGL_UI_SPI)
|
||||
y_off++;
|
||||
}
|
||||
W25QXX.init(SPI_QUARTER_SPEED);
|
||||
|
@ -619,7 +841,7 @@ void disp_pre_gcode(int xpos_pixel, int ypos_pixel) {
|
|||
}
|
||||
#endif
|
||||
}
|
||||
#endif
|
||||
#endif // if HAS_GCODE_PREVIEW
|
||||
|
||||
void print_time_run() {
|
||||
static uint8_t lastSec = 0;
|
||||
|
@ -644,7 +866,7 @@ void GUI_RefreshPage() {
|
|||
|
||||
switch (disp_state) {
|
||||
case MAIN_UI:
|
||||
lv_draw_ready_print();
|
||||
// lv_draw_ready_print();
|
||||
break;
|
||||
case EXTRUSION_UI:
|
||||
if (temperature_change_frequency == 1) {
|
||||
|
@ -721,7 +943,7 @@ void GUI_RefreshPage() {
|
|||
{
|
||||
memset((char *)gCfgItems.move_z_coordinate, ' ', sizeof(gCfgItems.move_z_coordinate));
|
||||
GUI_DispStringAt((const char *)gCfgItems.move_z_coordinate, 380, TITLE_YPOS);
|
||||
sprintf((char *)gCfgItems.move_z_coordinate, "Z: %.3f", current_position[Z_AXIS]);
|
||||
sprintf_P((char *)gCfgItems.move_z_coordinate, PSTR("Z: %.3f"), current_position[Z_AXIS]);
|
||||
GUI_DispStringAt((const char *)gCfgItems.move_z_coordinate, 380, TITLE_YPOS);
|
||||
}
|
||||
}
|
||||
|
@ -844,7 +1066,7 @@ void clear_cur_ui() {
|
|||
lv_clear_move_motor();
|
||||
break;
|
||||
case OPERATE_UI:
|
||||
lv_clear_opration();
|
||||
lv_clear_operation();
|
||||
break;
|
||||
case PAUSE_UI:
|
||||
//Clear_pause();
|
||||
|
@ -931,16 +1153,16 @@ void clear_cur_ui() {
|
|||
//Clear_Tips();
|
||||
break;
|
||||
case MACHINE_PARA_UI:
|
||||
//Clear_MachinePara();
|
||||
lv_clear_machine_para();
|
||||
break;
|
||||
case MACHINE_SETTINGS_UI:
|
||||
//Clear_MachineSettings();
|
||||
lv_clear_machine_settings();
|
||||
break;
|
||||
case TEMPERATURE_SETTINGS_UI:
|
||||
//Clear_TemperatureSettings();
|
||||
break;
|
||||
case MOTOR_SETTINGS_UI:
|
||||
//Clear_MotorSettings();
|
||||
lv_clear_motor_settings();
|
||||
break;
|
||||
case MACHINETYPE_UI:
|
||||
//Clear_MachineType();
|
||||
|
@ -970,16 +1192,18 @@ void clear_cur_ui() {
|
|||
//Clear_XYZLevelPara();
|
||||
break;
|
||||
case MAXFEEDRATE_UI:
|
||||
//Clear_MaxFeedRate();
|
||||
lv_clear_max_feedrate_settings();
|
||||
break;
|
||||
case STEPS_UI:
|
||||
//Clear_Steps();
|
||||
lv_clear_step_settings();
|
||||
break;
|
||||
case ACCELERATION_UI:
|
||||
//Clear_Acceleration();
|
||||
lv_clear_acceleration_settings();
|
||||
break;
|
||||
case JERK_UI:
|
||||
//Clear_Jerk();
|
||||
#if HAS_CLASSIC_JERK
|
||||
lv_clear_jerk_settings();
|
||||
#endif
|
||||
break;
|
||||
case MOTORDIR_UI:
|
||||
//Clear_MotorDir();
|
||||
|
@ -994,7 +1218,7 @@ void clear_cur_ui() {
|
|||
//Clear_HotbedConfig();
|
||||
break;
|
||||
case ADVANCED_UI:
|
||||
//Clear_Advanced();
|
||||
lv_clear_advance_settings();
|
||||
break;
|
||||
case DOUBLE_Z_UI:
|
||||
//Clear_DoubleZ();
|
||||
|
@ -1003,11 +1227,27 @@ void clear_cur_ui() {
|
|||
//Clear_EnableInvert();
|
||||
break;
|
||||
case NUMBER_KEY_UI:
|
||||
//Clear_NumberKey();
|
||||
lv_clear_number_key();
|
||||
break;
|
||||
case BABY_STEP_UI:
|
||||
//Clear_babyStep();
|
||||
break;
|
||||
case PAUSE_POS_UI:
|
||||
lv_clear_pause_position();
|
||||
break;
|
||||
#if HAS_TRINAMIC_CONFIG
|
||||
case TMC_CURRENT_UI:
|
||||
lv_clear_tmc_current_settings();
|
||||
break;
|
||||
#endif
|
||||
case EEPROM_SETTINGS_UI:
|
||||
lv_clear_eeprom_settings();
|
||||
break;
|
||||
#if HAS_STEALTHCHOP
|
||||
case TMC_MODE_UI:
|
||||
lv_clear_tmc_step_mode_settings();
|
||||
break;
|
||||
#endif
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
@ -1034,7 +1274,7 @@ void draw_return_ui() {
|
|||
lv_draw_move_motor();
|
||||
break;
|
||||
case OPERATE_UI:
|
||||
lv_draw_opration();
|
||||
lv_draw_operation();
|
||||
break;
|
||||
|
||||
#if 1
|
||||
|
@ -1130,16 +1370,16 @@ void draw_return_ui() {
|
|||
//draw_Tips();
|
||||
break;
|
||||
case MACHINE_PARA_UI:
|
||||
//draw_MachinePara();
|
||||
lv_draw_machine_para();
|
||||
break;
|
||||
case MACHINE_SETTINGS_UI:
|
||||
//draw_MachineSettings();
|
||||
lv_draw_machine_settings();
|
||||
break;
|
||||
case TEMPERATURE_SETTINGS_UI:
|
||||
//draw_TemperatureSettings();
|
||||
break;
|
||||
case MOTOR_SETTINGS_UI:
|
||||
//draw_MotorSettings();
|
||||
lv_draw_motor_settings();
|
||||
break;
|
||||
case MACHINETYPE_UI:
|
||||
//draw_MachineType();
|
||||
|
@ -1169,16 +1409,18 @@ void draw_return_ui() {
|
|||
//draw_XYZLevelPara();
|
||||
break;
|
||||
case MAXFEEDRATE_UI:
|
||||
//draw_MaxFeedRate();
|
||||
lv_draw_max_feedrate_settings();
|
||||
break;
|
||||
case STEPS_UI:
|
||||
//draw_Steps();
|
||||
lv_draw_step_settings();
|
||||
break;
|
||||
case ACCELERATION_UI:
|
||||
//draw_Acceleration();
|
||||
lv_draw_acceleration_settings();
|
||||
break;
|
||||
case JERK_UI:
|
||||
//draw_Jerk();
|
||||
#if HAS_CLASSIC_JERK
|
||||
lv_draw_jerk_settings();
|
||||
#endif
|
||||
break;
|
||||
case MOTORDIR_UI:
|
||||
//draw_MotorDir();
|
||||
|
@ -1193,7 +1435,7 @@ void draw_return_ui() {
|
|||
//draw_HotbedConfig();
|
||||
break;
|
||||
case ADVANCED_UI:
|
||||
//draw_Advanced();
|
||||
lv_draw_advance_settings();
|
||||
break;
|
||||
case DOUBLE_Z_UI:
|
||||
//draw_DoubleZ();
|
||||
|
@ -1202,7 +1444,7 @@ void draw_return_ui() {
|
|||
//draw_EnableInvert();
|
||||
break;
|
||||
case NUMBER_KEY_UI:
|
||||
//draw_NumberKey();
|
||||
lv_draw_number_key();
|
||||
break;
|
||||
case DIALOG_UI:
|
||||
//draw_dialog(DialogType);
|
||||
|
@ -1210,6 +1452,22 @@ void draw_return_ui() {
|
|||
case BABY_STEP_UI:
|
||||
//draw_babyStep();
|
||||
break;
|
||||
case PAUSE_POS_UI:
|
||||
lv_draw_pause_position();
|
||||
break;
|
||||
#if HAS_TRINAMIC_CONFIG
|
||||
case TMC_CURRENT_UI:
|
||||
lv_draw_tmc_current_settings();
|
||||
break;
|
||||
#endif
|
||||
case EEPROM_SETTINGS_UI:
|
||||
lv_draw_eeprom_settings();
|
||||
break;
|
||||
#if HAS_STEALTHCHOP
|
||||
case TMC_MODE_UI:
|
||||
lv_draw_tmc_step_mode_settings();
|
||||
break;
|
||||
#endif
|
||||
default: break;
|
||||
}
|
||||
}
|
||||
|
@ -1228,6 +1486,13 @@ void draw_return_ui() {
|
|||
|
||||
#endif
|
||||
|
||||
void lv_ex_line(lv_obj_t * line, lv_point_t *points) {
|
||||
/*Copy the previous line and apply the new style*/
|
||||
lv_line_set_points(line, points, 2); /*Set the points*/
|
||||
lv_line_set_style(line, LV_LINE_STYLE_MAIN, &style_line);
|
||||
lv_obj_align(line, NULL, LV_ALIGN_IN_TOP_MID, 0, 0);
|
||||
}
|
||||
|
||||
extern volatile uint32_t systick_uptime_millis;
|
||||
|
||||
void print_time_count() {
|
||||
|
@ -1238,7 +1503,7 @@ void print_time_count() {
|
|||
void LV_TASK_HANDLER() {
|
||||
// lv_tick_inc(1);
|
||||
lv_task_handler();
|
||||
TERN_(MKS_TEST, mks_test());
|
||||
if (mks_test_flag == 0x1e) mks_hardware_test();
|
||||
#if HAS_GCODE_PREVIEW
|
||||
disp_pre_gcode(2, 36);
|
||||
#endif
|
||||
|
@ -1246,4 +1511,4 @@ void LV_TASK_HANDLER() {
|
|||
// sd_detection();
|
||||
}
|
||||
|
||||
#endif // TFT_LVGL_UI
|
||||
#endif // HAS_TFT_LVGL_UI
|
||||
|
|
|
@ -25,9 +25,10 @@
|
|||
extern "C" { /* C-declarations for C++ */
|
||||
#endif
|
||||
|
||||
#include <lvgl.h>
|
||||
|
||||
#include <stdint.h>
|
||||
#include <string.h>
|
||||
#include "lvgl.h"
|
||||
|
||||
// the colors of the last MKS Ui
|
||||
#undef LV_COLOR_BACKGROUND
|
||||
|
@ -41,7 +42,7 @@ extern "C" { /* C-declarations for C++ */
|
|||
#include "draw_print_file.h"
|
||||
#include "draw_dialog.h"
|
||||
#include "draw_printing.h"
|
||||
#include "draw_opration.h"
|
||||
#include "draw_operation.h"
|
||||
#include "draw_preHeat.h"
|
||||
#include "draw_extrusion.h"
|
||||
#include "draw_home.h"
|
||||
|
@ -51,7 +52,22 @@ extern "C" { /* C-declarations for C++ */
|
|||
#include "draw_change_speed.h"
|
||||
#include "draw_manuaLevel.h"
|
||||
#include "draw_error_message.h"
|
||||
#include "printer_opration.h"
|
||||
#include "printer_operation.h"
|
||||
#include "draw_machine_para.h"
|
||||
#include "draw_machine_settings.h"
|
||||
#include "draw_motor_settings.h"
|
||||
#include "draw_advance_settings.h"
|
||||
#include "draw_acceleration_settings.h"
|
||||
#include "draw_number_key.h"
|
||||
#include "draw_jerk_settings.h"
|
||||
#include "draw_pause_position.h"
|
||||
#include "draw_step_settings.h"
|
||||
#include "draw_tmc_current_settings.h"
|
||||
#include "draw_eeprom_settings.h"
|
||||
#include "draw_max_feedrate_settings.h"
|
||||
#include "draw_tmc_step_mode_settings.h"
|
||||
|
||||
#include "../../inc/MarlinConfigPre.h"
|
||||
|
||||
#define TFT35
|
||||
|
||||
|
@ -86,12 +102,34 @@ extern "C" { /* C-declarations for C++ */
|
|||
|
||||
#define GCFG_FLAG_VALUE 0xEE
|
||||
|
||||
#else
|
||||
// machine parameter ui
|
||||
#define PARA_UI_POS_X 10
|
||||
#define PARA_UI_POS_Y 50
|
||||
|
||||
#define PARA_UI_SIZE_X 450
|
||||
#define PARA_UI_SIZE_Y 40
|
||||
|
||||
#define PARA_UI_ARROW_V 12
|
||||
|
||||
#define PARA_UI_BACL_POS_X 400
|
||||
#define PARA_UI_BACL_POS_Y 270
|
||||
|
||||
#define PARA_UI_TURN_PAGE_POS_X 320
|
||||
#define PARA_UI_TURN_PAGE_POS_Y 270
|
||||
|
||||
#define PARA_UI_VALUE_SIZE_X 370
|
||||
#define PARA_UI_VALUE_POS_X 400
|
||||
#define PARA_UI_VALUE_V 5
|
||||
|
||||
#define PARA_UI_STATE_POS_X 380
|
||||
#define PARA_UI_STATE_V 2
|
||||
|
||||
#else // ifdef TFT35
|
||||
|
||||
#define TFT_WIDTH 320
|
||||
#define TFT_HEIGHT 240
|
||||
|
||||
#endif
|
||||
#endif // ifdef TFT35
|
||||
|
||||
extern char public_buf_m[100];
|
||||
extern char public_buf_l[30];
|
||||
|
@ -104,6 +142,9 @@ typedef struct {
|
|||
uint8_t from_flash_pic;
|
||||
uint8_t finish_power_off;
|
||||
uint8_t pause_reprint;
|
||||
float pausePosX;
|
||||
float pausePosY;
|
||||
float pausePosZ;
|
||||
uint32_t curFilesize;
|
||||
} CFG_ITMES;
|
||||
|
||||
|
@ -111,7 +152,8 @@ typedef struct {
|
|||
uint8_t curTempType : 1,
|
||||
curSprayerChoose : 3,
|
||||
stepHeat : 4;
|
||||
uint8_t leveling_first_time : 1;
|
||||
uint8_t leveling_first_time : 1,
|
||||
para_ui_page : 1;
|
||||
uint8_t extruStep;
|
||||
uint8_t extruSpeed;
|
||||
uint8_t print_state;
|
||||
|
@ -185,7 +227,11 @@ typedef enum {
|
|||
ENABLE_INVERT_UI,
|
||||
NUMBER_KEY_UI,
|
||||
BABY_STEP_UI,
|
||||
ERROR_MESSAGE_UI
|
||||
ERROR_MESSAGE_UI,
|
||||
PAUSE_POS_UI,
|
||||
TMC_CURRENT_UI,
|
||||
TMC_MODE_UI,
|
||||
EEPROM_SETTINGS_UI
|
||||
} DISP_STATE;
|
||||
|
||||
typedef struct {
|
||||
|
@ -203,6 +249,46 @@ typedef struct {
|
|||
} PRINT_TIME;
|
||||
extern PRINT_TIME print_time;
|
||||
|
||||
typedef enum {
|
||||
PrintAcceleration,
|
||||
RetractAcceleration,
|
||||
TravelAcceleration,
|
||||
XAcceleration,
|
||||
YAcceleration,
|
||||
ZAcceleration,
|
||||
E0Acceleration,
|
||||
E1Acceleration,
|
||||
|
||||
XMaxFeedRate,
|
||||
YMaxFeedRate,
|
||||
ZMaxFeedRate,
|
||||
E0MaxFeedRate,
|
||||
E1MaxFeedRate,
|
||||
|
||||
XJerk,
|
||||
YJerk,
|
||||
ZJerk,
|
||||
EJerk,
|
||||
|
||||
Xstep,
|
||||
Ystep,
|
||||
Zstep,
|
||||
E0step,
|
||||
E1step,
|
||||
|
||||
Xcurrent,
|
||||
Ycurrent,
|
||||
Zcurrent,
|
||||
E0current,
|
||||
E1current,
|
||||
|
||||
pause_pos_x,
|
||||
pause_pos_y,
|
||||
pause_pos_z
|
||||
|
||||
}value_state;
|
||||
extern value_state value;
|
||||
|
||||
extern CFG_ITMES gCfgItems;
|
||||
extern UI_CFG uiCfg;
|
||||
extern DISP_STATE disp_state;
|
||||
|
@ -210,8 +296,16 @@ extern DISP_STATE last_disp_state;
|
|||
extern DISP_STATE_STACK disp_state_stack;
|
||||
|
||||
extern lv_style_t tft_style_scr;
|
||||
extern lv_style_t tft_style_lable_pre;
|
||||
extern lv_style_t tft_style_lable_rel;
|
||||
extern lv_style_t tft_style_label_pre;
|
||||
extern lv_style_t tft_style_label_rel;
|
||||
extern lv_style_t style_line;
|
||||
extern lv_style_t style_para_value_pre;
|
||||
extern lv_style_t style_para_value_rel;
|
||||
extern lv_style_t style_num_key_pre;
|
||||
extern lv_style_t style_num_key_rel;
|
||||
extern lv_style_t style_num_text;
|
||||
|
||||
extern lv_point_t line_points[4][2];
|
||||
|
||||
extern void gCfgItems_init();
|
||||
extern void ui_cfg_init();
|
||||
|
@ -230,6 +324,7 @@ extern void gCfg_to_spiFlah();
|
|||
extern void print_time_count();
|
||||
|
||||
extern void LV_TASK_HANDLER();
|
||||
extern void lv_ex_line(lv_obj_t * line, lv_point_t *points);
|
||||
|
||||
#ifdef __cplusplus
|
||||
} /* C-declarations for C++ */
|
||||
|
|
|
@ -21,11 +21,12 @@
|
|||
*/
|
||||
#include "../../../../inc/MarlinConfigPre.h"
|
||||
|
||||
#if ENABLED(TFT_LVGL_UI)
|
||||
#if HAS_TFT_LVGL_UI
|
||||
|
||||
#include "../../../../MarlinCore.h"
|
||||
#include "lvgl.h"
|
||||
#include "pic_manager.h"
|
||||
#include <lvgl.h>
|
||||
|
||||
#include "../../../../inc/MarlinConfig.h"
|
||||
|
||||
#if HAS_SPI_FLASH_FONT
|
||||
|
||||
|
@ -46,10 +47,10 @@ typedef struct {
|
|||
} glyph_dsc_t;
|
||||
|
||||
static x_header_t __g_xbf_hd = { .min = 0, .max = 0, .bpp = 0 };
|
||||
static uint8_t __g_font_buf[75];
|
||||
static uint8_t __g_font_buf[63];
|
||||
|
||||
static uint8_t *__user_font_getdata(int offset, int size) {
|
||||
//memset(__g_font_buf,0,sizeof(__g_font_buf));
|
||||
//ZERO(__g_font_buf);
|
||||
get_spi_flash_data((char *)__g_font_buf, offset, size);
|
||||
return __g_font_buf;
|
||||
//return &buf_test[offset];
|
||||
|
@ -106,10 +107,9 @@ lv_font_t gb2312_puhui32;
|
|||
void init_gb2312_font() {
|
||||
gb2312_puhui32.get_glyph_bitmap = __user_font_get_bitmap;
|
||||
gb2312_puhui32.get_glyph_dsc = __user_font_get_glyph_dsc;
|
||||
gb2312_puhui32.line_height = 25;
|
||||
gb2312_puhui32.line_height = 21;
|
||||
gb2312_puhui32.base_line = 0;
|
||||
}
|
||||
|
||||
#endif // HAS_SPI_FLASH_FONT
|
||||
|
||||
#endif // TFT_LVGL_UI
|
||||
#endif // HAS_TFT_LVGL_UI
|
||||
|
|
|
@ -21,63 +21,69 @@
|
|||
*/
|
||||
#include "../../../../inc/MarlinConfigPre.h"
|
||||
|
||||
#if ENABLED(TFT_LVGL_UI)
|
||||
#if HAS_TFT_LVGL_UI
|
||||
|
||||
#if ENABLED(TFT_LVGL_UI_SPI)
|
||||
#include "SPI_TFT.h"
|
||||
#endif
|
||||
|
||||
#include "tft_lvgl_configuration.h"
|
||||
#include "lvgl.h"
|
||||
#include "draw_ready_print.h"
|
||||
#include "W25Qxx.h"
|
||||
#include "mks_hardware_test.h"
|
||||
#include "draw_ui.h"
|
||||
#include "pic_manager.h"
|
||||
#include <lvgl.h>
|
||||
|
||||
#include "../../../../MarlinCore.h"
|
||||
#include "../../../../module/temperature.h"
|
||||
#include "../../../../feature/touch/xpt2046.h"
|
||||
|
||||
#include "pic_manager.h"
|
||||
|
||||
#if ENABLED(MKS_TEST)
|
||||
|
||||
extern uint8_t curent_disp_ui;
|
||||
#include "../../../../sd/cardreader.h"
|
||||
|
||||
uint8_t pw_det_sta, pw_off_sta, mt_det_sta, mt_det2_sta, mt_det3_sta;
|
||||
uint8_t endstopx1_sta, endstopx2_sta, endstopy1_sta, endstopy2_sta, endstopz1_sta, endstopz2_sta;
|
||||
void test_gpio_readlevel_L() {
|
||||
#if ENABLED(MKS_TEST)
|
||||
volatile uint32_t itest;
|
||||
WRITE(WIFI_IO2_PIN, HIGH);
|
||||
WRITE(WIFI_IO0_PIN, HIGH);
|
||||
itest = 10000;
|
||||
while (itest--);
|
||||
pw_det_sta = (READ(POWER_LOSS_PIN) == 0);
|
||||
pw_off_sta = (READ(PS_ON_PIN) == 0);
|
||||
mt_det_sta = (READ(FIL_RUNOUT_PIN) == 0);
|
||||
mt_det2_sta = (READ(FIL_RUNOUT_2_PIN) == 0);
|
||||
mt_det3_sta = (READ(FIL_RUNOUT_3_PIN) == 0);
|
||||
mt_det_sta = (READ(MT_DET_1_PIN) == 0);
|
||||
mt_det2_sta = (READ(MT_DET_2_PIN) == 0);
|
||||
//mt_det3_sta = (READ(FIL_RUNOUT_3_PIN) == 0);
|
||||
endstopx1_sta = (READ(X_MIN_PIN) == 0);
|
||||
endstopx2_sta = (READ(X_MAX_PIN) == 0);
|
||||
endstopy1_sta = (READ(Y_MIN_PIN) == 0);
|
||||
endstopy2_sta = (READ(Y_MAX_PIN) == 0);
|
||||
endstopz1_sta = (READ(Z_MIN_PIN) == 0);
|
||||
endstopz2_sta = (READ(Z_MAX_PIN) == 0);
|
||||
#endif
|
||||
}
|
||||
|
||||
void test_gpio_readlevel_H() {
|
||||
#if ENABLED(MKS_TEST)
|
||||
volatile uint32_t itest;
|
||||
WRITE(WIFI_IO2_PIN, LOW);
|
||||
WRITE(WIFI_IO0_PIN, LOW);
|
||||
itest = 10000;
|
||||
while (itest--);
|
||||
pw_det_sta = (READ(POWER_LOSS_PIN) == 1);
|
||||
pw_off_sta = (READ(PS_ON_PIN) == 1);
|
||||
mt_det_sta = (READ(FIL_RUNOUT_PIN) == 1);
|
||||
mt_det2_sta = (READ(FIL_RUNOUT_2_PIN) == 1);
|
||||
mt_det3_sta = (READ(FIL_RUNOUT_3_PIN) == 1);
|
||||
mt_det_sta = (READ(MT_DET_1_PIN) == 1);
|
||||
mt_det2_sta = (READ(MT_DET_2_PIN) == 1);
|
||||
//mt_det3_sta = (READ(MT_DET_3_PIN) == 1);
|
||||
endstopx1_sta = (READ(X_MIN_PIN) == 1);
|
||||
endstopx2_sta = (READ(X_MAX_PIN) == 1);
|
||||
endstopy1_sta = (READ(Y_MIN_PIN) == 1);
|
||||
endstopy2_sta = (READ(Y_MAX_PIN) == 1);
|
||||
endstopz1_sta = (READ(Z_MIN_PIN) == 1);
|
||||
endstopz2_sta = (READ(Z_MAX_PIN) == 1);
|
||||
#endif
|
||||
}
|
||||
|
||||
void init_Tst_GPIO() {
|
||||
void init_test_gpio() {
|
||||
#ifdef MKS_TEST
|
||||
SET_INPUT_PULLUP(X_MIN_PIN);
|
||||
SET_INPUT_PULLUP(X_MAX_PIN);
|
||||
SET_INPUT_PULLUP(Y_MIN_PIN);
|
||||
|
@ -85,70 +91,77 @@
|
|||
SET_INPUT_PULLUP(Z_MIN_PIN);
|
||||
SET_INPUT_PULLUP(Z_MAX_PIN);
|
||||
|
||||
SET_OUTPUT(WIFI_IO2_PIN);
|
||||
SET_OUTPUT(WIFI_IO0_PIN);
|
||||
|
||||
SET_INPUT_PULLUP(FIL_RUNOUT_PIN);
|
||||
SET_INPUT_PULLUP(FIL_RUNOUT_2_PIN);
|
||||
SET_INPUT_PULLUP(FIL_RUNOUT_3_PIN);
|
||||
SET_INPUT_PULLUP(MT_DET_1_PIN);
|
||||
SET_INPUT_PULLUP(MT_DET_2_PIN);
|
||||
//SET_INPUT_PULLUP(MT_DET_3_PIN);
|
||||
|
||||
SET_INPUT_PULLUP(POWER_LOSS_PIN);
|
||||
SET_INPUT_PULLUP(PS_ON_PIN);
|
||||
|
||||
SET_INPUT_PULLUP(SERVO0_PIN);
|
||||
|
||||
SET_OUTPUT(E0_ENABLE_PIN);
|
||||
SET_OUTPUT(X_ENABLE_PIN);
|
||||
SET_OUTPUT(Y_ENABLE_PIN);
|
||||
SET_OUTPUT(Z_ENABLE_PIN);
|
||||
SET_OUTPUT(E0_ENABLE_PIN);
|
||||
SET_OUTPUT(E1_ENABLE_PIN);
|
||||
|
||||
WRITE(X_ENABLE_PIN, LOW);
|
||||
WRITE(Y_ENABLE_PIN, LOW);
|
||||
WRITE(Z_ENABLE_PIN, LOW);
|
||||
WRITE(E0_ENABLE_PIN, LOW);
|
||||
WRITE(E1_ENABLE_PIN, LOW);
|
||||
WRITE(E2_ENABLE_PIN, LOW);
|
||||
//WRITE(E2_ENABLE_PIN, LOW);
|
||||
#endif
|
||||
}
|
||||
|
||||
void mks_test_beeper() {
|
||||
#ifdef MKS_TEST
|
||||
WRITE(BEEPER_PIN, HIGH);
|
||||
delay(100);
|
||||
WRITE(BEEPER_PIN, LOW);
|
||||
delay(100);
|
||||
#endif
|
||||
}
|
||||
|
||||
void Test_GPIO() {
|
||||
init_Tst_GPIO();
|
||||
void mks_gpio_test(){
|
||||
#if ENABLED(MKS_TEST)
|
||||
init_test_gpio();
|
||||
|
||||
test_gpio_readlevel_L();
|
||||
test_gpio_readlevel_H();
|
||||
test_gpio_readlevel_L();
|
||||
if ((pw_det_sta == 1) && (mt_det_sta == 1) && (mt_det2_sta == 1) && (mt_det3_sta == 1)) {
|
||||
if (curent_disp_ui == 1) disp_det_ok();
|
||||
}
|
||||
else if (curent_disp_ui == 1) disp_det_error();
|
||||
if ((pw_det_sta == 1) && (mt_det_sta == 1) && (mt_det2_sta == 1)) // &&(mt_det3_sta == 1))
|
||||
disp_det_ok();
|
||||
else
|
||||
disp_det_error();
|
||||
|
||||
if ( (endstopx1_sta == 1)
|
||||
&& (endstopx2_sta == 1)
|
||||
&& (endstopy1_sta == 1)
|
||||
&& (endstopy2_sta == 1)
|
||||
&& (endstopz1_sta == 1)
|
||||
&& (endstopz2_sta == 1)
|
||||
) {
|
||||
if (curent_disp_ui == 1) disp_Limit_ok();
|
||||
}
|
||||
else if (curent_disp_ui == 1)
|
||||
)
|
||||
disp_Limit_ok();
|
||||
else
|
||||
disp_Limit_error();
|
||||
//mks_test_beeper();
|
||||
|
||||
#endif
|
||||
}
|
||||
|
||||
void mks_test() {
|
||||
void mks_hardware_test(){
|
||||
#if ENABLED(MKS_TEST)
|
||||
if (millis() % 2000 < 1000) {
|
||||
WRITE(X_DIR_PIN, LOW);
|
||||
WRITE(Y_DIR_PIN, LOW);
|
||||
WRITE(Z_DIR_PIN, LOW);
|
||||
WRITE(E0_DIR_PIN, LOW);
|
||||
WRITE(E1_DIR_PIN, LOW);
|
||||
WRITE(E2_DIR_PIN, LOW);
|
||||
//WRITE(E2_DIR_PIN, LOW);
|
||||
thermalManager.fan_speed[0] = 255;
|
||||
WRITE(HEATER_2_PIN, HIGH); // HE2
|
||||
//WRITE(HEATER_2_PIN, HIGH); // HE2
|
||||
WRITE(HEATER_1_PIN, HIGH); // HE1
|
||||
WRITE(HEATER_0_PIN, HIGH); // HE0
|
||||
WRITE(HEATER_BED_PIN, HIGH); // HOT-BED
|
||||
|
@ -159,28 +172,29 @@
|
|||
WRITE(Z_DIR_PIN, HIGH);
|
||||
WRITE(E0_DIR_PIN, HIGH);
|
||||
WRITE(E1_DIR_PIN, HIGH);
|
||||
WRITE(E2_DIR_PIN, HIGH);
|
||||
//WRITE(E2_DIR_PIN, HIGH);
|
||||
thermalManager.fan_speed[0] = 0;
|
||||
WRITE(HEATER_2_PIN, LOW); // HE2
|
||||
//WRITE(HEATER_2_PIN, LOW); // HE2
|
||||
WRITE(HEATER_1_PIN, LOW); // HE1
|
||||
WRITE(HEATER_0_PIN, LOW); // HE0
|
||||
WRITE(HEATER_BED_PIN, LOW); // HOT-BED
|
||||
}
|
||||
|
||||
if ( (endstopx1_sta == 1) && (endstopx2_sta == 1)
|
||||
&& (endstopy1_sta == 1) && (endstopy2_sta == 1)
|
||||
&& (endstopz1_sta == 1) && (endstopz2_sta == 1)
|
||||
) {
|
||||
|
||||
// nothing here
|
||||
}
|
||||
else {
|
||||
mks_test_beeper();
|
||||
//mks_test_beeper();
|
||||
}
|
||||
|
||||
if (curent_disp_ui == 1)
|
||||
disp_test();
|
||||
}
|
||||
if (disp_state == PRINT_READY_UI)
|
||||
mks_disp_test();
|
||||
|
||||
#endif // MKS_TEST
|
||||
#endif
|
||||
}
|
||||
|
||||
static const uint16_t ASCII_Table_16x24[] PROGMEM = {
|
||||
// Space ' '
|
||||
|
@ -568,8 +582,10 @@ static const uint16_t ASCII_Table_16x24[] PROGMEM = {
|
|||
void disp_char_1624(uint16_t x, uint16_t y, uint8_t c, uint16_t charColor, uint16_t bkColor) {
|
||||
for (uint16_t i = 0; i < 24; i++) {
|
||||
const uint16_t tmp_char = pgm_read_word(&ASCII_Table_16x24[((c - 0x20) * 24) + i]);
|
||||
for (uint16_t j = 0; j < 16; j++)
|
||||
tft_set_point(x + j, y + i, ((tmp_char >> j) & 0x01) ? charColor : bkColor);
|
||||
for (uint16_t j = 0; j < 16; j++) {
|
||||
TERN(TFT_LVGL_UI_SPI, SPI_TFT.SetPoint, tft_set_point)
|
||||
(x + j, y + i, ((tmp_char >> j) & 0x01) ? charColor : bkColor);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -582,14 +598,30 @@ void disp_string(uint16_t x, uint16_t y, const char * string, uint16_t charColor
|
|||
}
|
||||
|
||||
//static lv_obj_t * scr_test;
|
||||
void disp_pic_update() {
|
||||
void disp_assets_update() {
|
||||
#if DISABLED(TFT_LVGL_UI_SPI)
|
||||
LCD_Clear(0x0000);
|
||||
disp_string(120, 150, "PIC Updating...", 0xFFFF, 0x0000);
|
||||
#endif
|
||||
disp_string(100, 150, "Assets Updating...", 0xFFFF, 0x0000);
|
||||
}
|
||||
|
||||
void disp_font_update() {
|
||||
LCD_Clear(0x0000);
|
||||
disp_string(120, 150, "FONT Updating...", 0xFFFF, 0x0000);
|
||||
void disp_assets_update_progress(const char *msg) {
|
||||
char buf[30];
|
||||
memset(buf, ' ', COUNT(buf));
|
||||
strncpy(buf, msg, strlen(msg));
|
||||
buf[COUNT(buf)-1] = '\0';
|
||||
disp_string(100, 200, buf, 0xFFFF, 0x0000);
|
||||
}
|
||||
|
||||
#endif // TFT_LVGL_UI
|
||||
uint8_t mks_test_flag = 0;
|
||||
const char *MKSTestPath = "MKS_TEST";
|
||||
|
||||
#if ENABLED(SDSUPPORT)
|
||||
void mks_test_get() {
|
||||
SdFile dir, root = card.getroot();
|
||||
if (dir.open(&root, MKSTestPath, O_RDONLY))
|
||||
mks_test_flag = 0x1e;
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif // HAS_TFT_LVGL_UI
|
||||
|
|
|
@ -21,11 +21,13 @@
|
|||
*/
|
||||
#pragma once
|
||||
|
||||
#include "lvgl.h"
|
||||
#include <lvgl.h>
|
||||
|
||||
void Test_GPIO();
|
||||
void mks_gpio_test();
|
||||
void disp_char_1624(uint16_t x, uint16_t y, uint8_t c, uint16_t charColor, uint16_t bkColor);
|
||||
void disp_string(uint16_t x, uint16_t y, const char * string, uint16_t charColor, uint16_t bkColor);
|
||||
void mks_test();
|
||||
void disp_pic_update();
|
||||
void disp_font_update();
|
||||
void mks_hardware_test();
|
||||
void disp_assets_update();
|
||||
void disp_assets_update_progress(const char *msg);
|
||||
void mks_test_get();
|
||||
extern uint8_t mks_test_flag;
|
||||
|
|
|
@ -21,7 +21,7 @@
|
|||
*/
|
||||
#include "../../../../inc/MarlinConfigPre.h"
|
||||
|
||||
#if ENABLED(TFT_LVGL_UI)
|
||||
#if HAS_TFT_LVGL_UI
|
||||
|
||||
#include "../../../../MarlinCore.h"
|
||||
|
||||
|
@ -40,7 +40,7 @@ extern unsigned char bmp_public_buf[17 * 1024];
|
|||
extern char *createFilename(char * const buffer, const dir_t &p);
|
||||
#endif
|
||||
|
||||
static char assets[][30] = {
|
||||
static char assets[][LONG_FILENAME_LENGTH] = {
|
||||
//homing screen
|
||||
"bmp_Zero.bin",
|
||||
"bmp_zeroX.bin",
|
||||
|
@ -90,7 +90,7 @@ static char assets[][30] = {
|
|||
//select file screen
|
||||
"bmp_pageUp.bin",
|
||||
"bmp_pageDown.bin",
|
||||
//"bmp_Back.bin", //TODO: why two back buttons? Why not just one? (return / back)
|
||||
"bmp_Back.bin", //TODO: why two back buttons? Why not just one? (return / back)
|
||||
"bmp_Dir.bin",
|
||||
"bmp_File.bin",
|
||||
|
||||
|
@ -171,6 +171,10 @@ static char assets[][30] = {
|
|||
"bmp_preview.bin",
|
||||
#endif
|
||||
|
||||
#if HAS_LOGO_IN_FLASH
|
||||
"bmp_logo.bin",
|
||||
#endif
|
||||
|
||||
// settings screen
|
||||
"bmp_About.bin",
|
||||
//"bmp_Language.bin",
|
||||
|
@ -182,14 +186,27 @@ static char assets[][30] = {
|
|||
"bmp_Set.bin",
|
||||
"bmp_Tool.bin",
|
||||
|
||||
#if ENABLED(HAS_STEALTHCHOP)
|
||||
//"bmp_back70x40.bin",
|
||||
"bmp_disable.bin",
|
||||
"bmp_enable.bin",
|
||||
#endif
|
||||
|
||||
// settings screen
|
||||
"bmp_eeprom_settings.bin",
|
||||
"bmp_machine_para.bin",
|
||||
"bmp_function1.bin",
|
||||
|
||||
// base icons
|
||||
"bmp_arrow.bin",
|
||||
"bmp_back70x40.bin",
|
||||
"bmp_value_blank.bin",
|
||||
"bmp_Return.bin"
|
||||
};
|
||||
|
||||
#if HAS_SPI_FLASH_FONT
|
||||
static char fonts[][50] = {
|
||||
"GBK16.bin",
|
||||
"UNIGBK.bin",
|
||||
static char fonts[][LONG_FILENAME_LENGTH] = {
|
||||
"FontUNIGBK.bin",
|
||||
};
|
||||
#endif
|
||||
|
||||
|
@ -220,22 +237,19 @@ uint32_t lv_get_pic_addr(uint8_t *Pname) {
|
|||
addr = PIC_DATA_ADDR_TFT35 + i * PER_PIC_MAX_SPACE_TFT35;
|
||||
else
|
||||
addr = PIC_DATA_ADDR_TFT32 + i * PER_PIC_MAX_SPACE_TFT32;
|
||||
return (addr + 4);//The purpose of adding 4 is to remove 4-byte picture header information.
|
||||
return addr;
|
||||
}
|
||||
}
|
||||
|
||||
return addr;
|
||||
}
|
||||
|
||||
const char *picPath = "mks_pic";
|
||||
const char *bakPath = "bak_pic";
|
||||
|
||||
const char *fontPath = "mks_font";
|
||||
const char *bakFont = "bak_font";
|
||||
const char *assetsPath = "assets";
|
||||
const char *bakPath = "_assets";
|
||||
|
||||
void spiFlashErase_PIC() {
|
||||
volatile uint32_t pic_sectorcnt = 0;
|
||||
for (pic_sectorcnt = 0; pic_sectorcnt < TERN(MKS_TEST, 2, PIC_SIZE_xM * 1024 / 64); pic_sectorcnt++)
|
||||
for (pic_sectorcnt = 0; pic_sectorcnt < PIC_SIZE_xM * 1024 / 64; pic_sectorcnt++)
|
||||
W25QXX.SPI_FLASH_BlockErase(PICINFOADDR + pic_sectorcnt * 64 * 1024);
|
||||
}
|
||||
|
||||
|
@ -347,103 +361,123 @@ uint8_t public_buf[512];
|
|||
longName[j] = '\0';
|
||||
}
|
||||
|
||||
void UpdatePic() {
|
||||
char *fn;
|
||||
unsigned char logoFlag;
|
||||
uint16_t pbr;
|
||||
uint32_t pfileSize;
|
||||
uint32_t totalSizeLoaded = 0;
|
||||
uint32_t Pic_Write_Addr;
|
||||
|
||||
SdFile dir, root = card.getroot();
|
||||
if (dir.open(&root, picPath, O_RDONLY)) {
|
||||
|
||||
disp_pic_update();
|
||||
spiFlashErase_PIC();
|
||||
|
||||
dir_t d;
|
||||
while (dir.readDir(&d, card.longFilename) > 0) {
|
||||
// if we dont get a long name, but gets a short one, try it
|
||||
if (card.longFilename[0] == 0 && d.name[0] != 0) {
|
||||
dosName2LongName((const char*)d.name, card.longFilename);
|
||||
static int8_t arrayFindStr(const char arr[][LONG_FILENAME_LENGTH], uint8_t arraySize, const char* str) {
|
||||
for (uint8_t a = 0; a < arraySize; a++) {
|
||||
if (strcasecmp(arr[a], str) == 0)
|
||||
return a;
|
||||
}
|
||||
return -1;
|
||||
}
|
||||
|
||||
if (card.longFilename[0] == 0)
|
||||
continue;
|
||||
if (card.longFilename[0] == '.')
|
||||
continue;
|
||||
|
||||
uint8_t a = -1;
|
||||
for(a = 0; a < COUNT(assets); a++) {
|
||||
if (strcasecmp(assets[a], card.longFilename) == 0) {
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (a < 0 || a >= COUNT(assets)) continue;
|
||||
|
||||
fn = assets[a];
|
||||
char dosFilename[FILENAME_LENGTH];
|
||||
createFilename(dosFilename, d);
|
||||
|
||||
#define ASSET_TYPE_ICON 0
|
||||
#define ASSET_TYPE_LOGO 1
|
||||
#define ASSET_TYPE_TITLE_LOGO 2
|
||||
#define ASSET_TYPE_G_PREVIEW 3
|
||||
#define ASSET_TYPE_FONT 4
|
||||
static void loadAsset(SdFile &dir, dir_t& entry, const char *fn, int8_t assetType) {
|
||||
SdFile file;
|
||||
char dosFilename[FILENAME_LENGTH];
|
||||
createFilename(dosFilename, entry);
|
||||
if (!file.open(&dir, dosFilename, O_READ)) {
|
||||
#if ENABLED(MARLIN_DEV_MODE)
|
||||
SERIAL_ECHOLNPAIR("Error opening Asset: ", fn);
|
||||
#endif
|
||||
continue;
|
||||
return;
|
||||
}
|
||||
|
||||
if (strstr(fn, "_logo"))
|
||||
logoFlag = 1;
|
||||
else if (strstr(fn, "_titlelogo"))
|
||||
logoFlag = 2;
|
||||
else if (strstr(fn, "_preview"))
|
||||
logoFlag = 3;
|
||||
else
|
||||
logoFlag = 0;
|
||||
|
||||
disp_assets_update_progress(fn);
|
||||
uint16_t pbr;
|
||||
uint32_t pfileSize;
|
||||
uint32_t totalSizeLoaded = 0;
|
||||
uint32_t Pic_Write_Addr;
|
||||
pfileSize = file.fileSize();
|
||||
totalSizeLoaded += pfileSize;
|
||||
if (logoFlag == 1) {
|
||||
if (assetType == ASSET_TYPE_LOGO) {
|
||||
while (1) {
|
||||
pbr = file.read(public_buf, BMP_WRITE_BUF_LEN);
|
||||
Pic_Logo_Write((uint8_t *)fn, public_buf, pbr); //
|
||||
if (pbr < BMP_WRITE_BUF_LEN)
|
||||
break;
|
||||
if (pbr < BMP_WRITE_BUF_LEN) break;
|
||||
}
|
||||
}
|
||||
else if (logoFlag == 2) {
|
||||
else if (assetType == ASSET_TYPE_TITLE_LOGO) {
|
||||
while (1) {
|
||||
pbr = file.read(public_buf, BMP_WRITE_BUF_LEN);
|
||||
Pic_TitleLogo_Write((uint8_t *)fn, public_buf, pbr); //
|
||||
if (pbr < BMP_WRITE_BUF_LEN)
|
||||
break;
|
||||
if (pbr < BMP_WRITE_BUF_LEN) break;
|
||||
}
|
||||
}
|
||||
else if (logoFlag == 3) {
|
||||
else if (assetType == ASSET_TYPE_G_PREVIEW) {
|
||||
while (1) {
|
||||
pbr = file.read(public_buf, BMP_WRITE_BUF_LEN);
|
||||
default_view_Write(public_buf, pbr); //
|
||||
if (pbr < BMP_WRITE_BUF_LEN)
|
||||
break;
|
||||
if (pbr < BMP_WRITE_BUF_LEN) break;
|
||||
}
|
||||
}
|
||||
else {
|
||||
else if (assetType == ASSET_TYPE_ICON) {
|
||||
Pic_Write_Addr = Pic_Info_Write((uint8_t *)fn, pfileSize);
|
||||
while (1) {
|
||||
pbr = file.read(public_buf, BMP_WRITE_BUF_LEN);
|
||||
W25QXX.SPI_FLASH_BufferWrite(public_buf, Pic_Write_Addr, pbr);
|
||||
Pic_Write_Addr += pbr;
|
||||
if (pbr < BMP_WRITE_BUF_LEN)
|
||||
break;
|
||||
if (pbr < BMP_WRITE_BUF_LEN) break;
|
||||
}
|
||||
}
|
||||
else if (assetType == ASSET_TYPE_FONT) {
|
||||
Pic_Write_Addr = UNIGBK_FLASH_ADDR;
|
||||
while (1) {
|
||||
pbr = file.read(public_buf, BMP_WRITE_BUF_LEN);
|
||||
W25QXX.SPI_FLASH_BufferWrite(public_buf, Pic_Write_Addr, pbr);
|
||||
Pic_Write_Addr += pbr;
|
||||
if (pbr < BMP_WRITE_BUF_LEN) break;
|
||||
}
|
||||
}
|
||||
|
||||
file.close();
|
||||
|
||||
#if ENABLED(MARLIN_DEV_MODE)
|
||||
SERIAL_ECHOLNPAIR("Asset added: ", fn);
|
||||
#endif
|
||||
}
|
||||
|
||||
file.close();
|
||||
void UpdateAssets() {
|
||||
SdFile dir, root = card.getroot();
|
||||
if (dir.open(&root, assetsPath, O_RDONLY)) {
|
||||
|
||||
disp_assets_update();
|
||||
spiFlashErase_PIC();
|
||||
#if HAS_SPI_FLASH_FONT
|
||||
spiFlashErase_FONT();
|
||||
#endif
|
||||
|
||||
dir_t d;
|
||||
while (dir.readDir(&d, card.longFilename) > 0) {
|
||||
// if we dont get a long name, but gets a short one, try it
|
||||
if (card.longFilename[0] == 0 && d.name[0] != 0)
|
||||
dosName2LongName((const char*)d.name, card.longFilename);
|
||||
if (card.longFilename[0] == 0) continue;
|
||||
if (card.longFilename[0] == '.') continue;
|
||||
|
||||
uint8_t a = arrayFindStr(assets, COUNT(assets), card.longFilename);
|
||||
if (a >= 0 && a < COUNT(assets)) {
|
||||
uint8_t assetType = ASSET_TYPE_ICON;
|
||||
if (strstr(assets[a], "_logo"))
|
||||
assetType = ASSET_TYPE_LOGO;
|
||||
else if (strstr(assets[a], "_titlelogo"))
|
||||
assetType = ASSET_TYPE_TITLE_LOGO;
|
||||
else if (strstr(assets[a], "_preview"))
|
||||
assetType = ASSET_TYPE_G_PREVIEW;
|
||||
|
||||
loadAsset(dir, d, assets[a], assetType);
|
||||
|
||||
continue;
|
||||
}
|
||||
|
||||
#if HAS_SPI_FLASH_FONT
|
||||
a = arrayFindStr(fonts, COUNT(fonts), card.longFilename);
|
||||
if (a >= 0 && a < COUNT(fonts)) {
|
||||
loadAsset(dir, d, fonts[a], ASSET_TYPE_FONT);
|
||||
}
|
||||
#endif
|
||||
}
|
||||
dir.rename(&root, bakPath);
|
||||
}
|
||||
|
@ -452,62 +486,12 @@ uint8_t public_buf[512];
|
|||
#if ENABLED(MARLIN_DEV_MODE)
|
||||
uint8_t pic_counter = 0;
|
||||
W25QXX.SPI_FLASH_BufferRead(&pic_counter, PIC_COUNTER_ADDR, 1);
|
||||
SERIAL_ECHOLNPAIR("Total assets loaded: ", pic_counter, ", Total size: ", totalSizeLoaded);
|
||||
SERIAL_ECHOLNPAIR("Total assets loaded: ", pic_counter);
|
||||
#endif
|
||||
}
|
||||
|
||||
#if HAS_SPI_FLASH_FONT
|
||||
|
||||
void spi_flash_read_test() { W25QXX.SPI_FLASH_BufferRead(public_buf, UNIGBK_FLASH_ADDR, BMP_WRITE_BUF_LEN); }
|
||||
|
||||
void UpdateFont() {
|
||||
char *fn;
|
||||
uint16_t pbr;
|
||||
uint32_t flashaddr = 0;
|
||||
|
||||
SdFile dir, root = card.getroot();
|
||||
if (dir.open(&root, fontPath, O_RDONLY)) {
|
||||
|
||||
disp_font_update();
|
||||
spiFlashErase_FONT();
|
||||
|
||||
dir_t d;
|
||||
while (dir.readDir(&d, card.longFilename) > 0) {
|
||||
if (card.longFilename[0] == 0)
|
||||
break;
|
||||
|
||||
if (card.longFilename[0] == '.')
|
||||
continue;
|
||||
|
||||
fn = card.longFilename;
|
||||
|
||||
if (strstr(fn, ".bin")) {
|
||||
char dosFilename[FILENAME_LENGTH];
|
||||
createFilename(dosFilename, d);
|
||||
//strcat(public_buf, dosFilename);
|
||||
|
||||
SdFile file;
|
||||
if (file.open(&dir, dosFilename, O_READ)) {
|
||||
|
||||
flashaddr = UNIGBK_FLASH_ADDR;
|
||||
pbr = 0;
|
||||
while (1) {
|
||||
flashaddr += pbr;
|
||||
pbr = file.read(public_buf, BMP_WRITE_BUF_LEN);
|
||||
W25QXX.SPI_FLASH_BufferWrite(public_buf, flashaddr, pbr);
|
||||
if (pbr < BMP_WRITE_BUF_LEN) break;
|
||||
}
|
||||
file.close();
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
dir.rename(&root, bakFont);
|
||||
dir.close();
|
||||
}
|
||||
}
|
||||
|
||||
#endif // HAS_SPI_FLASH_FONT
|
||||
|
||||
#endif // SDSUPPORT
|
||||
|
@ -552,6 +536,7 @@ void lv_pic_test(uint8_t *P_Rbuff, uint32_t addr, uint32_t size) {
|
|||
|
||||
uint32_t logo_addroffset = 0;
|
||||
void Pic_Logo_Read(uint8_t *LogoName, uint8_t *Logo_Rbuff, uint32_t LogoReadsize) {
|
||||
W25QXX.init(SPI_QUARTER_SPEED);
|
||||
W25QXX.SPI_FLASH_BufferRead(Logo_Rbuff, PIC_LOGO_ADDR + logo_addroffset, LogoReadsize);
|
||||
logo_addroffset += LogoReadsize;
|
||||
if (logo_addroffset >= LOGO_MAX_SIZE_TFT35)
|
||||
|
@ -561,7 +546,6 @@ void Pic_Logo_Read(uint8_t *LogoName, uint8_t *Logo_Rbuff, uint32_t LogoReadsize
|
|||
uint32_t default_view_addroffset = 0;
|
||||
void default_view_Read(uint8_t *default_view_Rbuff, uint32_t default_view_Readsize) {
|
||||
W25QXX.init(SPI_QUARTER_SPEED);
|
||||
|
||||
W25QXX.SPI_FLASH_BufferRead(default_view_Rbuff, DEFAULT_VIEW_ADDR_TFT35 + default_view_addroffset, default_view_Readsize);
|
||||
default_view_addroffset += default_view_Readsize;
|
||||
if (default_view_addroffset >= DEFAULT_VIEW_MAX_SIZE)
|
||||
|
@ -572,7 +556,6 @@ void default_view_Read(uint8_t *default_view_Rbuff, uint32_t default_view_Readsi
|
|||
uint32_t flash_view_addroffset = 0;
|
||||
void flash_view_Read(uint8_t *flash_view_Rbuff, uint32_t flash_view_Readsize) {
|
||||
W25QXX.init(SPI_QUARTER_SPEED);
|
||||
|
||||
W25QXX.SPI_FLASH_BufferRead(flash_view_Rbuff, BAK_VIEW_ADDR_TFT35 + flash_view_addroffset, flash_view_Readsize);
|
||||
flash_view_addroffset += flash_view_Readsize;
|
||||
if (flash_view_addroffset >= FLASH_VIEW_MAX_SIZE)
|
||||
|
@ -580,4 +563,4 @@ void default_view_Read(uint8_t *default_view_Rbuff, uint32_t default_view_Readsi
|
|||
}
|
||||
#endif
|
||||
|
||||
#endif // TFT_LVGL_UI
|
||||
#endif // HAS_TFT_LVGL_UI
|
||||
|
|
|
@ -25,20 +25,21 @@
|
|||
extern "C" { /* C-declarations for C++ */
|
||||
#endif
|
||||
|
||||
#include <stdint.h>
|
||||
#include <string.h>
|
||||
#include "lvgl.h"
|
||||
|
||||
#include "../../inc/MarlinConfigPre.h"
|
||||
|
||||
#include <lvgl.h>
|
||||
|
||||
#include <stdint.h>
|
||||
#include <string.h>
|
||||
|
||||
#ifndef HAS_SPI_FLASH_FONT
|
||||
#define HAS_SPI_FLASH_FONT 0 //disabled until fix the font load code
|
||||
#define HAS_SPI_FLASH_FONT 1 // Disabled until fix the font load code
|
||||
#endif
|
||||
#ifndef HAS_GCODE_PREVIEW
|
||||
#define HAS_GCODE_PREVIEW 1
|
||||
#endif
|
||||
#ifndef HAS_LANG_SELECT_SCREEN
|
||||
#define HAS_LANG_SELECT_SCREEN 0
|
||||
#define HAS_LANG_SELECT_SCREEN 1
|
||||
#endif
|
||||
#ifndef HAS_BAK_VIEW_IN_FLASH
|
||||
#define HAS_BAK_VIEW_IN_FLASH 1
|
||||
|
@ -46,6 +47,9 @@ extern "C" { /* C-declarations for C++ */
|
|||
#ifndef HAS_GCODE_DEFAULT_VIEW_IN_FLASH
|
||||
#define HAS_GCODE_DEFAULT_VIEW_IN_FLASH 1
|
||||
#endif
|
||||
#ifndef HAS_LOGO_IN_FLASH
|
||||
#define HAS_LOGO_IN_FLASH 1
|
||||
#endif
|
||||
#ifndef SPI_FLASH_SIZE
|
||||
#define SPI_FLASH_SIZE 0x1000000 // 16MB
|
||||
#endif
|
||||
|
@ -83,14 +87,18 @@ extern "C" { /* C-declarations for C++ */
|
|||
#define PIC_ICON_LOGO_ADDR_TFT32 0x5D8000
|
||||
#define PIC_OTHER_SIZE_ADDR_TFT32 0x5EE000
|
||||
|
||||
// font
|
||||
#define FONTINFOADDR 0x183000 // 6M -- font addr
|
||||
#define UNIGBK_FLASH_ADDR (FONTINFOADDR+4096) // 4*1024
|
||||
|
||||
#else
|
||||
//pic
|
||||
//Robin_pro pic addr
|
||||
#define PIC_NAME_ADDR 0x003000 // Pic information addr
|
||||
#define PIC_SIZE_ADDR 0x007000 // Pic size information addr
|
||||
#define PIC_COUNTER_ADDR 0x008000 // Pic total number
|
||||
#define PER_PIC_SAVE_ADDR 0x009000 // Storage address of each picture
|
||||
#define PIC_LOGO_ADDR 0x00A000 // Logo addr
|
||||
//#define PER_PIC_SAVE_ADDR 0x009000 // Storage address of each picture
|
||||
#define PIC_LOGO_ADDR 0x009000 // Logo addr
|
||||
//#define PIC_DATA_ADDR 0x02F000 //
|
||||
|
||||
// TFT35
|
||||
|
@ -137,6 +145,7 @@ typedef struct pic_msg PIC_MSG;
|
|||
#define FONT_SIZE_xM 2
|
||||
|
||||
extern void Pic_Read(uint8_t *Pname, uint8_t *P_Rbuff);
|
||||
extern void Pic_Logo_Read(uint8_t *LogoName,uint8_t *Logo_Rbuff,uint32_t LogoReadsize);
|
||||
extern void lv_pic_test(uint8_t *P_Rbuff, uint32_t addr, uint32_t size);
|
||||
extern uint32_t lv_get_pic_addr(uint8_t *Pname);
|
||||
extern void get_spi_flash_data(const char *rec_buf, int offset, int size);
|
||||
|
|
217
Marlin/src/lcd/extui/lib/mks_ui/printer_operation.cpp
Normal file
217
Marlin/src/lcd/extui/lib/mks_ui/printer_operation.cpp
Normal file
|
@ -0,0 +1,217 @@
|
|||
/**
|
||||
* Marlin 3D Printer Firmware
|
||||
* Copyright (c) 2020 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
|
||||
*
|
||||
* Based on Sprinter and grbl.
|
||||
* Copyright (c) 2011 Camiel Gubbels / Erik van der Zalm
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*
|
||||
*/
|
||||
#include "../../../../inc/MarlinConfigPre.h"
|
||||
|
||||
#if HAS_TFT_LVGL_UI
|
||||
|
||||
#include "../../../../MarlinCore.h"
|
||||
|
||||
#include "lv_conf.h"
|
||||
#include "draw_ui.h"
|
||||
#include "../../../../module/temperature.h"
|
||||
#include "../../../../module/motion.h"
|
||||
#include "../../../../sd/cardreader.h"
|
||||
#include "../../../../gcode/queue.h"
|
||||
|
||||
#if ENABLED(POWER_LOSS_RECOVERY)
|
||||
#include "../../../../feature/powerloss.h"
|
||||
#endif
|
||||
|
||||
#include "../../../../gcode/gcode.h"
|
||||
#include "../../../../module/planner.h"
|
||||
|
||||
extern uint32_t To_pre_view;
|
||||
extern uint8_t flash_preview_begin, default_preview_flg, gcode_preview_over;
|
||||
|
||||
void printer_state_polling() {
|
||||
if (uiCfg.print_state == PAUSING) {
|
||||
#if ENABLED(SDSUPPORT)
|
||||
if (!planner.has_blocks_queued() && card.getIndex() > MIN_FILE_PRINTED)
|
||||
uiCfg.waitEndMoves++;
|
||||
|
||||
if (uiCfg.waitEndMoves > 20) {
|
||||
uiCfg.waitEndMoves = 0;
|
||||
planner.synchronize();
|
||||
gcode.process_subcommands_now_P(PSTR("M25"));
|
||||
if (gCfgItems.pausePosZ != (float)-1) {
|
||||
gcode.process_subcommands_now_P(PSTR("G91"));
|
||||
ZERO(public_buf_l);
|
||||
sprintf_P(public_buf_l, PSTR("G1 Z%.1f"), gCfgItems.pausePosZ);
|
||||
gcode.process_subcommands_now(public_buf_l);
|
||||
gcode.process_subcommands_now_P(PSTR("G90"));
|
||||
}
|
||||
if (gCfgItems.pausePosX != (float)-1 && gCfgItems.pausePosY != (float)-1) {
|
||||
ZERO(public_buf_l);
|
||||
sprintf_P(public_buf_l, PSTR("G1 X%.1f Y%.1f"), gCfgItems.pausePosX, gCfgItems.pausePosY);
|
||||
gcode.process_subcommands_now(public_buf_l);
|
||||
}
|
||||
uiCfg.print_state = PAUSED;
|
||||
|
||||
// #if ENABLED(POWER_LOSS_RECOVERY)
|
||||
// if (recovery.enabled) recovery.save(true);
|
||||
// #endif
|
||||
gCfgItems.pause_reprint = 1;
|
||||
update_spi_flash();
|
||||
}
|
||||
#endif
|
||||
}
|
||||
else
|
||||
uiCfg.waitEndMoves = 0;
|
||||
|
||||
if (uiCfg.print_state == PAUSED) {
|
||||
}
|
||||
|
||||
if (uiCfg.print_state == RESUMING) {
|
||||
if (IS_SD_PAUSED()) {
|
||||
gcode.process_subcommands_now_P(PSTR("M24\nG91\nG1 Z-5\nG90"));
|
||||
uiCfg.print_state = WORKING;
|
||||
start_print_time();
|
||||
|
||||
gCfgItems.pause_reprint = 0;
|
||||
update_spi_flash();
|
||||
}
|
||||
}
|
||||
#if ENABLED(POWER_LOSS_RECOVERY)
|
||||
if (uiCfg.print_state == REPRINTED) {
|
||||
ZERO(public_buf_m);
|
||||
#if HAS_HOTEND
|
||||
HOTEND_LOOP() {
|
||||
const int16_t et = recovery.info.target_temperature[e];
|
||||
if (et) {
|
||||
#if HAS_MULTI_HOTEND
|
||||
sprintf_P(public_buf_m, PSTR("T%i"), e);
|
||||
gcode.process_subcommands_now(public_buf_m);
|
||||
#endif
|
||||
sprintf_P(public_buf_m, PSTR("M109 S%i"), et);
|
||||
gcode.process_subcommands_now(public_buf_m);
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
if (gCfgItems.pause_reprint == 1) {
|
||||
gcode.process_subcommands_now_P(PSTR("G91\nG1 Z-5\nG90"));
|
||||
}
|
||||
recovery.resume();
|
||||
|
||||
uiCfg.print_state = WORKING;
|
||||
start_print_time();
|
||||
|
||||
gCfgItems.pause_reprint = 0;
|
||||
update_spi_flash();
|
||||
}
|
||||
#endif
|
||||
|
||||
if (uiCfg.print_state == WORKING)
|
||||
filament_check();
|
||||
}
|
||||
|
||||
void filament_pin_setup() {
|
||||
#if PIN_EXISTS(MT_DET_1)
|
||||
pinMode(MT_DET_1_PIN, INPUT_PULLUP);
|
||||
#endif
|
||||
#if PIN_EXISTS(MT_DET_2)
|
||||
pinMode(MT_DET_2_PIN, INPUT_PULLUP);
|
||||
#endif
|
||||
#if PIN_EXISTS(MT_DET_3)
|
||||
pinMode(MT_DET_3_PIN, INPUT_PULLUP);
|
||||
#endif
|
||||
}
|
||||
|
||||
void filament_check() {
|
||||
const int FIL_DELAY = 20;
|
||||
#if PIN_EXISTS(MT_DET_1)
|
||||
static int fil_det_count_1 = 0;
|
||||
if (!READ(MT_DET_1_PIN) && !MT_DET_PIN_INVERTING)
|
||||
fil_det_count_1++;
|
||||
else if (READ(MT_DET_1_PIN) && MT_DET_PIN_INVERTING)
|
||||
fil_det_count_1++;
|
||||
else if (fil_det_count_1 > 0)
|
||||
fil_det_count_1--;
|
||||
|
||||
if (!READ(MT_DET_1_PIN) && !MT_DET_PIN_INVERTING)
|
||||
fil_det_count_1++;
|
||||
else if (READ(MT_DET_1_PIN) && MT_DET_PIN_INVERTING)
|
||||
fil_det_count_1++;
|
||||
else if (fil_det_count_1 > 0)
|
||||
fil_det_count_1--;
|
||||
#endif
|
||||
|
||||
#if PIN_EXISTS(MT_DET_2)
|
||||
static int fil_det_count_2 = 0;
|
||||
if (!READ(MT_DET_2_PIN) && !MT_DET_PIN_INVERTING)
|
||||
fil_det_count_2++;
|
||||
else if (READ(MT_DET_2_PIN) && MT_DET_PIN_INVERTING)
|
||||
fil_det_count_2++;
|
||||
else if (fil_det_count_2 > 0)
|
||||
fil_det_count_2--;
|
||||
|
||||
if (!READ(MT_DET_2_PIN) && !MT_DET_PIN_INVERTING)
|
||||
fil_det_count_2++;
|
||||
else if (READ(MT_DET_2_PIN) && MT_DET_PIN_INVERTING)
|
||||
fil_det_count_2++;
|
||||
else if (fil_det_count_2 > 0)
|
||||
fil_det_count_2--;
|
||||
#endif
|
||||
|
||||
#if PIN_EXISTS(MT_DET_3)
|
||||
static int fil_det_count_3 = 0;
|
||||
if (!READ(MT_DET_3_PIN) && !MT_DET_PIN_INVERTING)
|
||||
fil_det_count_3++;
|
||||
else if (READ(MT_DET_3_PIN) && MT_DET_PIN_INVERTING)
|
||||
fil_det_count_3++;
|
||||
else if (fil_det_count_3 > 0)
|
||||
fil_det_count_3--;
|
||||
|
||||
if (!READ(MT_DET_3_PIN) && !MT_DET_PIN_INVERTING)
|
||||
fil_det_count_3++;
|
||||
else if (READ(MT_DET_3_PIN) && MT_DET_PIN_INVERTING)
|
||||
fil_det_count_3++;
|
||||
else if (fil_det_count_3 > 0)
|
||||
fil_det_count_3--;
|
||||
#endif
|
||||
|
||||
if (false
|
||||
#if PIN_EXISTS(MT_DET_1)
|
||||
|| fil_det_count_1 >= FIL_DELAY
|
||||
#endif
|
||||
#if PIN_EXISTS(MT_DET_2)
|
||||
|| fil_det_count_2 >= FIL_DELAY
|
||||
#endif
|
||||
#if PIN_EXISTS(MT_DET_3)
|
||||
|| fil_det_count_3 >= FIL_DELAY
|
||||
#endif
|
||||
) {
|
||||
clear_cur_ui();
|
||||
card.pauseSDPrint();
|
||||
stop_print_time();
|
||||
uiCfg.print_state = PAUSING;
|
||||
|
||||
if (gCfgItems.from_flash_pic == 1)
|
||||
flash_preview_begin = 1;
|
||||
else
|
||||
default_preview_flg = 1;
|
||||
|
||||
lv_draw_printing();
|
||||
}
|
||||
}
|
||||
|
||||
#endif // HAS_TFT_LVGL_UI
|
|
@ -1,209 +0,0 @@
|
|||
/**
|
||||
* Marlin 3D Printer Firmware
|
||||
* Copyright (c) 2020 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
|
||||
*
|
||||
* Based on Sprinter and grbl.
|
||||
* Copyright (c) 2011 Camiel Gubbels / Erik van der Zalm
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*
|
||||
*/
|
||||
#include "../../../../inc/MarlinConfigPre.h"
|
||||
|
||||
#if ENABLED(TFT_LVGL_UI)
|
||||
|
||||
#include "../../../../MarlinCore.h"
|
||||
|
||||
#include "lv_conf.h"
|
||||
#include "draw_ui.h"
|
||||
#include "../../../../module/temperature.h"
|
||||
#include "../../../../module/motion.h"
|
||||
#include "../../../../sd/cardreader.h"
|
||||
#include "../../../../gcode/queue.h"
|
||||
|
||||
#if ENABLED(POWER_LOSS_RECOVERY)
|
||||
#include "../../../../feature/powerloss.h"
|
||||
#endif
|
||||
|
||||
#include "../../../../gcode/gcode.h"
|
||||
#include "../../../../module/planner.h"
|
||||
|
||||
extern uint32_t To_pre_view;
|
||||
extern uint8_t flash_preview_begin, default_preview_flg, gcode_preview_over;
|
||||
|
||||
void printer_state_polling() {
|
||||
if (uiCfg.print_state == PAUSING) {
|
||||
#if ENABLED(SDSUPPORT)
|
||||
if (!planner.has_blocks_queued() && card.getIndex() > MIN_FILE_PRINTED) //<2F><><EFBFBD><EFBFBD> <20>ļ<EFBFBD><C4BC><EFBFBD> M109<30><39>M190ָ<30><D6B8>
|
||||
uiCfg.waitEndMoves++;
|
||||
|
||||
if (uiCfg.waitEndMoves > 20) {
|
||||
uiCfg.waitEndMoves = 0;
|
||||
planner.synchronize();
|
||||
gcode.process_subcommands_now_P(PSTR("M25\nG91\nG1 Z5\nG90"));
|
||||
|
||||
uiCfg.print_state = PAUSED;
|
||||
|
||||
//#if ENABLED(POWER_LOSS_RECOVERY)
|
||||
// if (recovery.enabled) recovery.save(true);
|
||||
//#endif
|
||||
gCfgItems.pause_reprint = 1;
|
||||
update_spi_flash();
|
||||
}
|
||||
#endif
|
||||
}
|
||||
else {
|
||||
uiCfg.waitEndMoves = 0;
|
||||
}
|
||||
|
||||
if (uiCfg.print_state == PAUSED) {
|
||||
|
||||
}
|
||||
|
||||
if (uiCfg.print_state == RESUMING) {
|
||||
if (IS_SD_PAUSED()) {
|
||||
gcode.process_subcommands_now_P(PSTR("G91\nG1 Z-5\nG90\nM24"));
|
||||
uiCfg.print_state = WORKING;
|
||||
start_print_time();
|
||||
|
||||
gCfgItems.pause_reprint = 0;
|
||||
update_spi_flash();
|
||||
}
|
||||
}
|
||||
#if ENABLED(POWER_LOSS_RECOVERY)
|
||||
if (uiCfg.print_state == REPRINTED) {
|
||||
memset(public_buf_m, 0, sizeof(public_buf_m));
|
||||
#if HOTENDS
|
||||
HOTEND_LOOP() {
|
||||
const int16_t et = recovery.info.target_temperature[e];
|
||||
if (et) {
|
||||
#if HOTENDS > 1
|
||||
sprintf_P(public_buf_m, PSTR("T%i"), e);
|
||||
gcode.process_subcommands_now(public_buf_m);
|
||||
#endif
|
||||
sprintf_P(public_buf_m, PSTR("M109 S%i"), et);
|
||||
gcode.process_subcommands_now(public_buf_m);
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
if (gCfgItems.pause_reprint == 1)
|
||||
gcode.process_subcommands_now_P(PSTR("G91\nG1 Z-5\nG90"));
|
||||
recovery.resume();
|
||||
|
||||
uiCfg.print_state = WORKING;
|
||||
start_print_time();
|
||||
|
||||
gCfgItems.pause_reprint = 0;
|
||||
update_spi_flash();
|
||||
}
|
||||
#endif
|
||||
|
||||
if (uiCfg.print_state == WORKING)
|
||||
filament_check();
|
||||
}
|
||||
|
||||
void filament_pin_setup() {
|
||||
#if PIN_EXISTS(MT_DET_1)
|
||||
pinMode(MT_DET_1_PIN, INPUT_PULLUP);
|
||||
#endif
|
||||
#if PIN_EXISTS(MT_DET_2)
|
||||
pinMode(MT_DET_2_PIN, INPUT_PULLUP);
|
||||
#endif
|
||||
#if PIN_EXISTS(MT_DET_3)
|
||||
pinMode(MT_DET_3_PIN, INPUT_PULLUP);
|
||||
#endif
|
||||
}
|
||||
|
||||
void filament_check() {
|
||||
const int FIL_DELAY = 20;
|
||||
#if PIN_EXISTS(MT_DET_1)
|
||||
static int fil_det_count_1 = 0;
|
||||
if (!READ(MT_DET_1_PIN) && !MT_DET_PIN_INVERTING)
|
||||
fil_det_count_1++;
|
||||
else if (READ(MT_DET_1_PIN) && MT_DET_PIN_INVERTING)
|
||||
fil_det_count_1++;
|
||||
else if (fil_det_count_1 > 0)
|
||||
fil_det_count_1--;
|
||||
|
||||
if (!READ(MT_DET_1_PIN) && !MT_DET_PIN_INVERTING)
|
||||
fil_det_count_1++;
|
||||
else if (READ(MT_DET_1_PIN) && MT_DET_PIN_INVERTING)
|
||||
fil_det_count_1++;
|
||||
else if (fil_det_count_1 > 0)
|
||||
fil_det_count_1--;
|
||||
#endif
|
||||
|
||||
#if PIN_EXISTS(MT_DET_2)
|
||||
static int fil_det_count_2 = 0;
|
||||
if (!READ(MT_DET_2_PIN) && !MT_DET_PIN_INVERTING)
|
||||
fil_det_count_2++;
|
||||
else if (READ(MT_DET_2_PIN) && MT_DET_PIN_INVERTING)
|
||||
fil_det_count_2++;
|
||||
else if (fil_det_count_2 > 0)
|
||||
fil_det_count_2--;
|
||||
|
||||
if (!READ(MT_DET_2_PIN) && !MT_DET_PIN_INVERTING)
|
||||
fil_det_count_2++;
|
||||
else if (READ(MT_DET_2_PIN) && MT_DET_PIN_INVERTING)
|
||||
fil_det_count_2++;
|
||||
else if (fil_det_count_2 > 0)
|
||||
fil_det_count_2--;
|
||||
#endif
|
||||
|
||||
#if PIN_EXISTS(MT_DET_3)
|
||||
static int fil_det_count_3 = 0;
|
||||
if (!READ(MT_DET_3_PIN) && !MT_DET_PIN_INVERTING)
|
||||
fil_det_count_3++;
|
||||
else if (READ(MT_DET_3_PIN) && MT_DET_PIN_INVERTING)
|
||||
fil_det_count_3++;
|
||||
else if (fil_det_count_3 > 0)
|
||||
fil_det_count_3--;
|
||||
|
||||
if (!READ(MT_DET_3_PIN) && !MT_DET_PIN_INVERTING)
|
||||
fil_det_count_3++;
|
||||
else if (READ(MT_DET_3_PIN) && MT_DET_PIN_INVERTING)
|
||||
fil_det_count_3++;
|
||||
else if (fil_det_count_3 > 0)
|
||||
fil_det_count_3--;
|
||||
#endif
|
||||
|
||||
if (
|
||||
#if PIN_EXISTS(MT_DET_1)
|
||||
fil_det_count_1 >= FIL_DELAY
|
||||
#else
|
||||
false
|
||||
#endif
|
||||
#if PIN_EXISTS(MT_DET_2)
|
||||
|| fil_det_count_2 >= FIL_DELAY
|
||||
#endif
|
||||
#if PIN_EXISTS(MT_DET_3)
|
||||
|| fil_det_count_3 >= FIL_DELAY
|
||||
#endif
|
||||
) {
|
||||
clear_cur_ui();
|
||||
card.pauseSDPrint();
|
||||
stop_print_time();
|
||||
uiCfg.print_state = PAUSING;
|
||||
|
||||
if (gCfgItems.from_flash_pic == 1)
|
||||
flash_preview_begin = 1;
|
||||
else
|
||||
default_preview_flg = 1;
|
||||
|
||||
lv_draw_printing();
|
||||
}
|
||||
}
|
||||
|
||||
#endif // TFT_LVGL_UI
|
|
@ -22,13 +22,13 @@
|
|||
#pragma once
|
||||
|
||||
//****************英文***************************//
|
||||
#define MACHINE_CONFIG_EN "Machine\nSettings"
|
||||
#define MACHINE_CONFIG_EN "Config"
|
||||
|
||||
#define NEXT_EN "Next"
|
||||
#define PREVIOUS_EN "Previous"
|
||||
#define DEFAULT_EN "Default"
|
||||
#define KEY_BACK_EN "Del"
|
||||
#define KEY_REST_EN "Rest"
|
||||
#define KEY_REST_EN "Reset"
|
||||
#define KEY_CONFIRM_EN "Confirm"
|
||||
|
||||
#define KEYBOARD_KEY0_EN "0"
|
||||
|
@ -44,12 +44,11 @@
|
|||
#define KEYBOARD_KEY_POINT_EN "."
|
||||
#define KEYBOARD_KEY_NEGATIVE_EN "-"
|
||||
|
||||
#define MACHINE_PARA_EN "Machine\nsettings"
|
||||
#define MACHINE_PARA_TITLE_EN "Machine settings"
|
||||
#define MACHINE_TYPE_CNOFIG_EN "Machine"
|
||||
#define TEMPERATURE_CONFIG_EN "Temperature"
|
||||
#define MOTOR_CONFIG_EN "Motor"
|
||||
#define ADVANCE_CONFIG_EN "Adavance"
|
||||
#define MACHINE_PARA_TITLE_EN "Config"
|
||||
#define MACHINE_TYPE_CNOFIG_EN "Machine settings"
|
||||
#define TEMPERATURE_CONFIG_EN "Temperature settings"
|
||||
#define MOTOR_CONFIG_EN "Motor settings"
|
||||
#define ADVANCE_CONFIG_EN "Adavance settings"
|
||||
|
||||
#define MACHINE_CONFIG_TITLE_EN "Machine Settings"
|
||||
#define MACHINE_TYPE_EN "Machine type"
|
||||
|
@ -158,6 +157,8 @@
|
|||
#define ACCELERATION_CONF_EN "Acceleration settings"
|
||||
#define JERKCONF_EN "Jerk settings"
|
||||
#define STEPSCONF_EN "Steps settings"
|
||||
#define TMC_CURRENT_EN "TMC Current settings"
|
||||
#define TMC_STEP_MODE_EN "TMC Step mode settings"
|
||||
#define MOTORDIRCONF_EN "Motor direction settings"
|
||||
#define HOMEFEEDRATECONF_EN "Home speed setting"
|
||||
|
||||
|
@ -191,6 +192,20 @@
|
|||
#define E0_STEPS_EN "E0-axis steps"
|
||||
#define E1_STEPS_EN "E1-axis steps"
|
||||
|
||||
#define TMC_CURRENT_CONF_TITLE_EN "Machine Settings>TMC current settings"
|
||||
#define X_TMC_CURRENT_EN "X axis current (mA)"
|
||||
#define Y_TMC_CURRENT_EN "Y axis current (mA)"
|
||||
#define Z_TMC_CURRENT_EN "Z axis current (mA)"
|
||||
#define E0_TMC_CURRENT_EN "E0 axis current (mA)"
|
||||
#define E1_TMC_CURRENT_EN "E1 axis current (mA)"
|
||||
|
||||
#define TMC_MODE_CONF_TITLE_EN "Machine Settings>TMC step mode settings"
|
||||
#define X_TMC_MODE_EN "Whether X axis enable stealthChop modes"
|
||||
#define Y_TMC_MODE_EN "Whether Y axis enable stealthChop modes"
|
||||
#define Z_TMC_MODE_EN "Whether Z axis enable stealthChop modes"
|
||||
#define E0_TMC_MODE_EN "Whether E0 axis enable stealthChop modes"
|
||||
#define E1_TMC_MODE_EN "Whether E1 axis enable stealthChop modes"
|
||||
|
||||
#define MOTORDIR_CONF_TITLE_EN "Machine Settings>Motor direction"
|
||||
#define X_MOTORDIR_EN "X-axis motor direction invert"
|
||||
#define Y_MOTORDIR_EN "Y-axis motor direction invert"
|
||||
|
@ -223,6 +238,11 @@
|
|||
#define Z_ENABLE_PINS_INVERT_EN "Z_ENABLE_PIN_INVERT"
|
||||
#define E_ENABLE_PINS_INVERT_EN "E_ENABLE_PIN_INVERT"
|
||||
|
||||
#define PAUSE_POSITION_EN "Printing pause position settings"
|
||||
#define PAUSE_POSITION_X_EN "X axis position (Absolute position,-1 invalid)"
|
||||
#define PAUSE_POSITION_Y_EN "Y axis position (Absolute position,-1 invalid)"
|
||||
#define PAUSE_POSITION_Z_EN "Z axis position (Relative position,-1 invalid)"
|
||||
|
||||
#define TOOL_TEXT_EN "Tool"
|
||||
#define PREHEAT_TEXT_EN "Preheat"
|
||||
#define MOVE_TEXT_EN "Move"
|
||||
|
@ -299,6 +319,8 @@
|
|||
#define MOTOR_OFF_TEXT_EN "Motor-off"
|
||||
#define MOTOR_OFF_XY_TEXT_EN "Off-XY"
|
||||
#define SHUTDOWN_TEXT_EN "Shutdown"
|
||||
#define MACHINE_PARA_EN "Config"
|
||||
#define EEPROM_SETTINGS_EN "Eeprom Set"
|
||||
|
||||
#define U_DISK_TEXT_EN "USB"
|
||||
#define SD_CARD_TEXT_EN "SD"
|
||||
|
@ -703,16 +725,24 @@
|
|||
#define PRINTING_OPERATION_OTHER_LANGUGE "Operation"
|
||||
#define PRINTING_PAUSE_OTHER_LANGUGE "Pause"
|
||||
|
||||
#define MESSEGE_PAUSING_EN "Parking..."
|
||||
#define MESSEGE_CHANGING_EN "Wait for filament change to start"
|
||||
#define MESSEGE_UNLOAD_EN "Wait for filament unload"
|
||||
#define MESSEGE_WAITING_EN "Press Button to resume print"
|
||||
#define MESSEGE_INSERT_EN "Insert filament and press button to continue"
|
||||
#define MESSEGE_LOAD_EN "Wait for filament load"
|
||||
#define MESSEGE_PURGE_EN "Wait for filament purge"
|
||||
#define MESSEGE_RESUME_EN "Wait for print to resume..."
|
||||
#define MESSEGE_HEAT_EN "Press button to heat nozzle"
|
||||
#define MESSEGE_HEATING_EN "Nozzle heating Please wait..."
|
||||
#define MESSEGE_OPTION_EN "Purge more or continue print?"
|
||||
#define MESSEGE_PURGE_MORE_EN "Purge"
|
||||
#define MESSEGE_CONTINUE_PRINT_EN "Print"
|
||||
#define MESSAGE_PAUSING_EN "Parking..."
|
||||
#define MESSAGE_CHANGING_EN "Wait for filament change to start"
|
||||
#define MESSAGE_UNLOAD_EN "Wait for filament unload"
|
||||
#define MESSAGE_WAITING_EN "Press Button to resume print"
|
||||
#define MESSAGE_INSERT_EN "Insert filament and press button to continue"
|
||||
#define MESSAGE_LOAD_EN "Wait for filament load"
|
||||
#define MESSAGE_PURGE_EN "Wait for filament purge"
|
||||
#define MESSAGE_RESUME_EN "Wait for print to resume..."
|
||||
#define MESSAGE_HEAT_EN "Press button to heat nozzle"
|
||||
#define MESSAGE_HEATING_EN "Nozzle heating Please wait..."
|
||||
#define MESSAGE_OPTION_EN "Purge more or continue print?"
|
||||
#define MESSAGE_PURGE_MORE_EN "Purge"
|
||||
#define MESSAGE_CONTINUE_PRINT_EN "Print"
|
||||
#define EEPROM_SETTINGS_TITLE_EN "EEPROM Settings"
|
||||
#define EEPROM_SETTINGS_STORE_EN "Store settings to EEPROM"
|
||||
#define EEPROM_SETTINGS_READ_EN "Read settings from EEPROM"
|
||||
#define EEPROM_SETTINGS_REVERT_EN "Revert settings to factory defaults"
|
||||
|
||||
#define EEPROM_STORE_TIPS_EN "Store settings to EEPROM?"
|
||||
#define EEPROM_READ_TIPS_EN "Read settings from EEPROM?"
|
||||
#define EEPROM_REVERT_TIPS_EN "Revert settings to factory defaults?"
|
||||
|
|
|
@ -98,6 +98,8 @@
|
|||
#define MOTOR_OFF_TEXT_FR "M-hors"
|
||||
#define MOTOR_OFF_XY_TEXT_FR "M-hors-XY"
|
||||
#define SHUTDOWN_TEXT_FR "Eteindre"
|
||||
#define MACHINE_PARA_FR "Config"
|
||||
#define EEPROM_SETTINGS_FR "Eeprom Set"
|
||||
|
||||
#define U_DISK_TEXT_FR "Clé usb"
|
||||
#define SD_CARD_TEXT_FR "Carte SD"
|
||||
|
@ -261,16 +263,24 @@
|
|||
#define DIALOG_REPRINT_FR "Print again"
|
||||
#define DIALOG_WIFI_ENABLE_TIPS_FR "The wifi module is being configured,\nplease wait a moment....."
|
||||
|
||||
#define MESSEGE_PAUSING_FR "Parking..."
|
||||
#define MESSEGE_CHANGING_FR "Attente filament pour démarrer"
|
||||
#define MESSEGE_UNLOAD_FR "Attente retrait du filament"
|
||||
#define MESSEGE_WAITING_FR "Presser bouton,pour reprendre"
|
||||
#define MESSEGE_INSERT_FR "Insérer filament et app. bouton pour continuer..."
|
||||
#define MESSEGE_LOAD_FR "Attente chargement filament"
|
||||
#define MESSEGE_PURGE_FR "Attente Purge filament"
|
||||
#define MESSEGE_RESUME_FR "Attente reprise impression"
|
||||
#define MESSEGE_HEAT_FR "Presser le bouton pour chauffer..."
|
||||
#define MESSEGE_HEATING_FR "Buse en chauffe Patienter SVP..."
|
||||
#define MESSEGE_OPTION_FR "Purger davantage ou continuer l'impression?"
|
||||
#define MESSEGE_PURGE_MORE_FR "Purge"
|
||||
#define MESSEGE_CONTINUE_PRINT_FR "Impression"
|
||||
#define MESSAGE_PAUSING_FR "Parking..."
|
||||
#define MESSAGE_CHANGING_FR "Attente filament pour démarrer"
|
||||
#define MESSAGE_UNLOAD_FR "Attente retrait du filament"
|
||||
#define MESSAGE_WAITING_FR "Presser bouton,pour reprendre"
|
||||
#define MESSAGE_INSERT_FR "Insérer filament et app. bouton pour continuer..."
|
||||
#define MESSAGE_LOAD_FR "Attente chargement filament"
|
||||
#define MESSAGE_PURGE_FR "Attente Purge filament"
|
||||
#define MESSAGE_RESUME_FR "Attente reprise impression"
|
||||
#define MESSAGE_HEAT_FR "Presser le bouton pour chauffer..."
|
||||
#define MESSAGE_HEATING_FR "Buse en chauffe Patienter SVP..."
|
||||
#define MESSAGE_OPTION_FR "Purger davantage ou continuer l'impression?"
|
||||
#define MESSAGE_PURGE_MORE_FR "Purge"
|
||||
#define MESSAGE_CONTINUE_PRINT_FR "Impression"
|
||||
#define EEPROM_SETTINGS_TITLE_FR "Paramètres EEPROM"
|
||||
#define EEPROM_SETTINGS_STORE_FR "Stocker les paramètres dans l'EEPROM"
|
||||
#define EEPROM_SETTINGS_READ_FR "Lire les paramètres de l'EEPROM"
|
||||
#define EEPROM_SETTINGS_REVERT_FR "Rétablir les paramètres par défaut d'usine"
|
||||
|
||||
#define EEPROM_STORE_TIPS_FR "Stocker les paramètres dans l'EEPROM?"
|
||||
#define EEPROM_READ_TIPS_FR "Lire les paramètres de l'EEPROM?"
|
||||
#define EEPROM_REVERT_TIPS_FR "Rétablir les paramètres par défaut d'usine?"
|
||||
|
|
|
@ -98,6 +98,8 @@
|
|||
#define MOTOR_OFF_TEXT_IT "Motor off"
|
||||
#define MOTOR_OFF_XY_TEXT_IT "Off-XY"
|
||||
#define SHUTDOWN_TEXT_IT "Spento"
|
||||
#define MACHINE_PARA_IT "Config"
|
||||
#define EEPROM_SETTINGS_IT "Eeprom Set"
|
||||
|
||||
#define U_DISK_TEXT_IT "USB"
|
||||
#define SD_CARD_TEXT_IT "SD"
|
||||
|
@ -256,16 +258,24 @@
|
|||
#define DIALOG_REPRINT_IT "Print again"
|
||||
#define DIALOG_WIFI_ENABLE_TIPS_IT "The wifi module is being configured,\nplease wait a moment....."
|
||||
|
||||
#define MESSEGE_PAUSING_IT "Parcheggiando..."
|
||||
#define MESSEGE_CHANGING_IT "Attendere avvio del cambio di filamento"
|
||||
#define MESSEGE_UNLOAD_IT "Attendere l'espulsione del filamento"
|
||||
#define MESSEGE_WAITING_IT "Premi per riprendere la stampa"
|
||||
#define MESSEGE_INSERT_IT "Inserisci il filamento e premi per continuare"
|
||||
#define MESSEGE_LOAD_IT "Attendere il caricamento del filamento"
|
||||
#define MESSEGE_PURGE_IT "Attendere lo spurgo del filamento"
|
||||
#define MESSEGE_RESUME_IT "Attendere la ripresa della stampa..."
|
||||
#define MESSEGE_HEAT_IT "Premi per riscaldare ugello"
|
||||
#define MESSEGE_HEATING_IT "Riscaldam. ugello Attendere prego..."
|
||||
#define MESSEGE_OPTION_IT "Eliminare di più o continuare a stampare?"
|
||||
#define MESSEGE_PURGE_MORE_IT "Epurazione"
|
||||
#define MESSEGE_CONTINUE_PRINT_IT "Stampa"
|
||||
#define MESSAGE_PAUSING_IT "Parcheggiando..."
|
||||
#define MESSAGE_CHANGING_IT "Attendere avvio del cambio di filamento"
|
||||
#define MESSAGE_UNLOAD_IT "Attendere l'espulsione del filamento"
|
||||
#define MESSAGE_WAITING_IT "Premi per riprendere la stampa"
|
||||
#define MESSAGE_INSERT_IT "Inserisci il filamento e premi per continuare"
|
||||
#define MESSAGE_LOAD_IT "Attendere il caricamento del filamento"
|
||||
#define MESSAGE_PURGE_IT "Attendere lo spurgo del filamento"
|
||||
#define MESSAGE_RESUME_IT "Attendere la ripresa della stampa..."
|
||||
#define MESSAGE_HEAT_IT "Premi per riscaldare ugello"
|
||||
#define MESSAGE_HEATING_IT "Riscaldam. ugello Attendere prego..."
|
||||
#define MESSAGE_OPTION_IT "Eliminare di più o continuare a stampare?"
|
||||
#define MESSAGE_PURGE_MORE_IT "Epurazione"
|
||||
#define MESSAGE_CONTINUE_PRINT_IT "Stampa"
|
||||
#define EEPROM_SETTINGS_TITLE_IT "Impostazioni EEPROM"
|
||||
#define EEPROM_SETTINGS_STORE_IT "Memorizzare le impostazioni su EEPROM"
|
||||
#define EEPROM_SETTINGS_READ_IT "Leggi le impostazioni dalla EEPROM"
|
||||
#define EEPROM_SETTINGS_REVERT_IT "Ripristina le impostazioni predefinite di fabbrica"
|
||||
|
||||
#define EEPROM_STORE_TIPS_IT "Memorizzare le impostazioni su EEPROM?"
|
||||
#define EEPROM_READ_TIPS_IT "Leggi le impostazioni dalla EEPROM?"
|
||||
#define EEPROM_REVERT_TIPS_IT "Ripristinare le impostazioni predefinite?"
|
||||
|
|
|
@ -98,6 +98,8 @@
|
|||
#define MOTOR_OFF_TEXT_RU "отклмотор"
|
||||
#define MOTOR_OFF_XY_TEXT_RU "Off-XY"
|
||||
#define SHUTDOWN_TEXT_RU "выключение"
|
||||
#define MACHINE_PARA_RU "конфиг"
|
||||
#define EEPROM_SETTINGS_RU "Eeprom Set"
|
||||
|
||||
#define U_DISK_TEXT_RU "U диск"
|
||||
#define SD_CARD_TEXT_RU "SD диск"
|
||||
|
@ -257,16 +259,24 @@
|
|||
#define DIALOG_REPRINT_RU "Print again"
|
||||
#define DIALOG_WIFI_ENABLE_TIPS_RU "The wifi module is being configured,\nplease wait a moment....."
|
||||
|
||||
#define MESSEGE_PAUSING_RU "Стоянка..."
|
||||
#define MESSEGE_CHANGING_RU "Подождите, пока начнется смена филамента"
|
||||
#define MESSEGE_UNLOAD_RU "Дождитесь выгрузки нити"
|
||||
#define MESSEGE_WAITING_RU "Нажмите кнопку,чтобы возобновить печать"
|
||||
#define MESSEGE_INSERT_RU "Вставьте нить и нажмите кнопку,чтобы продолжить"
|
||||
#define MESSEGE_LOAD_RU "Дождитесь загрузки нити"
|
||||
#define MESSEGE_PURGE_RU "Дождитесь чистки нити"
|
||||
#define MESSEGE_RESUME_RU "Подождите,пока печать возобновится ..."
|
||||
#define MESSEGE_HEAT_RU "Нажмите кнопку, чтобы нагреть форсунку"
|
||||
#define MESSEGE_HEATING_RU "Подогрев форсунки Пожалуйста, подождите ..."
|
||||
#define MESSEGE_OPTION_RU "Очистить больше или продолжить печать?"
|
||||
#define MESSEGE_PURGE_MORE_RU "чистка"
|
||||
#define MESSEGE_CONTINUE_PRINT_RU "Распечатать"
|
||||
#define MESSAGE_PAUSING_RU "Стоянка..."
|
||||
#define MESSAGE_CHANGING_RU "Подождите, пока начнется смена филамента"
|
||||
#define MESSAGE_UNLOAD_RU "Дождитесь выгрузки нити"
|
||||
#define MESSAGE_WAITING_RU "Нажмите кнопку,чтобы возобновить печать"
|
||||
#define MESSAGE_INSERT_RU "Вставьте нить и нажмите кнопку,чтобы продолжить"
|
||||
#define MESSAGE_LOAD_RU "Дождитесь загрузки нити"
|
||||
#define MESSAGE_PURGE_RU "Дождитесь чистки нити"
|
||||
#define MESSAGE_RESUME_RU "Подождите,пока печать возобновится ..."
|
||||
#define MESSAGE_HEAT_RU "Нажмите кнопку, чтобы нагреть форсунку"
|
||||
#define MESSAGE_HEATING_RU "Подогрев форсунки Пожалуйста, подождите ..."
|
||||
#define MESSAGE_OPTION_RU "Очистить больше или продолжить печать?"
|
||||
#define MESSAGE_PURGE_MORE_RU "чистка"
|
||||
#define MESSAGE_CONTINUE_PRINT_RU "Распечатать"
|
||||
#define EEPROM_SETTINGS_TITLE_RU "Настройки EEPROM"
|
||||
#define EEPROM_SETTINGS_STORE_RU "Сохранение настроек в EEPROM"
|
||||
#define EEPROM_SETTINGS_READ_RU "Чтение настроек из EEPROM"
|
||||
#define EEPROM_SETTINGS_REVERT_RU "Восстановить заводские настройки по умолчанию"
|
||||
|
||||
#define EEPROM_STORE_TIPS_RU "Сохранить настройки в EEPROM?"
|
||||
#define EEPROM_READ_TIPS_RU "Читать настройки из EEPROM?"
|
||||
#define EEPROM_REVERT_TIPS_RU "Revert settings to factory defaults?"
|
||||
|
|
|
@ -22,6 +22,211 @@
|
|||
#pragma once
|
||||
|
||||
//*************简体中文***********************//
|
||||
#define NEXT_CN "下一页"
|
||||
#define PREVIOUS_CN "上一页"
|
||||
#define DEFAULT_CN "默认值"
|
||||
#define KEY_BACK_CN "退格"
|
||||
#define KEY_REST_CN "重置"
|
||||
#define KEY_CONFIRM_CN "确定"
|
||||
|
||||
#define MACHINE_PARA_TITLE_CN "机器参数"
|
||||
#define MACHINE_TYPE_CNOFIG_CN "机器设置"
|
||||
#define TEMPERATURE_CONFIG_CN "温度设置"
|
||||
#define MOTOR_CONFIG_CN "电机设置"
|
||||
#define ADVANCE_CONFIG_CN "高级设置"
|
||||
|
||||
#define MACHINE_CONFIG_TITLE_CN "机器参数>机器配置"
|
||||
#define MACHINE_TYPE_CN "机型选择"
|
||||
#define MACHINE_STROKE_CN "行程设置"
|
||||
#define MACHINE_HOMEDIR_CN "归零方向"
|
||||
#define MACHINE_ENDSTOP_TYPE_CN "限位开关类型"
|
||||
#define MACHINE_FILAMENT_CONFIG_CN "换料设置"
|
||||
#define MACHINE_LEVELING_CONFIG_CN "调平设置"
|
||||
|
||||
#define MACHINE_TYPE_CONFIG_TITLE_CN "机器参数>机型选择"
|
||||
#define MACHINE_TYPE_XYZ_CN "XYZ机型"
|
||||
#define MACHINE_TYPE_DELTA_CN "Delta机型"
|
||||
#define MACHINE_TYPE_COREXY_CN "Corexy机型"
|
||||
|
||||
#define MACHINE_STROKE_CONF_TITLE_CN "机器参数>机器行程"
|
||||
#define X_MAX_LENGTH_CN "X轴最大行程"
|
||||
#define Y_MAX_LENGTH_CN "Y轴最大行程"
|
||||
#define Z_MAX_LENGTH_CN "Z轴最大行程"
|
||||
|
||||
#define X_MIN_LENGTH_CN "X轴最小行程"
|
||||
#define Y_MIN_LENGTH_CN "Y轴最小行程"
|
||||
#define Z_MIN_LENGTH_CN "Z轴最小行程"
|
||||
|
||||
#define HOME_DIR_CONF_TITLE_CN "机器参数>归零方向"
|
||||
#define HOME_DIR_X_CN "X轴归零方向"
|
||||
#define HOME_DIR_Y_CN "Y轴归零方向"
|
||||
#define HOME_DIR_Z_CN "Z轴归零方向"
|
||||
#define HOME_MIN_CN "MIN"
|
||||
#define HOME_MAX_CN "MAX"
|
||||
|
||||
#define ENDSTOP_CONF_TITLE_CN "机器参数>限位开关"
|
||||
#define MIN_ENDSTOP_X_CN "X轴最小限位"
|
||||
#define MIN_ENDSTOP_Y_CN "Y轴最小限位"
|
||||
#define MIN_ENDSTOP_Z_CN "Z轴最小限位"
|
||||
#define MAX_ENDSTOP_X_CN "X轴最大限位"
|
||||
#define MAX_ENDSTOP_Y_CN "Y轴最大限位"
|
||||
#define MAX_ENDSTOP_Z_CN "Z轴最大限位"
|
||||
#define ENDSTOP_FIL_CN "断料开关类型"
|
||||
#define ENDSTOP_LEVEL_CN "调平开关类型"
|
||||
#define ENDSTOP_OPENED_CN "常开"
|
||||
#define ENDSTOP_CLOSED_CN "常闭"
|
||||
|
||||
#define FILAMENT_CONF_TITLE_CN "换料设置"
|
||||
#define FILAMENT_IN_TEMPERATURE_CN "进料温度"
|
||||
#define FILAMENT_IN_LENGTH_CN "进料长度"
|
||||
#define FILAMENT_IN_SPEED_CN "进料速度"
|
||||
#define FILAMENT_OUT_TEMPERATURE_CN "退料温度"
|
||||
#define FILAMENT_OUT_LENGTH_CN "退料长度"
|
||||
#define FILAMENT_OUT_SPEED_CN "退料速度"
|
||||
|
||||
#define LEVELING_CONF_TITLE_CN "调平设置"
|
||||
#define LEVELING_PARA_CONF_CN "调平设置"
|
||||
#define LEVELING_DELTA_CN "delta机型设置"
|
||||
#define LEVELING_XYZ_CN "手动调平坐标设置"
|
||||
|
||||
#define LEVELING_PARA_CONF_TITLE_CN "调平参数"
|
||||
#define AUTO_LEVELING_ENABLE_CN "自动调平"
|
||||
#define BLTOUCH_LEVELING_ENABLE_CN "启动BLtouch"
|
||||
#define PROBE_PORT_CN "调平探针接口"
|
||||
#define PROBE_X_OFFSET_CN "探针X方向偏移"
|
||||
#define PROBE_Y_OFFSET_CN "探针Y方向偏移"
|
||||
#define PROBE_Z_OFFSET_CN "探针Z方向偏移"
|
||||
#define PROBE_XY_SPEED_CN "探针XY方向移动速度"
|
||||
#define PROBE_Z_SPEED_CN "探针Z方向移动速度"
|
||||
#define ENABLE_CN "是"
|
||||
#define DISABLE_CN "否"
|
||||
#define Z_MIN_CN "ZMin"
|
||||
#define Z_MAX_CN "ZMax"
|
||||
|
||||
#define DELTA_LEVEL_CONF_TITLE_CN "Delta机器参数"
|
||||
#define DELTA_LEVEL_CONF_CN "Delta机器调平"
|
||||
#define DELTA_MACHINE_RADIUS_CN "机器半径"
|
||||
#define DELTA_DIAGONAL_ROD_CN "机器杆长"
|
||||
#define DELTA_PRINT_RADIUS_CN "打印半径"
|
||||
#define DELTA_HEIGHT_CN "打印高度"
|
||||
#define SMOOTH_ROD_OFFSET_CN "滑块偏移"
|
||||
#define EFFECTOR_OFFSET_CN "效应器偏移"
|
||||
#define CALIBRATION_RADIUS_CN "调平半径"
|
||||
|
||||
#define XYZ_LEVEL_CONF_TITLE_CN "XYZ机器参数"
|
||||
#define PROBE_REACH_MAX_LEFT_CN "探针达到最左位置"
|
||||
#define PROBE_REACH_MAX_RIGHT_CN "探针达到最右位置"
|
||||
#define PROBE_REACH_MAX_FRONT_CN "探针达到最前位置"
|
||||
#define PROBE_REACH_MAX_BACK_CN "探针达到最后位置"
|
||||
|
||||
#define TEMPERATURE_CONF_TITLE_CN "机器参数>温度设置"
|
||||
#define NOZZLE_CONF_CN "喷头设置"
|
||||
#define HOTBED_CONF_CN "热床设置"
|
||||
#define PREHEAT_TEMPER_CN "预设温度"
|
||||
|
||||
#define NOZZLE_CONF_TITLE_CN "机器参数>喷头设置"
|
||||
#define NOZZLECNT_CN "喷头数量"
|
||||
#define NOZZLE_TYPE_CN "E0温感类型"
|
||||
#define NOZZLE_ADJUST_TYPE_CN "PID调温"
|
||||
#define NOZZLE_MIN_TEMPERATURE_CN "最低温度"
|
||||
#define NOZZLE_MAX_TEMPERATURE_CN "最高温度"
|
||||
#define EXTRUD_MIN_TEMPER_CN "最低挤出温度"
|
||||
|
||||
#define HOTBED_CONF_TITLE_CN "机器参数>热床设置"
|
||||
#define HOTBED_ADJUST_CN "PID调温"
|
||||
#define HOTBED_MIN_TEMPERATURE_CN "最低温度"
|
||||
#define HOTBED_MAX_TEMPERATURE_CN "最高温度"
|
||||
|
||||
#define MOTOR_CONF_TITLE_CN "机器参数>电机设置"
|
||||
#define MAXFEEDRATE_CONF_CN "最大速度设置"
|
||||
#define ACCELERATION_CONF_CN "加速度设置"
|
||||
#define JERKCONF_CN "突变速度设置"
|
||||
#define STEPSCONF_CN "脉冲设置"
|
||||
#define TMC_CURRENT_CN "TMC 驱动电流设置"
|
||||
#define TMC_STEP_MODE_CN "TMC 驱动模式设置"
|
||||
#define MOTORDIRCONF_CN "电机方向设置"
|
||||
#define HOMEFEEDRATECONF_CN "归零速度设置"
|
||||
|
||||
#define MAXFEEDRATE_CONF_TITLE_CN "机器参数>最大速度"
|
||||
#define X_MAXFEEDRATE_CN "X轴最大速度"
|
||||
#define Y_MAXFEEDRATE_CN "Y轴最大速度"
|
||||
#define Z_MAXFEEDRATE_CN "Z轴最大速度"
|
||||
#define E0_MAXFEEDRATE_CN "E0轴最大速度"
|
||||
#define E1_MAXFEEDRATE_CN "E1轴最大速度"
|
||||
|
||||
#define ACCELERATION_CONF_TITLE_CN "机器参数>加速度"
|
||||
#define PRINT_ACCELERATION_CN "打印加速度"
|
||||
#define RETRACT_ACCELERATION_CN "回抽加速度"
|
||||
#define TRAVEL_ACCELERATION_CN "空载加速度"
|
||||
#define X_ACCELERATION_CN "X轴加速度"
|
||||
#define Y_ACCELERATION_CN "Y轴加速度"
|
||||
#define Z_ACCELERATION_CN "Z轴加速度"
|
||||
#define E0_ACCELERATION_CN "E0轴加速度"
|
||||
#define E1_ACCELERATION_CN "E1轴加速度"
|
||||
|
||||
#define JERK_CONF_TITLE_CN "机器参数>突变速度"
|
||||
#define X_JERK_CN "X轴突变速度"
|
||||
#define Y_JERK_CN "Y轴突变速度"
|
||||
#define Z_JERK_CN "Z轴突变速度"
|
||||
#define E_JERK_CN "E轴突变速度"
|
||||
|
||||
#define STEPS_CONF_TITLE_CN "机器参数>脉冲设置"
|
||||
#define X_STEPS_CN "X轴脉冲"
|
||||
#define Y_STEPS_CN "Y轴脉冲"
|
||||
#define Z_STEPS_CN "Z轴脉冲"
|
||||
#define E0_STEPS_CN "E0轴脉冲"
|
||||
#define E1_STEPS_CN "E1轴脉冲"
|
||||
|
||||
#define TMC_CURRENT_CONF_TITLE_CN "机器参数>TMC电流设置"
|
||||
#define X_TMC_CURRENT_CN "X轴电流(毫安)"
|
||||
#define Y_TMC_CURRENT_CN "Y轴电流(毫安)"
|
||||
#define Z_TMC_CURRENT_CN "Z轴电流(毫安)"
|
||||
#define E0_TMC_CURRENT_CN "E0轴电流(毫安)"
|
||||
#define E1_TMC_CURRENT_CN "E1轴电流(毫安)"
|
||||
|
||||
#define TMC_MODE_CONF_TITLE_CN "机器参数>TMC模式设置"
|
||||
#define X_TMC_MODE_CN "X轴是否使能静音模式"
|
||||
#define Y_TMC_MODE_CN "Y轴是否使能静音模式"
|
||||
#define Z_TMC_MODE_CN "Z轴是否使能静音模式"
|
||||
#define E0_TMC_MODE_CN "E0轴是否使能静音模式"
|
||||
#define E1_TMC_MODE_CN "E1轴是否使能静音模式"
|
||||
|
||||
#define MOTORDIR_CONF_TITLE_CN "机器参数>电机方向"
|
||||
#define X_MOTORDIR_CN "X轴电机方向"
|
||||
#define Y_MOTORDIR_CN "Y轴电机方向"
|
||||
#define Z_MOTORDIR_CN "Z轴电机方向"
|
||||
#define E0_MOTORDIR_CN "E0轴电机方向"
|
||||
#define E1_MOTORDIR_CN "E1轴电机方向"
|
||||
#define INVERT_P_CN "正向"
|
||||
#define INVERT_N_CN "反向"
|
||||
|
||||
#define HOMEFEEDRATE_CONF_TITLE_CN "机器参数>归零速度"
|
||||
#define X_HOMESPEED_CN "XY轴归零速度"
|
||||
#define Y_HOMESPEED_CN "Y轴归零速度"
|
||||
#define Z_HOMESPEED_CN "Z轴归零速度"
|
||||
|
||||
#define ADVANCED_CONF_TITLE_CN "机器参数>高级设置"
|
||||
#define PWROFF_DECTION_CN "断电检测模块"
|
||||
#define PWROFF_AFTER_PRINT_CN "启动打完关机功能"
|
||||
#define HAVE_UPS_CN "机器配备UPS电源"
|
||||
#define Z2_AND_Z2ENDSTOP_CONF_CN "双Z轴双限位功能设置"
|
||||
#define ENABLE_PINS_CONF_CN "电机使能脚电平设置"
|
||||
|
||||
#define Z2_AND_Z2ENDSTOP_CONF_TITLE_CN "双z双限位设置"
|
||||
#define Z2_ENABLE_CN "启用Z2轴"
|
||||
#define Z2_ENDSTOP_CN "启用Z2限位"
|
||||
#define Z2_PORT_CN "Z2限位接口"
|
||||
|
||||
#define ENABLE_PINS_CONF_TITLE_CN "电机使能脚电平"
|
||||
#define X_ENABLE_PINS_INVERT_CN "X轴电机使能电平"
|
||||
#define Y_ENABLE_PINS_INVERT_CN "Y轴电机使能电平"
|
||||
#define Z_ENABLE_PINS_INVERT_CN "Z轴电机使能电平"
|
||||
#define E_ENABLE_PINS_INVERT_CN "E轴电机使能电平"
|
||||
|
||||
#define PAUSE_POSITION_CN "打印暂停位置设置"
|
||||
#define PAUSE_POSITION_X_CN "X轴暂停位置(绝对位置,-1无效)"
|
||||
#define PAUSE_POSITION_Y_CN "Y轴暂停位置(绝对位置,-1无效)"
|
||||
#define PAUSE_POSITION_Z_CN "Z轴暂停位置(相对位置,-1无效)"
|
||||
#define TOOL_TEXT_CN "工具"
|
||||
#define PREHEAT_TEXT_CN "预热"
|
||||
#define MOVE_TEXT_CN "移动"
|
||||
|
@ -98,6 +303,8 @@
|
|||
#define MOTOR_OFF_TEXT_CN "关闭电机"
|
||||
#define MOTOR_OFF_XY_TEXT_CN "关闭XY"
|
||||
#define SHUTDOWN_TEXT_CN "关机"
|
||||
#define MACHINE_PARA_CN "机器参数"
|
||||
#define EEPROM_SETTINGS_CN "Eeprom设置"
|
||||
|
||||
#define U_DISK_TEXT_CN "U盘"
|
||||
#define SD_CARD_TEXT_CN "SD卡"
|
||||
|
@ -249,16 +456,24 @@
|
|||
#define PRINTING_OPERATION_GBK "操作"
|
||||
#define PRINTING_PAUSE_GBK "暂停"
|
||||
|
||||
#define MESSEGE_PAUSING_CN "暂停中..."
|
||||
#define MESSEGE_CHANGING_CN "等待换料开始..."
|
||||
#define MESSEGE_UNLOAD_CN "退料中,请稍等..."
|
||||
#define MESSEGE_WAITING_CN "点击按钮恢复打印"
|
||||
#define MESSEGE_INSERT_CN "装载耗材后,点击按钮开始打印"
|
||||
#define MESSEGE_LOAD_CN "进料中,请稍等..."
|
||||
#define MESSEGE_PURGE_CN "等待挤出..."
|
||||
#define MESSEGE_RESUME_CN "等待恢复打印..."
|
||||
#define MESSEGE_HEAT_CN "按下按钮,加热喷头"
|
||||
#define MESSEGE_HEATING_CN "喷头加热中,请等待..."
|
||||
#define MESSEGE_OPTION_CN "挤出更多还是继续打印?"
|
||||
#define MESSEGE_PURGE_MORE_CN "挤出"
|
||||
#define MESSEGE_CONTINUE_PRINT_CN "打印"
|
||||
#define MESSAGE_PAUSING_CN "暂停中..."
|
||||
#define MESSAGE_CHANGING_CN "等待换料开始..."
|
||||
#define MESSAGE_UNLOAD_CN "退料中,请稍等..."
|
||||
#define MESSAGE_WAITING_CN "点击按钮恢复打印"
|
||||
#define MESSAGE_INSERT_CN "装载耗材后,点击按钮开始打印"
|
||||
#define MESSAGE_LOAD_CN "进料中,请稍等..."
|
||||
#define MESSAGE_PURGE_CN "等待挤出..."
|
||||
#define MESSAGE_RESUME_CN "等待恢复打印..."
|
||||
#define MESSAGE_HEAT_CN "按下按钮,加热喷头"
|
||||
#define MESSAGE_HEATING_CN "喷头加热中,请等待..."
|
||||
#define MESSAGE_OPTION_CN "挤出更多还是继续打印?"
|
||||
#define MESSAGE_PURGE_MORE_CN "挤出"
|
||||
#define MESSAGE_CONTINUE_PRINT_CN "打印"
|
||||
#define EEPROM_SETTINGS_TITLE_CN "EEPROM 设置"
|
||||
#define EEPROM_SETTINGS_STORE_CN "保存参数至EEPROM"
|
||||
#define EEPROM_SETTINGS_READ_CN "读取EEPROM参数"
|
||||
#define EEPROM_SETTINGS_REVERT_CN "恢复默认参数"
|
||||
|
||||
#define EEPROM_STORE_TIPS_CN "是否保存参数到EEPROM?"
|
||||
#define EEPROM_READ_TIPS_CN "是否使用EEPROM参数?"
|
||||
#define EEPROM_REVERT_TIPS_CN "是否恢复默认参数?"
|
||||
|
|
|
@ -98,6 +98,8 @@
|
|||
#define MOTOR_OFF_TEXT_SP "Apagar motor"
|
||||
#define MOTOR_OFF_XY_TEXT_SP "Off-XY"
|
||||
#define SHUTDOWN_TEXT_SP "Apagar"
|
||||
#define MACHINE_PARA_SP "Config"
|
||||
#define EEPROM_SETTINGS_SP "Eeprom Set"
|
||||
|
||||
#define U_DISK_TEXT_SP "PENDRIVE"
|
||||
#define SD_CARD_TEXT_SP "SD"
|
||||
|
@ -264,16 +266,24 @@
|
|||
#define PRINTING_AJUSTES_SP "Ajustes"
|
||||
#define PRINTING_PAUSAR_SP "Pausar"
|
||||
|
||||
#define MESSEGE_PAUSING_SP "Aparcando..."
|
||||
#define MESSEGE_CHANGING_SP "Esperando para iniciar el cambio de filamento"
|
||||
#define MESSEGE_UNLOAD_SP "Espere para liberar el filamento"
|
||||
#define MESSEGE_WAITING_SP "Pulsar el botón para reanudar impresión"
|
||||
#define MESSEGE_INSERT_SP "Inserte el filamento y pulse el botón para continuar..."
|
||||
#define MESSEGE_LOAD_SP "Espere para purgar el filamento"
|
||||
#define MESSEGE_PURGE_SP "Espere para purgar el filamento"
|
||||
#define MESSEGE_RESUME_SP "Esperando impresora para reanudar..."
|
||||
#define MESSEGE_HEAT_SP "Pulse el botón para calentar la boquilla"
|
||||
#define MESSEGE_HEATING_SP "Calentando boquilla Espere por favor..."
|
||||
#define MESSEGE_OPTION_SP "¿Purgar más o continuar con la impresión?"
|
||||
#define MESSEGE_PURGE_MORE_SP "Purga"
|
||||
#define MESSEGE_CONTINUE_PRINT_SP "Impresión"
|
||||
#define MESSAGE_PAUSING_SP "Aparcando..."
|
||||
#define MESSAGE_CHANGING_SP "Esperando para iniciar el cambio de filamento"
|
||||
#define MESSAGE_UNLOAD_SP "Espere para liberar el filamento"
|
||||
#define MESSAGE_WAITING_SP "Pulsar el botón para reanudar impresión"
|
||||
#define MESSAGE_INSERT_SP "Inserte el filamento y pulse el botón para continuar..."
|
||||
#define MESSAGE_LOAD_SP "Espere para purgar el filamento"
|
||||
#define MESSAGE_PURGE_SP "Espere para purgar el filamento"
|
||||
#define MESSAGE_RESUME_SP "Esperando impresora para reanudar..."
|
||||
#define MESSAGE_HEAT_SP "Pulse el botón para calentar la boquilla"
|
||||
#define MESSAGE_HEATING_SP "Calentando boquilla Espere por favor..."
|
||||
#define MESSAGE_OPTION_SP "¿Purgar más o continuar con la impresión?"
|
||||
#define MESSAGE_PURGE_MORE_SP "Purga"
|
||||
#define MESSAGE_CONTINUE_PRINT_SP "Impresión"
|
||||
#define EEPROM_SETTINGS_TITLE_SP "Configuraciones EEPROM"
|
||||
#define EEPROM_SETTINGS_STORE_SP "Guardar configuración en EEPROM"
|
||||
#define EEPROM_SETTINGS_READ_SP "Leer la configuración de EEPROM"
|
||||
#define EEPROM_SETTINGS_REVERT_SP "Revert settings to factory defaults"
|
||||
|
||||
#define EEPROM_STORE_TIPS_SP "¿Guardar ajustes en EEPROM?"
|
||||
#define EEPROM_READ_TIPS_SP "Leer la configuración de EEPROM?"
|
||||
#define EEPROM_REVERT_TIPS_SP "Revert settings to factory defaults?"
|
||||
|
|
|
@ -0,0 +1,480 @@
|
|||
/**
|
||||
* Marlin 3D Printer Firmware
|
||||
* Copyright (c) 2020 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
|
||||
*
|
||||
* Based on Sprinter and grbl.
|
||||
* Copyright (c) 2011 Camiel Gubbels / Erik van der Zalm
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*
|
||||
*/
|
||||
#pragma once
|
||||
|
||||
//***************繁体中文**********************//
|
||||
#define NEXT_T_CN "下一頁"
|
||||
#define PREVIOUS_T_CN "上一頁"
|
||||
#define DEFAULT_T_CN "默認值"
|
||||
#define KEY_BACK_T_CN "退格"
|
||||
#define KEY_REST_T_CN "重置"
|
||||
#define KEY_CONFIRM_T_CN "確定"
|
||||
|
||||
#define MACHINE_PARA_TITLE_T_CN "機器參數"
|
||||
#define MACHINE_TYPE_CNOFIG_T_CN "機器設置"
|
||||
#define TEMPERATURE_CONFIG_T_CN "溫度設置"
|
||||
#define MOTOR_CONFIG_T_CN "電機設置"
|
||||
#define ADVANCE_CONFIG_T_CN "高級設置"
|
||||
|
||||
#define MACHINE_CONFIG_TITLE_T_CN "機器參數>機器配置"
|
||||
#define MACHINE_TYPE_T_CN "機型選擇"
|
||||
#define MACHINE_STROKE_T_CN "行程設置"
|
||||
#define MACHINE_HOMEDIR_T_CN "歸零方向"
|
||||
#define MACHINE_ENDSTOP_TYPE_T_CN "限位開關類型"
|
||||
#define MACHINE_FILAMENT_CONFIG_T_CN "換料設置"
|
||||
#define MACHINE_LEVELING_CONFIG_T_CN "調平設置"
|
||||
|
||||
#define MACHINE_TYPE_CONFIG_TITLE_T_CN "機器參數>機型選擇"
|
||||
#define MACHINE_TYPE_XYZ_T_CN "XYZ機型"
|
||||
#define MACHINE_TYPE_DELTA_T_CN "Delta機型"
|
||||
#define MACHINE_TYPE_COREXY_T_CN "Corexy機型"
|
||||
|
||||
#define MACHINE_STROKE_CONF_TITLE_T_CN "機器參數>機器行程"
|
||||
#define X_MAX_LENGTH_T_CN "X軸最大行程"
|
||||
#define Y_MAX_LENGTH_T_CN "Y軸最大行程"
|
||||
#define Z_MAX_LENGTH_T_CN "Z軸最大行程"
|
||||
|
||||
#define X_MIN_LENGTH_T_CN "X軸最小行程"
|
||||
#define Y_MIN_LENGTH_T_CN "Y軸最小行程"
|
||||
#define Z_MIN_LENGTH_T_CN "Z軸最小行程"
|
||||
|
||||
#define HOME_DIR_CONF_TITLE_T_CN "機器參數>歸零方向"
|
||||
#define HOME_DIR_X_T_CN "X軸歸零方向"
|
||||
#define HOME_DIR_Y_T_CN "Y軸歸零方向"
|
||||
#define HOME_DIR_Z_T_CN "Z軸歸零方向"
|
||||
#define HOME_MIN_T_CN "MIN"
|
||||
#define HOME_MAX_T_CN "MAX"
|
||||
|
||||
#define ENDSTOP_CONF_TITLE_T_CN "機器參數>限位開關"
|
||||
#define MIN_ENDSTOP_X_T_CN "X軸最小限位"
|
||||
#define MIN_ENDSTOP_Y_T_CN "Y軸最小限位"
|
||||
#define MIN_ENDSTOP_Z_T_CN "Z軸最小限位"
|
||||
#define MAX_ENDSTOP_X_T_CN "X軸最大限位"
|
||||
#define MAX_ENDSTOP_Y_T_CN "Y軸最大限位"
|
||||
#define MAX_ENDSTOP_Z_T_CN "Z軸最大限位"
|
||||
#define ENDSTOP_FIL_T_CN "斷料開關類型"
|
||||
#define ENDSTOP_LEVEL_T_CN "調平開關類型"
|
||||
#define ENDSTOP_OPENED_T_CN "常開"
|
||||
#define ENDSTOP_CLOSED_T_CN "常閉"
|
||||
|
||||
#define FILAMENT_CONF_TITLE_T_CN "換料設置"
|
||||
#define FILAMENT_IN_TEMPERATURE_T_CN "進料溫度"
|
||||
#define FILAMENT_IN_LENGTH_T_CN "進料長度"
|
||||
#define FILAMENT_IN_SPEED_T_CN "進料速度"
|
||||
#define FILAMENT_OUT_TEMPERATURE_T_CN "退料溫度"
|
||||
#define FILAMENT_OUT_LENGTH_T_CN "退料長度"
|
||||
#define FILAMENT_OUT_SPEED_T_CN "退料速度"
|
||||
|
||||
#define LEVELING_CONF_TITLE_T_CN "調平設置"
|
||||
#define LEVELING_PARA_CONF_T_CN "調平設置"
|
||||
#define LEVELING_DELTA_T_CN "delta機型設置"
|
||||
#define LEVELING_XYZ_T_CN "手動調平坐標設置"
|
||||
|
||||
#define LEVELING_PARA_CONF_TITLE_T_CN "調平參數"
|
||||
#define AUTO_LEVELING_ENABLE_T_CN "自動調平"
|
||||
#define BLTOUCH_LEVELING_ENABLE_T_CN "啟動BLtouch"
|
||||
#define PROBE_PORT_T_CN "調平探針接口"
|
||||
#define PROBE_X_OFFSET_T_CN "探針X方向偏移"
|
||||
#define PROBE_Y_OFFSET_T_CN "探针Y方向偏移"
|
||||
#define PROBE_Z_OFFSET_T_CN "探针Z方向偏移"
|
||||
#define PROBE_XY_SPEED_T_CN "探针XY方向移動速度"
|
||||
#define PROBE_Z_SPEED_T_CN "探针Z方向移動速度"
|
||||
#define ENABLE_T_CN "是"
|
||||
#define DISABLE_T_CN "否"
|
||||
#define Z_MIN_T_CN "ZMin"
|
||||
#define Z_MAX_T_CN "ZMax"
|
||||
|
||||
#define DELTA_LEVEL_CONF_TITLE_T_CN "Delta機器參數"
|
||||
#define DELTA_LEVEL_CONF_T_CN "Delta機器調平"
|
||||
#define DELTA_MACHINE_RADIUS_T_CN "機器半徑"
|
||||
#define DELTA_DIAGONAL_ROD_T_CN "機器桿長"
|
||||
#define DELTA_PRINT_RADIUS_T_CN "打印半徑"
|
||||
#define DELTA_HEIGHT_T_CN "打印高度"
|
||||
#define SMOOTH_ROD_OFFSET_T_CN "滑塊偏移"
|
||||
#define EFFECTOR_OFFSET_T_CN "效應器偏移"
|
||||
#define CALIBRATION_RADIUS_T_CN "調平半徑"
|
||||
|
||||
#define XYZ_LEVEL_CONF_TITLE_T_CN "XYZ機器參數"
|
||||
#define PROBE_REACH_MAX_LEFT_T_CN "探针達到最左位置"
|
||||
#define PROBE_REACH_MAX_RIGHT_T_CN "探针達到最右位置"
|
||||
#define PROBE_REACH_MAX_FRONT_T_CN "探针達到最前位置"
|
||||
#define PROBE_REACH_MAX_BACK_T_CN "探针達到最後位置"
|
||||
|
||||
#define TEMPERATURE_CONF_TITLE_T_CN "機器參數>溫度設置"
|
||||
#define NOZZLE_CONF_T_CN "噴頭設置"
|
||||
#define HOTBED_CONF_T_CN "熱床設置"
|
||||
#define PREHEAT_TEMPER_T_CN "預設溫度"
|
||||
|
||||
#define NOZZLE_CONF_TITLE_T_CN "機器參數>噴頭設置"
|
||||
#define NOZZLECNT_T_CN "噴頭數量"
|
||||
#define NOZZLE_TYPE_T_CN "E0溫感類型"
|
||||
#define NOZZLE_ADJUST_TYPE_T_CN "PID調溫"
|
||||
#define NOZZLE_MIN_TEMPERATURE_T_CN "最低溫度"
|
||||
#define NOZZLE_MAX_TEMPERATURE_T_CN "最高溫度"
|
||||
#define EXTRUD_MIN_TEMPER_T_CN "最低擠出溫度"
|
||||
|
||||
#define HOTBED_CONF_TITLE_T_CN "機器參數>熱床設置"
|
||||
#define HOTBED_ADJUST_T_CN "PID調溫"
|
||||
#define HOTBED_MIN_TEMPERATURE_T_CN "最低溫度"
|
||||
#define HOTBED_MAX_TEMPERATURE_T_CN "最高溫度"
|
||||
|
||||
#define MOTOR_CONF_TITLE_T_CN "機器參數>電機設置"
|
||||
#define MAXFEEDRATE_CONF_T_CN "最大速度設置"
|
||||
#define ACCELERATION_CONF_T_CN "加速度設置"
|
||||
#define JERKCONF_T_CN "突變速度設置"
|
||||
#define STEPSCONF_T_CN "脈沖設置"
|
||||
#define TMC_CURRENT_T_CN "TMC 驅動電流設置"
|
||||
#define TMC_STEP_MODE_T_CN "TMC 驅動模式設置"
|
||||
#define MOTORDIRCONF_T_CN "電機方向設置"
|
||||
#define HOMEFEEDRATECONF_T_CN "歸零速度設置"
|
||||
|
||||
#define MAXFEEDRATE_CONF_TITLE_T_CN "機器參數>最大速度"
|
||||
#define X_MAXFEEDRATE_T_CN "X軸最大速度"
|
||||
#define Y_MAXFEEDRATE_T_CN "Y軸最大速度"
|
||||
#define Z_MAXFEEDRATE_T_CN "Z軸最大速度"
|
||||
#define E0_MAXFEEDRATE_T_CN "E0軸最大速度"
|
||||
#define E1_MAXFEEDRATE_T_CN "E1軸最大速度"
|
||||
|
||||
#define ACCELERATION_CONF_TITLE_T_CN "機器參數>加速度"
|
||||
#define PRINT_ACCELERATION_T_CN "打印加速度"
|
||||
#define RETRACT_ACCELERATION_T_CN "回抽加速度"
|
||||
#define TRAVEL_ACCELERATION_T_CN "空載加速度"
|
||||
#define X_ACCELERATION_T_CN "X軸加速度"
|
||||
#define Y_ACCELERATION_T_CN "Y軸加速度"
|
||||
#define Z_ACCELERATION_T_CN "Z軸加速度"
|
||||
#define E0_ACCELERATION_T_CN "E0軸加速度"
|
||||
#define E1_ACCELERATION_T_CN "E1軸加速度"
|
||||
|
||||
#define JERK_CONF_TITLE_T_CN "機器參數>突變速度"
|
||||
#define X_JERK_T_CN "X軸突變速度"
|
||||
#define Y_JERK_T_CN "Y軸突變速度"
|
||||
#define Z_JERK_T_CN "Z軸突變速度"
|
||||
#define E_JERK_T_CN "E軸突變速度"
|
||||
|
||||
#define STEPS_CONF_TITLE_T_CN "機器參數>脈衝設置"
|
||||
#define X_STEPS_T_CN "X軸脈沖"
|
||||
#define Y_STEPS_T_CN "Y軸脈沖"
|
||||
#define Z_STEPS_T_CN "Z軸脈沖"
|
||||
#define E0_STEPS_T_CN "E0軸脈沖"
|
||||
#define E1_STEPS_T_CN "E1軸脈沖"
|
||||
|
||||
#define TMC_CURRENT_CONF_TITLE_T_CN "機器參數>TMC電流設置"
|
||||
#define X_TMC_CURRENT_T_CN "X軸電流(毫安)"
|
||||
#define Y_TMC_CURRENT_T_CN "Y軸電流(毫安)"
|
||||
#define Z_TMC_CURRENT_T_CN "Z軸電流(毫安)"
|
||||
#define E0_TMC_CURRENT_T_CN "E0軸電流(毫安)"
|
||||
#define E1_TMC_CURRENT_T_CN "E1軸電流(毫安)"
|
||||
|
||||
#define TMC_MODE_CONF_TITLE_T_CN "機器參數>TMC模式設置"
|
||||
#define X_TMC_MODE_T_CN "X軸是否使能靜音模式"
|
||||
#define Y_TMC_MODE_T_CN "Y軸是否使能靜音模式"
|
||||
#define Z_TMC_MODE_T_CN "Z軸是否使能靜音模式"
|
||||
#define E0_TMC_MODE_T_CN "E0軸是否使能靜音模式"
|
||||
#define E1_TMC_MODE_T_CN "E1軸是否使能靜音模式"
|
||||
|
||||
#define MOTORDIR_CONF_TITLE_T_CN "機器參數>電機方向"
|
||||
#define X_MOTORDIR_T_CN "X軸電機方向"
|
||||
#define Y_MOTORDIR_T_CN "Y軸電機方向"
|
||||
#define Z_MOTORDIR_T_CN "Z軸電機方向"
|
||||
#define E0_MOTORDIR_T_CN "E0軸電機方向"
|
||||
#define E1_MOTORDIR_T_CN "E1軸電機方向"
|
||||
#define INVERT_P_T_CN "正向"
|
||||
#define INVERT_N_T_CN "反向"
|
||||
|
||||
#define HOMEFEEDRATE_CONF_TITLE_T_CN "機器參數>歸零速度"
|
||||
#define X_HOMESPEED_T_CN "XY軸歸零速度"
|
||||
#define Y_HOMESPEED_T_CN "Y軸歸零速度"
|
||||
#define Z_HOMESPEED_T_CN "Z軸歸零速度"
|
||||
|
||||
#define ADVANCED_CONF_TITLE_T_CN "機器參數>高級設置"
|
||||
#define PWROFF_DECTION_T_CN "斷電檢測模塊"
|
||||
#define PWROFF_AFTER_PRINT_T_CN "啟動打完關機功能"
|
||||
#define HAVE_UPS_T_CN "機器配備UPS電壓"
|
||||
#define Z2_AND_Z2ENDSTOP_CONF_T_CN "雙z軸雙限位功能設置"
|
||||
#define ENABLE_PINS_CONF_T_CN "電機使能腳電平設置"
|
||||
|
||||
#define Z2_AND_Z2ENDSTOP_CONF_TITLE_T_CN "雙z軸雙限位設置"
|
||||
#define Z2_ENABLE_T_CN "啟用Z2軸"
|
||||
#define Z2_ENDSTOP_T_CN "啟用Z2限位"
|
||||
#define Z2_PORT_T_CN "Z2限位接口"
|
||||
|
||||
#define ENABLE_PINS_CONF_TITLE_T_CN "電機使能腳電平"
|
||||
#define X_ENABLE_PINS_INVERT_T_CN "X軸電機使能電平"
|
||||
#define Y_ENABLE_PINS_INVERT_T_CN "Y軸電機使能電平"
|
||||
#define Z_ENABLE_PINS_INVERT_T_CN "Z軸電機使能電平"
|
||||
#define E_ENABLE_PINS_INVERT_T_CN "E軸電機使能電平"
|
||||
|
||||
#define PAUSE_POSITION_T_CN "打印暫停位置設置"
|
||||
#define PAUSE_POSITION_X_T_CN "X軸暫停位置(絕對位置,-1無效)"
|
||||
#define PAUSE_POSITION_Y_T_CN "Y軸暫停位置(絕對位置,-1無效)"
|
||||
#define PAUSE_POSITION_Z_T_CN "Z軸暫停位置(相對位置,-1無效)"
|
||||
|
||||
#define TOOL_TEXT_T_CN "工具"
|
||||
#define PREHEAT_TEXT_T_CN "預熱"
|
||||
#define MOVE_TEXT_T_CN "移動"
|
||||
#define HOME_TEXT_T_CN "回零"
|
||||
#define PRINT_TEXT_T_CN "打印"
|
||||
#define EXTRUDE_TEXT_T_CN "擠出"
|
||||
#define LEVELING_TEXT_T_CN "調平"
|
||||
#define AUTO_LEVELING_TEXT_T_CN "自動調平"
|
||||
#define SET_TEXT_T_CN "設置"
|
||||
#define MORE_TEXT_T_CN "更多"
|
||||
|
||||
#define ADD_TEXT_T_CN "增加"
|
||||
#define DEC_TEXT_T_CN "減少"
|
||||
#define EXTRUDER_1_TEXT_T_CN "噴頭1"
|
||||
#define EXTRUDER_2_TEXT_T_CN "噴頭2"
|
||||
#define HEATBED_TEXT_T_CN "熱床"
|
||||
#define TEXT_1C_T_CN "1℃"
|
||||
#define TEXT_5C_T_CN "5℃"
|
||||
#define TEXT_10C_T_CN "10℃"
|
||||
#define CLOSE_TEXT_T_CN "關閉"
|
||||
|
||||
#define BACK_TEXT_T_CN "返回"
|
||||
|
||||
#define TOOL_PREHEAT_T_CN "預熱"
|
||||
#define TOOL_EXTRUDE_T_CN "擠出"
|
||||
#define TOOL_MOVE_T_CN "移動"
|
||||
#define TOOL_HOME_T_CN "回零"
|
||||
#define TOOL_LEVELING_T_CN "調平"
|
||||
#define TOOL_AUTO_LEVELING_T_CN "自動調平"
|
||||
#define TOOL_FILAMENT_T_CN "換料"
|
||||
#define TOOL_MORE_T_CN "更多"
|
||||
|
||||
#define AXIS_X_ADD_TEXT_T_CN "X+"
|
||||
#define AXIS_X_DEC_TEXT_T_CN "X-"
|
||||
#define AXIS_Y_ADD_TEXT_T_CN "Y+"
|
||||
#define AXIS_Y_DEC_TEXT_T_CN "Y-"
|
||||
#define AXIS_Z_ADD_TEXT_T_CN "Z+"
|
||||
#define AXIS_Z_DEC_TEXT_T_CN "Z-"
|
||||
#define TEXT_01MM_T_CN "0.1mm"
|
||||
#define TEXT_1MM_T_CN "1mm"
|
||||
#define TEXT_10MM_T_CN "10mm"
|
||||
|
||||
#define HOME_X_TEXT_T_CN "X"
|
||||
#define HOME_Y_TEXT_T_CN "Y"
|
||||
#define HOME_Z_TEXT_T_CN "Z"
|
||||
#define HOME_ALL_TEXT_T_CN "回零"
|
||||
#define HOME_STOPMOVE_T_CN "急停"
|
||||
|
||||
#define PAGE_UP_TEXT_T_CN "上一頁"
|
||||
#define PAGE_DOWN_TEXT_T_CN "下一頁"
|
||||
|
||||
#define EXTRUDER_IN_TEXT_T_CN "進料"
|
||||
#define EXTRUDER_OUT_TEXT_T_CN "退料"
|
||||
#define EXTRUDE_1MM_TEXT_T_CN "1mm"
|
||||
#define EXTRUDE_5MM_TEXT_T_CN "5mm"
|
||||
#define EXTRUDE_10MM_TEXT_T_CN "10mm"
|
||||
#define EXTRUDE_LOW_SPEED_TEXT_T_CN "低速"
|
||||
#define EXTRUDE_MEDIUM_SPEED_TEXT_T_CN "常速"
|
||||
#define EXTRUDE_HIGH_SPEED_TEXT_T_CN "高速"
|
||||
|
||||
#define LEVELING_POINT1_TEXT_T_CN "第一點"
|
||||
#define LEVELING_POINT2_TEXT_T_CN "第二點"
|
||||
#define LEVELING_POINT3_TEXT_T_CN "第三點"
|
||||
#define LEVELING_POINT4_TEXT_T_CN "第四點"
|
||||
#define LEVELING_POINT5_TEXT_T_CN "第五點"
|
||||
|
||||
#define FILESYS_TEXT_T_CN "文件系統"
|
||||
#define WIFI_TEXT_T_CN "WIFI"
|
||||
#define FAN_TEXT_T_CN "風扇"
|
||||
#define ABOUT_TEXT_T_CN "關於"
|
||||
#define BREAK_POINT_TEXT_T_CN "斷點續打"
|
||||
#define FILAMENT_TEXT_T_CN "換料"
|
||||
#define LANGUAGE_TEXT_T_CN "語言"
|
||||
#define MOTOR_OFF_TEXT_T_CN "關閉電機"
|
||||
#define MOTOR_OFF_XY_TEXT_T_CN "關閉XY"
|
||||
#define SHUTDOWN_TEXT_T_CN "關機"
|
||||
#define MACHINE_PARA_T_CN "機器參數"
|
||||
#define EEPROM_SETTINGS_T_CN "Eeprom設置"
|
||||
|
||||
#define U_DISK_TEXT_T_CN "U盤"
|
||||
#define SD_CARD_TEXT_T_CN "SD卡"
|
||||
#define WIFI_NAME_TEXT_T_CN "無線網絡:"
|
||||
#define WIFI_KEY_TEXT_T_CN "密碼: "
|
||||
#define WIFI_IP_TEXT_T_CN "IP: "
|
||||
#define WIFI_AP_TEXT_T_CN "狀態: AP"
|
||||
#define WIFI_STA_TEXT_T_CN "狀態: STA"
|
||||
#define WIFI_CONNECTED_TEXT_T_CN "已連接"
|
||||
#define WIFI_DISCONNECTED_TEXT_T_CN "未連接"
|
||||
#define WIFI_EXCEPTION_TEXT_T_CN "模塊異常"
|
||||
#define CLOUD_TEXT_T_CN "雲服務"
|
||||
#define CLOUD_BIND_T_CN "已綁定"
|
||||
#define CLOUD_UNBIND_T_CN "解綁"
|
||||
#define CLOUD_UNBINDING_T_CN "解绑中"
|
||||
#define CLOUD_DISCONNECTED_T_CN "未連接"
|
||||
#define CLOUD_UNBINDED_T_CN "未綁定"
|
||||
#define CLOUD_BINDED_T_CN "已綁定"
|
||||
#define CLOUD_DISABLE_T_CN "已禁用"
|
||||
|
||||
#define FAN_ADD_TEXT_T_CN "增加"
|
||||
#define FAN_DEC_TEXT_T_CN "減少"
|
||||
#define FAN_OPEN_TEXT_T_CN "100%"
|
||||
#define FAN_HALF_TEXT_T_CN "50%"
|
||||
#define FAN_CLOSE_TEXT_T_CN "關閉"
|
||||
#define FAN_TIPS1_TEXT_T_CN "風扇"
|
||||
#define FAN_TIPS2_TEXT_T_CN "FAN\nClose"
|
||||
|
||||
#define FILAMENT_IN_TEXT_T_CN "進料"
|
||||
#define FILAMENT_OUT_TEXT_T_CN "退料"
|
||||
#define FILAMENT_EXT0_TEXT_T_CN "噴頭1"
|
||||
#define FILAMENT_EXT1_TEXT_T_CN "噴頭2"
|
||||
#define FILAMENT_HEAT_TEXT_T_CN "預熱"
|
||||
#define FILAMENT_STOP_TEXT_T_CN "停止"
|
||||
//#define FILAMENT_CHANGE_TEXT_T_CN "準備換料"
|
||||
#define FILAMENT_TIPS2_TEXT_T_CN "T:"
|
||||
#define FILAMENT_TIPS3_TEXT_T_CN "正在進料"
|
||||
#define FILAMENT_TIPS4_TEXT_T_CN "正在退料"
|
||||
#define FILAMENT_TIPS5_TEXT_T_CN "溫度太低,請先預熱"
|
||||
#define FILAMENT_TIPS6_TEXT_T_CN "換料完成"
|
||||
|
||||
#if 0
|
||||
#define FILAMENT_REPLAYS_IDLE_TEXT_T_CN "請按<進料>或<退料>進行換料!"
|
||||
#define FILAMENT_CHANGE_TEXT_T_CN "待打印機暫停后,請按<進料>或<退料>進行換料!"
|
||||
#endif
|
||||
|
||||
#define FILAMENT_CHANGE_TEXT_T_CN "待打印機暫停后,\n請按<進料>或<退料>"
|
||||
|
||||
#define FILAMENT_DIALOG_LOAD_HEAT_TIPS_T_CN "準備進料,正在加熱,請稍等"
|
||||
#define FILAMENT_DIALOG_UNLOAD_HEAT_TIPS_T_CN "準備退料,正在加熱,請稍等"
|
||||
#define FILAMENT_DIALOG_LOAD_CONFIRM1_TIPS_T_CN "加熱完成,請裝載耗材后,按<確定>開始進料"
|
||||
#define FILAMENT_DIALOG_LOAD_CONFIRM2_TIPS_T_CN "請裝載耗,按<確定>開始進料!"
|
||||
#define FILAMENT_DIALOG_UNLOAD_CONFIRM_TIPS_T_CN "加熱完成,请按<確定>開始退料!"
|
||||
#define FILAMENT_DIALOG_LOADING_TIPS_T_CN "正在進料,请等待耗材加載完成!"
|
||||
#define FILAMENT_DIALOG_UNLOADING_TIPS_T_CN "正在退料,请等待耗材卸載完成!"
|
||||
#define FILAMENT_DIALOG_LOAD_COMPLETE_TIPS_T_CN "進料完成,请按<確定>返回"
|
||||
#define FILAMENT_DIALOG_UNLOAD_COMPLETE_TIPS_T_CN "退料完成,请按<確定>返回"
|
||||
|
||||
#define PRE_HEAT_EXT_TEXT_T_CN "噴頭"
|
||||
#define PRE_HEAT_BED_TEXT_T_CN "熱床"
|
||||
|
||||
#define FILE_LOADING_T_CN "正在載入......"
|
||||
#define NO_FILE_AND_CHECK_T_CN "無文件!請插入sd卡/u盤!"
|
||||
#define NO_FILE_T_CN "無文件!"
|
||||
|
||||
#define EXTRUDER_TEMP_TEXT_T_CN "溫度"
|
||||
#define EXTRUDER_E_LENGTH1_TEXT_T_CN "噴頭"
|
||||
#define EXTRUDER_E_LENGTH2_TEXT_T_CN "噴頭"
|
||||
#define EXTRUDER_E_LENGTH3_TEXT_T_CN "噴頭"
|
||||
|
||||
#define ABOUT_TYPE_TEXT_T_CN "Type: "
|
||||
#define ABOUT_VERSION_TEXT_T_CN "Firmware: "
|
||||
#define ABOUT_WIFI_TEXT_T_CN "Wifi: "
|
||||
|
||||
#define PRINTING_OPERATION_T_CN "操作"
|
||||
#define PRINTING_PAUSE_T_CN "暫停"
|
||||
#define PRINTING_TEMP_T_CN "溫度"
|
||||
#define PRINTING_CHANGESPEED_T_CN "變速"
|
||||
#define PRINTING_RESUME_T_CN "恢復"
|
||||
#define PRINTING_STOP_T_CN "停止"
|
||||
#define PRINTING_MORE_T_CN "更多"
|
||||
#define PRINTING_EXTRUDER_T_CN "擠出"
|
||||
#define PRINTING_MOVE_T_CN "移動"
|
||||
|
||||
#define EXTRUDER_SPEED_T_CN "擠出"
|
||||
#define MOVE_SPEED_T_CN "移動"
|
||||
#define EXTRUDER_SPEED_STATE_T_CN "擠出速度"
|
||||
#define MOVE_SPEED_STATE_T_CN "移動速度"
|
||||
#define STEP_1PERCENT_T_CN "1%%"
|
||||
#define STEP_5PERCENT_T_CN "5%%"
|
||||
#define STEP_10PERCENT_T_CN "10%%"
|
||||
|
||||
#define ZOFFSET_T_CN "Z Offset"
|
||||
#define ZOFFSET_INC_T_CN "增加"
|
||||
#define ZOFFSET_DEC_T_CN "減少"
|
||||
|
||||
#define TITLE_READYPRINT_T_CN "準備打印"
|
||||
#define TITLE_PREHEAT_T_CN "預熱"
|
||||
#define TITLE_MOVE_T_CN "移動"
|
||||
#define TITLE_HOME_T_CN "回零"
|
||||
#define TITLE_EXTRUDE_T_CN "擠出"
|
||||
#define TITLE_LEVELING_T_CN "調平"
|
||||
#define TITLE_SET_T_CN "設置"
|
||||
#define TITLE_MORE_T_CN "更多"
|
||||
#define TITLE_CHOOSEFILE_T_CN "選擇文件"
|
||||
#define TITLE_PRINTING_T_CN "正在打印"
|
||||
#define TITLE_OPERATION_T_CN "操作"
|
||||
#define TITLE_ADJUST_T_CN "調整"
|
||||
#define TITLE_WIRELESS_T_CN "無線網絡"
|
||||
#define TITLE_FILAMENT_T_CN "換料"
|
||||
#define TITLE_ABOUT_T_CN "關於"
|
||||
#define TITLE_FAN_T_CN "風扇"
|
||||
#define TITLE_LANGUAGE_T_CN "語言"
|
||||
#define TITLE_PAUSE_T_CN "暫停"
|
||||
#define TITLE_CHANGESPEED_T_CN "變速"
|
||||
#define TITLE_CLOUD_TEXT_T_CN "雲服務"
|
||||
#define TITLE_DIALOG_CONFIRM_T_CN "確認"
|
||||
#define TITLE_FILESYS_T_CN "文件系統"
|
||||
#define TITLE_ZOFFSET_T_CN "Z Offset"
|
||||
|
||||
#define AUTO_SHUTDOWN_T_CN "自動關機"
|
||||
#define MANUAL_SHUTDOWN_T_CN "手動關機"
|
||||
|
||||
#define DIALOG_CONFIRM_T_CN "確定"
|
||||
#define DIALOG_CANCLE_T_CN "取消"
|
||||
#define DIALOG_OK_T_CN "確認"
|
||||
#define DIALOG_RESET_T_CN "重設"
|
||||
#define DIALOG_RETRY_T_CN "重試"
|
||||
#define DIALOG_DISABLE_T_CN "禁用"
|
||||
#define DIALOG_PRINT_MODEL_T_CN "打印模型?"
|
||||
#define DIALOG_CANCEL_PRINT_T_CN "停止打印?"
|
||||
#define DIALOG_RETRY_T_CN "重試"
|
||||
#define DIALOG_STOP_T_CN "停止"
|
||||
#define DIALOG_REPRINT_FROM_BREAKPOINT_T_CN "從斷點續打?"
|
||||
//#define DIALOG_UNBIND_PRINTER_T_CN "解除綁定?"
|
||||
#define DIALOG_ERROR_TIPS1_T_CN "錯誤:找不到文件,請插入sd卡/u盤!"
|
||||
#define DIALOG_ERROR_TIPS2_T_CN "錯誤:通信失敗,請檢查波特率或主板硬件!"
|
||||
#define DIALOG_ERROR_TIPS3_T_CN "錯誤:文件名或文件路徑太長!"
|
||||
#define DIALOG_CLOSE_MACHINE_T_CN "正在關機......"
|
||||
#define DIALOG_UNBIND_PRINTER_T_CN "解除綁定?"
|
||||
#define DIALOG_FILAMENT_NO_PRESS_T_CN "請先裝載耗材!"
|
||||
#define DIALOG_PRINT_FINISH_T_CN "打印完成!"
|
||||
#define DIALOG_PRINT_TIME_T_CN "打印時間: "
|
||||
#define DIALOG_REPRINT_T_CN "再打印壹次"
|
||||
#define DIALOG_WIFI_ENABLE_TIPS_T_CN "wifi模塊正在配置中,請稍等......"
|
||||
|
||||
#define TEXT_VALUE_T_CN "%d℃/%d℃"
|
||||
#define EXTRUDE_TEXT_VALUE_T_T_CN ": %d℃"
|
||||
#define WIFI_RECONNECT_TEXT_T_CN "重新連接"
|
||||
|
||||
#define MESSAGE_PAUSING_T_CN "暫停中..."
|
||||
#define MESSAGE_CHANGING_T_CN "等待換料開始..."
|
||||
#define MESSAGE_UNLOAD_T_CN "退料中,請稍等..."
|
||||
#define MESSAGE_WAITING_T_CN "點擊按鈕恢復打印"
|
||||
#define MESSAGE_INSERT_T_CN "裝載耗材後,點擊按鈕開始打印"
|
||||
#define MESSAGE_LOAD_T_CN "進料中,請稍等..."
|
||||
#define MESSAGE_PURGE_T_CN "等待擠出..."
|
||||
#define MESSAGE_RESUME_T_CN "等待恢復打印..."
|
||||
#define MESSAGE_HEAT_T_CN "按下按鈕,加熱噴頭"
|
||||
#define MESSAGE_HEATING_T_CN "噴頭加熱中,請等待..."
|
||||
#define MESSAGE_OPTION_T_CN "擠出更多還是繼續打印"
|
||||
#define MESSAGE_PURGE_MORE_T_CN "擠出"
|
||||
#define MESSAGE_CONTINUE_PRINT_T_CN "打印"
|
||||
|
||||
#define EEPROM_SETTINGS_TITLE_T_CN "EEPROM 設置"
|
||||
#define EEPROM_SETTINGS_STORE_T_CN "保存參數至EEPROM"
|
||||
#define EEPROM_SETTINGS_READ_T_CN "讀取EEPROM參數"
|
||||
#define EEPROM_SETTINGS_REVERT_T_CN "恢復默認參數"
|
||||
|
||||
#define EEPROM_STORE_TIPS_T_CN "是否保存參數到EEPROM?"
|
||||
#define EEPROM_READ_TIPS_T_CN "是否使用EEPROM參數?"
|
||||
#define EEPROM_REVERT_TIPS_T_CN "是否恢復默認參數?"
|
|
@ -22,7 +22,7 @@
|
|||
|
||||
#include "../../../../inc/MarlinConfig.h"
|
||||
|
||||
#if ENABLED(TFT_LVGL_UI)
|
||||
#if HAS_TFT_LVGL_UI
|
||||
|
||||
#if defined(ARDUINO_ARCH_STM32F1) && PIN_EXISTS(FSMC_CS) // FSMC on 100/144 pins SoCs
|
||||
|
||||
|
@ -270,4 +270,4 @@
|
|||
|
||||
#endif // LCD_USE_DMA_FSMC
|
||||
#endif // ARDUINO_ARCH_STM32F1 && FSMC_CS_PIN
|
||||
#endif // TFT_LVGL_UI
|
||||
#endif // HAS_TFT_LVGL_UI
|
||||
|
|
|
@ -21,25 +21,28 @@
|
|||
*/
|
||||
|
||||
/**
|
||||
* @file lcd_lvgl_configuration.c
|
||||
* @file tft_lvgl_configuration.cpp
|
||||
* @date 2020-02-21
|
||||
*/
|
||||
|
||||
#include "../../../../inc/MarlinConfigPre.h"
|
||||
|
||||
#if ENABLED(TFT_LVGL_UI)
|
||||
#if HAS_TFT_LVGL_UI
|
||||
|
||||
#include "../../../../MarlinCore.h"
|
||||
#if ENABLED(TFT_LVGL_UI_SPI)
|
||||
#include "SPI_TFT.h"
|
||||
#endif
|
||||
|
||||
#include "tft_lvgl_configuration.h"
|
||||
#include "lvgl.h"
|
||||
#include "../../../../feature/touch/xpt2046.h"
|
||||
#include "draw_ready_print.h"
|
||||
#include "W25Qxx.h"
|
||||
#include "pic_manager.h"
|
||||
|
||||
#include "mks_hardware_test.h"
|
||||
#include "draw_ui.h"
|
||||
#include <lvgl.h>
|
||||
|
||||
#include "../../../../MarlinCore.h"
|
||||
#include "../../../../feature/touch/xpt2046.h"
|
||||
|
||||
#if ENABLED(POWER_LOSS_RECOVERY)
|
||||
#include "../../../../feature/powerloss.h"
|
||||
|
@ -47,26 +50,13 @@
|
|||
|
||||
#include <SPI.h>
|
||||
|
||||
#if ENABLED(SPI_GRAPHICAL_TFT)
|
||||
#include "SPI_TFT.h"
|
||||
#endif
|
||||
|
||||
extern void LCD_IO_Init(uint8_t cs, uint8_t rs);
|
||||
extern void LCD_IO_WriteData(uint16_t RegValue);
|
||||
extern void LCD_IO_WriteReg(uint16_t Reg);
|
||||
extern void LCD_IO_WriteSequence(uint16_t *data, uint16_t length);
|
||||
extern void LCD_IO_WriteMultiple(uint16_t color, uint32_t count);
|
||||
|
||||
#if HAS_SPI_FLASH_FONT
|
||||
extern void init_gb2312_font();
|
||||
#endif
|
||||
|
||||
static lv_disp_buf_t disp_buf;
|
||||
#if ENABLED(SDSUPPORT)
|
||||
extern void UpdatePic();
|
||||
#if HAS_SPI_FLASH_FONT
|
||||
extern void UpdateFont();
|
||||
#endif
|
||||
extern void UpdateAssets();
|
||||
#endif
|
||||
uint16_t DeviceCode = 0x9488;
|
||||
extern uint8_t sel_id;
|
||||
|
@ -96,6 +86,13 @@ void SysTick_Callback() {
|
|||
print_time_count();
|
||||
}
|
||||
|
||||
#if DISABLED(TFT_LVGL_UI_SPI)
|
||||
|
||||
extern void LCD_IO_Init(uint8_t cs, uint8_t rs);
|
||||
extern void LCD_IO_WriteData(uint16_t RegValue);
|
||||
extern void LCD_IO_WriteReg(uint16_t Reg);
|
||||
|
||||
extern void LCD_IO_WriteMultiple(uint16_t color, uint32_t count);
|
||||
void tft_set_cursor(uint16_t x, uint16_t y) {
|
||||
LCD_IO_WriteReg(0x002A);
|
||||
LCD_IO_WriteData(x >> 8);
|
||||
|
@ -133,9 +130,9 @@ void tft_set_point(uint16_t x, uint16_t y, uint16_t point) {
|
|||
if ((x > 480) || (y > 320)) return;
|
||||
//}
|
||||
//**if ( (x>320)||(y>240) ) return;
|
||||
tft_set_cursor(x, y); /*设置光标位置*/
|
||||
tft_set_cursor(x, y);
|
||||
|
||||
LCD_WriteRAM_Prepare(); /* 开始写入GRAM*/
|
||||
LCD_WriteRAM_Prepare();
|
||||
//LCD_WriteRAM(point);
|
||||
LCD_IO_WriteData(point);
|
||||
}
|
||||
|
@ -265,7 +262,6 @@ void LCD_Clear(uint16_t Color) {
|
|||
|
||||
extern uint16_t ILI9488_ReadRAM();
|
||||
|
||||
#if DISABLED(SPI_GRAPHICAL_TFT)
|
||||
|
||||
void init_tft() {
|
||||
uint16_t i;
|
||||
|
@ -356,12 +352,10 @@ void init_tft() {
|
|||
|
||||
LCD_IO_WriteReg(0x0036);
|
||||
//ILI9488_WriteData(0x0068);
|
||||
//if (gCfgItems.overturn_180 != 0xEE)
|
||||
//{
|
||||
//if (gCfgItems.overturn_180 != 0xEE) {
|
||||
LCD_IO_WriteData(0x0068);
|
||||
//}
|
||||
//else
|
||||
//{
|
||||
//else {
|
||||
//ILI9488_WriteData(0x00A8);
|
||||
//}
|
||||
|
||||
|
@ -406,16 +400,22 @@ void init_tft() {
|
|||
}
|
||||
}
|
||||
|
||||
#endif // if DISABLED(SPI_GRAPHICAL_TFT)
|
||||
#endif // !TFT_LVGL_UI_SPI
|
||||
|
||||
extern uint8_t bmp_public_buf[17 * 1024];
|
||||
|
||||
void tft_lvgl_init() {
|
||||
|
||||
//uint16_t test_id=0;
|
||||
W25QXX.init(SPI_QUARTER_SPEED);
|
||||
//test_id=W25QXX.W25QXX_ReadID();
|
||||
|
||||
gCfgItems_init();
|
||||
ui_cfg_init();
|
||||
disp_language_init();
|
||||
|
||||
//init tft first!
|
||||
#if ENABLED(SPI_GRAPHICAL_TFT)
|
||||
#if ENABLED(TFT_LVGL_UI_SPI)
|
||||
SPI_TFT.spi_init(SPI_FULL_SPEED);
|
||||
SPI_TFT.LCD_init();
|
||||
#else
|
||||
|
@ -423,20 +423,13 @@ void tft_lvgl_init() {
|
|||
#endif
|
||||
|
||||
#if ENABLED(SDSUPPORT)
|
||||
UpdatePic();
|
||||
#if HAS_SPI_FLASH_FONT
|
||||
UpdateFont();
|
||||
#endif
|
||||
UpdateAssets();
|
||||
#endif
|
||||
mks_test_get();
|
||||
|
||||
gCfgItems_init();
|
||||
ui_cfg_init();
|
||||
disp_language_init();
|
||||
//spi_flash_read_test();
|
||||
|
||||
#if ENABLED(TOUCH_BUTTONS)
|
||||
touch.init();
|
||||
#endif
|
||||
TERN_(TOUCH_BUTTONS, touch.init());
|
||||
|
||||
lv_init();
|
||||
|
||||
|
@ -473,7 +466,7 @@ void tft_lvgl_init() {
|
|||
|
||||
uiCfg.print_state = REPRINTING;
|
||||
|
||||
memset(public_buf_m, 0, sizeof(public_buf_m));
|
||||
ZERO(public_buf_m);
|
||||
strncpy(public_buf_m, recovery.info.sd_filename, sizeof(public_buf_m));
|
||||
card.printLongPath(public_buf_m);
|
||||
|
||||
|
@ -485,13 +478,12 @@ void tft_lvgl_init() {
|
|||
#endif
|
||||
lv_draw_ready_print();
|
||||
|
||||
#if ENABLED(MKS_TEST)
|
||||
Test_GPIO();
|
||||
#endif
|
||||
if (mks_test_flag == 0x1E)
|
||||
mks_gpio_test();
|
||||
}
|
||||
|
||||
void my_disp_flush(lv_disp_drv_t * disp, const lv_area_t * area, lv_color_t * color_p) {
|
||||
#if ENABLED(SPI_GRAPHICAL_TFT)
|
||||
#if ENABLED(TFT_LVGL_UI_SPI)
|
||||
uint16_t i, width, height;
|
||||
uint16_t clr_temp;
|
||||
uint8_t tbuf[480 * 2];
|
||||
|
@ -525,7 +517,9 @@ void my_disp_flush(lv_disp_drv_t * disp, const lv_area_t * area, lv_color_t * co
|
|||
lv_disp_flush_ready(disp); /* Indicate you are ready with the flushing*/
|
||||
|
||||
W25QXX.init(SPI_QUARTER_SPEED);
|
||||
#else
|
||||
|
||||
#else // !TFT_LVGL_UI_SPI
|
||||
|
||||
#if 1
|
||||
uint16_t i, width, height;
|
||||
uint16_t clr_temp;
|
||||
|
@ -543,7 +537,8 @@ void my_disp_flush(lv_disp_drv_t * disp, const lv_area_t * area, lv_color_t * co
|
|||
|
||||
lv_disp_flush_ready(disp); /* Indicate you are ready with the flushing*/
|
||||
#endif
|
||||
#endif // SPI_GRAPHICAL_TFT
|
||||
|
||||
#endif // !TFT_LVGL_UI_SPI
|
||||
}
|
||||
|
||||
#define TICK_CYCLE 1
|
||||
|
@ -554,7 +549,7 @@ unsigned int getTickDiff(unsigned int curTick, unsigned int lastTick) {
|
|||
return TICK_CYCLE * (lastTick <= curTick ? (curTick - lastTick) : (0xFFFFFFFF - lastTick + curTick));
|
||||
}
|
||||
|
||||
#if ENABLED(SPI_GRAPHICAL_TFT)
|
||||
#if ENABLED(TFT_LVGL_UI_SPI)
|
||||
|
||||
#ifndef USE_XPT2046
|
||||
#define USE_XPT2046 1
|
||||
|
@ -642,34 +637,20 @@ static void xpt2046_corr(uint16_t *x, uint16_t *y) {
|
|||
#define CHY 0xD0
|
||||
|
||||
int SPI2_ReadWrite2Bytes(void) {
|
||||
volatile uint16_t ans = 0;
|
||||
uint16_t temp = 0;
|
||||
#if ENABLED(SPI_GRAPHICAL_TFT)
|
||||
temp = SPI_TFT.spi_read_write_byte(0xFF);
|
||||
ans = temp << 8;
|
||||
temp = SPI_TFT.spi_read_write_byte(0xFF);
|
||||
ans |= temp;
|
||||
ans >>= 3;
|
||||
#else
|
||||
temp = W25QXX.spi_flash_read_write_byte(0xFF);
|
||||
ans = temp << 8;
|
||||
temp = W25QXX.spi_flash_read_write_byte(0xFF);
|
||||
ans |= temp;
|
||||
ans >>= 3;
|
||||
#endif
|
||||
return ans & 0x0FFF;
|
||||
#define SPI_READ_WRITE_BYTE(B) TERN(TFT_LVGL_UI_SPI, SPI_TFT.spi_read_write_byte, W25QXX.spi_flash_read_write_byte)(B)
|
||||
const uint16_t t1 = SPI_READ_WRITE_BYTE(0xFF),
|
||||
t2 = SPI_READ_WRITE_BYTE(0xFF);
|
||||
return (((t1 << 8) | t2) >> 3) & 0x0FFF;
|
||||
}
|
||||
|
||||
uint16_t x_addata[times], y_addata[times];
|
||||
void XPT2046_Rd_Addata(uint16_t *X_Addata, uint16_t *Y_Addata) {
|
||||
uint16_t i, j, k;
|
||||
|
||||
#if ENABLED(SPI_GRAPHICAL_TFT)
|
||||
SPI_TFT.spi_init(SPI_QUARTER_SPEED);
|
||||
#endif
|
||||
TERN(TFT_LVGL_UI_SPI, SPI_TFT.spi_init, W25QXX.init)(SPI_SPEED_6);
|
||||
|
||||
for (i = 0; i < times; i++) {
|
||||
#if ENABLED(SPI_GRAPHICAL_TFT)
|
||||
#if ENABLED(TFT_LVGL_UI_SPI)
|
||||
OUT_WRITE(TOUCH_CS_PIN, LOW);
|
||||
SPI_TFT.spi_read_write_byte(CHX);
|
||||
y_addata[i] = SPI2_ReadWrite2Bytes();
|
||||
|
@ -692,6 +673,7 @@ void XPT2046_Rd_Addata(uint16_t *X_Addata, uint16_t *Y_Addata) {
|
|||
#endif
|
||||
|
||||
}
|
||||
TERN(TFT_LVGL_UI_SPI,,W25QXX.init(SPI_QUARTER_SPEED));
|
||||
|
||||
for (i = 0; i < times; i++)
|
||||
for (j = i + 1; j < times; j++)
|
||||
|
@ -726,8 +708,10 @@ void XPT2046_Rd_Addata(uint16_t *X_Addata, uint16_t *Y_Addata) {
|
|||
#define ADC_VALID_OFFSET 10
|
||||
|
||||
uint8_t TOUCH_PressValid(uint16_t _usX, uint16_t _usY) {
|
||||
if ( (_usX <= ADC_VALID_OFFSET) || (_usY <= ADC_VALID_OFFSET)
|
||||
|| (_usX >= 4095 - ADC_VALID_OFFSET) || (_usY >= 4095 - ADC_VALID_OFFSET)
|
||||
if ( (_usX <= ADC_VALID_OFFSET)
|
||||
|| (_usY <= ADC_VALID_OFFSET)
|
||||
|| (_usX >= 4095 - ADC_VALID_OFFSET)
|
||||
|| (_usY >= 4095 - ADC_VALID_OFFSET)
|
||||
) return 0;
|
||||
return 1;
|
||||
}
|
||||
|
@ -774,4 +758,4 @@ bool my_touchpad_read(lv_indev_drv_t * indev_driver, lv_indev_data_t * data) {
|
|||
return false; /*Return `false` because we are not buffering and no more data to read*/
|
||||
}
|
||||
|
||||
#endif // TFT_LVGL_UI
|
||||
#endif // HAS_TFT_LVGL_UI
|
||||
|
|
|
@ -30,7 +30,7 @@
|
|||
//extern "C" {
|
||||
//#endif
|
||||
|
||||
#include "lvgl.h"
|
||||
#include <lvgl.h>
|
||||
|
||||
void tft_lvgl_init();
|
||||
void my_disp_flush(lv_disp_drv_t * disp, const lv_area_t * area, lv_color_t * color_p);
|
||||
|
|
File diff suppressed because it is too large
Load diff
|
@ -48,6 +48,228 @@ extern void disp_language_init();
|
|||
#define MULTI_LANGUAGE_ENABLE 1
|
||||
#define MULTI_LANGUAGE_DISABLE 0
|
||||
|
||||
typedef struct machine_common_disp{
|
||||
const char *default_value;
|
||||
|
||||
const char *next;
|
||||
const char *previous;
|
||||
|
||||
const char *MachineConfigTitle;
|
||||
const char *MachineType;
|
||||
const char *Stroke;
|
||||
const char *HomeDir;
|
||||
const char *EndStopType;
|
||||
const char *FilamentConf;
|
||||
const char *LevelingConf;
|
||||
|
||||
const char *MachineTypeConfTitle;
|
||||
const char *xyz;
|
||||
const char *delta;
|
||||
const char *corexy;
|
||||
|
||||
const char *StrokeConfTitle;
|
||||
const char *xStroke;
|
||||
const char *yStroke;
|
||||
const char *zStroke;
|
||||
|
||||
const char *xmin;
|
||||
const char *ymin;
|
||||
const char *zmin;
|
||||
|
||||
const char *HomeDirConfTitle;
|
||||
const char *xHomeDir;
|
||||
const char *yHomeDir;
|
||||
const char *zHomeDir;
|
||||
const char *min;
|
||||
const char *max;
|
||||
|
||||
const char *EndstopConfTitle;
|
||||
const char *xEndstop_min;
|
||||
const char *yEndstop_min;
|
||||
const char *zEndstop_min;
|
||||
const char *xEndstop_max;
|
||||
const char *yEndstop_max;
|
||||
const char *zEndstop_max;
|
||||
const char *FilamentEndstop;
|
||||
const char *LevelingEndstop;
|
||||
const char *opened;
|
||||
const char *closed;
|
||||
|
||||
const char *FilamentConfTitle;
|
||||
const char *InTemperature;
|
||||
const char *InLength;
|
||||
const char *InSpeed;
|
||||
const char *OutTemperature;
|
||||
const char *OutLength;
|
||||
const char *OutSpeed;
|
||||
|
||||
const char *LevelingParaConfTitle;
|
||||
const char *LevelingParaConf;
|
||||
const char *DeltaLevelConf;
|
||||
const char *XYZLevelconf;
|
||||
|
||||
const char *LevelingSubConfTitle;
|
||||
const char *AutoLevelEnable;
|
||||
const char *BLtouchEnable;
|
||||
const char *ProbePort;
|
||||
const char *ProbeXoffset;
|
||||
const char *ProbeYoffset;
|
||||
const char *ProbeZoffset;
|
||||
const char *ProbeXYspeed;
|
||||
const char *ProbeZspeed;
|
||||
const char *enable;
|
||||
const char *disable;
|
||||
const char *z_min;
|
||||
const char *z_max;
|
||||
|
||||
const char *LevelingSubDeltaConfTitle;
|
||||
const char *MachineRadius;
|
||||
const char *DiagonalRod;
|
||||
const char *PrintableRadius;
|
||||
const char *DeltaHeight;
|
||||
const char *SmoothRodOffset;
|
||||
const char *EffectorOffset;
|
||||
const char *CalibrationRadius;
|
||||
|
||||
const char *LevelingSubXYZConfTitle;
|
||||
//const char *Level_positon1;
|
||||
//const char *Level_positon2;
|
||||
//const char *Level_positon3;
|
||||
//const char *Level_positon4;
|
||||
|
||||
const char *TemperatureConfTitle;
|
||||
const char *NozzleConf;
|
||||
const char *HotBedConf;
|
||||
const char *PreheatTemperConf;
|
||||
|
||||
const char *NozzleCnt;
|
||||
const char *NozzleConfTitle;
|
||||
const char *NozzleType;
|
||||
const char *NozzleAdjustType;
|
||||
const char *NozzleMinTemperature;
|
||||
const char *NozzleMaxTemperature;
|
||||
const char *Extrude_Min_Temper;
|
||||
|
||||
const char *HotbedEnable;
|
||||
const char *HotbedConfTitle;
|
||||
const char *HotbedAjustType;
|
||||
const char *HotbedMinTemperature;
|
||||
const char *HotbedMaxTemperature;
|
||||
|
||||
const char *MotorConfTitle;
|
||||
const char *MaxFeedRateConf;
|
||||
const char *AccelerationConf;
|
||||
const char *JerkConf;
|
||||
const char *StepsConf;
|
||||
const char *MotorDirConf;
|
||||
const char *HomeFeedRateConf;
|
||||
const char *TMCcurrentConf;
|
||||
const char *TMCStepModeConf;
|
||||
|
||||
const char *MaxFeedRateConfTitle;
|
||||
const char *XMaxFeedRate;
|
||||
const char *YMaxFeedRate;
|
||||
const char *ZMaxFeedRate;
|
||||
const char *E0MaxFeedRate;
|
||||
const char *E1MaxFeedRate;
|
||||
|
||||
const char *AccelerationConfTitle;
|
||||
const char *PrintAcceleration;
|
||||
const char *RetractAcceleration;
|
||||
const char *TravelAcceleration;
|
||||
const char *X_Acceleration;
|
||||
const char *Y_Acceleration;
|
||||
const char *Z_Acceleration;
|
||||
const char *E0_Acceleration;
|
||||
const char *E1_Acceleration;
|
||||
|
||||
const char *JerkConfTitle;
|
||||
const char *X_Jerk;
|
||||
const char *Y_Jerk;
|
||||
const char *Z_Jerk;
|
||||
const char *E_Jerk;
|
||||
|
||||
const char *StepsConfTitle;
|
||||
const char *X_Steps;
|
||||
const char *Y_Steps;
|
||||
const char *Z_Steps;
|
||||
const char *E0_Steps;
|
||||
const char *E1_Steps;
|
||||
|
||||
const char *TmcCurrentConfTitle;
|
||||
const char *X_Current;
|
||||
const char *Y_Current;
|
||||
const char *Z_Current;
|
||||
const char *E0_Current;
|
||||
const char *E1_Current;
|
||||
|
||||
const char *TmcStepModeConfTitle;
|
||||
const char *X_StepMode;
|
||||
const char *Y_StepMode;
|
||||
const char *Z_StepMode;
|
||||
const char *E0_StepMode;
|
||||
const char *E1_StepMode;
|
||||
|
||||
const char *MotorDirConfTitle;
|
||||
const char *X_MotorDir;
|
||||
const char *Y_MotorDir;
|
||||
const char *Z_MotorDir;
|
||||
const char *E0_MotorDir;
|
||||
const char *E1_MotorDir;
|
||||
const char *Invert_1;
|
||||
const char *Invert_0;
|
||||
|
||||
const char *HomeFeedRateConfTitle;
|
||||
const char *XY_HomeFeedRate;
|
||||
const char *Y_HomeFeedRate;
|
||||
const char *Z_HomeFeedRate;
|
||||
|
||||
const char *AdvancedConfTitle;
|
||||
const char *PwrOffDection;
|
||||
const char *PwrOffAfterPrint;
|
||||
const char *HaveUps;
|
||||
const char *Z2andZ2Endstop;
|
||||
const char *EnablePinsInvert;
|
||||
const char *PausePosition;
|
||||
|
||||
const char *Z2ConfTitle;
|
||||
const char *Z2Enable;
|
||||
const char *Z2EndstopEnable;
|
||||
const char *Z2Port;
|
||||
|
||||
const char *EnablePinsInvertTitle;
|
||||
const char *XInvert;
|
||||
const char *YInvert;
|
||||
const char *ZInvert;
|
||||
const char *EInvert;
|
||||
|
||||
const char *key_1;
|
||||
const char *key_2;
|
||||
const char *key_3;
|
||||
const char *key_4;
|
||||
const char *key_5;
|
||||
const char *key_6;
|
||||
const char *key_7;
|
||||
const char *key_8;
|
||||
const char *key_9;
|
||||
const char *key_0;
|
||||
const char *key_point;
|
||||
const char *key_back;
|
||||
const char *key_reset;
|
||||
const char *key_confirm;
|
||||
const char *negative;
|
||||
const char *low_level;
|
||||
const char *high_level;
|
||||
|
||||
const char *PausePosText;
|
||||
const char *xPos;
|
||||
const char *yPos;
|
||||
const char *zPos;
|
||||
|
||||
} machine_common_def;
|
||||
|
||||
extern machine_common_def machine_menu;
|
||||
|
||||
typedef struct common_menu_disp {
|
||||
const char *text_back;
|
||||
const char *dialog_confirm_title;
|
||||
|
@ -59,6 +281,7 @@ typedef struct common_menu_disp {
|
|||
const char *next;
|
||||
const char *previous;
|
||||
} common_menu_def;
|
||||
|
||||
extern common_menu_def common_menu;
|
||||
|
||||
typedef struct main_menu_disp {
|
||||
|
@ -76,6 +299,7 @@ typedef struct main_menu_disp {
|
|||
const char *more;
|
||||
const char *machine_para;
|
||||
} main_menu_def;
|
||||
|
||||
extern main_menu_def main_menu;
|
||||
|
||||
typedef struct preheat_menu_disp {
|
||||
|
@ -97,6 +321,7 @@ typedef struct preheat_menu_disp {
|
|||
const char *dialog_tips;
|
||||
|
||||
} preheat_menu_def;
|
||||
|
||||
extern preheat_menu_def preheat_menu;
|
||||
|
||||
typedef struct move_menu_disp {
|
||||
|
@ -114,6 +339,7 @@ typedef struct move_menu_disp {
|
|||
const char *step_10mm;
|
||||
const char *back;
|
||||
} move_menu_def;
|
||||
|
||||
extern move_menu_def move_menu;
|
||||
|
||||
typedef struct home_menu_disp {
|
||||
|
@ -125,6 +351,7 @@ typedef struct home_menu_disp {
|
|||
const char *stopmove;
|
||||
const char *back;
|
||||
} home_menu_def;
|
||||
|
||||
extern home_menu_def home_menu;
|
||||
|
||||
typedef struct file_menu_disp {
|
||||
|
@ -138,6 +365,7 @@ typedef struct file_menu_disp {
|
|||
const char *no_file_and_check;
|
||||
|
||||
} file_menu_def;
|
||||
|
||||
extern file_menu_def file_menu;
|
||||
|
||||
typedef struct extrude_menu_disp {
|
||||
|
@ -160,6 +388,7 @@ typedef struct extrude_menu_disp {
|
|||
const char *temp_value;
|
||||
const char *temper_text;
|
||||
} extrude_menu_def;
|
||||
|
||||
extern extrude_menu_def extrude_menu;
|
||||
|
||||
typedef struct leveling_menu_disp {
|
||||
|
@ -172,6 +401,7 @@ typedef struct leveling_menu_disp {
|
|||
|
||||
char *back;
|
||||
} leveling_menu_def;
|
||||
|
||||
extern leveling_menu_def leveling_menu;
|
||||
|
||||
typedef struct set_menu_disp {
|
||||
|
@ -187,8 +417,10 @@ typedef struct set_menu_disp {
|
|||
const char *shutdown;
|
||||
const char *language;
|
||||
const char *machine_para;
|
||||
const char *eepromSet;
|
||||
const char *back;
|
||||
} set_menu_def;
|
||||
|
||||
extern set_menu_def set_menu;
|
||||
|
||||
typedef struct filesys_menu_disp {
|
||||
|
@ -198,6 +430,7 @@ typedef struct filesys_menu_disp {
|
|||
const char *usb_sys;
|
||||
const char *back;
|
||||
} filesys_menu_def;
|
||||
|
||||
extern filesys_menu_def filesys_menu;
|
||||
|
||||
typedef struct more_menu_disp {
|
||||
|
@ -205,6 +438,7 @@ typedef struct more_menu_disp {
|
|||
const char *zoffset;
|
||||
const char *back;
|
||||
} more_menu_def;
|
||||
|
||||
extern more_menu_def more_menu;
|
||||
|
||||
typedef struct wifi_menu_disp {
|
||||
|
@ -221,6 +455,7 @@ typedef struct wifi_menu_disp {
|
|||
const char *back;
|
||||
const char *reconnect;
|
||||
} wifi_menu_def;
|
||||
|
||||
extern wifi_menu_def wifi_menu;
|
||||
|
||||
typedef struct cloud_menu_disp {
|
||||
|
@ -236,6 +471,7 @@ typedef struct cloud_menu_disp {
|
|||
const char *back;
|
||||
const char *unbind_printer_tips;
|
||||
} cloud_menu_def;
|
||||
|
||||
extern cloud_menu_def cloud_menu;
|
||||
|
||||
typedef struct about_menu_disp {
|
||||
|
@ -249,6 +485,7 @@ typedef struct about_menu_disp {
|
|||
const char *type_robin_mini;
|
||||
const char *back;
|
||||
} about_menu_def;
|
||||
|
||||
extern about_menu_def about_menu;
|
||||
|
||||
typedef struct fan_menu_disp {
|
||||
|
@ -263,6 +500,7 @@ typedef struct fan_menu_disp {
|
|||
const char *state;
|
||||
const char *state_value;
|
||||
} fan_menu_def;
|
||||
|
||||
extern fan_menu_def fan_menu;
|
||||
|
||||
typedef struct filament_menu_disp {
|
||||
|
@ -290,6 +528,7 @@ typedef struct filament_menu_disp {
|
|||
const char *filament_dialog_ok;
|
||||
const char *filament_dialog_back;
|
||||
} filament_menu_def;
|
||||
|
||||
extern filament_menu_def filament_menu;
|
||||
|
||||
typedef struct language_menu {
|
||||
|
@ -310,6 +549,7 @@ typedef struct language_menu {
|
|||
const char *up;
|
||||
const char *back;
|
||||
} language_menu_def;
|
||||
|
||||
extern language_menu_def language_menu;
|
||||
|
||||
typedef struct printing_menu_disp {
|
||||
|
@ -323,6 +563,7 @@ typedef struct printing_menu_disp {
|
|||
const char *resume;
|
||||
const char *stop;
|
||||
} printing_menu_def;
|
||||
|
||||
extern printing_menu_def printing_menu;
|
||||
|
||||
typedef struct operation_menu_disp {
|
||||
|
@ -341,6 +582,7 @@ typedef struct operation_menu_disp {
|
|||
const char *back;
|
||||
const char *babystep;
|
||||
} operation_menu_def;
|
||||
|
||||
extern operation_menu_def operation_menu;
|
||||
|
||||
typedef struct pause_menu_disp {
|
||||
|
@ -352,6 +594,7 @@ typedef struct pause_menu_disp {
|
|||
const char *filament;
|
||||
const char *more;
|
||||
} pause_menu_def;
|
||||
|
||||
extern pause_menu_def pause_menu;
|
||||
|
||||
typedef struct speed_menu_disp {
|
||||
|
@ -367,6 +610,7 @@ typedef struct speed_menu_disp {
|
|||
const char *move_speed;
|
||||
const char *extrude_speed;
|
||||
} speed_menu_def;
|
||||
|
||||
extern speed_menu_def speed_menu;
|
||||
|
||||
typedef struct printing_more_menu_disp {
|
||||
|
@ -378,6 +622,7 @@ typedef struct printing_more_menu_disp {
|
|||
const char *speed;
|
||||
const char *back;
|
||||
} printing_more_menu_def;
|
||||
|
||||
extern printing_more_menu_def printing_more_menu;
|
||||
|
||||
typedef struct dialog_menu_disp {
|
||||
|
@ -392,6 +637,7 @@ typedef struct dialog_menu_disp {
|
|||
const char *tip1_print_file;
|
||||
const char *tip2_stop_file;
|
||||
} dialog_menu_def;
|
||||
|
||||
extern dialog_menu_def dialog_menu;
|
||||
|
||||
typedef struct print_file_dialog_disp {
|
||||
|
@ -412,6 +658,7 @@ typedef struct print_file_dialog_disp {
|
|||
const char *reprint;
|
||||
const char *wifi_enable_tips;
|
||||
} print_file_dialog_menu_def;
|
||||
|
||||
extern print_file_dialog_menu_def print_file_dialog_menu;
|
||||
|
||||
typedef struct zoffset_menu_disp {
|
||||
|
@ -423,6 +670,7 @@ typedef struct zoffset_menu_disp {
|
|||
const char *step1;
|
||||
const char *back;
|
||||
} zoffset_menu_def;
|
||||
|
||||
extern zoffset_menu_def zoffset_menu;
|
||||
|
||||
typedef struct tool_menu_disp {
|
||||
|
@ -437,6 +685,7 @@ typedef struct tool_menu_disp {
|
|||
const char *more;
|
||||
const char *back;
|
||||
} tool_menu_def;
|
||||
|
||||
extern tool_menu_def tool_menu;
|
||||
|
||||
typedef struct MachinePara_menu_disp {
|
||||
|
@ -447,6 +696,7 @@ typedef struct MachinePara_menu_disp {
|
|||
const char *AdvanceSetting;
|
||||
//const char *back;
|
||||
} MachinePara_menu_def;
|
||||
|
||||
extern MachinePara_menu_def MachinePara_menu;
|
||||
|
||||
typedef struct MachineSettings_menu_disp {
|
||||
|
@ -459,6 +709,7 @@ typedef struct MachineSettings_menu_disp {
|
|||
const char *leveling;
|
||||
const char *back;
|
||||
} MachineSettings_menu_def;
|
||||
|
||||
extern MachineSettings_menu_def MachineSettings_menu;
|
||||
|
||||
typedef struct TemperatureSettings_menu_disp {
|
||||
|
@ -468,6 +719,7 @@ typedef struct TemperatureSettings_menu_disp {
|
|||
const char *preheat;
|
||||
const char *back;
|
||||
} TemperatureSettings_menu_def;
|
||||
|
||||
extern TemperatureSettings_menu_def TemperatureSettings_menu;
|
||||
|
||||
typedef struct pause_msg_disp {
|
||||
|
@ -485,8 +737,20 @@ typedef struct pause_msg_disp {
|
|||
const char *purgeMore;
|
||||
const char *continuePrint;
|
||||
} pause_msg_def;
|
||||
|
||||
extern pause_msg_def pause_msg_menu;
|
||||
|
||||
typedef struct eeprom_disp{
|
||||
const char *title;
|
||||
const char *store;
|
||||
const char *read;
|
||||
const char *revert;
|
||||
const char *storeTips;
|
||||
const char *readTips;
|
||||
const char *revertTips;
|
||||
} eeprom_def;
|
||||
|
||||
extern eeprom_def eeprom_menu;
|
||||
/*****************************************/
|
||||
//********************************************//
|
||||
//#if defined(TFT70)
|
||||
|
@ -533,7 +797,7 @@ extern pause_msg_def pause_msg_menu;
|
|||
#define LANGUAGE_JP "日本語"
|
||||
#define LANGUAGE_GE "Deutsch"
|
||||
#define LANGUAGE_FR "français"
|
||||
#define LANGUAGE_IT "Italia"
|
||||
#define LANGUAGE_IT "Italiano"
|
||||
#define LANGUAGE_PR "português"
|
||||
#define LANGUAGE_KR "Korean"
|
||||
#define LANGUAGE_BR "Brazil"
|
||||
|
|
|
@ -1098,11 +1098,7 @@ void prepare_line_to_destination() {
|
|||
}
|
||||
|
||||
uint8_t axes_need_homing(uint8_t axis_bits/*=0x07*/) {
|
||||
#if ENABLED(HOME_AFTER_DEACTIVATE)
|
||||
#define HOMED_FLAGS axis_known_position
|
||||
#else
|
||||
#define HOMED_FLAGS axis_homed
|
||||
#endif
|
||||
#define HOMED_FLAGS TERN(HOME_AFTER_DEACTIVATE, axis_known_position, axis_homed)
|
||||
// Clear test bits that are homed
|
||||
if (TEST(axis_bits, X_AXIS) && TEST(HOMED_FLAGS, X_AXIS)) CBI(axis_bits, X_AXIS);
|
||||
if (TEST(axis_bits, Y_AXIS) && TEST(HOMED_FLAGS, Y_AXIS)) CBI(axis_bits, Y_AXIS);
|
||||
|
|
|
@ -2551,7 +2551,7 @@ void Stepper::init() {
|
|||
AXIS_INIT(Z, Z);
|
||||
#endif
|
||||
|
||||
#if E_STEPPERS > 0 && HAS_E0_STEP
|
||||
#if E_STEPPERS && HAS_E0_STEP
|
||||
E_AXIS_INIT(0);
|
||||
#endif
|
||||
#if E_STEPPERS > 1 && HAS_E1_STEP
|
||||
|
|
|
@ -865,14 +865,14 @@ void reset_stepper_drivers(); // Called by settings.load / settings.reset
|
|||
#endif
|
||||
|
||||
#ifndef ENABLE_AXIS_E0
|
||||
#if E_STEPPERS > 0 && HAS_E0_ENABLE
|
||||
#if E_STEPPERS && HAS_E0_ENABLE
|
||||
#define ENABLE_AXIS_E0() ENABLE_STEPPER_E0()
|
||||
#else
|
||||
#define ENABLE_AXIS_E0() NOOP
|
||||
#endif
|
||||
#endif
|
||||
#ifndef DISABLE_AXIS_E0
|
||||
#if E_STEPPERS > 0 && HAS_E0_ENABLE
|
||||
#if E_STEPPERS && HAS_E0_ENABLE
|
||||
#define DISABLE_AXIS_E0() DISABLE_STEPPER_E0()
|
||||
#else
|
||||
#define DISABLE_AXIS_E0() NOOP
|
||||
|
|
|
@ -507,7 +507,9 @@
|
|||
#elif MB(MKS_ROBIN_MINI)
|
||||
#include "stm32f1/pins_MKS_ROBIN_MINI.h" // STM32F1 env:mks_robin_mini
|
||||
#elif MB(MKS_ROBIN_NANO)
|
||||
#include "stm32f1/pins_MKS_ROBIN_NANO.h" // STM32F1 env:mks_robin_nano
|
||||
#include "stm32f1/pins_MKS_ROBIN_NANO.h" // STM32F1 env:mks_robin_nano env:mks_robin_nano35
|
||||
#elif MB(MKS_ROBIN_NANO_V2)
|
||||
#include "stm32f1/pins_MKS_ROBIN_NANO_V2.h" // STM32F1 env:mks_robin_nano env:mks_robin_nano35
|
||||
#elif MB(MKS_ROBIN_LITE)
|
||||
#include "stm32f1/pins_MKS_ROBIN_LITE.h" // STM32F1 env:mks_robin_lite
|
||||
#elif MB(BTT_SKR_MINI_V1_1)
|
||||
|
|
|
@ -31,6 +31,14 @@
|
|||
|
||||
#define BOARD_INFO_NAME "RADDS"
|
||||
|
||||
//
|
||||
// EEPROM
|
||||
//
|
||||
#if EITHER(NO_EEPROM_SELECTED, I2C_EEPROM)
|
||||
#define I2C_EEPROM
|
||||
#define MARLIN_EEPROM_SIZE 0x2000 // 8KB
|
||||
#endif
|
||||
|
||||
//
|
||||
// Servos
|
||||
//
|
||||
|
@ -205,9 +213,6 @@
|
|||
#define FIL_RUNOUT_PIN 39 // SERVO2_PIN
|
||||
#endif
|
||||
|
||||
#define I2C_EEPROM
|
||||
#define MARLIN_EEPROM_SIZE 0x2000 // 8KB
|
||||
|
||||
//
|
||||
// M3/M4/M5 - Spindle/Laser Control
|
||||
//
|
||||
|
|
|
@ -144,12 +144,13 @@
|
|||
|
||||
#define SPI_FLASH_SIZE 0x200000 // 2MB
|
||||
|
||||
#if ENABLED(TFT_LVGL_UI)
|
||||
#if HAS_TFT_LVGL_UI
|
||||
#define HAS_SPI_FLASH_FONT 0
|
||||
#define HAS_GCODE_PREVIEW 1
|
||||
#define HAS_GCODE_DEFAULT_VIEW_IN_FLASH 0
|
||||
#define HAS_LANG_SELECT_SCREEN 0
|
||||
#define HAS_BAK_VIEW_IN_FLASH 0
|
||||
#define HAS_LOGO_IN_FLASH 0
|
||||
|
||||
//SPI 2
|
||||
#define W25QXX_CS_PIN PB12
|
||||
|
|
|
@ -150,12 +150,13 @@
|
|||
|
||||
#define SPI_FLASH_SIZE 0x200000 // 2MB
|
||||
|
||||
#if ENABLED(TFT_LVGL_UI)
|
||||
#if HAS_TFT_LVGL_UI
|
||||
#define HAS_SPI_FLASH_FONT 0
|
||||
#define HAS_GCODE_PREVIEW 1
|
||||
#define HAS_GCODE_DEFAULT_VIEW_IN_FLASH 0
|
||||
#define HAS_LANG_SELECT_SCREEN 0
|
||||
#define HAS_BAK_VIEW_IN_FLASH 0
|
||||
#define HAS_LOGO_IN_FLASH 0
|
||||
|
||||
//SPI 2
|
||||
#define W25QXX_CS_PIN PB12
|
||||
|
|
|
@ -123,8 +123,8 @@
|
|||
//
|
||||
// Misc. Functions
|
||||
//
|
||||
//#define POWER_LOSS_PIN PA2 // PW_DET
|
||||
//#define PS_ON_PIN PA3 // PW_OFF
|
||||
#define POWER_LOSS_PIN PA2 // PW_DET
|
||||
#define PS_ON_PIN PA3 // PW_OFF
|
||||
|
||||
//#define SUICIDE_PIN PB2 // Enable MKSPWC support ROBIN NANO v1.2 ONLY
|
||||
//#define SUICIDE_PIN_INVERTING false
|
||||
|
@ -132,13 +132,16 @@
|
|||
//#define KILL_PIN PA2 // Enable MKSPWC support ROBIN NANO v1.2 ONLY
|
||||
//#define KILL_PIN_INVERTING true // Enable MKSPWC support ROBIN NANO v1.2 ONLY
|
||||
|
||||
//#define SERVO0_PIN PA8 // Enable BLTOUCH support ROBIN NANO v1.2 ONLY
|
||||
#define SERVO0_PIN PA8 // Enable BLTOUCH support ROBIN NANO v1.2 ONLY
|
||||
|
||||
//#define LED_PIN PB2
|
||||
|
||||
#define MT_DET_1_PIN PA4
|
||||
#define MT_DET_2_PIN PE6
|
||||
#define MT_DET_PIN_INVERTING false
|
||||
|
||||
#define WIFI_IO0_PIN PC13
|
||||
|
||||
//
|
||||
// SD Card
|
||||
//
|
||||
|
@ -162,7 +165,58 @@
|
|||
* to let the bootloader init the screen.
|
||||
*/
|
||||
|
||||
#if ENABLED(SPI_GRAPHICAL_TFT)
|
||||
#if ENABLED(TFT_LVGL_UI_SPI)
|
||||
|
||||
#define SPI_TFT_CS_PIN PD11
|
||||
#define SPI_TFT_SCK_PIN PA5
|
||||
#define SPI_TFT_MISO_PIN PA6
|
||||
#define SPI_TFT_MOSI_PIN PA7
|
||||
#define SPI_TFT_DC_PIN PD10
|
||||
#define SPI_TFT_RST_PIN PC6
|
||||
|
||||
#define LCD_BACKLIGHT_PIN PD13
|
||||
|
||||
#define TOUCH_CS_PIN PE14 // SPI1_NSS
|
||||
#define TOUCH_SCK_PIN PA5 // SPI1_SCK
|
||||
#define TOUCH_MISO_PIN PA6 // SPI1_MISO
|
||||
#define TOUCH_MOSI_PIN PA7 // SPI1_MOSI
|
||||
|
||||
#define BTN_EN1 PE8
|
||||
#define BTN_EN2 PE11
|
||||
#define BEEPER_PIN PC5
|
||||
#define BTN_ENC PE13
|
||||
|
||||
#elif ENABLED(TFT_LVGL_UI_FSMC)
|
||||
|
||||
#define FSMC_CS_PIN PD7 // NE4
|
||||
#define FSMC_RS_PIN PD11 // A0
|
||||
|
||||
#define TOUCH_CS_PIN PA7 // SPI2_NSS
|
||||
#define TOUCH_SCK_PIN PB13 // SPI2_SCK
|
||||
#define TOUCH_MISO_PIN PB14 // SPI2_MISO
|
||||
#define TOUCH_MOSI_PIN PB15 // SPI2_MOSI
|
||||
|
||||
#define LCD_BACKLIGHT_PIN PD13
|
||||
|
||||
#endif
|
||||
|
||||
#if ENABLED(FSMC_GRAPHICAL_TFT)
|
||||
//#define DOGLCD_MOSI -1 // prevent redefine Conditionals_post.h
|
||||
//#define DOGLCD_SCK -1
|
||||
|
||||
#define FSMC_CS_PIN PD7 // NE4
|
||||
#define FSMC_RS_PIN PD11 // A0
|
||||
|
||||
#define LCD_RESET_PIN PC6 // FSMC_RST
|
||||
#define LCD_BACKLIGHT_PIN PD13
|
||||
|
||||
#if ENABLED(TOUCH_BUTTONS)
|
||||
#define TOUCH_CS_PIN PA7 // SPI2_NSS
|
||||
#define TOUCH_SCK_PIN PB13 // SPI2_SCK
|
||||
#define TOUCH_MISO_PIN PB14 // SPI2_MISO
|
||||
#define TOUCH_MOSI_PIN PB15 // SPI2_MOSI
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#if HAS_SPI_LCD
|
||||
|
||||
|
@ -208,58 +262,8 @@
|
|||
|
||||
#endif // !MKS_MINI_12864
|
||||
|
||||
#else
|
||||
|
||||
#define SPI_TFT_CS_PIN PD11
|
||||
#define SPI_TFT_SCK_PIN PA5
|
||||
#define SPI_TFT_MISO_PIN PA6
|
||||
#define SPI_TFT_MOSI_PIN PA7
|
||||
#define SPI_TFT_DC_PIN PD10
|
||||
#define SPI_TFT_RST_PIN PC6
|
||||
|
||||
#define LCD_BACKLIGHT_PIN PD13
|
||||
|
||||
#define TOUCH_CS_PIN PE14 // SPI1_NSS
|
||||
#define TOUCH_SCK_PIN PA5 // SPI1_SCK
|
||||
#define TOUCH_MISO_PIN PA6 // SPI1_MISO
|
||||
#define TOUCH_MOSI_PIN PA7 // SPI1_MOSI
|
||||
|
||||
#define BTN_EN1 PE8
|
||||
#define BTN_EN2 PE11
|
||||
#define BEEPER_PIN PC5
|
||||
#define BTN_ENC PE13
|
||||
|
||||
#endif // HAS_SPI_LCD
|
||||
|
||||
#elif ENABLED(TFT_LVGL_UI)
|
||||
|
||||
#define FSMC_CS_PIN PD7 // NE4
|
||||
#define FSMC_RS_PIN PD11 // A0
|
||||
|
||||
#define TOUCH_CS_PIN PA7 // SPI2_NSS
|
||||
#define TOUCH_SCK_PIN PB13 // SPI2_SCK
|
||||
#define TOUCH_MISO_PIN PB14 // SPI2_MISO
|
||||
#define TOUCH_MOSI_PIN PB15 // SPI2_MOSI
|
||||
|
||||
#define LCD_BACKLIGHT_PIN PD13
|
||||
|
||||
#elif ENABLED(FSMC_GRAPHICAL_TFT)
|
||||
|
||||
#define FSMC_CS_PIN PD7 // NE4
|
||||
#define FSMC_RS_PIN PD11 // A0
|
||||
|
||||
#define LCD_RESET_PIN PC6 // FSMC_RST
|
||||
#define LCD_BACKLIGHT_PIN PD13
|
||||
|
||||
#if ENABLED(TOUCH_BUTTONS)
|
||||
#define TOUCH_CS_PIN PA7 // SPI2_NSS
|
||||
#define TOUCH_SCK_PIN PB13 // SPI2_SCK
|
||||
#define TOUCH_MISO_PIN PB14 // SPI2_MISO
|
||||
#define TOUCH_MOSI_PIN PB15 // SPI2_MOSI
|
||||
#endif
|
||||
|
||||
#endif
|
||||
|
||||
#define SPI_FLASH
|
||||
#if ENABLED(SPI_FLASH)
|
||||
#define W25QXX_CS_PIN PB12
|
||||
|
|
325
Marlin/src/pins/stm32f1/pins_MKS_ROBIN_NANO_V2.h
Normal file
325
Marlin/src/pins/stm32f1/pins_MKS_ROBIN_NANO_V2.h
Normal file
|
@ -0,0 +1,325 @@
|
|||
/**
|
||||
* Marlin 3D Printer Firmware
|
||||
* Copyright (c) 2020 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
|
||||
*
|
||||
* Based on Sprinter and grbl.
|
||||
* Copyright (c) 2011 Camiel Gubbels / Erik van der Zalm
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*
|
||||
*/
|
||||
#pragma once
|
||||
|
||||
/**
|
||||
* MKS Robin nano (STM32F130VET6) board pin assignments
|
||||
*/
|
||||
|
||||
#ifndef __STM32F1__
|
||||
#error "Oops! Select an STM32F1 board in 'Tools > Board.'"
|
||||
#elif HOTENDS > 2 || E_STEPPERS > 2
|
||||
#error "MKS Robin nano supports up to 2 hotends / E-steppers. Comment out this line to continue."
|
||||
#endif
|
||||
|
||||
#define BOARD_INFO_NAME "MKS Robin nano V2.0"
|
||||
|
||||
//
|
||||
// Release PB4 (Y_ENABLE_PIN) from JTAG NRST role
|
||||
//
|
||||
|
||||
//#define DISABLE_DEBUG
|
||||
|
||||
//
|
||||
// EEPROM
|
||||
//
|
||||
//#define FLASH_EEPROM_EMULATION
|
||||
//#define SDCARD_EEPROM_EMULATION
|
||||
|
||||
#if EITHER(NO_EEPROM_SELECTED, I2C_EEPROM)
|
||||
#define I2C_EEPROM // EEPROM on I2C-0
|
||||
#define MARLIN_EEPROM_SIZE 0x1000 // 4KB
|
||||
#endif
|
||||
|
||||
//
|
||||
// Note: MKS Robin board is using SPI2 interface.
|
||||
//
|
||||
//#define SPI_MODULE 2
|
||||
#define ENABLE_SPI2
|
||||
|
||||
//
|
||||
// Limit Switches
|
||||
//
|
||||
#define X_DIAG_PIN PA15
|
||||
#define Y_DIAG_PIN PA12
|
||||
#define Z_DIAG_PIN PA11
|
||||
#define E0_DIAG_PIN PC4
|
||||
#define E1_DIAG_PIN PE7
|
||||
|
||||
#define X_STOP_PIN PA15
|
||||
#define Y_STOP_PIN PA12
|
||||
#define Z_MIN_PIN PA11
|
||||
#define Z_MAX_PIN PC4
|
||||
|
||||
//
|
||||
// Steppers
|
||||
//
|
||||
#define X_ENABLE_PIN PE4
|
||||
#define X_STEP_PIN PE3
|
||||
#define X_DIR_PIN PE2
|
||||
#ifndef X_CS_PIN
|
||||
#define X_CS_PIN PD5
|
||||
#endif
|
||||
|
||||
#define Y_ENABLE_PIN PE1
|
||||
#define Y_STEP_PIN PE0
|
||||
#define Y_DIR_PIN PB9
|
||||
#ifndef Y_CS_PIN
|
||||
#define Y_CS_PIN PD7
|
||||
#endif
|
||||
|
||||
#define Z_ENABLE_PIN PB8
|
||||
#define Z_STEP_PIN PB5
|
||||
#define Z_DIR_PIN PB4
|
||||
#ifndef Z_CS_PIN
|
||||
#define Z_CS_PIN PD4
|
||||
#endif
|
||||
|
||||
#define E0_ENABLE_PIN PB3
|
||||
#define E0_STEP_PIN PD6
|
||||
#define E0_DIR_PIN PD3
|
||||
#ifndef E0_CS_PIN
|
||||
#define E0_CS_PIN PD9
|
||||
#endif
|
||||
|
||||
#define E1_ENABLE_PIN PA3
|
||||
#define E1_STEP_PIN PD15
|
||||
#define E1_DIR_PIN PA1
|
||||
#ifndef E1_CS_PIN
|
||||
#define E1_CS_PIN PD8
|
||||
#endif
|
||||
|
||||
//
|
||||
// Software SPI pins for TMC2130 stepper drivers
|
||||
//
|
||||
#if ENABLED(TMC_USE_SW_SPI)
|
||||
#ifndef TMC_SW_MOSI
|
||||
#define TMC_SW_MOSI PD14
|
||||
#endif
|
||||
#ifndef TMC_SW_MISO
|
||||
#define TMC_SW_MISO PD1
|
||||
#endif
|
||||
#ifndef TMC_SW_SCK
|
||||
#define TMC_SW_SCK PD0
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#if HAS_TMC_UART
|
||||
/**
|
||||
* TMC2208/TMC2209 stepper drivers
|
||||
*
|
||||
* Hardware serial communication ports.
|
||||
* If undefined software serial is used according to the pins below
|
||||
*/
|
||||
//#define X_HARDWARE_SERIAL Serial
|
||||
//#define X2_HARDWARE_SERIAL Serial1
|
||||
//#define Y_HARDWARE_SERIAL Serial1
|
||||
//#define Y2_HARDWARE_SERIAL Serial1
|
||||
//#define Z_HARDWARE_SERIAL Serial1
|
||||
//#define Z2_HARDWARE_SERIAL Serial1
|
||||
//#define E0_HARDWARE_SERIAL Serial1
|
||||
//#define E1_HARDWARE_SERIAL Serial1
|
||||
//#define E2_HARDWARE_SERIAL Serial1
|
||||
//#define E3_HARDWARE_SERIAL Serial1
|
||||
//#define E4_HARDWARE_SERIAL Serial1
|
||||
|
||||
//
|
||||
// Software serial
|
||||
//
|
||||
|
||||
#define X_SERIAL_TX_PIN PD5
|
||||
#define X_SERIAL_RX_PIN PD5
|
||||
|
||||
#define Y_SERIAL_TX_PIN PD7
|
||||
#define Y_SERIAL_RX_PIN PD7
|
||||
|
||||
#define Z_SERIAL_TX_PIN PD4
|
||||
#define Z_SERIAL_RX_PIN PD4
|
||||
|
||||
#define E0_SERIAL_TX_PIN PD9
|
||||
#define E0_SERIAL_RX_PIN PD9
|
||||
|
||||
#define E1_SERIAL_TX_PIN PD8
|
||||
#define E1_SERIAL_RX_PIN PD8
|
||||
|
||||
// Reduce baud rate to improve software serial reliability
|
||||
#define TMC_BAUD_RATE 19200
|
||||
#endif // TMC2208 || TMC2209
|
||||
|
||||
//
|
||||
// Temperature Sensors
|
||||
//
|
||||
#define TEMP_0_PIN PC1 // TH1
|
||||
#define TEMP_1_PIN PC2 // TH2
|
||||
#define TEMP_BED_PIN PC0 // TB1
|
||||
|
||||
//
|
||||
// Heaters / Fans
|
||||
//
|
||||
#define HEATER_0_PIN PC3 // HEATER1
|
||||
#define HEATER_1_PIN PB0 // HEATER2
|
||||
#define HEATER_BED_PIN PA0 // HOT BED
|
||||
|
||||
#define FAN_PIN PB1 // FAN
|
||||
|
||||
//
|
||||
// Thermocouples
|
||||
//
|
||||
//#define MAX6675_SS_PIN PE5 // TC1 - CS1
|
||||
//#define MAX6675_SS_PIN PE6 // TC2 - CS2
|
||||
|
||||
//
|
||||
// Misc. Functions
|
||||
//
|
||||
#define POWER_LOSS_PIN PA2 // PW_DET
|
||||
#define PS_ON_PIN PA3 // PW_OFF
|
||||
|
||||
//#define SUICIDE_PIN PB2 // Enable MKSPWC support ROBIN NANO v1.2 ONLY
|
||||
//#define SUICIDE_PIN_INVERTING false
|
||||
|
||||
//#define KILL_PIN PA2 // Enable MKSPWC support ROBIN NANO v1.2 ONLY
|
||||
//#define KILL_PIN_INVERTING true // Enable MKSPWC support ROBIN NANO v1.2 ONLY
|
||||
|
||||
#define SERVO0_PIN PA8 // Enable BLTOUCH support ROBIN NANO v1.2 ONLY
|
||||
|
||||
//#define LED_PIN PB2
|
||||
|
||||
#define MT_DET_1_PIN PA4
|
||||
#define MT_DET_2_PIN PE6
|
||||
#define MT_DET_PIN_INVERTING false
|
||||
|
||||
#define WIFI_IO0_PIN PC13
|
||||
|
||||
//
|
||||
// SD Card
|
||||
//
|
||||
#ifndef SDCARD_CONNECTION
|
||||
#define SDCARD_CONNECTION ONBOARD
|
||||
#endif
|
||||
|
||||
#define SDIO_SUPPORT
|
||||
#define SDIO_CLOCK 4500000 // 4.5 MHz
|
||||
#define SD_DETECT_PIN PD12
|
||||
#define ONBOARD_SD_CS_PIN PC11
|
||||
|
||||
//
|
||||
// LCD / Controller
|
||||
//
|
||||
#define BEEPER_PIN PC5
|
||||
|
||||
/**
|
||||
* Note: MKS Robin TFT screens use various TFT controllers.
|
||||
* If the screen stays white, disable 'LCD_RESET_PIN'
|
||||
* to let the bootloader init the screen.
|
||||
*/
|
||||
|
||||
#if ENABLED(TFT_LVGL_UI_SPI)
|
||||
|
||||
#define SPI_TFT_CS_PIN PD11
|
||||
#define SPI_TFT_SCK_PIN PA5
|
||||
#define SPI_TFT_MISO_PIN PA6
|
||||
#define SPI_TFT_MOSI_PIN PA7
|
||||
#define SPI_TFT_DC_PIN PD10
|
||||
#define SPI_TFT_RST_PIN PC6
|
||||
|
||||
#define LCD_BACKLIGHT_PIN PD13
|
||||
|
||||
#define TOUCH_CS_PIN PE14 // SPI1_NSS
|
||||
#define TOUCH_SCK_PIN PA5 // SPI1_SCK
|
||||
#define TOUCH_MISO_PIN PA6 // SPI1_MISO
|
||||
#define TOUCH_MOSI_PIN PA7 // SPI1_MOSI
|
||||
|
||||
#define BTN_EN1 PE8
|
||||
#define BTN_EN2 PE11
|
||||
#define BEEPER_PIN PC5
|
||||
#define BTN_ENC PE13
|
||||
|
||||
#else
|
||||
#if ENABLED(TFT_LITTLE_VGL_UI)
|
||||
//FSMC LCD
|
||||
#define FSMC_CS_PIN PD7 // NE4
|
||||
#define FSMC_RS_PIN PD11 // A0
|
||||
|
||||
#define TOUCH_CS_PIN PA7 // SPI2_NSS
|
||||
#define TOUCH_SCK_PIN PB13 // SPI2_SCK
|
||||
#define TOUCH_MISO_PIN PB14 // SPI2_MISO
|
||||
#define TOUCH_MOSI_PIN PB15 // SPI2_MOSI
|
||||
|
||||
#define LCD_BACKLIGHT_PIN PD13
|
||||
|
||||
#endif // TFT_LITTLE_VGL_UI
|
||||
|
||||
#endif // TFT_LVGL_UI_SPI
|
||||
|
||||
#if HAS_SPI_LCD
|
||||
|
||||
#define BEEPER_PIN PC5
|
||||
#define BTN_ENC PE13
|
||||
#define LCD_PINS_ENABLE PD13
|
||||
#define LCD_PINS_RS PC6
|
||||
#define BTN_EN1 PE8
|
||||
#define BTN_EN2 PE11
|
||||
#define LCD_BACKLIGHT_PIN -1
|
||||
|
||||
// MKS MINI12864 and MKS LCD12864B; If using MKS LCD12864A (Need to remove RPK2 resistor)
|
||||
#if ENABLED(MKS_MINI_12864)
|
||||
#define LCD_BACKLIGHT_PIN -1
|
||||
#define LCD_RESET_PIN -1
|
||||
#define DOGLCD_A0 PD11
|
||||
#define DOGLCD_CS PE15
|
||||
#define DOGLCD_SCK PA5
|
||||
#define DOGLCD_MOSI PA7
|
||||
|
||||
// Required for MKS_MINI_12864 with this board
|
||||
#define MKS_LCD12864B
|
||||
#undef SHOW_BOOTSCREEN
|
||||
|
||||
#else // !MKS_MINI_12864
|
||||
|
||||
#define LCD_PINS_D4 PE14
|
||||
#if ENABLED(ULTIPANEL)
|
||||
#define LCD_PINS_D5 PE15
|
||||
#define LCD_PINS_D6 PD11
|
||||
#define LCD_PINS_D7 PD10
|
||||
#endif
|
||||
|
||||
#ifndef BOARD_ST7920_DELAY_1
|
||||
#define BOARD_ST7920_DELAY_1 DELAY_NS(125)
|
||||
#endif
|
||||
#ifndef BOARD_ST7920_DELAY_2
|
||||
#define BOARD_ST7920_DELAY_2 DELAY_NS(125)
|
||||
#endif
|
||||
#ifndef BOARD_ST7920_DELAY_3
|
||||
#define BOARD_ST7920_DELAY_3 DELAY_NS(125)
|
||||
#endif
|
||||
|
||||
#endif // !MKS_MINI_12864
|
||||
|
||||
#endif // HAS_SPI_LCD
|
||||
|
||||
#define SPI_FLASH
|
||||
#if ENABLED(SPI_FLASH)
|
||||
#define W25QXX_CS_PIN PB12
|
||||
#define W25QXX_MOSI_PIN PB15
|
||||
#define W25QXX_MISO_PIN PB14
|
||||
#define W25QXX_SCK_PIN PB13
|
||||
#endif
|
46
buildroot/share/PlatformIO/scripts/download_mks_assets.py
Normal file
46
buildroot/share/PlatformIO/scripts/download_mks_assets.py
Normal file
|
@ -0,0 +1,46 @@
|
|||
Import("env")
|
||||
import os
|
||||
import requests
|
||||
import zipfile
|
||||
import tempfile
|
||||
import shutil
|
||||
|
||||
url = "https://github.com/makerbase-mks/Mks-Robin-Nano-Marlin2.0-Firmware/archive/master.zip"
|
||||
zip_path = os.path.join(env.Dictionary("PROJECT_LIBDEPS_DIR"), "mks-assets.zip")
|
||||
assets_path = os.path.join(env.Dictionary("PROJECT_BUILD_DIR"), env.Dictionary("PIOENV"), "assets")
|
||||
|
||||
def download_mks_assets():
|
||||
print("Downloading MKS Assets")
|
||||
r = requests.get(url, stream=True)
|
||||
# the user may have a very clean workspace,
|
||||
# so create the PROJECT_LIBDEPS_DIR directory if not exits
|
||||
if os.path.exists(env.Dictionary("PROJECT_LIBDEPS_DIR")) == False:
|
||||
os.mkdir(env.Dictionary("PROJECT_LIBDEPS_DIR"))
|
||||
with open(zip_path, 'wb') as fd:
|
||||
for chunk in r.iter_content(chunk_size=128):
|
||||
fd.write(chunk)
|
||||
|
||||
def copy_mks_assets():
|
||||
print("Copying MKS Assets")
|
||||
output_path = tempfile.mkdtemp()
|
||||
zip_obj = zipfile.ZipFile(zip_path, 'r')
|
||||
zip_obj.extractall(output_path)
|
||||
zip_obj.close()
|
||||
if os.path.exists(assets_path) == True and os.path.isdir(assets_path) == False:
|
||||
os.unlink(assets_path)
|
||||
if os.path.exists(assets_path) == False:
|
||||
os.mkdir(assets_path)
|
||||
base_path = ''
|
||||
for filename in os.listdir(output_path):
|
||||
base_path = filename
|
||||
for filename in os.listdir(os.path.join(output_path, base_path, 'Firmware', 'mks_font')):
|
||||
shutil.copy(os.path.join(output_path, base_path, 'Firmware', 'mks_font', filename), assets_path)
|
||||
for filename in os.listdir(os.path.join(output_path, base_path, 'Firmware', 'mks_pic')):
|
||||
shutil.copy(os.path.join(output_path, base_path, 'Firmware', 'mks_pic', filename), assets_path)
|
||||
shutil.rmtree(output_path, ignore_errors=True)
|
||||
|
||||
if os.path.exists(zip_path) == False:
|
||||
download_mks_assets()
|
||||
|
||||
if os.path.exists(assets_path) == False:
|
||||
copy_mks_assets()
|
|
@ -37,8 +37,9 @@ lib_deps =
|
|||
# Feature Dependencies
|
||||
#
|
||||
[features]
|
||||
TFT_LVGL_UI = MKS-LittlevGL=https://github.com/makerbase-mks/MKS-LittlevGL/archive/master.zip
|
||||
HAS_TFT_LVGL_UI = lvgl=https://github.com/makerbase-mks/MKS-LittlevGL/archive/master.zip
|
||||
src_filter=+<src/lcd/extui/lib/mks_ui>
|
||||
extra_scripts=download_mks_assets.py
|
||||
HAS_TRINAMIC_CONFIG = TMCStepper@~0.7.1
|
||||
SR_LCD_3W_NL = SailfishLCD=https://github.com/mikeshub/SailfishLCD/archive/master.zip
|
||||
DIGIPOT_MCP4... = SlowSoftI2CMaster
|
||||
|
@ -555,7 +556,7 @@ build_flags = ${common_stm32f1.build_flags}
|
|||
-DMCU_STM32F103VE
|
||||
|
||||
#
|
||||
# MKS Robin Nano (STM32F103VET6) - Emulated Graphical 128x64 (DOGM) UI
|
||||
# MKS Robin Nano (STM32F103VET6) - Emulated Graphical 128x64 (DOGM) UI and LVGL UI
|
||||
#
|
||||
[env:mks_robin_nano]
|
||||
platform = ${common_stm32f1.platform}
|
||||
|
@ -567,6 +568,18 @@ extra_scripts = ${common.extra_scripts}
|
|||
build_flags = ${common_stm32f1.build_flags}
|
||||
-DMCU_STM32F103VE -DSS_TIMER=4
|
||||
|
||||
#
|
||||
# MKS Robin Nano v2.0 (STM32F103VET6) - LVGL UI
|
||||
#
|
||||
[env:mks_robin_nano35_v2]
|
||||
platform = ${common_stm32f1.platform}
|
||||
extends = env:mks_robin_nano
|
||||
extra_scripts = ${common.extra_scripts}
|
||||
buildroot/share/PlatformIO/scripts/mks_robin_nano35.py
|
||||
lib_deps = ${common_stm32f1.lib_deps}
|
||||
debug_tool = jlink
|
||||
upload_protocol = jlink
|
||||
|
||||
#
|
||||
# MKS Robin (STM32F103ZET6)
|
||||
#
|
||||
|
|
Loading…
Reference in a new issue