Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

MKS UI extrusion menu editable speed and steps #22656

Merged
merged 5 commits into from
Sep 2, 2021
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
90 changes: 36 additions & 54 deletions Marlin/src/lcd/extui/mks_ui/draw_extrusion.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -89,20 +89,18 @@ static void event_handler(lv_obj_t *obj, lv_event_t event) {
disp_extru_amount();
break;
case ID_E_STEP:
switch (ABS(uiCfg.extruStep)) {
case 1: uiCfg.extruStep = 5; break;
case 5: uiCfg.extruStep = 10; break;
case 10: uiCfg.extruStep = 1; break;
default: break;
switch (uiCfg.extruStep) {
case uiCfg.eStepMin: uiCfg.extruStep = uiCfg.eStepMed; break;
case uiCfg.eStepMed: uiCfg.extruStep = uiCfg.eStepMax; break;
case uiCfg.eStepMax: uiCfg.extruStep = uiCfg.eStepMin; break;
}
disp_ext_step();
break;
case ID_E_SPEED:
switch (uiCfg.extruSpeed) {
case 1: uiCfg.extruSpeed = 10; break;
case 10: uiCfg.extruSpeed = 20; break;
case 20: uiCfg.extruSpeed = 1; break;
default: break;
case uiCfg.eSpeedL: uiCfg.extruSpeed = uiCfg.eSpeedN; break;
case uiCfg.eSpeedN: uiCfg.extruSpeed = uiCfg.eSpeedH; break;
case uiCfg.eSpeedH: uiCfg.extruSpeed = uiCfg.eSpeedL; break;
}
disp_ext_speed();
break;
Expand Down Expand Up @@ -155,41 +153,30 @@ void lv_draw_extrusion() {
void disp_ext_type() {
if (uiCfg.extruderIndex == 1) {
lv_imgbtn_set_src_both(buttonType, "F:/bmp_extru2.bin");
if (gCfgItems.multiple_language) {
lv_label_set_text(labelType, extrude_menu.ext2);
lv_obj_align(labelType, buttonType, LV_ALIGN_IN_BOTTOM_MID, 0, BUTTON_TEXT_Y_OFFSET);
}
if (gCfgItems.multiple_language) lv_label_set_text(labelType, extrude_menu.ext2);
}
else {
lv_imgbtn_set_src_both(buttonType, "F:/bmp_extru1.bin");
if (gCfgItems.multiple_language) {
lv_label_set_text(labelType, extrude_menu.ext1);
lv_obj_align(labelType, buttonType, LV_ALIGN_IN_BOTTOM_MID, 0, BUTTON_TEXT_Y_OFFSET);
}
if (gCfgItems.multiple_language) lv_label_set_text(labelType, extrude_menu.ext1);
}
if (gCfgItems.multiple_language)
lv_obj_align(labelType, buttonType, LV_ALIGN_IN_BOTTOM_MID, 0, BUTTON_TEXT_Y_OFFSET);
}

void disp_ext_speed() {
if (uiCfg.extruSpeed == 20)
lv_imgbtn_set_src_both(buttonSpeed, "F:/bmp_speed_high.bin");
else if (uiCfg.extruSpeed == 1)
lv_imgbtn_set_src_both(buttonSpeed, "F:/bmp_speed_slow.bin");
else
lv_imgbtn_set_src_both(buttonSpeed, "F:/bmp_speed_normal.bin");
switch (uiCfg.extruSpeed) {
case uiCfg.eSpeedH: lv_imgbtn_set_src_both(buttonSpeed, "F:/bmp_speed_high.bin"); break;
case uiCfg.eSpeedL: lv_imgbtn_set_src_both(buttonSpeed, "F:/bmp_speed_slow.bin"); break;
case uiCfg.eSpeedN: lv_imgbtn_set_src_both(buttonSpeed, "F:/bmp_speed_normal.bin"); break;
}

if (gCfgItems.multiple_language) {
if (uiCfg.extruSpeed == 20) {
lv_label_set_text(labelSpeed, extrude_menu.high);
lv_obj_align(labelSpeed, buttonSpeed, LV_ALIGN_IN_BOTTOM_MID, 0, BUTTON_TEXT_Y_OFFSET);
}
else if (uiCfg.extruSpeed == 1) {
lv_label_set_text(labelSpeed, extrude_menu.low);
lv_obj_align(labelSpeed, buttonSpeed, LV_ALIGN_IN_BOTTOM_MID, 0, BUTTON_TEXT_Y_OFFSET);
}
else {
lv_label_set_text(labelSpeed, extrude_menu.normal);
lv_obj_align(labelSpeed, buttonSpeed, LV_ALIGN_IN_BOTTOM_MID, 0, BUTTON_TEXT_Y_OFFSET);
switch (uiCfg.extruSpeed) {
case uiCfg.eSpeedH: lv_label_set_text(labelSpeed, extrude_menu.high); break;
case uiCfg.eSpeedL: lv_label_set_text(labelSpeed, extrude_menu.low); break;
case uiCfg.eSpeedN: lv_label_set_text(labelSpeed, extrude_menu.normal); break;
}
lv_obj_align(labelSpeed, buttonSpeed, LV_ALIGN_IN_BOTTOM_MID, 0, BUTTON_TEXT_Y_OFFSET);
}
}

Expand Down Expand Up @@ -221,33 +208,28 @@ void disp_extru_amount() {
}

void disp_ext_step() {
if (uiCfg.extruStep == 1)
lv_imgbtn_set_src_both(buttonStep, "F:/bmp_step1_mm.bin");
else if (uiCfg.extruStep == 5)
lv_imgbtn_set_src_both(buttonStep, "F:/bmp_step5_mm.bin");
else if (uiCfg.extruStep == 10)
lv_imgbtn_set_src_both(buttonStep, "F:/bmp_step10_mm.bin");
char buf3[12];
sprintf_P(buf3, PSTR("%dmm"), uiCfg.extruStep);

switch (uiCfg.extruStep) {
case uiCfg.eStepMin: lv_imgbtn_set_src_both(buttonStep, "F:/bmp_step1_mm.bin"); break;
case uiCfg.eStepMed: lv_imgbtn_set_src_both(buttonStep, "F:/bmp_step5_mm.bin"); break;
case uiCfg.eStepMax: lv_imgbtn_set_src_both(buttonStep, "F:/bmp_step10_mm.bin"); break;
}

if (gCfgItems.multiple_language) {
if (uiCfg.extruStep == 1) {
lv_label_set_text(labelStep, extrude_menu.step_1mm);
lv_obj_align(labelStep, buttonStep, LV_ALIGN_IN_BOTTOM_MID, 0, BUTTON_TEXT_Y_OFFSET);
}
else if (uiCfg.extruStep == 5) {
lv_label_set_text(labelStep, extrude_menu.step_5mm);
lv_obj_align(labelStep, buttonStep, LV_ALIGN_IN_BOTTOM_MID, 0, BUTTON_TEXT_Y_OFFSET);
}
else if (uiCfg.extruStep == 10) {
lv_label_set_text(labelStep, extrude_menu.step_10mm);
lv_obj_align(labelStep, buttonStep, LV_ALIGN_IN_BOTTOM_MID, 0, BUTTON_TEXT_Y_OFFSET);
switch (uiCfg.extruStep) {
case uiCfg.eStepMin: lv_label_set_text(labelStep, buf3); break;
case uiCfg.eStepMed: lv_label_set_text(labelStep, buf3); break;
case uiCfg.eStepMax: lv_label_set_text(labelStep, buf3); break;
}
lv_obj_align(labelStep, buttonStep, LV_ALIGN_IN_BOTTOM_MID, 0, BUTTON_TEXT_Y_OFFSET);
}
}

void lv_clear_extrusion() {
#if HAS_ROTARY_ENCODER
if (gCfgItems.encoder_enable) lv_group_remove_all_objs(g);
#endif
if (TERN0(HAS_ROTARY_ENCODER, gCfgItems.encoder_enable))
lv_group_remove_all_objs(g);
lv_obj_del(scr);
}

Expand Down
15 changes: 6 additions & 9 deletions Marlin/src/lcd/extui/mks_ui/draw_ui.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -186,10 +186,10 @@ void ui_cfg_init() {
uiCfg.stepHeat = 10;
uiCfg.leveling_first_time = false;
uiCfg.para_ui_page = false;
uiCfg.extruStep = 5;
uiCfg.extruSpeed = 10;
uiCfg.extruStep = uiCfg.eStepMed;
uiCfg.extruSpeed = uiCfg.eSpeedN;
uiCfg.move_dist = 1;
uiCfg.moveSpeed = 3000;
uiCfg.moveSpeed = 1000;
uiCfg.stepPrintSpeed = 10;
uiCfg.command_send = false;
uiCfg.dialogType = 0;
Expand Down Expand Up @@ -609,9 +609,9 @@ char *creat_title_text() {
gPicturePreviewStart += (uintptr_t)p1 - (uintptr_t)((uint32_t *)(&public_buf[0]));
break;
}
else {
else
gPicturePreviewStart += br;
}

if (br < 400) break;
}
}
Expand All @@ -623,11 +623,8 @@ char *creat_title_text() {

while (1) {
card.read(public_buf, 400);
for (i = 0; i < 400;) {
for (i = 0; i < 400; i += 2, j++)
bmp_public_buf[j] = ascii2dec_test((char*)&public_buf[i]) << 4 | ascii2dec_test((char*)&public_buf[i + 1]);
i += 2;
j++;
}
if (j >= 400) break;
}
for (i = 0; i < 400; i += 2) {
Expand Down
10 changes: 9 additions & 1 deletion Marlin/src/lcd/extui/mks_ui/draw_ui.h
Original file line number Diff line number Diff line change
Expand Up @@ -208,7 +208,7 @@ typedef struct {
uint32_t curFilesize;
} CFG_ITMES;

typedef struct {
typedef struct UI_Config_Struct {
uint8_t curTempType:1,
extruderIndex:3,
stepHeat:4,
Expand All @@ -228,8 +228,16 @@ typedef struct {
uint8_t wifi_name[32];
uint8_t wifi_key[64];
uint8_t cloud_hostUrl[96];
// Extruder Steps distances (mm)
uint8_t extruStep;
static constexpr uint8_t eStepMin = 1,
eStepMed = 5,
eStepMax = 10;
// Extruder speed (mm/s)
uint8_t extruSpeed;
static constexpr uint8_t eSpeedH = 1,
eSpeedN = 10,
eSpeedL = 20;
uint8_t print_state;
uint8_t stepPrintSpeed;
uint8_t waitEndMoves;
Expand Down
20 changes: 7 additions & 13 deletions Marlin/src/lcd/extui/mks_ui/wifi_module.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -1445,16 +1445,12 @@ void utf8_2_unicode(uint8_t *source, uint8_t Len) {

ZERO(FileName_unicode);

while (1) {
for (;;) {
char_byte_num = source[i] & 0xF0;
if (source[i] < 0x80) {
//ASCII --1byte
FileName_unicode[char_i] = source[i];
i += 1;
char_i += 1;
if (source[i] < 0x80) { // ASCII -- 1 byte
FileName_unicode[char_i++] = source[i++];
}
else if (char_byte_num == 0xC0 || char_byte_num == 0xD0) {
//--2byte
else if (char_byte_num == 0xC0 || char_byte_num == 0xD0) { // -- 2 byte
u16_h = (((uint16_t)source[i] << 8) & 0x1F00) >> 2;
u16_l = ((uint16_t)source[i + 1] & 0x003F);
u16_value = (u16_h | u16_l);
Expand All @@ -1463,8 +1459,7 @@ void utf8_2_unicode(uint8_t *source, uint8_t Len) {
i += 2;
char_i += 2;
}
else if (char_byte_num == 0xE0) {
//--3byte
else if (char_byte_num == 0xE0) { // -- 3 byte
u16_h = (((uint16_t)source[i] << 8) & 0x0F00) << 4;
u16_m = (((uint16_t)source[i + 1] << 8) & 0x3F00) >> 2;
u16_l = ((uint16_t)source[i + 2] & 0x003F);
Expand All @@ -1474,8 +1469,7 @@ void utf8_2_unicode(uint8_t *source, uint8_t Len) {
i += 3;
char_i += 2;
}
else if (char_byte_num == 0xF0) {
//--4byte
else if (char_byte_num == 0xF0) { // -- 4 byte
i += 4;
//char_i += 3;
}
Expand Down Expand Up @@ -1510,7 +1504,7 @@ static void file_first_msg_handle(uint8_t * msg, uint16_t msgLen) {
TERN_(SDSUPPORT, card.mount());
}
else if (gCfgItems.fileSysType == FILE_SYS_USB) {

// nothing
}
file_writer.write_index = 0;
lastFragment = -1;
Expand Down
2 changes: 1 addition & 1 deletion buildroot/bin/mftest
Original file line number Diff line number Diff line change
Expand Up @@ -133,7 +133,7 @@ lp9|lpc9) TESTENV='LPC1769' ;;
t36) TESTENV='teensy35' ;;
t40) TESTENV='teensy41' ;;
t41) TESTENV='teensy41' ;;
[1-9][1-9]|[1-9]) TESTNUM=$TESTENV ; TESTENV=- ;;
[1-9]|[1-9][0-9]) TESTNUM=$TESTENV ; TESTENV=- ;;
esac

if ((AUTO_BUILD)); then
Expand Down
32 changes: 16 additions & 16 deletions buildroot/tests/mks_robin_nano35
Original file line number Diff line number Diff line change
Expand Up @@ -15,15 +15,15 @@ opt_set MOTHERBOARD BOARD_MKS_ROBIN_NANO
exec_test $1 $2 "MKS Robin nano v1.2 Emulated DOGM FSMC" "$3"

#
# MKS Robin v2 nano Emulated DOGM SPI
# (Robin v2 nano has no FSMC interface)
# MKS Robin nano v2 Emulated DOGM SPI
# (Robin nano v2 has no FSMC interface)
#
use_example_configs Mks/Robin
opt_set MOTHERBOARD BOARD_MKS_ROBIN_NANO_V2
opt_disable TFT_INTERFACE_FSMC
opt_enable TFT_INTERFACE_SPI MKS_WIFI_MODULE
opt_add MKS_TEST
exec_test $1 $2 "MKS Robin v2 nano Emulated DOGM SPI, MKS_WIFI_MODULE" "$3"
exec_test $1 $2 "MKS Robin nano v2 Emulated DOGM SPI, MKS_WIFI_MODULE" "$3"

#
# MKS Robin nano v1.2 LVGL FSMC
Expand All @@ -35,34 +35,34 @@ exec_test $1 $2 "MKS Robin v2 nano Emulated DOGM SPI, MKS_WIFI_MODULE" "$3"
# exec_test $1 $2 "MKS Robin nano v1.2 LVGL FSMC" "$3"

#
# MKS Robin v2 nano LVGL SPI
# (Robin v2 nano has no FSMC interface)
# MKS Robin nano v2 LVGL SPI
# (Robin nano v2 has no FSMC interface)
#
# use_example_configs Mks/Robin
# opt_set MOTHERBOARD BOARD_MKS_ROBIN_NANO_V2
# opt_disable TFT_INTERFACE_FSMC TFT_COLOR_UI TOUCH_SCREEN TFT_RES_320x240
# opt_enable TFT_INTERFACE_SPI TFT_LVGL_UI TFT_RES_480x320
# exec_test $1 $2 "MKS Robin v2 nano LVGL SPI" "$3"
# exec_test $1 $2 "MKS Robin nano v2 LVGL SPI" "$3"

#
# MKS Robin v2 nano New Color UI 480x320 SPI
# (Robin v2 nano has no FSMC interface)
# MKS Robin nano v2 New Color UI 480x320 SPI
# (Robin nano v2 has no FSMC interface)
#
use_example_configs Mks/Robin
opt_set MOTHERBOARD BOARD_MKS_ROBIN_NANO_V2
opt_disable TFT_INTERFACE_FSMC TFT_RES_320x240
opt_enable TFT_INTERFACE_SPI TFT_RES_480x320
exec_test $1 $2 "MKS Robin v2 nano New Color UI 480x320 SPI" "$3"
exec_test $1 $2 "MKS Robin nano v2 with New Color UI 480x320 SPI" "$3"

#
# MKS Robin v2 nano LVGL SPI + TMC
# (Robin v2 nano has no FSMC interface)
# MKS Robin nano v2 LVGL SPI + TMC
# (Robin nano v2 has no FSMC interface)
#
# use_example_configs Mks/Robin
# opt_set MOTHERBOARD BOARD_MKS_ROBIN_NANO_V2 X_DRIVER_TYPE TMC2209 Y_DRIVER_TYPE TMC2209
# opt_disable TFT_INTERFACE_FSMC TFT_COLOR_UI TOUCH_SCREEN TFT_RES_320x240
# opt_enable TFT_INTERFACE_SPI TFT_LVGL_UI TFT_RES_480x320
# exec_test $1 $2 "MKS Robin v2 nano LVGL SPI + TMC" "$3"
use_example_configs Mks/Robin
opt_set MOTHERBOARD BOARD_MKS_ROBIN_NANO_V2 X_DRIVER_TYPE TMC2209 Y_DRIVER_TYPE TMC2209
opt_disable TFT_INTERFACE_FSMC TFT_COLOR_UI TOUCH_SCREEN TFT_RES_320x240
opt_enable TFT_INTERFACE_SPI TFT_LVGL_UI TFT_RES_480x320
exec_test $1 $2 "MKS Robin nano v2 LVGL SPI + TMC" "$3"

# cleanup
restore_configs