From 581595f1e35f92431d34dbf2ea6e503b5675a817 Mon Sep 17 00:00:00 2001 From: petervw Date: Sun, 25 Oct 2020 14:49:38 +0100 Subject: [PATCH 01/24] new start, added new files The way languages are set is changed. Made a new branch for it --- TFT/src/User/API/neopixel_sequential.c | 96 ++++++++++++++++++++++++++ TFT/src/User/API/neopixel_sequential.h | 14 ++++ 2 files changed, 110 insertions(+) create mode 100644 TFT/src/User/API/neopixel_sequential.c create mode 100644 TFT/src/User/API/neopixel_sequential.h diff --git a/TFT/src/User/API/neopixel_sequential.c b/TFT/src/User/API/neopixel_sequential.c new file mode 100644 index 0000000000..d240c21c83 --- /dev/null +++ b/TFT/src/User/API/neopixel_sequential.c @@ -0,0 +1,96 @@ +#include "neopixel_sequential.h" +#include "includes.h" + +uint8_t prevPixelColor = 0; +uint8_t waitForNext = 0; + +void setNeopixelSequentialColor(void) +{ + if(waitForNext > 0) + { + waitForNext--; + return; + } + + if(!isPrinting()) + { + if(prevPixelColor == 0) + return; + if(printingFinished && prevPixelColor != 0) + { + //Set neopixel and ledknob to green + storeCmd("M150 R0 G255 B0"); + #ifdef LED_COLOR_PIN + WS2812_Send_DAT(led_color[GREEN]); + #endif + } + else if(prevPixelColor != 0 && infoMenu.menu[infoMenu.cur] != menuPrinting) + { + //Restore colors to default value + prevPixelColor = 0; + + //Turn of neopixels and set knob led back to default + storeCmd("M150 R0 G0 B0"); + #ifdef LED_COLOR_PIN + WS2812_Send_DAT(led_color[infoSettings.knob_led_color]); + #endif + } + + return; + } + else + { + uint16_t hotendTargetTemp = heatGetTargetTemp(0); + uint16_t bedTargetTemp = heatGetTargetTemp(BED); + + if(hotendTargetTemp == 0 && bedTargetTemp == 0) + return; //No temperature set "yet". Do nothing. + + long newLedValue = 0; + if(hotendTargetTemp > 0 && bedTargetTemp > 0 && + heatGetCurrentTemp(BED) >= bedTargetTemp - 5) + { + //Only use total temperature when hotend and bed heat up at the same time + uint16_t totalTemperature = hotendTargetTemp + bedTargetTemp; + newLedValue = map(heatGetCurrentTemp(0) + heatGetCurrentTemp(BED), 0, totalTemperature, 0, 255); + } + else + { + if(hotendTargetTemp == 0) + newLedValue = map(heatGetCurrentTemp(BED), 0, bedTargetTemp, 0, 125); + else + newLedValue = map(heatGetCurrentTemp(0), 0, bedTargetTemp, 125, 255); + } + if(newLedValue > prevPixelColor) + { + // Set the neopixel color + storeCmd("M150 R%i G0 B%i", newLedValue, 255 - newLedValue); + + #ifdef LED_COLOR_PIN + uint8_t colorRed = newLedValue; + uint8_t colorBlue = 255 - newLedValue; + uint32_t newPixelColor; + sprintf(newPixelColor, "0x0000%X%X", colorRed, colorBlue); + //Color the Knob led when available + WS2812_Send_DAT(newPixelColor); + #endif + + prevPixelColor = newLedValue; + } + + if(hotendTargetTemp > 0 && bedTargetTemp > 0 && + heatGetCurrentTemp(0) >= hotendTargetTemp -5 && + heatGetCurrentTemp(BED) >= bedTargetTemp - 5) + { + //Bed and hotend are on temperature. Set neopixel to white + storeCmd("M150 R255 G255 B255"); + + #ifdef LED_COLOR_PIN + //Restore knob led to default + WS2812_Send_DAT(led_color[infoSettings.knob_led_color]); + #endif + } + } + //Set the waitForNext to 100 to prevent that this function is + waitForNext = 100; +} diff --git a/TFT/src/User/API/neopixel_sequential.h b/TFT/src/User/API/neopixel_sequential.h new file mode 100644 index 0000000000..c692a1c7e1 --- /dev/null +++ b/TFT/src/User/API/neopixel_sequential.h @@ -0,0 +1,14 @@ +#ifndef _NEOPIXEL_SEQUENTIAL_H_ +#define _NEOPIXEL_SEQUENTIAL_H_ + +#ifdef __cplusplus +extern "C" { +#endif + +void setNeopixelSequentialColor(void); + +#ifdef __cplusplus +} +#endif + +#endif From 92e0a1fe7777d9197c662d24d403f7d702bbaaae Mon Sep 17 00:00:00 2001 From: petervw Date: Sun, 25 Oct 2020 16:22:37 +0100 Subject: [PATCH 02/24] Added sequential mode * added sequential mode to languages * Added seguential mode to config * Added encoder led wakeup in wakeup LCD Bugs to check * feature settings doens't keep it's settings --- .../Language Packs/language_am.ini | 1 + .../Language Packs/language_ca.ini | 1 + .../Language Packs/language_cn.ini | 1 + .../Language Packs/language_cz.ini | 1 + .../Language Packs/language_de.ini | 1 + .../Language Packs/language_du.ini | 1 + .../Language Packs/language_en.ini | 1 + .../Language Packs/language_es.ini | 1 + .../Language Packs/language_fr.ini | 1 + .../Language Packs/language_gr.ini | 1 + .../Language Packs/language_hu.ini | 1 + .../Language Packs/language_it.ini | 1 + .../Language Packs/language_jp.ini | 1 + .../Language Packs/language_pl.ini | 1 + .../Language Packs/language_pt.ini | 1 + .../Language Packs/language_ru.ini | 1 + .../Language Packs/language_sk.ini | 1 + .../Language Packs/language_sl.ini | 1 + .../Language Packs/language_tc.ini | 1 + .../Language Packs/language_tr.ini | 1 + .../config.ini | 5 + .../Language Packs/language_am.ini | 1 + .../Language Packs/language_ca.ini | 1 + .../Language Packs/language_cn.ini | 1 + .../Language Packs/language_cz.ini | 1 + .../Language Packs/language_de.ini | 1 + .../Language Packs/language_du.ini | 1 + .../Language Packs/language_en.ini | 1 + .../Language Packs/language_es.ini | 1 + .../Language Packs/language_fr.ini | 1 + .../Language Packs/language_gr.ini | 1 + .../Language Packs/language_hu.ini | 1 + .../Language Packs/language_it.ini | 1 + .../Language Packs/language_jp.ini | 1 + .../Language Packs/language_pl.ini | 1 + .../Language Packs/language_pt.ini | 1 + .../Language Packs/language_ru.ini | 1 + .../Language Packs/language_sk.ini | 1 + .../Language Packs/language_sl.ini | 1 + .../Language Packs/language_tc.ini | 1 + .../Language Packs/language_tr.ini | 1 + .../config.ini | 6 ++ TFT/src/User/API/Language/Language.inc | 1 + TFT/src/User/API/Language/language_am.h | 1 + TFT/src/User/API/Language/language_ca.h | 1 + TFT/src/User/API/Language/language_cn.h | 1 + TFT/src/User/API/Language/language_cz.h | 1 + TFT/src/User/API/Language/language_de.h | 1 + TFT/src/User/API/Language/language_du.h | 1 + TFT/src/User/API/Language/language_en.h | 1 + TFT/src/User/API/Language/language_es.h | 1 + TFT/src/User/API/Language/language_fr.h | 1 + TFT/src/User/API/Language/language_gr.h | 1 + TFT/src/User/API/Language/language_hu.h | 1 + TFT/src/User/API/Language/language_it.h | 1 + TFT/src/User/API/Language/language_jp.h | 1 + TFT/src/User/API/Language/language_keywords.h | 1 + TFT/src/User/API/Language/language_pl.h | 1 + TFT/src/User/API/Language/language_pt.h | 1 + TFT/src/User/API/Language/language_ru.h | 1 + TFT/src/User/API/Language/language_sk.h | 1 + TFT/src/User/API/Language/language_sl.h | 1 + TFT/src/User/API/Language/language_tc.h | 1 + TFT/src/User/API/Language/language_tr.h | 1 + TFT/src/User/API/Settings.c | 1 + TFT/src/User/API/Settings.h | 2 + TFT/src/User/API/config.c | 5 + TFT/src/User/API/config.h | 2 + TFT/src/User/API/config.inc | 1 + TFT/src/User/API/flashStore.c | 4 +- TFT/src/User/API/neopixel_sequential.c | 96 ------------------- TFT/src/User/API/neopixel_sequential.h | 14 --- TFT/src/User/API/sequential_mode.c | 83 ++++++++++++++++ TFT/src/User/API/sequential_mode.h | 16 ++++ TFT/src/User/Hal/LCD_Init.c | 9 ++ TFT/src/User/Language Packs/language_am.ini | 1 + TFT/src/User/Language Packs/language_ca.ini | 1 + TFT/src/User/Language Packs/language_cn.ini | 1 + TFT/src/User/Language Packs/language_cz.ini | 1 + TFT/src/User/Language Packs/language_de.ini | 1 + TFT/src/User/Language Packs/language_du.ini | 1 + TFT/src/User/Language Packs/language_en.ini | 1 + TFT/src/User/Language Packs/language_es.ini | 1 + TFT/src/User/Language Packs/language_fr.ini | 1 + TFT/src/User/Language Packs/language_gr.ini | 1 + TFT/src/User/Language Packs/language_hu.ini | 1 + TFT/src/User/Language Packs/language_it.ini | 1 + TFT/src/User/Language Packs/language_jp.ini | 1 + TFT/src/User/Language Packs/language_pl.ini | 1 + TFT/src/User/Language Packs/language_pt.ini | 1 + TFT/src/User/Language Packs/language_ru.ini | 1 + TFT/src/User/Language Packs/language_sk.ini | 1 + TFT/src/User/Language Packs/language_sl.ini | 1 + TFT/src/User/Language Packs/language_tc.ini | 1 + TFT/src/User/Language Packs/language_tr.ini | 1 + TFT/src/User/Menu/FeatureSettings.c | 19 +++- TFT/src/User/config.ini | 5 + TFT/src/User/includes.h | 2 + platformio.ini | 2 +- 99 files changed, 238 insertions(+), 116 deletions(-) delete mode 100644 TFT/src/User/API/neopixel_sequential.c delete mode 100644 TFT/src/User/API/neopixel_sequential.h create mode 100644 TFT/src/User/API/sequential_mode.c create mode 100644 TFT/src/User/API/sequential_mode.h diff --git a/Copy to SD Card root directory to update - Unified Menu Material theme/Language Packs/language_am.ini b/Copy to SD Card root directory to update - Unified Menu Material theme/Language Packs/language_am.ini index ca25f6dca9..a437d1bee7 100644 --- a/Copy to SD Card root directory to update - Unified Menu Material theme/Language Packs/language_am.ini +++ b/Copy to SD Card root directory to update - Unified Menu Material theme/Language Packs/language_am.ini @@ -230,6 +230,7 @@ label_60_seconds:1 Min. label_120_seconds:2 Min. label_300_seconds:5 Min. label_custom_seconds:Custom +label_sequential_mode:Sequential mode label_st7920_fullscreen:Marlin mode in fullscreen label_plr_en:Power loss recovery label_setting_save:Save settings diff --git a/Copy to SD Card root directory to update - Unified Menu Material theme/Language Packs/language_ca.ini b/Copy to SD Card root directory to update - Unified Menu Material theme/Language Packs/language_ca.ini index 6bd5926515..e4cd19932b 100644 --- a/Copy to SD Card root directory to update - Unified Menu Material theme/Language Packs/language_ca.ini +++ b/Copy to SD Card root directory to update - Unified Menu Material theme/Language Packs/language_ca.ini @@ -230,6 +230,7 @@ label_60_seconds:1 Min. label_120_seconds:2 Min. label_300_seconds:5 Min. label_custom_seconds:Personalitzat +label_sequential_mode:Sequential mode label_st7920_fullscreen:Mode Marlin a pantalla completa label_plr_en:Recuperació de pèrdua d’energia label_setting_save:Save settings diff --git a/Copy to SD Card root directory to update - Unified Menu Material theme/Language Packs/language_cn.ini b/Copy to SD Card root directory to update - Unified Menu Material theme/Language Packs/language_cn.ini index 48e8a1bf37..fecfa1ffe3 100644 --- a/Copy to SD Card root directory to update - Unified Menu Material theme/Language Packs/language_cn.ini +++ b/Copy to SD Card root directory to update - Unified Menu Material theme/Language Packs/language_cn.ini @@ -230,6 +230,7 @@ label_60_seconds:1分钟 label_120_seconds:2分钟 label_300_seconds:5分钟 label_custom_seconds:自定义 +label_sequential_mode:Sequential mode label_st7920_fullscreen:全屏显示Marlin模式 label_plr_en:断电续打 label_setting_save:保存设置 diff --git a/Copy to SD Card root directory to update - Unified Menu Material theme/Language Packs/language_cz.ini b/Copy to SD Card root directory to update - Unified Menu Material theme/Language Packs/language_cz.ini index c5fc956e54..96d4905957 100644 --- a/Copy to SD Card root directory to update - Unified Menu Material theme/Language Packs/language_cz.ini +++ b/Copy to SD Card root directory to update - Unified Menu Material theme/Language Packs/language_cz.ini @@ -230,6 +230,7 @@ label_60_seconds:1 min. label_120_seconds:2 min. label_300_seconds:5 min. label_custom_seconds:Vlastní +label_sequential_mode:Sequential mode label_st7920_fullscreen:Celoobrazovkový režim Marlin label_plr_en:Obnova po ztrátě napájení label_setting_save:Uložení nastavení diff --git a/Copy to SD Card root directory to update - Unified Menu Material theme/Language Packs/language_de.ini b/Copy to SD Card root directory to update - Unified Menu Material theme/Language Packs/language_de.ini index e7ba8cfe1f..fca10dfba5 100644 --- a/Copy to SD Card root directory to update - Unified Menu Material theme/Language Packs/language_de.ini +++ b/Copy to SD Card root directory to update - Unified Menu Material theme/Language Packs/language_de.ini @@ -230,6 +230,7 @@ label_60_seconds:1 Min. label_120_seconds:2 Min. label_300_seconds:5 Min. label_custom_seconds:Benutz. +label_sequential_mode:Sequential mode label_st7920_fullscreen:Marlin mode in fullscreen label_plr_en:Power loss recovery label_setting_save:Save settings diff --git a/Copy to SD Card root directory to update - Unified Menu Material theme/Language Packs/language_du.ini b/Copy to SD Card root directory to update - Unified Menu Material theme/Language Packs/language_du.ini index cd362099e2..d600273658 100644 --- a/Copy to SD Card root directory to update - Unified Menu Material theme/Language Packs/language_du.ini +++ b/Copy to SD Card root directory to update - Unified Menu Material theme/Language Packs/language_du.ini @@ -230,6 +230,7 @@ label_60_seconds:1 Min. label_120_seconds:2 Min. label_300_seconds:5 Min. label_custom_seconds:Custom +label_sequential_mode:Sequential mode label_st7920_fullscreen:Marlin mode in fullscreen label_plr_en:Power loss recovery label_setting_save:Save settings diff --git a/Copy to SD Card root directory to update - Unified Menu Material theme/Language Packs/language_en.ini b/Copy to SD Card root directory to update - Unified Menu Material theme/Language Packs/language_en.ini index d85867a008..16b740dda5 100644 --- a/Copy to SD Card root directory to update - Unified Menu Material theme/Language Packs/language_en.ini +++ b/Copy to SD Card root directory to update - Unified Menu Material theme/Language Packs/language_en.ini @@ -230,6 +230,7 @@ label_60_seconds:1 Min. label_120_seconds:2 Min. label_300_seconds:5 Min. label_custom_seconds:Custom +label_sequential_mode:Sequential mode label_st7920_fullscreen:Marlin mode in fullscreen label_plr_en:Power loss recovery label_setting_save:Save settings diff --git a/Copy to SD Card root directory to update - Unified Menu Material theme/Language Packs/language_es.ini b/Copy to SD Card root directory to update - Unified Menu Material theme/Language Packs/language_es.ini index 4762207530..0957800120 100644 --- a/Copy to SD Card root directory to update - Unified Menu Material theme/Language Packs/language_es.ini +++ b/Copy to SD Card root directory to update - Unified Menu Material theme/Language Packs/language_es.ini @@ -230,6 +230,7 @@ label_60_seconds:1 Min. label_120_seconds:2 Min. label_300_seconds:5 Min. label_custom_seconds:Custom +label_sequential_mode:Sequential mode label_st7920_fullscreen:Marlin mode in fullscreen label_plr_en:Power loss recovery label_setting_save:Save settings diff --git a/Copy to SD Card root directory to update - Unified Menu Material theme/Language Packs/language_fr.ini b/Copy to SD Card root directory to update - Unified Menu Material theme/Language Packs/language_fr.ini index 5d2bb6519a..017aac05db 100644 --- a/Copy to SD Card root directory to update - Unified Menu Material theme/Language Packs/language_fr.ini +++ b/Copy to SD Card root directory to update - Unified Menu Material theme/Language Packs/language_fr.ini @@ -230,6 +230,7 @@ label_60_seconds:1 Min. label_120_seconds:2 Min. label_300_seconds:5 Min. label_custom_seconds:Custom +label_sequential_mode:Sequential mode label_st7920_fullscreen:Mode Marlin plein écran label_plr_en:Reprise après coupure label_setting_save:Sauvegarder les paramètres diff --git a/Copy to SD Card root directory to update - Unified Menu Material theme/Language Packs/language_gr.ini b/Copy to SD Card root directory to update - Unified Menu Material theme/Language Packs/language_gr.ini index 622747835a..695616a1a7 100644 --- a/Copy to SD Card root directory to update - Unified Menu Material theme/Language Packs/language_gr.ini +++ b/Copy to SD Card root directory to update - Unified Menu Material theme/Language Packs/language_gr.ini @@ -230,6 +230,7 @@ label_60_seconds:1 Λεπτό label_120_seconds:2 Λεπτά label_300_seconds:5 Λεπτά label_custom_seconds:Τροποποιημένες ρυθμίσεις +label_sequential_mode:Sequential mode label_st7920_fullscreen:Λειτουργία Marlin σε πλήρη οθόνη label_plr_en:Power loss recovery label_setting_save:Save settings diff --git a/Copy to SD Card root directory to update - Unified Menu Material theme/Language Packs/language_hu.ini b/Copy to SD Card root directory to update - Unified Menu Material theme/Language Packs/language_hu.ini index 93ea110bcf..1ae55a6865 100644 --- a/Copy to SD Card root directory to update - Unified Menu Material theme/Language Packs/language_hu.ini +++ b/Copy to SD Card root directory to update - Unified Menu Material theme/Language Packs/language_hu.ini @@ -230,6 +230,7 @@ label_60_seconds:1 Perc. label_120_seconds:2 Perc. label_300_seconds:5 Perc. label_custom_seconds:Egyedi +label_sequential_mode:Sequential mode label_st7920_fullscreen:Nagyképernyős Marlin mód label_plr_en:Áramkiesés helyreálítása label_setting_save:Beállítások mentése diff --git a/Copy to SD Card root directory to update - Unified Menu Material theme/Language Packs/language_it.ini b/Copy to SD Card root directory to update - Unified Menu Material theme/Language Packs/language_it.ini index 8eb4f2b420..1da21ec808 100644 --- a/Copy to SD Card root directory to update - Unified Menu Material theme/Language Packs/language_it.ini +++ b/Copy to SD Card root directory to update - Unified Menu Material theme/Language Packs/language_it.ini @@ -230,6 +230,7 @@ label_60_seconds:1 Min. label_120_seconds:2 Min. label_300_seconds:5 Min. label_custom_seconds:Custom +label_sequential_mode:Sequential mode label_st7920_fullscreen:Marlin mode schermo pieno label_plr_en:Power loss recovery label_setting_save:Salva le impostazioni diff --git a/Copy to SD Card root directory to update - Unified Menu Material theme/Language Packs/language_jp.ini b/Copy to SD Card root directory to update - Unified Menu Material theme/Language Packs/language_jp.ini index 694c47c5ed..4b6dc711c0 100644 --- a/Copy to SD Card root directory to update - Unified Menu Material theme/Language Packs/language_jp.ini +++ b/Copy to SD Card root directory to update - Unified Menu Material theme/Language Packs/language_jp.ini @@ -230,6 +230,7 @@ label_60_seconds:1 Min. label_120_seconds:2 Min. label_300_seconds:5 Min. label_custom_seconds:カスタム +label_sequential_mode:Sequential mode label_st7920_fullscreen:フルスクリーンでマーリンモード label_plr_en:Power loss recovery label_setting_save:Save settings diff --git a/Copy to SD Card root directory to update - Unified Menu Material theme/Language Packs/language_pl.ini b/Copy to SD Card root directory to update - Unified Menu Material theme/Language Packs/language_pl.ini index 06e0ce8c2a..d231f4230c 100644 --- a/Copy to SD Card root directory to update - Unified Menu Material theme/Language Packs/language_pl.ini +++ b/Copy to SD Card root directory to update - Unified Menu Material theme/Language Packs/language_pl.ini @@ -231,6 +231,7 @@ label_60_seconds:1 Min. label_120_seconds:2 Min. label_300_seconds:5 Min. label_custom_seconds:Custom +label_sequential_mode:Sequential mode label_st7920_fullscreen:Marlin mode in fullscreen label_plr_en:Power loss recovery label_setting_save:Save settings diff --git a/Copy to SD Card root directory to update - Unified Menu Material theme/Language Packs/language_pt.ini b/Copy to SD Card root directory to update - Unified Menu Material theme/Language Packs/language_pt.ini index b349b40bca..78e6fb520f 100644 --- a/Copy to SD Card root directory to update - Unified Menu Material theme/Language Packs/language_pt.ini +++ b/Copy to SD Card root directory to update - Unified Menu Material theme/Language Packs/language_pt.ini @@ -230,6 +230,7 @@ label_60_seconds:1 Min. label_120_seconds:2 Min. label_300_seconds:5 Min. label_custom_seconds:Custom +label_sequential_mode:Sequential mode label_st7920_fullscreen:Marlin mode in fullscreen label_plr_en:Power loss recovery label_setting_save:Save settings diff --git a/Copy to SD Card root directory to update - Unified Menu Material theme/Language Packs/language_ru.ini b/Copy to SD Card root directory to update - Unified Menu Material theme/Language Packs/language_ru.ini index 3c844a2c0e..4567e0b46e 100644 --- a/Copy to SD Card root directory to update - Unified Menu Material theme/Language Packs/language_ru.ini +++ b/Copy to SD Card root directory to update - Unified Menu Material theme/Language Packs/language_ru.ini @@ -230,6 +230,7 @@ label_60_seconds:1 мин. label_120_seconds:2 мин. label_300_seconds:5 мин. label_custom_seconds:Своё +label_sequential_mode:Sequential mode label_st7920_fullscreen:Marlin на весь экран label_plr_en:Работа после потери питания label_setting_save:Сохранить настройки diff --git a/Copy to SD Card root directory to update - Unified Menu Material theme/Language Packs/language_sk.ini b/Copy to SD Card root directory to update - Unified Menu Material theme/Language Packs/language_sk.ini index 6b407a7d04..0b5494c604 100644 --- a/Copy to SD Card root directory to update - Unified Menu Material theme/Language Packs/language_sk.ini +++ b/Copy to SD Card root directory to update - Unified Menu Material theme/Language Packs/language_sk.ini @@ -230,6 +230,7 @@ label_60_seconds:1 Min. label_120_seconds:2 Min. label_300_seconds:5 Min. label_custom_seconds:Custom +label_sequential_mode:Sequential mode label_st7920_fullscreen:Marlin mode in fullscreen label_plr_en:Power loss recovery label_setting_save:Save settings diff --git a/Copy to SD Card root directory to update - Unified Menu Material theme/Language Packs/language_sl.ini b/Copy to SD Card root directory to update - Unified Menu Material theme/Language Packs/language_sl.ini index 4f38434286..b4c5eb39b9 100644 --- a/Copy to SD Card root directory to update - Unified Menu Material theme/Language Packs/language_sl.ini +++ b/Copy to SD Card root directory to update - Unified Menu Material theme/Language Packs/language_sl.ini @@ -230,6 +230,7 @@ label_60_seconds:1 min. label_120_seconds:2 min. label_300_seconds:5 min. label_custom_seconds:Po meri +label_sequential_mode:Sequential mode label_st7920_fullscreen:Marlin čez cel zaslon label_plr_en:Power loss recovery label_setting_save:Save settings diff --git a/Copy to SD Card root directory to update - Unified Menu Material theme/Language Packs/language_tc.ini b/Copy to SD Card root directory to update - Unified Menu Material theme/Language Packs/language_tc.ini index dde9ff9a70..7c64ed4382 100644 --- a/Copy to SD Card root directory to update - Unified Menu Material theme/Language Packs/language_tc.ini +++ b/Copy to SD Card root directory to update - Unified Menu Material theme/Language Packs/language_tc.ini @@ -230,6 +230,7 @@ label_60_seconds:1分鐘 label_120_seconds:2分鐘 label_300_seconds:5分鐘 label_custom_seconds:自訂 +label_sequential_mode:Sequential mode label_st7920_fullscreen:全螢幕Marlin模式 label_plr_en:断电续打 label_setting_save:保存设置 diff --git a/Copy to SD Card root directory to update - Unified Menu Material theme/Language Packs/language_tr.ini b/Copy to SD Card root directory to update - Unified Menu Material theme/Language Packs/language_tr.ini index 953c4880dd..74582338cf 100644 --- a/Copy to SD Card root directory to update - Unified Menu Material theme/Language Packs/language_tr.ini +++ b/Copy to SD Card root directory to update - Unified Menu Material theme/Language Packs/language_tr.ini @@ -230,6 +230,7 @@ label_60_seconds:1 Dak. label_120_seconds:2 Dak. label_300_seconds:5 Dak. label_custom_seconds:Kişisel +label_sequential_mode:Sequential mode label_st7920_fullscreen:Marlin mode in fullscreen label_plr_en:Power loss recovery label_setting_save:Save settings diff --git a/Copy to SD Card root directory to update - Unified Menu Material theme/config.ini b/Copy to SD Card root directory to update - Unified Menu Material theme/config.ini index ec47efd46d..de58879093 100644 --- a/Copy to SD Card root directory to update - Unified Menu Material theme/config.ini +++ b/Copy to SD Card root directory to update - Unified Menu Material theme/config.ini @@ -365,6 +365,11 @@ lcd_idle_brightness:5 # Options [Off: 0, 5Sec: 1, 10Sec: 2, 30sec: 3, 1min: 4, 2min: 5, 5min: 6, 10min: 7] lcd_idle_delay:4 +#### Neopixel sequentialmode +# With this set to true, the neopixel will change color while heating +# like they do in marlin mode. (Only while printing) +# Options: [On: 1, Off: 0] +sequential_mode:1 #-------------------------------------------------------------------- # Custom G-Code Commands (up to 15 custom G-code) diff --git a/Copy to SD Card root directory to update/Language Packs/language_am.ini b/Copy to SD Card root directory to update/Language Packs/language_am.ini index ca25f6dca9..a437d1bee7 100644 --- a/Copy to SD Card root directory to update/Language Packs/language_am.ini +++ b/Copy to SD Card root directory to update/Language Packs/language_am.ini @@ -230,6 +230,7 @@ label_60_seconds:1 Min. label_120_seconds:2 Min. label_300_seconds:5 Min. label_custom_seconds:Custom +label_sequential_mode:Sequential mode label_st7920_fullscreen:Marlin mode in fullscreen label_plr_en:Power loss recovery label_setting_save:Save settings diff --git a/Copy to SD Card root directory to update/Language Packs/language_ca.ini b/Copy to SD Card root directory to update/Language Packs/language_ca.ini index 6bd5926515..e4cd19932b 100644 --- a/Copy to SD Card root directory to update/Language Packs/language_ca.ini +++ b/Copy to SD Card root directory to update/Language Packs/language_ca.ini @@ -230,6 +230,7 @@ label_60_seconds:1 Min. label_120_seconds:2 Min. label_300_seconds:5 Min. label_custom_seconds:Personalitzat +label_sequential_mode:Sequential mode label_st7920_fullscreen:Mode Marlin a pantalla completa label_plr_en:Recuperació de pèrdua d’energia label_setting_save:Save settings diff --git a/Copy to SD Card root directory to update/Language Packs/language_cn.ini b/Copy to SD Card root directory to update/Language Packs/language_cn.ini index 48e8a1bf37..fecfa1ffe3 100644 --- a/Copy to SD Card root directory to update/Language Packs/language_cn.ini +++ b/Copy to SD Card root directory to update/Language Packs/language_cn.ini @@ -230,6 +230,7 @@ label_60_seconds:1分钟 label_120_seconds:2分钟 label_300_seconds:5分钟 label_custom_seconds:自定义 +label_sequential_mode:Sequential mode label_st7920_fullscreen:全屏显示Marlin模式 label_plr_en:断电续打 label_setting_save:保存设置 diff --git a/Copy to SD Card root directory to update/Language Packs/language_cz.ini b/Copy to SD Card root directory to update/Language Packs/language_cz.ini index c5fc956e54..96d4905957 100644 --- a/Copy to SD Card root directory to update/Language Packs/language_cz.ini +++ b/Copy to SD Card root directory to update/Language Packs/language_cz.ini @@ -230,6 +230,7 @@ label_60_seconds:1 min. label_120_seconds:2 min. label_300_seconds:5 min. label_custom_seconds:Vlastní +label_sequential_mode:Sequential mode label_st7920_fullscreen:Celoobrazovkový režim Marlin label_plr_en:Obnova po ztrátě napájení label_setting_save:Uložení nastavení diff --git a/Copy to SD Card root directory to update/Language Packs/language_de.ini b/Copy to SD Card root directory to update/Language Packs/language_de.ini index e7ba8cfe1f..fca10dfba5 100644 --- a/Copy to SD Card root directory to update/Language Packs/language_de.ini +++ b/Copy to SD Card root directory to update/Language Packs/language_de.ini @@ -230,6 +230,7 @@ label_60_seconds:1 Min. label_120_seconds:2 Min. label_300_seconds:5 Min. label_custom_seconds:Benutz. +label_sequential_mode:Sequential mode label_st7920_fullscreen:Marlin mode in fullscreen label_plr_en:Power loss recovery label_setting_save:Save settings diff --git a/Copy to SD Card root directory to update/Language Packs/language_du.ini b/Copy to SD Card root directory to update/Language Packs/language_du.ini index cd362099e2..d600273658 100644 --- a/Copy to SD Card root directory to update/Language Packs/language_du.ini +++ b/Copy to SD Card root directory to update/Language Packs/language_du.ini @@ -230,6 +230,7 @@ label_60_seconds:1 Min. label_120_seconds:2 Min. label_300_seconds:5 Min. label_custom_seconds:Custom +label_sequential_mode:Sequential mode label_st7920_fullscreen:Marlin mode in fullscreen label_plr_en:Power loss recovery label_setting_save:Save settings diff --git a/Copy to SD Card root directory to update/Language Packs/language_en.ini b/Copy to SD Card root directory to update/Language Packs/language_en.ini index d85867a008..16b740dda5 100644 --- a/Copy to SD Card root directory to update/Language Packs/language_en.ini +++ b/Copy to SD Card root directory to update/Language Packs/language_en.ini @@ -230,6 +230,7 @@ label_60_seconds:1 Min. label_120_seconds:2 Min. label_300_seconds:5 Min. label_custom_seconds:Custom +label_sequential_mode:Sequential mode label_st7920_fullscreen:Marlin mode in fullscreen label_plr_en:Power loss recovery label_setting_save:Save settings diff --git a/Copy to SD Card root directory to update/Language Packs/language_es.ini b/Copy to SD Card root directory to update/Language Packs/language_es.ini index 4762207530..0957800120 100644 --- a/Copy to SD Card root directory to update/Language Packs/language_es.ini +++ b/Copy to SD Card root directory to update/Language Packs/language_es.ini @@ -230,6 +230,7 @@ label_60_seconds:1 Min. label_120_seconds:2 Min. label_300_seconds:5 Min. label_custom_seconds:Custom +label_sequential_mode:Sequential mode label_st7920_fullscreen:Marlin mode in fullscreen label_plr_en:Power loss recovery label_setting_save:Save settings diff --git a/Copy to SD Card root directory to update/Language Packs/language_fr.ini b/Copy to SD Card root directory to update/Language Packs/language_fr.ini index 5d2bb6519a..017aac05db 100644 --- a/Copy to SD Card root directory to update/Language Packs/language_fr.ini +++ b/Copy to SD Card root directory to update/Language Packs/language_fr.ini @@ -230,6 +230,7 @@ label_60_seconds:1 Min. label_120_seconds:2 Min. label_300_seconds:5 Min. label_custom_seconds:Custom +label_sequential_mode:Sequential mode label_st7920_fullscreen:Mode Marlin plein écran label_plr_en:Reprise après coupure label_setting_save:Sauvegarder les paramètres diff --git a/Copy to SD Card root directory to update/Language Packs/language_gr.ini b/Copy to SD Card root directory to update/Language Packs/language_gr.ini index 622747835a..695616a1a7 100644 --- a/Copy to SD Card root directory to update/Language Packs/language_gr.ini +++ b/Copy to SD Card root directory to update/Language Packs/language_gr.ini @@ -230,6 +230,7 @@ label_60_seconds:1 Λεπτό label_120_seconds:2 Λεπτά label_300_seconds:5 Λεπτά label_custom_seconds:Τροποποιημένες ρυθμίσεις +label_sequential_mode:Sequential mode label_st7920_fullscreen:Λειτουργία Marlin σε πλήρη οθόνη label_plr_en:Power loss recovery label_setting_save:Save settings diff --git a/Copy to SD Card root directory to update/Language Packs/language_hu.ini b/Copy to SD Card root directory to update/Language Packs/language_hu.ini index 93ea110bcf..1ae55a6865 100644 --- a/Copy to SD Card root directory to update/Language Packs/language_hu.ini +++ b/Copy to SD Card root directory to update/Language Packs/language_hu.ini @@ -230,6 +230,7 @@ label_60_seconds:1 Perc. label_120_seconds:2 Perc. label_300_seconds:5 Perc. label_custom_seconds:Egyedi +label_sequential_mode:Sequential mode label_st7920_fullscreen:Nagyképernyős Marlin mód label_plr_en:Áramkiesés helyreálítása label_setting_save:Beállítások mentése diff --git a/Copy to SD Card root directory to update/Language Packs/language_it.ini b/Copy to SD Card root directory to update/Language Packs/language_it.ini index 8eb4f2b420..1da21ec808 100644 --- a/Copy to SD Card root directory to update/Language Packs/language_it.ini +++ b/Copy to SD Card root directory to update/Language Packs/language_it.ini @@ -230,6 +230,7 @@ label_60_seconds:1 Min. label_120_seconds:2 Min. label_300_seconds:5 Min. label_custom_seconds:Custom +label_sequential_mode:Sequential mode label_st7920_fullscreen:Marlin mode schermo pieno label_plr_en:Power loss recovery label_setting_save:Salva le impostazioni diff --git a/Copy to SD Card root directory to update/Language Packs/language_jp.ini b/Copy to SD Card root directory to update/Language Packs/language_jp.ini index 694c47c5ed..4b6dc711c0 100644 --- a/Copy to SD Card root directory to update/Language Packs/language_jp.ini +++ b/Copy to SD Card root directory to update/Language Packs/language_jp.ini @@ -230,6 +230,7 @@ label_60_seconds:1 Min. label_120_seconds:2 Min. label_300_seconds:5 Min. label_custom_seconds:カスタム +label_sequential_mode:Sequential mode label_st7920_fullscreen:フルスクリーンでマーリンモード label_plr_en:Power loss recovery label_setting_save:Save settings diff --git a/Copy to SD Card root directory to update/Language Packs/language_pl.ini b/Copy to SD Card root directory to update/Language Packs/language_pl.ini index 06e0ce8c2a..d231f4230c 100644 --- a/Copy to SD Card root directory to update/Language Packs/language_pl.ini +++ b/Copy to SD Card root directory to update/Language Packs/language_pl.ini @@ -231,6 +231,7 @@ label_60_seconds:1 Min. label_120_seconds:2 Min. label_300_seconds:5 Min. label_custom_seconds:Custom +label_sequential_mode:Sequential mode label_st7920_fullscreen:Marlin mode in fullscreen label_plr_en:Power loss recovery label_setting_save:Save settings diff --git a/Copy to SD Card root directory to update/Language Packs/language_pt.ini b/Copy to SD Card root directory to update/Language Packs/language_pt.ini index b349b40bca..78e6fb520f 100644 --- a/Copy to SD Card root directory to update/Language Packs/language_pt.ini +++ b/Copy to SD Card root directory to update/Language Packs/language_pt.ini @@ -230,6 +230,7 @@ label_60_seconds:1 Min. label_120_seconds:2 Min. label_300_seconds:5 Min. label_custom_seconds:Custom +label_sequential_mode:Sequential mode label_st7920_fullscreen:Marlin mode in fullscreen label_plr_en:Power loss recovery label_setting_save:Save settings diff --git a/Copy to SD Card root directory to update/Language Packs/language_ru.ini b/Copy to SD Card root directory to update/Language Packs/language_ru.ini index 3c844a2c0e..4567e0b46e 100644 --- a/Copy to SD Card root directory to update/Language Packs/language_ru.ini +++ b/Copy to SD Card root directory to update/Language Packs/language_ru.ini @@ -230,6 +230,7 @@ label_60_seconds:1 мин. label_120_seconds:2 мин. label_300_seconds:5 мин. label_custom_seconds:Своё +label_sequential_mode:Sequential mode label_st7920_fullscreen:Marlin на весь экран label_plr_en:Работа после потери питания label_setting_save:Сохранить настройки diff --git a/Copy to SD Card root directory to update/Language Packs/language_sk.ini b/Copy to SD Card root directory to update/Language Packs/language_sk.ini index 6b407a7d04..0b5494c604 100644 --- a/Copy to SD Card root directory to update/Language Packs/language_sk.ini +++ b/Copy to SD Card root directory to update/Language Packs/language_sk.ini @@ -230,6 +230,7 @@ label_60_seconds:1 Min. label_120_seconds:2 Min. label_300_seconds:5 Min. label_custom_seconds:Custom +label_sequential_mode:Sequential mode label_st7920_fullscreen:Marlin mode in fullscreen label_plr_en:Power loss recovery label_setting_save:Save settings diff --git a/Copy to SD Card root directory to update/Language Packs/language_sl.ini b/Copy to SD Card root directory to update/Language Packs/language_sl.ini index 4f38434286..b4c5eb39b9 100644 --- a/Copy to SD Card root directory to update/Language Packs/language_sl.ini +++ b/Copy to SD Card root directory to update/Language Packs/language_sl.ini @@ -230,6 +230,7 @@ label_60_seconds:1 min. label_120_seconds:2 min. label_300_seconds:5 min. label_custom_seconds:Po meri +label_sequential_mode:Sequential mode label_st7920_fullscreen:Marlin čez cel zaslon label_plr_en:Power loss recovery label_setting_save:Save settings diff --git a/Copy to SD Card root directory to update/Language Packs/language_tc.ini b/Copy to SD Card root directory to update/Language Packs/language_tc.ini index dde9ff9a70..7c64ed4382 100644 --- a/Copy to SD Card root directory to update/Language Packs/language_tc.ini +++ b/Copy to SD Card root directory to update/Language Packs/language_tc.ini @@ -230,6 +230,7 @@ label_60_seconds:1分鐘 label_120_seconds:2分鐘 label_300_seconds:5分鐘 label_custom_seconds:自訂 +label_sequential_mode:Sequential mode label_st7920_fullscreen:全螢幕Marlin模式 label_plr_en:断电续打 label_setting_save:保存设置 diff --git a/Copy to SD Card root directory to update/Language Packs/language_tr.ini b/Copy to SD Card root directory to update/Language Packs/language_tr.ini index 953c4880dd..74582338cf 100644 --- a/Copy to SD Card root directory to update/Language Packs/language_tr.ini +++ b/Copy to SD Card root directory to update/Language Packs/language_tr.ini @@ -230,6 +230,7 @@ label_60_seconds:1 Dak. label_120_seconds:2 Dak. label_300_seconds:5 Dak. label_custom_seconds:Kişisel +label_sequential_mode:Sequential mode label_st7920_fullscreen:Marlin mode in fullscreen label_plr_en:Power loss recovery label_setting_save:Save settings diff --git a/Copy to SD Card root directory to update/config.ini b/Copy to SD Card root directory to update/config.ini index 9f4cf8be8b..a8fb886962 100644 --- a/Copy to SD Card root directory to update/config.ini +++ b/Copy to SD Card root directory to update/config.ini @@ -365,6 +365,12 @@ lcd_idle_brightness:5 # Options [Off: 0, 5Sec: 1, 10Sec: 2, 30sec: 3, 1min: 4, 2min: 5, 5min: 6, 10min: 7] lcd_idle_delay:4 +#### Neopixel sequentialmode +# With this set to true, the neopixel will change color while heating +# like they do in marlin mode. (Only while printing) +# Options: [On: 1, Off: 0] +sequential_mode:1 + #-------------------------------------------------------------------- # Custom G-Code Commands (up to 15 custom G-code) diff --git a/TFT/src/User/API/Language/Language.inc b/TFT/src/User/API/Language/Language.inc index 3443f46474..72dcbe8838 100644 --- a/TFT/src/User/API/Language/Language.inc +++ b/TFT/src/User/API/Language/Language.inc @@ -225,6 +225,7 @@ X_WORD (60_SECONDS) X_WORD (120_SECONDS) X_WORD (300_SECONDS) X_WORD (CUSTOM_SECONDS) +X_WORD (SEQUENTIAL_MODE) X_WORD (ST7920_FULLSCREEN) X_WORD (PLR_EN) X_WORD (SETTING_SAVE) diff --git a/TFT/src/User/API/Language/language_am.h b/TFT/src/User/API/Language/language_am.h index d114eedab5..d23bde69f7 100644 --- a/TFT/src/User/API/Language/language_am.h +++ b/TFT/src/User/API/Language/language_am.h @@ -228,6 +228,7 @@ #define STRING_120_SECONDS "2 Min." #define STRING_300_SECONDS "5 Min." #define STRING_CUSTOM_SECONDS "Custom" + #define STRING_SEQUENTIAL_MODE "Sequential mode" #define STRING_ST7920_FULLSCREEN "Marlin mode in fullscreen" #define STRING_PLR_EN "Power loss recovery" #define STRING_SETTING_SAVE "Save settings" diff --git a/TFT/src/User/API/Language/language_ca.h b/TFT/src/User/API/Language/language_ca.h index bde3b7dc33..3af500c5c3 100644 --- a/TFT/src/User/API/Language/language_ca.h +++ b/TFT/src/User/API/Language/language_ca.h @@ -228,6 +228,7 @@ #define STRING_120_SECONDS "2 Min." #define STRING_300_SECONDS "5 Min." #define STRING_CUSTOM_SECONDS "Personalitzat" + #define STRING_SEQUENTIAL_MODE "Sequential mode" #define STRING_ST7920_FULLSCREEN "Mode Marlin a pantalla completa" #define STRING_PLR_EN "Recuperació de pèrdua d’energia" #define STRING_SETTING_SAVE "Save settings" diff --git a/TFT/src/User/API/Language/language_cn.h b/TFT/src/User/API/Language/language_cn.h index c346f60c53..6b218318e8 100644 --- a/TFT/src/User/API/Language/language_cn.h +++ b/TFT/src/User/API/Language/language_cn.h @@ -228,6 +228,7 @@ #define STRING_120_SECONDS "2分钟" #define STRING_300_SECONDS "5分钟" #define STRING_CUSTOM_SECONDS "自定义" + #define STRING_SEQUENTIAL_MODE "Sequential mode" #define STRING_ST7920_FULLSCREEN "全屏显示Marlin模式" #define STRING_PLR_EN "断电续打" #define STRING_SETTING_SAVE "保存设置" diff --git a/TFT/src/User/API/Language/language_cz.h b/TFT/src/User/API/Language/language_cz.h index 96224f8f53..a093b4959b 100644 --- a/TFT/src/User/API/Language/language_cz.h +++ b/TFT/src/User/API/Language/language_cz.h @@ -228,6 +228,7 @@ #define STRING_120_SECONDS "2 min." #define STRING_300_SECONDS "5 min." #define STRING_CUSTOM_SECONDS "Vlastní" + #define STRING_SEQUENTIAL_MODE "Sequential mode" #define STRING_ST7920_FULLSCREEN "Celoobrazovkový režim Marlin" #define STRING_PLR_EN "Obnova po ztrátě napájení" #define STRING_SETTING_SAVE "Uložení nastavení" diff --git a/TFT/src/User/API/Language/language_de.h b/TFT/src/User/API/Language/language_de.h index c70f74fe19..7314600a46 100644 --- a/TFT/src/User/API/Language/language_de.h +++ b/TFT/src/User/API/Language/language_de.h @@ -228,6 +228,7 @@ #define STRING_120_SECONDS "2 Min." #define STRING_300_SECONDS "5 Min." #define STRING_CUSTOM_SECONDS "Benutz." + #define STRING_SEQUENTIAL_MODE "Sequential mode" #define STRING_ST7920_FULLSCREEN "Marlin mode in fullscreen" #define STRING_PLR_EN "Power loss recovery" #define STRING_SETTING_SAVE "Save settings" diff --git a/TFT/src/User/API/Language/language_du.h b/TFT/src/User/API/Language/language_du.h index 45a88a0c5b..10d5d8c433 100644 --- a/TFT/src/User/API/Language/language_du.h +++ b/TFT/src/User/API/Language/language_du.h @@ -228,6 +228,7 @@ #define STRING_120_SECONDS "2 Min." #define STRING_300_SECONDS "5 Min." #define STRING_CUSTOM_SECONDS "Custom" + #define STRING_SEQUENTIAL_MODE "Sequential mode" #define STRING_ST7920_FULLSCREEN "Marlin mode in fullscreen" #define STRING_PLR_EN "Power loss recovery" #define STRING_SETTING_SAVE "Save settings" diff --git a/TFT/src/User/API/Language/language_en.h b/TFT/src/User/API/Language/language_en.h index 1fd3ba960e..a57144a859 100644 --- a/TFT/src/User/API/Language/language_en.h +++ b/TFT/src/User/API/Language/language_en.h @@ -228,6 +228,7 @@ #define STRING_120_SECONDS "2 Min." #define STRING_300_SECONDS "5 Min." #define STRING_CUSTOM_SECONDS "Custom" + #define STRING_SEQUENTIAL_MODE "Sequential mode" #define STRING_ST7920_FULLSCREEN "Marlin mode in fullscreen" #define STRING_PLR_EN "Power loss recovery" #define STRING_SETTING_SAVE "Save settings" diff --git a/TFT/src/User/API/Language/language_es.h b/TFT/src/User/API/Language/language_es.h index 7b4e4cebcd..d5857f7ae1 100644 --- a/TFT/src/User/API/Language/language_es.h +++ b/TFT/src/User/API/Language/language_es.h @@ -228,6 +228,7 @@ #define STRING_120_SECONDS "2 Min." #define STRING_300_SECONDS "5 Min." #define STRING_CUSTOM_SECONDS "Custom" + #define STRING_SEQUENTIAL_MODE "Sequential mode" #define STRING_ST7920_FULLSCREEN "Marlin mode in fullscreen" #define STRING_PLR_EN "Power loss recovery" #define STRING_SETTING_SAVE "Save settings" diff --git a/TFT/src/User/API/Language/language_fr.h b/TFT/src/User/API/Language/language_fr.h index a5d52a0cf7..bfef4efc9e 100644 --- a/TFT/src/User/API/Language/language_fr.h +++ b/TFT/src/User/API/Language/language_fr.h @@ -228,6 +228,7 @@ #define STRING_120_SECONDS "2 Min." #define STRING_300_SECONDS "5 Min." #define STRING_CUSTOM_SECONDS "Custom" + #define STRING_SEQUENTIAL_MODE "Sequential mode" #define STRING_ST7920_FULLSCREEN "Mode Marlin plein écran" #define STRING_PLR_EN "Reprise après coupure" #define STRING_SETTING_SAVE "Sauvegarder les paramètres" diff --git a/TFT/src/User/API/Language/language_gr.h b/TFT/src/User/API/Language/language_gr.h index fe2428aa28..16fe6c9da4 100644 --- a/TFT/src/User/API/Language/language_gr.h +++ b/TFT/src/User/API/Language/language_gr.h @@ -228,6 +228,7 @@ #define STRING_120_SECONDS "2 Λεπτά" #define STRING_300_SECONDS "5 Λεπτά" #define STRING_CUSTOM_SECONDS "Τροποποιημένες ρυθμίσεις" + #define STRING_SEQUENTIAL_MODE "Sequential mode" #define STRING_ST7920_FULLSCREEN "Λειτουργία Marlin σε πλήρη οθόνη" #define STRING_PLR_EN "Power loss recovery" #define STRING_SETTING_SAVE "Save settings" diff --git a/TFT/src/User/API/Language/language_hu.h b/TFT/src/User/API/Language/language_hu.h index dec1ecccc0..d11e220881 100644 --- a/TFT/src/User/API/Language/language_hu.h +++ b/TFT/src/User/API/Language/language_hu.h @@ -228,6 +228,7 @@ #define STRING_120_SECONDS "2 Perc." #define STRING_300_SECONDS "5 Perc." #define STRING_CUSTOM_SECONDS "Egyedi" + #define STRING_SEQUENTIAL_MODE "Sequential mode" #define STRING_ST7920_FULLSCREEN "Nagyképernyős Marlin mód" #define STRING_PLR_EN "Áramkiesés helyreálítása" #define STRING_SETTING_SAVE "Beállítások mentése" diff --git a/TFT/src/User/API/Language/language_it.h b/TFT/src/User/API/Language/language_it.h index d461a1b327..d4225921a0 100644 --- a/TFT/src/User/API/Language/language_it.h +++ b/TFT/src/User/API/Language/language_it.h @@ -228,6 +228,7 @@ #define STRING_120_SECONDS "2 Min." #define STRING_300_SECONDS "5 Min." #define STRING_CUSTOM_SECONDS "Custom" + #define STRING_SEQUENTIAL_MODE "Sequential mode" #define STRING_ST7920_FULLSCREEN "Marlin mode schermo pieno" #define STRING_PLR_EN "Power loss recovery" #define STRING_SETTING_SAVE "Salva le impostazioni" diff --git a/TFT/src/User/API/Language/language_jp.h b/TFT/src/User/API/Language/language_jp.h index f3cbc1dd76..79bde07073 100644 --- a/TFT/src/User/API/Language/language_jp.h +++ b/TFT/src/User/API/Language/language_jp.h @@ -228,6 +228,7 @@ #define STRING_120_SECONDS "2 Min." #define STRING_300_SECONDS "5 Min." #define STRING_CUSTOM_SECONDS "カスタム" + #define STRING_SEQUENTIAL_MODE "Sequential mode" #define STRING_ST7920_FULLSCREEN "フルスクリーンでマーリンモード" #define STRING_PLR_EN "Power loss recovery" #define STRING_SETTING_SAVE "Save settings" diff --git a/TFT/src/User/API/Language/language_keywords.h b/TFT/src/User/API/Language/language_keywords.h index 7178e7d51e..2b543a04c4 100644 --- a/TFT/src/User/API/Language/language_keywords.h +++ b/TFT/src/User/API/Language/language_keywords.h @@ -235,6 +235,7 @@ extern "C" { #define LANG_KEY_120_SECONDS "label_120_seconds:" #define LANG_KEY_300_SECONDS "label_300_seconds:" #define LANG_KEY_CUSTOM_SECONDS "label_custom_seconds:" +#define LANG_KEY_SEQUENTIAL_MODE "label_sequential_mode:" #define LANG_KEY_ST7920_FULLSCREEN "label_st7920_fullscreen:" #define LANG_KEY_PLR_EN "label_plr_en:" #define LANG_KEY_SETTING_SAVE "label_setting_save:" diff --git a/TFT/src/User/API/Language/language_pl.h b/TFT/src/User/API/Language/language_pl.h index b17e4b04f6..668aaac7ec 100644 --- a/TFT/src/User/API/Language/language_pl.h +++ b/TFT/src/User/API/Language/language_pl.h @@ -228,6 +228,7 @@ #define STRING_120_SECONDS "2 Min." #define STRING_300_SECONDS "5 Min." #define STRING_CUSTOM_SECONDS "Custom" + #define STRING_SEQUENTIAL_MODE "Sequential mode" #define STRING_ST7920_FULLSCREEN "Marlin mode in fullscreen" #define STRING_PLR_EN "Power loss recovery" #define STRING_SETTING_SAVE "Save settings" diff --git a/TFT/src/User/API/Language/language_pt.h b/TFT/src/User/API/Language/language_pt.h index 3cd2800175..db652e9f29 100644 --- a/TFT/src/User/API/Language/language_pt.h +++ b/TFT/src/User/API/Language/language_pt.h @@ -228,6 +228,7 @@ #define STRING_120_SECONDS "2 Min." #define STRING_300_SECONDS "5 Min." #define STRING_CUSTOM_SECONDS "Custom" + #define STRING_SEQUENTIAL_MODE "Sequential mode" #define STRING_ST7920_FULLSCREEN "Marlin mode in fullscreen" #define STRING_PLR_EN "Power loss recovery" #define STRING_SETTING_SAVE "Save settings" diff --git a/TFT/src/User/API/Language/language_ru.h b/TFT/src/User/API/Language/language_ru.h index 667ec430d7..b742ad7708 100644 --- a/TFT/src/User/API/Language/language_ru.h +++ b/TFT/src/User/API/Language/language_ru.h @@ -228,6 +228,7 @@ #define STRING_120_SECONDS "2 мин." #define STRING_300_SECONDS "5 мин." #define STRING_CUSTOM_SECONDS "Своё" + #define STRING_SEQUENTIAL_MODE "Sequential mode" #define STRING_ST7920_FULLSCREEN "Marlin на весь экран" #define STRING_PLR_EN "Работа после потери питания" #define STRING_SETTING_SAVE "Сохранить настройки" diff --git a/TFT/src/User/API/Language/language_sk.h b/TFT/src/User/API/Language/language_sk.h index dda61b3b90..abf522ffe5 100644 --- a/TFT/src/User/API/Language/language_sk.h +++ b/TFT/src/User/API/Language/language_sk.h @@ -228,6 +228,7 @@ #define STRING_120_SECONDS "2 Min." #define STRING_300_SECONDS "5 Min." #define STRING_CUSTOM_SECONDS "Custom" + #define STRING_SEQUENTIAL_MODE "Sequential mode" #define STRING_ST7920_FULLSCREEN "Marlin mode in fullscreen" #define STRING_PLR_EN "Power loss recovery" #define STRING_SETTING_SAVE "Save settings" diff --git a/TFT/src/User/API/Language/language_sl.h b/TFT/src/User/API/Language/language_sl.h index 5a9d651c5b..190aaf8412 100644 --- a/TFT/src/User/API/Language/language_sl.h +++ b/TFT/src/User/API/Language/language_sl.h @@ -228,6 +228,7 @@ #define STRING_120_SECONDS "2 min." #define STRING_300_SECONDS "5 min." #define STRING_CUSTOM_SECONDS "Po meri" + #define STRING_SEQUENTIAL_MODE "Sequential mode" #define STRING_ST7920_FULLSCREEN "Marlin čez cel zaslon" #define STRING_PLR_EN "Power loss recovery" #define STRING_SETTING_SAVE "Save settings" diff --git a/TFT/src/User/API/Language/language_tc.h b/TFT/src/User/API/Language/language_tc.h index efc12587b6..3cb5b84f42 100644 --- a/TFT/src/User/API/Language/language_tc.h +++ b/TFT/src/User/API/Language/language_tc.h @@ -228,6 +228,7 @@ #define STRING_120_SECONDS "2分鐘" #define STRING_300_SECONDS "5分鐘" #define STRING_CUSTOM_SECONDS "自訂" + #define STRING_SEQUENTIAL_MODE "Sequential mode" #define STRING_ST7920_FULLSCREEN "全螢幕Marlin模式" #define STRING_PLR_EN "断电续打" #define STRING_SETTING_SAVE "保存设置" diff --git a/TFT/src/User/API/Language/language_tr.h b/TFT/src/User/API/Language/language_tr.h index dde10e6331..9c14223cdd 100644 --- a/TFT/src/User/API/Language/language_tr.h +++ b/TFT/src/User/API/Language/language_tr.h @@ -228,6 +228,7 @@ #define STRING_120_SECONDS "2 Dak." #define STRING_300_SECONDS "5 Dak." #define STRING_CUSTOM_SECONDS "Kişisel" + #define STRING_SEQUENTIAL_MODE "Sequential mode" #define STRING_ST7920_FULLSCREEN "Marlin mode in fullscreen" #define STRING_PLR_EN "Power loss recovery" #define STRING_SETTING_SAVE "Save settings" diff --git a/TFT/src/User/API/Settings.c b/TFT/src/User/API/Settings.c index a42ac43f49..c7c8f45f46 100644 --- a/TFT/src/User/API/Settings.c +++ b/TFT/src/User/API/Settings.c @@ -101,6 +101,7 @@ void infoSettingsReset(void) infoSettings.lcd_brightness = DEFAULT_LCD_BRIGHTNESS; infoSettings.lcd_idle_brightness = DEFAULT_LCD_IDLE_BRIGHTNESS; infoSettings.lcd_idle_timer = DEFAULT_LCD_IDLE_TIMER; + infoSettings.sequential_mode = DISABLED; // Start, End & Cancel G-codes infoSettings.send_start_gcode = DISABLED; diff --git a/TFT/src/User/API/Settings.h b/TFT/src/User/API/Settings.h index 0e6aa575a5..cff27e94b4 100644 --- a/TFT/src/User/API/Settings.h +++ b/TFT/src/User/API/Settings.h @@ -164,11 +164,13 @@ typedef struct uint8_t lcd_brightness; uint8_t lcd_idle_brightness; uint8_t lcd_idle_timer; + uint8_t sequential_mode; // Start, End & Cancel G-codes uint8_t send_start_gcode; uint8_t send_end_gcode; uint8_t send_cancel_gcode; + }SETTINGS; typedef struct diff --git a/TFT/src/User/API/config.c b/TFT/src/User/API/config.c index d7589a0186..8de3880f14 100644 --- a/TFT/src/User/API/config.c +++ b/TFT/src/User/API/config.c @@ -1072,6 +1072,11 @@ void parseConfigKey(u16 index) infoSettings.lcd_idle_timer = config_int(); break; #endif + case C_INDEX_SEQUENTIAL_MODE: + if (inLimit(config_int(), 0, 1)) + infoSettings.sequential_mode = config_int(); + break; + //---------------------------------------------------------CustomG-Code Commands upto 15 custom G-code case C_INDEX_CUSTOM_LABEL_1: case C_INDEX_CUSTOM_LABEL_2: diff --git a/TFT/src/User/API/config.h b/TFT/src/User/API/config.h index 0699cab379..ada0414d82 100644 --- a/TFT/src/User/API/config.h +++ b/TFT/src/User/API/config.h @@ -107,6 +107,8 @@ extern "C" { #define CONFIG_BRIGHTNESS "lcd_brightness:" #define CONFIG_BRIGHTNESS_IDLE "lcd_idle_brightness:" #define CONFIG_BRIGHTNESS_IDLE_DELAY "lcd_idle_delay:" +#define CONFIG_SEQUENTIAL_MODE "sequential_mode:" + //-----------------------------Custom G-Code Commands (up to 15 custom G-code) #define CONFIG_CUSTOM_LABEL_1 "custom_label_1:" #define CONFIG_CUSTOM_LABEL_2 "custom_label_2:" diff --git a/TFT/src/User/API/config.inc b/TFT/src/User/API/config.inc index 70daa8254a..1ead023ed6 100644 --- a/TFT/src/User/API/config.inc +++ b/TFT/src/User/API/config.inc @@ -96,6 +96,7 @@ X_CONFIG(KNOB_LED_IDLE) X_CONFIG(BRIGHTNESS) X_CONFIG(BRIGHTNESS_IDLE) X_CONFIG(BRIGHTNESS_IDLE_DELAY) +X_CONFIG(SEQUENTIAL_MODE) //-----------------------------CustomG-Code Commands upto 15 custom G-code X_CONFIG(CUSTOM_LABEL_1) X_CONFIG(CUSTOM_LABEL_2) diff --git a/TFT/src/User/API/flashStore.c b/TFT/src/User/API/flashStore.c index 92f87936c4..75d8af3935 100644 --- a/TFT/src/User/API/flashStore.c +++ b/TFT/src/User/API/flashStore.c @@ -2,7 +2,7 @@ #include "STM32_Flash.h" #define TSC_SIGN 0x20200512 // DO NOT MODIFY -#define PARA_SIGN 0x20201020 // (YYYYMMDD) If a new setting parameter is added, +#define PARA_SIGN 0x20201025 // (YYYYMMDD) If a new setting parameter is added, // modify here and initialize the initial value // in the "infoSettingsReset()" function @@ -101,6 +101,8 @@ void readStoredPara(void) infoSettings.lcd_idle_brightness = byteToWord(data + (index += 4), 4); infoSettings.lcd_idle_timer = byteToWord(data + (index += 4), 4); + infoSettings.sequential_mode = byteToWord(data + (index += 4), 4); + infoSettings.serial_alwaysOn = byteToWord(data + (index += 4), 4); infoSettings.marlin_mode_bg_color = byteToWord(data + (index += 4), 4); infoSettings.marlin_mode_font_color = byteToWord(data + (index += 4), 4); diff --git a/TFT/src/User/API/neopixel_sequential.c b/TFT/src/User/API/neopixel_sequential.c deleted file mode 100644 index d240c21c83..0000000000 --- a/TFT/src/User/API/neopixel_sequential.c +++ /dev/null @@ -1,96 +0,0 @@ -#include "neopixel_sequential.h" -#include "includes.h" - -uint8_t prevPixelColor = 0; -uint8_t waitForNext = 0; - -void setNeopixelSequentialColor(void) -{ - if(waitForNext > 0) - { - waitForNext--; - return; - } - - if(!isPrinting()) - { - if(prevPixelColor == 0) - return; - if(printingFinished && prevPixelColor != 0) - { - //Set neopixel and ledknob to green - storeCmd("M150 R0 G255 B0"); - #ifdef LED_COLOR_PIN - WS2812_Send_DAT(led_color[GREEN]); - #endif - } - else if(prevPixelColor != 0 && infoMenu.menu[infoMenu.cur] != menuPrinting) - { - //Restore colors to default value - prevPixelColor = 0; - - //Turn of neopixels and set knob led back to default - storeCmd("M150 R0 G0 B0"); - #ifdef LED_COLOR_PIN - WS2812_Send_DAT(led_color[infoSettings.knob_led_color]); - #endif - } - - return; - } - else - { - uint16_t hotendTargetTemp = heatGetTargetTemp(0); - uint16_t bedTargetTemp = heatGetTargetTemp(BED); - - if(hotendTargetTemp == 0 && bedTargetTemp == 0) - return; //No temperature set "yet". Do nothing. - - long newLedValue = 0; - if(hotendTargetTemp > 0 && bedTargetTemp > 0 && - heatGetCurrentTemp(BED) >= bedTargetTemp - 5) - { - //Only use total temperature when hotend and bed heat up at the same time - uint16_t totalTemperature = hotendTargetTemp + bedTargetTemp; - newLedValue = map(heatGetCurrentTemp(0) + heatGetCurrentTemp(BED), 0, totalTemperature, 0, 255); - } - else - { - if(hotendTargetTemp == 0) - newLedValue = map(heatGetCurrentTemp(BED), 0, bedTargetTemp, 0, 125); - else - newLedValue = map(heatGetCurrentTemp(0), 0, bedTargetTemp, 125, 255); - } - if(newLedValue > prevPixelColor) - { - // Set the neopixel color - storeCmd("M150 R%i G0 B%i", newLedValue, 255 - newLedValue); - - #ifdef LED_COLOR_PIN - uint8_t colorRed = newLedValue; - uint8_t colorBlue = 255 - newLedValue; - uint32_t newPixelColor; - sprintf(newPixelColor, "0x0000%X%X", colorRed, colorBlue); - //Color the Knob led when available - WS2812_Send_DAT(newPixelColor); - #endif - - prevPixelColor = newLedValue; - } - - if(hotendTargetTemp > 0 && bedTargetTemp > 0 && - heatGetCurrentTemp(0) >= hotendTargetTemp -5 && - heatGetCurrentTemp(BED) >= bedTargetTemp - 5) - { - //Bed and hotend are on temperature. Set neopixel to white - storeCmd("M150 R255 G255 B255"); - - #ifdef LED_COLOR_PIN - //Restore knob led to default - WS2812_Send_DAT(led_color[infoSettings.knob_led_color]); - #endif - } - } - //Set the waitForNext to 100 to prevent that this function is - waitForNext = 100; -} diff --git a/TFT/src/User/API/neopixel_sequential.h b/TFT/src/User/API/neopixel_sequential.h deleted file mode 100644 index c692a1c7e1..0000000000 --- a/TFT/src/User/API/neopixel_sequential.h +++ /dev/null @@ -1,14 +0,0 @@ -#ifndef _NEOPIXEL_SEQUENTIAL_H_ -#define _NEOPIXEL_SEQUENTIAL_H_ - -#ifdef __cplusplus -extern "C" { -#endif - -void setNeopixelSequentialColor(void); - -#ifdef __cplusplus -} -#endif - -#endif diff --git a/TFT/src/User/API/sequential_mode.c b/TFT/src/User/API/sequential_mode.c new file mode 100644 index 0000000000..674710cf91 --- /dev/null +++ b/TFT/src/User/API/sequential_mode.c @@ -0,0 +1,83 @@ +#include "sequential_mode.h" + +#include "includes.h" + +uint8_t prevPixelColor = 0; +uint8_t waitForNext = 0; + +void setSequentialModeColor(void) { + if (waitForNext-- > 0) + return; + + + if (!isPrinting()) { + if (prevPixelColor == 0) + return; + if (printingFinished && prevPixelColor != 0) { + //Set neopixel and ledknob to green + storeCmd("M150 R0 U255 B0"); +#ifdef LED_COLOR_PIN + WS2812_Send_DAT(led_color[GREEN]); +#endif + } else if (prevPixelColor != 0 && infoMenu.menu[infoMenu.cur] != menuPrinting) { + //Restore colors to default value + prevPixelColor = 0; + + //Turn of neopixels and set knob led back to default + storeCmd("M150 R0 U0 B0"); +#ifdef LED_COLOR_PIN + WS2812_Send_DAT(led_color[infoSettings.knob_led_color]); +#endif + } + + return; + } else { + uint16_t hotendTargetTemp = heatGetTargetTemp(0); + uint16_t bedTargetTemp = heatGetTargetTemp(BED); + + if (hotendTargetTemp == 0 && bedTargetTemp == 0) + return; //No temperature set "yet". Do nothing. + + long newLedValue = 0; + if (hotendTargetTemp > 0 && bedTargetTemp > 0 && + heatGetCurrentTemp(BED) >= bedTargetTemp - 5) { + //Only use total temperature when hotend and bed heat up at the same time + uint16_t totalTemperature = hotendTargetTemp + bedTargetTemp; + newLedValue = map(heatGetCurrentTemp(0) + heatGetCurrentTemp(BED), 0, totalTemperature, 0, 255); + } else { + if (hotendTargetTemp == 0) + newLedValue = map(heatGetCurrentTemp(BED), 0, bedTargetTemp, 0, 125); + else + newLedValue = map(heatGetCurrentTemp(0), 0, bedTargetTemp, 125, 255); + } + if (newLedValue > prevPixelColor) { + // Set the neopixel color + storeCmd("M150 R%i U0 B%i", newLedValue, 255 - newLedValue); + +#ifdef LED_COLOR_PIN + uint8_t colorRed = newLedValue; + uint8_t colorBlue = 255 - newLedValue; + uint32_t newPixelColor; + sprintf(newPixelColor, "0x0000%X%X", colorRed, colorBlue); + //Color the Knob led when available + WS2812_Send_DAT(newPixelColor); +#endif + + prevPixelColor = newLedValue; + } + + if (hotendTargetTemp > 0 && bedTargetTemp > 0 && + heatGetCurrentTemp(0) >= hotendTargetTemp - 5 && + heatGetCurrentTemp(BED) >= bedTargetTemp - 5) { + //Bed and hotend are on temperature. Set neopixel to white + storeCmd("M150 R255 U255 B255"); + +#ifdef LED_COLOR_PIN + //Restore knob led to default + WS2812_Send_DAT(led_color[infoSettings.knob_led_color]); +#endif + } + } + //Set the waitForNext to 100 to prevent that this function is + waitForNext = 100; +} diff --git a/TFT/src/User/API/sequential_mode.h b/TFT/src/User/API/sequential_mode.h new file mode 100644 index 0000000000..3f20670647 --- /dev/null +++ b/TFT/src/User/API/sequential_mode.h @@ -0,0 +1,16 @@ +#ifndef _sequential_mode_H_ +#define _sequential_mode_H_ + +#ifdef __cplusplus +extern "C" { +#endif + +#include "includes.h" + +void setSequentialModeColor(void); + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/TFT/src/User/Hal/LCD_Init.c b/TFT/src/User/Hal/LCD_Init.c index 9e585a3686..88272d65c2 100644 --- a/TFT/src/User/Hal/LCD_Init.c +++ b/TFT/src/User/Hal/LCD_Init.c @@ -63,6 +63,9 @@ const uint32_t LCD_DIM_IDLE_TIME[ITEM_SECONDS_NUM] = { void loopDimTimer(void) { + + + if (infoSettings.lcd_idle_timer == LCD_DIM_OFF) return; @@ -113,6 +116,12 @@ void _wakeLCD(void) { lcd_dim.dimmed = false; Set_LCD_Brightness(LCD_BRIGHTNESS[infoSettings.lcd_brightness]); + #ifdef LED_COLOR_PIN + if(infoSettings.knob_led_idle) + { + WS2812_Send_DAT(led_color[infoSettings.knob_led_color]); + } + #endif } //Set a new idle_ms time lcd_dim.idle_ms = OS_GetTimeMs(); diff --git a/TFT/src/User/Language Packs/language_am.ini b/TFT/src/User/Language Packs/language_am.ini index ca25f6dca9..a437d1bee7 100644 --- a/TFT/src/User/Language Packs/language_am.ini +++ b/TFT/src/User/Language Packs/language_am.ini @@ -230,6 +230,7 @@ label_60_seconds:1 Min. label_120_seconds:2 Min. label_300_seconds:5 Min. label_custom_seconds:Custom +label_sequential_mode:Sequential mode label_st7920_fullscreen:Marlin mode in fullscreen label_plr_en:Power loss recovery label_setting_save:Save settings diff --git a/TFT/src/User/Language Packs/language_ca.ini b/TFT/src/User/Language Packs/language_ca.ini index 6bd5926515..e4cd19932b 100644 --- a/TFT/src/User/Language Packs/language_ca.ini +++ b/TFT/src/User/Language Packs/language_ca.ini @@ -230,6 +230,7 @@ label_60_seconds:1 Min. label_120_seconds:2 Min. label_300_seconds:5 Min. label_custom_seconds:Personalitzat +label_sequential_mode:Sequential mode label_st7920_fullscreen:Mode Marlin a pantalla completa label_plr_en:Recuperació de pèrdua d’energia label_setting_save:Save settings diff --git a/TFT/src/User/Language Packs/language_cn.ini b/TFT/src/User/Language Packs/language_cn.ini index 48e8a1bf37..fecfa1ffe3 100644 --- a/TFT/src/User/Language Packs/language_cn.ini +++ b/TFT/src/User/Language Packs/language_cn.ini @@ -230,6 +230,7 @@ label_60_seconds:1分钟 label_120_seconds:2分钟 label_300_seconds:5分钟 label_custom_seconds:自定义 +label_sequential_mode:Sequential mode label_st7920_fullscreen:全屏显示Marlin模式 label_plr_en:断电续打 label_setting_save:保存设置 diff --git a/TFT/src/User/Language Packs/language_cz.ini b/TFT/src/User/Language Packs/language_cz.ini index c5fc956e54..96d4905957 100644 --- a/TFT/src/User/Language Packs/language_cz.ini +++ b/TFT/src/User/Language Packs/language_cz.ini @@ -230,6 +230,7 @@ label_60_seconds:1 min. label_120_seconds:2 min. label_300_seconds:5 min. label_custom_seconds:Vlastní +label_sequential_mode:Sequential mode label_st7920_fullscreen:Celoobrazovkový režim Marlin label_plr_en:Obnova po ztrátě napájení label_setting_save:Uložení nastavení diff --git a/TFT/src/User/Language Packs/language_de.ini b/TFT/src/User/Language Packs/language_de.ini index e7ba8cfe1f..fca10dfba5 100644 --- a/TFT/src/User/Language Packs/language_de.ini +++ b/TFT/src/User/Language Packs/language_de.ini @@ -230,6 +230,7 @@ label_60_seconds:1 Min. label_120_seconds:2 Min. label_300_seconds:5 Min. label_custom_seconds:Benutz. +label_sequential_mode:Sequential mode label_st7920_fullscreen:Marlin mode in fullscreen label_plr_en:Power loss recovery label_setting_save:Save settings diff --git a/TFT/src/User/Language Packs/language_du.ini b/TFT/src/User/Language Packs/language_du.ini index cd362099e2..d600273658 100644 --- a/TFT/src/User/Language Packs/language_du.ini +++ b/TFT/src/User/Language Packs/language_du.ini @@ -230,6 +230,7 @@ label_60_seconds:1 Min. label_120_seconds:2 Min. label_300_seconds:5 Min. label_custom_seconds:Custom +label_sequential_mode:Sequential mode label_st7920_fullscreen:Marlin mode in fullscreen label_plr_en:Power loss recovery label_setting_save:Save settings diff --git a/TFT/src/User/Language Packs/language_en.ini b/TFT/src/User/Language Packs/language_en.ini index d85867a008..16b740dda5 100644 --- a/TFT/src/User/Language Packs/language_en.ini +++ b/TFT/src/User/Language Packs/language_en.ini @@ -230,6 +230,7 @@ label_60_seconds:1 Min. label_120_seconds:2 Min. label_300_seconds:5 Min. label_custom_seconds:Custom +label_sequential_mode:Sequential mode label_st7920_fullscreen:Marlin mode in fullscreen label_plr_en:Power loss recovery label_setting_save:Save settings diff --git a/TFT/src/User/Language Packs/language_es.ini b/TFT/src/User/Language Packs/language_es.ini index 4762207530..0957800120 100644 --- a/TFT/src/User/Language Packs/language_es.ini +++ b/TFT/src/User/Language Packs/language_es.ini @@ -230,6 +230,7 @@ label_60_seconds:1 Min. label_120_seconds:2 Min. label_300_seconds:5 Min. label_custom_seconds:Custom +label_sequential_mode:Sequential mode label_st7920_fullscreen:Marlin mode in fullscreen label_plr_en:Power loss recovery label_setting_save:Save settings diff --git a/TFT/src/User/Language Packs/language_fr.ini b/TFT/src/User/Language Packs/language_fr.ini index 5d2bb6519a..017aac05db 100644 --- a/TFT/src/User/Language Packs/language_fr.ini +++ b/TFT/src/User/Language Packs/language_fr.ini @@ -230,6 +230,7 @@ label_60_seconds:1 Min. label_120_seconds:2 Min. label_300_seconds:5 Min. label_custom_seconds:Custom +label_sequential_mode:Sequential mode label_st7920_fullscreen:Mode Marlin plein écran label_plr_en:Reprise après coupure label_setting_save:Sauvegarder les paramètres diff --git a/TFT/src/User/Language Packs/language_gr.ini b/TFT/src/User/Language Packs/language_gr.ini index 622747835a..695616a1a7 100644 --- a/TFT/src/User/Language Packs/language_gr.ini +++ b/TFT/src/User/Language Packs/language_gr.ini @@ -230,6 +230,7 @@ label_60_seconds:1 Λεπτό label_120_seconds:2 Λεπτά label_300_seconds:5 Λεπτά label_custom_seconds:Τροποποιημένες ρυθμίσεις +label_sequential_mode:Sequential mode label_st7920_fullscreen:Λειτουργία Marlin σε πλήρη οθόνη label_plr_en:Power loss recovery label_setting_save:Save settings diff --git a/TFT/src/User/Language Packs/language_hu.ini b/TFT/src/User/Language Packs/language_hu.ini index 93ea110bcf..1ae55a6865 100644 --- a/TFT/src/User/Language Packs/language_hu.ini +++ b/TFT/src/User/Language Packs/language_hu.ini @@ -230,6 +230,7 @@ label_60_seconds:1 Perc. label_120_seconds:2 Perc. label_300_seconds:5 Perc. label_custom_seconds:Egyedi +label_sequential_mode:Sequential mode label_st7920_fullscreen:Nagyképernyős Marlin mód label_plr_en:Áramkiesés helyreálítása label_setting_save:Beállítások mentése diff --git a/TFT/src/User/Language Packs/language_it.ini b/TFT/src/User/Language Packs/language_it.ini index 8eb4f2b420..1da21ec808 100644 --- a/TFT/src/User/Language Packs/language_it.ini +++ b/TFT/src/User/Language Packs/language_it.ini @@ -230,6 +230,7 @@ label_60_seconds:1 Min. label_120_seconds:2 Min. label_300_seconds:5 Min. label_custom_seconds:Custom +label_sequential_mode:Sequential mode label_st7920_fullscreen:Marlin mode schermo pieno label_plr_en:Power loss recovery label_setting_save:Salva le impostazioni diff --git a/TFT/src/User/Language Packs/language_jp.ini b/TFT/src/User/Language Packs/language_jp.ini index 694c47c5ed..4b6dc711c0 100644 --- a/TFT/src/User/Language Packs/language_jp.ini +++ b/TFT/src/User/Language Packs/language_jp.ini @@ -230,6 +230,7 @@ label_60_seconds:1 Min. label_120_seconds:2 Min. label_300_seconds:5 Min. label_custom_seconds:カスタム +label_sequential_mode:Sequential mode label_st7920_fullscreen:フルスクリーンでマーリンモード label_plr_en:Power loss recovery label_setting_save:Save settings diff --git a/TFT/src/User/Language Packs/language_pl.ini b/TFT/src/User/Language Packs/language_pl.ini index 06e0ce8c2a..d231f4230c 100644 --- a/TFT/src/User/Language Packs/language_pl.ini +++ b/TFT/src/User/Language Packs/language_pl.ini @@ -231,6 +231,7 @@ label_60_seconds:1 Min. label_120_seconds:2 Min. label_300_seconds:5 Min. label_custom_seconds:Custom +label_sequential_mode:Sequential mode label_st7920_fullscreen:Marlin mode in fullscreen label_plr_en:Power loss recovery label_setting_save:Save settings diff --git a/TFT/src/User/Language Packs/language_pt.ini b/TFT/src/User/Language Packs/language_pt.ini index b349b40bca..78e6fb520f 100644 --- a/TFT/src/User/Language Packs/language_pt.ini +++ b/TFT/src/User/Language Packs/language_pt.ini @@ -230,6 +230,7 @@ label_60_seconds:1 Min. label_120_seconds:2 Min. label_300_seconds:5 Min. label_custom_seconds:Custom +label_sequential_mode:Sequential mode label_st7920_fullscreen:Marlin mode in fullscreen label_plr_en:Power loss recovery label_setting_save:Save settings diff --git a/TFT/src/User/Language Packs/language_ru.ini b/TFT/src/User/Language Packs/language_ru.ini index 3c844a2c0e..4567e0b46e 100644 --- a/TFT/src/User/Language Packs/language_ru.ini +++ b/TFT/src/User/Language Packs/language_ru.ini @@ -230,6 +230,7 @@ label_60_seconds:1 мин. label_120_seconds:2 мин. label_300_seconds:5 мин. label_custom_seconds:Своё +label_sequential_mode:Sequential mode label_st7920_fullscreen:Marlin на весь экран label_plr_en:Работа после потери питания label_setting_save:Сохранить настройки diff --git a/TFT/src/User/Language Packs/language_sk.ini b/TFT/src/User/Language Packs/language_sk.ini index 6b407a7d04..0b5494c604 100644 --- a/TFT/src/User/Language Packs/language_sk.ini +++ b/TFT/src/User/Language Packs/language_sk.ini @@ -230,6 +230,7 @@ label_60_seconds:1 Min. label_120_seconds:2 Min. label_300_seconds:5 Min. label_custom_seconds:Custom +label_sequential_mode:Sequential mode label_st7920_fullscreen:Marlin mode in fullscreen label_plr_en:Power loss recovery label_setting_save:Save settings diff --git a/TFT/src/User/Language Packs/language_sl.ini b/TFT/src/User/Language Packs/language_sl.ini index 4f38434286..b4c5eb39b9 100644 --- a/TFT/src/User/Language Packs/language_sl.ini +++ b/TFT/src/User/Language Packs/language_sl.ini @@ -230,6 +230,7 @@ label_60_seconds:1 min. label_120_seconds:2 min. label_300_seconds:5 min. label_custom_seconds:Po meri +label_sequential_mode:Sequential mode label_st7920_fullscreen:Marlin čez cel zaslon label_plr_en:Power loss recovery label_setting_save:Save settings diff --git a/TFT/src/User/Language Packs/language_tc.ini b/TFT/src/User/Language Packs/language_tc.ini index dde9ff9a70..7c64ed4382 100644 --- a/TFT/src/User/Language Packs/language_tc.ini +++ b/TFT/src/User/Language Packs/language_tc.ini @@ -230,6 +230,7 @@ label_60_seconds:1分鐘 label_120_seconds:2分鐘 label_300_seconds:5分鐘 label_custom_seconds:自訂 +label_sequential_mode:Sequential mode label_st7920_fullscreen:全螢幕Marlin模式 label_plr_en:断电续打 label_setting_save:保存设置 diff --git a/TFT/src/User/Language Packs/language_tr.ini b/TFT/src/User/Language Packs/language_tr.ini index 953c4880dd..74582338cf 100644 --- a/TFT/src/User/Language Packs/language_tr.ini +++ b/TFT/src/User/Language Packs/language_tr.ini @@ -230,6 +230,7 @@ label_60_seconds:1 Dak. label_120_seconds:2 Dak. label_300_seconds:5 Dak. label_custom_seconds:Kişisel +label_sequential_mode:Sequential mode label_st7920_fullscreen:Marlin mode in fullscreen label_plr_en:Power loss recovery label_setting_save:Save settings diff --git a/TFT/src/User/Menu/FeatureSettings.c b/TFT/src/User/Menu/FeatureSettings.c index cdd5055128..2c3030805e 100644 --- a/TFT/src/User/Menu/FeatureSettings.c +++ b/TFT/src/User/Menu/FeatureSettings.c @@ -83,6 +83,7 @@ typedef enum SKEY_LCD_BRIGTHNESS_DIM, SKEY_LCD_DIM_IDLE_TIMER, #endif + SKEY_SEQUENTIAL_MODE, #ifdef ST7920_SPI SKEY_ST7920_FULLSCREEN, #endif @@ -126,6 +127,7 @@ LISTITEM settingPage[SKEY_COUNT] = { {ICONCHAR_BLANK, LIST_CUSTOMVALUE, LABEL_LCD_BRIGHTNESS_DIM, LABEL_DYNAMIC}, {ICONCHAR_BLANK, LIST_CUSTOMVALUE, LABEL_LCD_DIM_IDLE_TIMER, LABEL_DYNAMIC}, #endif + {ICONCHAR_BLANK, LIST_TOGGLE, LABEL_SEQUENTIAL_MODE, LABEL_BACKGROUND}, #ifdef ST7920_SPI {ICONCHAR_BLANK, LIST_TOGGLE, LABEL_ST7920_FULLSCREEN, LABEL_OFF}, #endif @@ -268,11 +270,16 @@ void updateFeatureSettings(uint8_t key_val) #endif //LCD_LED_PWM_CHANNEL - #ifdef ST7920_SPI - case SKEY_ST7920_FULLSCREEN: - infoSettings.marlin_mode_fullscreen = (infoSettings.marlin_mode_fullscreen + 1) % TOGGLE_NUM; - settingPage[item_index].icon = toggleitem[infoSettings.marlin_mode_fullscreen]; + case SKEY_SEQUENTIAL_MODE: + infoSettings.sequential_mode = (infoSettings.sequential_mode + 1) % TOGGLE_NUM; + settingPage[item_index].icon = toggleitem[infoSettings.sequential_mode]; break; + + #ifdef ST7920_SPI + case SKEY_ST7920_FULLSCREEN: + infoSettings.marlin_mode_fullscreen = (infoSettings.marlin_mode_fullscreen + 1) % TOGGLE_NUM; + settingPage[item_index].icon = toggleitem[infoSettings.marlin_mode_fullscreen]; + break; #endif case SKEY_PLR_EN: @@ -386,6 +393,10 @@ void loadFeatureSettings(){ break; #endif //PS_ON_PIN + case SKEY_SEQUENTIAL_MODE: + settingPage[item_index].icon = toggleitem[infoSettings.sequential_mode]; + break; + #ifdef ST7920_SPI case SKEY_ST7920_FULLSCREEN: settingPage[item_index].icon = toggleitem[infoSettings.marlin_mode_fullscreen]; diff --git a/TFT/src/User/config.ini b/TFT/src/User/config.ini index ec47efd46d..de58879093 100644 --- a/TFT/src/User/config.ini +++ b/TFT/src/User/config.ini @@ -365,6 +365,11 @@ lcd_idle_brightness:5 # Options [Off: 0, 5Sec: 1, 10Sec: 2, 30sec: 3, 1min: 4, 2min: 5, 5min: 6, 10min: 7] lcd_idle_delay:4 +#### Neopixel sequentialmode +# With this set to true, the neopixel will change color while heating +# like they do in marlin mode. (Only while printing) +# Options: [On: 1, Off: 0] +sequential_mode:1 #-------------------------------------------------------------------- # Custom G-Code Commands (up to 15 custom G-code) diff --git a/TFT/src/User/includes.h b/TFT/src/User/includes.h index ebbac014ee..11cf9c2ff0 100644 --- a/TFT/src/User/includes.h +++ b/TFT/src/User/includes.h @@ -116,6 +116,8 @@ #include "Pid.h" #include "TuneExtruder.h" #include "ConnectionSettings.h" +#include "sequential_mode.h" + #define MAX_MENU_DEPTH 10 // max sub menu depth typedef void (*FP_MENU)(void); diff --git a/platformio.ini b/platformio.ini index b5d12142fb..96ae466947 100644 --- a/platformio.ini +++ b/platformio.ini @@ -27,7 +27,7 @@ src_dir = TFT boards_dir = buildroot/boards ;Build only Target - BIGTREE_TFT35_V3_0 -default_envs = BIGTREE_TFT35_V3_0 +default_envs = BIGTREE_TFT35_E3_V3_0 ;Build all Targets ;default_envs = BIGTREE_TFT35_V1_0, BIGTREE_TFT35_V1_1, BIGTREE_TFT35_V1_2, BIGTREE_TFT35_V2_0, BIGTREE_TFT35_V3_0, BIGTREE_TFT35_E3_V3_0, BIGTREE_TFT43_V3_0, BIGTREE_TFT50_V3_0, BIGTREE_TFT70_V3_0, BIGTREE_TFT28_V1_0, BIGTREE_TFT28_V3_0, BIGTREE_TFT24_V1_1, MKS_32_V1_4, MKS_32_V1_4_NOBL From 6e65543274c72134900a6536e30d98ebba1eb523 Mon Sep 17 00:00:00 2001 From: petervw Date: Mon, 26 Oct 2020 19:58:58 +0100 Subject: [PATCH 03/24] Cleanup code Still the odd behavior that the settings from the ini file gets corrupted when rebootig --- TFT/src/User/API/config.c | 194 ++++++++++++++-------------- TFT/src/User/API/sequential_mode.c | 88 ++++++++----- TFT/src/User/API/sequential_mode.h | 2 - TFT/src/User/Hal/LCD_Init.c | 3 +- TFT/src/User/Menu/FeatureSettings.c | 6 +- TFT/src/User/config.ini | 4 +- 6 files changed, 161 insertions(+), 136 deletions(-) diff --git a/TFT/src/User/API/config.c b/TFT/src/User/API/config.c index 8de3880f14..5465cae801 100644 --- a/TFT/src/User/API/config.c +++ b/TFT/src/User/API/config.c @@ -952,126 +952,128 @@ void parseConfigKey(u16 index) //---------------------------------------------------------Power Supply Settings (if connected to TFT Controller): -#ifdef PS_ON_PIN + #ifdef PS_ON_PIN - case C_INDEX_PS_ON: - if (config_int() == 1) - infoSettings.auto_off = 1; - else if(config_int() == 2) - infoSettings.auto_off = 2; - else - infoSettings.auto_off = 0; - break; + case C_INDEX_PS_ON: + if (config_int() == 1) + infoSettings.auto_off = 1; + else if(config_int() == 2) + infoSettings.auto_off = 2; + else + infoSettings.auto_off = 0; + break; - case C_INDEX_PS_LOGIC: - infoSettings.powerloss_invert = getOnOff(); - break; + case C_INDEX_PS_LOGIC: + infoSettings.powerloss_invert = getOnOff(); + break; - case C_INDEX_SHUTDOWN_TEMP: - if (inLimit(config_int(), MIN_BED_TEMP, MAX_BED_TEMP)) - infoSettings.auto_off_temp = config_int(); - break; + case C_INDEX_SHUTDOWN_TEMP: + if (inLimit(config_int(), MIN_BED_TEMP, MAX_BED_TEMP)) + infoSettings.auto_off_temp = config_int(); + break; -#endif + #endif //---------------------------------------------------------Power Loss Recovery & BTT UPS Settings (if connected to TFT Controller: -#ifdef BTT_MINI_UPS + #ifdef BTT_MINI_UPS - case C_INDEX_POWERLOSS_EN: - infoSettings.powerloss_en = getOnOff(); - break; + case C_INDEX_POWERLOSS_EN: + infoSettings.powerloss_en = getOnOff(); + break; - case C_INDEX_POWERLOSS_HOME: - infoSettings.powerloss_home = getOnOff(); - break; + case C_INDEX_POWERLOSS_HOME: + infoSettings.powerloss_home = getOnOff(); + break; - case C_INDEX_POWERLOSS_ZRAISE: - if (inLimit(config_float(), MIN_SIZE_LIMIT, MAX_SIZE_LIMIT)) - infoSettings.powerloss_z_raise = config_float(); - break; + case C_INDEX_POWERLOSS_ZRAISE: + if (inLimit(config_float(), MIN_SIZE_LIMIT, MAX_SIZE_LIMIT)) + infoSettings.powerloss_z_raise = config_float(); + break; - case C_INDEX_BTT_MINIUPS: - infoSettings.btt_ups = getOnOff(); - break; + case C_INDEX_BTT_MINIUPS: + infoSettings.btt_ups = getOnOff(); + break; -#endif + #endif //---------------------------------------------------------Filament Runout Settings (if connected to TFT Controller): -#ifdef FIL_RUNOUT_PIN - case C_INDEX_RUNOUT: - infoSettings.runout = getOnOff(); - break; + #ifdef FIL_RUNOUT_PIN + case C_INDEX_RUNOUT: + infoSettings.runout = getOnOff(); + break; - case C_INDEX_RUNOUT_LOGIC: - infoSettings.runout_invert = getOnOff(); - break; + case C_INDEX_RUNOUT_LOGIC: + infoSettings.runout_invert = getOnOff(); + break; - case C_INDEX_RUNOUT_NOISE: - if (inLimit(config_int(), MIN_DELAY_MS, MAX_DELAY_MS)) - infoSettings.runout_noise_ms = config_int(); - break; + case C_INDEX_RUNOUT_NOISE: + if (inLimit(config_int(), MIN_DELAY_MS, MAX_DELAY_MS)) + infoSettings.runout_noise_ms = config_int(); + break; + + case C_INDEX_RUNOUT_DISTANCE: + if (inLimit(config_int(), MIN_RUNOUT_DISTANCE, MAX_RUNOUT_DISTANCE)) + infoSettings.runout_distance = config_int(); + break; + #endif - case C_INDEX_RUNOUT_DISTANCE: - if (inLimit(config_int(), MIN_RUNOUT_DISTANCE, MAX_RUNOUT_DISTANCE)) - infoSettings.runout_distance = config_int(); - break; -#endif //---------------------------------------------------------other device specific settings -#ifdef BUZZER_PIN - case C_INDEX_TOUCH_SOUND: - if (inLimit(config_int(),0,1)) - { - infoSettings.touchSound = config_int(); - } - break; + #ifdef BUZZER_PIN + case C_INDEX_TOUCH_SOUND: + if (inLimit(config_int(),0,1)) + { + infoSettings.touchSound = config_int(); + } + break; - case C_INDEX_TOAST_SOUND: - if (inLimit(config_int(),0,1)) - { - infoSettings.toastSound = config_int(); - } - break; + case C_INDEX_TOAST_SOUND: + if (inLimit(config_int(),0,1)) + { + infoSettings.toastSound = config_int(); + } + break; - case C_INDEX_ALERT_SOUND: - if (inLimit(config_int(),0,1)) - { - infoSettings.alertSound = config_int(); - } - break; -#endif + case C_INDEX_ALERT_SOUND: + if (inLimit(config_int(),0,1)) + { + infoSettings.alertSound = config_int(); + } + break; + #endif -#ifdef LED_COLOR_PIN - case C_INDEX_KNOB_COLOR: - if (inLimit(config_int(), 0, LED_COLOR_NUM-1)) - infoSettings.knob_led_color = config_int(); - break; + #ifdef LED_COLOR_PIN + case C_INDEX_KNOB_COLOR: + if (inLimit(config_int(), 0, LED_COLOR_NUM-1)) + infoSettings.knob_led_color = config_int(); + break; -#ifdef LCD_LED_PWM_CHANNEL - case C_INDEX_KNOB_LED_IDLE: - if (inLimit(config_int(), 0, 1)) - infoSettings.knob_led_idle = config_int(); - break; -#endif //lcd_led_pwm -#endif + #ifdef LCD_LED_PWM_CHANNEL + case C_INDEX_KNOB_LED_IDLE: + if (inLimit(config_int(), 0, 1)) + infoSettings.knob_led_idle = config_int(); + break; + #endif //lcd_led_pwm + #endif + + #ifdef LCD_LED_PWM_CHANNEL + case C_INDEX_BRIGHTNESS: + if (inLimit(config_int(), 0, ITEM_BRIGHTNESS_NUM - 1)) + infoSettings.lcd_brightness = config_int(); + if (infoSettings.lcd_brightness == 0) + infoSettings.lcd_brightness = 1; //If someone set it to 0 set it to 1 + break; + case C_INDEX_BRIGHTNESS_IDLE: + if (inLimit(config_int(), 0, ITEM_BRIGHTNESS_NUM-1)) + infoSettings.lcd_idle_brightness = config_int(); + break; + case C_INDEX_BRIGHTNESS_IDLE_DELAY: + if (inLimit(config_int(), 0, ITEM_SECONDS_NUM-1)) + infoSettings.lcd_idle_timer = config_int(); + break; + #endif -#ifdef LCD_LED_PWM_CHANNEL - case C_INDEX_BRIGHTNESS: - if (inLimit(config_int(), 0, ITEM_BRIGHTNESS_NUM - 1)) - infoSettings.lcd_brightness = config_int(); - if (infoSettings.lcd_brightness == 0) - infoSettings.lcd_brightness = 1; //If someone set it to 0 set it to 1 - break; - case C_INDEX_BRIGHTNESS_IDLE: - if (inLimit(config_int(), 0, ITEM_BRIGHTNESS_NUM-1)) - infoSettings.lcd_idle_brightness = config_int(); - break; - case C_INDEX_BRIGHTNESS_IDLE_DELAY: - if (inLimit(config_int(), 0, ITEM_SECONDS_NUM-1)) - infoSettings.lcd_idle_timer = config_int(); - break; -#endif case C_INDEX_SEQUENTIAL_MODE: if (inLimit(config_int(), 0, 1)) infoSettings.sequential_mode = config_int(); diff --git a/TFT/src/User/API/sequential_mode.c b/TFT/src/User/API/sequential_mode.c index 674710cf91..96db2276c7 100644 --- a/TFT/src/User/API/sequential_mode.c +++ b/TFT/src/User/API/sequential_mode.c @@ -4,80 +4,104 @@ uint8_t prevPixelColor = 0; uint8_t waitForNext = 0; +bool heatingDone = false; void setSequentialModeColor(void) { - if (waitForNext-- > 0) + if (waitForNext > 0) + { + waitForNext--; return; - + } if (!isPrinting()) { if (prevPixelColor == 0) return; - if (printingFinished && prevPixelColor != 0) { - //Set neopixel and ledknob to green - storeCmd("M150 R0 U255 B0"); -#ifdef LED_COLOR_PIN - WS2812_Send_DAT(led_color[GREEN]); -#endif - } else if (prevPixelColor != 0 && infoMenu.menu[infoMenu.cur] != menuPrinting) { + + //Set neopixel and ledknob to green + storeCmd("M150 R0 U255 B0"); + + #ifdef LED_COLOR_PIN + WS2812_Send_DAT(LED_GREEN); + #endif + + //Reset flag heating done + heatingDone = false; + + if (infoMenu.menu[infoMenu.cur] != menuPrinting) { //Restore colors to default value prevPixelColor = 0; //Turn of neopixels and set knob led back to default storeCmd("M150 R0 U0 B0"); -#ifdef LED_COLOR_PIN - WS2812_Send_DAT(led_color[infoSettings.knob_led_color]); -#endif + #ifdef LED_COLOR_PIN + if(infoSettings.knob_led_idle && lcd_dim.dimmed) + WS2812_Send_DAT(LED_OFF); + else + WS2812_Send_DAT(led_color[infoSettings.knob_led_color]); + #endif } - return; } else { + if(heatingDone) + return; //Go back when preheating is finished + + //Store current values to reduce cycle time uint16_t hotendTargetTemp = heatGetTargetTemp(0); uint16_t bedTargetTemp = heatGetTargetTemp(BED); + uint16_t hotendCurrentTemp = heatGetCurrentTemp(0); + uint16_t bedCurrentTemp = heatGetCurrentTemp(BED); if (hotendTargetTemp == 0 && bedTargetTemp == 0) return; //No temperature set "yet". Do nothing. long newLedValue = 0; if (hotendTargetTemp > 0 && bedTargetTemp > 0 && - heatGetCurrentTemp(BED) >= bedTargetTemp - 5) { + bedCurrentTemp >= bedTargetTemp - 5) { //Only use total temperature when hotend and bed heat up at the same time uint16_t totalTemperature = hotendTargetTemp + bedTargetTemp; - newLedValue = map(heatGetCurrentTemp(0) + heatGetCurrentTemp(BED), 0, totalTemperature, 0, 255); + newLedValue = map(hotendCurrentTemp + bedCurrentTemp, 0, totalTemperature, 0, 255); } else { if (hotendTargetTemp == 0) - newLedValue = map(heatGetCurrentTemp(BED), 0, bedTargetTemp, 0, 125); + newLedValue = map(bedCurrentTemp, 0, bedTargetTemp, 0, 125); else - newLedValue = map(heatGetCurrentTemp(0), 0, bedTargetTemp, 125, 255); + newLedValue = map(hotendCurrentTemp, 0, bedTargetTemp, 125, 255); } if (newLedValue > prevPixelColor) { // Set the neopixel color storeCmd("M150 R%i U0 B%i", newLedValue, 255 - newLedValue); -#ifdef LED_COLOR_PIN - uint8_t colorRed = newLedValue; - uint8_t colorBlue = 255 - newLedValue; - uint32_t newPixelColor; - sprintf(newPixelColor, "0x0000%X%X", colorRed, colorBlue); - //Color the Knob led when available - WS2812_Send_DAT(newPixelColor); -#endif + #ifdef LED_COLOR_PIN + uint8_t colorRed = newLedValue; + uint8_t colorBlue = 255 - newLedValue; + char tempstr[10]; + sprintf(tempstr, "0x0000%X%X", colorRed, colorBlue); + uint32_t newPixelColor; + memcpy(&newPixelColor, tempstr, 10); + //Color the Knob led when available + WS2812_Send_DAT(newPixelColor); + #endif prevPixelColor = newLedValue; } if (hotendTargetTemp > 0 && bedTargetTemp > 0 && - heatGetCurrentTemp(0) >= hotendTargetTemp - 5 && - heatGetCurrentTemp(BED) >= bedTargetTemp - 5) { + hotendCurrentTemp >= hotendTargetTemp - 5 && + bedCurrentTemp >= bedTargetTemp - 5) { //Bed and hotend are on temperature. Set neopixel to white storeCmd("M150 R255 U255 B255"); -#ifdef LED_COLOR_PIN - //Restore knob led to default - WS2812_Send_DAT(led_color[infoSettings.knob_led_color]); -#endif + #ifdef LED_COLOR_PIN + if(infoSettings.knob_led_idle && lcd_dim.dimmed) + WS2812_Send_DAT(led_color[LED_OFF]); + else + WS2812_Send_DAT(led_color[infoSettings.knob_led_color]); + #endif + + //Set the flag heating done to true + heatingDone = true; } } - //Set the waitForNext to 100 to prevent that this function is + //Set the waitForNext to a certain number to prevent that this function is + //This means that after X cycles it will be back in this function waitForNext = 100; } diff --git a/TFT/src/User/API/sequential_mode.h b/TFT/src/User/API/sequential_mode.h index 3f20670647..60a0b65b7d 100644 --- a/TFT/src/User/API/sequential_mode.h +++ b/TFT/src/User/API/sequential_mode.h @@ -5,8 +5,6 @@ extern "C" { #endif -#include "includes.h" - void setSequentialModeColor(void); #ifdef __cplusplus diff --git a/TFT/src/User/Hal/LCD_Init.c b/TFT/src/User/Hal/LCD_Init.c index 88272d65c2..c623c3e708 100644 --- a/TFT/src/User/Hal/LCD_Init.c +++ b/TFT/src/User/Hal/LCD_Init.c @@ -64,7 +64,8 @@ const uint32_t LCD_DIM_IDLE_TIME[ITEM_SECONDS_NUM] = { void loopDimTimer(void) { - + if(infoSettings.sequential_mode) + setSequentialModeColor(); if (infoSettings.lcd_idle_timer == LCD_DIM_OFF) return; diff --git a/TFT/src/User/Menu/FeatureSettings.c b/TFT/src/User/Menu/FeatureSettings.c index 2c3030805e..322fe8f4b3 100644 --- a/TFT/src/User/Menu/FeatureSettings.c +++ b/TFT/src/User/Menu/FeatureSettings.c @@ -127,13 +127,13 @@ LISTITEM settingPage[SKEY_COUNT] = { {ICONCHAR_BLANK, LIST_CUSTOMVALUE, LABEL_LCD_BRIGHTNESS_DIM, LABEL_DYNAMIC}, {ICONCHAR_BLANK, LIST_CUSTOMVALUE, LABEL_LCD_DIM_IDLE_TIMER, LABEL_DYNAMIC}, #endif - {ICONCHAR_BLANK, LIST_TOGGLE, LABEL_SEQUENTIAL_MODE, LABEL_BACKGROUND}, + {ICONCHAR_BLANK, LIST_TOGGLE, LABEL_SEQUENTIAL_MODE, LABEL_BACKGROUND}, #ifdef ST7920_SPI {ICONCHAR_BLANK, LIST_TOGGLE, LABEL_ST7920_FULLSCREEN, LABEL_OFF}, #endif - {ICONCHAR_TOGGLE_ON, LIST_TOGGLE, LABEL_PLR_EN, LABEL_BACKGROUND}, + {ICONCHAR_TOGGLE_ON, LIST_TOGGLE, LABEL_PLR_EN, LABEL_BACKGROUND}, // Keep reset settings always at the bottom of the settings menu list. - {ICONCHAR_BLANK, LIST_MOREBUTTON, LABEL_SETTING_RESET, LABEL_BACKGROUND} + {ICONCHAR_BLANK, LIST_MOREBUTTON, LABEL_SETTING_RESET, LABEL_BACKGROUND} }; void resetSettings(void) diff --git a/TFT/src/User/config.ini b/TFT/src/User/config.ini index de58879093..4b431b576b 100644 --- a/TFT/src/User/config.ini +++ b/TFT/src/User/config.ini @@ -365,8 +365,8 @@ lcd_idle_brightness:5 # Options [Off: 0, 5Sec: 1, 10Sec: 2, 30sec: 3, 1min: 4, 2min: 5, 5min: 6, 10min: 7] lcd_idle_delay:4 -#### Neopixel sequentialmode -# With this set to true, the neopixel will change color while heating +#### sequentialmode +# With this set to true, the neopixel and knob-led will change color while heating # like they do in marlin mode. (Only while printing) # Options: [On: 1, Off: 0] sequential_mode:1 From 218a3469b14bee49f1fa51045a76c0948d4175b9 Mon Sep 17 00:00:00 2001 From: petervw Date: Mon, 26 Oct 2020 20:11:26 +0100 Subject: [PATCH 04/24] Futher clean up --- TFT/src/User/API/config.c | 36 ++++++++++++++---------------------- 1 file changed, 14 insertions(+), 22 deletions(-) diff --git a/TFT/src/User/API/config.c b/TFT/src/User/API/config.c index 5465cae801..3dd36bbe17 100644 --- a/TFT/src/User/API/config.c +++ b/TFT/src/User/API/config.c @@ -988,7 +988,7 @@ void parseConfigKey(u16 index) case C_INDEX_POWERLOSS_ZRAISE: if (inLimit(config_float(), MIN_SIZE_LIMIT, MAX_SIZE_LIMIT)) - infoSettings.powerloss_z_raise = config_float(); + infoSettings.powerloss_z_raise = config_float(); break; case C_INDEX_BTT_MINIUPS: @@ -1010,7 +1010,7 @@ void parseConfigKey(u16 index) case C_INDEX_RUNOUT_NOISE: if (inLimit(config_int(), MIN_DELAY_MS, MAX_DELAY_MS)) - infoSettings.runout_noise_ms = config_int(); + infoSettings.runout_noise_ms = config_int(); break; case C_INDEX_RUNOUT_DISTANCE: @@ -1023,23 +1023,17 @@ void parseConfigKey(u16 index) #ifdef BUZZER_PIN case C_INDEX_TOUCH_SOUND: if (inLimit(config_int(),0,1)) - { - infoSettings.touchSound = config_int(); - } + infoSettings.touchSound = config_int(); break; case C_INDEX_TOAST_SOUND: if (inLimit(config_int(),0,1)) - { - infoSettings.toastSound = config_int(); - } + infoSettings.toastSound = config_int(); break; case C_INDEX_ALERT_SOUND: if (inLimit(config_int(),0,1)) - { - infoSettings.alertSound = config_int(); - } + infoSettings.alertSound = config_int(); break; #endif @@ -1049,17 +1043,17 @@ void parseConfigKey(u16 index) infoSettings.knob_led_color = config_int(); break; - #ifdef LCD_LED_PWM_CHANNEL - case C_INDEX_KNOB_LED_IDLE: - if (inLimit(config_int(), 0, 1)) - infoSettings.knob_led_idle = config_int(); - break; - #endif //lcd_led_pwm + #ifdef LCD_LED_PWM_CHANNEL + case C_INDEX_KNOB_LED_IDLE: + if (inLimit(config_int(), 0, 1)) + infoSettings.knob_led_idle = config_int(); + break; + #endif //lcd_led_pwm #endif #ifdef LCD_LED_PWM_CHANNEL case C_INDEX_BRIGHTNESS: - if (inLimit(config_int(), 0, ITEM_BRIGHTNESS_NUM - 1)) + if (inLimit(config_int(), 1, ITEM_BRIGHTNESS_NUM - 1)) infoSettings.lcd_brightness = config_int(); if (infoSettings.lcd_brightness == 0) infoSettings.lcd_brightness = 1; //If someone set it to 0 set it to 1 @@ -1109,8 +1103,7 @@ void parseConfigKey(u16 index) { customcode_good[index - C_INDEX_CUSTOM_LABEL_1] = 0;//set name was not ok } - break; - } + }break; case C_INDEX_CUSTOM_GCODE_1: case C_INDEX_CUSTOM_GCODE_2: case C_INDEX_CUSTOM_GCODE_3: @@ -1139,8 +1132,7 @@ void parseConfigKey(u16 index) { customcode_index--; } - break; - } + }break; //---------------------------------------------------------Start, End & Cancel G-codes case C_INDEX_START_GCODE_ON: infoSettings.send_start_gcode = getOnOff(); From b2558c3957f19504a5fdd8daedc20316a3ccb5e6 Mon Sep 17 00:00:00 2001 From: petervw Date: Mon, 26 Oct 2020 22:43:41 +0100 Subject: [PATCH 05/24] Moved setSequential to the correct location Need a better name for it instead of 'setSequentialModeColor' Maybe something like: sequentialModeWorker --- TFT/src/User/API/menu.c | 3 +++ TFT/src/User/Hal/LCD_Init.c | 4 ---- 2 files changed, 3 insertions(+), 4 deletions(-) diff --git a/TFT/src/User/API/menu.c b/TFT/src/User/API/menu.c index c8b043194b..d6e4061072 100644 --- a/TFT/src/User/API/menu.c +++ b/TFT/src/User/API/menu.c @@ -699,6 +699,9 @@ void loopBackEnd(void) #ifdef LCD_LED_PWM_CHANNEL loopDimTimer(); #endif + + if(infoSettings.sequential_mode) + setSequentialModeColor(); } //loopBackEnd void loopFrontEnd(void) diff --git a/TFT/src/User/Hal/LCD_Init.c b/TFT/src/User/Hal/LCD_Init.c index c623c3e708..ed80829e64 100644 --- a/TFT/src/User/Hal/LCD_Init.c +++ b/TFT/src/User/Hal/LCD_Init.c @@ -63,10 +63,6 @@ const uint32_t LCD_DIM_IDLE_TIME[ITEM_SECONDS_NUM] = { void loopDimTimer(void) { - - if(infoSettings.sequential_mode) - setSequentialModeColor(); - if (infoSettings.lcd_idle_timer == LCD_DIM_OFF) return; From 2af17207da85b53b61118c7558ca8d28d11b6fae Mon Sep 17 00:00:00 2001 From: guruathwal Date: Wed, 4 Nov 2020 13:24:59 +0530 Subject: [PATCH 06/24] Fix bugs --- TFT/src/User/API/flashStore.c | 2 ++ TFT/src/User/API/sequential_mode.c | 25 ++++++++++-------- TFT/src/User/Menu/FeatureSettings.c | 39 ++++++++++++++++------------- 3 files changed, 37 insertions(+), 29 deletions(-) diff --git a/TFT/src/User/API/flashStore.c b/TFT/src/User/API/flashStore.c index c4cbf1a85c..6ee5156e00 100644 --- a/TFT/src/User/API/flashStore.c +++ b/TFT/src/User/API/flashStore.c @@ -243,6 +243,8 @@ void storePara(void) wordToByte(infoSettings.lcd_idle_brightness, data + (index += 4)); wordToByte(infoSettings.lcd_idle_timer, data + (index += 4)); + wordToByte(infoSettings.sequential_mode, data + (index += 4)); + wordToByte(infoSettings.serial_alwaysOn, data + (index += 4)); wordToByte(infoSettings.marlin_mode_bg_color, data + (index += 4)); wordToByte(infoSettings.marlin_mode_font_color, data + (index += 4)); diff --git a/TFT/src/User/API/sequential_mode.c b/TFT/src/User/API/sequential_mode.c index 96db2276c7..bf384cb71b 100644 --- a/TFT/src/User/API/sequential_mode.c +++ b/TFT/src/User/API/sequential_mode.c @@ -1,5 +1,4 @@ #include "sequential_mode.h" - #include "includes.h" uint8_t prevPixelColor = 0; @@ -31,13 +30,15 @@ void setSequentialModeColor(void) { //Restore colors to default value prevPixelColor = 0; - //Turn of neopixels and set knob led back to default + //Turn off neopixels and set knob led back to default storeCmd("M150 R0 U0 B0"); #ifdef LED_COLOR_PIN - if(infoSettings.knob_led_idle && lcd_dim.dimmed) - WS2812_Send_DAT(LED_OFF); - else - WS2812_Send_DAT(led_color[infoSettings.knob_led_color]); + #ifdef LCD_LED_PWM_CHANNEL + if(infoSettings.knob_led_idle && lcd_dim.dimmed) + WS2812_Send_DAT(led_color[LED_OFF]); + else + #endif + WS2812_Send_DAT(led_color[infoSettings.knob_led_color]); #endif } @@ -54,7 +55,7 @@ void setSequentialModeColor(void) { if (hotendTargetTemp == 0 && bedTargetTemp == 0) return; //No temperature set "yet". Do nothing. - long newLedValue = 0; + uint8_t newLedValue = 0; if (hotendTargetTemp > 0 && bedTargetTemp > 0 && bedCurrentTemp >= bedTargetTemp - 5) { //Only use total temperature when hotend and bed heat up at the same time @@ -91,10 +92,12 @@ void setSequentialModeColor(void) { storeCmd("M150 R255 U255 B255"); #ifdef LED_COLOR_PIN - if(infoSettings.knob_led_idle && lcd_dim.dimmed) - WS2812_Send_DAT(led_color[LED_OFF]); - else - WS2812_Send_DAT(led_color[infoSettings.knob_led_color]); + #ifdef LCD_LED_PWM_CHANNEL + if(infoSettings.knob_led_idle && lcd_dim.dimmed) + WS2812_Send_DAT(led_color[LED_OFF]); + else + #endif + WS2812_Send_DAT(led_color[infoSettings.knob_led_color]); #endif //Set the flag heating done to true diff --git a/TFT/src/User/Menu/FeatureSettings.c b/TFT/src/User/Menu/FeatureSettings.c index 322fe8f4b3..cd9e41ce6b 100644 --- a/TFT/src/User/Menu/FeatureSettings.c +++ b/TFT/src/User/Menu/FeatureSettings.c @@ -74,9 +74,9 @@ typedef enum SKEY_ACK_NOTIFICATION, #ifdef LED_COLOR_PIN SKEY_KNOB, - #ifdef LCD_LED_PWM_CHANNEL - SKEY_KNOB_LED_IDLE, - #endif + #ifdef LCD_LED_PWM_CHANNEL + SKEY_KNOB_LED_IDLE, + #endif #endif #ifdef LCD_LED_PWM_CHANNEL SKEY_LCD_BRIGHTNESS, @@ -118,16 +118,16 @@ LISTITEM settingPage[SKEY_COUNT] = { {ICONCHAR_BLANK, LIST_CUSTOMVALUE, LABEL_ACK_NOTIFICATION, LABEL_DYNAMIC}, #ifdef LED_COLOR_PIN {ICONCHAR_BLANK, LIST_CUSTOMVALUE, LABEL_KNOB_LED, LABEL_OFF}, - #ifdef LCD_LED_PWM_CHANNEL - {ICONCHAR_BLANK, LIST_TOGGLE, LABEL_KNOB_LED_IDLE, LABEL_BACKGROUND}, - #endif + #ifdef LCD_LED_PWM_CHANNEL + {ICONCHAR_BLANK, LIST_TOGGLE, LABEL_KNOB_LED_IDLE, LABEL_BACKGROUND}, + #endif #endif #ifdef LCD_LED_PWM_CHANNEL {ICONCHAR_BLANK, LIST_CUSTOMVALUE, LABEL_LCD_BRIGHTNESS, LABEL_DYNAMIC}, {ICONCHAR_BLANK, LIST_CUSTOMVALUE, LABEL_LCD_BRIGHTNESS_DIM, LABEL_DYNAMIC}, {ICONCHAR_BLANK, LIST_CUSTOMVALUE, LABEL_LCD_DIM_IDLE_TIMER, LABEL_DYNAMIC}, #endif - {ICONCHAR_BLANK, LIST_TOGGLE, LABEL_SEQUENTIAL_MODE, LABEL_BACKGROUND}, + {ICONCHAR_BLANK, LIST_TOGGLE, LABEL_SEQUENTIAL_MODE, LABEL_BACKGROUND}, #ifdef ST7920_SPI {ICONCHAR_BLANK, LIST_TOGGLE, LABEL_ST7920_FULLSCREEN, LABEL_OFF}, #endif @@ -227,13 +227,13 @@ void updateFeatureSettings(uint8_t key_val) WS2812_Send_DAT(led_color[infoSettings.knob_led_color]); break; - #ifdef LCD_LED_PWM_CHANNEL - case SKEY_KNOB_LED_IDLE: - infoSettings.knob_led_idle = (infoSettings.knob_led_idle + 1) % TOGGLE_NUM; - settingPage[item_index].icon = toggleitem[infoSettings.knob_led_idle]; - break; - #endif //LCD_LED_PWM_CHANNEL - #endif + #ifdef LCD_LED_PWM_CHANNEL + case SKEY_KNOB_LED_IDLE: + infoSettings.knob_led_idle = (infoSettings.knob_led_idle + 1) % TOGGLE_NUM; + settingPage[item_index].icon = toggleitem[infoSettings.knob_led_idle]; + break; + #endif //LCD_LED_PWM_CHANNEL + #endif //LED_COLOR_PIN case SKEY_RESET_SETTINGS: setDialogText(LABEL_SETTING_RESET, LABEL_RESET_SETTINGS_INFO, LABEL_CONFIRM, LABEL_CANCEL); @@ -362,17 +362,20 @@ void loadFeatureSettings(){ case SKEY_RESET_SETTINGS: break; + #ifdef LED_COLOR_PIN case SKEY_KNOB: settingPage[item_index].valueLabel = itemLedcolor[infoSettings.knob_led_color]; featureSettingsItems.items[i] = settingPage[item_index]; break; + #ifdef LCD_LED_PWM_CHANNEL - case SKEY_KNOB_LED_IDLE: - settingPage[item_index].icon = toggleitem[infoSettings.knob_led_idle]; - break; + case SKEY_KNOB_LED_IDLE: + settingPage[item_index].icon = toggleitem[infoSettings.knob_led_idle]; + break; #endif #endif + #ifdef LCD_LED_PWM_CHANNEL case SKEY_LCD_BRIGHTNESS: { @@ -391,7 +394,7 @@ void loadFeatureSettings(){ case SKEY_LCD_DIM_IDLE_TIMER: settingPage[item_index].valueLabel = itemDimTime[infoSettings.lcd_idle_timer]; break; - #endif //PS_ON_PIN + #endif //LCD_LED_PWM_CHANNEL case SKEY_SEQUENTIAL_MODE: settingPage[item_index].icon = toggleitem[infoSettings.sequential_mode]; From 5689fb665d84ff6d6034b983d96925dc3c69b9ca Mon Sep 17 00:00:00 2001 From: guruathwal Date: Wed, 4 Nov 2020 13:34:15 +0530 Subject: [PATCH 07/24] misc update --- TFT/src/User/API/config.c | 2 +- TFT/src/User/API/flashStore.c | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/TFT/src/User/API/config.c b/TFT/src/User/API/config.c index a9d0dbc048..b713adc902 100644 --- a/TFT/src/User/API/config.c +++ b/TFT/src/User/API/config.c @@ -1061,7 +1061,7 @@ void parseConfigKey(u16 index) #ifdef LCD_LED_PWM_CHANNEL case C_INDEX_BRIGHTNESS: - if (inLimit(config_int(), 1, ITEM_BRIGHTNESS_NUM - 1)) + if (inLimit(config_int(), 0, ITEM_BRIGHTNESS_NUM - 1)) infoSettings.lcd_brightness = config_int(); if (infoSettings.lcd_brightness == 0) infoSettings.lcd_brightness = 1; //If someone set it to 0 set it to 1 diff --git a/TFT/src/User/API/flashStore.c b/TFT/src/User/API/flashStore.c index 6ee5156e00..5ad9bef899 100644 --- a/TFT/src/User/API/flashStore.c +++ b/TFT/src/User/API/flashStore.c @@ -2,7 +2,7 @@ #include "STM32_Flash.h" #define TSC_SIGN 0x20200512 // DO NOT MODIFY -#define PARA_SIGN 0x20201101 // (YYYYMMDD) If a new setting parameter is added, +#define PARA_SIGN 0x20201102 // (YYYYMMDD) If a new setting parameter is added, // modify here and initialize the initial value // in the "infoSettingsReset()" function From 169b8d1cb51b9abd084abeeef5071a0883c3c51a Mon Sep 17 00:00:00 2001 From: Peter van Weeterloo <37051137+traffic-light@users.noreply.github.com> Date: Wed, 4 Nov 2020 11:55:43 +0100 Subject: [PATCH 08/24] Update TFT/src/User/API/config.c Co-authored-by: Gurmeet Athwal --- TFT/src/User/API/config.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/TFT/src/User/API/config.c b/TFT/src/User/API/config.c index a9d0dbc048..b713adc902 100644 --- a/TFT/src/User/API/config.c +++ b/TFT/src/User/API/config.c @@ -1061,7 +1061,7 @@ void parseConfigKey(u16 index) #ifdef LCD_LED_PWM_CHANNEL case C_INDEX_BRIGHTNESS: - if (inLimit(config_int(), 1, ITEM_BRIGHTNESS_NUM - 1)) + if (inLimit(config_int(), 0, ITEM_BRIGHTNESS_NUM - 1)) infoSettings.lcd_brightness = config_int(); if (infoSettings.lcd_brightness == 0) infoSettings.lcd_brightness = 1; //If someone set it to 0 set it to 1 From 1559082bf156329c2141c8dd6faf322ae96a9f5b Mon Sep 17 00:00:00 2001 From: petervw Date: Sun, 8 Nov 2020 21:47:38 +0100 Subject: [PATCH 09/24] SEQ 'works', knob_led in PID, added pragmaonce * Made the sequential mode somewhat better working. No crashes * Made the LED knob change when PID starts. Ending is not yet functional * Added pragma once at a lot of the header files * Changed DU to NL. (landcode for the netherlands is NOT du. That's how they call our language in english) --- .../Language Packs/language_am.ini | 1 + .../Language Packs/language_ca.ini | 1 + .../Language Packs/language_cn.ini | 1 + .../Language Packs/language_cz.ini | 1 + .../Language Packs/language_de.ini | 1 + .../Language Packs/language_du.ini | 1 + .../Language Packs/language_en.ini | 1 + .../Language Packs/language_es.ini | 1 + .../Language Packs/language_fr.ini | 1 + .../Language Packs/language_gr.ini | 1 + .../Language Packs/language_hu.ini | 1 + .../Language Packs/language_it.ini | 1 + .../Language Packs/language_jp.ini | 1 + .../Language Packs/language_nl.ini | 283 ++++++++++++++++++ .../Language Packs/language_pl.ini | 1 + .../Language Packs/language_pt.ini | 1 + .../Language Packs/language_ru.ini | 1 + .../Language Packs/language_sk.ini | 1 + .../Language Packs/language_sl.ini | 1 + .../Language Packs/language_tc.ini | 1 + .../Language Packs/language_tr.ini | 1 + .../Language Packs/language_am.ini | 1 + .../Language Packs/language_ca.ini | 1 + .../Language Packs/language_cn.ini | 1 + .../Language Packs/language_cz.ini | 1 + .../Language Packs/language_de.ini | 1 + .../Language Packs/language_du.ini | 1 + .../Language Packs/language_en.ini | 1 + .../Language Packs/language_es.ini | 1 + .../Language Packs/language_fr.ini | 1 + .../Language Packs/language_gr.ini | 1 + .../Language Packs/language_hu.ini | 1 + .../Language Packs/language_it.ini | 1 + .../Language Packs/language_jp.ini | 1 + .../Language Packs/language_nl.ini | 283 ++++++++++++++++++ .../Language Packs/language_pl.ini | 1 + .../Language Packs/language_pt.ini | 1 + .../Language Packs/language_ru.ini | 1 + .../Language Packs/language_sk.ini | 1 + .../Language Packs/language_sl.ini | 1 + .../Language Packs/language_tc.ini | 1 + .../Language Packs/language_tr.ini | 1 + TFT/src/User/API/BabystepControl.h | 5 +- TFT/src/User/API/Colors.h | 6 +- TFT/src/User/API/FanControl.h | 5 +- TFT/src/User/API/HomeOffsetControl.h | 5 +- TFT/src/User/API/LCD_Encoder.h | 5 +- TFT/src/User/API/Language/Language.c | 2 +- TFT/src/User/API/Language/Language.h | 5 +- TFT/src/User/API/Language/language_am.h | 5 +- TFT/src/User/API/Language/language_ca.h | 4 +- TFT/src/User/API/Language/language_cn.h | 5 +- TFT/src/User/API/Language/language_cz.h | 5 +- TFT/src/User/API/Language/language_de.h | 5 +- TFT/src/User/API/Language/language_en.h | 5 +- TFT/src/User/API/Language/language_es.h | 5 +- TFT/src/User/API/Language/language_fr.h | 5 +- TFT/src/User/API/Language/language_gr.h | 5 +- TFT/src/User/API/Language/language_hu.h | 5 +- TFT/src/User/API/Language/language_it.h | 5 +- TFT/src/User/API/Language/language_jp.h | 5 +- TFT/src/User/API/Language/language_keywords.h | 5 +- .../Language/{language_du.h => language_nl.h} | 5 +- TFT/src/User/API/Language/language_pl.h | 5 +- TFT/src/User/API/Language/language_pt.h | 5 +- TFT/src/User/API/Language/language_ru.h | 5 +- TFT/src/User/API/Language/language_sk.h | 5 +- TFT/src/User/API/Language/language_sl.h | 5 +- TFT/src/User/API/Language/language_tc.h | 5 +- TFT/src/User/API/Language/language_tr.h | 5 +- TFT/src/User/API/Language/utf8_decode.h | 105 ++++--- TFT/src/User/API/MachineParameters.h | 5 +- TFT/src/User/API/Notification.h | 5 +- TFT/src/User/API/Printing.h | 5 +- TFT/src/User/API/ProbeHeightControl.h | 5 +- TFT/src/User/API/ProbeOffsetControl.h | 5 +- TFT/src/User/API/Settings.h | 5 +- TFT/src/User/API/SpeedControl.h | 5 +- TFT/src/User/API/Temperature.h | 5 +- TFT/src/User/API/UI/GUI.h | 5 +- TFT/src/User/API/UI/HD44780_Simulator.h | 9 +- TFT/src/User/API/UI/Numpad.h | 5 +- TFT/src/User/API/UI/ST7920_Simulator.h | 5 +- TFT/src/User/API/UI/list_item.h | 5 +- TFT/src/User/API/UI/list_widget.h | 5 +- TFT/src/User/API/UI/touch_process.h | 5 +- TFT/src/User/API/UI/ui_draw.h | 5 +- TFT/src/User/API/boot.h | 5 +- TFT/src/User/API/config.h | 4 +- TFT/src/User/API/coordinate.h | 5 +- TFT/src/User/API/extend.h | 5 +- TFT/src/User/API/flashStore.h | 5 +- TFT/src/User/API/interfaceCmd.h | 5 +- TFT/src/User/API/ledcolor.h | 5 +- TFT/src/User/API/menu.h | 5 +- TFT/src/User/API/parseACK.h | 6 +- TFT/src/User/API/printf/printf.h | 7 +- TFT/src/User/API/sequential_mode.c | 125 ++++++-- TFT/src/User/API/sequential_mode.h | 5 +- TFT/src/User/Configuration.h | 5 +- TFT/src/User/Fatfs/diskio.h | 5 +- TFT/src/User/Fatfs/ff.h | 2 +- TFT/src/User/Fatfs/ffconf.h | 2 + TFT/src/User/Fatfs/myfatfs.h | 5 +- TFT/src/User/Hal/CircularQueue.h | 5 +- TFT/src/User/Hal/HD44780.h | 5 +- TFT/src/User/Hal/LCD_Init.h | 5 +- TFT/src/User/Hal/STM32Fxx_Pins.h | 5 +- TFT/src/User/Hal/buzzer.h | 5 +- TFT/src/User/Hal/sd.h | 5 +- TFT/src/User/Hal/sw_spi.h | 5 +- TFT/src/User/Hal/w25qxx.h | 5 +- TFT/src/User/Hal/xpt2046.h | 5 +- .../{language_du.ini => language_nl.ini} | 0 TFT/src/User/Menu/ABL.h | 5 +- TFT/src/User/Menu/BLTouch.h | 25 +- TFT/src/User/Menu/Babystep.h | 5 +- TFT/src/User/Menu/BedLeveling.h | 5 +- TFT/src/User/Menu/ConnectionSettings.h | 5 +- TFT/src/User/Menu/Extrude.h | 5 +- TFT/src/User/Menu/Fan.h | 5 +- TFT/src/User/Menu/FeatureSettings.h | 5 +- TFT/src/User/Menu/Heat.h | 5 +- TFT/src/User/Menu/Home.h | 5 +- TFT/src/User/Menu/Leveling.h | 5 +- TFT/src/User/Menu/MBL.h | 5 +- TFT/src/User/Menu/MachineSettings.h | 5 +- TFT/src/User/Menu/MainPage.h | 5 +- TFT/src/User/Menu/MarlinMode.h | 5 +- TFT/src/User/Menu/MeshEditor.h | 5 +- TFT/src/User/Menu/MeshTuner.h | 5 +- TFT/src/User/Menu/Mode.h | 5 +- TFT/src/User/Menu/More.h | 5 +- TFT/src/User/Menu/Move.h | 5 +- TFT/src/User/Menu/NotificationMenu.h | 5 +- TFT/src/User/Menu/Parametersetting.h | 5 +- TFT/src/User/Menu/Pid.c | 4 +- TFT/src/User/Menu/Pid.h | 5 +- TFT/src/User/Menu/Popup.h | 5 +- TFT/src/User/Menu/PowerFailed.h | 5 +- TFT/src/User/Menu/PreheatMenu.h | 5 +- TFT/src/User/Menu/Print.h | 5 +- TFT/src/User/Menu/PrintingMenu.h | 5 +- TFT/src/User/Menu/ProbeOffset.h | 5 +- TFT/src/User/Menu/ScreenSettings.h | 5 +- TFT/src/User/Menu/Selectmode.h | 5 +- TFT/src/User/Menu/SendGcode.h | 5 +- TFT/src/User/Menu/SettingsMenu.h | 5 +- TFT/src/User/Menu/Speed.h | 5 +- TFT/src/User/Menu/StatusScreen.h | 5 +- TFT/src/User/Menu/TuneExtruder.h | 5 +- TFT/src/User/Menu/Tuning.h | 5 +- TFT/src/User/Menu/UnifiedHeat.h | 5 +- TFT/src/User/Menu/UnifiedMove.h | 5 +- TFT/src/User/SanityCheck.h | 7 +- TFT/src/User/delay.h | 5 +- TFT/src/User/includes.h | 5 +- TFT/src/User/my_misc.h | 5 +- TFT/src/User/os_timer.h | 6 +- 159 files changed, 889 insertions(+), 536 deletions(-) create mode 100644 Copy to SD Card root directory to update - Unified Menu Material theme/Language Packs/language_nl.ini create mode 100644 Copy to SD Card root directory to update/Language Packs/language_nl.ini rename TFT/src/User/API/Language/{language_du.h => language_nl.h} (99%) rename TFT/src/User/Language Packs/{language_du.ini => language_nl.ini} (100%) diff --git a/Copy to SD Card root directory to update - Unified Menu Material theme/Language Packs/language_am.ini b/Copy to SD Card root directory to update - Unified Menu Material theme/Language Packs/language_am.ini index d7ebdfd0b3..5c56c0b96c 100644 --- a/Copy to SD Card root directory to update - Unified Menu Material theme/Language Packs/language_am.ini +++ b/Copy to SD Card root directory to update - Unified Menu Material theme/Language Packs/language_am.ini @@ -279,4 +279,5 @@ label_hybrid_threshold:TMC HybridThreshold label_notifications:Notifications label_mesh_editor:Mesh edit label_mesh_tuner:Mesh tuner +label_case_light:Case light diff --git a/Copy to SD Card root directory to update - Unified Menu Material theme/Language Packs/language_ca.ini b/Copy to SD Card root directory to update - Unified Menu Material theme/Language Packs/language_ca.ini index 03f0f26620..b097b61404 100644 --- a/Copy to SD Card root directory to update - Unified Menu Material theme/Language Packs/language_ca.ini +++ b/Copy to SD Card root directory to update - Unified Menu Material theme/Language Packs/language_ca.ini @@ -279,4 +279,5 @@ label_hybrid_threshold:TMC HybridThreshold label_notifications:Notifications label_mesh_editor:Mesh edit label_mesh_tuner:Mesh tuner +label_case_light:Case light diff --git a/Copy to SD Card root directory to update - Unified Menu Material theme/Language Packs/language_cn.ini b/Copy to SD Card root directory to update - Unified Menu Material theme/Language Packs/language_cn.ini index b4ab38a2a3..80b05f9030 100644 --- a/Copy to SD Card root directory to update - Unified Menu Material theme/Language Packs/language_cn.ini +++ b/Copy to SD Card root directory to update - Unified Menu Material theme/Language Packs/language_cn.ini @@ -279,4 +279,5 @@ label_hybrid_threshold:TMC HybridThreshold label_notifications:Notifications label_mesh_editor:Mesh edit label_mesh_tuner:Mesh tuner +label_case_light:Case light diff --git a/Copy to SD Card root directory to update - Unified Menu Material theme/Language Packs/language_cz.ini b/Copy to SD Card root directory to update - Unified Menu Material theme/Language Packs/language_cz.ini index 855bc63a70..0a03120481 100644 --- a/Copy to SD Card root directory to update - Unified Menu Material theme/Language Packs/language_cz.ini +++ b/Copy to SD Card root directory to update - Unified Menu Material theme/Language Packs/language_cz.ini @@ -279,4 +279,5 @@ label_hybrid_threshold:TMC Hybridní práh label_notifications:Oznámení label_mesh_editor:Mesh síť label_mesh_tuner:Mesh nastavení +label_case_light:Case light diff --git a/Copy to SD Card root directory to update - Unified Menu Material theme/Language Packs/language_de.ini b/Copy to SD Card root directory to update - Unified Menu Material theme/Language Packs/language_de.ini index cb1b682b07..5eee2103c1 100644 --- a/Copy to SD Card root directory to update - Unified Menu Material theme/Language Packs/language_de.ini +++ b/Copy to SD Card root directory to update - Unified Menu Material theme/Language Packs/language_de.ini @@ -279,4 +279,5 @@ label_hybrid_threshold:TMC HybridThreshold label_notifications:Benachrichtigungen label_mesh_editor:Mesh edit. label_mesh_tuner:Mesh anp. +label_case_light:Case light diff --git a/Copy to SD Card root directory to update - Unified Menu Material theme/Language Packs/language_du.ini b/Copy to SD Card root directory to update - Unified Menu Material theme/Language Packs/language_du.ini index 437e601a4e..cbc7f64598 100644 --- a/Copy to SD Card root directory to update - Unified Menu Material theme/Language Packs/language_du.ini +++ b/Copy to SD Card root directory to update - Unified Menu Material theme/Language Packs/language_du.ini @@ -279,4 +279,5 @@ label_hybrid_threshold:TMC HybridThreshold label_notifications:Notifications label_mesh_editor:Mesh edit label_mesh_tuner:Mesh tuner +label_case_light:Case light diff --git a/Copy to SD Card root directory to update - Unified Menu Material theme/Language Packs/language_en.ini b/Copy to SD Card root directory to update - Unified Menu Material theme/Language Packs/language_en.ini index 11a2a72a19..1b324858cb 100644 --- a/Copy to SD Card root directory to update - Unified Menu Material theme/Language Packs/language_en.ini +++ b/Copy to SD Card root directory to update - Unified Menu Material theme/Language Packs/language_en.ini @@ -279,4 +279,5 @@ label_hybrid_threshold:TMC HybridThreshold label_notifications:Notifications label_mesh_editor:Mesh edit label_mesh_tuner:Mesh tuner +label_case_light:Case light diff --git a/Copy to SD Card root directory to update - Unified Menu Material theme/Language Packs/language_es.ini b/Copy to SD Card root directory to update - Unified Menu Material theme/Language Packs/language_es.ini index 6ea40bedd2..9919e5cc7f 100644 --- a/Copy to SD Card root directory to update - Unified Menu Material theme/Language Packs/language_es.ini +++ b/Copy to SD Card root directory to update - Unified Menu Material theme/Language Packs/language_es.ini @@ -279,4 +279,5 @@ label_hybrid_threshold:TMC HybridThreshold label_notifications:Notifications label_mesh_editor:Mesh edit label_mesh_tuner:Mesh tuner +label_case_light:Case light diff --git a/Copy to SD Card root directory to update - Unified Menu Material theme/Language Packs/language_fr.ini b/Copy to SD Card root directory to update - Unified Menu Material theme/Language Packs/language_fr.ini index 8ed054ab74..b6041ea167 100644 --- a/Copy to SD Card root directory to update - Unified Menu Material theme/Language Packs/language_fr.ini +++ b/Copy to SD Card root directory to update - Unified Menu Material theme/Language Packs/language_fr.ini @@ -279,4 +279,5 @@ label_hybrid_threshold:Seuil Hybride TMC label_notifications:Notifications label_mesh_editor:Maillage label_mesh_tuner:Edition du maillage +label_case_light:Case light diff --git a/Copy to SD Card root directory to update - Unified Menu Material theme/Language Packs/language_gr.ini b/Copy to SD Card root directory to update - Unified Menu Material theme/Language Packs/language_gr.ini index 3321184407..f8f05d12c3 100644 --- a/Copy to SD Card root directory to update - Unified Menu Material theme/Language Packs/language_gr.ini +++ b/Copy to SD Card root directory to update - Unified Menu Material theme/Language Packs/language_gr.ini @@ -279,4 +279,5 @@ label_hybrid_threshold:TMC HybridThreshold label_notifications:Notifications label_mesh_editor:Mesh edit label_mesh_tuner:Mesh tuner +label_case_light:Case light diff --git a/Copy to SD Card root directory to update - Unified Menu Material theme/Language Packs/language_hu.ini b/Copy to SD Card root directory to update - Unified Menu Material theme/Language Packs/language_hu.ini index 1c946db21a..5b62dcdff3 100644 --- a/Copy to SD Card root directory to update - Unified Menu Material theme/Language Packs/language_hu.ini +++ b/Copy to SD Card root directory to update - Unified Menu Material theme/Language Packs/language_hu.ini @@ -279,4 +279,5 @@ label_hybrid_threshold:TMC Hibrid Küszöbérték label_notifications:Értesítések label_mesh_editor:Mesh edit label_mesh_tuner:Mesh tuner +label_case_light:Case light diff --git a/Copy to SD Card root directory to update - Unified Menu Material theme/Language Packs/language_it.ini b/Copy to SD Card root directory to update - Unified Menu Material theme/Language Packs/language_it.ini index 0bb1caf720..cd92ad8311 100644 --- a/Copy to SD Card root directory to update - Unified Menu Material theme/Language Packs/language_it.ini +++ b/Copy to SD Card root directory to update - Unified Menu Material theme/Language Packs/language_it.ini @@ -279,4 +279,5 @@ label_hybrid_threshold:TMC Soglia Modo Ibrido label_notifications:Notifiche label_mesh_editor:Mesh edit label_mesh_tuner:Mesh tuner +label_case_light:Case light diff --git a/Copy to SD Card root directory to update - Unified Menu Material theme/Language Packs/language_jp.ini b/Copy to SD Card root directory to update - Unified Menu Material theme/Language Packs/language_jp.ini index 691c1f6a51..9adea325b8 100644 --- a/Copy to SD Card root directory to update - Unified Menu Material theme/Language Packs/language_jp.ini +++ b/Copy to SD Card root directory to update - Unified Menu Material theme/Language Packs/language_jp.ini @@ -279,4 +279,5 @@ label_hybrid_threshold:TMC HybridThreshold label_notifications:Notifications label_mesh_editor:Mesh edit label_mesh_tuner:Mesh tuner +label_case_light:Case light diff --git a/Copy to SD Card root directory to update - Unified Menu Material theme/Language Packs/language_nl.ini b/Copy to SD Card root directory to update - Unified Menu Material theme/Language Packs/language_nl.ini new file mode 100644 index 0000000000..1197e59d27 --- /dev/null +++ b/Copy to SD Card root directory to update - Unified Menu Material theme/Language Packs/language_nl.ini @@ -0,0 +1,283 @@ +#### Language Code:NL +## Language Version:20201007 +## Maximum byte per keyword is 250 Bytes. +## Escape characters are not supported except newline '\n' + +label_language:Dutch +label_heat:Verwarm +label_move:Verplaats +label_home:Thuis +label_disable_steppers:Disarm All +label_print:Print +label_extrude:Extrudeer +label_fan:Ventilator +label_settings:Instellingen +label_screen_settings:Scherm +label_machine_settings:Machine +label_feature_settings:Kenmerk +label_sound:Sound +label_touch_sound:Touch sounds +label_toast_sound:Toast Notifications +label_alert_sound:Popups and Alerts +label_shut_down:Uitschakelen +label_rgb_settings:LED Kleur +label_rgb_off:LED Uit +label_terminal:Terminal +label_custom:Aangepast +label_leveling:Nivelleren +label_point_1:Punt 1 +label_point_2:Punt 2 +label_point_3:Punt 3 +label_point_4:Punt 4 +label_point_5:Punt 5 +label_bed_leveling:Bed Level +label_bl_complete:Bed Leveling voltooid +label_bl_smart_fill:Missende probe punten\nzijn slim opgevuld.\n \nNote: Vergeet niet op te slaan! +label_bl_enable:BL: aan +label_bl_disable:BL: uit +label_abl:ABL +label_bbl:BBL +label_ubl:UBL +label_mbl:MBL +label_mbl_settings:Mesh Bed Leveling +label_abl_settings:Auto Bed Leveling +label_abl_settings_bbl:Bilinear Bed Leveling +label_abl_settings_ubl:Unified Bed Leveling +label_abl_settings_ubl_save:Sla op naar sleuf +label_abl_settings_ubl_load:Laad van sleuf +label_abl_slot0:Sleuf 0 +label_abl_slot1:Sleuf 1 +label_abl_slot2:Sleuf 2 +label_abl_slot3:Sleuf 3 +label_abl_slot_eeprom:Onthoud sleuf voor\nvolgende reboot?\n(sla op in EEPROM) +label_abl_z:Z vervagen +label_bltouch:BLTouch +label_bltouch_test:Test +label_bltouch_deploy:Gebruiken +label_bltouch_stow:Inzetten +label_bltouch_repeat:Herhaal +label_z_offset:Z Offset +label_probe_offset:Probe Offset +label_home_offset:Home Offset +label_confirmation:Weet u het zeker? +label_down:Omlaag +label_up:Omhoog +label_save:Bewaren +label_restore:Herstellen +label_reset:Reset +label_default:Standaard +label_clear:Clear +label_next:Volgende +label_distance:Afstand +label_invalid_value:Geen correcte waarde/s voorzien! +label_timeout_reached:Time-out bereikt! +label_process_running:Process bezig! +label_process_completed:Process voltooid! +label_process_aborted:Process geannuleerd! +label_inc:Verhogen +label_dec:Verlagen +label_nozzle:Spuitneus +label_bed:Verwarmd bed +label_chamber:Kamer +label_start:Start +label_stop:Stop +label_back:Terug +label_page_up:Blz omhoog +label_page_down:Blz omlaag +label_pause:Pauze +label_resume:Hervatten +label_load:Laden +label_unload:Lossen +label_slow_speed:Traag +label_normal_speed:Normaal +label_fast_speed:Snel +label_fan_full_speed:Volledig +label_fan_half_speed:Half +label_rotate_ui:Draai UI +label_touchscreen_adjust:TSC Aanpassen +label_more:Meer +label_screen_info:Info +label_status:Status +label_simulator_bg_color:Marlin simulator achtergrond kleur +label_simulator_font_color:Marlin simulator tekst kleur +label_white:Wit +label_black:Zwart +label_blue:Blauw +label_red:Rood +label_green:Groen +label_cyan:Cyaan +label_yellow:Geel +label_brown:Bruin +label_gray:Grijs +label_orange:Oranje +label_indigo:Indigo +label_violet:Violet +label_magenta:Magenta +label_purple:Purple +label_lime:Lime +label_darkblue:DarkBlue +label_darkgreen:DarkGreen +label_darkgray:DarkGray +label_disconnect:Loskoppelen +label_baudrate:Baudsnelheid +label_percentage:Percentage +label_babystep:BabyStap +label_percentage_speed:Snelheid +label_percentage_flow:Stromen +label_value_zero:Zero +label_1_degree:1℃ +label_5_degree:5℃ +label_10_degree:10℃ +label_x_inc:X+ +label_y_inc:Y+ +label_z_inc:Z+ +label_x_dec:X- +label_y_dec:Y- +label_z_dec:Z- +label_x:X +label_y:Y +label_z:Z +label_001_mm:0.01mm +label_01_mm:0.1mm +label_1_mm:1mm +label_5_mm:5mm +label_10_mm:10mm +label_100_mm:100mm +label_200_mm:200mm +label_1_percent:1% +label_5_percent:5% +label_10_percent:10% +label_percent_value:%d%% +label_ready:Gereed +label_busy:In verwerking ,wacht aub... +label_unconnected:Geen printer gekoppeld! +label_disconnect_info:De printer kan nu door de computer bestuurd worden! +label_loading:Opladen... +label_power_failed:Verder met printen? +label_continue:Verder +label_cancel:Afbreken +label_adjust_title:Touch Screen Calibratie +label_adjust_info:Klik op de rode punt +label_adjust_ok:Calibratie Gelukt +label_adjust_failed:Calibratie Mislukt, Probeer Opnieuw aub +label_warning:Waarschuwing +label_stop_print:Stop afdruk? +label_confirm:Bevestig +label_tftsd:TFT SD +label_read_tftsd_error:TFT SD leesfout! +label_tftsd_inserted:Kaart geplaatst! +label_tftsd_removed:Kaart verwijdert! +label_u_disk:U Disk +label_read_u_disk_error:U Disk Leesfout! +label_u_disk_inserted:U Disk geplaatst! +label_u_disk_removed:U Disk verwijdert! +label_onboardsd:OnboardSD +label_read_onboardsd_error:Onboard SD-kaart leesfout! +label_filament_sensor:Filament sensor +label_filament_runout:filament op! +label_preheat:Voorverwarmen +label_preheat_both:Beide +label_is_pause:Kan niet extruderen\ntijdens printen,\nPauzeer printen? +label_auto_shut_down:Auto Power +label_unifiedmove:Beweging +label_unifiedheat:Verwarm/Ventilator +label_cooldown:Afkoelen +label_emergencystop:NOODSTOP +label_touch_to_exit:Aanraken om te verlaten +label_mainmenu:Menu +label_wait_temp_shut_down:Wacht tot de temperatuur\nvan de spuitkop\nlager dan %d℃ is +label_force_shut_down:Forceer Afsluiten +label_shutting_down:Afsluiten... +label_parameter_setting:Parameter +label_on:AAN +label_off:UIT +label_smart:SLIM +label_terminal_ack:Laat ACK in Terminal zien +label_invert_xaxis:Inverteer X Axis +label_invert_yaxis:Inverteer Y Axis +label_invert_zaxis:Inverteer Z Axis +label_move_speed:Bewegingssnelheid(X Y Z) +label_knob_led:Draaiknop LED +label_knob_led_idle:Draaiknop LED inactief +label_m0_pause:Gepauseerd door M0 commando +label_send_start_gcode:Start Gcode before print +label_send_end_gcode:End Gcode after print +label_send_cancel_gcode:Cancel Gcode +label_persistent_status_info:Aanhoudende statusinfo +label_file_listmode:Files viewer List Mode +label_current_setting:Driver stroom (mA) +label_steps_setting:Stappen permm +label_maxfeedrate:Max Feed Rate +label_maxacceleration:Max Acceleratie +label_acceleration:Acceleratie +label_print_acceleration:Afdruk Acceleratie +label_retract_acceleration:Retract Acceleratie +label_travel_acceleration:Travel Acceleratie +label_jerk:Jerk +label_junction_deviation:Junction Deviation +label_bump_sensitivity:TMC bump sensitiviteit +label_fwretract:FW Retraction +label_fwrecover:FW Retraction Recover +label_lin_advance:Linear Advance +label_reset_settings_info:Reset alle instellingen \naar de standaard waardes? +label_reset_settings_done:Reset van alle instellingen\nis succesvol gelukt.\nHerstart alstublieft het apparaat. +label_info:Info +label_lcd_brightness:LCD Brightness +label_lcd_brightness_dim:LCD Brightness dim +label_lcd_dim_idle_timer:LCD dim idle timer +label_5_seconds:5 Sec. +label_10_seconds:10 Sec. +label_30_seconds:30 Sec. +label_60_seconds:1 Min. +label_120_seconds:2 Min. +label_300_seconds:5 Min. +label_custom_seconds:Custom +label_sequential_mode:Sequential mode +label_st7920_fullscreen:Marlin mode in fullscreen +label_plr_en:Power loss recovery +label_setting_save:Save settings +label_setting_reset:Reset instellingen +label_setting_restore:Herstel instellingen +label_eeprom_settings:EEPROM +label_eeprom_save_info:Sla printer instellingen\nop naar EEPROM? +label_eeprom_restore_info:Herlaad instellingen van \nde EEPROM? +label_eeprom_reset_info:Reset EEPROM naar de standaard printer instellingen? +label_retract_feedrate:Retract feedrate +label_retract_length:Retract length +label_retract_swap_length:Retract swap length +label_retract_z_lift:Z lift on retraction +label_retract_auto:Auto Firmware Retract +label_recover_feedrate:Recover feedrate +label_swap_recover_feedrate:Swap recover feedrate +label_recover_length:Extra recover length +label_swap_recover_length:Extra recover swap length +label_start_print:Start afdruk:\n %s? +label_ack_notification:ACK notification style +label_leveling_edge_distance:Bed edge distance +label_xy_unlock:Ontgrendel XY +label_tuning:Tuning +label_pid:PID +label_pid_title:PID autotune +label_pid_start_info:PID autotune zal starten.\nDit kan een paar minuten duren.\nDoorgaan? +label_pid_start_info_2:PID autotune is bezig! +label_pid_start_info_3:Raak het scherm NIET aan totdat deze klaar is (groene LED aan)! +label_tune_extruder:Tune steps +label_tune_ext_extrude_100:Ext. 100mm +label_tune_ext_temp:Extruder tuning | Heat +label_tune_ext_templow:Desired temperature too low!\nMinimum temperature: %d C +label_tune_ext_desiredval:Temperature is not yet at the desired value +label_tune_ext_mark120mm:Mark 120 mm on your fillament\nPress '%s' when ready\nMeasure remaining length\nafter extruding +label_tune_ext_heatoff:Turn the heater off? +label_tune_ext_adj_esteps:Adjust E-Steps +label_tune_ext_esteps_saved:New E-steps saved!\nDon't forget to\nsave it in EEPROM\nNew value: %0.2f +label_tune_ext_measured:Length remaining: +label_tune_ext_old_estep:Old e-steps: %0.2f +label_tune_ext_new_estep:New e-steps: %0.2f +label_connection_settings:Connecties +label_offset_tool:Offset 2nd Nozzle +label_hybrid_threshold:TMC HybridThreshold +label_notifications:Notifications +label_mesh_editor:Mesh edit +label_mesh_tuner:Mesh tuner +label_case_light:Case light + diff --git a/Copy to SD Card root directory to update - Unified Menu Material theme/Language Packs/language_pl.ini b/Copy to SD Card root directory to update - Unified Menu Material theme/Language Packs/language_pl.ini index fcb5155b72..24ef5ddc29 100644 --- a/Copy to SD Card root directory to update - Unified Menu Material theme/Language Packs/language_pl.ini +++ b/Copy to SD Card root directory to update - Unified Menu Material theme/Language Packs/language_pl.ini @@ -279,4 +279,5 @@ label_hybrid_threshold:TMC HybridThreshold label_notifications:Notifications label_mesh_editor:Mesh edit label_mesh_tuner:Mesh tuner +label_case_light:Case light diff --git a/Copy to SD Card root directory to update - Unified Menu Material theme/Language Packs/language_pt.ini b/Copy to SD Card root directory to update - Unified Menu Material theme/Language Packs/language_pt.ini index 85fd0c4148..b7277958a1 100644 --- a/Copy to SD Card root directory to update - Unified Menu Material theme/Language Packs/language_pt.ini +++ b/Copy to SD Card root directory to update - Unified Menu Material theme/Language Packs/language_pt.ini @@ -279,4 +279,5 @@ label_hybrid_threshold:TMC HybridThreshold label_notifications:Notifications label_mesh_editor:Mesh edit label_mesh_tuner:Mesh tuner +label_case_light:Case light diff --git a/Copy to SD Card root directory to update - Unified Menu Material theme/Language Packs/language_ru.ini b/Copy to SD Card root directory to update - Unified Menu Material theme/Language Packs/language_ru.ini index 9343e7656d..dbfb922f1e 100644 --- a/Copy to SD Card root directory to update - Unified Menu Material theme/Language Packs/language_ru.ini +++ b/Copy to SD Card root directory to update - Unified Menu Material theme/Language Packs/language_ru.ini @@ -279,4 +279,5 @@ label_hybrid_threshold:TMC гибридный порог label_notifications:Уведомления label_mesh_editor:Сетка ред. label_mesh_tuner:Сетка настр. +label_case_light:Case light diff --git a/Copy to SD Card root directory to update - Unified Menu Material theme/Language Packs/language_sk.ini b/Copy to SD Card root directory to update - Unified Menu Material theme/Language Packs/language_sk.ini index 5977ede91a..7cb5427bce 100644 --- a/Copy to SD Card root directory to update - Unified Menu Material theme/Language Packs/language_sk.ini +++ b/Copy to SD Card root directory to update - Unified Menu Material theme/Language Packs/language_sk.ini @@ -279,4 +279,5 @@ label_hybrid_threshold:TMC HybridThreshold label_notifications:Notifications label_mesh_editor:Mesh edit label_mesh_tuner:Mesh tuner +label_case_light:Case light diff --git a/Copy to SD Card root directory to update - Unified Menu Material theme/Language Packs/language_sl.ini b/Copy to SD Card root directory to update - Unified Menu Material theme/Language Packs/language_sl.ini index 7f2e8db26a..5654f4bff2 100644 --- a/Copy to SD Card root directory to update - Unified Menu Material theme/Language Packs/language_sl.ini +++ b/Copy to SD Card root directory to update - Unified Menu Material theme/Language Packs/language_sl.ini @@ -279,4 +279,5 @@ label_hybrid_threshold:TMC HybridThreshold label_notifications:Notifications label_mesh_editor:Mesh edit label_mesh_tuner:Mesh tuner +label_case_light:Case light diff --git a/Copy to SD Card root directory to update - Unified Menu Material theme/Language Packs/language_tc.ini b/Copy to SD Card root directory to update - Unified Menu Material theme/Language Packs/language_tc.ini index 763f74014e..366afe7d18 100644 --- a/Copy to SD Card root directory to update - Unified Menu Material theme/Language Packs/language_tc.ini +++ b/Copy to SD Card root directory to update - Unified Menu Material theme/Language Packs/language_tc.ini @@ -279,4 +279,5 @@ label_hybrid_threshold:TMC HybridThreshold label_notifications:Notifications label_mesh_editor:Mesh edit label_mesh_tuner:Mesh tuner +label_case_light:Case light diff --git a/Copy to SD Card root directory to update - Unified Menu Material theme/Language Packs/language_tr.ini b/Copy to SD Card root directory to update - Unified Menu Material theme/Language Packs/language_tr.ini index 5fb30a6910..f9fbde4e01 100644 --- a/Copy to SD Card root directory to update - Unified Menu Material theme/Language Packs/language_tr.ini +++ b/Copy to SD Card root directory to update - Unified Menu Material theme/Language Packs/language_tr.ini @@ -279,4 +279,5 @@ label_hybrid_threshold:TMC HybridThreshold label_notifications:Notifications label_mesh_editor:Mesh edit label_mesh_tuner:Mesh tuner +label_case_light:Case light diff --git a/Copy to SD Card root directory to update/Language Packs/language_am.ini b/Copy to SD Card root directory to update/Language Packs/language_am.ini index d7ebdfd0b3..5c56c0b96c 100644 --- a/Copy to SD Card root directory to update/Language Packs/language_am.ini +++ b/Copy to SD Card root directory to update/Language Packs/language_am.ini @@ -279,4 +279,5 @@ label_hybrid_threshold:TMC HybridThreshold label_notifications:Notifications label_mesh_editor:Mesh edit label_mesh_tuner:Mesh tuner +label_case_light:Case light diff --git a/Copy to SD Card root directory to update/Language Packs/language_ca.ini b/Copy to SD Card root directory to update/Language Packs/language_ca.ini index 03f0f26620..b097b61404 100644 --- a/Copy to SD Card root directory to update/Language Packs/language_ca.ini +++ b/Copy to SD Card root directory to update/Language Packs/language_ca.ini @@ -279,4 +279,5 @@ label_hybrid_threshold:TMC HybridThreshold label_notifications:Notifications label_mesh_editor:Mesh edit label_mesh_tuner:Mesh tuner +label_case_light:Case light diff --git a/Copy to SD Card root directory to update/Language Packs/language_cn.ini b/Copy to SD Card root directory to update/Language Packs/language_cn.ini index b4ab38a2a3..80b05f9030 100644 --- a/Copy to SD Card root directory to update/Language Packs/language_cn.ini +++ b/Copy to SD Card root directory to update/Language Packs/language_cn.ini @@ -279,4 +279,5 @@ label_hybrid_threshold:TMC HybridThreshold label_notifications:Notifications label_mesh_editor:Mesh edit label_mesh_tuner:Mesh tuner +label_case_light:Case light diff --git a/Copy to SD Card root directory to update/Language Packs/language_cz.ini b/Copy to SD Card root directory to update/Language Packs/language_cz.ini index 855bc63a70..0a03120481 100644 --- a/Copy to SD Card root directory to update/Language Packs/language_cz.ini +++ b/Copy to SD Card root directory to update/Language Packs/language_cz.ini @@ -279,4 +279,5 @@ label_hybrid_threshold:TMC Hybridní práh label_notifications:Oznámení label_mesh_editor:Mesh síť label_mesh_tuner:Mesh nastavení +label_case_light:Case light diff --git a/Copy to SD Card root directory to update/Language Packs/language_de.ini b/Copy to SD Card root directory to update/Language Packs/language_de.ini index cb1b682b07..5eee2103c1 100644 --- a/Copy to SD Card root directory to update/Language Packs/language_de.ini +++ b/Copy to SD Card root directory to update/Language Packs/language_de.ini @@ -279,4 +279,5 @@ label_hybrid_threshold:TMC HybridThreshold label_notifications:Benachrichtigungen label_mesh_editor:Mesh edit. label_mesh_tuner:Mesh anp. +label_case_light:Case light diff --git a/Copy to SD Card root directory to update/Language Packs/language_du.ini b/Copy to SD Card root directory to update/Language Packs/language_du.ini index 437e601a4e..cbc7f64598 100644 --- a/Copy to SD Card root directory to update/Language Packs/language_du.ini +++ b/Copy to SD Card root directory to update/Language Packs/language_du.ini @@ -279,4 +279,5 @@ label_hybrid_threshold:TMC HybridThreshold label_notifications:Notifications label_mesh_editor:Mesh edit label_mesh_tuner:Mesh tuner +label_case_light:Case light diff --git a/Copy to SD Card root directory to update/Language Packs/language_en.ini b/Copy to SD Card root directory to update/Language Packs/language_en.ini index 11a2a72a19..1b324858cb 100644 --- a/Copy to SD Card root directory to update/Language Packs/language_en.ini +++ b/Copy to SD Card root directory to update/Language Packs/language_en.ini @@ -279,4 +279,5 @@ label_hybrid_threshold:TMC HybridThreshold label_notifications:Notifications label_mesh_editor:Mesh edit label_mesh_tuner:Mesh tuner +label_case_light:Case light diff --git a/Copy to SD Card root directory to update/Language Packs/language_es.ini b/Copy to SD Card root directory to update/Language Packs/language_es.ini index 6ea40bedd2..9919e5cc7f 100644 --- a/Copy to SD Card root directory to update/Language Packs/language_es.ini +++ b/Copy to SD Card root directory to update/Language Packs/language_es.ini @@ -279,4 +279,5 @@ label_hybrid_threshold:TMC HybridThreshold label_notifications:Notifications label_mesh_editor:Mesh edit label_mesh_tuner:Mesh tuner +label_case_light:Case light diff --git a/Copy to SD Card root directory to update/Language Packs/language_fr.ini b/Copy to SD Card root directory to update/Language Packs/language_fr.ini index 8ed054ab74..b6041ea167 100644 --- a/Copy to SD Card root directory to update/Language Packs/language_fr.ini +++ b/Copy to SD Card root directory to update/Language Packs/language_fr.ini @@ -279,4 +279,5 @@ label_hybrid_threshold:Seuil Hybride TMC label_notifications:Notifications label_mesh_editor:Maillage label_mesh_tuner:Edition du maillage +label_case_light:Case light diff --git a/Copy to SD Card root directory to update/Language Packs/language_gr.ini b/Copy to SD Card root directory to update/Language Packs/language_gr.ini index 3321184407..f8f05d12c3 100644 --- a/Copy to SD Card root directory to update/Language Packs/language_gr.ini +++ b/Copy to SD Card root directory to update/Language Packs/language_gr.ini @@ -279,4 +279,5 @@ label_hybrid_threshold:TMC HybridThreshold label_notifications:Notifications label_mesh_editor:Mesh edit label_mesh_tuner:Mesh tuner +label_case_light:Case light diff --git a/Copy to SD Card root directory to update/Language Packs/language_hu.ini b/Copy to SD Card root directory to update/Language Packs/language_hu.ini index 1c946db21a..5b62dcdff3 100644 --- a/Copy to SD Card root directory to update/Language Packs/language_hu.ini +++ b/Copy to SD Card root directory to update/Language Packs/language_hu.ini @@ -279,4 +279,5 @@ label_hybrid_threshold:TMC Hibrid Küszöbérték label_notifications:Értesítések label_mesh_editor:Mesh edit label_mesh_tuner:Mesh tuner +label_case_light:Case light diff --git a/Copy to SD Card root directory to update/Language Packs/language_it.ini b/Copy to SD Card root directory to update/Language Packs/language_it.ini index 0bb1caf720..cd92ad8311 100644 --- a/Copy to SD Card root directory to update/Language Packs/language_it.ini +++ b/Copy to SD Card root directory to update/Language Packs/language_it.ini @@ -279,4 +279,5 @@ label_hybrid_threshold:TMC Soglia Modo Ibrido label_notifications:Notifiche label_mesh_editor:Mesh edit label_mesh_tuner:Mesh tuner +label_case_light:Case light diff --git a/Copy to SD Card root directory to update/Language Packs/language_jp.ini b/Copy to SD Card root directory to update/Language Packs/language_jp.ini index 691c1f6a51..9adea325b8 100644 --- a/Copy to SD Card root directory to update/Language Packs/language_jp.ini +++ b/Copy to SD Card root directory to update/Language Packs/language_jp.ini @@ -279,4 +279,5 @@ label_hybrid_threshold:TMC HybridThreshold label_notifications:Notifications label_mesh_editor:Mesh edit label_mesh_tuner:Mesh tuner +label_case_light:Case light diff --git a/Copy to SD Card root directory to update/Language Packs/language_nl.ini b/Copy to SD Card root directory to update/Language Packs/language_nl.ini new file mode 100644 index 0000000000..1197e59d27 --- /dev/null +++ b/Copy to SD Card root directory to update/Language Packs/language_nl.ini @@ -0,0 +1,283 @@ +#### Language Code:NL +## Language Version:20201007 +## Maximum byte per keyword is 250 Bytes. +## Escape characters are not supported except newline '\n' + +label_language:Dutch +label_heat:Verwarm +label_move:Verplaats +label_home:Thuis +label_disable_steppers:Disarm All +label_print:Print +label_extrude:Extrudeer +label_fan:Ventilator +label_settings:Instellingen +label_screen_settings:Scherm +label_machine_settings:Machine +label_feature_settings:Kenmerk +label_sound:Sound +label_touch_sound:Touch sounds +label_toast_sound:Toast Notifications +label_alert_sound:Popups and Alerts +label_shut_down:Uitschakelen +label_rgb_settings:LED Kleur +label_rgb_off:LED Uit +label_terminal:Terminal +label_custom:Aangepast +label_leveling:Nivelleren +label_point_1:Punt 1 +label_point_2:Punt 2 +label_point_3:Punt 3 +label_point_4:Punt 4 +label_point_5:Punt 5 +label_bed_leveling:Bed Level +label_bl_complete:Bed Leveling voltooid +label_bl_smart_fill:Missende probe punten\nzijn slim opgevuld.\n \nNote: Vergeet niet op te slaan! +label_bl_enable:BL: aan +label_bl_disable:BL: uit +label_abl:ABL +label_bbl:BBL +label_ubl:UBL +label_mbl:MBL +label_mbl_settings:Mesh Bed Leveling +label_abl_settings:Auto Bed Leveling +label_abl_settings_bbl:Bilinear Bed Leveling +label_abl_settings_ubl:Unified Bed Leveling +label_abl_settings_ubl_save:Sla op naar sleuf +label_abl_settings_ubl_load:Laad van sleuf +label_abl_slot0:Sleuf 0 +label_abl_slot1:Sleuf 1 +label_abl_slot2:Sleuf 2 +label_abl_slot3:Sleuf 3 +label_abl_slot_eeprom:Onthoud sleuf voor\nvolgende reboot?\n(sla op in EEPROM) +label_abl_z:Z vervagen +label_bltouch:BLTouch +label_bltouch_test:Test +label_bltouch_deploy:Gebruiken +label_bltouch_stow:Inzetten +label_bltouch_repeat:Herhaal +label_z_offset:Z Offset +label_probe_offset:Probe Offset +label_home_offset:Home Offset +label_confirmation:Weet u het zeker? +label_down:Omlaag +label_up:Omhoog +label_save:Bewaren +label_restore:Herstellen +label_reset:Reset +label_default:Standaard +label_clear:Clear +label_next:Volgende +label_distance:Afstand +label_invalid_value:Geen correcte waarde/s voorzien! +label_timeout_reached:Time-out bereikt! +label_process_running:Process bezig! +label_process_completed:Process voltooid! +label_process_aborted:Process geannuleerd! +label_inc:Verhogen +label_dec:Verlagen +label_nozzle:Spuitneus +label_bed:Verwarmd bed +label_chamber:Kamer +label_start:Start +label_stop:Stop +label_back:Terug +label_page_up:Blz omhoog +label_page_down:Blz omlaag +label_pause:Pauze +label_resume:Hervatten +label_load:Laden +label_unload:Lossen +label_slow_speed:Traag +label_normal_speed:Normaal +label_fast_speed:Snel +label_fan_full_speed:Volledig +label_fan_half_speed:Half +label_rotate_ui:Draai UI +label_touchscreen_adjust:TSC Aanpassen +label_more:Meer +label_screen_info:Info +label_status:Status +label_simulator_bg_color:Marlin simulator achtergrond kleur +label_simulator_font_color:Marlin simulator tekst kleur +label_white:Wit +label_black:Zwart +label_blue:Blauw +label_red:Rood +label_green:Groen +label_cyan:Cyaan +label_yellow:Geel +label_brown:Bruin +label_gray:Grijs +label_orange:Oranje +label_indigo:Indigo +label_violet:Violet +label_magenta:Magenta +label_purple:Purple +label_lime:Lime +label_darkblue:DarkBlue +label_darkgreen:DarkGreen +label_darkgray:DarkGray +label_disconnect:Loskoppelen +label_baudrate:Baudsnelheid +label_percentage:Percentage +label_babystep:BabyStap +label_percentage_speed:Snelheid +label_percentage_flow:Stromen +label_value_zero:Zero +label_1_degree:1℃ +label_5_degree:5℃ +label_10_degree:10℃ +label_x_inc:X+ +label_y_inc:Y+ +label_z_inc:Z+ +label_x_dec:X- +label_y_dec:Y- +label_z_dec:Z- +label_x:X +label_y:Y +label_z:Z +label_001_mm:0.01mm +label_01_mm:0.1mm +label_1_mm:1mm +label_5_mm:5mm +label_10_mm:10mm +label_100_mm:100mm +label_200_mm:200mm +label_1_percent:1% +label_5_percent:5% +label_10_percent:10% +label_percent_value:%d%% +label_ready:Gereed +label_busy:In verwerking ,wacht aub... +label_unconnected:Geen printer gekoppeld! +label_disconnect_info:De printer kan nu door de computer bestuurd worden! +label_loading:Opladen... +label_power_failed:Verder met printen? +label_continue:Verder +label_cancel:Afbreken +label_adjust_title:Touch Screen Calibratie +label_adjust_info:Klik op de rode punt +label_adjust_ok:Calibratie Gelukt +label_adjust_failed:Calibratie Mislukt, Probeer Opnieuw aub +label_warning:Waarschuwing +label_stop_print:Stop afdruk? +label_confirm:Bevestig +label_tftsd:TFT SD +label_read_tftsd_error:TFT SD leesfout! +label_tftsd_inserted:Kaart geplaatst! +label_tftsd_removed:Kaart verwijdert! +label_u_disk:U Disk +label_read_u_disk_error:U Disk Leesfout! +label_u_disk_inserted:U Disk geplaatst! +label_u_disk_removed:U Disk verwijdert! +label_onboardsd:OnboardSD +label_read_onboardsd_error:Onboard SD-kaart leesfout! +label_filament_sensor:Filament sensor +label_filament_runout:filament op! +label_preheat:Voorverwarmen +label_preheat_both:Beide +label_is_pause:Kan niet extruderen\ntijdens printen,\nPauzeer printen? +label_auto_shut_down:Auto Power +label_unifiedmove:Beweging +label_unifiedheat:Verwarm/Ventilator +label_cooldown:Afkoelen +label_emergencystop:NOODSTOP +label_touch_to_exit:Aanraken om te verlaten +label_mainmenu:Menu +label_wait_temp_shut_down:Wacht tot de temperatuur\nvan de spuitkop\nlager dan %d℃ is +label_force_shut_down:Forceer Afsluiten +label_shutting_down:Afsluiten... +label_parameter_setting:Parameter +label_on:AAN +label_off:UIT +label_smart:SLIM +label_terminal_ack:Laat ACK in Terminal zien +label_invert_xaxis:Inverteer X Axis +label_invert_yaxis:Inverteer Y Axis +label_invert_zaxis:Inverteer Z Axis +label_move_speed:Bewegingssnelheid(X Y Z) +label_knob_led:Draaiknop LED +label_knob_led_idle:Draaiknop LED inactief +label_m0_pause:Gepauseerd door M0 commando +label_send_start_gcode:Start Gcode before print +label_send_end_gcode:End Gcode after print +label_send_cancel_gcode:Cancel Gcode +label_persistent_status_info:Aanhoudende statusinfo +label_file_listmode:Files viewer List Mode +label_current_setting:Driver stroom (mA) +label_steps_setting:Stappen permm +label_maxfeedrate:Max Feed Rate +label_maxacceleration:Max Acceleratie +label_acceleration:Acceleratie +label_print_acceleration:Afdruk Acceleratie +label_retract_acceleration:Retract Acceleratie +label_travel_acceleration:Travel Acceleratie +label_jerk:Jerk +label_junction_deviation:Junction Deviation +label_bump_sensitivity:TMC bump sensitiviteit +label_fwretract:FW Retraction +label_fwrecover:FW Retraction Recover +label_lin_advance:Linear Advance +label_reset_settings_info:Reset alle instellingen \naar de standaard waardes? +label_reset_settings_done:Reset van alle instellingen\nis succesvol gelukt.\nHerstart alstublieft het apparaat. +label_info:Info +label_lcd_brightness:LCD Brightness +label_lcd_brightness_dim:LCD Brightness dim +label_lcd_dim_idle_timer:LCD dim idle timer +label_5_seconds:5 Sec. +label_10_seconds:10 Sec. +label_30_seconds:30 Sec. +label_60_seconds:1 Min. +label_120_seconds:2 Min. +label_300_seconds:5 Min. +label_custom_seconds:Custom +label_sequential_mode:Sequential mode +label_st7920_fullscreen:Marlin mode in fullscreen +label_plr_en:Power loss recovery +label_setting_save:Save settings +label_setting_reset:Reset instellingen +label_setting_restore:Herstel instellingen +label_eeprom_settings:EEPROM +label_eeprom_save_info:Sla printer instellingen\nop naar EEPROM? +label_eeprom_restore_info:Herlaad instellingen van \nde EEPROM? +label_eeprom_reset_info:Reset EEPROM naar de standaard printer instellingen? +label_retract_feedrate:Retract feedrate +label_retract_length:Retract length +label_retract_swap_length:Retract swap length +label_retract_z_lift:Z lift on retraction +label_retract_auto:Auto Firmware Retract +label_recover_feedrate:Recover feedrate +label_swap_recover_feedrate:Swap recover feedrate +label_recover_length:Extra recover length +label_swap_recover_length:Extra recover swap length +label_start_print:Start afdruk:\n %s? +label_ack_notification:ACK notification style +label_leveling_edge_distance:Bed edge distance +label_xy_unlock:Ontgrendel XY +label_tuning:Tuning +label_pid:PID +label_pid_title:PID autotune +label_pid_start_info:PID autotune zal starten.\nDit kan een paar minuten duren.\nDoorgaan? +label_pid_start_info_2:PID autotune is bezig! +label_pid_start_info_3:Raak het scherm NIET aan totdat deze klaar is (groene LED aan)! +label_tune_extruder:Tune steps +label_tune_ext_extrude_100:Ext. 100mm +label_tune_ext_temp:Extruder tuning | Heat +label_tune_ext_templow:Desired temperature too low!\nMinimum temperature: %d C +label_tune_ext_desiredval:Temperature is not yet at the desired value +label_tune_ext_mark120mm:Mark 120 mm on your fillament\nPress '%s' when ready\nMeasure remaining length\nafter extruding +label_tune_ext_heatoff:Turn the heater off? +label_tune_ext_adj_esteps:Adjust E-Steps +label_tune_ext_esteps_saved:New E-steps saved!\nDon't forget to\nsave it in EEPROM\nNew value: %0.2f +label_tune_ext_measured:Length remaining: +label_tune_ext_old_estep:Old e-steps: %0.2f +label_tune_ext_new_estep:New e-steps: %0.2f +label_connection_settings:Connecties +label_offset_tool:Offset 2nd Nozzle +label_hybrid_threshold:TMC HybridThreshold +label_notifications:Notifications +label_mesh_editor:Mesh edit +label_mesh_tuner:Mesh tuner +label_case_light:Case light + diff --git a/Copy to SD Card root directory to update/Language Packs/language_pl.ini b/Copy to SD Card root directory to update/Language Packs/language_pl.ini index fcb5155b72..24ef5ddc29 100644 --- a/Copy to SD Card root directory to update/Language Packs/language_pl.ini +++ b/Copy to SD Card root directory to update/Language Packs/language_pl.ini @@ -279,4 +279,5 @@ label_hybrid_threshold:TMC HybridThreshold label_notifications:Notifications label_mesh_editor:Mesh edit label_mesh_tuner:Mesh tuner +label_case_light:Case light diff --git a/Copy to SD Card root directory to update/Language Packs/language_pt.ini b/Copy to SD Card root directory to update/Language Packs/language_pt.ini index 85fd0c4148..b7277958a1 100644 --- a/Copy to SD Card root directory to update/Language Packs/language_pt.ini +++ b/Copy to SD Card root directory to update/Language Packs/language_pt.ini @@ -279,4 +279,5 @@ label_hybrid_threshold:TMC HybridThreshold label_notifications:Notifications label_mesh_editor:Mesh edit label_mesh_tuner:Mesh tuner +label_case_light:Case light diff --git a/Copy to SD Card root directory to update/Language Packs/language_ru.ini b/Copy to SD Card root directory to update/Language Packs/language_ru.ini index 9343e7656d..dbfb922f1e 100644 --- a/Copy to SD Card root directory to update/Language Packs/language_ru.ini +++ b/Copy to SD Card root directory to update/Language Packs/language_ru.ini @@ -279,4 +279,5 @@ label_hybrid_threshold:TMC гибридный порог label_notifications:Уведомления label_mesh_editor:Сетка ред. label_mesh_tuner:Сетка настр. +label_case_light:Case light diff --git a/Copy to SD Card root directory to update/Language Packs/language_sk.ini b/Copy to SD Card root directory to update/Language Packs/language_sk.ini index 5977ede91a..7cb5427bce 100644 --- a/Copy to SD Card root directory to update/Language Packs/language_sk.ini +++ b/Copy to SD Card root directory to update/Language Packs/language_sk.ini @@ -279,4 +279,5 @@ label_hybrid_threshold:TMC HybridThreshold label_notifications:Notifications label_mesh_editor:Mesh edit label_mesh_tuner:Mesh tuner +label_case_light:Case light diff --git a/Copy to SD Card root directory to update/Language Packs/language_sl.ini b/Copy to SD Card root directory to update/Language Packs/language_sl.ini index 7f2e8db26a..5654f4bff2 100644 --- a/Copy to SD Card root directory to update/Language Packs/language_sl.ini +++ b/Copy to SD Card root directory to update/Language Packs/language_sl.ini @@ -279,4 +279,5 @@ label_hybrid_threshold:TMC HybridThreshold label_notifications:Notifications label_mesh_editor:Mesh edit label_mesh_tuner:Mesh tuner +label_case_light:Case light diff --git a/Copy to SD Card root directory to update/Language Packs/language_tc.ini b/Copy to SD Card root directory to update/Language Packs/language_tc.ini index 763f74014e..366afe7d18 100644 --- a/Copy to SD Card root directory to update/Language Packs/language_tc.ini +++ b/Copy to SD Card root directory to update/Language Packs/language_tc.ini @@ -279,4 +279,5 @@ label_hybrid_threshold:TMC HybridThreshold label_notifications:Notifications label_mesh_editor:Mesh edit label_mesh_tuner:Mesh tuner +label_case_light:Case light diff --git a/Copy to SD Card root directory to update/Language Packs/language_tr.ini b/Copy to SD Card root directory to update/Language Packs/language_tr.ini index 5fb30a6910..f9fbde4e01 100644 --- a/Copy to SD Card root directory to update/Language Packs/language_tr.ini +++ b/Copy to SD Card root directory to update/Language Packs/language_tr.ini @@ -279,4 +279,5 @@ label_hybrid_threshold:TMC HybridThreshold label_notifications:Notifications label_mesh_editor:Mesh edit label_mesh_tuner:Mesh tuner +label_case_light:Case light diff --git a/TFT/src/User/API/BabystepControl.h b/TFT/src/User/API/BabystepControl.h index 36a7e6d8e9..fe9f450b51 100644 --- a/TFT/src/User/API/BabystepControl.h +++ b/TFT/src/User/API/BabystepControl.h @@ -1,5 +1,4 @@ -#ifndef _BABYSTEP_CONTROL_H_ -#define _BABYSTEP_CONTROL_H_ +#pragma once #ifdef __cplusplus extern "C" { @@ -28,5 +27,3 @@ float babystepUpdateValueByEncoder(float unit, int8_t direction); #ifdef __cplusplus } #endif - -#endif diff --git a/TFT/src/User/API/Colors.h b/TFT/src/User/API/Colors.h index f827505c0e..7e12454471 100644 --- a/TFT/src/User/API/Colors.h +++ b/TFT/src/User/API/Colors.h @@ -1,6 +1,4 @@ - -#ifndef _COLORS_H_ -#define _COLORS_H_ +#pragma once #ifdef __cplusplus extern "C" { @@ -56,5 +54,3 @@ extern const LABEL lcd_color_names[LCD_COLOR_COUNT]; #ifdef __cplusplus } #endif - -#endif diff --git a/TFT/src/User/API/FanControl.h b/TFT/src/User/API/FanControl.h index 936117cf25..13aee8cb70 100644 --- a/TFT/src/User/API/FanControl.h +++ b/TFT/src/User/API/FanControl.h @@ -1,5 +1,4 @@ -#ifndef _FANCONTROL_H_ -#define _FANCONTROL_H_ +#pragma once #ifdef __cplusplus extern "C" { @@ -35,5 +34,3 @@ void fanSpeedQuerySetWait(bool wait); #ifdef __cplusplus } #endif - -#endif diff --git a/TFT/src/User/API/HomeOffsetControl.h b/TFT/src/User/API/HomeOffsetControl.h index 031ec79174..5caa55842e 100644 --- a/TFT/src/User/API/HomeOffsetControl.h +++ b/TFT/src/User/API/HomeOffsetControl.h @@ -1,5 +1,4 @@ -#ifndef _HOME_OFFSET_CONTROL_H_ -#define _HOME_OFFSET_CONTROL_H_ +#pragma once #ifdef __cplusplus extern "C" { @@ -14,5 +13,3 @@ float homeOffsetGetValue(void); #ifdef __cplusplus } #endif - -#endif diff --git a/TFT/src/User/API/LCD_Encoder.h b/TFT/src/User/API/LCD_Encoder.h index 97a53b1946..40399ab7f9 100644 --- a/TFT/src/User/API/LCD_Encoder.h +++ b/TFT/src/User/API/LCD_Encoder.h @@ -1,5 +1,4 @@ -#ifndef _LCD_ENCODER_H_ -#define _LCD_ENCODER_H_ +#pragma once #ifdef __cplusplus extern "C" { @@ -42,5 +41,3 @@ void sendEncoder(uint8_t num); #ifdef __cplusplus } #endif - -#endif diff --git a/TFT/src/User/API/Language/Language.c b/TFT/src/User/API/Language/Language.c index 201a90b36b..941e166273 100644 --- a/TFT/src/User/API/Language/Language.c +++ b/TFT/src/User/API/Language/Language.c @@ -29,7 +29,7 @@ #elif DEFAULT_LANGUAGE == SLOVAK #include "language_sk.h" #elif DEFAULT_LANGUAGE == DUTCH -#include "language_du.h" +#include "language_nl.h" #elif DEFAULT_LANGUAGE == HUNGARIAN #include "language_hu.h" #elif DEFAULT_LANGUAGE == TURKISH diff --git a/TFT/src/User/API/Language/Language.h b/TFT/src/User/API/Language/Language.h index d3cca10f36..7d9acf107c 100644 --- a/TFT/src/User/API/Language/Language.h +++ b/TFT/src/User/API/Language/Language.h @@ -1,5 +1,4 @@ -#ifndef _LANGUAGE_H_ -#define _LANGUAGE_H_ +#pragma once #ifdef __cplusplus extern "C" { @@ -68,5 +67,3 @@ bool loadLabelText(uint8_t * buf, uint16_t index); #ifdef __cplusplus } #endif - -#endif diff --git a/TFT/src/User/API/Language/language_am.h b/TFT/src/User/API/Language/language_am.h index 907825fa32..73b16d52f7 100644 --- a/TFT/src/User/API/Language/language_am.h +++ b/TFT/src/User/API/Language/language_am.h @@ -1,5 +1,4 @@ -#ifndef _LANGUAGE_AM_H_ -#define _LANGUAGE_AM_H_ +#pragma once #define STRING_LANGUAGE "Հայերեն" #define STRING_HEAT "Ջերմություն" @@ -278,5 +277,3 @@ #define STRING_MESH_EDITOR "Mesh edit" #define STRING_MESH_TUNER "Mesh tuner" #define STRING_CASE_LIGHT "Case light" - -#endif diff --git a/TFT/src/User/API/Language/language_ca.h b/TFT/src/User/API/Language/language_ca.h index 664433a85e..1520838c6c 100644 --- a/TFT/src/User/API/Language/language_ca.h +++ b/TFT/src/User/API/Language/language_ca.h @@ -1,5 +1,4 @@ -#ifndef _LANGUAGE_CA_H_ -#define _LANGUAGE_CA_H_ +#pragma once #define STRING_LANGUAGE "Català" #define STRING_HEAT "Escalfar" @@ -279,4 +278,3 @@ #define STRING_MESH_TUNER "Mesh tuner" #define STRING_CASE_LIGHT "Case light" -#endif diff --git a/TFT/src/User/API/Language/language_cn.h b/TFT/src/User/API/Language/language_cn.h index 2e16344fef..a58a07201d 100644 --- a/TFT/src/User/API/Language/language_cn.h +++ b/TFT/src/User/API/Language/language_cn.h @@ -1,5 +1,4 @@ -#ifndef _LANGUAGE_CN_H_ -#define _LANGUAGE_CN_H_ +#pragma once #define STRING_LANGUAGE "简体中文" #define STRING_HEAT "加热" @@ -278,5 +277,3 @@ #define STRING_MESH_EDITOR "Mesh edit" #define STRING_MESH_TUNER "Mesh tuner" #define STRING_CASE_LIGHT "Case light" - -#endif diff --git a/TFT/src/User/API/Language/language_cz.h b/TFT/src/User/API/Language/language_cz.h index 352e9caf0d..1a4f49cc38 100644 --- a/TFT/src/User/API/Language/language_cz.h +++ b/TFT/src/User/API/Language/language_cz.h @@ -1,5 +1,4 @@ -#ifndef _LANGUAGE_CZ_H_ -#define _LANGUAGE_CZ_H_ +#pragma once #define STRING_LANGUAGE "Čeština" #define STRING_HEAT "Teplota" @@ -278,5 +277,3 @@ #define STRING_MESH_EDITOR "Mesh síť" #define STRING_MESH_TUNER "Mesh nastavení" #define STRING_CASE_LIGHT "Case light" - -#endif diff --git a/TFT/src/User/API/Language/language_de.h b/TFT/src/User/API/Language/language_de.h index 23263872ba..5e09df40fc 100644 --- a/TFT/src/User/API/Language/language_de.h +++ b/TFT/src/User/API/Language/language_de.h @@ -1,5 +1,4 @@ -#ifndef _LANGUAGE_DE_H_ -#define _LANGUAGE_DE_H_ +#pragma once #define STRING_LANGUAGE "Deutsch" #define STRING_HEAT "heizen" @@ -278,5 +277,3 @@ #define STRING_MESH_EDITOR "Mesh edit." #define STRING_MESH_TUNER "Mesh anp." #define STRING_CASE_LIGHT "Case light" - -#endif diff --git a/TFT/src/User/API/Language/language_en.h b/TFT/src/User/API/Language/language_en.h index e9a32372c8..3881f87827 100644 --- a/TFT/src/User/API/Language/language_en.h +++ b/TFT/src/User/API/Language/language_en.h @@ -1,5 +1,4 @@ -#ifndef _LANGUAGE_EN_H_ -#define _LANGUAGE_EN_H_ +#pragma once #define STRING_LANGUAGE "English" #define STRING_HEAT "Heat" @@ -278,5 +277,3 @@ #define STRING_MESH_EDITOR "Mesh edit" #define STRING_MESH_TUNER "Mesh tuner" #define STRING_CASE_LIGHT "Case light" - -#endif diff --git a/TFT/src/User/API/Language/language_es.h b/TFT/src/User/API/Language/language_es.h index d51ccc0216..6d7ac17307 100644 --- a/TFT/src/User/API/Language/language_es.h +++ b/TFT/src/User/API/Language/language_es.h @@ -1,5 +1,4 @@ -#ifndef _LANGUAGE_ES_H_ -#define _LANGUAGE_ES_H_ +#pragma once #define STRING_LANGUAGE "Español" #define STRING_HEAT "Calentar" @@ -278,5 +277,3 @@ #define STRING_MESH_EDITOR "Mesh edit" #define STRING_MESH_TUNER "Mesh tuner" #define STRING_CASE_LIGHT "Case light" - -#endif diff --git a/TFT/src/User/API/Language/language_fr.h b/TFT/src/User/API/Language/language_fr.h index 39fb8688bb..9218365209 100644 --- a/TFT/src/User/API/Language/language_fr.h +++ b/TFT/src/User/API/Language/language_fr.h @@ -1,5 +1,4 @@ -#ifndef _LANGUAGE_FR_H_ -#define _LANGUAGE_FR_H_ +#pragma once #define STRING_LANGUAGE "Français" #define STRING_HEAT "Chauffer" @@ -278,5 +277,3 @@ #define STRING_MESH_EDITOR "Maillage" #define STRING_MESH_TUNER "Edition du maillage" #define STRING_CASE_LIGHT "Case light" - -#endif diff --git a/TFT/src/User/API/Language/language_gr.h b/TFT/src/User/API/Language/language_gr.h index ace6583cf0..bd94e4d653 100644 --- a/TFT/src/User/API/Language/language_gr.h +++ b/TFT/src/User/API/Language/language_gr.h @@ -1,5 +1,4 @@ -#ifndef _LANGUAGE_GR_H_ -#define _LANGUAGE_GR_H_ +#pragma once #define STRING_LANGUAGE "Ελληνικά" #define STRING_HEAT "Θέρμανση" @@ -278,5 +277,3 @@ #define STRING_MESH_EDITOR "Mesh edit" #define STRING_MESH_TUNER "Mesh tuner" #define STRING_CASE_LIGHT "Case light" - -#endif diff --git a/TFT/src/User/API/Language/language_hu.h b/TFT/src/User/API/Language/language_hu.h index decf4370ab..77b00dfada 100644 --- a/TFT/src/User/API/Language/language_hu.h +++ b/TFT/src/User/API/Language/language_hu.h @@ -1,5 +1,4 @@ -#ifndef _LANGUAGE_HU_H_ -#define _LANGUAGE_HU_H_ +#pragma once #define STRING_LANGUAGE "Magyar" #define STRING_HEAT "Fűtés" @@ -278,5 +277,3 @@ #define STRING_MESH_EDITOR "Mesh edit" #define STRING_MESH_TUNER "Mesh tuner" #define STRING_CASE_LIGHT "Case light" - -#endif diff --git a/TFT/src/User/API/Language/language_it.h b/TFT/src/User/API/Language/language_it.h index cdc8160322..bf07c4e86c 100644 --- a/TFT/src/User/API/Language/language_it.h +++ b/TFT/src/User/API/Language/language_it.h @@ -1,5 +1,4 @@ -#ifndef _LANGUAGE_IT_H_ -#define _LANGUAGE_IT_H_ +#pragma once #define STRING_LANGUAGE "Italiano" #define STRING_HEAT "Riscalda" @@ -278,5 +277,3 @@ #define STRING_MESH_EDITOR "Mesh edit" #define STRING_MESH_TUNER "Mesh tuner" #define STRING_CASE_LIGHT "Case light" - -#endif diff --git a/TFT/src/User/API/Language/language_jp.h b/TFT/src/User/API/Language/language_jp.h index cf9a469343..b3877bb21f 100644 --- a/TFT/src/User/API/Language/language_jp.h +++ b/TFT/src/User/API/Language/language_jp.h @@ -1,5 +1,4 @@ -#ifndef _LANGUAGE_JP_H_ -#define _LANGUAGE_JP_H_ +#pragma once #define STRING_LANGUAGE "日本語" #define STRING_HEAT "あたため" @@ -278,5 +277,3 @@ #define STRING_MESH_EDITOR "Mesh edit" #define STRING_MESH_TUNER "Mesh tuner" #define STRING_CASE_LIGHT "Case light" - -#endif diff --git a/TFT/src/User/API/Language/language_keywords.h b/TFT/src/User/API/Language/language_keywords.h index c1d71d8966..517cd1c657 100644 --- a/TFT/src/User/API/Language/language_keywords.h +++ b/TFT/src/User/API/Language/language_keywords.h @@ -1,5 +1,4 @@ -#ifndef _LANGUAGE_KEYWORDS_H_ -#define _LANGUAGE_KEYWORDS_H_ +#pragma once #ifdef __cplusplus extern "C" { @@ -289,5 +288,3 @@ extern "C" { #ifdef __cplusplus } #endif - -#endif diff --git a/TFT/src/User/API/Language/language_du.h b/TFT/src/User/API/Language/language_nl.h similarity index 99% rename from TFT/src/User/API/Language/language_du.h rename to TFT/src/User/API/Language/language_nl.h index 286657c096..54519f59a5 100644 --- a/TFT/src/User/API/Language/language_du.h +++ b/TFT/src/User/API/Language/language_nl.h @@ -1,5 +1,4 @@ -#ifndef _LANGUAGE_DU_H_ -#define _LANGUAGE_DU_H_ +#pragma once #define STRING_LANGUAGE "Dutch" #define STRING_HEAT "Verwarm" @@ -278,5 +277,3 @@ #define STRING_MESH_EDITOR "Mesh edit" #define STRING_MESH_TUNER "Mesh tuner" #define STRING_CASE_LIGHT "Case light" - -#endif diff --git a/TFT/src/User/API/Language/language_pl.h b/TFT/src/User/API/Language/language_pl.h index 1541567d6f..97d3e04a91 100644 --- a/TFT/src/User/API/Language/language_pl.h +++ b/TFT/src/User/API/Language/language_pl.h @@ -1,5 +1,4 @@ -#ifndef _LANGUAGE_PL_H_ -#define _LANGUAGE_PL_H_ +#pragma once #define STRING_LANGUAGE "Polski" #define STRING_HEAT "Temp." @@ -278,5 +277,3 @@ #define STRING_MESH_EDITOR "Mesh edit" #define STRING_MESH_TUNER "Mesh tuner" #define STRING_CASE_LIGHT "Case light" - -#endif diff --git a/TFT/src/User/API/Language/language_pt.h b/TFT/src/User/API/Language/language_pt.h index 9fbb1b1b2a..50be00e142 100644 --- a/TFT/src/User/API/Language/language_pt.h +++ b/TFT/src/User/API/Language/language_pt.h @@ -1,5 +1,4 @@ -#ifndef _LANGUAGE_PT_H_ -#define _LANGUAGE_PT_H_ +#pragma once #define STRING_LANGUAGE "Portugues" #define STRING_HEAT "Aquecer" @@ -278,5 +277,3 @@ #define STRING_MESH_EDITOR "Mesh edit" #define STRING_MESH_TUNER "Mesh tuner" #define STRING_CASE_LIGHT "Case light" - -#endif diff --git a/TFT/src/User/API/Language/language_ru.h b/TFT/src/User/API/Language/language_ru.h index bde5c9f1db..71178db703 100644 --- a/TFT/src/User/API/Language/language_ru.h +++ b/TFT/src/User/API/Language/language_ru.h @@ -1,5 +1,4 @@ -#ifndef _LANGUAGE_RU_H_ -#define _LANGUAGE_RU_H_ +#pragma once #define STRING_LANGUAGE "Русский" #define STRING_HEAT "Нагрев" @@ -278,5 +277,3 @@ #define STRING_MESH_EDITOR "Сетка ред." #define STRING_MESH_TUNER "Сетка настр." #define STRING_CASE_LIGHT "Case light" - -#endif diff --git a/TFT/src/User/API/Language/language_sk.h b/TFT/src/User/API/Language/language_sk.h index 690f1d06fe..2e94660635 100644 --- a/TFT/src/User/API/Language/language_sk.h +++ b/TFT/src/User/API/Language/language_sk.h @@ -1,5 +1,4 @@ -#ifndef _LANGUAGE_SK_H_ -#define _LANGUAGE_SK_H_ +#pragma once #define STRING_LANGUAGE "Slovensky" #define STRING_HEAT "Teplota" @@ -278,5 +277,3 @@ #define STRING_MESH_EDITOR "Mesh edit" #define STRING_MESH_TUNER "Mesh tuner" #define STRING_CASE_LIGHT "Case light" - -#endif diff --git a/TFT/src/User/API/Language/language_sl.h b/TFT/src/User/API/Language/language_sl.h index f5690a4e58..d11b2c74c4 100644 --- a/TFT/src/User/API/Language/language_sl.h +++ b/TFT/src/User/API/Language/language_sl.h @@ -1,5 +1,4 @@ -#ifndef _LANGUAGE_SL_H_ -#define _LANGUAGE_SL_H_ +#pragma once #define STRING_LANGUAGE "Slovenski" #define STRING_HEAT "Gretje" @@ -278,5 +277,3 @@ #define STRING_MESH_EDITOR "Mesh edit" #define STRING_MESH_TUNER "Mesh tuner" #define STRING_CASE_LIGHT "Case light" - -#endif diff --git a/TFT/src/User/API/Language/language_tc.h b/TFT/src/User/API/Language/language_tc.h index e80baef81f..c4ecec4f07 100644 --- a/TFT/src/User/API/Language/language_tc.h +++ b/TFT/src/User/API/Language/language_tc.h @@ -1,5 +1,4 @@ -#ifndef _LANGUAGE_TC_H_ -#define _LANGUAGE_TC_H_ +#pragma once #define STRING_LANGUAGE "正體中文" #define STRING_HEAT "加熱" @@ -278,5 +277,3 @@ #define STRING_MESH_EDITOR "Mesh edit" #define STRING_MESH_TUNER "Mesh tuner" #define STRING_CASE_LIGHT "Case light" - -#endif diff --git a/TFT/src/User/API/Language/language_tr.h b/TFT/src/User/API/Language/language_tr.h index 9ba8d14f12..0ea6f747c5 100644 --- a/TFT/src/User/API/Language/language_tr.h +++ b/TFT/src/User/API/Language/language_tr.h @@ -1,5 +1,4 @@ -#ifndef _LANGUAGE_TR_H_ -#define _LANGUAGE_TR_H_ +#pragma once #define STRING_LANGUAGE "Türkçe" #define STRING_HEAT "Isıt" @@ -278,5 +277,3 @@ #define STRING_MESH_EDITOR "Mesh edit" #define STRING_MESH_TUNER "Mesh tuner" #define STRING_CASE_LIGHT "Case light" - -#endif diff --git a/TFT/src/User/API/Language/utf8_decode.h b/TFT/src/User/API/Language/utf8_decode.h index 67db426c0a..5d25cc2230 100644 --- a/TFT/src/User/API/Language/utf8_decode.h +++ b/TFT/src/User/API/Language/utf8_decode.h @@ -1,54 +1,51 @@ -#ifndef _UTF8_DECODE_H_ -#define _UTF8_DECODE_H_ - -#ifdef __cplusplus -extern "C" { -#endif - -#include -#include - -typedef struct { - uint32_t startCodePoint; // start unicode code point for language - uint32_t endCodePoint; // end unicode code point for language - uint8_t pixelHeight; // font display pixel height - uint8_t pixelWidth; // font display pixel width - uint32_t bitMapStartAddr; // dot matrix font library start address in w25qxx - uint8_t bitMapHeight; // dot matrix font library pixel height - uint8_t bitMapWidth; // dot matrix font library pixel width - uint32_t bitMapStartCodePoint; // the first character code point in this font bitmap file -}FONT_BITMAP; - -typedef struct -{ - // encode info - uint8_t bytes; // Number of bytes occupied by one character - uint32_t codePoint; // Actual encoding index of characters - // font info - uint8_t pixelHeight; // The pixel height of a character display - uint8_t pixelWidth; // The pixel width of a character display - uint32_t bitMapAddr; // the address of font bitmap in w25qxx -}CHAR_INFO; - -//Enable Large font -void setLargeFont(bool status); - -//get status of large font -bool isLargeFont(void); - -void getCharacterInfo(const uint8_t *ch, CHAR_INFO *pInfo); -uint16_t getUTF8Length(const uint8_t *const str); - -uint16_t GUI_StrPixelWidth_str(const uint8_t *str); -uint16_t GUI_StrPixelWidth_label(int16_t index); - -#define GUI_StrPixelWidth(X) _Generic(((X+0)), \ - const u8*: GUI_StrPixelWidth_str, \ - const u8* const: GUI_StrPixelWidth_str, \ - u8*: GUI_StrPixelWidth_str, \ - default: GUI_StrPixelWidth_label)(X) -#ifdef __cplusplus -} -#endif - -#endif +#pragma once + +#ifdef __cplusplus +extern "C" { +#endif + +#include +#include + +typedef struct { + uint32_t startCodePoint; // start unicode code point for language + uint32_t endCodePoint; // end unicode code point for language + uint8_t pixelHeight; // font display pixel height + uint8_t pixelWidth; // font display pixel width + uint32_t bitMapStartAddr; // dot matrix font library start address in w25qxx + uint8_t bitMapHeight; // dot matrix font library pixel height + uint8_t bitMapWidth; // dot matrix font library pixel width + uint32_t bitMapStartCodePoint; // the first character code point in this font bitmap file +}FONT_BITMAP; + +typedef struct +{ + // encode info + uint8_t bytes; // Number of bytes occupied by one character + uint32_t codePoint; // Actual encoding index of characters + // font info + uint8_t pixelHeight; // The pixel height of a character display + uint8_t pixelWidth; // The pixel width of a character display + uint32_t bitMapAddr; // the address of font bitmap in w25qxx +}CHAR_INFO; + +//Enable Large font +void setLargeFont(bool status); + +//get status of large font +bool isLargeFont(void); + +void getCharacterInfo(const uint8_t *ch, CHAR_INFO *pInfo); +uint16_t getUTF8Length(const uint8_t *const str); + +uint16_t GUI_StrPixelWidth_str(const uint8_t *str); +uint16_t GUI_StrPixelWidth_label(int16_t index); + +#define GUI_StrPixelWidth(X) _Generic(((X+0)), \ + const u8*: GUI_StrPixelWidth_str, \ + const u8* const: GUI_StrPixelWidth_str, \ + u8*: GUI_StrPixelWidth_str, \ + default: GUI_StrPixelWidth_label)(X) +#ifdef __cplusplus +} +#endif diff --git a/TFT/src/User/API/MachineParameters.h b/TFT/src/User/API/MachineParameters.h index 215316ab6e..36e6c04933 100644 --- a/TFT/src/User/API/MachineParameters.h +++ b/TFT/src/User/API/MachineParameters.h @@ -1,5 +1,4 @@ -#ifndef _MACHINEPARAMETERS_H_ -#define _MACHINEPARAMETERS_H_ +#pragma once #ifdef __cplusplus extern "C" { @@ -114,5 +113,3 @@ void resetEepromSettings(void); #ifdef __cplusplus } #endif - -#endif diff --git a/TFT/src/User/API/Notification.h b/TFT/src/User/API/Notification.h index bf8cb66a69..9a3f04aaa8 100644 --- a/TFT/src/User/API/Notification.h +++ b/TFT/src/User/API/Notification.h @@ -1,5 +1,4 @@ -#ifndef _NOTIFICATION_H_ -#define _NOTIFICATION_H_ +#pragma once #ifdef __cplusplus extern "C" { @@ -47,5 +46,3 @@ void setNotificationHandler(void (*handler)()); #ifdef __cplusplus } #endif - -#endif diff --git a/TFT/src/User/API/Printing.h b/TFT/src/User/API/Printing.h index f8e82b1598..bcf14e09ad 100644 --- a/TFT/src/User/API/Printing.h +++ b/TFT/src/User/API/Printing.h @@ -1,5 +1,4 @@ -#ifndef _PRINTING_H_ -#define _PRINTING_H_ +#pragma once #ifdef __cplusplus extern "C" { @@ -88,5 +87,3 @@ void loopCheckPrinting(void); #ifdef __cplusplus } #endif - -#endif diff --git a/TFT/src/User/API/ProbeHeightControl.h b/TFT/src/User/API/ProbeHeightControl.h index 9ca817fd9f..999326738e 100644 --- a/TFT/src/User/API/ProbeHeightControl.h +++ b/TFT/src/User/API/ProbeHeightControl.h @@ -1,5 +1,4 @@ -#ifndef _PROBE_HEIGHT_CONTROL_H_ -#define _PROBE_HEIGHT_CONTROL_H_ +#pragma once #ifdef __cplusplus extern "C" { @@ -32,5 +31,3 @@ void probeHeightQueryCoord(void); #ifdef __cplusplus } #endif - -#endif diff --git a/TFT/src/User/API/ProbeOffsetControl.h b/TFT/src/User/API/ProbeOffsetControl.h index 74fecadb48..0b27cf6461 100644 --- a/TFT/src/User/API/ProbeOffsetControl.h +++ b/TFT/src/User/API/ProbeOffsetControl.h @@ -1,5 +1,4 @@ -#ifndef _PROBE_OFFSET_CONTROL_H_ -#define _PROBE_OFFSET_CONTROL_H_ +#pragma once #ifdef __cplusplus extern "C" { @@ -38,5 +37,3 @@ float probeOffsetUpdateValueByEncoder(float unit, int8_t direction); #ifdef __cplusplus } #endif - -#endif diff --git a/TFT/src/User/API/Settings.h b/TFT/src/User/API/Settings.h index 17fd233401..eca74549a8 100644 --- a/TFT/src/User/API/Settings.h +++ b/TFT/src/User/API/Settings.h @@ -1,5 +1,4 @@ -#ifndef _SETTINGS_H_ -#define _SETTINGS_H_ +#pragma once #ifdef __cplusplus extern "C" { @@ -241,5 +240,3 @@ bool getFlashSignStatus(int index); #ifdef __cplusplus } #endif - -#endif diff --git a/TFT/src/User/API/SpeedControl.h b/TFT/src/User/API/SpeedControl.h index a8232c8807..a9a382d9bc 100644 --- a/TFT/src/User/API/SpeedControl.h +++ b/TFT/src/User/API/SpeedControl.h @@ -1,5 +1,4 @@ -#ifndef _SPEEDCONTROL_H_ -#define _SPEEDCONTROL_H_ +#pragma once #ifdef __cplusplus extern "C" { @@ -23,5 +22,3 @@ void speedQuery(void); #ifdef __cplusplus } #endif - -#endif diff --git a/TFT/src/User/API/Temperature.h b/TFT/src/User/API/Temperature.h index 96a1de9414..aea0d0fd08 100644 --- a/TFT/src/User/API/Temperature.h +++ b/TFT/src/User/API/Temperature.h @@ -1,5 +1,4 @@ -#ifndef _TEMPERATURE_H_ -#define _TEMPERATURE_H_ +#pragma once #ifdef __cplusplus extern "C" { @@ -85,5 +84,3 @@ void loopCheckHeater(void); #ifdef __cplusplus } #endif - -#endif diff --git a/TFT/src/User/API/UI/GUI.h b/TFT/src/User/API/UI/GUI.h index 2d56f1c860..5ed13e9a42 100644 --- a/TFT/src/User/API/UI/GUI.h +++ b/TFT/src/User/API/UI/GUI.h @@ -1,5 +1,4 @@ -#ifndef _GUI_H_ -#define _GUI_H_ +#pragma once #ifdef __cplusplus extern "C" { @@ -191,5 +190,3 @@ void GUI_DrawWindow(const WINDOW *window, const uint8_t *title, const uint8_t *i #ifdef __cplusplus } #endif - -#endif diff --git a/TFT/src/User/API/UI/HD44780_Simulator.h b/TFT/src/User/API/UI/HD44780_Simulator.h index f4f439badd..85a6874781 100644 --- a/TFT/src/User/API/UI/HD44780_Simulator.h +++ b/TFT/src/User/API/UI/HD44780_Simulator.h @@ -1,5 +1,4 @@ -#ifndef _HD44780_SIMULATOR_H_ -#define _HD44780_SIMULATOR_H_ +#pragma once #ifdef __cplusplus extern "C" { @@ -10,9 +9,9 @@ extern "C" { #define XROWS 20 #define YROWS 4 -#define FONT_PIXEL (MIN(LCD_WIDTH/XROWS/BYTE_WIDTH,LCD_HEIGHT/YROWS/BYTE_HEIGHT)) +#define FONT_PIXEL (MIN(LCD_WIDTH/XROWS/BYTE_WIDTH,LCD_HEIGHT/YROWS/BYTE_HEIGHT)) #define BITMAP_PIXEL (MIN(LCD_WIDTH/XROWS/6,LCD_HEIGHT/YROWS/9)) -#define XSTART ((LCD_WIDTH - FONT_PIXEL*XROWS*BYTE_WIDTH) / 2) +#define XSTART ((LCD_WIDTH - FONT_PIXEL*XROWS*BYTE_WIDTH) / 2) #define YSTART ((LCD_HEIGHT - FONT_PIXEL*YROWS*BYTE_HEIGHT) / 2) #define YOFFSET (BYTE_HEIGHT*FONT_PIXEL-9*BITMAP_PIXEL) @@ -176,5 +175,3 @@ void HD44780_ParseRecv(uint8_t val); #ifdef __cplusplus } #endif - -#endif diff --git a/TFT/src/User/API/UI/Numpad.h b/TFT/src/User/API/UI/Numpad.h index ceba10f0b9..b70c22de02 100644 --- a/TFT/src/User/API/UI/Numpad.h +++ b/TFT/src/User/API/UI/Numpad.h @@ -1,5 +1,4 @@ -#ifndef _NUMPAD_H_ -#define _NUMPAD_H_ +#pragma once #ifdef __cplusplus extern "C" { @@ -62,5 +61,3 @@ int32_t numPadInt(u8* title, int32_t old_val, int32_t reset_val, bool negative); #ifdef __cplusplus } #endif - -#endif diff --git a/TFT/src/User/API/UI/ST7920_Simulator.h b/TFT/src/User/API/UI/ST7920_Simulator.h index 4a9d300705..2e0d10e4d7 100644 --- a/TFT/src/User/API/UI/ST7920_Simulator.h +++ b/TFT/src/User/API/UI/ST7920_Simulator.h @@ -1,5 +1,4 @@ -#ifndef _ST7920_SIMULATOR_H_ -#define _ST7920_SIMULATOR_H_ +#pragma once #ifdef __cplusplus extern "C" { @@ -211,5 +210,3 @@ void ST7920_ParseRecv(uint8_t val); #ifdef __cplusplus } #endif - -#endif diff --git a/TFT/src/User/API/UI/list_item.h b/TFT/src/User/API/UI/list_item.h index f55ee18d52..1edcd05f93 100644 --- a/TFT/src/User/API/UI/list_item.h +++ b/TFT/src/User/API/UI/list_item.h @@ -1,7 +1,6 @@ // *List View Mode ** Author: Gurmeet Athwal https://github.com/guruathwal ** -#ifndef _LIST_ITEM_H_ -#define _LIST_ITEM_H_ +#pragma once #ifdef __cplusplus extern "C" { @@ -67,5 +66,3 @@ GUI_POINT getTextStartPoint(uint16_t sx, uint16_t sy, uint16_t ex, uint16_t ey, #ifdef __cplusplus } #endif - -#endif diff --git a/TFT/src/User/API/UI/list_widget.h b/TFT/src/User/API/UI/list_widget.h index f5b5cb06e7..5460626220 100644 --- a/TFT/src/User/API/UI/list_widget.h +++ b/TFT/src/User/API/UI/list_widget.h @@ -1,5 +1,4 @@ -#ifndef _LIST_WIDGET_H_ -#define _LIST_WIDGET_H_ +#pragma once #ifdef __cplusplus extern "C" { @@ -19,5 +18,3 @@ uint8_t listWidgetGetCurPage(void); #ifdef __cplusplus } #endif - -#endif diff --git a/TFT/src/User/API/UI/touch_process.h b/TFT/src/User/API/UI/touch_process.h index e3cce31523..08f4a323fb 100644 --- a/TFT/src/User/API/UI/touch_process.h +++ b/TFT/src/User/API/UI/touch_process.h @@ -1,5 +1,4 @@ -#ifndef _TOUCH_PROCESS_H_ -#define _TOUCH_PROCESS_H_ +#pragma once #ifdef __cplusplus extern "C" { @@ -36,5 +35,3 @@ extern void TS_Get_Coordinates(u16 *x, u16 *y); #ifdef __cplusplus } #endif - -#endif diff --git a/TFT/src/User/API/UI/ui_draw.h b/TFT/src/User/API/UI/ui_draw.h index 50cc6c2e16..6831cb08a2 100644 --- a/TFT/src/User/API/UI/ui_draw.h +++ b/TFT/src/User/API/UI/ui_draw.h @@ -1,5 +1,4 @@ -#ifndef _UI_DRAW_H_ -#define _UI_DRAW_H_ +#pragma once #ifdef __cplusplus extern "C" { @@ -38,5 +37,3 @@ void ICON_PressedDisplay(u16 sx,u16 sy, u8 icon); #ifdef __cplusplus } #endif - -#endif diff --git a/TFT/src/User/API/boot.h b/TFT/src/User/API/boot.h index fa773d984e..9630e1d7d6 100644 --- a/TFT/src/User/API/boot.h +++ b/TFT/src/User/API/boot.h @@ -1,5 +1,4 @@ -#ifndef _BOOT_H_ -#define _BOOT_H_ +#pragma once #ifdef __cplusplus extern "C" { @@ -104,5 +103,3 @@ bool bmpDecode(char *bmp, u32 addr); #ifdef __cplusplus } #endif - -#endif diff --git a/TFT/src/User/API/config.h b/TFT/src/User/API/config.h index 8a113f104e..6b1432b61e 100644 --- a/TFT/src/User/API/config.h +++ b/TFT/src/User/API/config.h @@ -1,5 +1,4 @@ -#ifndef _CONFIG_H_ -#define _CONFIG_H_ +#pragma once #ifdef __cplusplus extern "C" { @@ -228,4 +227,3 @@ enum } #endif -#endif diff --git a/TFT/src/User/API/coordinate.h b/TFT/src/User/API/coordinate.h index a89a382e4c..0ce144ef3d 100644 --- a/TFT/src/User/API/coordinate.h +++ b/TFT/src/User/API/coordinate.h @@ -1,5 +1,4 @@ -#ifndef _COORDINATE_H_ -#define _COORDINATE_H_ +#pragma once #ifdef __cplusplus extern "C" { @@ -47,5 +46,3 @@ void coordinateQuery(void); #ifdef __cplusplus } #endif - -#endif diff --git a/TFT/src/User/API/extend.h b/TFT/src/User/API/extend.h index 7ed228b0db..c92a438cd7 100644 --- a/TFT/src/User/API/extend.h +++ b/TFT/src/User/API/extend.h @@ -1,5 +1,4 @@ -#ifndef _EXTEND_H_ -#define _EXTEND_H_ +#pragma once #ifdef __cplusplus extern "C" { @@ -25,5 +24,3 @@ void loopFrontEndFILRunoutDetect(void); #ifdef __cplusplus } #endif - -#endif diff --git a/TFT/src/User/API/flashStore.h b/TFT/src/User/API/flashStore.h index 7471b3d03c..c9f49982f4 100644 --- a/TFT/src/User/API/flashStore.h +++ b/TFT/src/User/API/flashStore.h @@ -1,5 +1,4 @@ -#ifndef _FLASHSTORE_H_ -#define _FLASHSTORE_H_ +#pragma once #ifdef __cplusplus extern "C" { @@ -19,5 +18,3 @@ bool readIsRestored(void); #ifdef __cplusplus } #endif - -#endif diff --git a/TFT/src/User/API/interfaceCmd.h b/TFT/src/User/API/interfaceCmd.h index d8647f583b..9171e0c15a 100644 --- a/TFT/src/User/API/interfaceCmd.h +++ b/TFT/src/User/API/interfaceCmd.h @@ -1,5 +1,4 @@ -#ifndef _INTERFACECMD_H_ -#define _INTERFACECMD_H_ +#pragma once #ifdef __cplusplus extern "C" { @@ -42,5 +41,3 @@ void sendQueueCmd(void); #ifdef __cplusplus } #endif - -#endif diff --git a/TFT/src/User/API/ledcolor.h b/TFT/src/User/API/ledcolor.h index 1d133d22e1..564aae1792 100644 --- a/TFT/src/User/API/ledcolor.h +++ b/TFT/src/User/API/ledcolor.h @@ -1,5 +1,4 @@ -#ifndef _LEDCOLOR_H_ -#define _LEDCOLOR_H_ +#pragma once #ifdef __cplusplus extern "C" { @@ -173,5 +172,3 @@ extern "C" { #ifdef __cplusplus } #endif - -#endif diff --git a/TFT/src/User/API/menu.h b/TFT/src/User/API/menu.h index b3162fed39..737c20e9ad 100644 --- a/TFT/src/User/API/menu.h +++ b/TFT/src/User/API/menu.h @@ -1,5 +1,4 @@ -#ifndef _MENU_H_ -#define _MENU_H_ +#pragma once #ifdef __cplusplus extern "C" { @@ -181,5 +180,3 @@ void loopProcess (void); #ifdef __cplusplus } #endif - -#endif diff --git a/TFT/src/User/API/parseACK.h b/TFT/src/User/API/parseACK.h index 5c3ebe815b..b3f5b59ee9 100644 --- a/TFT/src/User/API/parseACK.h +++ b/TFT/src/User/API/parseACK.h @@ -1,5 +1,4 @@ -#ifndef _PARSEACK_H_ -#define _PARSEACK_H_ +#pragma once #ifdef __cplusplus extern "C" { @@ -55,6 +54,3 @@ void setIgnoreEcho(ECHO_ID msgId, bool state); #ifdef __cplusplus } #endif - - -#endif diff --git a/TFT/src/User/API/printf/printf.h b/TFT/src/User/API/printf/printf.h index 1d7413fefc..31a39bc997 100644 --- a/TFT/src/User/API/printf/printf.h +++ b/TFT/src/User/API/printf/printf.h @@ -28,9 +28,7 @@ // These routines are thread safe and reentrant. // /////////////////////////////////////////////////////////////////////////////// - -#ifndef _PRINTF_H_ -#define _PRINTF_H_ +#pragma once #include #include @@ -137,6 +135,3 @@ int fctprintf(void (*out)(char character, void* arg), void* arg, const char* for #ifdef __cplusplus } #endif - - -#endif // _PRINTF_H_ diff --git a/TFT/src/User/API/sequential_mode.c b/TFT/src/User/API/sequential_mode.c index bf384cb71b..a90c39d4c1 100644 --- a/TFT/src/User/API/sequential_mode.c +++ b/TFT/src/User/API/sequential_mode.c @@ -4,6 +4,11 @@ uint8_t prevPixelColor = 0; uint8_t waitForNext = 0; bool heatingDone = false; +#ifdef LED_COLOR_PIN + #ifdef LCD_LED_PWM_CHANNEL + bool idle_ledmode_previous = false; + #endif +#endif void setSequentialModeColor(void) { if (waitForNext > 0) @@ -14,15 +19,19 @@ void setSequentialModeColor(void) { if (!isPrinting()) { if (prevPixelColor == 0) + { return; - - //Set neopixel and ledknob to green - storeCmd("M150 R0 U255 B0"); - + } #ifdef LED_COLOR_PIN - WS2812_Send_DAT(LED_GREEN); + #ifdef LCD_LED_PWM_CHANNEL + //Make sure that the knob_led_idle is back in business + if(idle_ledmode_previous) + { + idle_ledmode_previous = false; + infoSettings.knob_led_idle = 1; + } + #endif #endif - //Reset flag heating done heatingDone = false; @@ -31,53 +40,111 @@ void setSequentialModeColor(void) { prevPixelColor = 0; //Turn off neopixels and set knob led back to default - storeCmd("M150 R0 U0 B0"); + //storeCmd("M150 R0 U0 B0"); #ifdef LED_COLOR_PIN #ifdef LCD_LED_PWM_CHANNEL if(infoSettings.knob_led_idle && lcd_dim.dimmed) - WS2812_Send_DAT(led_color[LED_OFF]); + { + WS2812_Send_DAT(LED_OFF); + } else - #endif + { WS2812_Send_DAT(led_color[infoSettings.knob_led_color]); + } + #endif #endif + return; } - } else { + //Set neopixel and ledknob to green + //storeCmd("M150 R0 U255 B0"); + + #ifdef LED_COLOR_PIN + WS2812_Send_DAT(LED_GREEN); + #endif + + } + else + { + if(heatingDone) + { + #ifdef LED_COLOR_PIN + #ifdef LCD_LED_PWM_CHANNEL + //Set the knob_led_idle on again + if(idle_ledmode_previous) + { + idle_ledmode_previous = false; + infoSettings.knob_led_idle = 1; + } + #endif + #endif return; //Go back when preheating is finished + } - //Store current values to reduce cycle time + //Store current target temperature values to reduce cycle time uint16_t hotendTargetTemp = heatGetTargetTemp(0); uint16_t bedTargetTemp = heatGetTargetTemp(BED); - uint16_t hotendCurrentTemp = heatGetCurrentTemp(0); - uint16_t bedCurrentTemp = heatGetCurrentTemp(BED); if (hotendTargetTemp == 0 && bedTargetTemp == 0) + { return; //No temperature set "yet". Do nothing. + } + + #ifdef LED_COLOR_PIN + #ifdef LCD_LED_PWM_CHANNEL + // set the knob_led_idle temperorly to OFF + if(infoSettings.knob_led_idle && !idle_ledmode_previous) + { + idle_ledmode_previous = true; + infoSettings.knob_led_idle = 0; //Temperory turn off led idle + } + #endif + #endif + + //Store current temperature values to reduce cycle time + uint16_t hotendCurrentTemp = heatGetCurrentTemp(0); + uint16_t bedCurrentTemp = heatGetCurrentTemp(BED); uint8_t newLedValue = 0; if (hotendTargetTemp > 0 && bedTargetTemp > 0 && - bedCurrentTemp >= bedTargetTemp - 5) { + bedCurrentTemp >= bedTargetTemp - 5) + { //Only use total temperature when hotend and bed heat up at the same time uint16_t totalTemperature = hotendTargetTemp + bedTargetTemp; newLedValue = map(hotendCurrentTemp + bedCurrentTemp, 0, totalTemperature, 0, 255); - } else { + } + else + { if (hotendTargetTemp == 0) + { newLedValue = map(bedCurrentTemp, 0, bedTargetTemp, 0, 125); + } else - newLedValue = map(hotendCurrentTemp, 0, bedTargetTemp, 125, 255); + { + newLedValue = map(hotendCurrentTemp, 0, hotendTargetTemp, 125, 255); + } } - if (newLedValue > prevPixelColor) { + + if (newLedValue > prevPixelColor) + { // Set the neopixel color - storeCmd("M150 R%i U0 B%i", newLedValue, 255 - newLedValue); + //storeCmd("M150 R%i U0 B%i", newLedValue, 255 - newLedValue); #ifdef LED_COLOR_PIN uint8_t colorRed = newLedValue; uint8_t colorBlue = 255 - newLedValue; - char tempstr[10]; - sprintf(tempstr, "0x0000%X%X", colorRed, colorBlue); - uint32_t newPixelColor; - memcpy(&newPixelColor, tempstr, 10); + char hexRed, hexBlue; + sprintf(&hexRed, "%x", colorRed); + sprintf(&hexBlue, "%x", colorBlue); + uint32_t newPixelColor = 0; + newPixelColor |= (uint32_t)(hexRed) << 8; + newPixelColor |= (uint32_t)(hexBlue); + //WEG + char tempstr[60]; + sprintf(tempstr, "NEW %i | R:%x B:%x", newPixelColor, hexRed, hexBlue); + GUI_DispString(100, 0, (u8 *)tempstr); + //END WEG //Color the Knob led when available WS2812_Send_DAT(newPixelColor); #endif @@ -87,17 +154,23 @@ void setSequentialModeColor(void) { if (hotendTargetTemp > 0 && bedTargetTemp > 0 && hotendCurrentTemp >= hotendTargetTemp - 5 && - bedCurrentTemp >= bedTargetTemp - 5) { + bedCurrentTemp >= bedTargetTemp - 5) + { //Bed and hotend are on temperature. Set neopixel to white - storeCmd("M150 R255 U255 B255"); + //storeCmd("M150 R255 U255 B255"); + //Restore the enocder to the previous state #ifdef LED_COLOR_PIN #ifdef LCD_LED_PWM_CHANNEL if(infoSettings.knob_led_idle && lcd_dim.dimmed) - WS2812_Send_DAT(led_color[LED_OFF]); + { + WS2812_Send_DAT(LED_OFF); + } else - #endif + { WS2812_Send_DAT(led_color[infoSettings.knob_led_color]); + } + #endif #endif //Set the flag heating done to true diff --git a/TFT/src/User/API/sequential_mode.h b/TFT/src/User/API/sequential_mode.h index 60a0b65b7d..0798a2866e 100644 --- a/TFT/src/User/API/sequential_mode.h +++ b/TFT/src/User/API/sequential_mode.h @@ -1,5 +1,4 @@ -#ifndef _sequential_mode_H_ -#define _sequential_mode_H_ +#pragma once #ifdef __cplusplus extern "C" { @@ -10,5 +9,3 @@ void setSequentialModeColor(void); #ifdef __cplusplus } #endif - -#endif diff --git a/TFT/src/User/Configuration.h b/TFT/src/User/Configuration.h index c6059b7dad..946131ff52 100644 --- a/TFT/src/User/Configuration.h +++ b/TFT/src/User/Configuration.h @@ -1,5 +1,5 @@ -#ifndef _CONFIGURATION_H_ -#define _CONFIGURATION_H_ +#pragma once + #define CONFIG_VERSION 20200810 //=========================================================================== //============================= General Settings ============================ @@ -495,4 +495,3 @@ // Cancel G-code - run this G-code after canceling print #define PRINT_CANCEL_GCODE "G28 XY R10\n" // Home XY and raise Z 10mm -#endif diff --git a/TFT/src/User/Fatfs/diskio.h b/TFT/src/User/Fatfs/diskio.h index 8717ce47c7..7e9bdc3431 100644 --- a/TFT/src/User/Fatfs/diskio.h +++ b/TFT/src/User/Fatfs/diskio.h @@ -1,9 +1,8 @@ /*-----------------------------------------------------------------------/ / Low level disk interface modlue include file (C)ChaN, 2019 / /-----------------------------------------------------------------------*/ +#pragma once -#ifndef _DISKIO_DEFINED -#define _DISKIO_DEFINED #ifdef __cplusplus extern "C" { @@ -79,5 +78,3 @@ DRESULT disk_ioctl (BYTE pdrv, BYTE cmd, void* buff); #ifdef __cplusplus } #endif - -#endif diff --git a/TFT/src/User/Fatfs/ff.h b/TFT/src/User/Fatfs/ff.h index 5225041641..e08cfb9544 100644 --- a/TFT/src/User/Fatfs/ff.h +++ b/TFT/src/User/Fatfs/ff.h @@ -17,7 +17,7 @@ / by use of this software. / /----------------------------------------------------------------------------*/ - +#pragma once #ifndef FF_DEFINED #define FF_DEFINED 86606 /* Revision ID */ diff --git a/TFT/src/User/Fatfs/ffconf.h b/TFT/src/User/Fatfs/ffconf.h index 4b9694d714..7c5612e1bd 100644 --- a/TFT/src/User/Fatfs/ffconf.h +++ b/TFT/src/User/Fatfs/ffconf.h @@ -1,3 +1,5 @@ +#pragma once + /*---------------------------------------------------------------------------/ / FatFs Functional Configurations /---------------------------------------------------------------------------*/ diff --git a/TFT/src/User/Fatfs/myfatfs.h b/TFT/src/User/Fatfs/myfatfs.h index 5764e8b6df..c6f5b6bdf1 100644 --- a/TFT/src/User/Fatfs/myfatfs.h +++ b/TFT/src/User/Fatfs/myfatfs.h @@ -1,5 +1,4 @@ -#ifndef _MYFATFS_H_ -#define _MYFATFS_H_ +#pragma once #include "stdbool.h" bool mountSDCard(void); @@ -9,5 +8,3 @@ bool scanPrintFilesFatFs(void); bool f_remove_full_dir(const char* path); bool f_dir_exists(const char* path); bool f_file_exists(const char* path); - -#endif diff --git a/TFT/src/User/Hal/CircularQueue.h b/TFT/src/User/Hal/CircularQueue.h index f3fd476ad0..b5194ae354 100644 --- a/TFT/src/User/Hal/CircularQueue.h +++ b/TFT/src/User/Hal/CircularQueue.h @@ -1,5 +1,4 @@ -#ifndef _CIRCULAR_QUEUE_H_ -#define _CIRCULAR_QUEUE_H_ +#pragma once #ifdef __cplusplus extern "C" { @@ -20,5 +19,3 @@ typedef struct #ifdef __cplusplus } #endif - -#endif diff --git a/TFT/src/User/Hal/HD44780.h b/TFT/src/User/Hal/HD44780.h index ed72e905de..1ba8c07d29 100644 --- a/TFT/src/User/Hal/HD44780.h +++ b/TFT/src/User/Hal/HD44780.h @@ -1,5 +1,4 @@ -#ifndef _HD44780_H -#define _HD44780_H +#pragma once #ifdef __cplusplus extern "C" { @@ -16,5 +15,3 @@ bool HD44780_getData(uint8_t *data); #ifdef __cplusplus } #endif - -#endif diff --git a/TFT/src/User/Hal/LCD_Init.h b/TFT/src/User/Hal/LCD_Init.h index c0e29d2cd2..bb16e115ea 100644 --- a/TFT/src/User/Hal/LCD_Init.h +++ b/TFT/src/User/Hal/LCD_Init.h @@ -1,5 +1,4 @@ -#ifndef _LCD_INIT_H_ -#define _LCD_INIT_H_ +#pragma once #ifdef __cplusplus extern "C" { @@ -73,5 +72,3 @@ void LCD_Init(void); #ifdef __cplusplus } #endif - -#endif diff --git a/TFT/src/User/Hal/STM32Fxx_Pins.h b/TFT/src/User/Hal/STM32Fxx_Pins.h index 363c5dddfd..787e9fdef3 100644 --- a/TFT/src/User/Hal/STM32Fxx_Pins.h +++ b/TFT/src/User/Hal/STM32Fxx_Pins.h @@ -1,5 +1,4 @@ -#ifndef _STM32FXX_PINS_ -#define _STM32FXX_PINS_ +#pragma once #ifdef __cplusplus extern "C" { @@ -211,5 +210,3 @@ extern "C" { #ifdef __cplusplus } #endif - -#endif diff --git a/TFT/src/User/Hal/buzzer.h b/TFT/src/User/Hal/buzzer.h index a5610df4de..acbf446b0a 100644 --- a/TFT/src/User/Hal/buzzer.h +++ b/TFT/src/User/Hal/buzzer.h @@ -1,5 +1,4 @@ -#ifndef _BUZZER_H_ -#define _BUZZER_H_ +#pragma once #ifdef __cplusplus extern "C" { @@ -45,5 +44,3 @@ void loopBuzzer(void); #ifdef __cplusplus } #endif - -#endif diff --git a/TFT/src/User/Hal/sd.h b/TFT/src/User/Hal/sd.h index fe4f62ab97..bfab898207 100644 --- a/TFT/src/User/Hal/sd.h +++ b/TFT/src/User/Hal/sd.h @@ -1,5 +1,4 @@ -#ifndef _SD_H_ -#define _SD_H_ +#pragma once #ifdef __cplusplus extern "C" { @@ -64,5 +63,3 @@ u8 SD_GetCSD(u8 *csd_data); //Read SD card CSD #ifdef __cplusplus } #endif - -#endif diff --git a/TFT/src/User/Hal/sw_spi.h b/TFT/src/User/Hal/sw_spi.h index 06c9c7857c..e17b83cfb6 100644 --- a/TFT/src/User/Hal/sw_spi.h +++ b/TFT/src/User/Hal/sw_spi.h @@ -1,5 +1,4 @@ -#ifndef _SW_SPI_H_ -#define _SW_SPI_H_ +#pragma once #ifdef __cplusplus extern "C" { @@ -37,5 +36,3 @@ void SW_SPI_CS_Set(_SW_SPI *sw_spi, uint8_t level); #ifdef __cplusplus } #endif - -#endif diff --git a/TFT/src/User/Hal/w25qxx.h b/TFT/src/User/Hal/w25qxx.h index 7f163b108b..fd90965a54 100644 --- a/TFT/src/User/Hal/w25qxx.h +++ b/TFT/src/User/Hal/w25qxx.h @@ -1,5 +1,4 @@ -#ifndef _W25QXX_H_ -#define _W25QXX_H_ +#pragma once #ifdef __cplusplus extern "C" { @@ -44,5 +43,3 @@ uint32_t W25Qxx_ReadCapacity(void); #ifdef __cplusplus } #endif - -#endif diff --git a/TFT/src/User/Hal/xpt2046.h b/TFT/src/User/Hal/xpt2046.h index c657c8aecd..080f281c18 100644 --- a/TFT/src/User/Hal/xpt2046.h +++ b/TFT/src/User/Hal/xpt2046.h @@ -1,5 +1,4 @@ -#ifndef _XPT2046_H_ -#define _XPT2046_H_ +#pragma once #ifdef __cplusplus extern "C" { @@ -15,5 +14,3 @@ uint16_t XPT2046_Repeated_Compare_AD(u8 CMD); #ifdef __cplusplus } #endif - -#endif diff --git a/TFT/src/User/Language Packs/language_du.ini b/TFT/src/User/Language Packs/language_nl.ini similarity index 100% rename from TFT/src/User/Language Packs/language_du.ini rename to TFT/src/User/Language Packs/language_nl.ini diff --git a/TFT/src/User/Menu/ABL.h b/TFT/src/User/Menu/ABL.h index aeabe47ae0..c3e5346123 100644 --- a/TFT/src/User/Menu/ABL.h +++ b/TFT/src/User/Menu/ABL.h @@ -1,5 +1,4 @@ -#ifndef _ABL_H_ -#define _ABL_H_ +#pragma once #ifdef __cplusplus extern "C" { @@ -18,5 +17,3 @@ void menuABL(void); #ifdef __cplusplus } #endif - -#endif diff --git a/TFT/src/User/Menu/BLTouch.h b/TFT/src/User/Menu/BLTouch.h index 778316332e..022346f5f3 100644 --- a/TFT/src/User/Menu/BLTouch.h +++ b/TFT/src/User/Menu/BLTouch.h @@ -1,14 +1,11 @@ -#ifndef _BLTOUCH_H_ -#define _BLTOUCH_H_ - -#ifdef __cplusplus -extern "C" { -#endif - -void menuBLTouch(void); - -#ifdef __cplusplus -} -#endif - -#endif +#pragma once + +#ifdef __cplusplus +extern "C" { +#endif + +void menuBLTouch(void); + +#ifdef __cplusplus +} +#endif diff --git a/TFT/src/User/Menu/Babystep.h b/TFT/src/User/Menu/Babystep.h index cc000f720a..e83674eddc 100644 --- a/TFT/src/User/Menu/Babystep.h +++ b/TFT/src/User/Menu/Babystep.h @@ -1,5 +1,4 @@ -#ifndef _BABYSTEP_H_ -#define _BABYSTEP_H_ +#pragma once #ifdef __cplusplus extern "C" { @@ -12,5 +11,3 @@ void menuBabystep(void); #ifdef __cplusplus } #endif - -#endif diff --git a/TFT/src/User/Menu/BedLeveling.h b/TFT/src/User/Menu/BedLeveling.h index 47c3bc9a76..caf43e2af8 100644 --- a/TFT/src/User/Menu/BedLeveling.h +++ b/TFT/src/User/Menu/BedLeveling.h @@ -1,5 +1,4 @@ -#ifndef _BED_LEVELING_H_ -#define _BED_LEVELING_H_ +#pragma once #ifdef __cplusplus extern "C" { @@ -10,5 +9,3 @@ void menuBedLeveling(void); #ifdef __cplusplus } #endif - -#endif diff --git a/TFT/src/User/Menu/ConnectionSettings.h b/TFT/src/User/Menu/ConnectionSettings.h index a041f62892..46b87fdcc0 100644 --- a/TFT/src/User/Menu/ConnectionSettings.h +++ b/TFT/src/User/Menu/ConnectionSettings.h @@ -1,5 +1,4 @@ -#ifndef _CONNECTION_SETTINGS_H_ -#define _CONNECTION_SETTINGS_H_ +#pragma once #ifdef __cplusplus extern "C" { @@ -10,5 +9,3 @@ void menuConnectionSettings(void); #ifdef __cplusplus } #endif - -#endif diff --git a/TFT/src/User/Menu/Extrude.h b/TFT/src/User/Menu/Extrude.h index 1d569dd884..f42d97b89c 100644 --- a/TFT/src/User/Menu/Extrude.h +++ b/TFT/src/User/Menu/Extrude.h @@ -1,5 +1,4 @@ -#ifndef _EXTRUDE_H_ -#define _EXTRUDE_H_ +#pragma once #ifdef __cplusplus extern "C" { @@ -13,5 +12,3 @@ void menuExtrude(void); #ifdef __cplusplus } #endif - -#endif diff --git a/TFT/src/User/Menu/Fan.h b/TFT/src/User/Menu/Fan.h index b9d0a69da4..78c8c91d04 100644 --- a/TFT/src/User/Menu/Fan.h +++ b/TFT/src/User/Menu/Fan.h @@ -1,5 +1,4 @@ -#ifndef _FAN_H_ -#define _FAN_H_ +#pragma once #ifdef __cplusplus extern "C" { @@ -10,5 +9,3 @@ void menuFan(void); #ifdef __cplusplus } #endif - -#endif diff --git a/TFT/src/User/Menu/FeatureSettings.h b/TFT/src/User/Menu/FeatureSettings.h index 07118fcd32..d0ab4ffeec 100644 --- a/TFT/src/User/Menu/FeatureSettings.h +++ b/TFT/src/User/Menu/FeatureSettings.h @@ -1,5 +1,4 @@ -#ifndef _FEATURE_SETTINGS_H_ -#define _FEATURE_SETTINGS_H_ +#pragma once #ifdef __cplusplus extern "C" { @@ -11,5 +10,3 @@ void resetSettings(void); #ifdef __cplusplus } #endif - -#endif diff --git a/TFT/src/User/Menu/Heat.h b/TFT/src/User/Menu/Heat.h index 1c12ccd898..f61cc8832f 100644 --- a/TFT/src/User/Menu/Heat.h +++ b/TFT/src/User/Menu/Heat.h @@ -1,5 +1,4 @@ -#ifndef _HEAT_H_ -#define _HEAT_H_ +#pragma once #ifdef __cplusplus extern "C" { @@ -17,5 +16,3 @@ void heatSetCurrentIndex(uint8_t index); #ifdef __cplusplus } #endif - -#endif diff --git a/TFT/src/User/Menu/Home.h b/TFT/src/User/Menu/Home.h index 605caa09d5..31ac54a1c7 100644 --- a/TFT/src/User/Menu/Home.h +++ b/TFT/src/User/Menu/Home.h @@ -1,5 +1,4 @@ -#ifndef _HOME_H_ -#define _HOME_H_ +#pragma once #ifdef __cplusplus extern "C" { @@ -10,5 +9,3 @@ void menuHome(void); #ifdef __cplusplus } #endif - -#endif diff --git a/TFT/src/User/Menu/Leveling.h b/TFT/src/User/Menu/Leveling.h index b1338a647a..0814968f7f 100644 --- a/TFT/src/User/Menu/Leveling.h +++ b/TFT/src/User/Menu/Leveling.h @@ -1,5 +1,4 @@ -#ifndef _LEVELING_H_ -#define _LEVELING_H_ +#pragma once #ifdef __cplusplus extern "C" { @@ -10,5 +9,3 @@ void menuManualLeveling(void); #ifdef __cplusplus } #endif - -#endif diff --git a/TFT/src/User/Menu/MBL.h b/TFT/src/User/Menu/MBL.h index 2ef4991d87..ac9089d743 100644 --- a/TFT/src/User/Menu/MBL.h +++ b/TFT/src/User/Menu/MBL.h @@ -1,5 +1,4 @@ -#ifndef _MBL_H_ -#define _MBL_H_ +#pragma once #ifdef __cplusplus extern "C" { @@ -15,5 +14,3 @@ void menuMBL(void); #ifdef __cplusplus } #endif - -#endif diff --git a/TFT/src/User/Menu/MachineSettings.h b/TFT/src/User/Menu/MachineSettings.h index 6560edc83a..7984900a0e 100644 --- a/TFT/src/User/Menu/MachineSettings.h +++ b/TFT/src/User/Menu/MachineSettings.h @@ -1,5 +1,4 @@ -#ifndef _MACHINE_SETTINGS_H_ -#define _MACHINE_SETTINGS_H_ +#pragma once #ifdef __cplusplus extern "C" { @@ -14,5 +13,3 @@ void menuCustom(void); #ifdef __cplusplus } #endif - -#endif diff --git a/TFT/src/User/Menu/MainPage.h b/TFT/src/User/Menu/MainPage.h index ea264980f9..666d0c6e52 100644 --- a/TFT/src/User/Menu/MainPage.h +++ b/TFT/src/User/Menu/MainPage.h @@ -1,5 +1,4 @@ -#ifndef _MAINPAGE_H_ -#define _MAINPAGE_H_ +#pragma once #ifdef __cplusplus extern "C" { @@ -11,5 +10,3 @@ void classicMenu(void); #ifdef __cplusplus } #endif - -#endif diff --git a/TFT/src/User/Menu/MarlinMode.h b/TFT/src/User/Menu/MarlinMode.h index a3e840b3d8..35a02255eb 100644 --- a/TFT/src/User/Menu/MarlinMode.h +++ b/TFT/src/User/Menu/MarlinMode.h @@ -1,5 +1,4 @@ -#ifndef _MARLIN_MODE_H_ -#define _MARLIN_MODE_H_ +#pragma once #ifdef __cplusplus extern "C" { @@ -22,5 +21,3 @@ void menuMarlinMode(void); #ifdef __cplusplus } #endif - -#endif diff --git a/TFT/src/User/Menu/MeshEditor.h b/TFT/src/User/Menu/MeshEditor.h index ae2f4029d1..d685076c2a 100644 --- a/TFT/src/User/Menu/MeshEditor.h +++ b/TFT/src/User/Menu/MeshEditor.h @@ -1,5 +1,4 @@ -#ifndef _MESH_EDITOR_H_ -#define _MESH_EDITOR_H_ +#pragma once #ifdef __cplusplus extern "C" { @@ -17,5 +16,3 @@ void menuMeshEditor(void); #ifdef __cplusplus } #endif - -#endif diff --git a/TFT/src/User/Menu/MeshTuner.h b/TFT/src/User/Menu/MeshTuner.h index 422d71210f..d97934aceb 100644 --- a/TFT/src/User/Menu/MeshTuner.h +++ b/TFT/src/User/Menu/MeshTuner.h @@ -1,5 +1,4 @@ -#ifndef _MESH_TUNER_H_ -#define _MESH_TUNER_H_ +#pragma once #ifdef __cplusplus extern "C" { @@ -12,5 +11,3 @@ float menuMeshTuner(uint16_t col, uint16_t row, float value); #ifdef __cplusplus } #endif - -#endif diff --git a/TFT/src/User/Menu/Mode.h b/TFT/src/User/Menu/Mode.h index b9995cf007..264e12c3e8 100644 --- a/TFT/src/User/Menu/Mode.h +++ b/TFT/src/User/Menu/Mode.h @@ -1,5 +1,4 @@ -#ifndef _MODE_H_ -#define _MODE_H_ +#pragma once #ifdef __cplusplus extern "C" { @@ -13,5 +12,3 @@ void Serial_ReSourceInit(void); #ifdef __cplusplus } #endif - -#endif diff --git a/TFT/src/User/Menu/More.h b/TFT/src/User/Menu/More.h index 8d9190495f..b6c787a270 100644 --- a/TFT/src/User/Menu/More.h +++ b/TFT/src/User/Menu/More.h @@ -1,5 +1,4 @@ -#ifndef _MORE_H_ -#define _MORE_H_ +#pragma once #ifdef __cplusplus extern "C" { @@ -10,5 +9,3 @@ void menuMore(void); #ifdef __cplusplus } #endif - -#endif diff --git a/TFT/src/User/Menu/Move.h b/TFT/src/User/Menu/Move.h index 207516e93b..abddcdf7c5 100644 --- a/TFT/src/User/Menu/Move.h +++ b/TFT/src/User/Menu/Move.h @@ -1,5 +1,4 @@ -#ifndef _MOVE_H_ -#define _MOVE_H_ +#pragma once #ifdef __cplusplus extern "C" { @@ -12,5 +11,3 @@ void update_gantry(void); #ifdef __cplusplus } #endif - -#endif diff --git a/TFT/src/User/Menu/NotificationMenu.h b/TFT/src/User/Menu/NotificationMenu.h index 002d5f2c03..4c15022d08 100644 --- a/TFT/src/User/Menu/NotificationMenu.h +++ b/TFT/src/User/Menu/NotificationMenu.h @@ -1,5 +1,4 @@ -#ifndef _NOTIFICAITONMENU_H_ -#define _NOTIFICAITONMENU_H_ +#pragma once #ifdef __cplusplus extern "C" { @@ -12,5 +11,3 @@ void menuNotification(void); #ifdef __cplusplus } #endif - -#endif diff --git a/TFT/src/User/Menu/Parametersetting.h b/TFT/src/User/Menu/Parametersetting.h index 715226c14c..12b37ed0c9 100644 --- a/TFT/src/User/Menu/Parametersetting.h +++ b/TFT/src/User/Menu/Parametersetting.h @@ -1,5 +1,4 @@ -#ifndef _PARAMETERSETTING_H_ -#define _PARAMETERSETTING_H_ +#pragma once #ifdef __cplusplus extern "C" { @@ -21,5 +20,3 @@ int16_t drawTemperatureStatus(void); #ifdef __cplusplus } #endif - -#endif diff --git a/TFT/src/User/Menu/Pid.c b/TFT/src/User/Menu/Pid.c index c2008dbf5d..568c570044 100644 --- a/TFT/src/User/Menu/Pid.c +++ b/TFT/src/User/Menu/Pid.c @@ -51,7 +51,7 @@ void pidUpdateStatus(bool succeeded) else // if all the PID processes terminated, provide the final dialog { pidRunning = false; - + WS2812_Send_DAT(LED_GREEN); // Set encoder LED to GREEN if (pidSucceeded) // if all the PID processes successfully terminated, allow to save to EEPROM { BUZZER_PLAY(sound_success); @@ -167,6 +167,7 @@ void pidStart(void) pidTimeout = OS_GetTimeMs() + PID_PROCESS_TIMEOUT; // set timeout for overall PID process mustStoreCmd("M150 R255 U0 B0\n"); // set LED light to RED + WS2812_Send_DAT(LED_RED); // Set encoder LED to RED mustStoreCmd("M106 S255\n"); // set fan speed to max mustStoreCmd("G4 S1\n"); // wait 1 sec @@ -207,6 +208,7 @@ void pidTemperatureReDraw(bool skip_header) void menuPid(void) { + WS2812_Send_DAT(led_color[infoSettings.knob_led_color]); // Restore encoderled to the default color const ITEM itemPidTool[] = { // icon label {ICON_NOZZLE, LABEL_NOZZLE}, diff --git a/TFT/src/User/Menu/Pid.h b/TFT/src/User/Menu/Pid.h index f37742f410..5ca36dc289 100644 --- a/TFT/src/User/Menu/Pid.h +++ b/TFT/src/User/Menu/Pid.h @@ -1,5 +1,4 @@ -#ifndef _PID_H_ -#define _PID_H_ +#pragma once #ifdef __cplusplus extern "C" { @@ -15,5 +14,3 @@ void menuPid(void); #ifdef __cplusplus } #endif - -#endif diff --git a/TFT/src/User/Menu/Popup.h b/TFT/src/User/Menu/Popup.h index e65bf37d8f..16a01ec3c9 100644 --- a/TFT/src/User/Menu/Popup.h +++ b/TFT/src/User/Menu/Popup.h @@ -1,5 +1,4 @@ -#ifndef _POPUP_H_ -#define _POPUP_H_ +#pragma once #ifdef __cplusplus extern "C" { @@ -51,5 +50,3 @@ void loopPopup(void); #ifdef __cplusplus } #endif - -#endif diff --git a/TFT/src/User/Menu/PowerFailed.h b/TFT/src/User/Menu/PowerFailed.h index 0a377af3fd..25bd9a4af8 100644 --- a/TFT/src/User/Menu/PowerFailed.h +++ b/TFT/src/User/Menu/PowerFailed.h @@ -1,5 +1,4 @@ -#ifndef _POWERFAILED_H_ -#define _POWERFAILED_H_ +#pragma once #ifdef __cplusplus extern "C" { @@ -41,5 +40,3 @@ bool powerFailedlSeek(FIL* fp); #ifdef __cplusplus } #endif - -#endif diff --git a/TFT/src/User/Menu/PreheatMenu.h b/TFT/src/User/Menu/PreheatMenu.h index 0715b45fa5..5c30e9be9a 100644 --- a/TFT/src/User/Menu/PreheatMenu.h +++ b/TFT/src/User/Menu/PreheatMenu.h @@ -1,5 +1,4 @@ -#ifndef _PREHEATMENU_H_ -#define _PREHEATMENU_H_ +#pragma once #ifdef __cplusplus extern "C" { @@ -19,5 +18,3 @@ void menuPreheat(void); #ifdef __cplusplus } #endif - -#endif diff --git a/TFT/src/User/Menu/Print.h b/TFT/src/User/Menu/Print.h index 5446e2065b..ae62222a56 100644 --- a/TFT/src/User/Menu/Print.h +++ b/TFT/src/User/Menu/Print.h @@ -1,5 +1,4 @@ -#ifndef _PRINT_H_ -#define _PRINT_H_ +#pragma once #ifdef __cplusplus extern "C" { @@ -13,5 +12,3 @@ void menuPrint(void); #ifdef __cplusplus } #endif - -#endif diff --git a/TFT/src/User/Menu/PrintingMenu.h b/TFT/src/User/Menu/PrintingMenu.h index fbf8573de7..3d11d0a9bf 100644 --- a/TFT/src/User/Menu/PrintingMenu.h +++ b/TFT/src/User/Menu/PrintingMenu.h @@ -1,5 +1,4 @@ -#ifndef _PRINTINGMENU_H_ -#define _PRINTINGMENU_H_ +#pragma once #ifdef __cplusplus extern "C" { @@ -15,5 +14,3 @@ void menuPrinting(void); #ifdef __cplusplus } #endif - -#endif diff --git a/TFT/src/User/Menu/ProbeOffset.h b/TFT/src/User/Menu/ProbeOffset.h index cbd9f40040..0c6e292b1a 100644 --- a/TFT/src/User/Menu/ProbeOffset.h +++ b/TFT/src/User/Menu/ProbeOffset.h @@ -1,5 +1,4 @@ -#ifndef _PROBE_OFFSET_H_ -#define _PROBE_OFFSET_H_ +#pragma once #ifdef __cplusplus extern "C" { @@ -10,5 +9,3 @@ void menuProbeOffset(void); #ifdef __cplusplus } #endif - -#endif diff --git a/TFT/src/User/Menu/ScreenSettings.h b/TFT/src/User/Menu/ScreenSettings.h index 39a6b213f6..b238d37756 100644 --- a/TFT/src/User/Menu/ScreenSettings.h +++ b/TFT/src/User/Menu/ScreenSettings.h @@ -1,5 +1,4 @@ -#ifndef _SCREEN_SETTINGS_H_ -#define _SCREEN_SETTINGS_H_ +#pragma once #ifdef __cplusplus extern "C" { @@ -11,5 +10,3 @@ void menuLanguage(void); #ifdef __cplusplus } #endif - -#endif diff --git a/TFT/src/User/Menu/Selectmode.h b/TFT/src/User/Menu/Selectmode.h index 36b86b856c..e1336afce9 100644 --- a/TFT/src/User/Menu/Selectmode.h +++ b/TFT/src/User/Menu/Selectmode.h @@ -1,5 +1,4 @@ -#ifndef _SELECTMODE_H_ -#define _SELECTMODE_H_ +#pragma once #ifdef __cplusplus extern "C" { @@ -26,5 +25,3 @@ void loopCheckMode(void); #ifdef __cplusplus } #endif - -#endif diff --git a/TFT/src/User/Menu/SendGcode.h b/TFT/src/User/Menu/SendGcode.h index c6a0d18b2e..5940c8d620 100644 --- a/TFT/src/User/Menu/SendGcode.h +++ b/TFT/src/User/Menu/SendGcode.h @@ -1,5 +1,4 @@ -#ifndef _SEND_GCODE_H_ -#define _SEND_GCODE_H_ +#pragma once #ifdef __cplusplus extern "C" { @@ -18,5 +17,3 @@ void sendGcodeTerminalCache(char *stream, TERMINAL_SRC src); #ifdef __cplusplus } #endif - -#endif diff --git a/TFT/src/User/Menu/SettingsMenu.h b/TFT/src/User/Menu/SettingsMenu.h index f944d2b195..3bc817009c 100644 --- a/TFT/src/User/Menu/SettingsMenu.h +++ b/TFT/src/User/Menu/SettingsMenu.h @@ -1,5 +1,4 @@ -#ifndef _SETTINGSMENU_H_ -#define _SETTINGSMENU_H_ +#pragma once #ifdef __cplusplus extern "C" { @@ -19,5 +18,3 @@ void infoSetMachineType(uint8_t *machine, uint8_t type_len); #ifdef __cplusplus } #endif - -#endif diff --git a/TFT/src/User/Menu/Speed.h b/TFT/src/User/Menu/Speed.h index 369a08fc00..4e42393a5c 100644 --- a/TFT/src/User/Menu/Speed.h +++ b/TFT/src/User/Menu/Speed.h @@ -1,5 +1,4 @@ -#ifndef _SPEED_H_ -#define _SPEED_H_ +#pragma once #ifdef __cplusplus extern "C" { @@ -14,5 +13,3 @@ void menuSpeed(void); #ifdef __cplusplus } #endif - -#endif diff --git a/TFT/src/User/Menu/StatusScreen.h b/TFT/src/User/Menu/StatusScreen.h index d50e5ba9e9..1f61225898 100644 --- a/TFT/src/User/Menu/StatusScreen.h +++ b/TFT/src/User/Menu/StatusScreen.h @@ -1,5 +1,4 @@ -#ifndef _STATUSSCREEN_H_ -#define _STATUSSCREEN_H_ +#pragma once #ifdef __cplusplus extern "C" { @@ -35,5 +34,3 @@ void gantry_inc(int n, float val); #ifdef __cplusplus } #endif - -#endif diff --git a/TFT/src/User/Menu/TuneExtruder.h b/TFT/src/User/Menu/TuneExtruder.h index 84a22ccda2..8d221abbaf 100644 --- a/TFT/src/User/Menu/TuneExtruder.h +++ b/TFT/src/User/Menu/TuneExtruder.h @@ -1,5 +1,4 @@ -#ifndef _TUNE_EXTRUDER_H -#define _TUNE_EXTRUDER_H +#pragma once #ifdef __cplusplus extern "C" { @@ -11,5 +10,3 @@ void menuNewExtruderESteps(void); #ifdef __cplusplus } #endif - -#endif diff --git a/TFT/src/User/Menu/Tuning.h b/TFT/src/User/Menu/Tuning.h index 2562448696..5440933db1 100644 --- a/TFT/src/User/Menu/Tuning.h +++ b/TFT/src/User/Menu/Tuning.h @@ -1,5 +1,4 @@ -#ifndef _TUNING_H_ -#define _TUNING_H_ +#pragma once #ifdef __cplusplus extern "C" { @@ -10,5 +9,3 @@ void menuTuning(void); #ifdef __cplusplus } #endif - -#endif diff --git a/TFT/src/User/Menu/UnifiedHeat.h b/TFT/src/User/Menu/UnifiedHeat.h index 65165c377d..acf322d81c 100644 --- a/TFT/src/User/Menu/UnifiedHeat.h +++ b/TFT/src/User/Menu/UnifiedHeat.h @@ -1,5 +1,4 @@ -#ifndef _UNIFIEDHEAT_H_ -#define _UNIFIEDHEAT_H_ +#pragma once #ifdef __cplusplus extern "C" { @@ -10,5 +9,3 @@ void menuUnifiedHeat(void); #ifdef __cplusplus } #endif - -#endif diff --git a/TFT/src/User/Menu/UnifiedMove.h b/TFT/src/User/Menu/UnifiedMove.h index 48c3bfe3b1..f4bf8aac4f 100644 --- a/TFT/src/User/Menu/UnifiedMove.h +++ b/TFT/src/User/Menu/UnifiedMove.h @@ -1,5 +1,4 @@ -#ifndef _UNIFIEDMOVE_H_ -#define _UNIFIEDMOVE_H_ +#pragma once #ifdef __cplusplus extern "C" { @@ -10,5 +9,3 @@ void menuUnifiedMove(void); #ifdef __cplusplus } #endif - -#endif diff --git a/TFT/src/User/SanityCheck.h b/TFT/src/User/SanityCheck.h index e29e4c7663..18f26b3254 100644 --- a/TFT/src/User/SanityCheck.h +++ b/TFT/src/User/SanityCheck.h @@ -1,5 +1,4 @@ -#ifndef _SANITYCHECK_H_ -#define _SANITYCHECK_H_ +#pragma once #include "includes.h" #include "Configuration.h" @@ -23,7 +22,7 @@ #ifdef DEFAULT_LCD_MODE #undef DEFAULT_LCD_MODE #endif - #define DEFAULT_LCD_MODE SERIAL_TSC // Just set hardcoded here. + #define DEFAULT_LCD_MODE SERIAL_TSC // Just set hardcoded here. //#warning "DEFAULT_LCD_MODE supports only SERIAL_TSC. Please update/check your configuration." #endif #endif @@ -291,5 +290,3 @@ #define CUSTOM_GCODE_LABELS {CUSTOM_0_LABEL, CUSTOM_1_LABEL, CUSTOM_2_LABEL, CUSTOM_3_LABEL, CUSTOM_4_LABEL,\ CUSTOM_5_LABEL, CUSTOM_6_LABEL, CUSTOM_7_LABEL, CUSTOM_8_LABEL, CUSTOM_9_LABEL,\ CUSTOM_10_LABEL,CUSTOM_11_LABEL,CUSTOM_12_LABEL,CUSTOM_13_LABEL,CUSTOM_14_LABEL } - -#endif //_SANITYCHECK_H_ diff --git a/TFT/src/User/delay.h b/TFT/src/User/delay.h index 9890557819..e79a39f8dd 100644 --- a/TFT/src/User/delay.h +++ b/TFT/src/User/delay.h @@ -1,9 +1,8 @@ -#ifndef _DELAY_H_ -#define _DELAY_H_ +#pragma once + #include "stdint.h" void Delay_init(void); void Delay_ms(uint16_t ms); void Delay_us(uint32_t us); -#endif diff --git a/TFT/src/User/includes.h b/TFT/src/User/includes.h index 46b116bc03..2a1f4477ba 100644 --- a/TFT/src/User/includes.h +++ b/TFT/src/User/includes.h @@ -1,5 +1,4 @@ -#ifndef _INCLUDES_H_ -#define _INCLUDES_H_ +#pragma once #include "variants.h" @@ -155,5 +154,3 @@ typedef struct u32 PCLK2_Timer_Frequency; }CLOCKS; extern CLOCKS mcuClocks; - -#endif diff --git a/TFT/src/User/my_misc.h b/TFT/src/User/my_misc.h index 45e9df8ddc..c34442e9e7 100644 --- a/TFT/src/User/my_misc.h +++ b/TFT/src/User/my_misc.h @@ -1,5 +1,4 @@ -#ifndef _MY_MISC_H_ -#define _MY_MISC_H_ +#pragma once #include "stdint.h" @@ -22,5 +21,3 @@ uint8_t string_2_uint8_t(const uint8_t *string); uint8_t *uint8_2_string(uint8_t num, uint8_t *string); uint32_t string_2_uint32(const uint8_t *string, const uint8_t bytes_num); uint8_t *uint32_2_string(uint32_t num, uint8_t bytes_num, uint8_t *string); - -#endif diff --git a/TFT/src/User/os_timer.h b/TFT/src/User/os_timer.h index b69dc203fd..077927cbf6 100644 --- a/TFT/src/User/os_timer.h +++ b/TFT/src/User/os_timer.h @@ -1,5 +1,5 @@ -#ifndef _OS_TIMER_H_ -#define _OS_TIMER_H_ +#pragma once + #include "stdint.h" @@ -23,5 +23,3 @@ void OS_TaskInit(OS_TASK *task, uint32_t time_ms, FP_TASK function,void *para); void OS_TaskCheck(OS_TASK *task); void OS_TaskEnable(OS_TASK *task, uint8_t is_exec, uint8_t is_repeat); void OS_TaskDisable(OS_TASK *task); - -#endif From 3436834f7e3f6226e956d6a3ec2d3dd376ed5834 Mon Sep 17 00:00:00 2001 From: petervw Date: Sun, 8 Nov 2020 21:52:05 +0100 Subject: [PATCH 10/24] Solved led knob bug on not supported screens Ooof, that's stupid that I didnt do this... --- TFT/src/User/API/Vfs/vfs.h | 5 +---- TFT/src/User/Menu/Pid.c | 18 +++++++++++++++--- 2 files changed, 16 insertions(+), 7 deletions(-) diff --git a/TFT/src/User/API/Vfs/vfs.h b/TFT/src/User/API/Vfs/vfs.h index 55e2c3767f..b7efddd155 100644 --- a/TFT/src/User/API/Vfs/vfs.h +++ b/TFT/src/User/API/Vfs/vfs.h @@ -1,5 +1,4 @@ -#ifndef _VFS_H_ -#define _VFS_H_ +#pragma once #include "stdint.h" #include "stdbool.h" @@ -41,5 +40,3 @@ bool IsRootDir(void); bool isVolumeExist(uint8_t src); void loopVolumeSource(void); - -#endif diff --git a/TFT/src/User/Menu/Pid.c b/TFT/src/User/Menu/Pid.c index 568c570044..2554ce51e7 100644 --- a/TFT/src/User/Menu/Pid.c +++ b/TFT/src/User/Menu/Pid.c @@ -51,7 +51,11 @@ void pidUpdateStatus(bool succeeded) else // if all the PID processes terminated, provide the final dialog { pidRunning = false; - WS2812_Send_DAT(LED_GREEN); // Set encoder LED to GREEN + #ifdef LED_COLOR_PIN + #ifdef LCD_LED_PWM_CHANNEL + WS2812_Send_DAT(LED_GREEN); // Set encoder LED to GREEN + #endif + #endif if (pidSucceeded) // if all the PID processes successfully terminated, allow to save to EEPROM { BUZZER_PLAY(sound_success); @@ -167,7 +171,11 @@ void pidStart(void) pidTimeout = OS_GetTimeMs() + PID_PROCESS_TIMEOUT; // set timeout for overall PID process mustStoreCmd("M150 R255 U0 B0\n"); // set LED light to RED - WS2812_Send_DAT(LED_RED); // Set encoder LED to RED + #ifdef LED_COLOR_PIN + #ifdef LCD_LED_PWM_CHANNEL + WS2812_Send_DAT(LED_RED); // Set encoder LED to GREEN + #endif + #endif mustStoreCmd("M106 S255\n"); // set fan speed to max mustStoreCmd("G4 S1\n"); // wait 1 sec @@ -208,7 +216,11 @@ void pidTemperatureReDraw(bool skip_header) void menuPid(void) { - WS2812_Send_DAT(led_color[infoSettings.knob_led_color]); // Restore encoderled to the default color + #ifdef LED_COLOR_PIN + #ifdef LCD_LED_PWM_CHANNEL + WS2812_Send_DAT(led_color[infoSettings.knob_led_color]); // Set encoder LED to GREEN + #endif + #endif const ITEM itemPidTool[] = { // icon label {ICON_NOZZLE, LABEL_NOZZLE}, From 14e25cc9dfa36d8813f8963a7ba4a22c8e09678d Mon Sep 17 00:00:00 2001 From: petervw Date: Mon, 9 Nov 2020 20:29:03 +0100 Subject: [PATCH 11/24] Made sequential correct. Neopixels still not working WARNING> STILL NEED SOME MORE TESTING --- .../Language Packs/language_du.ini | 283 ------------------ .../Language Packs/language_du.ini | 283 ------------------ TFT/src/User/API/sequential_mode.c | 49 +-- TFT/src/User/Menu/Pid.c | 4 +- 4 files changed, 28 insertions(+), 591 deletions(-) delete mode 100644 Copy to SD Card root directory to update - Unified Menu Material theme/Language Packs/language_du.ini delete mode 100644 Copy to SD Card root directory to update/Language Packs/language_du.ini diff --git a/Copy to SD Card root directory to update - Unified Menu Material theme/Language Packs/language_du.ini b/Copy to SD Card root directory to update - Unified Menu Material theme/Language Packs/language_du.ini deleted file mode 100644 index cbc7f64598..0000000000 --- a/Copy to SD Card root directory to update - Unified Menu Material theme/Language Packs/language_du.ini +++ /dev/null @@ -1,283 +0,0 @@ -#### Language Code:DU -## Language Version:20201007 -## Maximum byte per keyword is 250 Bytes. -## Escape characters are not supported except newline '\n' - -label_language:Dutch -label_heat:Verwarm -label_move:Verplaats -label_home:Thuis -label_disable_steppers:Disarm All -label_print:Print -label_extrude:Extrudeer -label_fan:Ventilator -label_settings:Instellingen -label_screen_settings:Scherm -label_machine_settings:Machine -label_feature_settings:Kenmerk -label_sound:Sound -label_touch_sound:Touch sounds -label_toast_sound:Toast Notifications -label_alert_sound:Popups and Alerts -label_shut_down:Uitschakelen -label_rgb_settings:LED Kleur -label_rgb_off:LED Uit -label_terminal:Terminal -label_custom:Aangepast -label_leveling:Nivelleren -label_point_1:Punt 1 -label_point_2:Punt 2 -label_point_3:Punt 3 -label_point_4:Punt 4 -label_point_5:Punt 5 -label_bed_leveling:Bed Level -label_bl_complete:Bed Leveling voltooid -label_bl_smart_fill:Missende probe punten\nzijn slim opgevuld.\n \nNote: Vergeet niet op te slaan! -label_bl_enable:BL: aan -label_bl_disable:BL: uit -label_abl:ABL -label_bbl:BBL -label_ubl:UBL -label_mbl:MBL -label_mbl_settings:Mesh Bed Leveling -label_abl_settings:Auto Bed Leveling -label_abl_settings_bbl:Bilinear Bed Leveling -label_abl_settings_ubl:Unified Bed Leveling -label_abl_settings_ubl_save:Sla op naar sleuf -label_abl_settings_ubl_load:Laad van sleuf -label_abl_slot0:Sleuf 0 -label_abl_slot1:Sleuf 1 -label_abl_slot2:Sleuf 2 -label_abl_slot3:Sleuf 3 -label_abl_slot_eeprom:Onthoud sleuf voor\nvolgende reboot?\n(sla op in EEPROM) -label_abl_z:Z vervagen -label_bltouch:BLTouch -label_bltouch_test:Test -label_bltouch_deploy:Gebruiken -label_bltouch_stow:Inzetten -label_bltouch_repeat:Herhaal -label_z_offset:Z Offset -label_probe_offset:Probe Offset -label_home_offset:Home Offset -label_confirmation:Weet u het zeker? -label_down:Omlaag -label_up:Omhoog -label_save:Bewaren -label_restore:Herstellen -label_reset:Reset -label_default:Standaard -label_clear:Clear -label_next:Volgende -label_distance:Afstand -label_invalid_value:Geen correcte waarde/s voorzien! -label_timeout_reached:Time-out bereikt! -label_process_running:Process bezig! -label_process_completed:Process voltooid! -label_process_aborted:Process geannuleerd! -label_inc:Verhogen -label_dec:Verlagen -label_nozzle:Spuitneus -label_bed:Verwarmd bed -label_chamber:Kamer -label_start:Start -label_stop:Stop -label_back:Terug -label_page_up:Blz omhoog -label_page_down:Blz omlaag -label_pause:Pauze -label_resume:Hervatten -label_load:Laden -label_unload:Lossen -label_slow_speed:Traag -label_normal_speed:Normaal -label_fast_speed:Snel -label_fan_full_speed:Volledig -label_fan_half_speed:Half -label_rotate_ui:Draai UI -label_touchscreen_adjust:TSC Aanpassen -label_more:Meer -label_screen_info:Info -label_status:Status -label_simulator_bg_color:Marlin simulator achtergrond kleur -label_simulator_font_color:Marlin simulator tekst kleur -label_white:Wit -label_black:Zwart -label_blue:Blauw -label_red:Rood -label_green:Groen -label_cyan:Cyaan -label_yellow:Geel -label_brown:Bruin -label_gray:Grijs -label_orange:Oranje -label_indigo:Indigo -label_violet:Violet -label_magenta:Magenta -label_purple:Purple -label_lime:Lime -label_darkblue:DarkBlue -label_darkgreen:DarkGreen -label_darkgray:DarkGray -label_disconnect:Loskoppelen -label_baudrate:Baudsnelheid -label_percentage:Percentage -label_babystep:BabyStap -label_percentage_speed:Snelheid -label_percentage_flow:Stromen -label_value_zero:Zero -label_1_degree:1℃ -label_5_degree:5℃ -label_10_degree:10℃ -label_x_inc:X+ -label_y_inc:Y+ -label_z_inc:Z+ -label_x_dec:X- -label_y_dec:Y- -label_z_dec:Z- -label_x:X -label_y:Y -label_z:Z -label_001_mm:0.01mm -label_01_mm:0.1mm -label_1_mm:1mm -label_5_mm:5mm -label_10_mm:10mm -label_100_mm:100mm -label_200_mm:200mm -label_1_percent:1% -label_5_percent:5% -label_10_percent:10% -label_percent_value:%d%% -label_ready:Gereed -label_busy:In verwerking ,wacht aub... -label_unconnected:Geen printer gekoppeld! -label_disconnect_info:De printer kan nu door de computer bestuurd worden! -label_loading:Opladen... -label_power_failed:Verder met printen? -label_continue:Verder -label_cancel:Afbreken -label_adjust_title:Touch Screen Calibratie -label_adjust_info:Klik op de rode punt -label_adjust_ok:Calibratie Gelukt -label_adjust_failed:Calibratie Mislukt, Probeer Opnieuw aub -label_warning:Waarschuwing -label_stop_print:Stop afdruk? -label_confirm:Bevestig -label_tftsd:TFT SD -label_read_tftsd_error:TFT SD leesfout! -label_tftsd_inserted:Kaart geplaatst! -label_tftsd_removed:Kaart verwijdert! -label_u_disk:U Disk -label_read_u_disk_error:U Disk Leesfout! -label_u_disk_inserted:U Disk geplaatst! -label_u_disk_removed:U Disk verwijdert! -label_onboardsd:OnboardSD -label_read_onboardsd_error:Onboard SD-kaart leesfout! -label_filament_sensor:Filament sensor -label_filament_runout:filament op! -label_preheat:Voorverwarmen -label_preheat_both:Beide -label_is_pause:Kan niet extruderen\ntijdens printen,\nPauzeer printen? -label_auto_shut_down:Auto Power -label_unifiedmove:Beweging -label_unifiedheat:Verwarm/Ventilator -label_cooldown:Afkoelen -label_emergencystop:NOODSTOP -label_touch_to_exit:Aanraken om te verlaten -label_mainmenu:Menu -label_wait_temp_shut_down:Wacht tot de temperatuur\nvan de spuitkop\nlager dan %d℃ is -label_force_shut_down:Forceer Afsluiten -label_shutting_down:Afsluiten... -label_parameter_setting:Parameter -label_on:AAN -label_off:UIT -label_smart:SLIM -label_terminal_ack:Laat ACK in Terminal zien -label_invert_xaxis:Inverteer X Axis -label_invert_yaxis:Inverteer Y Axis -label_invert_zaxis:Inverteer Z Axis -label_move_speed:Bewegingssnelheid(X Y Z) -label_knob_led:Draaiknop LED -label_knob_led_idle:Draaiknop LED inactief -label_m0_pause:Gepauseerd door M0 commando -label_send_start_gcode:Start Gcode before print -label_send_end_gcode:End Gcode after print -label_send_cancel_gcode:Cancel Gcode -label_persistent_status_info:Aanhoudende statusinfo -label_file_listmode:Files viewer List Mode -label_current_setting:Driver stroom (mA) -label_steps_setting:Stappen permm -label_maxfeedrate:Max Feed Rate -label_maxacceleration:Max Acceleratie -label_acceleration:Acceleratie -label_print_acceleration:Afdruk Acceleratie -label_retract_acceleration:Retract Acceleratie -label_travel_acceleration:Travel Acceleratie -label_jerk:Jerk -label_junction_deviation:Junction Deviation -label_bump_sensitivity:TMC bump sensitiviteit -label_fwretract:FW Retraction -label_fwrecover:FW Retraction Recover -label_lin_advance:Linear Advance -label_reset_settings_info:Reset alle instellingen \naar de standaard waardes? -label_reset_settings_done:Reset van alle instellingen\nis succesvol gelukt.\nHerstart alstublieft het apparaat. -label_info:Info -label_lcd_brightness:LCD Brightness -label_lcd_brightness_dim:LCD Brightness dim -label_lcd_dim_idle_timer:LCD dim idle timer -label_5_seconds:5 Sec. -label_10_seconds:10 Sec. -label_30_seconds:30 Sec. -label_60_seconds:1 Min. -label_120_seconds:2 Min. -label_300_seconds:5 Min. -label_custom_seconds:Custom -label_sequential_mode:Sequential mode -label_st7920_fullscreen:Marlin mode in fullscreen -label_plr_en:Power loss recovery -label_setting_save:Save settings -label_setting_reset:Reset instellingen -label_setting_restore:Herstel instellingen -label_eeprom_settings:EEPROM -label_eeprom_save_info:Sla printer instellingen\nop naar EEPROM? -label_eeprom_restore_info:Herlaad instellingen van \nde EEPROM? -label_eeprom_reset_info:Reset EEPROM naar de standaard printer instellingen? -label_retract_feedrate:Retract feedrate -label_retract_length:Retract length -label_retract_swap_length:Retract swap length -label_retract_z_lift:Z lift on retraction -label_retract_auto:Auto Firmware Retract -label_recover_feedrate:Recover feedrate -label_swap_recover_feedrate:Swap recover feedrate -label_recover_length:Extra recover length -label_swap_recover_length:Extra recover swap length -label_start_print:Start afdruk:\n %s? -label_ack_notification:ACK notification style -label_leveling_edge_distance:Bed edge distance -label_xy_unlock:Ontgrendel XY -label_tuning:Tuning -label_pid:PID -label_pid_title:PID autotune -label_pid_start_info:PID autotune zal starten.\nDit kan een paar minuten duren.\nDoorgaan? -label_pid_start_info_2:PID autotune is bezig! -label_pid_start_info_3:Raak het scherm NIET aan totdat deze klaar is (groene LED aan)! -label_tune_extruder:Tune steps -label_tune_ext_extrude_100:Ext. 100mm -label_tune_ext_temp:Extruder tuning | Heat -label_tune_ext_templow:Desired temperature too low!\nMinimum temperature: %d C -label_tune_ext_desiredval:Temperature is not yet at the desired value -label_tune_ext_mark120mm:Mark 120 mm on your fillament\nPress '%s' when ready\nMeasure remaining length\nafter extruding -label_tune_ext_heatoff:Turn the heater off? -label_tune_ext_adj_esteps:Adjust E-Steps -label_tune_ext_esteps_saved:New E-steps saved!\nDon't forget to\nsave it in EEPROM\nNew value: %0.2f -label_tune_ext_measured:Length remaining: -label_tune_ext_old_estep:Old e-steps: %0.2f -label_tune_ext_new_estep:New e-steps: %0.2f -label_connection_settings:Connecties -label_offset_tool:Offset 2nd Nozzle -label_hybrid_threshold:TMC HybridThreshold -label_notifications:Notifications -label_mesh_editor:Mesh edit -label_mesh_tuner:Mesh tuner -label_case_light:Case light - diff --git a/Copy to SD Card root directory to update/Language Packs/language_du.ini b/Copy to SD Card root directory to update/Language Packs/language_du.ini deleted file mode 100644 index cbc7f64598..0000000000 --- a/Copy to SD Card root directory to update/Language Packs/language_du.ini +++ /dev/null @@ -1,283 +0,0 @@ -#### Language Code:DU -## Language Version:20201007 -## Maximum byte per keyword is 250 Bytes. -## Escape characters are not supported except newline '\n' - -label_language:Dutch -label_heat:Verwarm -label_move:Verplaats -label_home:Thuis -label_disable_steppers:Disarm All -label_print:Print -label_extrude:Extrudeer -label_fan:Ventilator -label_settings:Instellingen -label_screen_settings:Scherm -label_machine_settings:Machine -label_feature_settings:Kenmerk -label_sound:Sound -label_touch_sound:Touch sounds -label_toast_sound:Toast Notifications -label_alert_sound:Popups and Alerts -label_shut_down:Uitschakelen -label_rgb_settings:LED Kleur -label_rgb_off:LED Uit -label_terminal:Terminal -label_custom:Aangepast -label_leveling:Nivelleren -label_point_1:Punt 1 -label_point_2:Punt 2 -label_point_3:Punt 3 -label_point_4:Punt 4 -label_point_5:Punt 5 -label_bed_leveling:Bed Level -label_bl_complete:Bed Leveling voltooid -label_bl_smart_fill:Missende probe punten\nzijn slim opgevuld.\n \nNote: Vergeet niet op te slaan! -label_bl_enable:BL: aan -label_bl_disable:BL: uit -label_abl:ABL -label_bbl:BBL -label_ubl:UBL -label_mbl:MBL -label_mbl_settings:Mesh Bed Leveling -label_abl_settings:Auto Bed Leveling -label_abl_settings_bbl:Bilinear Bed Leveling -label_abl_settings_ubl:Unified Bed Leveling -label_abl_settings_ubl_save:Sla op naar sleuf -label_abl_settings_ubl_load:Laad van sleuf -label_abl_slot0:Sleuf 0 -label_abl_slot1:Sleuf 1 -label_abl_slot2:Sleuf 2 -label_abl_slot3:Sleuf 3 -label_abl_slot_eeprom:Onthoud sleuf voor\nvolgende reboot?\n(sla op in EEPROM) -label_abl_z:Z vervagen -label_bltouch:BLTouch -label_bltouch_test:Test -label_bltouch_deploy:Gebruiken -label_bltouch_stow:Inzetten -label_bltouch_repeat:Herhaal -label_z_offset:Z Offset -label_probe_offset:Probe Offset -label_home_offset:Home Offset -label_confirmation:Weet u het zeker? -label_down:Omlaag -label_up:Omhoog -label_save:Bewaren -label_restore:Herstellen -label_reset:Reset -label_default:Standaard -label_clear:Clear -label_next:Volgende -label_distance:Afstand -label_invalid_value:Geen correcte waarde/s voorzien! -label_timeout_reached:Time-out bereikt! -label_process_running:Process bezig! -label_process_completed:Process voltooid! -label_process_aborted:Process geannuleerd! -label_inc:Verhogen -label_dec:Verlagen -label_nozzle:Spuitneus -label_bed:Verwarmd bed -label_chamber:Kamer -label_start:Start -label_stop:Stop -label_back:Terug -label_page_up:Blz omhoog -label_page_down:Blz omlaag -label_pause:Pauze -label_resume:Hervatten -label_load:Laden -label_unload:Lossen -label_slow_speed:Traag -label_normal_speed:Normaal -label_fast_speed:Snel -label_fan_full_speed:Volledig -label_fan_half_speed:Half -label_rotate_ui:Draai UI -label_touchscreen_adjust:TSC Aanpassen -label_more:Meer -label_screen_info:Info -label_status:Status -label_simulator_bg_color:Marlin simulator achtergrond kleur -label_simulator_font_color:Marlin simulator tekst kleur -label_white:Wit -label_black:Zwart -label_blue:Blauw -label_red:Rood -label_green:Groen -label_cyan:Cyaan -label_yellow:Geel -label_brown:Bruin -label_gray:Grijs -label_orange:Oranje -label_indigo:Indigo -label_violet:Violet -label_magenta:Magenta -label_purple:Purple -label_lime:Lime -label_darkblue:DarkBlue -label_darkgreen:DarkGreen -label_darkgray:DarkGray -label_disconnect:Loskoppelen -label_baudrate:Baudsnelheid -label_percentage:Percentage -label_babystep:BabyStap -label_percentage_speed:Snelheid -label_percentage_flow:Stromen -label_value_zero:Zero -label_1_degree:1℃ -label_5_degree:5℃ -label_10_degree:10℃ -label_x_inc:X+ -label_y_inc:Y+ -label_z_inc:Z+ -label_x_dec:X- -label_y_dec:Y- -label_z_dec:Z- -label_x:X -label_y:Y -label_z:Z -label_001_mm:0.01mm -label_01_mm:0.1mm -label_1_mm:1mm -label_5_mm:5mm -label_10_mm:10mm -label_100_mm:100mm -label_200_mm:200mm -label_1_percent:1% -label_5_percent:5% -label_10_percent:10% -label_percent_value:%d%% -label_ready:Gereed -label_busy:In verwerking ,wacht aub... -label_unconnected:Geen printer gekoppeld! -label_disconnect_info:De printer kan nu door de computer bestuurd worden! -label_loading:Opladen... -label_power_failed:Verder met printen? -label_continue:Verder -label_cancel:Afbreken -label_adjust_title:Touch Screen Calibratie -label_adjust_info:Klik op de rode punt -label_adjust_ok:Calibratie Gelukt -label_adjust_failed:Calibratie Mislukt, Probeer Opnieuw aub -label_warning:Waarschuwing -label_stop_print:Stop afdruk? -label_confirm:Bevestig -label_tftsd:TFT SD -label_read_tftsd_error:TFT SD leesfout! -label_tftsd_inserted:Kaart geplaatst! -label_tftsd_removed:Kaart verwijdert! -label_u_disk:U Disk -label_read_u_disk_error:U Disk Leesfout! -label_u_disk_inserted:U Disk geplaatst! -label_u_disk_removed:U Disk verwijdert! -label_onboardsd:OnboardSD -label_read_onboardsd_error:Onboard SD-kaart leesfout! -label_filament_sensor:Filament sensor -label_filament_runout:filament op! -label_preheat:Voorverwarmen -label_preheat_both:Beide -label_is_pause:Kan niet extruderen\ntijdens printen,\nPauzeer printen? -label_auto_shut_down:Auto Power -label_unifiedmove:Beweging -label_unifiedheat:Verwarm/Ventilator -label_cooldown:Afkoelen -label_emergencystop:NOODSTOP -label_touch_to_exit:Aanraken om te verlaten -label_mainmenu:Menu -label_wait_temp_shut_down:Wacht tot de temperatuur\nvan de spuitkop\nlager dan %d℃ is -label_force_shut_down:Forceer Afsluiten -label_shutting_down:Afsluiten... -label_parameter_setting:Parameter -label_on:AAN -label_off:UIT -label_smart:SLIM -label_terminal_ack:Laat ACK in Terminal zien -label_invert_xaxis:Inverteer X Axis -label_invert_yaxis:Inverteer Y Axis -label_invert_zaxis:Inverteer Z Axis -label_move_speed:Bewegingssnelheid(X Y Z) -label_knob_led:Draaiknop LED -label_knob_led_idle:Draaiknop LED inactief -label_m0_pause:Gepauseerd door M0 commando -label_send_start_gcode:Start Gcode before print -label_send_end_gcode:End Gcode after print -label_send_cancel_gcode:Cancel Gcode -label_persistent_status_info:Aanhoudende statusinfo -label_file_listmode:Files viewer List Mode -label_current_setting:Driver stroom (mA) -label_steps_setting:Stappen permm -label_maxfeedrate:Max Feed Rate -label_maxacceleration:Max Acceleratie -label_acceleration:Acceleratie -label_print_acceleration:Afdruk Acceleratie -label_retract_acceleration:Retract Acceleratie -label_travel_acceleration:Travel Acceleratie -label_jerk:Jerk -label_junction_deviation:Junction Deviation -label_bump_sensitivity:TMC bump sensitiviteit -label_fwretract:FW Retraction -label_fwrecover:FW Retraction Recover -label_lin_advance:Linear Advance -label_reset_settings_info:Reset alle instellingen \naar de standaard waardes? -label_reset_settings_done:Reset van alle instellingen\nis succesvol gelukt.\nHerstart alstublieft het apparaat. -label_info:Info -label_lcd_brightness:LCD Brightness -label_lcd_brightness_dim:LCD Brightness dim -label_lcd_dim_idle_timer:LCD dim idle timer -label_5_seconds:5 Sec. -label_10_seconds:10 Sec. -label_30_seconds:30 Sec. -label_60_seconds:1 Min. -label_120_seconds:2 Min. -label_300_seconds:5 Min. -label_custom_seconds:Custom -label_sequential_mode:Sequential mode -label_st7920_fullscreen:Marlin mode in fullscreen -label_plr_en:Power loss recovery -label_setting_save:Save settings -label_setting_reset:Reset instellingen -label_setting_restore:Herstel instellingen -label_eeprom_settings:EEPROM -label_eeprom_save_info:Sla printer instellingen\nop naar EEPROM? -label_eeprom_restore_info:Herlaad instellingen van \nde EEPROM? -label_eeprom_reset_info:Reset EEPROM naar de standaard printer instellingen? -label_retract_feedrate:Retract feedrate -label_retract_length:Retract length -label_retract_swap_length:Retract swap length -label_retract_z_lift:Z lift on retraction -label_retract_auto:Auto Firmware Retract -label_recover_feedrate:Recover feedrate -label_swap_recover_feedrate:Swap recover feedrate -label_recover_length:Extra recover length -label_swap_recover_length:Extra recover swap length -label_start_print:Start afdruk:\n %s? -label_ack_notification:ACK notification style -label_leveling_edge_distance:Bed edge distance -label_xy_unlock:Ontgrendel XY -label_tuning:Tuning -label_pid:PID -label_pid_title:PID autotune -label_pid_start_info:PID autotune zal starten.\nDit kan een paar minuten duren.\nDoorgaan? -label_pid_start_info_2:PID autotune is bezig! -label_pid_start_info_3:Raak het scherm NIET aan totdat deze klaar is (groene LED aan)! -label_tune_extruder:Tune steps -label_tune_ext_extrude_100:Ext. 100mm -label_tune_ext_temp:Extruder tuning | Heat -label_tune_ext_templow:Desired temperature too low!\nMinimum temperature: %d C -label_tune_ext_desiredval:Temperature is not yet at the desired value -label_tune_ext_mark120mm:Mark 120 mm on your fillament\nPress '%s' when ready\nMeasure remaining length\nafter extruding -label_tune_ext_heatoff:Turn the heater off? -label_tune_ext_adj_esteps:Adjust E-Steps -label_tune_ext_esteps_saved:New E-steps saved!\nDon't forget to\nsave it in EEPROM\nNew value: %0.2f -label_tune_ext_measured:Length remaining: -label_tune_ext_old_estep:Old e-steps: %0.2f -label_tune_ext_new_estep:New e-steps: %0.2f -label_connection_settings:Connecties -label_offset_tool:Offset 2nd Nozzle -label_hybrid_threshold:TMC HybridThreshold -label_notifications:Notifications -label_mesh_editor:Mesh edit -label_mesh_tuner:Mesh tuner -label_case_light:Case light - diff --git a/TFT/src/User/API/sequential_mode.c b/TFT/src/User/API/sequential_mode.c index a90c39d4c1..c1cdb07594 100644 --- a/TFT/src/User/API/sequential_mode.c +++ b/TFT/src/User/API/sequential_mode.c @@ -1,6 +1,8 @@ #include "sequential_mode.h" #include "includes.h" +// Move these into the function as volatile. this way they're only generated when seguentia is activated. +// --> Saving RAM uint8_t prevPixelColor = 0; uint8_t waitForNext = 0; bool heatingDone = false; @@ -40,7 +42,7 @@ void setSequentialModeColor(void) { prevPixelColor = 0; //Turn off neopixels and set knob led back to default - //storeCmd("M150 R0 U0 B0"); + storeCmd("M150 R0 U0 B0 P255\n"); #ifdef LED_COLOR_PIN #ifdef LCD_LED_PWM_CHANNEL if(infoSettings.knob_led_idle && lcd_dim.dimmed) @@ -57,7 +59,7 @@ void setSequentialModeColor(void) { } //Set neopixel and ledknob to green - //storeCmd("M150 R0 U255 B0"); + storeCmd("M150 R0 U255 B0 P255\n"); #ifdef LED_COLOR_PIN WS2812_Send_DAT(LED_GREEN); @@ -69,16 +71,6 @@ void setSequentialModeColor(void) { if(heatingDone) { - #ifdef LED_COLOR_PIN - #ifdef LCD_LED_PWM_CHANNEL - //Set the knob_led_idle on again - if(idle_ledmode_previous) - { - idle_ledmode_previous = false; - infoSettings.knob_led_idle = 1; - } - #endif - #endif return; //Go back when preheating is finished } @@ -129,22 +121,22 @@ void setSequentialModeColor(void) { if (newLedValue > prevPixelColor) { // Set the neopixel color - //storeCmd("M150 R%i U0 B%i", newLedValue, 255 - newLedValue); + storeCmd("M150 R%i U0 B%i P255\n", newLedValue, 255 - newLedValue); #ifdef LED_COLOR_PIN uint8_t colorRed = newLedValue; uint8_t colorBlue = 255 - newLedValue; - char hexRed, hexBlue; - sprintf(&hexRed, "%x", colorRed); - sprintf(&hexBlue, "%x", colorBlue); + uint32_t newPixelColor = 0; - newPixelColor |= (uint32_t)(hexRed) << 8; - newPixelColor |= (uint32_t)(hexBlue); + newPixelColor |= (uint32_t)(colorRed) << 8; + newPixelColor |= (uint32_t)(colorBlue); + //WEG - char tempstr[60]; - sprintf(tempstr, "NEW %i | R:%x B:%x", newPixelColor, hexRed, hexBlue); - GUI_DispString(100, 0, (u8 *)tempstr); + //char tempstr[60]; + //sprintf(tempstr, "NEW %i | R:%i B:%i | LV: %i", newPixelColor, colorRed, colorBlue, newLedValue); + //GUI_DispString(100, 0, (u8 *)tempstr); //END WEG + //Color the Knob led when available WS2812_Send_DAT(newPixelColor); #endif @@ -157,11 +149,19 @@ void setSequentialModeColor(void) { bedCurrentTemp >= bedTargetTemp - 5) { //Bed and hotend are on temperature. Set neopixel to white - //storeCmd("M150 R255 U255 B255"); + storeCmd("M150 R255 U255 B255 P255\n"); - //Restore the enocder to the previous state + //Restore the encoder to the previous state #ifdef LED_COLOR_PIN #ifdef LCD_LED_PWM_CHANNEL + //Set the knob_led_idle on again + if(idle_ledmode_previous) + { + idle_ledmode_previous = false; + infoSettings.knob_led_idle = 1; + } + + //Set the encore LED to the correct value if(infoSettings.knob_led_idle && lcd_dim.dimmed) { WS2812_Send_DAT(LED_OFF); @@ -170,6 +170,9 @@ void setSequentialModeColor(void) { { WS2812_Send_DAT(led_color[infoSettings.knob_led_color]); } + //set the screen to the max brightness + //The encoder knob will get it's default color. + wakeLCD(); #endif #endif diff --git a/TFT/src/User/Menu/Pid.c b/TFT/src/User/Menu/Pid.c index 2554ce51e7..f92af62310 100644 --- a/TFT/src/User/Menu/Pid.c +++ b/TFT/src/User/Menu/Pid.c @@ -170,7 +170,7 @@ void pidStart(void) pidUpdateCounter(); // update the number of set temperatures (number of PID processes to execute) pidTimeout = OS_GetTimeMs() + PID_PROCESS_TIMEOUT; // set timeout for overall PID process - mustStoreCmd("M150 R255 U0 B0\n"); // set LED light to RED + mustStoreCmd("M150 R255 U0 B0 P255\n"); // set LED light to RED #ifdef LED_COLOR_PIN #ifdef LCD_LED_PWM_CHANNEL WS2812_Send_DAT(LED_RED); // Set encoder LED to GREEN @@ -189,7 +189,7 @@ void pidStart(void) } mustStoreCmd("M107\n"); // stop fan - mustStoreCmd("M150 R0 U255 B0\n"); // set LED light to GREEN + mustStoreCmd("M150 R0 U255 B0 P255\n"); // set LED light to GREEN infoMenu.menu[++infoMenu.cur] = menuPidWait; } From c5cd4e838af67632e048f71b6587ebba32a79711 Mon Sep 17 00:00:00 2001 From: petervw Date: Mon, 9 Nov 2020 20:49:25 +0100 Subject: [PATCH 12/24] Small clean up and better retrun management --- TFT/src/User/API/sequential_mode.c | 139 ++++++++++++++++------------- 1 file changed, 79 insertions(+), 60 deletions(-) diff --git a/TFT/src/User/API/sequential_mode.c b/TFT/src/User/API/sequential_mode.c index c1cdb07594..e2b84eb6f1 100644 --- a/TFT/src/User/API/sequential_mode.c +++ b/TFT/src/User/API/sequential_mode.c @@ -6,6 +6,7 @@ uint8_t prevPixelColor = 0; uint8_t waitForNext = 0; bool heatingDone = false; +bool finishedPrint = false; #ifdef LED_COLOR_PIN #ifdef LCD_LED_PWM_CHANNEL bool idle_ledmode_previous = false; @@ -18,52 +19,79 @@ void setSequentialModeColor(void) { waitForNext--; return; } + // Set the waitForNext to a certain number to prevent that this function is + // executes a lot + // This means that after X cycles it will be back in this function + waitForNext = 200; if (!isPrinting()) { + // Not printing/ + // Check if the previous color has been set. + // If not, return to reduce cycletime if (prevPixelColor == 0) { return; } - #ifdef LED_COLOR_PIN - #ifdef LCD_LED_PWM_CHANNEL - //Make sure that the knob_led_idle is back in business - if(idle_ledmode_previous) - { - idle_ledmode_previous = false; - infoSettings.knob_led_idle = 1; - } - #endif - #endif + + // There was a previous color. + // Set every led to the correct color. + //Reset flag heating done heatingDone = false; if (infoMenu.menu[infoMenu.cur] != menuPrinting) { - //Restore colors to default value - prevPixelColor = 0; - - //Turn off neopixels and set knob led back to default - storeCmd("M150 R0 U0 B0 P255\n"); #ifdef LED_COLOR_PIN #ifdef LCD_LED_PWM_CHANNEL - if(infoSettings.knob_led_idle && lcd_dim.dimmed) - { - WS2812_Send_DAT(LED_OFF); - } - else + //Make sure that the knob_led_idle is back in business + if(idle_ledmode_previous) { - WS2812_Send_DAT(led_color[infoSettings.knob_led_color]); + idle_ledmode_previous = false; + infoSettings.knob_led_idle = 1; } #endif #endif + + //Restore colors to default value + prevPixelColor = 0; + + //Reset print fineshed bool + finishedPrint = false; + + //Turn off neopixels and set knob led back to default + storeCmd("M150 R0 U0 B0 P255\n"); + + //set the screen to the max brightness + //The encoder knob will get it's default color. + wakeLCD(); + + return; + } + if(finishedPrint) + { + // Print is already marked as ready. + // No need to change the LED's again return; } + #ifdef LED_COLOR_PIN + #ifdef LCD_LED_PWM_CHANNEL + // set the knob_led_idle temperorly to OFF + if(infoSettings.knob_led_idle && !idle_ledmode_previous) + { + idle_ledmode_previous = true; + infoSettings.knob_led_idle = 0; //Temperory turn off led idle + } + #endif + #endif + //Set neopixel and ledknob to green storeCmd("M150 R0 U255 B0 P255\n"); #ifdef LED_COLOR_PIN WS2812_Send_DAT(LED_GREEN); #endif + finishedPrint = true; + return; } else @@ -118,30 +146,11 @@ void setSequentialModeColor(void) { } } - if (newLedValue > prevPixelColor) + if (!(newLedValue > prevPixelColor)) { - // Set the neopixel color - storeCmd("M150 R%i U0 B%i P255\n", newLedValue, 255 - newLedValue); - - #ifdef LED_COLOR_PIN - uint8_t colorRed = newLedValue; - uint8_t colorBlue = 255 - newLedValue; - - uint32_t newPixelColor = 0; - newPixelColor |= (uint32_t)(colorRed) << 8; - newPixelColor |= (uint32_t)(colorBlue); - - //WEG - //char tempstr[60]; - //sprintf(tempstr, "NEW %i | R:%i B:%i | LV: %i", newPixelColor, colorRed, colorBlue, newLedValue); - //GUI_DispString(100, 0, (u8 *)tempstr); - //END WEG - - //Color the Knob led when available - WS2812_Send_DAT(newPixelColor); - #endif - - prevPixelColor = newLedValue; + // Previous led value is the same as the current one. + // Rest of the code is not needed to execute. + return; } if (hotendTargetTemp > 0 && bedTargetTemp > 0 && @@ -160,27 +169,37 @@ void setSequentialModeColor(void) { idle_ledmode_previous = false; infoSettings.knob_led_idle = 1; } - - //Set the encore LED to the correct value - if(infoSettings.knob_led_idle && lcd_dim.dimmed) - { - WS2812_Send_DAT(LED_OFF); - } - else - { - WS2812_Send_DAT(led_color[infoSettings.knob_led_color]); - } - //set the screen to the max brightness - //The encoder knob will get it's default color. - wakeLCD(); #endif #endif + //set the screen to the max brightness + //The encoder knob will get it's default color. + wakeLCD(); + //Set the flag heating done to true heatingDone = true; + return; } + + // Set the neopixel color + storeCmd("M150 R%i U0 B%i P255\n", newLedValue, 255 - newLedValue); + + #ifdef LED_COLOR_PIN + uint32_t newPixelColor = 0; + newPixelColor |= (uint32_t)(newLedValue) << 8; + newPixelColor |= (uint32_t)(255 - newLedValue); + + //WEG + //char tempstr[60]; + //sprintf(tempstr, "NEW %i | R:%i B:%i | LV: %i", newPixelColor, colorRed, colorBlue, newLedValue); + //GUI_DispString(100, 0, (u8 *)tempstr); + //END WEG + + //Color the Knob led when available + WS2812_Send_DAT(newPixelColor); + #endif + + prevPixelColor = newLedValue; + return; } - //Set the waitForNext to a certain number to prevent that this function is - //This means that after X cycles it will be back in this function - waitForNext = 100; } From 767ce767d93be037123f87a7f3a052764e60097b Mon Sep 17 00:00:00 2001 From: petervw Date: Mon, 9 Nov 2020 23:25:59 +0100 Subject: [PATCH 13/24] Clean up somecode That's it for this PR. It's already alot and you shouldn't make too much changes in too much files and line ;-) It's already too much (and it's not the nicest job to do ;-) ) --- TFT/src/User/API/Gcode/gcode.c | 7 +- TFT/src/User/API/Printing.c | 22 +- TFT/src/User/API/Settings.c | 23 +- TFT/src/User/API/UI/HD44780_Simulator.c | 60 +- TFT/src/User/API/UI/Numpad.c | 9 +- TFT/src/User/API/UI/list_item.c | 46 +- TFT/src/User/API/boot.c | 7 +- TFT/src/User/API/config.c | 25 +- TFT/src/User/API/interfaceCmd.c | 27 +- TFT/src/User/API/menu.c | 34 +- TFT/src/User/API/parseACK.c | 92 +- TFT/src/User/API/sequential_mode.c | 59 +- TFT/src/User/Hal/LCD_Init.c | 5 + .../Core/src/usbh_ioreq.c | 935 +++++++++--------- TFT/src/User/Menu/ConnectionSettings.c | 3 +- TFT/src/User/Menu/FeatureSettings.c | 30 +- TFT/src/User/Menu/Heat.c | 11 +- TFT/src/User/Menu/MBL.c | 18 + TFT/src/User/Menu/MachineSettings.c | 15 +- TFT/src/User/Menu/MainPage.c | 4 + TFT/src/User/Menu/MarlinMode.c | 40 +- TFT/src/User/Menu/MeshEditor.c | 65 +- TFT/src/User/Menu/Mode.c | 6 + TFT/src/User/Menu/More.c | 2 + TFT/src/User/Menu/Move.c | 26 +- TFT/src/User/Menu/Parametersetting.c | 51 +- TFT/src/User/Menu/Pid.c | 106 +- TFT/src/User/Menu/Popup.c | 20 +- TFT/src/User/Menu/PowerFailed.c | 13 +- TFT/src/User/Menu/Print.c | 156 +-- TFT/src/User/Menu/PrintingMenu.c | 102 +- TFT/src/User/Menu/ScreenSettings.c | 9 +- TFT/src/User/Menu/StatusScreen.c | 12 +- 33 files changed, 1195 insertions(+), 845 deletions(-) diff --git a/TFT/src/User/API/Gcode/gcode.c b/TFT/src/User/API/Gcode/gcode.c index 8231da2dd9..18ef5e145b 100644 --- a/TFT/src/User/API/Gcode/gcode.c +++ b/TFT/src/User/API/Gcode/gcode.c @@ -182,9 +182,12 @@ long request_M23(char *filename) **/ bool request_M24(int pos) { - if(pos == 0){ + if(pos == 0) + { mustStoreCmd("M24\n"); - } else { + } + else + { mustStoreCmd("M24 S%d\n", pos); } return true; diff --git a/TFT/src/User/API/Printing.c b/TFT/src/User/API/Printing.c index ec7790804f..7cb17450ac 100644 --- a/TFT/src/User/API/Printing.c +++ b/TFT/src/User/API/Printing.c @@ -127,7 +127,8 @@ void sendPrintCodes(uint8_t index) } } -void setM0Pause(bool m0_pause){ +void setM0Pause(bool m0_pause) +{ infoPrinting.m0_pause = m0_pause; } @@ -143,9 +144,12 @@ bool setPrintPause(bool is_pause, bool is_m0pause) { case BOARD_SD: infoPrinting.pause = is_pause; - if (is_pause){ + if (is_pause) + { request_M25(); - } else { + } + else + { request_M24(0); } break; @@ -153,8 +157,11 @@ bool setPrintPause(bool is_pause, bool is_m0pause) case TFT_UDISK: case TFT_SD: infoPrinting.pause = is_pause; - if(infoPrinting.pause == true && is_m0pause == false){ - while (infoCmd.count != 0) {loopProcess();} + if(infoPrinting.pause == true && is_m0pause == false) + { + while (infoCmd.count != 0) { + loopProcess(); + } } bool isCoorRelative = coorGetRelative(); @@ -169,7 +176,7 @@ bool setPrintPause(bool is_pause, bool is_m0pause) setM0Pause(is_m0pause); popupReminder(DIALOG_TYPE_ALERT, LABEL_PAUSE, LABEL_PAUSE); break; - } + } coordinateGetAll(&tmp); if (isCoorRelative == true) mustStoreCmd("G90\n"); @@ -242,7 +249,8 @@ void endPrinting(void) infoPrinting.printing = infoPrinting.pause = false; powerFailedClose(); powerFailedDelete(); - if(infoSettings.send_end_gcode == 1){ + if(infoSettings.send_end_gcode == 1) + { sendPrintCodes(1); } } diff --git a/TFT/src/User/API/Settings.c b/TFT/src/User/API/Settings.c index 229c696936..756931d01c 100644 --- a/TFT/src/User/API/Settings.c +++ b/TFT/src/User/API/Settings.c @@ -148,7 +148,8 @@ void infoSettingsReset(void) resetConfig(); } -void initMachineSetting(void){ +void initMachineSetting(void) +{ // some settings are assumes as active unless reported disabled by marlin infoMachineSettings.isMarlinFirmware = -1; // set fimware type to -1 to avoid repeated ABL gcode on mode change infoMachineSettings.EEPROM = ENABLED; @@ -202,6 +203,7 @@ void setupMachine(void) infoMachineSettings.emergencyParser = ENABLED; infoMachineSettings.autoReportSDStatus = DISABLED; } + if (infoSettings.onboardSD == ENABLED) { infoMachineSettings.onboard_sd_support = ENABLED; @@ -210,6 +212,7 @@ void setupMachine(void) { infoMachineSettings.onboard_sd_support = DISABLED; } + if (infoSettings.longFileName == ENABLED) { infoMachineSettings.long_filename_support = ENABLED; @@ -239,7 +242,9 @@ void checkflashSign(void) bool statusicon = getFlashSignStatus(icon_sign); if (!statuslang) + { infoSettings.language = LANG_DEFAULT; + } if (!statusfont || !statusicon || !statusconfig) { @@ -249,27 +254,43 @@ void checkflashSign(void) ypos += BYTE_HEIGHT; if (statusfont) + { GUI_DispString(10, ypos, (uint8_t *)"Fonts: OK"); + } else + { GUI_DispString(10, ypos, (uint8_t *)"Fonts: Update required"); + } ypos += BYTE_HEIGHT; if (statusconfig) + { GUI_DispString(10, ypos, (uint8_t *)"Config: OK"); + } else + { GUI_DispString(10, ypos, (uint8_t *)"Config: Update required"); + } ypos += BYTE_HEIGHT; if (statuslang) + { GUI_DispString(10, ypos, (uint8_t *)"Language: OK"); + } else + { GUI_DispString(10, ypos, (uint8_t *)"Language: Update required(Optional)"); + } ypos += BYTE_HEIGHT; if (statusicon) + { GUI_DispString(10, ypos, (uint8_t *)"Icons: OK"); + } else + { GUI_DispString(10, ypos, (uint8_t *)"Icons: Update required"); + } ypos += BYTE_HEIGHT; GUI_DispStringInRectEOL(10, ypos + 10, LCD_WIDTH, LCD_HEIGHT, (uint8_t *)"Insert the SD card with the required\n" diff --git a/TFT/src/User/API/UI/HD44780_Simulator.c b/TFT/src/User/API/UI/HD44780_Simulator.c index 4dbb9896dd..e0fb7eb8cd 100644 --- a/TFT/src/User/API/UI/HD44780_Simulator.c +++ b/TFT/src/User/API/UI/HD44780_Simulator.c @@ -69,7 +69,7 @@ void HD44780_BI16_SetCGRAMAddress(uint8_t cmd) { HD44780_reg.bi.cgrama.reg = cmd; uint8_t address = HD44780_reg.bi.cgrama.ac; - // Set CGRAM address + // Set CGRAM address HD44780.y = (address >> 3) & 0x07; HD44780.x = 0; HD44780_reg.data_type = HD44780_DATA_CGRAM; @@ -77,22 +77,26 @@ void HD44780_BI16_SetCGRAMAddress(uint8_t cmd) //cmd : 1 << 7 void HD44780_BI17_SetDDRAMAddress(uint8_t cmd) { - HD44780_reg.bi.ddrama.reg = cmd; - // Set DDRAM address - // x is 0-20 . y is 0-4 - if(0x80 <= cmd && cmd <= 0x93){ // First line AC range is 80H … 93h + HD44780_reg.bi.ddrama.reg = cmd; + // Set DDRAM address + // x is 0-20 . y is 0-4 + if(0x80 <= cmd && cmd <= 0x93) // First line AC range is 80H … 93h + { HD44780.y = 0; HD44780.x = cmd - 0x80; } - if(0xC0 <= cmd && cmd <= 0xD3){ // Second line AC range is C0H … D3H + if(0xC0 <= cmd && cmd <= 0xD3) // Second line AC range is C0H … D3H + { HD44780.y = 1; HD44780.x = cmd - 0xC0; } - if(0x94 <= cmd && cmd <= 0xA7){ // Third line AC range is 94H … A7H + if(0x94 <= cmd && cmd <= 0xA7) // Third line AC range is 94H … A7H + { HD44780.y = 2; HD44780.x = cmd - 0x94; } - if(0xD4 <= cmd && cmd <= 0xE7){ // Fourth line AC range is D4H … E7H + if(0xD4 <= cmd && cmd <= 0xE7) // Fourth line AC range is D4H … E7H + { HD44780.y = 3; HD44780.x = cmd - 0xD4; } @@ -101,19 +105,21 @@ void HD44780_BI17_SetDDRAMAddress(uint8_t cmd) void HD44780_DrawPixel(int16_t x, int16_t y, bool isForeGround, bool isFont) { - if(isFont){ - GUI_FillRectColor(XSTART + FONT_PIXEL * x, - YSTART + FONT_PIXEL * y, - XSTART + FONT_PIXEL * (x+1), - YSTART + FONT_PIXEL * (y+1), - isForeGround ? infoSettings.marlin_mode_font_color : infoSettings.marlin_mode_bg_color); + if(isFont) + { + GUI_FillRectColor(XSTART + FONT_PIXEL * x, + YSTART + FONT_PIXEL * y, + XSTART + FONT_PIXEL * (x+1), + YSTART + FONT_PIXEL * (y+1), + isForeGround ? infoSettings.marlin_mode_font_color : infoSettings.marlin_mode_bg_color); } - else{ - GUI_FillRectColor(XSTART + BITMAP_PIXEL * x, - YSTART + YOFFSET + BITMAP_PIXEL * y, - XSTART + BITMAP_PIXEL * (x+1), - YSTART + YOFFSET + BITMAP_PIXEL * (y+1), - isForeGround ? infoSettings.marlin_mode_font_color : infoSettings.marlin_mode_bg_color); + else + { + GUI_FillRectColor(XSTART + BITMAP_PIXEL * x, + YSTART + YOFFSET + BITMAP_PIXEL * y, + XSTART + BITMAP_PIXEL * (x+1), + YSTART + YOFFSET + BITMAP_PIXEL * (y+1), + isForeGround ? infoSettings.marlin_mode_font_color : infoSettings.marlin_mode_bg_color); } } @@ -121,12 +127,14 @@ void HD44780_DrawPixel(int16_t x, int16_t y, bool isForeGround, bool isFont) void HD44780_DispDDRAM(uint8_t data) { uint16_t i = 0, - ex = 0, + ex = 0, ey = 0; - if(data < 8){ // 5*8 bitmap + if(data < 8) // 5*8 bitmap + { ex = HD44780.x * 6 + 6; ey = HD44780.y * 12 + 8; - for(uint16_t y = HD44780.y * 12; y < ey; y++){ + for(uint16_t y = HD44780.y * 12; y < ey; y++) + { uint8_t temp = HD44780_CGRAM[data][i++]; for (uint16_t x = HD44780.x * 6; x < ex; x++) { HD44780_DrawPixel(x, y, temp & 0x10, 0); @@ -135,7 +143,7 @@ void HD44780_DispDDRAM(uint8_t data) } } else{ //font - if(data < ' ' || data > '~') return; + if(data < ' ' || data > '~') return; ex = HD44780.x * BYTE_WIDTH + BYTE_WIDTH-1; ey = HD44780.y * BYTE_HEIGHT + BYTE_HEIGHT-1; CHAR_INFO info = {.bytes = 0}; @@ -196,7 +204,7 @@ void HD44780_ParseWCmd(uint8_t cmd) (*hd44780CmdCallBack[i])(cmd); break; } - } + } } void HD44780_ParseWData(uint8_t data) @@ -239,7 +247,7 @@ void HD44780_ParseRecv(uint8_t val) } else { - HD44780_ParseWData(rcvData); + HD44780_ParseWData(rcvData); } } diff --git a/TFT/src/User/API/UI/Numpad.c b/TFT/src/User/API/UI/Numpad.c index 6a6eb53333..0d1a362dc4 100644 --- a/TFT/src/User/API/UI/Numpad.c +++ b/TFT/src/User/API/UI/Numpad.c @@ -50,7 +50,8 @@ void Draw_keyboard(u8 * title, bool NumberOnly, bool negative) GUI_SetColor(infoSettings.list_border_color); //draw button borders - for (int i = 0;i<3;i++){ + for (int i = 0;i<3;i++) + { GUI_DrawLine(rect_of_numkey[i].x1,rect_of_numkey[i].y0,rect_of_numkey[12+i].x1,rect_of_numkey[12+i].y1); GUI_DrawLine(rect_of_numkey[i*4].x0,rect_of_numkey[i*4].y1,rect_of_numkey[3+i*4].x1,rect_of_numkey[3+i*4].y1); } @@ -63,13 +64,19 @@ void Draw_keyboard(u8 * title, bool NumberOnly, bool negative) for(uint8_t i=0 ;ix0, rect->y0, rect->x1,rect->y1,iconalign,GET_ICONCHAR[iconindex]); GUI_SetColor(ICON_COLOR[iconindex]); if(drawBgColor) @@ -348,7 +360,8 @@ void DrawCharIcon(const GUI_RECT * rect,ICON_POS iconalign, uint16_t iconindex,b } //draw item pressed feedback -void DrawListItemPress(const GUI_RECT * rect, bool pressed){ +void DrawListItemPress(const GUI_RECT * rect, bool pressed) +{ if (pressed != false) { GUI_SetColor(WHITE); @@ -371,7 +384,8 @@ void ListItem_Display(const GUI_RECT* rect, uint8_t position, const LISTITEM * c //draw navigation icons if (getMenuType() != MENU_TYPE_LISTVIEW) return; - if(position >= LISTITEM_PER_PAGE){ + if(position >= LISTITEM_PER_PAGE) + { if(curitem->icon != ICONCHAR_BACKGROUND) { if (curitem->icon != ICONCHAR_BLANK) @@ -397,7 +411,8 @@ void ListItem_Display(const GUI_RECT* rect, uint8_t position, const LISTITEM * c GUI_RestoreColorDefault(); } //draw list tiems - else if (curitem->icon != ICONCHAR_BACKGROUND){ + else if (curitem->icon != ICONCHAR_BACKGROUND) + { GUI_POINT pos = getTextStartPoint(rect->x0, rect->y0, rect->x1,rect->y1,LEFT_CENTER,GET_ICONCHAR[curitem->icon]); int textarea_width; @@ -473,15 +488,18 @@ void ListItem_Display(const GUI_RECT* rect, uint8_t position, const LISTITEM * c } //draw title text of list item -void draw_itemtitle(GUI_POINT pos,LABEL label, uint8_t position, int textarea_width){ +void draw_itemtitle(GUI_POINT pos,LABEL label, uint8_t position, int textarea_width) +{ if (label.index != LABEL_BACKGROUND) { int textarea_width = LISTITEM_WIDTH - (pos.x + 1); //width after removing the width for icon if (label.index == LABEL_DYNAMIC) - {GUI_DispLenString(pos.x, pos.y, (u8*)getDynamicLabel(position),textarea_width, true); + { + GUI_DispLenString(pos.x, pos.y, (u8*)getDynamicLabel(position),textarea_width, true); } else - {GUI_DispLenString(pos.x, pos.y, labelGetAddress(&label), textarea_width, true); + { + GUI_DispLenString(pos.x, pos.y, labelGetAddress(&label), textarea_width, true); } } } diff --git a/TFT/src/User/API/boot.c b/TFT/src/User/API/boot.c index b460a97ca6..e72cc1ae1e 100644 --- a/TFT/src/User/API/boot.c +++ b/TFT/src/User/API/boot.c @@ -50,8 +50,8 @@ bool bmpDecode(char *bmp, u32 addr) return false; } f_read(&bmpFile, magic, 2 ,&mybr); - if (memcmp(magic, "BM", 2)){ - f_close(&bmpFile); + if (memcmp(magic, "BM", 2)) +{ f_close(&bmpFile); bmp_stat = BMP_INVALIDFILE; return false; } @@ -66,7 +66,8 @@ bool bmpDecode(char *bmp, u32 addr) bmp_size.y = h; f_lseek(&bmpFile, 28); f_read(&bmpFile, &bpp, sizeof(short),&mybr); - if(bpp<24){ + if(bpp<24) + { f_close(&bmpFile); bmp_stat = BMP_NOT24BIT; return false; diff --git a/TFT/src/User/API/config.c b/TFT/src/User/API/config.c index b713adc902..d431dbd219 100644 --- a/TFT/src/User/API/config.c +++ b/TFT/src/User/API/config.c @@ -300,7 +300,9 @@ static void config_set_color(uint16_t *color_src) { if (config_is_hex()) { *color_src = RGB888_to_RGB565(config_hex()); - } else if (inLimit(config_int(), 0, LCD_COLOR_COUNT-1)){ + } + else if (inLimit(config_int(), 0, LCD_COLOR_COUNT-1)) + { *color_src = lcd_colors[config_int()]; } } @@ -308,7 +310,8 @@ static void config_set_color(uint16_t *color_src) //check keywords in the config line in buffer void parseConfigLine(void) { - for (u16 i = 0; i < CONFIG_COUNT; i++){ + for (u16 i = 0; i < CONFIG_COUNT; i++) + { if (key_seen(config_keywords[i])) { PRINTDEBUG("\n"); @@ -375,7 +378,8 @@ void saveConfig(void) #endif } -void writeConfig(uint8_t* dataBytes, uint16_t numBytes, uint32_t addr, uint32_t maxSize){ +void writeConfig(uint8_t* dataBytes, uint16_t numBytes, uint32_t addr, uint32_t maxSize) +{ //do not proceed if data size is larger than reserved max size. if (numBytes > maxSize) { @@ -386,7 +390,8 @@ void writeConfig(uint8_t* dataBytes, uint16_t numBytes, uint32_t addr, uint32_t int sectorCount =maxSize/W25QXX_SECTOR_SIZE; //erase part of flash to be rewritten - for (int i = 0; i < sectorCount;i++){ + for (int i = 0; i < sectorCount;i++) + { W25Qxx_EraseSector(addr+(i*W25QXX_SECTOR_SIZE)); } Delay_ms(100); //give time for spi flash to settle @@ -414,10 +419,11 @@ void resetConfig(void) int n = 0; for (int i = 0; i < CUSTOM_GCODES_COUNT;i++) { - if(cg_enabled[i] == 1){ - strcpy(tempCG.gcode[n],cg_list[i]); - strcpy(tempCG.name[n],cg_names[i]); - n++; + if(cg_enabled[i] == 1) + { + strcpy(tempCG.gcode[n],cg_list[i]); + strcpy(tempCG.name[n],cg_names[i]); + n++; } } tempCG.count = n; @@ -450,7 +456,8 @@ void drawProgressPage(u8 * title) GUI_DrawPrect(&rectProgressframe); } -void drawProgress(void){ +void drawProgress(void) +{ char tempstr[50]; sprintf(tempstr,"Total keywords found: %d",foundkeys); GUI_DispString(pointProgressText.x,pointProgressText.y,(u8*)tempstr); diff --git a/TFT/src/User/API/interfaceCmd.c b/TFT/src/User/API/interfaceCmd.c index 9125871115..76ad4846ed 100644 --- a/TFT/src/User/API/interfaceCmd.c +++ b/TFT/src/User/API/interfaceCmd.c @@ -256,7 +256,8 @@ void sendQueueCmd(void) } } Serial_Puts(SERIAL_PORT_2, "Begin file list\n"); - if (mountFS() == true && scanPrintFiles() == true){ + if (mountFS() == true && scanPrintFiles() == true) + { for (uint16_t i = 0; i < infoFile.f_num; i++) { Serial_Puts(SERIAL_PORT_2,infoFile.file[i]); Serial_Puts(SERIAL_PORT_2,"\n"); @@ -360,17 +361,18 @@ void sendQueueCmd(void) { if (isPrinting() && !infoHost.printing) { - if (cmd_seen('C')){ + if (cmd_seen('C')) + { Serial_Puts(SERIAL_PORT_2, "Current file: "); Serial_Puts(SERIAL_PORT_2, infoFile.title); Serial_Puts(SERIAL_PORT_2, ".\n"); } - char buf[55]; - sprintf(buf, "%s printing byte %d/%d\n",(infoFile.source==TFT_SD)?"TFT SD":"TFT USB", getPrintCur(),getPrintSize()); - Serial_Puts(SERIAL_PORT_2, buf); - Serial_Puts(SERIAL_PORT_2, "ok\n"); - purgeLastCmd(); - return; + char buf[55]; + sprintf(buf, "%s printing byte %d/%d\n",(infoFile.source==TFT_SD)?"TFT SD":"TFT USB", getPrintCur(),getPrintSize()); + Serial_Puts(SERIAL_PORT_2, buf); + Serial_Puts(SERIAL_PORT_2, "ok\n"); + purgeLastCmd(); + return; } } else @@ -732,11 +734,13 @@ void sendQueueCmd(void) #endif case 355: //M355 { - if(cmd_seen('S')) { + if(cmd_seen('S')) + { caseLightSetState(cmd_value() > 0); caseLightSendWaiting(false); } - if(cmd_seen('P')){ + if(cmd_seen('P')) + { caseLightSetBrightness(cmd_value()); caseLightSendWaiting(false); } @@ -889,7 +893,8 @@ void sendQueueCmd(void) setCurrentAckSrc(infoCmd.queue[infoCmd.index_r].src); Serial_Puts(SERIAL_PORT, infoCmd.queue[infoCmd.index_r].gcode); - if (avoid_terminal != true){ + if (avoid_terminal != true) + { sendGcodeTerminalCache(infoCmd.queue[infoCmd.index_r].gcode, TERMINAL_GCODE); } purgeLastCmd(); diff --git a/TFT/src/User/API/menu.c b/TFT/src/User/API/menu.c index d019bf990d..e5323285a2 100644 --- a/TFT/src/User/API/menu.c +++ b/TFT/src/User/API/menu.c @@ -189,7 +189,8 @@ void menuClearGaps(void) } #endif -void GUI_RestoreColorDefault(void){ +void GUI_RestoreColorDefault(void) +{ GUI_SetBkColor(infoSettings.bg_color); GUI_SetColor(infoSettings.font_color); GUI_SetTextMode(GUI_TEXTMODE_NORMAL); @@ -268,13 +269,13 @@ void menuDrawIconOnly(const ITEM *item, uint8_t position) } } -void menuRefreshListPage(void){ - for (uint8_t i = 0; i < ITEM_PER_PAGE; i++) - { - menuDrawListItem(&curListItems->items[i], i); - rapid_serial_comm()//perform backend printing loop between drawing icons to avoid printer idling - } - +void menuRefreshListPage(void) +{ + for (uint8_t i = 0; i < ITEM_PER_PAGE; i++) + { + menuDrawListItem(&curListItems->items[i], i); + rapid_serial_comm()//perform backend printing loop between drawing icons to avoid printer idling + } } void setMenuType(MENU_TYPE type) @@ -628,11 +629,13 @@ void itemDrawIconPress(u8 position, u8 is_press) GUI_ClearPrect(rect); return; } - if (is_press){ - ListItem_Display(rect,position,&curListItems->items[position], true); + if (is_press) + { + ListItem_Display(rect,position,&curListItems->items[position], true); } - else{ - ListItem_Display(rect,position,&curListItems->items[position], false); + else + { + ListItem_Display(rect,position,&curListItems->items[position], false); } } } @@ -674,7 +677,8 @@ KEY_VALUES menuKeyGetValue(void) } //Get the top left point of the corresponding icon position) -GUI_POINT getIconStartPoint(int index){ +GUI_POINT getIconStartPoint(int index) +{ GUI_POINT p = {curRect[index].x0,curRect[index].y0}; return p; } @@ -733,12 +737,12 @@ void loopBackEnd(void) { setSequentialModeColor(); } - + if(infoMachineSettings.caseLightsBrightness == ENABLED) { loopCaseLight(); } - + } //loopBackEnd void loopFrontEnd(void) diff --git a/TFT/src/User/API/parseACK.c b/TFT/src/User/API/parseACK.c index 21ad3f53d0..c8872e4013 100644 --- a/TFT/src/User/API/parseACK.c +++ b/TFT/src/User/API/parseACK.c @@ -194,7 +194,7 @@ void hostActionCommands(void) strcpy(hostAction.prompt_begin, dmaL2Cache + ack_index); statusScreen_setMsg((u8 *)echomagic, (u8 *)dmaL2Cache + ack_index); } - + if(ack_seen("prompt_begin ")) { hostAction.button = 0; @@ -429,50 +429,60 @@ void parseACK(void) if(ack_seen("Z")) setParameter(P_STEPS_PER_MM, Z_STEPPER, ack_value()); if(ack_seen("E")) setParameter(P_STEPS_PER_MM, E_STEPPER, ack_value()); } - else if(ack_seen("M92 T0 E")){ + else if(ack_seen("M92 T0 E")) + { setParameter(P_STEPS_PER_MM, E_STEPPER, ack_value()); } - else if(ack_seen("M92 T1 E")){ + else if(ack_seen("M92 T1 E")) + { setParameter(P_STEPS_PER_MM, E2_STEPPER, ack_value()); setDualStepperStatus(E_STEPPER, true); } //parse and store Max Feed Rate values - else if(ack_seen("M203 X")){ + else if(ack_seen("M203 X")) + { setParameter(P_MAX_FEED_RATE, X_STEPPER, ack_value()); if(ack_seen("Y")) setParameter(P_MAX_FEED_RATE, Y_STEPPER, ack_value()); if(ack_seen("Z")) setParameter(P_MAX_FEED_RATE, Z_STEPPER, ack_value()); if(ack_seen("E")) setParameter(P_MAX_FEED_RATE, E_STEPPER, ack_value()); } - else if(ack_seen("M203 T0 E")){ + else if(ack_seen("M203 T0 E")) + { setParameter(P_MAX_FEED_RATE, E_STEPPER, ack_value()); } - else if(ack_seen("M203 T1 E")){ + else if(ack_seen("M203 T1 E")) + { setParameter(P_MAX_FEED_RATE, E2_STEPPER, ack_value()); setDualStepperStatus(E_STEPPER, true); } //parse and store Max Acceleration values - else if(ack_seen("M201 X")){ + else if(ack_seen("M201 X")) + { setParameter(P_MAX_ACCELERATION, X_STEPPER, ack_value()); if(ack_seen("Y")) setParameter(P_MAX_ACCELERATION, Y_STEPPER, ack_value()); if(ack_seen("Z")) setParameter(P_MAX_ACCELERATION, Z_STEPPER, ack_value()); if(ack_seen("E")) setParameter(P_MAX_ACCELERATION, E_STEPPER, ack_value()); } - else if(ack_seen("M201 T0 E")){ + else if(ack_seen("M201 T0 E")) + { setParameter(P_MAX_ACCELERATION, E_STEPPER, ack_value()); } - else if(ack_seen("M201 T1 E")){ + else if(ack_seen("M201 T1 E")) + { setParameter(P_MAX_ACCELERATION, E2_STEPPER, ack_value()); setDualStepperStatus(E_STEPPER, true); } //parse and store Acceleration values - else if(ack_seen("M204 P")){ + else if(ack_seen("M204 P")) + { setParameter(P_ACCELERATION, 0, ack_value()); if(ack_seen("R")) setParameter(P_ACCELERATION, 1, ack_value()); if(ack_seen("T")) setParameter(P_ACCELERATION, 2, ack_value()); } //parse and store jerk values - else if(ack_seen("M205")){ + else if(ack_seen("M205")) + { if(ack_seen("X")) setParameter(P_JERK, X_STEPPER, ack_value()); if(ack_seen("Y")) setParameter(P_JERK, Y_STEPPER, ack_value()); if(ack_seen("Z")) setParameter(P_JERK, Z_STEPPER, ack_value()); @@ -480,27 +490,31 @@ void parseACK(void) if(ack_seen("J")) setParameter(P_JUNCTION_DEVIATION, 0, ack_value()); } //parse and store Home Offset values - else if(ack_seen("M206 X")){ + else if(ack_seen("M206 X")) + { setParameter(P_HOME_OFFSET, X_STEPPER, ack_value()); if(ack_seen("Y")) setParameter(P_HOME_OFFSET, Y_STEPPER, ack_value()); if(ack_seen("Z")) setParameter(P_HOME_OFFSET, Z_STEPPER, ack_value()); } //parse and store FW retraction values - else if(ack_seen("M207 S")){ + else if(ack_seen("M207 S")) + { setParameter(P_FWRETRACT, 0, ack_value()); if(ack_seen("W")) setParameter(P_FWRETRACT, 1, ack_value()); if(ack_seen("F")) setParameter(P_FWRETRACT, 2, ack_value()); if(ack_seen("Z")) setParameter(P_FWRETRACT, 3, ack_value()); } //parse and store FW recover values - else if(ack_seen("M208 S")){ + else if(ack_seen("M208 S")) + { setParameter(P_FWRECOVER, 0, ack_value()); if(ack_seen("W")) setParameter(P_FWRECOVER, 1, ack_value()); if(ack_seen("F")) setParameter(P_FWRECOVER, 2, ack_value()); if(ack_seen("R")) setParameter(P_FWRECOVER, 3, ack_value()); } //parse and store auto FW retract state (M209 - Set Auto Retract) - else if(ack_seen("M209 S")){ + else if(ack_seen("M209 S")) + { setParameter(P_AUTO_RETRACT, 0, ack_value()); } //parse and store the software endstops state (M211) @@ -517,62 +531,75 @@ void parseACK(void) addToast(DIALOG_TYPE_INFO, dmaL2Cache); } //parse and store Offset 2nd Nozzle - else if(ack_seen("M218 T1 X")){ + else if(ack_seen("M218 T1 X")) + { setParameter(P_OFFSET_TOOL, 0, ack_value()); if(ack_seen("Y")) setParameter(P_OFFSET_TOOL, 1, ack_value()); if(ack_seen("Z")) setParameter(P_OFFSET_TOOL, 2, ack_value()); } //parse and store Probe Offset values - else if(ack_seen("M851 X")){ + else if(ack_seen("M851 X")) + { setParameter(P_PROBE_OFFSET, X_STEPPER, ack_value()); if(ack_seen("Y")) setParameter(P_PROBE_OFFSET, Y_STEPPER, ack_value()); if(ack_seen("Z")) setParameter(P_PROBE_OFFSET, Z_STEPPER, ack_value()); } //parse and store linear advance values - else if(ack_seen("M900 K")){ + else if(ack_seen("M900 K")) + { setParameter(P_LIN_ADV, 0, ack_value()); } - else if(ack_seen("M900 T0 K")){ + else if(ack_seen("M900 T0 K")) + { setParameter(P_LIN_ADV, 0, ack_value()); } - else if(ack_seen("M900 T1 K")){ + else if(ack_seen("M900 T1 K")) + { setParameter(P_LIN_ADV, 1, ack_value()); } //parse and store stepper driver current values - else if(ack_seen("M906 X")){ + else if(ack_seen("M906 X")) + { setParameter(P_CURRENT, X_STEPPER, ack_value()); if(ack_seen("Y")) setParameter(P_CURRENT, Y_STEPPER, ack_value()); if(ack_seen("Z")) setParameter(P_CURRENT, Z_STEPPER, ack_value()); } - else if(ack_seen("M906 I1")){ + else if(ack_seen("M906 I1")) + { if(ack_seen("X")) setDualStepperStatus(X_STEPPER, true); if(ack_seen("Y")) setDualStepperStatus(Y_STEPPER, true); if(ack_seen("Z")) setDualStepperStatus(Z_STEPPER, true); } - else if(ack_seen("M906 T0 E")){ + else if(ack_seen("M906 T0 E")) + { setParameter(P_CURRENT, E_STEPPER, ack_value()); } - else if(ack_seen("M906 T1 E")){ + else if(ack_seen("M906 T1 E")) + { setParameter(P_CURRENT, E2_STEPPER, ack_value()); setDualStepperStatus(E_STEPPER, true); } //parse and store TMC Bump sensitivity values - else if(ack_seen("M914 X")){ + else if(ack_seen("M914 X")) + { setParameter(P_BUMPSENSITIVITY, X_STEPPER, ack_value()); if(ack_seen("Y")) setParameter(P_BUMPSENSITIVITY, Y_STEPPER, ack_value()); if(ack_seen("Z")) setParameter(P_BUMPSENSITIVITY, Z_STEPPER, ack_value()); } // parse and store TMC Hybrid Threshold Speed - else if(ack_seen("M913 X")){ + else if(ack_seen("M913 X")) + { setParameter(P_HYBRID_THRESHOLD, X_STEPPER, ack_value()); if(ack_seen("Y")) setParameter(P_HYBRID_THRESHOLD, Y_STEPPER, ack_value()); if(ack_seen("Z")) setParameter(P_HYBRID_THRESHOLD, Z_STEPPER, ack_value()); if(ack_seen("E")) setParameter(P_HYBRID_THRESHOLD, E_STEPPER, ack_value()); } - else if(ack_seen("M913 T0 E")){ + else if(ack_seen("M913 T0 E")) + { setParameter(P_HYBRID_THRESHOLD, E_STEPPER, ack_value()); } - else if(ack_seen("M913 T1 E")){ + else if(ack_seen("M913 T1 E")) + { setParameter(P_HYBRID_THRESHOLD, E2_STEPPER, ack_value()); setDualStepperStatus(E_STEPPER, true); } @@ -698,12 +725,14 @@ void parseACK(void) } else if(ack_seen("work:")) { - if(ack_seen("min:")){ + if(ack_seen("min:")) + { if(ack_seen("X:")) infoSettings.machine_size_min[X_AXIS] = ack_value(); if(ack_seen("Y:")) infoSettings.machine_size_min[Y_AXIS] = ack_value(); if(ack_seen("Z:")) infoSettings.machine_size_min[Z_AXIS] = ack_value(); } - if(ack_seen("max:")){ + if(ack_seen("max:")) + { if(ack_seen("X:")) infoSettings.machine_size_min[X_AXIS] = ack_value(); if(ack_seen("Y:")) infoSettings.machine_size_min[Y_AXIS] = ack_value(); if(ack_seen("Z:")) infoSettings.machine_size_min[Z_AXIS] = ack_value(); @@ -855,7 +884,8 @@ void parseACK(void) } } - if (avoid_terminal != true){ + if (avoid_terminal != true) + { sendGcodeTerminalCache(dmaL2Cache, TERMINAL_ACK); } } diff --git a/TFT/src/User/API/sequential_mode.c b/TFT/src/User/API/sequential_mode.c index e2b84eb6f1..f8095e2b54 100644 --- a/TFT/src/User/API/sequential_mode.c +++ b/TFT/src/User/API/sequential_mode.c @@ -1,7 +1,7 @@ #include "sequential_mode.h" #include "includes.h" -// Move these into the function as volatile. this way they're only generated when seguentia is activated. +// Move these into the function as volatile. this way they're only generated when seguential is activated. // --> Saving RAM uint8_t prevPixelColor = 0; uint8_t waitForNext = 0; @@ -66,6 +66,7 @@ void setSequentialModeColor(void) { return; } + if(finishedPrint) { // Print is already marked as ready. @@ -90,6 +91,7 @@ void setSequentialModeColor(void) { #ifdef LED_COLOR_PIN WS2812_Send_DAT(LED_GREEN); #endif + finishedPrint = true; return; @@ -126,33 +128,7 @@ void setSequentialModeColor(void) { uint16_t hotendCurrentTemp = heatGetCurrentTemp(0); uint16_t bedCurrentTemp = heatGetCurrentTemp(BED); - uint8_t newLedValue = 0; - if (hotendTargetTemp > 0 && bedTargetTemp > 0 && - bedCurrentTemp >= bedTargetTemp - 5) - { - //Only use total temperature when hotend and bed heat up at the same time - uint16_t totalTemperature = hotendTargetTemp + bedTargetTemp; - newLedValue = map(hotendCurrentTemp + bedCurrentTemp, 0, totalTemperature, 0, 255); - } - else - { - if (hotendTargetTemp == 0) - { - newLedValue = map(bedCurrentTemp, 0, bedTargetTemp, 0, 125); - } - else - { - newLedValue = map(hotendCurrentTemp, 0, hotendTargetTemp, 125, 255); - } - } - - if (!(newLedValue > prevPixelColor)) - { - // Previous led value is the same as the current one. - // Rest of the code is not needed to execute. - return; - } - + //Check if the temperature already reached it's target temperature if (hotendTargetTemp > 0 && bedTargetTemp > 0 && hotendCurrentTemp >= hotendTargetTemp - 5 && bedCurrentTemp >= bedTargetTemp - 5) @@ -181,6 +157,33 @@ void setSequentialModeColor(void) { return; } + uint8_t newLedValue = 0; + if (hotendTargetTemp > 0 && bedTargetTemp > 0 && + bedCurrentTemp >= bedTargetTemp - 5) + { + //Only use total temperature when hotend and bed heat up at the same time + uint16_t totalTemperature = hotendTargetTemp + bedTargetTemp; + newLedValue = map(hotendCurrentTemp + bedCurrentTemp, 0, totalTemperature, 0, 255); + } + else + { + if (hotendTargetTemp == 0) + { + newLedValue = map(bedCurrentTemp, 0, bedTargetTemp, 0, 125); + } + else + { + newLedValue = map(hotendCurrentTemp, 0, hotendTargetTemp, 125, 255); + } + } + + if (!(newLedValue > prevPixelColor)) + { + // Previous led value is the same as the current one. + // Rest of the code is not needed to execute. + return; + } + // Set the neopixel color storeCmd("M150 R%i U0 B%i P255\n", newLedValue, 255 - newLedValue); diff --git a/TFT/src/User/Hal/LCD_Init.c b/TFT/src/User/Hal/LCD_Init.c index ed80829e64..5bb16c4ac7 100644 --- a/TFT/src/User/Hal/LCD_Init.c +++ b/TFT/src/User/Hal/LCD_Init.c @@ -12,6 +12,7 @@ void LCD_LED_On() GPIO_SetLevel(LCD_LED_PIN, 1); #endif } + void LCD_LED_Off() { #ifdef LCD_LED_PWM_CHANNEL @@ -64,7 +65,9 @@ const uint32_t LCD_DIM_IDLE_TIME[ITEM_SECONDS_NUM] = { void loopDimTimer(void) { if (infoSettings.lcd_idle_timer == LCD_DIM_OFF) + { return; + } if (isPress() #if LCD_ENCODER_SUPPORT @@ -88,7 +91,9 @@ void loopDimTimer(void) else { if (OS_GetTimeMs() - lcd_dim.idle_ms < (LCD_DIM_IDLE_TIME[infoSettings.lcd_idle_timer] * 1000)) + { return; + } if (!lcd_dim.dimmed) { diff --git a/TFT/src/User/Hal/STM32_USB_HOST_Library/Core/src/usbh_ioreq.c b/TFT/src/User/Hal/STM32_USB_HOST_Library/Core/src/usbh_ioreq.c index 25a77a6496..9420c93160 100644 --- a/TFT/src/User/Hal/STM32_USB_HOST_Library/Core/src/usbh_ioreq.c +++ b/TFT/src/User/Hal/STM32_USB_HOST_Library/Core/src/usbh_ioreq.c @@ -1,467 +1,468 @@ -/** - ****************************************************************************** - * @file usbh_ioreq.c - * @author MCD Application Team - * @version V2.2.1 - * @date 17-March-2018 - * @brief This file handles the issuing of the USB transactions - ****************************************************************************** - * @attention - * - *

© Copyright (c) 2015 STMicroelectronics. - * All rights reserved.

- * - * This software component is licensed by ST under Ultimate Liberty license - * SLA0044, the "License"; You may not use this file except in compliance with - * the License. You may obtain a copy of the License at: - * - * - ****************************************************************************** - */ -/* Includes ------------------------------------------------------------------*/ - -#include "usbh_ioreq.h" - -#ifdef U_DISK_SUPPORT -/** @addtogroup USBH_LIB - * @{ - */ - -/** @addtogroup USBH_LIB_CORE -* @{ -*/ - -/** @defgroup USBH_IOREQ - * @brief This file handles the standard protocol processing (USB v2.0) - * @{ - */ - - -/** @defgroup USBH_IOREQ_Private_Defines - * @{ - */ -/** - * @} - */ - - -/** @defgroup USBH_IOREQ_Private_TypesDefinitions - * @{ - */ -/** - * @} - */ - - - -/** @defgroup USBH_IOREQ_Private_Macros - * @{ - */ -/** - * @} - */ - - -/** @defgroup USBH_IOREQ_Private_Variables - * @{ - */ -/** - * @} - */ - - -/** @defgroup USBH_IOREQ_Private_FunctionPrototypes - * @{ - */ -static USBH_Status USBH_SubmitSetupRequest(USBH_HOST *phost, - uint8_t* buff, - uint16_t length); - -/** - * @} - */ - - -/** @defgroup USBH_IOREQ_Private_Functions - * @{ - */ - - -/** - * @brief USBH_CtlReq - * USBH_CtlReq sends a control request and provide the status after - * completion of the request - * @param pdev: Selected device - * @param req: Setup Request Structure - * @param buff: data buffer address to store the response - * @param length: length of the response - * @retval Status - */ -USBH_Status USBH_CtlReq (USB_OTG_CORE_HANDLE *pdev, - USBH_HOST *phost, - uint8_t *buff, - uint16_t length) -{ - USBH_Status status; - status = USBH_BUSY; - - switch (phost->RequestState) - { - case CMD_SEND: - /* Start a SETUP transfer */ - USBH_SubmitSetupRequest(phost, buff, length); - phost->RequestState = CMD_WAIT; - status = USBH_BUSY; - break; - - case CMD_WAIT: - if (phost->Control.state == CTRL_COMPLETE ) - { - /* Commands successfully sent and Response Received */ - phost->RequestState = CMD_SEND; - phost->Control.state =CTRL_IDLE; - status = USBH_OK; - } - else if (phost->Control.state == CTRL_ERROR) - { - /* Failure Mode */ - phost->RequestState = CMD_SEND; - status = USBH_FAIL; - } - else if (phost->Control.state == CTRL_STALLED ) - { - /* Commands successfully sent and Response Received */ - phost->RequestState = CMD_SEND; - status = USBH_NOT_SUPPORTED; - } - break; - - default: - break; - } - return status; -} - -/** - * @brief USBH_CtlSendSetup - * Sends the Setup Packet to the Device - * @param pdev: Selected device - * @param buff: Buffer pointer from which the Data will be send to Device - * @param hc_num: Host channel Number - * @retval Status - */ -USBH_Status USBH_CtlSendSetup ( USB_OTG_CORE_HANDLE *pdev, - uint8_t *buff, - uint8_t hc_num){ - pdev->host.hc[hc_num].ep_is_in = 0; - pdev->host.hc[hc_num].data_pid = HC_PID_SETUP; - pdev->host.hc[hc_num].xfer_buff = buff; - pdev->host.hc[hc_num].xfer_len = USBH_SETUP_PKT_SIZE; - - return (USBH_Status)HCD_SubmitRequest (pdev , hc_num); -} - - -/** - * @brief USBH_CtlSendData - * Sends a data Packet to the Device - * @param pdev: Selected device - * @param buff: Buffer pointer from which the Data will be sent to Device - * @param length: Length of the data to be sent - * @param hc_num: Host channel Number - * @retval Status - */ -USBH_Status USBH_CtlSendData ( USB_OTG_CORE_HANDLE *pdev, - uint8_t *buff, - uint16_t length, - uint8_t hc_num) -{ - pdev->host.hc[hc_num].ep_is_in = 0; - pdev->host.hc[hc_num].xfer_buff = buff; - pdev->host.hc[hc_num].xfer_len = length; - - if ( length == 0 ) - { /* For Status OUT stage, Length==0, Status Out PID = 1 */ - pdev->host.hc[hc_num].toggle_out = 1; - } - - /* Set the Data Toggle bit as per the Flag */ - if ( pdev->host.hc[hc_num].toggle_out == 0) - { /* Put the PID 0 */ - pdev->host.hc[hc_num].data_pid = HC_PID_DATA0; - } - else - { /* Put the PID 1 */ - pdev->host.hc[hc_num].data_pid = HC_PID_DATA1 ; - } - - HCD_SubmitRequest (pdev , hc_num); - - return USBH_OK; -} - - -/** - * @brief USBH_CtlReceiveData - * Receives the Device Response to the Setup Packet - * @param pdev: Selected device - * @param buff: Buffer pointer in which the response needs to be copied - * @param length: Length of the data to be received - * @param hc_num: Host channel Number - * @retval Status. - */ -USBH_Status USBH_CtlReceiveData(USB_OTG_CORE_HANDLE *pdev, - uint8_t* buff, - uint16_t length, - uint8_t hc_num) -{ - - pdev->host.hc[hc_num].ep_is_in = 1; - pdev->host.hc[hc_num].data_pid = HC_PID_DATA1; - pdev->host.hc[hc_num].xfer_buff = buff; - pdev->host.hc[hc_num].xfer_len = length; - - HCD_SubmitRequest (pdev , hc_num); - - return USBH_OK; - -} - - -/** - * @brief USBH_BulkSendData - * Sends the Bulk Packet to the device - * @param pdev: Selected device - * @param buff: Buffer pointer from which the Data will be sent to Device - * @param length: Length of the data to be sent - * @param hc_num: Host channel Number - * @retval Status - */ -USBH_Status USBH_BulkSendData ( USB_OTG_CORE_HANDLE *pdev, - uint8_t *buff, - uint16_t length, - uint8_t hc_num) -{ - pdev->host.hc[hc_num].ep_is_in = 0; - pdev->host.hc[hc_num].xfer_buff = buff; - pdev->host.hc[hc_num].xfer_len = length; - - /* Set the Data Toggle bit as per the Flag */ - if ( pdev->host.hc[hc_num].toggle_out == 0) - { /* Put the PID 0 */ - pdev->host.hc[hc_num].data_pid = HC_PID_DATA0; - } - else - { /* Put the PID 1 */ - pdev->host.hc[hc_num].data_pid = HC_PID_DATA1 ; - } - - HCD_SubmitRequest (pdev , hc_num); - return USBH_OK; -} - - -/** - * @brief USBH_BulkReceiveData - * Receives IN bulk packet from device - * @param pdev: Selected device - * @param buff: Buffer pointer in which the received data packet to be copied - * @param length: Length of the data to be received - * @param hc_num: Host channel Number - * @retval Status. - */ -USBH_Status USBH_BulkReceiveData( USB_OTG_CORE_HANDLE *pdev, - uint8_t *buff, - uint16_t length, - uint8_t hc_num) -{ - pdev->host.hc[hc_num].ep_is_in = 1; - pdev->host.hc[hc_num].xfer_buff = buff; - pdev->host.hc[hc_num].xfer_len = length; - - - if( pdev->host.hc[hc_num].toggle_in == 0) - { - pdev->host.hc[hc_num].data_pid = HC_PID_DATA0; - } - else - { - pdev->host.hc[hc_num].data_pid = HC_PID_DATA1; - } - - HCD_SubmitRequest (pdev , hc_num); - return USBH_OK; -} - - -/** - * @brief USBH_InterruptReceiveData - * Receives the Device Response to the Interrupt IN token - * @param pdev: Selected device - * @param buff: Buffer pointer in which the response needs to be copied - * @param length: Length of the data to be received - * @param hc_num: Host channel Number - * @retval Status. - */ -USBH_Status USBH_InterruptReceiveData( USB_OTG_CORE_HANDLE *pdev, - uint8_t *buff, - uint8_t length, - uint8_t hc_num) -{ - - pdev->host.hc[hc_num].ep_is_in = 1; - pdev->host.hc[hc_num].xfer_buff = buff; - pdev->host.hc[hc_num].xfer_len = length; - - - - if(pdev->host.hc[hc_num].toggle_in == 0) - { - pdev->host.hc[hc_num].data_pid = HC_PID_DATA0; - } - else - { - pdev->host.hc[hc_num].data_pid = HC_PID_DATA1; - } - - /* toggle DATA PID */ - pdev->host.hc[hc_num].toggle_in ^= 1; - - HCD_SubmitRequest (pdev , hc_num); - - return USBH_OK; -} - -/** - * @brief USBH_InterruptSendData - * Sends the data on Interrupt OUT Endpoint - * @param pdev: Selected device - * @param buff: Buffer pointer from where the data needs to be copied - * @param length: Length of the data to be sent - * @param hc_num: Host channel Number - * @retval Status. - */ -USBH_Status USBH_InterruptSendData( USB_OTG_CORE_HANDLE *pdev, - uint8_t *buff, - uint8_t length, - uint8_t hc_num) -{ - - pdev->host.hc[hc_num].ep_is_in = 0; - pdev->host.hc[hc_num].xfer_buff = buff; - pdev->host.hc[hc_num].xfer_len = length; - - if(pdev->host.hc[hc_num].toggle_in == 0) - { - pdev->host.hc[hc_num].data_pid = HC_PID_DATA0; - } - else - { - pdev->host.hc[hc_num].data_pid = HC_PID_DATA1; - } - - pdev->host.hc[hc_num].toggle_in ^= 1; - - HCD_SubmitRequest (pdev , hc_num); - - return USBH_OK; -} - - -/** - * @brief USBH_SubmitSetupRequest - * Start a setup transfer by changing the state-machine and - * initializing the required variables needed for the Control Transfer - * @param pdev: Selected device - * @param setup: Setup Request Structure - * @param buff: Buffer used for setup request - * @param length: Length of the data - * @retval Status. -*/ -static USBH_Status USBH_SubmitSetupRequest(USBH_HOST *phost, - uint8_t* buff, - uint16_t length) -{ - - /* Save Global State */ - phost->gStateBkp = phost->gState; - - /* Prepare the Transactions */ - phost->gState = HOST_CTRL_XFER; - phost->Control.buff = buff; - phost->Control.length = length; - phost->Control.state = CTRL_SETUP; - - return USBH_OK; -} - - -/** - * @brief USBH_IsocReceiveData - * Receives the Device Response to the Isochronous IN token - * @param pdev: Selected device - * @param buff: Buffer pointer in which the response needs to be copied - * @param length: Length of the data to be received - * @param hc_num: Host channel Number - * @retval Status. - */ -USBH_Status USBH_IsocReceiveData( USB_OTG_CORE_HANDLE *pdev, - uint8_t *buff, - uint32_t length, - uint8_t hc_num) -{ - - pdev->host.hc[hc_num].ep_is_in = 1; - pdev->host.hc[hc_num].xfer_buff = buff; - pdev->host.hc[hc_num].xfer_len = length; - pdev->host.hc[hc_num].data_pid = HC_PID_DATA0; - - - HCD_SubmitRequest (pdev , hc_num); - - return USBH_OK; -} - -/** - * @brief USBH_IsocSendData - * Sends the data on Isochronous OUT Endpoint - * @param pdev: Selected device - * @param buff: Buffer pointer from where the data needs to be copied - * @param length: Length of the data to be sent - * @param hc_num: Host channel Number - * @retval Status. - */ -USBH_Status USBH_IsocSendData( USB_OTG_CORE_HANDLE *pdev, - uint8_t *buff, - uint32_t length, - uint8_t hc_num) -{ - - pdev->host.hc[hc_num].ep_is_in = 0; - pdev->host.hc[hc_num].xfer_buff = buff; - pdev->host.hc[hc_num].xfer_len = length; - pdev->host.hc[hc_num].data_pid = HC_PID_DATA0; - - HCD_SubmitRequest (pdev , hc_num); - - return USBH_OK; -} - -#endif -/** -* @} -*/ - -/** -* @} -*/ - -/** -* @} -*/ - -/** -* @} -*/ - -/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/ +/** + ****************************************************************************** + * @file usbh_ioreq.c + * @author MCD Application Team + * @version V2.2.1 + * @date 17-March-2018 + * @brief This file handles the issuing of the USB transactions + ****************************************************************************** + * @attention + * + *

© Copyright (c) 2015 STMicroelectronics. + * All rights reserved.

+ * + * This software component is licensed by ST under Ultimate Liberty license + * SLA0044, the "License"; You may not use this file except in compliance with + * the License. You may obtain a copy of the License at: + * + * + ****************************************************************************** + */ +/* Includes ------------------------------------------------------------------*/ + +#include "usbh_ioreq.h" + +#ifdef U_DISK_SUPPORT +/** @addtogroup USBH_LIB + * @{ + */ + +/** @addtogroup USBH_LIB_CORE +* @{ +*/ + +/** @defgroup USBH_IOREQ + * @brief This file handles the standard protocol processing (USB v2.0) + * @{ + */ + + +/** @defgroup USBH_IOREQ_Private_Defines + * @{ + */ +/** + * @} + */ + + +/** @defgroup USBH_IOREQ_Private_TypesDefinitions + * @{ + */ +/** + * @} + */ + + + +/** @defgroup USBH_IOREQ_Private_Macros + * @{ + */ +/** + * @} + */ + + +/** @defgroup USBH_IOREQ_Private_Variables + * @{ + */ +/** + * @} + */ + + +/** @defgroup USBH_IOREQ_Private_FunctionPrototypes + * @{ + */ +static USBH_Status USBH_SubmitSetupRequest(USBH_HOST *phost, + uint8_t* buff, + uint16_t length); + +/** + * @} + */ + + +/** @defgroup USBH_IOREQ_Private_Functions + * @{ + */ + + +/** + * @brief USBH_CtlReq + * USBH_CtlReq sends a control request and provide the status after + * completion of the request + * @param pdev: Selected device + * @param req: Setup Request Structure + * @param buff: data buffer address to store the response + * @param length: length of the response + * @retval Status + */ +USBH_Status USBH_CtlReq (USB_OTG_CORE_HANDLE *pdev, + USBH_HOST *phost, + uint8_t *buff, + uint16_t length) +{ + USBH_Status status; + status = USBH_BUSY; + + switch (phost->RequestState) + { + case CMD_SEND: + /* Start a SETUP transfer */ + USBH_SubmitSetupRequest(phost, buff, length); + phost->RequestState = CMD_WAIT; + status = USBH_BUSY; + break; + + case CMD_WAIT: + if (phost->Control.state == CTRL_COMPLETE ) + { + /* Commands successfully sent and Response Received */ + phost->RequestState = CMD_SEND; + phost->Control.state =CTRL_IDLE; + status = USBH_OK; + } + else if (phost->Control.state == CTRL_ERROR) + { + /* Failure Mode */ + phost->RequestState = CMD_SEND; + status = USBH_FAIL; + } + else if (phost->Control.state == CTRL_STALLED ) + { + /* Commands successfully sent and Response Received */ + phost->RequestState = CMD_SEND; + status = USBH_NOT_SUPPORTED; + } + break; + + default: + break; + } + return status; +} + +/** + * @brief USBH_CtlSendSetup + * Sends the Setup Packet to the Device + * @param pdev: Selected device + * @param buff: Buffer pointer from which the Data will be send to Device + * @param hc_num: Host channel Number + * @retval Status + */ +USBH_Status USBH_CtlSendSetup ( USB_OTG_CORE_HANDLE *pdev, + uint8_t *buff, + uint8_t hc_num) +{ + pdev->host.hc[hc_num].ep_is_in = 0; + pdev->host.hc[hc_num].data_pid = HC_PID_SETUP; + pdev->host.hc[hc_num].xfer_buff = buff; + pdev->host.hc[hc_num].xfer_len = USBH_SETUP_PKT_SIZE; + + return (USBH_Status)HCD_SubmitRequest (pdev , hc_num); +} + + +/** + * @brief USBH_CtlSendData + * Sends a data Packet to the Device + * @param pdev: Selected device + * @param buff: Buffer pointer from which the Data will be sent to Device + * @param length: Length of the data to be sent + * @param hc_num: Host channel Number + * @retval Status + */ +USBH_Status USBH_CtlSendData ( USB_OTG_CORE_HANDLE *pdev, + uint8_t *buff, + uint16_t length, + uint8_t hc_num) +{ + pdev->host.hc[hc_num].ep_is_in = 0; + pdev->host.hc[hc_num].xfer_buff = buff; + pdev->host.hc[hc_num].xfer_len = length; + + if ( length == 0 ) + { /* For Status OUT stage, Length==0, Status Out PID = 1 */ + pdev->host.hc[hc_num].toggle_out = 1; + } + + /* Set the Data Toggle bit as per the Flag */ + if ( pdev->host.hc[hc_num].toggle_out == 0) + { /* Put the PID 0 */ + pdev->host.hc[hc_num].data_pid = HC_PID_DATA0; + } + else + { /* Put the PID 1 */ + pdev->host.hc[hc_num].data_pid = HC_PID_DATA1 ; + } + + HCD_SubmitRequest (pdev , hc_num); + + return USBH_OK; +} + + +/** + * @brief USBH_CtlReceiveData + * Receives the Device Response to the Setup Packet + * @param pdev: Selected device + * @param buff: Buffer pointer in which the response needs to be copied + * @param length: Length of the data to be received + * @param hc_num: Host channel Number + * @retval Status. + */ +USBH_Status USBH_CtlReceiveData(USB_OTG_CORE_HANDLE *pdev, + uint8_t* buff, + uint16_t length, + uint8_t hc_num) +{ + + pdev->host.hc[hc_num].ep_is_in = 1; + pdev->host.hc[hc_num].data_pid = HC_PID_DATA1; + pdev->host.hc[hc_num].xfer_buff = buff; + pdev->host.hc[hc_num].xfer_len = length; + + HCD_SubmitRequest (pdev , hc_num); + + return USBH_OK; + +} + + +/** + * @brief USBH_BulkSendData + * Sends the Bulk Packet to the device + * @param pdev: Selected device + * @param buff: Buffer pointer from which the Data will be sent to Device + * @param length: Length of the data to be sent + * @param hc_num: Host channel Number + * @retval Status + */ +USBH_Status USBH_BulkSendData ( USB_OTG_CORE_HANDLE *pdev, + uint8_t *buff, + uint16_t length, + uint8_t hc_num) +{ + pdev->host.hc[hc_num].ep_is_in = 0; + pdev->host.hc[hc_num].xfer_buff = buff; + pdev->host.hc[hc_num].xfer_len = length; + + /* Set the Data Toggle bit as per the Flag */ + if ( pdev->host.hc[hc_num].toggle_out == 0) + { /* Put the PID 0 */ + pdev->host.hc[hc_num].data_pid = HC_PID_DATA0; + } + else + { /* Put the PID 1 */ + pdev->host.hc[hc_num].data_pid = HC_PID_DATA1 ; + } + + HCD_SubmitRequest (pdev , hc_num); + return USBH_OK; +} + + +/** + * @brief USBH_BulkReceiveData + * Receives IN bulk packet from device + * @param pdev: Selected device + * @param buff: Buffer pointer in which the received data packet to be copied + * @param length: Length of the data to be received + * @param hc_num: Host channel Number + * @retval Status. + */ +USBH_Status USBH_BulkReceiveData( USB_OTG_CORE_HANDLE *pdev, + uint8_t *buff, + uint16_t length, + uint8_t hc_num) +{ + pdev->host.hc[hc_num].ep_is_in = 1; + pdev->host.hc[hc_num].xfer_buff = buff; + pdev->host.hc[hc_num].xfer_len = length; + + + if( pdev->host.hc[hc_num].toggle_in == 0) + { + pdev->host.hc[hc_num].data_pid = HC_PID_DATA0; + } + else + { + pdev->host.hc[hc_num].data_pid = HC_PID_DATA1; + } + + HCD_SubmitRequest (pdev , hc_num); + return USBH_OK; +} + + +/** + * @brief USBH_InterruptReceiveData + * Receives the Device Response to the Interrupt IN token + * @param pdev: Selected device + * @param buff: Buffer pointer in which the response needs to be copied + * @param length: Length of the data to be received + * @param hc_num: Host channel Number + * @retval Status. + */ +USBH_Status USBH_InterruptReceiveData( USB_OTG_CORE_HANDLE *pdev, + uint8_t *buff, + uint8_t length, + uint8_t hc_num) +{ + + pdev->host.hc[hc_num].ep_is_in = 1; + pdev->host.hc[hc_num].xfer_buff = buff; + pdev->host.hc[hc_num].xfer_len = length; + + + + if(pdev->host.hc[hc_num].toggle_in == 0) + { + pdev->host.hc[hc_num].data_pid = HC_PID_DATA0; + } + else + { + pdev->host.hc[hc_num].data_pid = HC_PID_DATA1; + } + + /* toggle DATA PID */ + pdev->host.hc[hc_num].toggle_in ^= 1; + + HCD_SubmitRequest (pdev , hc_num); + + return USBH_OK; +} + +/** + * @brief USBH_InterruptSendData + * Sends the data on Interrupt OUT Endpoint + * @param pdev: Selected device + * @param buff: Buffer pointer from where the data needs to be copied + * @param length: Length of the data to be sent + * @param hc_num: Host channel Number + * @retval Status. + */ +USBH_Status USBH_InterruptSendData( USB_OTG_CORE_HANDLE *pdev, + uint8_t *buff, + uint8_t length, + uint8_t hc_num) +{ + + pdev->host.hc[hc_num].ep_is_in = 0; + pdev->host.hc[hc_num].xfer_buff = buff; + pdev->host.hc[hc_num].xfer_len = length; + + if(pdev->host.hc[hc_num].toggle_in == 0) + { + pdev->host.hc[hc_num].data_pid = HC_PID_DATA0; + } + else + { + pdev->host.hc[hc_num].data_pid = HC_PID_DATA1; + } + + pdev->host.hc[hc_num].toggle_in ^= 1; + + HCD_SubmitRequest (pdev , hc_num); + + return USBH_OK; +} + + +/** + * @brief USBH_SubmitSetupRequest + * Start a setup transfer by changing the state-machine and + * initializing the required variables needed for the Control Transfer + * @param pdev: Selected device + * @param setup: Setup Request Structure + * @param buff: Buffer used for setup request + * @param length: Length of the data + * @retval Status. +*/ +static USBH_Status USBH_SubmitSetupRequest(USBH_HOST *phost, + uint8_t* buff, + uint16_t length) +{ + + /* Save Global State */ + phost->gStateBkp = phost->gState; + + /* Prepare the Transactions */ + phost->gState = HOST_CTRL_XFER; + phost->Control.buff = buff; + phost->Control.length = length; + phost->Control.state = CTRL_SETUP; + + return USBH_OK; +} + + +/** + * @brief USBH_IsocReceiveData + * Receives the Device Response to the Isochronous IN token + * @param pdev: Selected device + * @param buff: Buffer pointer in which the response needs to be copied + * @param length: Length of the data to be received + * @param hc_num: Host channel Number + * @retval Status. + */ +USBH_Status USBH_IsocReceiveData( USB_OTG_CORE_HANDLE *pdev, + uint8_t *buff, + uint32_t length, + uint8_t hc_num) +{ + + pdev->host.hc[hc_num].ep_is_in = 1; + pdev->host.hc[hc_num].xfer_buff = buff; + pdev->host.hc[hc_num].xfer_len = length; + pdev->host.hc[hc_num].data_pid = HC_PID_DATA0; + + + HCD_SubmitRequest (pdev , hc_num); + + return USBH_OK; +} + +/** + * @brief USBH_IsocSendData + * Sends the data on Isochronous OUT Endpoint + * @param pdev: Selected device + * @param buff: Buffer pointer from where the data needs to be copied + * @param length: Length of the data to be sent + * @param hc_num: Host channel Number + * @retval Status. + */ +USBH_Status USBH_IsocSendData( USB_OTG_CORE_HANDLE *pdev, + uint8_t *buff, + uint32_t length, + uint8_t hc_num) +{ + + pdev->host.hc[hc_num].ep_is_in = 0; + pdev->host.hc[hc_num].xfer_buff = buff; + pdev->host.hc[hc_num].xfer_len = length; + pdev->host.hc[hc_num].data_pid = HC_PID_DATA0; + + HCD_SubmitRequest (pdev , hc_num); + + return USBH_OK; +} + +#endif +/** +* @} +*/ + +/** +* @} +*/ + +/** +* @} +*/ + +/** +* @} +*/ + +/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/ diff --git a/TFT/src/User/Menu/ConnectionSettings.c b/TFT/src/User/Menu/ConnectionSettings.c index 69471f8439..d00d41d4f0 100644 --- a/TFT/src/User/Menu/ConnectionSettings.c +++ b/TFT/src/User/Menu/ConnectionSettings.c @@ -67,7 +67,8 @@ void menuBaudrate(void) break; default: - if(key_num < LISTITEM_PER_PAGE){ + if(key_num < LISTITEM_PER_PAGE) + { uint16_t tmp_i = listWidgetGetCurPage() * LISTITEM_PER_PAGE + key_num; if (tmp_i != cur_item) { // has changed totalItems[cur_item].icon = ICONCHAR_UNCHECKED; diff --git a/TFT/src/User/Menu/FeatureSettings.c b/TFT/src/User/Menu/FeatureSettings.c index cd9e41ce6b..80e2fe4bd5 100644 --- a/TFT/src/User/Menu/FeatureSettings.c +++ b/TFT/src/User/Menu/FeatureSettings.c @@ -245,7 +245,9 @@ void updateFeatureSettings(uint8_t key_val) { infoSettings.lcd_brightness = (infoSettings.lcd_brightness + 1) % ITEM_BRIGHTNESS_NUM; if(infoSettings.lcd_brightness == 0) + { infoSettings.lcd_brightness = 1; //In Normal it should not be off. Set back to 5% + } char tempstr[8]; sprintf(tempstr, (char *)textSelect(LABEL_PERCENT_VALUE), LCD_BRIGHTNESS[infoSettings.lcd_brightness]); @@ -296,7 +298,8 @@ void updateFeatureSettings(uint8_t key_val) // //load values on page change and reload // -void loadFeatureSettings(){ +void loadFeatureSettings() +{ for (uint8_t i = 0; i < LISTITEM_PER_PAGE; i++) { uint8_t item_index = fe_cur_page * LISTITEM_PER_PAGE + i; @@ -428,11 +431,13 @@ void loadFeatureSettings(){ } else { - if(fe_cur_page == 0){ + if(fe_cur_page == 0) + { featureSettingsItems.items[5].icon = ICONCHAR_BACKGROUND; featureSettingsItems.items[6].icon = ICONCHAR_PAGEDOWN; } - else if(fe_cur_page == (FE_PAGE_COUNT-1)){ + else if(fe_cur_page == (FE_PAGE_COUNT-1)) + { featureSettingsItems.items[5].icon = ICONCHAR_PAGEUP; featureSettingsItems.items[6].icon = ICONCHAR_BACKGROUND; } @@ -461,8 +466,10 @@ void menuFeatureSettings(void) switch (key_num) { case KEY_ICON_5: - if(FE_PAGE_COUNT > 1){ - if (fe_cur_page > 0){ + if(FE_PAGE_COUNT > 1) + { + if (fe_cur_page > 0) + { fe_cur_page--; loadFeatureSettings(); menuRefreshListPage(); @@ -471,8 +478,10 @@ void menuFeatureSettings(void) break; case KEY_ICON_6: - if(FE_PAGE_COUNT > 1){ - if (fe_cur_page < FE_PAGE_COUNT - 1){ + if(FE_PAGE_COUNT > 1) + { + if (fe_cur_page < FE_PAGE_COUNT - 1) + { fe_cur_page++; loadFeatureSettings(); menuRefreshListPage(); @@ -485,9 +494,10 @@ void menuFeatureSettings(void) infoMenu.cur--; break; default: - if(key_num < LISTITEM_PER_PAGE){ - updateFeatureSettings(key_num); - menuDrawListItem(&featureSettingsItems.items[key_num],key_num); + if(key_num < LISTITEM_PER_PAGE) + { + updateFeatureSettings(key_num); + menuDrawListItem(&featureSettingsItems.items[key_num],key_num); } break; } diff --git a/TFT/src/User/Menu/Heat.c b/TFT/src/User/Menu/Heat.c index 4893b35cb5..0a94844f60 100644 --- a/TFT/src/User/Menu/Heat.c +++ b/TFT/src/User/Menu/Heat.c @@ -94,6 +94,7 @@ void menuHeat(void) do{ c_heater = (c_heater + 1) % MAX_HEATER_COUNT; } while(!heaterIsValid(c_heater)); + heatItems.items[key_num] = itemTool[c_heater]; menuDrawItem(&heatItems.items[key_num], key_num); showTemperature(c_heater); @@ -118,9 +119,13 @@ void menuHeat(void) if(encoderPosition) { if(encoderPosition > 0) - heatSetTargetTemp(c_heater, actTarget + item_degree[item_degree_i]); + { + heatSetTargetTemp(c_heater, actTarget + item_degree[item_degree_i]); + } if(encoderPosition < 0) - heatSetTargetTemp(c_heater, actTarget - item_degree[item_degree_i]); + { + heatSetTargetTemp(c_heater, actTarget - item_degree[item_degree_i]); + } encoderPosition = 0; } #endif @@ -138,5 +143,7 @@ void menuHeat(void) // Set slow update time if not waiting for target temperature if(heatHasWaiting() == false) + { heatSetUpdateTime(TEMPERATURE_QUERY_SLOW_DURATION); + } } diff --git a/TFT/src/User/Menu/MBL.c b/TFT/src/User/Menu/MBL.c index 29631ff325..50e7678963 100644 --- a/TFT/src/User/Menu/MBL.c +++ b/TFT/src/User/Menu/MBL.c @@ -179,17 +179,25 @@ void menuMBL(void) // decrease Z height case KEY_ICON_0: if (!mblRunning) + { mblNotifyError(); + } else + { probeHeightMove(unit, -1); + } break; // increase Z height case KEY_ICON_3: if (!mblRunning) + { mblNotifyError(); + } else + { probeHeightMove(unit, 1); + } break; // change unit @@ -204,9 +212,13 @@ void menuMBL(void) // reset Z height to 0 case KEY_ICON_5: if (!mblRunning) + { mblNotifyError(); + } else + { probeHeightMove(curValue, -1); + } break; // start MBL or move to next mesh point @@ -236,7 +248,9 @@ void menuMBL(void) case KEY_ICON_7: if (mblRunning) + { mblStop(); + } infoMenu.cur--; break; @@ -246,9 +260,13 @@ void menuMBL(void) if (encoderPosition) { if (!mblRunning) + { mblNotifyError(); + } else + { probeHeightMove(unit, encoderPosition > 0 ? 1 : -1); + } encoderPosition = 0; } diff --git a/TFT/src/User/Menu/MachineSettings.c b/TFT/src/User/Menu/MachineSettings.c index 9a28b2b2e1..0df9012eaa 100644 --- a/TFT/src/User/Menu/MachineSettings.c +++ b/TFT/src/User/Menu/MachineSettings.c @@ -30,12 +30,14 @@ void loaditemsCustomGcode() for (uint32_t i = 0; i < LISTITEM_PER_PAGE; i++) { uint32_t item_index = gc_cur_page*LISTITEM_PER_PAGE + i; - if (item_index < gcode_num){ + if (item_index < gcode_num) + { customItems.items[i].icon = ICONCHAR_CODE; customItems.items[i].titlelabel.index = LABEL_DYNAMIC; customItems.items[i].titlelabel.address = customcodes->name[item_index]; } - else{ + else + { customItems.items[i].icon = ICONCHAR_BACKGROUND; customItems.items[i].titlelabel.index = LABEL_BACKGROUND; } @@ -48,11 +50,13 @@ void loaditemsCustomGcode() } else { - if(gc_cur_page == 0){ + if(gc_cur_page == 0) + { customItems.items[5].icon = ICONCHAR_BACKGROUND; customItems.items[6].icon = ICONCHAR_PAGEDOWN; } - else if(gc_cur_page == (gc_page_count-1)){ + else if(gc_cur_page == (gc_page_count-1)) + { customItems.items[5].icon = ICONCHAR_PAGEUP; customItems.items[6].icon = ICONCHAR_BACKGROUND; } @@ -311,7 +315,8 @@ void menuMachineSettings(void) break; #endif case KEY_ICON_6: - if (infoMachineSettings.caseLightsBrightness == ENABLED){ + if (infoMachineSettings.caseLightsBrightness == ENABLED) + { infoMenu.menu[++infoMenu.cur] = menuCaseLight; } break; diff --git a/TFT/src/User/Menu/MainPage.c b/TFT/src/User/Menu/MainPage.c index f947a7c194..815c3845ba 100644 --- a/TFT/src/User/Menu/MainPage.c +++ b/TFT/src/User/Menu/MainPage.c @@ -132,9 +132,13 @@ void classicMenu(void) case KEY_ICON_7: if (infoMachineSettings.leveling != BL_DISABLED) + { infoMenu.menu[++infoMenu.cur] = menuBedLeveling; + } else + { infoMenu.menu[++infoMenu.cur] = menuManualLeveling; + } break; default: diff --git a/TFT/src/User/Menu/MarlinMode.c b/TFT/src/User/Menu/MarlinMode.c index 4583d1e7fe..f1482f82ff 100644 --- a/TFT/src/User/Menu/MarlinMode.c +++ b/TFT/src/User/Menu/MarlinMode.c @@ -20,28 +20,30 @@ void menuMarlinMode(void) GUI_Clear(infoSettings.marlin_mode_bg_color); GUI_SetColor(infoSettings.marlin_mode_font_color); GUI_SetBkColor(infoSettings.marlin_mode_bg_color); - if(infoSettings.marlin_mode_showtitle == 1){ + if(infoSettings.marlin_mode_showtitle == 1) + { STRINGS_STORE tempST; W25Qxx_ReadBuffer((uint8_t *)&tempST,STRINGS_STORE_ADDR,sizeof(STRINGS_STORE)); GUI_DispStringInRect(0, 0, LCD_WIDTH, ST7920_GYSTART_FULLSCREEN, (uint8_t *)tempST.marlin_title); } -#if defined(ST7920_SPI) - if (infoSettings.marlin_type == LCD12864) { - marlinInit = SPI_Slave; - marlinDeInit = SPI_SlaveDeInit; - marlinGetData = SPI_SlaveGetData; - marlinParse = ST7920_ParseRecv; - } -#endif -#if defined(LCD2004_simulator) - if (infoSettings.marlin_type == LCD2004) { - marlinInit = HD44780_Config; - marlinDeInit = HD44780_DeConfig; - marlinGetData = HD44780_getData; - marlinParse = HD44780_ParseRecv; - } -#endif + #if defined(ST7920_SPI) + if (infoSettings.marlin_type == LCD12864) { + marlinInit = SPI_Slave; + marlinDeInit = SPI_SlaveDeInit; + marlinGetData = SPI_SlaveGetData; + marlinParse = ST7920_ParseRecv; + } + #endif + + #if defined(LCD2004_simulator) + if (infoSettings.marlin_type == LCD2004) { + marlinInit = HD44780_Config; + marlinDeInit = HD44780_DeConfig; + marlinGetData = HD44780_getData; + marlinParse = HD44780_ParseRecv; + } + #endif CIRCULAR_QUEUE marlinQueue; uint8_t data; @@ -54,12 +56,16 @@ void menuMarlinMode(void) { marlinParse(data); } + #if LCD_ENCODER_SUPPORT sendEncoder(LCD_ReadTouch()); if(LCD_BtnTouch(LCD_BUTTON_INTERVALS)) + { sendEncoder(1); + } #endif + loopCheckMode(); #ifdef LCD_LED_PWM_CHANNEL diff --git a/TFT/src/User/Menu/MeshEditor.c b/TFT/src/User/Menu/MeshEditor.c index 7e288d8bd6..1c9dae684d 100644 --- a/TFT/src/User/Menu/MeshEditor.c +++ b/TFT/src/User/Menu/MeshEditor.c @@ -195,7 +195,9 @@ const GUI_RECT meshAreaRect[MESH_AREA_NUM] = { void meshInitData(void) { if (meshData == NULL) + { return; + } meshData->dataSize = 0; meshData->colsNum = 0; @@ -233,7 +235,9 @@ void meshInitData(void) void meshAllocData(void) { if (meshData != NULL) // if data already exist (e.g. when the menu is reloaded), continue to use the existing data + { return; + } meshData = (MESH_DATA *) malloc(sizeof(MESH_DATA)); @@ -245,7 +249,9 @@ void meshAllocData(void) void meshDeallocData(void) { if (meshData == NULL) + { return; + } free(meshData); @@ -304,7 +310,9 @@ bool processKnownDataFormat(char *dataRow) void meshSaveCallback(void) { if (meshSaveCallbackPtr != NULL) + { meshSaveCallbackPtr(); + } meshDeallocData(); // deallocate mesh data. It forces data reloading during Mesh Editor menu reloading } @@ -312,7 +320,9 @@ void meshSaveCallback(void) bool meshGetStatus(void) { if (meshData->status != ME_DATA_FULL) + { return false; + } return true; } @@ -320,7 +330,9 @@ bool meshGetStatus(void) uint16_t meshGetSize(void) { if (!meshGetStatus()) + { return 0; + } return meshData->dataSize; } @@ -328,7 +340,9 @@ uint16_t meshGetSize(void) uint16_t meshGetColsNum(void) { if (!meshGetStatus()) + { return 0; + } return meshData->colsNum; } @@ -336,7 +350,9 @@ uint16_t meshGetColsNum(void) uint16_t meshGetRowsNum(void) { if (!meshGetStatus()) + { return 0; + } return meshData->rowsNum; } @@ -404,9 +420,13 @@ uint16_t meshGetJ() uint16_t meshGetValueRow(uint16_t index) { if (meshData->rowsInverted) + { return (meshData->rowsNum - 1) - (index / meshData->colsNum); + } else + { return (index / meshData->colsNum); + } } float meshGetValueOrig(uint16_t index) @@ -463,7 +483,9 @@ bool meshUpdateValueMinMax(float value) } if (isValueChanged) + { meshData->valueDelta = meshData->valueMax - meshData->valueMin; + } return isValueChanged; } @@ -471,7 +493,9 @@ bool meshUpdateValueMinMax(float value) void meshFullUpdateValueMinMax(void) { if (!meshGetStatus()) + { return; + } meshData->initValueMinMax = true; @@ -484,7 +508,9 @@ void meshFullUpdateValueMinMax(void) uint16_t meshGetRGBColor(float value) { if (meshData->valueDelta == 0) + { return (meshData->rStart << 11) | (meshData->gStart << 5) | (meshData->bStart); + } float valueDiff; uint16_t r, g, b; @@ -508,13 +534,19 @@ void meshDrawGridCell(uint16_t index, uint16_t edgeDistance, bool clearBkGround) uint16_t radius = cellWidth / MESH_POINT_MAX_RATIO; if (index == meshGetIndex()) + { radius = MIN(cellWidth, cellHeight) / MESH_POINT_MIN_RATIO; + } else if (value == meshGetValueMin() || value == meshGetValueMax()) + { radius = MIN(cellWidth, cellHeight) / MESH_POINT_MED_RATIO; + } if (clearBkGround) + { GUI_ClearRect(meshGridRect.x0 + col * cellWidth + 1, meshGridRect.y0 + row * cellHeight + 1, meshGridRect.x0 + (col + 1) * cellWidth - 1, meshGridRect.y0 + (row + 1) * cellHeight - 1); + } GUI_SetColor(infoSettings.list_border_color); @@ -561,7 +593,9 @@ void meshDrawInfoCell(const GUI_RECT *rect, float *val, bool largeFont, uint16_t sprintf(tempstr, "%.3f", *val); if (largeFont) + { setLargeFont(true); + } GUI_SetColor(color); GUI_DispStringInPrect(rect, (u8 *) tempstr); @@ -576,10 +610,14 @@ void meshDrawInfoCell(const GUI_RECT *rect, float *val, bool largeFont, uint16_t void meshDrawInfo(float *minVal, float *maxVal, float *origVal, float *curVal) { if (minVal != NULL) + { meshDrawInfoCell(&meshInfoRect[ME_INFO_MIN], minVal, false, meshGetRGBColor(*minVal), infoSettings.bg_color, 1, false); + } if (maxVal != NULL) + { meshDrawInfoCell(&meshInfoRect[ME_INFO_MAX], maxVal, false, meshGetRGBColor(*maxVal), infoSettings.bg_color, 1, false); + } meshDrawInfoCell(&meshInfoRect[ME_INFO_ORIG], origVal, false, infoSettings.font_color, infoSettings.bg_color, 1, false); meshDrawInfoCell(&meshInfoRect[ME_INFO_CUR], curVal, true, infoSettings.font_color, infoSettings.status_xyz_bg_color, 2, false); @@ -606,9 +644,13 @@ void meshKeyPress(u8 index, u8 isPressed) if (index < MESH_KEY_NUM) { if (!isPressed) + { GUI_SetColor(infoSettings.bg_color); + } else + { GUI_SetColor(infoSettings.list_border_color); + } GUI_DrawRect(meshKeyRect[index].x0 + 2, meshKeyRect[index].y0 + 2, meshKeyRect[index].x1 - 2, meshKeyRect[index].y1 - 2); GUI_SetColor(infoSettings.font_color); @@ -626,11 +668,15 @@ void meshDrawKeyboard(void) for (uint8_t i = 0; i < MESH_KEY_NUM; i++) { if (!(i == ME_KEY_SAVE || i == ME_KEY_OK || i == ME_KEY_RESET || i == ME_KEY_HOME)) // if not a unicode string + { GUI_DispStringInPrect(&meshKeyRect[i], (u8 *) meshKeyString[i]); + } } if (infoMachineSettings.EEPROM == 1) + { DrawCharIcon(&meshKeyRect[ME_KEY_SAVE], MIDDLE, ICONCHAR_SAVE, false, 0); + } DrawCharIcon(&meshKeyRect[ME_KEY_OK], MIDDLE, ICONCHAR_OK, false, 0); DrawCharIcon(&meshKeyRect[ME_KEY_RESET], MIDDLE, ICONCHAR_RESET, false, 0); DrawCharIcon(&meshKeyRect[ME_KEY_HOME], MIDDLE, ICONCHAR_MOVE, false, 0); @@ -675,7 +721,9 @@ void meshSave(bool saveOnChange) { if (!meshGetStatus() || (saveOnChange && !memcmp(&meshData->data, &meshData->dataOrig, sizeof(meshData->dataOrig)))) // if no changes, nothing to do + { return; + } if (infoMachineSettings.EEPROM == 1) { @@ -686,9 +734,10 @@ void meshSave(bool saveOnChange) bool meshIsWaitingFirstData(void) { - if (meshData == NULL || - meshData->status != ME_DATA_IDLE) // if mesh editor is not running or is already handling data + if (meshData == NULL || meshData->status != ME_DATA_IDLE) // if mesh editor is not running or is already handling data + { return false; + } return true; } @@ -699,7 +748,9 @@ bool meshIsWaitingData(void) meshData->status == ME_DATA_IDLE || meshData->status == ME_DATA_FULL || meshData->status == ME_DATA_FAILED) // if mesh editor is not running or is not waiting for data + { return false; + } return true; } @@ -707,7 +758,9 @@ bool meshIsWaitingData(void) uint16_t meshParseDataRow(char *dataRow, float *dataGrid, uint16_t maxCount) { if (meshData->parsedRows < meshData->rowsToSkip) + { return 0; + } uint16_t curCount; uint16_t validCount; @@ -748,12 +801,18 @@ void meshUpdateData(char *dataRow) if (meshIsWaitingFirstData()) // if waiting for first data { if (processKnownDataFormat(dataRow)) // if known data format, change state to EMPTY and proceed with data handling + { meshData->status = ME_DATA_EMPTY; + } else + { failed = true; + } } else if (!meshIsWaitingData()) // if not waiting for data, nothing to do + { return; + } if (!failed) { @@ -795,7 +854,9 @@ void meshUpdateData(char *dataRow) memcpy(&meshData->data, &meshData->dataOrig, sizeof(meshData->dataOrig)); } else // if mesh grid is smaller than a 1x1 matrix, data grid is marked as failed + { failed = true; + } } } diff --git a/TFT/src/User/Menu/Mode.c b/TFT/src/User/Menu/Mode.c index 0b4f0e2b90..b97db1456d 100644 --- a/TFT/src/User/Menu/Mode.c +++ b/TFT/src/User/Menu/Mode.c @@ -7,6 +7,7 @@ bool freshboot = true; void Serial_ReSourceDeInit(void) { if (!serialHasBeenInitialized) return; + serialHasBeenInitialized = false; Serial_DeInit(); } @@ -14,6 +15,7 @@ void Serial_ReSourceDeInit(void) void Serial_ReSourceInit(void) { if (serialHasBeenInitialized) return; + serialHasBeenInitialized = true; memset(&infoHost, 0, sizeof(infoHost)); @@ -44,9 +46,13 @@ void infoMenuSelect(void) #endif GUI_RestoreColorDefault(); if(infoSettings.unified_menu == 1) //if Unified menu is selected + { infoMenu.menu[infoMenu.cur] = menuStatus; //status screen as default screen on boot + } else + { infoMenu.menu[infoMenu.cur] = classicMenu; // classic UI + } #ifdef SHOW_BTT_BOOTSCREEN if (freshboot) diff --git a/TFT/src/User/Menu/More.c b/TFT/src/User/Menu/More.c index 05b5164363..e4662237ec 100644 --- a/TFT/src/User/Menu/More.c +++ b/TFT/src/User/Menu/More.c @@ -4,7 +4,9 @@ void isPauseConfirm(void) { if(setPrintPause(true,false)) + { infoMenu.menu[infoMenu.cur] = menuExtrude; + } } void menuMore(void) diff --git a/TFT/src/User/Menu/Move.c b/TFT/src/User/Menu/Move.c index 730d24ac30..601884d536 100644 --- a/TFT/src/User/Menu/Move.c +++ b/TFT/src/User/Menu/Move.c @@ -94,19 +94,30 @@ void menuMove(void) {{0, 4}, {1, 5}, {2, 6}} #endif ; - if(infoSettings.invert_axis[X_AXIS] != 1){ + if(infoSettings.invert_axis[X_AXIS] != 1) + { LOAD_XYZ_LABEL_INDEX(table[X_AXIS][0], INC, table[X_AXIS][1], DEC, X); // table[0] <--> INC(+) table[1] <--> DEC(+) if not inverted - } else { + } + else + { LOAD_XYZ_LABEL_INDEX(table[X_AXIS][0], DEC, table[X_AXIS][1], INC, X); // table[0] <--> DEC(-) table[1] <--> INC(-) if inverted } - if(infoSettings.invert_axis[Y_AXIS] != 1){ + + if(infoSettings.invert_axis[Y_AXIS] != 1) + { LOAD_XYZ_LABEL_INDEX(table[Y_AXIS][0], INC, table[Y_AXIS][1], DEC, Y); - } else { + } + else + { LOAD_XYZ_LABEL_INDEX(table[Y_AXIS][0], DEC, table[Y_AXIS][1], INC, Y); } - if(infoSettings.invert_axis[Z_AXIS] != 1){ + + if(infoSettings.invert_axis[Z_AXIS] != 1) + { LOAD_XYZ_LABEL_INDEX(table[Z_AXIS][0], INC, table[Z_AXIS][1], DEC, Z); - } else { + } + else + { LOAD_XYZ_LABEL_INDEX(table[Z_AXIS][0], DEC, table[Z_AXIS][1], INC, Z); } @@ -184,7 +195,8 @@ void update_gantry(void) } } -void drawXYZ(void){ +void drawXYZ(void) +{ char tempstr[20]; if (nowAxis == X_AXIS) GUI_SetColor(INFOBOX_ICON_COLOR); sprintf(tempstr, "X:%.2f ", coordinateGetAxisActual(X_AXIS)); diff --git a/TFT/src/User/Menu/Parametersetting.c b/TFT/src/User/Menu/Parametersetting.c index e69ec3cca2..a92503c547 100644 --- a/TFT/src/User/Menu/Parametersetting.c +++ b/TFT/src/User/Menu/Parametersetting.c @@ -48,7 +48,8 @@ LABEL_PARAMETER_SETTING, }; //show menu for selected parameter type -void menuShowParameter(void){ +void menuShowParameter(void) +{ KEY_VALUES key_num = KEY_IDLE; PARAMETERS now = infoParameters; float oldval[LISTITEM_PER_PAGE]; @@ -140,7 +141,9 @@ void menuShowParameter(void){ if (key_num < (KEY_VALUES)STEPPER_COUNT) { if (parameter_menuitems.items[key_num].icon == ICONCHAR_BACKGROUND) + { break; + } VAL_TYPE v_type = getParameterValType(cur_parameter, key_num); //accept negative values only for probe offset @@ -149,9 +152,13 @@ void menuShowParameter(void){ float v = getParameter(cur_parameter, key_num); if (v_type == VAL_TYPE_FLOAT || v_type == VAL_TYPE_NEG_FLOAT) + { v = numPadFloat(NULL, v, v, negative_val); // parameter is a decimal number + } else + { v = (float)numPadInt(NULL, v, v, negative_val); // parameter is an integer + } if (v != getParameter(cur_parameter, key_num)) { @@ -178,23 +185,29 @@ void menuShowParameter(void){ } //Load main parameter list page -void loadParameterPage(void){ -for (uint8_t i = 0; i < LISTITEM_PER_PAGE; i++) +void loadParameterPage(void) +{ + for (uint8_t i = 0; i < LISTITEM_PER_PAGE; i++) { uint8_t item_index = ps_cur_page * LISTITEM_PER_PAGE + i; if (item_index < P_ITEMSCOUNT) { if (infoMachineSettings.EEPROM != 1 && (item_index == P_RESET_SETTINGS || item_index == P_RESTORE_SETTINGS || item_index == P_SAVE_SETTINGS)) + { parameterMainItems.items[i].icon = ICONCHAR_BACKGROUND; + } else + { parameterMainItems.items[i] = parametertypes[item_index]; + } } else { parameterMainItems.items[i].icon = ICONCHAR_BACKGROUND; } } -// set page up down button according to page count and current page + + // set page up down button according to page count and current page if (P_ITEMSCOUNT <= LISTITEM_PER_PAGE) { parameterMainItems.items[5].icon = ICONCHAR_BACKGROUND; @@ -202,11 +215,13 @@ for (uint8_t i = 0; i < LISTITEM_PER_PAGE; i++) } else { - if(ps_cur_page == 0){ + if(ps_cur_page == 0) + { parameterMainItems.items[5].icon = ICONCHAR_BACKGROUND; parameterMainItems.items[6].icon = ICONCHAR_PAGEDOWN; } - else if(ps_cur_page == (total_pages-1)){ + else if(ps_cur_page == (total_pages-1)) + { parameterMainItems.items[5].icon = ICONCHAR_PAGEUP; parameterMainItems.items[6].icon = ICONCHAR_BACKGROUND; } @@ -218,13 +233,18 @@ for (uint8_t i = 0; i < LISTITEM_PER_PAGE; i++) } } -void menuParameterSettings(void){ +void menuParameterSettings(void) +{ KEY_VALUES key_num = KEY_IDLE; if (infoMachineSettings.EEPROM != 1) + { total_pages = (P_SAVE_SETTINGS+LISTITEM_PER_PAGE-1)/LISTITEM_PER_PAGE; + } else + { total_pages = (P_ITEMSCOUNT+LISTITEM_PER_PAGE-1)/LISTITEM_PER_PAGE; + } loadParameterPage(); menuDrawListPage(¶meterMainItems); @@ -360,30 +380,34 @@ void loopTemperatureStatus(void) if (update) menuReDrawCurTitle(); } -int16_t drawTemperatureStatus(void){ - +int16_t drawTemperatureStatus(void) +{ int16_t x_offset = LCD_WIDTH - 10; if (!temperatureStatusValid()) return x_offset; uint8_t tmpHeater[3]; // chamber, bed, hotend uint16_t tmpIcon[3]; uint8_t tmpIndex = 0; - if (infoSettings.hotend_count) { // global hotend + if (infoSettings.hotend_count) // global hotend + { tmpIcon[tmpIndex] = ICON_GLOBAL_NOZZLE; tmpHeater[tmpIndex++] = heatGetCurrentHotend(); } - if (infoSettings.bed_en) { // global bed + if (infoSettings.bed_en) // global bed + { tmpIcon[tmpIndex] = ICON_GLOBAL_BED; tmpHeater[tmpIndex++] = BED; } - if (infoSettings.chamber_en) { // global chamber + if (infoSettings.chamber_en) // global chamber + { tmpIcon[tmpIndex] = ICON_GLOBAL_CHAMBER; tmpHeater[tmpIndex++] = CHAMBER; } uint16_t start_y = (TITLE_END_Y - BYTE_HEIGHT) / 2; GUI_SetBkColor(infoSettings.title_bg_color); - for(int8_t i = tmpIndex - 1; i >= 0; i--) { + for(int8_t i = tmpIndex - 1; i >= 0; i--) + { char tempstr[10]; x_offset -= GLOBALICON_INTERVAL; GUI_ClearRect(x_offset, start_y, x_offset + GLOBALICON_INTERVAL, start_y + GLOBALICON_HEIGHT); @@ -398,6 +422,7 @@ int16_t drawTemperatureStatus(void){ x_offset -= GLOBALICON_WIDTH; ICON_ReadDisplay(x_offset, start_y, tmpIcon[i]); // icon } + GUI_SetBkColor(infoSettings.bg_color); return x_offset; } diff --git a/TFT/src/User/Menu/Pid.c b/TFT/src/User/Menu/Pid.c index f92af62310..4fda9f430d 100644 --- a/TFT/src/User/Menu/Pid.c +++ b/TFT/src/User/Menu/Pid.c @@ -20,40 +20,44 @@ bool pidInitialized = false; void pidUpdateStatus(bool succeeded) { if (pidCounter > 0) + { pidCounter--; + } if (!succeeded) // if one PID process fails, the overall PID process must be marked as failed so no save to EEPROM will be allowed + { pidSucceeded = false; + } if (pidCounter > 0) // if all the PID processes were still not terminated, simply provide a notification { -#ifdef ENABLE_PID_STATUS_UPDATE_NOTIFICATION - labelChar(tempMsg, LABEL_PID_TITLE); + #ifdef ENABLE_PID_STATUS_UPDATE_NOTIFICATION + labelChar(tempMsg, LABEL_PID_TITLE); - if (succeeded) - { - sprintf(&tempMsg[strlen(tempMsg)], " %s", textSelect(LABEL_PROCESS_COMPLETED)); + if (succeeded) + { + sprintf(&tempMsg[strlen(tempMsg)], " %s", textSelect(LABEL_PROCESS_COMPLETED)); - BUZZER_PLAY(sound_notify); + BUZZER_PLAY(sound_notify); - addToast(DIALOG_TYPE_INFO, tempMsg); - } - else - { - sprintf(&tempMsg[strlen(tempMsg)], " %s", textSelect(LABEL_PROCESS_ABORTED)); + addToast(DIALOG_TYPE_INFO, tempMsg); + } + else + { + sprintf(&tempMsg[strlen(tempMsg)], " %s", textSelect(LABEL_PROCESS_ABORTED)); - BUZZER_PLAY(sound_error); + BUZZER_PLAY(sound_error); - addToast(DIALOG_TYPE_ERROR, tempMsg); - } -#endif + addToast(DIALOG_TYPE_ERROR, tempMsg); + } + #endif } else // if all the PID processes terminated, provide the final dialog { pidRunning = false; #ifdef LED_COLOR_PIN #ifdef LCD_LED_PWM_CHANNEL - WS2812_Send_DAT(LED_GREEN); // Set encoder LED to GREEN + WS2812_Send_DAT(LED_GREEN); // Set encoder LED to GREEN #endif #endif if (pidSucceeded) // if all the PID processes successfully terminated, allow to save to EEPROM @@ -112,7 +116,9 @@ void pidUpdateCounter(void) for (uint8_t i = 0; i < MAX_HEATER_COUNT; i++) // hotends + bed + chamber { if (pidHeater.T[i].target > 0) + { pidCounter++; + } } } @@ -146,7 +152,9 @@ void menuPidWait(void) if (!isPressed) // if touch screen is not yet pressed { if (isPress()) // if touch screen is now pressed + { isPressed = true; + } } else if (!isPress()) // if touch screen is now released { @@ -154,7 +162,9 @@ void menuPidWait(void) } if (isReleased) + { infoMenu.cur--; + } pidCheckTimeout(); @@ -170,12 +180,14 @@ void pidStart(void) pidUpdateCounter(); // update the number of set temperatures (number of PID processes to execute) pidTimeout = OS_GetTimeMs() + PID_PROCESS_TIMEOUT; // set timeout for overall PID process - mustStoreCmd("M150 R255 U0 B0 P255\n"); // set LED light to RED + mustStoreCmd("M150 R255 U0 B0 P255\n"); // set neopixel LED light to RED + #ifdef LED_COLOR_PIN #ifdef LCD_LED_PWM_CHANNEL - WS2812_Send_DAT(LED_RED); // Set encoder LED to GREEN + WS2812_Send_DAT(LED_RED); // Set encoder LED to RED #endif #endif + mustStoreCmd("M106 S255\n"); // set fan speed to max mustStoreCmd("G4 S1\n"); // wait 1 sec @@ -189,7 +201,7 @@ void pidStart(void) } mustStoreCmd("M107\n"); // stop fan - mustStoreCmd("M150 R0 U255 B0 P255\n"); // set LED light to GREEN + mustStoreCmd("M150 R0 U255 B0 P255\n"); // set LED light to GREEN infoMenu.menu[++infoMenu.cur] = menuPidWait; } @@ -216,11 +228,7 @@ void pidTemperatureReDraw(bool skip_header) void menuPid(void) { - #ifdef LED_COLOR_PIN - #ifdef LCD_LED_PWM_CHANNEL - WS2812_Send_DAT(led_color[infoSettings.knob_led_color]); // Set encoder LED to GREEN - #endif - #endif + wakeLCD(); //Wakeup screen (restore RGB knob to it's normal color) const ITEM itemPidTool[] = { // icon label {ICON_NOZZLE, LABEL_NOZZLE}, @@ -285,22 +293,31 @@ void menuPid(void) switch (key_num) { case KEY_ICON_0: + { if (pidHeater.T[pidHeater.toolIndex].target > 0) - pidHeater.T[pidHeater.toolIndex].target = - NOBEYOND(0, pidHeater.T[pidHeater.toolIndex].target - pidDegree[curDegree], infoSettings.max_temp[pidHeater.toolIndex]); + { + pidHeater.T[pidHeater.toolIndex].target = NOBEYOND(0, + pidHeater.T[pidHeater.toolIndex].target - pidDegree[curDegree], + infoSettings.max_temp[pidHeater.toolIndex]); + } pidTemperatureReDraw(true); - break; + }break; case KEY_ICON_3: + { if (pidHeater.T[pidHeater.toolIndex].target < infoSettings.max_temp[pidHeater.toolIndex]) - pidHeater.T[pidHeater.toolIndex].target = - NOBEYOND(0, pidHeater.T[pidHeater.toolIndex].target + pidDegree[curDegree], infoSettings.max_temp[pidHeater.toolIndex]); + { + pidHeater.T[pidHeater.toolIndex].target = NOBEYOND(0, + pidHeater.T[pidHeater.toolIndex].target + pidDegree[curDegree], + infoSettings.max_temp[pidHeater.toolIndex]); + } pidTemperatureReDraw(true); - break; + }break; case KEY_ICON_4: + { do { pidHeater.toolIndex = (pidHeater.toolIndex + 1) % MAX_HEATER_COUNT; @@ -311,17 +328,19 @@ void menuPid(void) menuDrawItem(&pidItems.items[key_num], key_num); pidTemperatureReDraw(false); - break; + }break; case KEY_ICON_5: + { curDegree = (curDegree + 1) % ITEM_PID_DEGREE_NUM; pidItems.items[key_num] = itemPidDegree[curDegree]; menuDrawItem(&pidItems.items[key_num], key_num); - break; + }break; case KEY_ICON_6: + { if (pidRunning) { addToast(DIALOG_TYPE_ERROR, (char *) textSelect(LABEL_PROCESS_RUNNING)); @@ -340,31 +359,42 @@ void menuPid(void) showDialog(DIALOG_TYPE_QUESTION, pidStart, NULL, NULL); } } - break; + }break; case KEY_ICON_7: infoMenu.cur--; break; default: + { #if LCD_ENCODER_SUPPORT if (encoderPosition) { if (encoderPosition > 0) + { if (pidHeater.T[pidHeater.toolIndex].target < infoSettings.max_temp[pidHeater.toolIndex]) - pidHeater.T[pidHeater.toolIndex].target = - NOBEYOND(0, pidHeater.T[pidHeater.toolIndex].target + pidDegree[curDegree], infoSettings.max_temp[pidHeater.toolIndex]); + { + pidHeater.T[pidHeater.toolIndex].target = NOBEYOND(0, + pidHeater.T[pidHeater.toolIndex].target + pidDegree[curDegree], + infoSettings.max_temp[pidHeater.toolIndex]); + } + } if (encoderPosition < 0) + { if (pidHeater.T[pidHeater.toolIndex].target > 0) - pidHeater.T[pidHeater.toolIndex].target = - NOBEYOND(0, pidHeater.T[pidHeater.toolIndex].target - pidDegree[curDegree], infoSettings.max_temp[pidHeater.toolIndex]); + { + pidHeater.T[pidHeater.toolIndex].target = NOBEYOND(0, + pidHeater.T[pidHeater.toolIndex].target - pidDegree[curDegree], + infoSettings.max_temp[pidHeater.toolIndex]); + } + } pidTemperatureReDraw(true); encoderPosition = 0; } #endif - break; + }break; } pidCheckTimeout(); diff --git a/TFT/src/User/Menu/Popup.c b/TFT/src/User/Menu/Popup.c index d453003a98..07eb4f80bd 100644 --- a/TFT/src/User/Menu/Popup.c +++ b/TFT/src/User/Menu/Popup.c @@ -45,14 +45,10 @@ static DIALOG_TYPE popup_type; void windowReDrawButton(u8 position, u8 pressed) { - if (position >= buttonNum) - return; - if (pressed >= 2) - return; - if (windowButton == NULL) - return; - if (windowButton->context == NULL) - return; + if (position >= buttonNum) return; + if (pressed >= 2) return; + if (windowButton == NULL) return; + if (windowButton->context == NULL) return; GUI_DrawButton(windowButton + position, pressed); } @@ -84,7 +80,9 @@ void popupDrawPage(DIALOG_TYPE type, BUTTON *btn, const uint8_t *title, const ui GUI_DrawWindow(&window, title, context, true); for(u8 i = 0; i < buttonNum; i++) + { GUI_DrawButton(&windowButton[i], 0); + } } else // draw a window with no buttons bar { @@ -116,7 +114,9 @@ static void menuDialog(void) } if (action_loop != NULL) + { action_loop(); + } loopProcess(); } @@ -190,7 +190,9 @@ void _setDialogCancelTextLabel(int16_t index) void showDialog(DIALOG_TYPE type, void (*ok_action)(), void (*cancel_action)(), void (*loop_action)()) { if (infoSettings.mode == MARLIN) + { return; + } popup_redraw = true; popup_type = type; @@ -213,7 +215,9 @@ void showDialog(DIALOG_TYPE type, void (*ok_action)(), void (*cancel_action)(), void loopPopup(void) { if (popup_redraw == false) + { return; + } popup_redraw = false; diff --git a/TFT/src/User/Menu/PowerFailed.c b/TFT/src/User/Menu/PowerFailed.c index 547fc16926..b812bb3351 100644 --- a/TFT/src/User/Menu/PowerFailed.c +++ b/TFT/src/User/Menu/PowerFailed.c @@ -69,7 +69,10 @@ void powerFailedCache(u32 offset) infoBreakPoint.relative = coorGetRelative(); infoBreakPoint.relative_e = eGetRelative(); } - else if (infoBreakPoint.pause) return; // paused and the pause state has been saved + else if (infoBreakPoint.pause) + { + return; // paused and the pause state has been saved + } infoBreakPoint.pause = isPause(); @@ -129,7 +132,9 @@ bool powerOffGetData(void) for(int8_t i = MAX_HEATER_COUNT - 1; i >= 0; i--) { if(infoBreakPoint.target[i] != 0) + { mustStoreCacheCmd("%s S%d\n", heatWaitCmd[i], infoBreakPoint.target[i]); + } } for(uint8_t i = 0; i < infoSettings.fan_count; i++) @@ -145,9 +150,15 @@ bool powerOffGetData(void) { uint16_t z_raised = 0; if(infoSettings.btt_ups == 1) + { z_raised += infoSettings.powerloss_z_raise; + } + if(infoBreakPoint.pause) + { z_raised += infoSettings.pause_z_raise; + } + mustStoreCacheCmd("G92 Z%.3f\n", infoBreakPoint.axis[Z_AXIS] + z_raised); mustStoreCacheCmd("G1 Z%.3f\n", infoBreakPoint.axis[Z_AXIS] + infoSettings.powerloss_z_raise); if (infoSettings.powerloss_home) diff --git a/TFT/src/User/Menu/Print.c b/TFT/src/User/Menu/Print.c index 8aed8e18b7..88009505f3 100644 --- a/TFT/src/User/Menu/Print.c +++ b/TFT/src/User/Menu/Print.c @@ -119,7 +119,8 @@ void gocdeIconDraw(void) { if(EnterDir(infoFile.file[i + infoFile.cur_page * NUM_PER_PAGE - infoFile.F_num]) == false) break; // if model preview bmp exists, display bmp directly without writing to flash - if(model_DirectDisplay(getIconStartPoint(i), infoFile.title) != true){ + if(model_DirectDisplay(getIconStartPoint(i), infoFile.title) != true) + { curItem.icon = ICON_FILE; menuDrawItem(&curItem, i); } @@ -182,11 +183,13 @@ void gocdeListDraw(void) } else { - if(infoFile.cur_page == 0){ + if(infoFile.cur_page == 0) + { printListItems.items[5].icon = ICONCHAR_BACKGROUND; printListItems.items[6].icon = ICONCHAR_PAGEDOWN; } - else if(infoFile.cur_page == (t_pagenum-1)){ + else if(infoFile.cur_page == (t_pagenum-1)) + { printListItems.items[5].icon = ICONCHAR_PAGEUP; printListItems.items[6].icon = ICONCHAR_BACKGROUND; } @@ -219,11 +222,13 @@ void menuPrintFromSource(void) if (mountFS() == true && scanPrintFiles() == true) { - if(list_mode != true){ + if(list_mode != true) + { menuDrawPage(&printIconItems); gocdeIconDraw(); } - else{ + else + { menuDrawListPage(&printListItems); gocdeListDraw(); } @@ -231,9 +236,13 @@ void menuPrintFromSource(void) else { if(infoFile.source == BOARD_SD) + { GUI_DispStringInRect(0, 0, LCD_WIDTH, LCD_HEIGHT, (u8*)requestCommandInfo.cmd_rev_buf); + } else + { GUI_DispStringInRect(0, 0, LCD_WIDTH, LCD_HEIGHT, labelVolumeError[infoFile.source]); + } Delay_ms(1000); infoMenu.cur--; } @@ -244,7 +253,8 @@ void menuPrintFromSource(void) Scroll_DispString(&titleScroll, LEFT); // GUI_SetBkColor(infoSettings.bg_color); - if(list_mode != true){ + if(list_mode != true) + { Scroll_DispString(&gcodeScroll, CENTER); // } @@ -252,88 +262,90 @@ void menuPrintFromSource(void) switch(key_num) { - case KEY_ICON_5: - if(infoFile.cur_page > 0) - { - infoFile.cur_page--; - update=1; - } - break; + case KEY_ICON_5: + if(infoFile.cur_page > 0) + { + infoFile.cur_page--; + update=1; + } + break; - case KEY_ICON_6: - if(infoFile.cur_page+1 < (infoFile.F_num+infoFile.f_num+(NUM_PER_PAGE-1))/NUM_PER_PAGE) - { - infoFile.cur_page++; - update=1; - } + case KEY_ICON_6: + if(infoFile.cur_page+1 < (infoFile.F_num+infoFile.f_num+(NUM_PER_PAGE-1))/NUM_PER_PAGE) + { + infoFile.cur_page++; + update=1; + } + break; + + case KEY_ICON_7: + infoFile.cur_page = 0; + if(IsRootDir() == true) + { + clearInfoFile(); + infoMenu.cur--; break; + } + else + { + ExitDir(); + scanPrintFiles(); + update = 1; + } + break; - case KEY_ICON_7: - infoFile.cur_page = 0; - if(IsRootDir() == true) - { - clearInfoFile(); - infoMenu.cur--; - break; - } - else + case KEY_IDLE: + break; + + default: + if(key_num < ITEM_PER_PAGE) + { + u16 start = infoFile.cur_page * NUM_PER_PAGE; + if(key_num + start < infoFile.F_num) //folder { - ExitDir(); + if(EnterDir(infoFile.folder[key_num + start]) == false) break; scanPrintFiles(); - update = 1; + update=1; + infoFile.cur_page=0; } - break; - - case KEY_IDLE: - break; - - default: - if(key_num < ITEM_PER_PAGE) + else if(key_num+start < infoFile.F_num+infoFile.f_num) //gcode { - u16 start = infoFile.cur_page * NUM_PER_PAGE; - if(key_num + start < infoFile.F_num) //folder - { - if(EnterDir(infoFile.folder[key_num + start]) == false) break; - scanPrintFiles(); - update=1; - infoFile.cur_page=0; - } - else if(key_num+start < infoFile.F_num+infoFile.f_num) //gcode - { - if(infoHost.connected !=true) break; - if(EnterDir(infoFile.file[key_num + start - infoFile.F_num]) == false) break; - //load model preview in flash if icon exists - setPrintModelIcon(infoFile.source != BOARD_SD && model_DecodeToFlash(infoFile.title)); - - char temp_info[FILE_NUM + 50]; - sprintf(temp_info, (char *)textSelect(LABEL_START_PRINT), infoFile.file[key_num + start - infoFile.F_num]); - //confirm file selction - setDialogText( LABEL_PRINT, (u8*)temp_info, LABEL_CONFIRM, LABEL_CANCEL); - showDialog(DIALOG_TYPE_QUESTION, startPrint, ExitDir, NULL); - } + if(infoHost.connected !=true) break; + if(EnterDir(infoFile.file[key_num + start - infoFile.F_num]) == false) break; + //load model preview in flash if icon exists + setPrintModelIcon(infoFile.source != BOARD_SD && model_DecodeToFlash(infoFile.title)); + + char temp_info[FILE_NUM + 50]; + sprintf(temp_info, (char *)textSelect(LABEL_START_PRINT), infoFile.file[key_num + start - infoFile.F_num]); + //confirm file selction + setDialogText( LABEL_PRINT, (u8*)temp_info, LABEL_CONFIRM, LABEL_CANCEL); + showDialog(DIALOG_TYPE_QUESTION, startPrint, ExitDir, NULL); } - - else if(key_num >=KEY_LABEL_0 && key_num <= KEY_LABEL_4) + } + else if(key_num >=KEY_LABEL_0 && key_num <= KEY_LABEL_4) + { + if(list_mode != true) { - if(list_mode != true){ - if(key_num - KEY_LABEL_0 + infoFile.cur_page * NUM_PER_PAGE < infoFile.F_num + infoFile.f_num) - { - normalNameDisp(gcodeScroll.rect, gcodeScroll.text); - scrollFileNameCreate(key_num - KEY_LABEL_0); - } + if(key_num - KEY_LABEL_0 + infoFile.cur_page * NUM_PER_PAGE < infoFile.F_num + infoFile.f_num) + { + normalNameDisp(gcodeScroll.rect, gcodeScroll.text); + scrollFileNameCreate(key_num - KEY_LABEL_0); } } - break; + } + break; } if(update) { update=0; - if(list_mode != true){ + if(list_mode != true) + { gocdeIconDraw(); } - else{ + else + { gocdeListDraw(); } } @@ -390,7 +402,7 @@ void menuPrint(void) infoMenu.menu[++infoMenu.cur] = menuPowerOff; goto selectEnd; - #ifdef U_DISK_SUPPORT + #ifdef U_DISK_SUPPORT case KEY_ICON_1: list_mode = infoSettings.file_listmode; //follow list mode setting in usb disk infoFile.source = TFT_UDISK; @@ -398,9 +410,9 @@ void menuPrint(void) infoMenu.menu[++infoMenu.cur] = menuPowerOff; goto selectEnd; case KEY_ICON_2: - #else + #else case KEY_ICON_1: - #endif + #endif if(infoMachineSettings.onboard_sd_support == ENABLED) { list_mode = true; //force list mode in Onboard sd card diff --git a/TFT/src/User/Menu/PrintingMenu.c b/TFT/src/User/Menu/PrintingMenu.c index c65e9f5367..fdc3f17854 100644 --- a/TFT/src/User/Menu/PrintingMenu.c +++ b/TFT/src/User/Menu/PrintingMenu.c @@ -67,7 +67,7 @@ void menuBeforePrinting(void) case BOARD_SD: // GCode from file on ONBOARD SD size = request_M23(infoFile.title+5); - // if( powerFailedCreate(infoFile.title)==false) + // if(powerFailedCreate(infoFile.title)==false) // { // // } // FIXME: Powerfail resume is not yet supported for ONBOARD_SD. Need more work. @@ -90,10 +90,12 @@ void menuBeforePrinting(void) // request_M24(infoBreakPoint.offset); // } - if (infoMachineSettings.autoReportSDStatus ==1){ + if(infoMachineSettings.autoReportSDStatus ==1) + { request_M27(infoSettings.m27_refresh_time*1000); //Check if there is a SD or USB print running. } - else{ + else + { request_M27(0); } @@ -109,7 +111,7 @@ void menuBeforePrinting(void) infoMenu.cur--; return ; } - if( powerFailedCreate(infoFile.title)==false) + if(powerFailedCreate(infoFile.title) == false) { } @@ -117,7 +119,8 @@ void menuBeforePrinting(void) infoPrinting.size = f_size(&infoPrinting.file); infoPrinting.cur = infoPrinting.file.fptr; - if(infoSettings.send_start_gcode == 1 && infoPrinting.cur == 0){ // PLR continue printing, CAN NOT use start gcode + if(infoSettings.send_start_gcode == 1 && infoPrinting.cur == 0) // PLR continue printing, CAN NOT use start gcode + { sendPrintCodes(0); } break; @@ -164,7 +167,7 @@ void reValueBed(int icon_pos) void reDrawFan(int icon_pos) { char tempstr[10]; - if (infoSettings.fan_percentage == 1) + if(infoSettings.fan_percentage == 1) { sprintf(tempstr, "%d%%", fanGetSpeedPercent(c_fan)); } @@ -189,11 +192,13 @@ void reDrawSpeed(int icon_pos) sprintf(tempstr, "%d%%", speedGetPercent(c_speedID) ); - if(c_speedID == 0){ - ICON_ReadDisplay(printinfo_points[icon_pos].x,printinfo_points[icon_pos].y,ICON_PRINTING_SPEED); + if(c_speedID == 0) + { + ICON_ReadDisplay(printinfo_points[icon_pos].x,printinfo_points[icon_pos].y,ICON_PRINTING_SPEED); } - else{ - ICON_ReadDisplay(printinfo_points[icon_pos].x,printinfo_points[icon_pos].y,ICON_PRINTING_FLOW); + else + { + ICON_ReadDisplay(printinfo_points[icon_pos].x,printinfo_points[icon_pos].y,ICON_PRINTING_FLOW); } GUI_DispString(printinfo_points[icon_pos].x + PICON_TITLE_X, printinfo_points[icon_pos].y + PICON_TITLE_Y, (u8 *)Speed_ID[c_speedID]); GUI_DispStringInPrect(&printinfo_val_rect[icon_pos], (u8 *)tempstr); @@ -245,16 +250,16 @@ void reDrawLayer(int icon_pos) void toggleinfo(void) { - if (OS_GetTimeMs() > nextTime) + if(OS_GetTimeMs() > nextTime) { - if (infoSettings.hotend_count > 1) + if(infoSettings.hotend_count > 1) { c_Tool = (c_Tool + 1) % infoSettings.hotend_count; rapid_serial_loop(); //perform backend printing loop before drawing to avoid printer idling reValueNozzle(EXT_ICON_POS); } - if ((infoSettings.fan_count + infoSettings.fan_ctrl_count) > 1) + if((infoSettings.fan_count + infoSettings.fan_ctrl_count) > 1) { c_fan = (c_fan + 1) % (infoSettings.fan_count + infoSettings.fan_ctrl_count); rapid_serial_loop(); //perform backend printing loop before drawing to avoid printer idling @@ -326,7 +331,7 @@ void menuPrinting(void) // Scroll_DispString(&titleScroll, LEFT); //Scroll display file name will take too many CPU cycles //check nozzle temp change - if (nowHeat.T[c_Tool].current != heatGetCurrentTemp(c_Tool) || nowHeat.T[c_Tool].target != heatGetTargetTemp(c_Tool)) + if(nowHeat.T[c_Tool].current != heatGetCurrentTemp(c_Tool) || nowHeat.T[c_Tool].target != heatGetTargetTemp(c_Tool)) { nowHeat.T[c_Tool].current = heatGetCurrentTemp(c_Tool); nowHeat.T[c_Tool].target = heatGetTargetTemp(c_Tool); @@ -335,7 +340,7 @@ void menuPrinting(void) } //check bed temp change - if (nowHeat.T[BED].current != heatGetCurrentTemp(BED) || nowHeat.T[BED].target != heatGetTargetTemp(BED)) + if(nowHeat.T[BED].current != heatGetCurrentTemp(BED) || nowHeat.T[BED].target != heatGetTargetTemp(BED)) { nowHeat.T[BED].current = heatGetCurrentTemp(BED); nowHeat.T[BED].target = heatGetTargetTemp(BED); @@ -344,7 +349,7 @@ void menuPrinting(void) } //check Fan speed change - if (nowFan[c_fan] != fanGetSpeed(c_fan)) + if(nowFan[c_fan] != fanGetSpeed(c_fan)) { nowFan[c_fan] = fanGetSpeed(c_fan); rapid_serial_loop(); //perform backend printing loop before drawing to avoid printer idling @@ -352,7 +357,7 @@ void menuPrinting(void) } //check printing progress - if( infoPrinting.size != 0) + if(infoPrinting.size != 0) { //check print time change if(time != infoPrinting.time || infoPrinting.progress != MIN((uint64_t)infoPrinting.cur*100/infoPrinting.size, 100)) @@ -375,26 +380,29 @@ void menuPrinting(void) } //Z_AXIS coordinate - if(curLayer != coordinateGetAxisTarget(Z_AXIS)){ + if(curLayer != coordinateGetAxisTarget(Z_AXIS)) + { curLayer = coordinateGetAxisTarget(Z_AXIS); rapid_serial_loop(); //perform backend printing loop before drawing to avoid printer idling reDrawLayer(Z_ICON_POS); } //check change in speed or flow - if(curspeed[c_speedID] != speedGetPercent(c_speedID)){ + if(curspeed[c_speedID] != speedGetPercent(c_speedID)) + { curspeed[c_speedID] = speedGetPercent(c_speedID); rapid_serial_loop(); //perform backend printing loop before drawing to avoid printer idling reDrawSpeed(SPD_ICON_POS); } - if (lastPause != isPause()) { + if(lastPause != isPause()) + { lastPause = isPause(); printingItems.items[KEY_ICON_5] = itemIsPause[lastPause]; menuDrawItem(&printingItems.items[KEY_ICON_5], KEY_ICON_5); } - if (lastPrinting != isPrinting()) { + if(lastPrinting != isPrinting()) { lastPrinting = isPrinting(); printingItems.items[KEY_ICON_7] = itemIsPrinting[lastPrinting]; menuDrawItem(&printingItems.items[KEY_ICON_7], KEY_ICON_7); @@ -405,32 +413,32 @@ void menuPrinting(void) KEY_VALUES key_num = menuKeyGetValue(); switch(key_num) { - case KEY_ICON_4: - infoMenu.menu[++infoMenu.cur] = menuBabystep; - break; - - case KEY_ICON_5: - setPrintPause(!isPause(), false); - break; - - case KEY_ICON_6: - infoMenu.menu[++infoMenu.cur] = menuMore; - break; - - case KEY_ICON_7: - if(isPrinting()) - { - setDialogText(LABEL_WARNING, LABEL_STOP_PRINT, LABEL_CONFIRM, LABEL_CANCEL); - showDialog(DIALOG_TYPE_ALERT, stopConfirm, NULL, NULL); - } - else - { - exitPrinting(); - infoMenu.cur--; - } - break; - - default :break; + case KEY_ICON_4: + infoMenu.menu[++infoMenu.cur] = menuBabystep; + break; + + case KEY_ICON_5: + setPrintPause(!isPause(), false); + break; + + case KEY_ICON_6: + infoMenu.menu[++infoMenu.cur] = menuMore; + break; + + case KEY_ICON_7: + if(isPrinting()) + { + setDialogText(LABEL_WARNING, LABEL_STOP_PRINT, LABEL_CONFIRM, LABEL_CANCEL); + showDialog(DIALOG_TYPE_ALERT, stopConfirm, NULL, NULL); + } + else + { + exitPrinting(); + infoMenu.cur--; + } + break; + + default :break; } loopProcess(); } diff --git a/TFT/src/User/Menu/ScreenSettings.c b/TFT/src/User/Menu/ScreenSettings.c index 79bf1ae205..c7ce67c0ef 100644 --- a/TFT/src/User/Menu/ScreenSettings.c +++ b/TFT/src/User/Menu/ScreenSettings.c @@ -59,7 +59,8 @@ void menuLanguage(void) break; default: - if(key_num < LISTITEM_PER_PAGE){ + if(key_num < LISTITEM_PER_PAGE) + { uint16_t cur_item = infoSettings.language; uint16_t tmp_i = listWidgetGetCurPage() * LISTITEM_PER_PAGE + key_num; if (tmp_i < LANGUAGE_NUM && tmp_i != cur_item) { // has changed @@ -147,7 +148,8 @@ void menuSimulatorBackGroundColor(void) break; default: - if(key_num < LISTITEM_PER_PAGE){ + if(key_num < LISTITEM_PER_PAGE) + { uint16_t tmp_i = listWidgetGetCurPage() * LISTITEM_PER_PAGE + key_num; if (tmp_i < LCD_COLOR_COUNT && tmp_i != cur_item) { // has changed totalItems[cur_item].icon = ICONCHAR_UNCHECKED; @@ -211,7 +213,8 @@ void menuSimulatorFontColor(void) break; default: - if(key_num < LISTITEM_PER_PAGE){ + if(key_num < LISTITEM_PER_PAGE) + { uint16_t tmp_i = listWidgetGetCurPage() * LISTITEM_PER_PAGE + key_num; if (tmp_i < LCD_COLOR_COUNT && tmp_i != cur_item) { // has changed totalItems[cur_item].icon = ICONCHAR_UNCHECKED; diff --git a/TFT/src/User/Menu/StatusScreen.c b/TFT/src/User/Menu/StatusScreen.c index 8b2bd20749..a56db03d6d 100644 --- a/TFT/src/User/Menu/StatusScreen.c +++ b/TFT/src/User/Menu/StatusScreen.c @@ -189,10 +189,12 @@ void statusScreen_setMsg(const uint8_t *title, const uint8_t *msg) void statusScreen_setReady(void) { strncpy(msgtitle, (char *)textSelect(LABEL_STATUS), sizeof(msgtitle)); - if(infoHost.connected == false){ + if(infoHost.connected == false) + { strncpy(msgbody, (char *)textSelect(LABEL_UNCONNECTED), sizeof(msgbody)); } - else{ + else + { strncpy(msgbody, (char *)machine_type, sizeof(msgbody)); strcat(msgbody, " "); strcat(msgbody, (char *)textSelect(LABEL_READY)); @@ -220,7 +222,8 @@ void drawStatusScreenMsg(void) msgNeedRefresh = false; } -void scrollMsg(void){ +void scrollMsg(void) +{ GUI_SetBkColor(INFOMSG_BKCOLOR); GUI_SetColor(INFOMSG_COLOR); Scroll_DispString(&msgScroll,CENTER); @@ -261,7 +264,8 @@ void menuStatus(void) drawStatusScreenMsg(); while (infoMenu.menu[infoMenu.cur] == menuStatus) { - if(infoHost.connected != lastConnection_status){ + if(infoHost.connected != lastConnection_status) + { statusScreen_setReady(); lastConnection_status = infoHost.connected; } From adc373814bdadfc571fc4db46e1ac45f1a8c540e Mon Sep 17 00:00:00 2001 From: petervw Date: Sun, 15 Nov 2020 19:15:05 +0100 Subject: [PATCH 14/24] if( >> if (| )return >> ) return| some changes in seq --- TFT/src/User/API/FanControl.c | 14 +- TFT/src/User/API/Gcode/gcode.c | 2 +- TFT/src/User/API/Gcode/gcode.h | 5 +- TFT/src/User/API/Gcode/mygcodefs.c | 6 +- TFT/src/User/API/LCD_Encoder.c | 16 +- TFT/src/User/API/Language/Language.c | 4 +- TFT/src/User/API/Language/utf8_decode.c | 10 +- TFT/src/User/API/MachineParameters.c | 16 +- TFT/src/User/API/Notification.c | 12 +- TFT/src/User/API/Printing.c | 50 +- TFT/src/User/API/Printing.h | 2 +- TFT/src/User/API/Settings.c | 1 + TFT/src/User/API/Settings.h | 1 + TFT/src/User/API/SpeedControl.c | 4 +- TFT/src/User/API/Temperature.c | 22 +- TFT/src/User/API/UI/GUI.c | 148 ++--- TFT/src/User/API/UI/HD44780_Simulator.c | 14 +- TFT/src/User/API/UI/Numpad.c | 10 +- TFT/src/User/API/UI/ST7920_Simulator.c | 2 +- TFT/src/User/API/UI/list_item.c | 14 +- TFT/src/User/API/UI/touch_process.c | 52 +- TFT/src/User/API/UI/ui_draw.c | 6 +- TFT/src/User/API/Vfs/vfs.c | 6 +- TFT/src/User/API/boot.c | 16 +- TFT/src/User/API/config.c | 6 +- TFT/src/User/API/coordinate.c | 2 +- TFT/src/User/API/extend.c | 8 +- TFT/src/User/API/flashStore.c | 4 +- TFT/src/User/API/interfaceCmd.c | 154 +++--- TFT/src/User/API/menu.c | 509 +++++++++--------- TFT/src/User/API/parseACK.c | 294 +++++----- TFT/src/User/API/sequential_mode.c | 181 ++++--- TFT/src/User/Fatfs/diskio.c | 4 +- TFT/src/User/Fatfs/myfatfs.c | 14 +- TFT/src/User/Hal/LCD_Init.c | 6 +- .../Class/MSC/src/usbh_msc_bot.c | 52 +- .../Class/MSC/src/usbh_msc_core.c | 34 +- .../Class/MSC/src/usbh_msc_scsi.c | 24 +- .../Core/src/usbh_core.c | 16 +- .../Core/src/usbh_hcs.c | 10 +- .../Core/src/usbh_ioreq.c | 6 +- .../Core/src/usbh_stdreq.c | 14 +- .../Hal/STM32_USB_OTG_Driver/src/usb_core.c | 30 +- .../STM32_USB_OTG_Driver/src/usb_hcd_int.c | 26 +- TFT/src/User/Hal/buzzer.c | 30 +- TFT/src/User/Hal/buzzer.h | 1 + TFT/src/User/Hal/sd.c | 62 +-- TFT/src/User/Hal/stm32f10x/GPIO_Init.c | 2 +- TFT/src/User/Hal/stm32f10x/Serial.c | 4 +- TFT/src/User/Hal/stm32f10x/sdio_sdcard.c | 332 ++++++------ TFT/src/User/Hal/stm32f10x/spi_slave.c | 2 +- TFT/src/User/Hal/stm32f2_f4xx/GPIO_Init.c | 4 +- TFT/src/User/Hal/stm32f2_f4xx/Serial.c | 4 +- TFT/src/User/Hal/stm32f2_f4xx/spi_slave.c | 2 +- TFT/src/User/Hal/xpt2046.c | 4 +- TFT/src/User/Menu/ConnectionSettings.c | 4 +- TFT/src/User/Menu/Extrude.c | 10 +- TFT/src/User/Menu/Fan.c | 4 +- TFT/src/User/Menu/FeatureSettings.c | 14 +- TFT/src/User/Menu/Heat.c | 8 +- TFT/src/User/Menu/MachineSettings.c | 4 +- TFT/src/User/Menu/MarlinMode.c | 4 +- TFT/src/User/Menu/Mode.c | 2 +- TFT/src/User/Menu/More.c | 2 +- TFT/src/User/Menu/Move.c | 8 +- TFT/src/User/Menu/Parametersetting.c | 10 +- TFT/src/User/Menu/PowerFailed.c | 38 +- TFT/src/User/Menu/PreheatMenu.c | 3 + TFT/src/User/Menu/Print.c | 54 +- TFT/src/User/Menu/PrintingMenu.c | 46 +- TFT/src/User/Menu/ScreenSettings.c | 21 +- TFT/src/User/Menu/Selectmode.c | 20 +- TFT/src/User/Menu/Speed.c | 6 +- TFT/src/User/Menu/StatusScreen.c | 4 +- TFT/src/User/os_timer.c | 10 +- 75 files changed, 1299 insertions(+), 1247 deletions(-) diff --git a/TFT/src/User/API/FanControl.c b/TFT/src/User/API/FanControl.c index 056e6f8f57..ee6026991c 100644 --- a/TFT/src/User/API/FanControl.c +++ b/TFT/src/User/API/FanControl.c @@ -13,7 +13,7 @@ static bool fanQueryEnable = false; uint8_t fanGetTypID(uint8_t startIndex, uint8_t type) { for(uint8_t i = startIndex; i < MAX_FAN_COUNT; i++) { - if(fanType[i] == type) return i; + if (fanType[i] == type) return i; } return FAN_TYPE_UNKNOWN; } @@ -26,11 +26,11 @@ void fanBuildList(void) for (uint8_t i = 0, j=0; i < MAX_FAN_COUNT; i++,j++) { - if( infoSettings.fan_count == i ) { - if( infoSettings.fan_ctrl_count > 0 ) i= (MAX_FAN_COUNT - MAX_FAN_CTRL_COUNT); + if ( infoSettings.fan_count == i ) { + if ( infoSettings.fan_ctrl_count > 0 ) i= (MAX_FAN_COUNT - MAX_FAN_CTRL_COUNT); else i= MAX_FAN_COUNT; } - if(i < MAX_FAN_COUNT) { + if (i < MAX_FAN_COUNT) { memcpy(fanID+j, fanIDTemp+i, sizeof(fanIDTemp[i])); memcpy(fanCmd+j, fanCmdTemp+i, sizeof(fanCmdTemp[i])); memcpy(fanType+j, fanTypeTemp+i, sizeof(fanTypeTemp[i])); @@ -90,10 +90,10 @@ void loopFan(void) if (lastFanSpeed[i] != fanSpeed[i]) { lastFanSpeed[i] = fanSpeed[i]; - if(fan_send_waiting[i] == false) + if (fan_send_waiting[i] == false) { fan_send_waiting[i] = true; - if(fanIsType(i,FAN_TYPE_F) || fanIsType(i,FAN_TYPE_CTRL_S)) { + if (fanIsType(i,FAN_TYPE_F) || fanIsType(i,FAN_TYPE_CTRL_S)) { storeCmd("%s S%d\n", fanCmd[i],fanSpeed[i]); } else if (fanIsType(i,FAN_TYPE_CTRL_I)) { @@ -106,7 +106,7 @@ void loopFan(void) void fanSpeedQuery(void) { - if( fanQueryEnable && infoHost.connected && + if ( fanQueryEnable && infoHost.connected && !infoHost.wait && !fanQueryWait ) { storeCmd("M710\n"); diff --git a/TFT/src/User/API/Gcode/gcode.c b/TFT/src/User/API/Gcode/gcode.c index 18ef5e145b..ea9b71711e 100644 --- a/TFT/src/User/API/Gcode/gcode.c +++ b/TFT/src/User/API/Gcode/gcode.c @@ -182,7 +182,7 @@ long request_M23(char *filename) **/ bool request_M24(int pos) { - if(pos == 0) + if (pos == 0) { mustStoreCmd("M24\n"); } diff --git a/TFT/src/User/API/Gcode/gcode.h b/TFT/src/User/API/Gcode/gcode.h index 4e88c9332a..29e8fa34a8 100644 --- a/TFT/src/User/API/Gcode/gcode.h +++ b/TFT/src/User/API/Gcode/gcode.h @@ -1,5 +1,5 @@ -#ifndef _GCODE_H_ -#define _GCODE_H_ +#pragma once + #include "stdbool.h" #include "interfaceCmd.h" @@ -33,4 +33,3 @@ bool request_M524(void); bool request_M24(int pos); long request_M23(char *filename); -#endif diff --git a/TFT/src/User/API/Gcode/mygcodefs.c b/TFT/src/User/API/Gcode/mygcodefs.c index fbdb7406f2..5f7ddcaa22 100644 --- a/TFT/src/User/API/Gcode/mygcodefs.c +++ b/TFT/src/User/API/Gcode/mygcodefs.c @@ -43,7 +43,7 @@ bool scanPrintFilesGcodeFs(void) clearRequestCommandInfo(); char s[3]; - if(strstr(data, "\r\n")) //for smoothieware + if (strstr(data, "\r\n")) //for smoothieware strcpy(s, "\r\n"); else //for Marlin strcpy(s, "\n"); @@ -115,14 +115,14 @@ bool scanPrintFilesGcodeFs(void) bool found = false; for(int i=0; i < infoFile.F_num; i++) { - if(strcmp(folder, infoFile.folder[i]) == 0) + if (strcmp(folder, infoFile.folder[i]) == 0) { found = true; break; } } - if(!found) + if (!found) { uint16_t len = strlen(folder) + 1; infoFile.folder[infoFile.F_num] = malloc(len); diff --git a/TFT/src/User/API/LCD_Encoder.c b/TFT/src/User/API/LCD_Encoder.c index c798ac81ba..9c23824db4 100644 --- a/TFT/src/User/API/LCD_Encoder.c +++ b/TFT/src/User/API/LCD_Encoder.c @@ -45,9 +45,9 @@ bool encoder_ReadBtn(uint16_t intervals) { static u32 nowTime = 0; - if(!GPIO_GetLevel(LCD_BTN_PIN)) + if (!GPIO_GetLevel(LCD_BTN_PIN)) { - if(OS_GetTimeMs() - nowTime > intervals) + if (OS_GetTimeMs() - nowTime > intervals) { return true; } @@ -85,8 +85,8 @@ bool LCD_BtnTouch(uint16_t intervals) uint8_t encoder_GetPos(void) { uint8_t newbutton = 0; - if(encoder_ReadStep(LCD_ENCA_PIN)) newbutton |= EN_A; - if(encoder_ReadStep(LCD_ENCB_PIN)) newbutton |= EN_B; + if (encoder_ReadStep(LCD_ENCA_PIN)) newbutton |= EN_A; + if (encoder_ReadStep(LCD_ENCB_PIN)) newbutton |= EN_B; return newbutton; } @@ -94,7 +94,7 @@ uint8_t encoder_GetPos(void) bool encoder_CheckState() { - if(encoder_ReadBtn(LCD_BUTTON_INTERVALS) || _encLastBtn != encoder_GetPos()) + if (encoder_ReadBtn(LCD_BUTTON_INTERVALS) || _encLastBtn != encoder_GetPos()) { _encLastBtn = encoder_GetPos(); return true; @@ -145,13 +145,13 @@ void loopCheckEncoderSteps(void) static u16 sy; static bool MOVE = false; - if(!XPT2046_Read_Pen() && CTime < OS_GetTimeMs()) + if (!XPT2046_Read_Pen() && CTime < OS_GetTimeMs()) { TS_Get_Coordinates(&ex, &ey); if (!MOVE) sy = ey; - if(ex > LCD_FREE_WIDTH) //stop mode switch if touched in navigation area + if (ex > LCD_FREE_WIDTH) //stop mode switch if touched in navigation area skipMode = true; else skipMode = false; @@ -194,7 +194,7 @@ void loopCheckEncoderSteps(void) //Send encoder pulse void sendEncoder(uint8_t num) { - if(num==1 || num==2 || num ==3) + if (num==1 || num==2 || num ==3) { GPIO_InitSet(LCD_BTN_PIN, MGPIO_MODE_OUT_PP, 0); GPIO_InitSet(LCD_ENCA_PIN, MGPIO_MODE_OUT_PP, 0); diff --git a/TFT/src/User/API/Language/Language.c b/TFT/src/User/API/Language/Language.c index 941e166273..0c9d6db94c 100644 --- a/TFT/src/User/API/Language/Language.c +++ b/TFT/src/User/API/Language/Language.c @@ -87,8 +87,8 @@ uint32_t getLabelFlashAddr(uint16_t index) bool loadLabelText(uint8_t* buf, uint16_t index) { - if(index >= LABEL_NUM) return false; - if(infoSettings.language == LANG_FLASH) + if (index >= LABEL_NUM) return false; + if (infoSettings.language == LANG_FLASH) W25Qxx_ReadBuffer(buf, getLabelFlashAddr(index), MAX_LANG_LABEL_LENGTH); else memcpy(buf, textSelect(index), sizeof(tempLabelString)); diff --git a/TFT/src/User/API/Language/utf8_decode.c b/TFT/src/User/API/Language/utf8_decode.c index f922eee2e3..d4a3bf63a8 100644 --- a/TFT/src/User/API/Language/utf8_decode.c +++ b/TFT/src/User/API/Language/utf8_decode.c @@ -122,9 +122,9 @@ static void getBitMapFontInfo(CHAR_INFO *pInfo) uint8_t i; for (i = 0; i < COUNT(font); i++) { - if(pInfo->codePoint >= font[i].startCodePoint && pInfo->codePoint <= font[i].endCodePoint) + if (pInfo->codePoint >= font[i].startCodePoint && pInfo->codePoint <= font[i].endCodePoint) { - if(i == 0 && largeFont) + if (i == 0 && largeFont) i++; pInfo->pixelWidth = font[i].pixelWidth; pInfo->pixelHeight = font[i].pixelHeight; @@ -139,7 +139,7 @@ void getCharacterInfo(const uint8_t *ch, CHAR_INFO *pInfo) { pInfo->bytes = 0; - if(ch == NULL || *ch == 0) return; + if (ch == NULL || *ch == 0) return; getUTF8EncodeInfo(ch, pInfo); @@ -152,7 +152,7 @@ uint16_t GUI_StrPixelWidth_str(const uint8_t * str) uint16_t i = 0, len = 0; CHAR_INFO info; - if(str == NULL) return 0; + if (str == NULL) return 0; while(str[i]) { getCharacterInfo(str + i, &info); @@ -174,7 +174,7 @@ uint16_t getUTF8Length(const uint8_t *const str) uint16_t i = 0, len = 0; CHAR_INFO info; - if(str == NULL) return 0; + if (str == NULL) return 0; while(str[i]) { info.bytes = 0; diff --git a/TFT/src/User/API/MachineParameters.c b/TFT/src/User/API/MachineParameters.c index 20998b34e1..3058098569 100644 --- a/TFT/src/User/API/MachineParameters.c +++ b/TFT/src/User/API/MachineParameters.c @@ -65,7 +65,7 @@ const LABEL junction_deviation_disp_ID[] = {LABEL_JUNCTION_DEVIATION}; float getParameter(PARAMETER_NAME name, u8 index) { - if(index >= parameter_element_count[name]) return 0.0f; + if (index >= parameter_element_count[name]) return 0.0f; switch (name) { case P_STEPS_PER_MM: @@ -109,7 +109,7 @@ float getParameter(PARAMETER_NAME name, u8 index) void setParameter(PARAMETER_NAME name, u8 index, float val) { - if(index >= parameter_element_count[name]) return; + if (index >= parameter_element_count[name]) return; switch (name) { case P_STEPS_PER_MM: @@ -193,27 +193,27 @@ void sendParameterCmd(PARAMETER_NAME para, u8 stepper_index, float Value) storeCmd(parameter_Cmd[para][stepper_index], Value); if (dualstepper[stepper_index] && stepper_index < AXIS_NUM) { - if(para == P_CURRENT) + if (para == P_CURRENT) storeCmd(dualStepperParameter_cmd[0][stepper_index], Value); - if(para == P_BUMPSENSITIVITY) + if (para == P_BUMPSENSITIVITY) storeCmd(dualStepperParameter_cmd[1][stepper_index], Value); - if(para == P_HYBRID_THRESHOLD) + if (para == P_HYBRID_THRESHOLD) storeCmd(dualStepperParameter_cmd[2][stepper_index], Value); } } void saveEepromSettings(void) { - if(infoMachineSettings.EEPROM == 1) + if (infoMachineSettings.EEPROM == 1) mustStoreCmd("M500\n"); } void restoreEepromSettings(void) { - if(infoMachineSettings.EEPROM == 1) + if (infoMachineSettings.EEPROM == 1) mustStoreScript("M501\nM503 S0\n"); } void resetEepromSettings(void) { - if(infoMachineSettings.EEPROM == 1) + if (infoMachineSettings.EEPROM == 1) mustStoreScript("M502\nM500\nM503 S0\n"); } diff --git a/TFT/src/User/API/Notification.c b/TFT/src/User/API/Notification.c index 68c011e75f..8214b99c8e 100644 --- a/TFT/src/User/API/Notification.c +++ b/TFT/src/User/API/Notification.c @@ -42,7 +42,7 @@ bool toastAvailable(void) { for (int i = 0; i < TOAST_MSG_COUNT; i++) { - if(toastlist[i].isNew == true) + if (toastlist[i].isNew == true) return true; } return false; @@ -51,10 +51,10 @@ bool toastAvailable(void) //show next notification void drawToast(bool redraw) { - if(!redraw) + if (!redraw) curToastDisplay = (curToastDisplay + 1) % TOAST_MSG_COUNT; - if(toastlist[curToastDisplay].isNew == true || redraw) + if (toastlist[curToastDisplay].isNew == true || redraw) { //Set toast notification running status _toastRunning = true; @@ -99,7 +99,7 @@ void drawToast(bool redraw) toastlist[curToastDisplay].isNew = false; //set new timer if notification is new - if(!redraw) + if (!redraw) nextToastTime = OS_GetTimeMs() + TOAST_DURATION; GUI_RestoreColorDefault(); @@ -109,7 +109,7 @@ void drawToast(bool redraw) //check and control toast notification display void loopToast(void) { - if(getMenuType() == MENU_TYPE_FULLSCREEN) + if (getMenuType() == MENU_TYPE_FULLSCREEN) return; if (OS_GetTimeMs() > nextToastTime) @@ -118,7 +118,7 @@ void loopToast(void) { drawToast(false); } - else if(_toastRunning == true) + else if (_toastRunning == true) { _toastRunning = false; diff --git a/TFT/src/User/API/Printing.c b/TFT/src/User/API/Printing.c index 7cb17450ac..f062455d9b 100644 --- a/TFT/src/User/API/Printing.c +++ b/TFT/src/User/API/Printing.c @@ -26,9 +26,9 @@ bool isM0_Pause(void) // void setPrintingTime(uint32_t RTtime) { - if(RTtime%1000 == 0) + if (RTtime%1000 == 0) { - if(isPrinting() && !isPause()) + if (isPrinting() && !isPause()) { infoPrinting.time++; } @@ -135,9 +135,9 @@ void setM0Pause(bool m0_pause) bool setPrintPause(bool is_pause, bool is_m0pause) { static bool pauseLock = false; - if(pauseLock) return false; - if(!isPrinting()) return false; - if(infoPrinting.pause == is_pause) return false; + if (pauseLock) return false; + if (!isPrinting()) return false; + if (infoPrinting.pause == is_pause) return false; pauseLock = true; switch (infoFile.source) @@ -157,7 +157,7 @@ bool setPrintPause(bool is_pause, bool is_m0pause) case TFT_UDISK: case TFT_SD: infoPrinting.pause = is_pause; - if(infoPrinting.pause == true && is_m0pause == false) + if (infoPrinting.pause == true && is_m0pause == false) { while (infoCmd.count != 0) { loopProcess(); @@ -168,11 +168,11 @@ bool setPrintPause(bool is_pause, bool is_m0pause) bool isExtrudeRelative = eGetRelative(); static COORDINATE tmp; - if(infoPrinting.pause) + if (infoPrinting.pause) { //restore status before pause //if pause was triggered through M0/M1 then break - if(is_m0pause == true) { + if (is_m0pause == true) { setM0Pause(is_m0pause); popupReminder(DIALOG_TYPE_ALERT, LABEL_PAUSE, LABEL_PAUSE); break; @@ -197,7 +197,7 @@ bool setPrintPause(bool is_pause, bool is_m0pause) } else { - if(isM0_Pause() == true) + if (isM0_Pause() == true) { setM0Pause(is_m0pause); breakAndContinue(); @@ -211,7 +211,7 @@ bool setPrintPause(bool is_pause, bool is_m0pause) mustStoreCmd("G1 X%.3f Y%.3f F%d\n", tmp.axis[X_AXIS], tmp.axis[Y_AXIS], infoSettings.pause_feedrate[X_AXIS]); mustStoreCmd("G1 Z%.3f F%d\n", tmp.axis[Z_AXIS], infoSettings.pause_feedrate[Z_AXIS]); } - if(heatGetCurrentTemp(heatGetCurrentHotend()) > infoSettings.min_ext_temp) + if (heatGetCurrentTemp(heatGetCurrentHotend()) > infoSettings.min_ext_temp) { mustStoreCmd("G1 E%.5f F%d\n", tmp.axis[E_AXIS] - infoSettings.pause_retract_len + infoSettings.resume_purge_len, infoSettings.pause_feedrate[E_AXIS]); } @@ -249,7 +249,7 @@ void endPrinting(void) infoPrinting.printing = infoPrinting.pause = false; powerFailedClose(); powerFailedDelete(); - if(infoSettings.send_end_gcode == 1) + if (infoSettings.send_end_gcode == 1) { sendPrintCodes(1); } @@ -260,7 +260,7 @@ void printingFinished(void) { BUZZER_PLAY(sound_success); endPrinting(); - if(infoSettings.auto_off) // Auto shut down after printing + if (infoSettings.auto_off) // Auto shut down after printing { startShutdown(); } @@ -294,7 +294,7 @@ void shutdown(void) { for(u8 i = 0; i < infoSettings.fan_count; i++) { - if(fanIsType(i, FAN_TYPE_F)) mustStoreCmd("%s S0\n", fanCmd[i]); + if (fanIsType(i, FAN_TYPE_F)) mustStoreCmd("%s S0\n", fanCmd[i]); } mustStoreCmd("M81\n"); popupReminder(DIALOG_TYPE_INFO, LABEL_SHUT_DOWN, LABEL_SHUTTING_DOWN); @@ -322,7 +322,7 @@ void startShutdown(void) for(u8 i = 0; i < infoSettings.fan_count; i++) { - if(fanIsType(i,FAN_TYPE_F)) mustStoreCmd("%s S255\n", fanCmd[i]); + if (fanIsType(i,FAN_TYPE_F)) mustStoreCmd("%s S255\n", fanCmd[i]); } setDialogText(LABEL_SHUT_DOWN, (u8 *)tempstr, LABEL_FORCE_SHUT_DOWN, LABEL_CANCEL); showDialog(DIALOG_TYPE_INFO, shutdown, NULL, shutdownLoop); @@ -338,17 +338,17 @@ void getGcodeFromFile(void) u8 sd_count = 0; UINT br = 0; - if(isPrinting()==false || infoFile.source == BOARD_SD) return; + if (isPrinting()==false || infoFile.source == BOARD_SD) return; powerFailedCache(infoPrinting.file.fptr); - if(heatHasWaiting() || infoCmd.count || infoPrinting.pause ) return; + if (heatHasWaiting() || infoCmd.count || infoPrinting.pause ) return; - if(moveCacheToCmd() == true) return; + if (moveCacheToCmd() == true) return; for(;infoPrinting.cur < infoPrinting.size;) { - if(f_read(&infoPrinting.file, &sd_char, 1, &br)!=FR_OK) break; + if (f_read(&infoPrinting.file, &sd_char, 1, &br)!=FR_OK) break; infoPrinting.cur++; @@ -357,7 +357,7 @@ void getGcodeFromFile(void) { sd_comment_mode = false; //for new command sd_comment_space= true; - if(sd_count!=0) + if (sd_count!=0) { infoCmd.queue[infoCmd.index_w].gcode[sd_count++] = '\n'; infoCmd.queue[infoCmd.index_w].gcode[sd_count] = 0; //terminate string @@ -375,7 +375,7 @@ void getGcodeFromFile(void) sd_comment_mode = true; else { - if(sd_comment_space && (sd_char== 'G'||sd_char == 'M'||sd_char == 'T')) //ignore ' ' space bytes + if (sd_comment_space && (sd_char== 'G'||sd_char == 'M'||sd_char == 'T')) //ignore ' ' space bytes sd_comment_space = false; if (!sd_comment_mode && !sd_comment_space && sd_char != '\r') //normal gcode infoCmd.queue[infoCmd.index_w].gcode[sd_count++] = sd_char; @@ -383,7 +383,7 @@ void getGcodeFromFile(void) } } - if((infoPrinting.cur>=infoPrinting.size) && isPrinting()) // end of .gcode file + if ((infoPrinting.cur>=infoPrinting.size) && isPrinting()) // end of .gcode file { printingFinished(); } @@ -415,7 +415,7 @@ bool hasPrintingMenu(void) void loopCheckPrinting(void) { #if defined(ST7920_SPI) || defined(LCD2004_simulator) - if(infoMenu.menu[infoMenu.cur] == menuMarlinMode) return; + if (infoMenu.menu[infoMenu.cur] == menuMarlinMode) return; #endif if (infoHost.printing && !infoPrinting.printing) { @@ -432,10 +432,10 @@ void loopCheckPrinting(void) uint32_t update_time = infoSettings.m27_refresh_time * 1000; do { /* WAIT FOR M27 */ - if(update_waiting == true) {nextTime = OS_GetTimeMs() + update_time; break;} - if(OS_GetTimeMs() < nextTime) break; + if (update_waiting == true) {nextTime = OS_GetTimeMs() + update_time; break;} + if (OS_GetTimeMs() < nextTime) break; - if(storeCmd("M27\n") == false) break; + if (storeCmd("M27\n") == false) break; nextTime = OS_GetTimeMs() + update_time; update_waiting = true; diff --git a/TFT/src/User/API/Printing.h b/TFT/src/User/API/Printing.h index bcf14e09ad..fb19ad0371 100644 --- a/TFT/src/User/API/Printing.h +++ b/TFT/src/User/API/Printing.h @@ -19,7 +19,7 @@ extern "C" { #ifdef RAPID_SERIAL_COMM #define rapid_serial_loop() loopBackEnd() -#define rapid_serial_comm() if(isPrinting() == true && infoSettings.serial_alwaysOn != 1){loopBackEnd();} +#define rapid_serial_comm() if (isPrinting() == true && infoSettings.serial_alwaysOn != 1){loopBackEnd();} #else #define rapid_serial_loop() #define rapid_serial_comm() diff --git a/TFT/src/User/API/Settings.c b/TFT/src/User/API/Settings.c index 756931d01c..9692cbc2cf 100644 --- a/TFT/src/User/API/Settings.c +++ b/TFT/src/User/API/Settings.c @@ -98,6 +98,7 @@ void infoSettingsReset(void) infoSettings.touchSound = ENABLED; infoSettings.toastSound = ENABLED; infoSettings.alertSound = ENABLED; + infoSettings.preheatDoneSound = ENABLED; infoSettings.knob_led_color = STARTUP_KNOB_LED_COLOR; infoSettings.knob_led_idle = ENABLED; infoSettings.lcd_brightness = DEFAULT_LCD_BRIGHTNESS; diff --git a/TFT/src/User/API/Settings.h b/TFT/src/User/API/Settings.h index eca74549a8..685b0e0233 100644 --- a/TFT/src/User/API/Settings.h +++ b/TFT/src/User/API/Settings.h @@ -160,6 +160,7 @@ typedef struct uint8_t touchSound; uint8_t toastSound; uint8_t alertSound; + uint8_t preheatDoneSound; uint8_t knob_led_color; uint8_t knob_led_idle; uint8_t lcd_brightness; diff --git a/TFT/src/User/API/SpeedControl.c b/TFT/src/User/API/SpeedControl.c index 8b48acda96..0504735ed4 100644 --- a/TFT/src/User/API/SpeedControl.c +++ b/TFT/src/User/API/SpeedControl.c @@ -46,10 +46,10 @@ bool SpeedChanged(u8 i) void loopSpeed(void) { for(u8 i = 0; i < SPEED_NUM;i++) - if(curPercent[i] != percent[i]) + if (curPercent[i] != percent[i]) { curPercent[i] = percent[i]; - if(send_waiting[i] != true) + if (send_waiting[i] != true) { send_waiting[i] = true; const char *speedCmd[SPEED_NUM] = {"M220","M221"}; diff --git a/TFT/src/User/API/Temperature.c b/TFT/src/User/API/Temperature.c index 0c1264fd91..94d633997c 100644 --- a/TFT/src/User/API/Temperature.c +++ b/TFT/src/User/API/Temperature.c @@ -55,7 +55,7 @@ bool heatHasWaiting(void) { for(uint8_t i = 0; i < MAX_HEATER_COUNT; i++) { - if(heater.T[i].waiting != WAIT_NONE) + if (heater.T[i].waiting != WAIT_NONE) return true; } return false; @@ -65,11 +65,11 @@ bool heatHasWaiting(void) void heatSetIsWaiting(uint8_t tool, HEATER_WAIT isWaiting) { heater.T[tool].waiting = isWaiting; - if(isWaiting != WAIT_NONE) // wait heating now, query more frequently + if (isWaiting != WAIT_NONE) // wait heating now, query more frequently { heat_update_time = TEMPERATURE_QUERY_FAST_DURATION; } - else if(heatHasWaiting() == false) + else if (heatHasWaiting() == false) { heat_update_time = TEMPERATURE_QUERY_SLOW_DURATION; } @@ -87,7 +87,7 @@ void heatClearIsWaiting(void) // Set current Tool (Extruder) void heatSetCurrentTool(uint8_t tool) { - if(tool >= infoSettings.ext_count) return; + if (tool >= infoSettings.ext_count) return; heater.toolIndex = tool; } @@ -145,10 +145,10 @@ void loopCheckHeater(void) { do { // Send M105 query temperature continuously - if(heat_update_waiting == true) {updateNextHeatCheckTime();break;} - if(OS_GetTimeMs() < nextHeatCheckTime) break; - if(requestCommandInfoIsRunning()) break; //to avoid colision in Gcode response processing - if(storeCmd("M105\n") == false) break; + if (heat_update_waiting == true) {updateNextHeatCheckTime();break;} + if (OS_GetTimeMs() < nextHeatCheckTime) break; + if (requestCommandInfoIsRunning()) break; //to avoid colision in Gcode response processing + if (storeCmd("M105\n") == false) break; updateNextHeatCheckTime(); heat_update_waiting = true; }while(0); @@ -167,16 +167,16 @@ void loopCheckHeater(void) heater.T[i].waiting = WAIT_NONE; if (heatHasWaiting()) continue; - if(infoMenu.menu[infoMenu.cur] == menuHeat) break; + if (infoMenu.menu[infoMenu.cur] == menuHeat) break; heat_update_time = TEMPERATURE_QUERY_SLOW_DURATION; } for(uint8_t i = 0; i < MAX_HEATER_COUNT; i++) // If the target temperature changes, send a Gcode to set the motherboard { - if(lastTarget[i] != heater.T[i].target) + if (lastTarget[i] != heater.T[i].target) { lastTarget[i] = heater.T[i].target; - if(heat_send_waiting[i] != true) + if (heat_send_waiting[i] != true) { heat_send_waiting[i] = true; storeCmd("%s ",heatCmd[i]); diff --git a/TFT/src/User/API/UI/GUI.c b/TFT/src/User/API/UI/GUI.c index 826f053916..c9e98ef725 100644 --- a/TFT/src/User/API/UI/GUI.c +++ b/TFT/src/User/API/UI/GUI.c @@ -85,7 +85,7 @@ void GUI_CancelRange(void) void GUI_DrawPixel(int16_t x, int16_t y, uint16_t color) { - if(pixel_limit_flag == 1 + if (pixel_limit_flag == 1 &&(x < pixel_limit_rect.x0 ||x >= pixel_limit_rect.x1 ||y < pixel_limit_rect.y0 @@ -185,21 +185,21 @@ void GUI_DrawLine(uint16_t x1, uint16_t y1, uint16_t x2, uint16_t y2) delta_y = y2 - y1; uRow = x1; uCol = y1; - if(delta_x > 0) + if (delta_x > 0) incx = 1; //���õ������� - else if(delta_x == 0) + else if (delta_x == 0) incx = 0;//��ֱ�� else { incx = -1; delta_x = -delta_x;} - if(delta_y > 0) + if (delta_y > 0) incy = 1; - else if(delta_y == 0) + else if (delta_y == 0) incy = 0;//ˮƽ�� else { incy = -1; delta_y = -delta_y;} - if(delta_x > delta_y) + if (delta_x > delta_y) distance = delta_x; //ѡȡ�������������� else distance = delta_y; @@ -209,12 +209,12 @@ void GUI_DrawLine(uint16_t x1, uint16_t y1, uint16_t x2, uint16_t y2) GUI_DrawPoint(uRow,uCol);//���� xerr += delta_x; yerr += delta_y; - if(xerr > distance) + if (xerr > distance) { xerr -= distance; uRow += incx; } - if(yerr > distance) + if (yerr > distance) { yerr -= distance; uCol += incy; @@ -289,7 +289,7 @@ void GUI_DrawCircle(uint16_t x0, uint16_t y0, uint16_t r) GUI_DrawPoint(x0-b, y0-a); //7 a++; //ʹ��Bresenham�㷨��Բ - if(di<0) + if (di<0) di += (a<<2) + 6; else { @@ -315,26 +315,26 @@ void GUI_FillCircle(uint16_t x0, uint16_t y0, uint16_t r) int16_t di; // ���߱��� /* �������� */ - if(0 == r) return; + if (0 == r) return; /* �����?4�������?(0��90��180��270��)��������ʾ */ draw_x0 = draw_x1 = x0; draw_y0 = draw_y1 = y0 + r; - if(draw_y0 < LCD_HEIGHT) + if (draw_y0 < LCD_HEIGHT) { GUI_DrawPoint(draw_x0, draw_y0); // 90�� } draw_x2 = draw_x3 = x0; draw_y2 = draw_y3 = y0 - r; - if(draw_y2 >= 0) + if (draw_y2 >= 0) { GUI_DrawPoint(draw_x2, draw_y2); // 270�� } draw_x4 = draw_x6 = x0 + r; draw_y4 = draw_y6 = y0; - if(draw_x4 < LCD_WIDTH) + if (draw_x4 < LCD_WIDTH) { GUI_DrawPoint(draw_x4, draw_y4); // 0�� fill_x1 = draw_x4; @@ -346,18 +346,18 @@ void GUI_FillCircle(uint16_t x0, uint16_t y0, uint16_t r) fill_y0 = y0; // �������������ʼ��fill_x0 fill_x0 = x0 - r; // �����������������fill_y1 - if(fill_x0<0) + if (fill_x0<0) fill_x0 = 0; GUI_HLine(fill_x0, fill_y0, fill_x1); draw_x5 = draw_x7 = x0 - r; draw_y5 = draw_y7 = y0; - if(draw_x5 >= 0) + if (draw_x5 >= 0) { GUI_DrawPoint(draw_x5, draw_y5); // 180�� } - if(1==r) return; + if (1==r) return; /* ʹ��Bresenham�����л�Բ */ di = 3 - 2*r; // ��ʼ�����߱��� @@ -365,7 +365,7 @@ void GUI_FillCircle(uint16_t x0, uint16_t y0, uint16_t r) yy = r; while(xx < yy) { - if(di<0) + if (di<0) { di += 4*xx + 6; } @@ -395,108 +395,108 @@ void GUI_FillCircle(uint16_t x0, uint16_t y0, uint16_t r) draw_y7--; /* Ҫ�жϵ�ǰ���Ƿ�����Ч��Χ�� */ - if((draw_x0 <= LCD_WIDTH) && (draw_y0 >= 0)) + if ((draw_x0 <= LCD_WIDTH) && (draw_y0 >= 0)) { GUI_DrawPoint(draw_x0, draw_y0); } - if((draw_x1 >= 0) && (draw_y1 >= 0)) + if ((draw_x1 >= 0) && (draw_y1 >= 0)) { GUI_DrawPoint(draw_x1, draw_y1); } /* �ڶ���ˮֱ�����?(�°�Բ�ĵ�) */ - if(draw_x1 >= 0) + if (draw_x1 >= 0) { /* �������������ʼ��fill_x0 */ fill_x0 = draw_x1; /* �������������ʼ��fill_y0 */ fill_y0 = draw_y1; - if(fill_y0 > LCD_HEIGHT) + if (fill_y0 > LCD_HEIGHT) fill_y0 = LCD_HEIGHT; - if(fill_y0 < 0) + if (fill_y0 < 0) fill_y0 = 0; /* �����������������fill_x1 */ fill_x1 = x0*2 - draw_x1; - if(fill_x1 > LCD_WIDTH) + if (fill_x1 > LCD_WIDTH) fill_x1 = LCD_WIDTH; GUI_HLine(fill_x0, fill_y0, fill_x1); } - if((draw_x2 <= LCD_WIDTH) && (draw_y2 <= LCD_HEIGHT) ) + if ((draw_x2 <= LCD_WIDTH) && (draw_y2 <= LCD_HEIGHT) ) { GUI_DrawPoint(draw_x2, draw_y2); } - if((draw_x3 >= 0) && (draw_y3 <= LCD_HEIGHT) ) + if ((draw_x3 >= 0) && (draw_y3 <= LCD_HEIGHT) ) { GUI_DrawPoint(draw_x3, draw_y3); } /* ���ĵ㴹ֱ�����?(�ϰ�Բ�ĵ�) */ - if(draw_x3 >= 0) + if (draw_x3 >= 0) { /* �������������ʼ��fill_x0 */ fill_x0 = draw_x3; /* �������������ʼ��fill_y0 */ fill_y0 = draw_y3; - if(fill_y0 > LCD_HEIGHT) + if (fill_y0 > LCD_HEIGHT) fill_y0 = LCD_HEIGHT; - if(fill_y0 < 0) + if (fill_y0 < 0) fill_y0 = 0; /* �����������������fill_x1 */ fill_x1 = x0*2 - draw_x3; - if(fill_x1 > LCD_WIDTH) + if (fill_x1 > LCD_WIDTH) fill_x1 = LCD_WIDTH; GUI_HLine(fill_x0, fill_y0, fill_x1); } - if((draw_x4 <= LCD_WIDTH) && (draw_y4 >= 0)) + if ((draw_x4 <= LCD_WIDTH) && (draw_y4 >= 0)) { GUI_DrawPoint(draw_x4, draw_y4); } - if((draw_x5 >= 0) && (draw_y5 >= 0)) + if ((draw_x5 >= 0) && (draw_y5 >= 0)) { GUI_DrawPoint(draw_x5, draw_y5); } /* �����㴹ֱ�����?(�ϰ�Բ�ĵ�) */ - if(draw_x5 >= 0) + if (draw_x5 >= 0) { /* �������������ʼ��fill_x0 */ fill_x0 = draw_x5; /* �������������ʼ��fill_y0 */ fill_y0 = draw_y5; - if(fill_y0 > LCD_HEIGHT) + if (fill_y0 > LCD_HEIGHT) fill_y0 = LCD_HEIGHT; - if(fill_y0 < 0) + if (fill_y0 < 0) fill_y0 = 0; /* �����������������fill_x1 */ fill_x1 = x0*2 - draw_x5; - if(fill_x1 > LCD_WIDTH) + if (fill_x1 > LCD_WIDTH) fill_x1 = LCD_WIDTH; GUI_HLine(fill_x0, fill_y0, fill_x1); } - if((draw_x6 <= LCD_WIDTH) && (draw_y6 <= LCD_HEIGHT)) + if ((draw_x6 <= LCD_WIDTH) && (draw_y6 <= LCD_HEIGHT)) { GUI_DrawPoint(draw_x6, draw_y6); } - if((draw_x7 >= 0) && (draw_y7 <= LCD_HEIGHT)) + if ((draw_x7 >= 0) && (draw_y7 <= LCD_HEIGHT)) { GUI_DrawPoint(draw_x7, draw_y7); } /* �ڰ˵㴹ֱ�����?(�ϰ�Բ�ĵ�) */ - if(draw_x7 >= 0) + if (draw_x7 >= 0) { /* �������������ʼ��fill_x0 */ fill_x0 = draw_x7; /* �������������ʼ��fill_y0 */ fill_y0 = draw_y7; - if(fill_y0 > LCD_HEIGHT) + if (fill_y0 > LCD_HEIGHT) fill_y0 = LCD_HEIGHT; - if(fill_y0 < 0) + if (fill_y0 < 0) fill_y0 = 0; /* �����������������fill_x1 */ fill_x1 = x0*2 - draw_x7; - if(fill_x1 > LCD_WIDTH) + if (fill_x1 > LCD_WIDTH) fill_x1 = LCD_WIDTH; GUI_HLine(fill_x0, fill_y0, fill_x1); } @@ -508,7 +508,7 @@ CHAR_INFO GUI_DispOne(int16_t sx, int16_t sy, const uint8_t *p) { CHAR_INFO info = {.bytes = 0}; - if(p == NULL || *p == 0) return info; + if (p == NULL || *p == 0) return info; getCharacterInfo(p, &info); @@ -532,9 +532,9 @@ CHAR_INFO GUI_DispOne(int16_t sx, int16_t sy, const uint8_t *p) for(y=0;y < info.pixelHeight;y++) { - if(temp & (1<<(info.pixelHeight-1))) + if (temp & (1<<(info.pixelHeight-1))) GUI_DrawPixel(sx, sy+y, foreGroundColor); - else if(guiTextMode == GUI_TEXTMODE_NORMAL) + else if (guiTextMode == GUI_TEXTMODE_NORMAL) GUI_DrawPixel(sx, sy+y, backGroundColor); temp <<= 1; } @@ -546,7 +546,7 @@ CHAR_INFO GUI_DispOne(int16_t sx, int16_t sy, const uint8_t *p) void _GUI_DispString(int16_t x, int16_t y, const uint8_t *p) { CHAR_INFO info; - if(p == NULL) return; + if (p == NULL) return; while(*p) { @@ -560,16 +560,16 @@ const uint8_t* _GUI_DispLenString(int16_t x, int16_t y, const uint8_t *p, uint16 { CHAR_INFO info; uint16_t curPixelWidth = 0; - if(p == NULL) return NULL; + if (p == NULL) return NULL; - if(truncate) pixelWidth -= BYTE_HEIGHT; + if (truncate) pixelWidth -= BYTE_HEIGHT; while(curPixelWidth < pixelWidth && *p) { getCharacterInfo(p, &info); - if(curPixelWidth + info.pixelWidth > pixelWidth) + if (curPixelWidth + info.pixelWidth > pixelWidth) { - if(truncate) GUI_DispOne(x, y, (u8*)"…"); + if (truncate) GUI_DispOne(x, y, (u8*)"…"); return p; } GUI_DispOne(x, y, p); @@ -599,7 +599,7 @@ void _GUI_DispStringInRect(int16_t sx, int16_t sy, int16_t ex, int16_t ey, const uint16_t height = ey - sy; uint8_t nline = (stringlen+width-1)/width ; - if(nline > height/BYTE_HEIGHT) + if (nline > height/BYTE_HEIGHT) nline = height/BYTE_HEIGHT; uint16_t x_offset = stringlen >= width ? 0 : ( width-stringlen)>>1; @@ -633,7 +633,7 @@ void _GUI_DispStringInRectEOL(int16_t sx, int16_t sy, int16_t ex, int16_t ey, co sy += info.pixelHeight; if (sy + info.pixelHeight > ey) return; } - if(*p != '\n') + if (*p != '\n') { GUI_DispOne(x, sy, p); x += info.pixelWidth; @@ -662,7 +662,7 @@ void GUI_DispDec(int16_t x, int16_t y, int32_t num, uint8_t len, uint8_t leftOrR uint8_t decBuf[64]; uint8_t bufIndex = 0; - if(num<0) + if (num<0) { num = -num; isNegative = 1; @@ -671,11 +671,11 @@ void GUI_DispDec(int16_t x, int16_t y, int32_t num, uint8_t len, uint8_t leftOrR for(i=0;inum;i++) { - if(i==radio->select) + if (i==radio->select) GUI_SetColor(RADIO_SELECTED_COLOR); else GUI_SetColor(RADIO_IDLE_COLOR); @@ -845,11 +845,11 @@ void RADIO_Select(RADIO *radio, uint8_t select) { u16 tmp = GUI_GetColor(); uint8_t i=0; - if(radio->select==select) + if (radio->select==select) return; for(i=0;i<2;i++) { - if(i==0) + if (i==0) { GUI_SetColor(RADIO_IDLE_COLOR); } @@ -881,18 +881,18 @@ void Scroll_DispString(SCROLL * para, uint8_t align) uint16_t i = 0; CHAR_INFO info; - if(para->text == NULL) return; - if(para->totalPixelWidth > para->maxPixelWidth) + if (para->text == NULL) return; + if (para->totalPixelWidth > para->maxPixelWidth) { - if(OS_GetTimeMs() > para->time) + if (OS_GetTimeMs() > para->time) { para->time = OS_GetTimeMs() + 50; // 50ms GUI_SetRange(para->rect->x0, para->rect->y0, para->rect->x1, para->rect->y1); - if(para->curByte < para->maxByte) + if (para->curByte < para->maxByte) { getCharacterInfo(¶->text[para->curByte], &info); para->off_head++; - if(para->off_head == info.pixelWidth) + if (para->off_head == info.pixelWidth) { para->curByte += info.bytes; para->off_head = 0; @@ -901,7 +901,7 @@ void Scroll_DispString(SCROLL * para, uint8_t align) GUI_DispLenString(para->rect->x0 - para->off_head, para->rect->y0, ¶->text[para->curByte], para->maxPixelWidth + info.pixelWidth, false); para->curPixelWidth--; - if(para->curPixelWidth < para->maxPixelWidth) + if (para->curPixelWidth < para->maxPixelWidth) { for(i = para->rect->y0; irect->y1; i++) { @@ -910,11 +910,11 @@ void Scroll_DispString(SCROLL * para, uint8_t align) } } - if(para->curPixelWidth + 2*BYTE_WIDTH < para->maxPixelWidth) + if (para->curPixelWidth + 2*BYTE_WIDTH < para->maxPixelWidth) { para->off_tail++; GUI_DispLenString(para->rect->x1-para->off_tail, para->rect->y0, para->text, para->off_tail, false); - if(para->off_tail + para->rect->x0 >= para->rect->x1) + if (para->off_tail + para->rect->x0 >= para->rect->x1) { para->off_head=0; para->off_tail=0; @@ -925,7 +925,7 @@ void Scroll_DispString(SCROLL * para, uint8_t align) GUI_CancelRange(); } } - else if(!para->has_disp) + else if (!para->has_disp) { switch(align) { @@ -1079,7 +1079,7 @@ void GUI_DrawWindow(const WINDOW *window, const uint8_t *title, const uint8_t *i //draw info text GUI_SetColor(window->info.fontColor); - if(GUI_StrPixelWidth(inf) < w_rect.x1 - w_rect.x0) + if (GUI_StrPixelWidth(inf) < w_rect.x1 - w_rect.x0) GUI_DispStringInRect(w_rect.x0, title_y1, w_rect.x1, action_y0, inf); else GUI_DispStringInRectEOL(w_rect.x0 + margin, title_y1 + margin, w_rect.x1 - margin, action_y0 - margin, inf); diff --git a/TFT/src/User/API/UI/HD44780_Simulator.c b/TFT/src/User/API/UI/HD44780_Simulator.c index e0fb7eb8cd..b8a17b55c1 100644 --- a/TFT/src/User/API/UI/HD44780_Simulator.c +++ b/TFT/src/User/API/UI/HD44780_Simulator.c @@ -80,22 +80,22 @@ void HD44780_BI17_SetDDRAMAddress(uint8_t cmd) HD44780_reg.bi.ddrama.reg = cmd; // Set DDRAM address // x is 0-20 . y is 0-4 - if(0x80 <= cmd && cmd <= 0x93) // First line AC range is 80H … 93h + if (0x80 <= cmd && cmd <= 0x93) // First line AC range is 80H … 93h { HD44780.y = 0; HD44780.x = cmd - 0x80; } - if(0xC0 <= cmd && cmd <= 0xD3) // Second line AC range is C0H … D3H + if (0xC0 <= cmd && cmd <= 0xD3) // Second line AC range is C0H … D3H { HD44780.y = 1; HD44780.x = cmd - 0xC0; } - if(0x94 <= cmd && cmd <= 0xA7) // Third line AC range is 94H … A7H + if (0x94 <= cmd && cmd <= 0xA7) // Third line AC range is 94H … A7H { HD44780.y = 2; HD44780.x = cmd - 0x94; } - if(0xD4 <= cmd && cmd <= 0xE7) // Fourth line AC range is D4H … E7H + if (0xD4 <= cmd && cmd <= 0xE7) // Fourth line AC range is D4H … E7H { HD44780.y = 3; HD44780.x = cmd - 0xD4; @@ -105,7 +105,7 @@ void HD44780_BI17_SetDDRAMAddress(uint8_t cmd) void HD44780_DrawPixel(int16_t x, int16_t y, bool isForeGround, bool isFont) { - if(isFont) + if (isFont) { GUI_FillRectColor(XSTART + FONT_PIXEL * x, YSTART + FONT_PIXEL * y, @@ -129,7 +129,7 @@ void HD44780_DispDDRAM(uint8_t data) uint16_t i = 0, ex = 0, ey = 0; - if(data < 8) // 5*8 bitmap + if (data < 8) // 5*8 bitmap { ex = HD44780.x * 6 + 6; ey = HD44780.y * 12 + 8; @@ -143,7 +143,7 @@ void HD44780_DispDDRAM(uint8_t data) } } else{ //font - if(data < ' ' || data > '~') return; + if (data < ' ' || data > '~') return; ex = HD44780.x * BYTE_WIDTH + BYTE_WIDTH-1; ey = HD44780.y * BYTE_HEIGHT + BYTE_HEIGHT-1; CHAR_INFO info = {.bytes = 0}; diff --git a/TFT/src/User/API/UI/Numpad.c b/TFT/src/User/API/UI/Numpad.c index 0d1a362dc4..4f7967f767 100644 --- a/TFT/src/User/API/UI/Numpad.c +++ b/TFT/src/User/API/UI/Numpad.c @@ -36,7 +36,7 @@ void keyPress(u8 index, u8 ispressed) { if (index < KEY_NUM) { - if(!ispressed) + if (!ispressed) GUI_SetColor(BLACK); GUI_DrawRect(rect_of_numkey[index].x0+2, rect_of_numkey[index].y0+2, rect_of_numkey[index].x1-2, rect_of_numkey[index].y1-2); GUI_SetColor(infoSettings.font_color); @@ -63,17 +63,17 @@ void Draw_keyboard(u8 * title, bool NumberOnly, bool negative) GUI_SetTextMode(GUI_TEXTMODE_TRANS); for(uint8_t i=0 ;ix0, rect->y0, rect->x1,rect->y1,iconalign,GET_ICONCHAR[iconindex]); GUI_SetColor(ICON_COLOR[iconindex]); - if(drawBgColor) + if (drawBgColor) { GUI_SetBkColor(btn_color); GUI_ClearPrect(rect); @@ -384,9 +384,9 @@ void ListItem_Display(const GUI_RECT* rect, uint8_t position, const LISTITEM * c //draw navigation icons if (getMenuType() != MENU_TYPE_LISTVIEW) return; - if(position >= LISTITEM_PER_PAGE) + if (position >= LISTITEM_PER_PAGE) { - if(curitem->icon != ICONCHAR_BACKGROUND) + if (curitem->icon != ICONCHAR_BACKGROUND) { if (curitem->icon != ICONCHAR_BLANK) { @@ -419,7 +419,7 @@ void ListItem_Display(const GUI_RECT* rect, uint8_t position, const LISTITEM * c switch (curitem->itemType) { case LIST_LABEL: - if(curitem->icon != ICONCHAR_BLANK) { + if (curitem->icon != ICONCHAR_BLANK) { DrawCharIcon(rect,LEFT_CENTER,curitem->icon, true, infoSettings.bg_color); pos.x += (BYTE_HEIGHT + 1); } @@ -445,7 +445,7 @@ void ListItem_Display(const GUI_RECT* rect, uint8_t position, const LISTITEM * c case LIST_MOREBUTTON: GUI_ClearPrect(rect); - if(curitem->icon != ICONCHAR_BLANK) { + if (curitem->icon != ICONCHAR_BLANK) { DrawCharIcon(rect,LEFT_CENTER,curitem->icon, true, infoSettings.bg_color); pos.x += (BYTE_HEIGHT + 1); } @@ -461,7 +461,7 @@ void ListItem_Display(const GUI_RECT* rect, uint8_t position, const LISTITEM * c break; case LIST_CUSTOMVALUE: - if(curitem->icon != ICONCHAR_BLANK) { + if (curitem->icon != ICONCHAR_BLANK) { DrawCharIcon(rect,LEFT_CENTER,curitem->icon, true, infoSettings.bg_color); pos.x += (BYTE_HEIGHT + 3); } diff --git a/TFT/src/User/API/UI/touch_process.c b/TFT/src/User/API/UI/touch_process.c index dafe601af4..befa7ad3db 100644 --- a/TFT/src/User/API/UI/touch_process.c +++ b/TFT/src/User/API/UI/touch_process.c @@ -64,7 +64,7 @@ u8 calibrationEnsure(u16 x,u16 y) lcd_y = (D*tp_x+E*tp_y+F)/K; - if(lcd_x < x+TS_ERR_RANGE && lcd_x>x-TS_ERR_RANGE && lcd_y > y-TS_ERR_RANGE && lcd_yx-TS_ERR_RANGE && lcd_y > y-TS_ERR_RANGE && lcd_ymenuRect[i].x0)&&(xmenuRect[i].y0)&&(ymenuRect[i].x0)&&(xmenuRect[i].y0)&&(y= 20) // 20ms + if (touch >= 20) // 20ms { touchScreenIsPress = true; } @@ -183,11 +183,11 @@ u16 KEY_GetValue(u8 total_rect,const GUI_RECT* menuRect) if (touchScreenIsPress) { - if(firstPress) + if (firstPress) { key_num = Key_value(total_rect, menuRect); firstPress = false; - if(TSC_ReDrawIcon) + if (TSC_ReDrawIcon) TSC_ReDrawIcon(key_num, 1); } } @@ -195,7 +195,7 @@ u16 KEY_GetValue(u8 total_rect,const GUI_RECT* menuRect) { if (firstPress == false ) { - if(TSC_ReDrawIcon) + if (TSC_ReDrawIcon) TSC_ReDrawIcon(key_num, 0); key_return = key_num; key_num = IDLE_TOUCH; @@ -230,7 +230,7 @@ typedef enum // static KEY_STATUS nowStatus = NO_CLICK; //������ǰ��״̬ -// if(touchScreenIsPress) +// if (touchScreenIsPress) // { // switch(nowStatus) // { @@ -241,7 +241,7 @@ typedef enum // break; // case FIRST_CLICK: -// if(OS_GetTime()-first_time>KEY_LONG_PRESS_START) +// if (OS_GetTime()-first_time>KEY_LONG_PRESS_START) // { // nowStatus = LONG_PRESS; // first_key |= KEY_LONG_CLICK; @@ -249,7 +249,7 @@ typedef enum // break; // case FIRST_RELEASE: -// if(first_key == Key_value(total_rect,menuRect)) +// if (first_key == Key_value(total_rect,menuRect)) // { // nowStatus = SECOND_CLICK; // first_key |= KEY_DOUBLE_CLICK; @@ -261,7 +261,7 @@ typedef enum // break; // case SECOND_CLICK: -// if(OS_GetTime()-first_time>KEY_LONG_PRESS_START) +// if (OS_GetTime()-first_time>KEY_LONG_PRESS_START) // { // nowStatus = LONG_PRESS; // first_key |= KEY_LONG_CLICK; @@ -269,9 +269,9 @@ typedef enum // break; // case LONG_PRESS: -// if(OS_GetTime()-first_time>long_press_space) +// if (OS_GetTime()-first_time>long_press_space) // { -// if(long_press_space>KEY_LONG_PRESS_SPACE_MIN) +// if (long_press_space>KEY_LONG_PRESS_SPACE_MIN) // long_press_space--; // first_time=OS_GetTime(); // key_return = first_key; @@ -291,7 +291,7 @@ typedef enum // break; // case FIRST_RELEASE: -// if(OS_GetTime()-first_time>KEY_DOUOBLE_SPACE) +// if (OS_GetTime()-first_time>KEY_DOUOBLE_SPACE) // { // nowStatus = NO_CLICK; // key_return = first_key; @@ -323,15 +323,15 @@ u16 KNOB_GetRV(GUI_RECT *knob) static u16 oldx=0,oldy=0; static u32 mytime; - if(touchScreenIsPress && OS_GetTimeMs() > mytime) + if (touchScreenIsPress && OS_GetTimeMs() > mytime) { mytime = OS_GetTimeMs() + 10; TS_Get_Coordinates(&x,&y); - if(x>knob->x0&&xx1&&y>knob->y0&&yy1) + if (x>knob->x0&&xx1&&y>knob->y0&&yy1) { - if(x>oldx+5) + if (x>oldx+5) { - if(oldy>(knob->y0+knob->y1)/2) + if (oldy>(knob->y0+knob->y1)/2) { key_return=KNOB_DEC; } @@ -340,9 +340,9 @@ u16 KNOB_GetRV(GUI_RECT *knob) key_return=KNOB_INC; } } - else if(x(knob->y0+knob->y1)/2) + if (oldy>(knob->y0+knob->y1)/2) { key_return=KNOB_INC; } @@ -351,9 +351,9 @@ u16 KNOB_GetRV(GUI_RECT *knob) key_return=KNOB_DEC; } } - if(y>oldy+5) + if (y>oldy+5) { - if(x>(knob->x0+knob->x1)/2) + if (x>(knob->x0+knob->x1)/2) { key_return=KNOB_INC; } @@ -362,9 +362,9 @@ u16 KNOB_GetRV(GUI_RECT *knob) key_return=KNOB_DEC; } } - else if(y(knob->x0+knob->x1)/2) + if (x>(knob->x0+knob->x1)/2) { key_return=KNOB_DEC; } @@ -375,7 +375,7 @@ u16 KNOB_GetRV(GUI_RECT *knob) } } } - if(key_return != IDLE_TOUCH) + if (key_return != IDLE_TOUCH) { oldx=x; oldy=y; diff --git a/TFT/src/User/API/UI/ui_draw.c b/TFT/src/User/API/UI/ui_draw.c index 9164f75368..dc52da7c37 100644 --- a/TFT/src/User/API/UI/ui_draw.c +++ b/TFT/src/User/API/UI/ui_draw.c @@ -72,7 +72,7 @@ bool model_DirectDisplay(GUI_POINT pos, char *gcode) { FIL gcodeFile; - if(f_open(&gcodeFile, gcode, FA_OPEN_EXISTING | FA_READ) != FR_OK) return false; + if (f_open(&gcodeFile, gcode, FA_OPEN_EXISTING | FA_READ) != FR_OK) return false; // Move the file cursor to the corresponding resolution area f_lseek(&gcodeFile, MODEL_PREVIEW_OFFSET); // Check whether the icon size matches @@ -103,7 +103,7 @@ bool model_DecodeToFlash(char *gcode) uint8_t buf[256]; FIL gcodeFile; - if(f_open(&gcodeFile, gcode, FA_OPEN_EXISTING | FA_READ) != FR_OK) return false; + if (f_open(&gcodeFile, gcode, FA_OPEN_EXISTING | FA_READ) != FR_OK) return false; // Move the file cursor to the corresponding resolution area f_lseek(&gcodeFile, MODEL_PREVIEW_OFFSET); // Check whether the icon size matches @@ -127,7 +127,7 @@ bool model_DecodeToFlash(char *gcode) buf[bnum++]=(uint8_t)(color >> 8); buf[bnum++]=(uint8_t)(color & 0xFF); - if(bnum == 256) + if (bnum == 256) { W25Qxx_WritePage(buf,addr,256); addr+=256; diff --git a/TFT/src/User/API/Vfs/vfs.c b/TFT/src/User/API/Vfs/vfs.c index 70b9603403..e10540a9f2 100644 --- a/TFT/src/User/API/Vfs/vfs.c +++ b/TFT/src/User/API/Vfs/vfs.c @@ -86,7 +86,7 @@ bool scanPrintFiles(void) */ bool EnterDir(char *nextdir) { - if(strlen(infoFile.title)+strlen(nextdir)+2>=MAX_PATH_LEN) return 0; + if (strlen(infoFile.title)+strlen(nextdir)+2>=MAX_PATH_LEN) return 0; strcat(infoFile.title,"/"); strcat(infoFile.title,nextdir); return 1; @@ -115,7 +115,7 @@ static bool volumeSrcStatus[FF_VOLUMES] = {false, false}; bool isVolumeExist(u8 src) { - if(src >= FF_VOLUMES) return true; + if (src >= FF_VOLUMES) return true; return volumeSrcStatus[src]; } @@ -125,7 +125,7 @@ void loopVolumeSource(void) { for (u8 i = 0; i < FF_VOLUMES; i++) { - if(volumeSrcStatus[i] != (*volumeInserted[i])()) + if (volumeSrcStatus[i] != (*volumeInserted[i])()) { const int16_t labelSDStates[FF_VOLUMES][2] = {{LABEL_TFTSD_REMOVED, LABEL_TFTSD_INSERTED}, {LABEL_U_DISK_REMOVED, LABEL_U_DISK_INSERTED}}; diff --git a/TFT/src/User/API/boot.c b/TFT/src/User/API/boot.c index e72cc1ae1e..0e0e4b16ab 100644 --- a/TFT/src/User/API/boot.c +++ b/TFT/src/User/API/boot.c @@ -44,7 +44,7 @@ bool bmpDecode(char *bmp, u32 addr) GUI_COLOR pix; - if(f_open(&bmpFile,bmp,FA_OPEN_EXISTING | FA_READ)!=FR_OK) + if (f_open(&bmpFile,bmp,FA_OPEN_EXISTING | FA_READ)!=FR_OK) { bmp_stat = BMP_NOTFOUND; return false; @@ -66,7 +66,7 @@ bool bmpDecode(char *bmp, u32 addr) bmp_size.y = h; f_lseek(&bmpFile, 28); f_read(&bmpFile, &bpp, sizeof(short),&mybr); - if(bpp<24) + if (bpp<24) { f_close(&bmpFile); bmp_stat = BMP_NOT24BIT; @@ -74,7 +74,7 @@ bool bmpDecode(char *bmp, u32 addr) } bpp >>=3; bytePerLine=w*bpp; - if(bytePerLine%4 !=0) //bmp + if (bytePerLine%4 !=0) //bmp bytePerLine=(bytePerLine/4+1)*4; for(bnum=0; bnum<(w*h*2+W25QXX_SECTOR_SIZE-1)/W25QXX_SECTOR_SIZE; bnum++) @@ -105,7 +105,7 @@ bool bmpDecode(char *bmp, u32 addr) buf[bnum++]=(u8)(pix.color>>8); buf[bnum++]=(u8)(pix.color&0xFF); - if(bnum == 256) + if (bnum == 256) { W25Qxx_WritePage(buf,addr,256); addr+=256; @@ -196,7 +196,7 @@ bool updateIcon(void) notfound++; dispIconFail((u8 *)(BMP_ROOT_DIR "/InfoBox.bmp")); } - if(notfound == 0) + if (notfound == 0) return true; else return false; @@ -255,12 +255,12 @@ bool updateFont(char *font, u32 addr) W25Qxx_EraseSector(addr + offset); W25Qxx_WriteBuffer(tempbuf, addr + offset, W25QXX_SECTOR_SIZE); offset += rnum; - if(progress != offset * 100 / f_size(&myfp)) + if (progress != offset * 100 / f_size(&myfp)) { progress = offset * 100 / f_size(&myfp); GUI_DispDec(0 + BYTE_WIDTH*9, 140, progress, 3, RIGHT); } - if(rnum !=W25QXX_SECTOR_SIZE)break; + if (rnum !=W25QXX_SECTOR_SIZE)break; } f_close(&myfp); @@ -335,7 +335,7 @@ void scanUpdates(void) uint32_t cur_flash_sign[sign_count]; W25Qxx_ReadBuffer((uint8_t*)&cur_flash_sign, FLASH_SIGN_ADDR, sizeof(cur_flash_sign)); - if(mountSDCard()) { + if (mountSDCard()) { if (f_dir_exists(FONT_ROOT_DIR)) { if (updateFont(FONT_ROOT_DIR "/byte_ascii.fon", BYTE_ASCII_ADDR) && diff --git a/TFT/src/User/API/config.c b/TFT/src/User/API/config.c index d431dbd219..d19724d3e8 100644 --- a/TFT/src/User/API/config.c +++ b/TFT/src/User/API/config.c @@ -89,7 +89,7 @@ bool getLangFromFile(void) char langpath[256]; sprintf(langpath, "0:%s", f.fname); - if(!f_file_exists(langpath)) + if (!f_file_exists(langpath)) return false; char cur_line_buffer[MAX_LANG_LABEL_LENGTH + 100]; @@ -419,7 +419,7 @@ void resetConfig(void) int n = 0; for (int i = 0; i < CUSTOM_GCODES_COUNT;i++) { - if(cg_enabled[i] == 1) + if (cg_enabled[i] == 1) { strcpy(tempCG.gcode[n],cg_list[i]); strcpy(tempCG.name[n],cg_names[i]); @@ -972,7 +972,7 @@ void parseConfigKey(u16 index) case C_INDEX_PS_ON: if (config_int() == 1) infoSettings.auto_off = 1; - else if(config_int() == 2) + else if (config_int() == 2) infoSettings.auto_off = 2; else infoSettings.auto_off = 0; diff --git a/TFT/src/User/API/coordinate.c b/TFT/src/User/API/coordinate.c index 639e66256e..e05d10c09c 100644 --- a/TFT/src/User/API/coordinate.c +++ b/TFT/src/User/API/coordinate.c @@ -52,7 +52,7 @@ void coordinateSetAxisTarget(AXIS axis,float position) ? relative_e || relative_mode : relative_mode; - if(r==false) + if (r==false) { targetPosition.axis[axis] = position; } diff --git a/TFT/src/User/API/extend.c b/TFT/src/User/API/extend.c index 0e9d57fbba..4380e55b96 100644 --- a/TFT/src/User/API/extend.c +++ b/TFT/src/User/API/extend.c @@ -132,10 +132,10 @@ bool FIL_SmartRunoutDetect(void) do { /* Send M114 E query extrude position continuously */ - if(update_waiting == true) {nextTime=OS_GetTimeMs()+update_time;break;} - if(OS_GetTimeMs()count >= CMD_MAX_LIST) reminderMessage(LABEL_BUSY, STATUS_BUSY); + if (pQueue->count >= CMD_MAX_LIST) reminderMessage(LABEL_BUSY, STATUS_BUSY); while (pQueue->count >= CMD_MAX_LIST) { @@ -152,7 +152,7 @@ void mustStoreCacheCmd(const char * format,...) { GCODE_QUEUE *pQueue = &infoCacheCmd; - if(pQueue->count == CMD_MAX_LIST) reminderMessage(LABEL_BUSY, STATUS_BUSY); + if (pQueue->count == CMD_MAX_LIST) reminderMessage(LABEL_BUSY, STATUS_BUSY); while (pQueue->count >= CMD_MAX_LIST) { @@ -168,8 +168,8 @@ void mustStoreCacheCmd(const char * format,...) // Move gcode cmd from infoCacheCmd to infoCmd queue. bool moveCacheToCmd(void) { - if(infoCmd.count >= CMD_MAX_LIST) return false; - if(infoCacheCmd.count == 0) return false; + if (infoCmd.count >= CMD_MAX_LIST) return false; + if (infoCacheCmd.count == 0) return false; storeCmd("%s", infoCacheCmd.queue[infoCacheCmd.index_r].gcode); infoCacheCmd.count--; @@ -195,8 +195,8 @@ void purgeLastCmd(void) // Parse and send gcode cmd in infoCmd. void sendQueueCmd(void) { - if(infoHost.wait == true) return; - if(infoCmd.count == 0) return; + if (infoHost.wait == true) return; + if (infoCmd.count == 0) return; bool avoid_terminal = false; u16 cmd=0; @@ -243,7 +243,7 @@ void sendQueueCmd(void) if (!fromTFT) { if (startsWith("M20 SD:", infoCmd.queue[infoCmd.index_r].gcode) ||startsWith("M20 U:", infoCmd.queue[infoCmd.index_r].gcode)) { - if(startsWith("M20 SD:", infoCmd.queue[infoCmd.index_r].gcode)) infoFile.source = TFT_SD; + if (startsWith("M20 SD:", infoCmd.queue[infoCmd.index_r].gcode)) infoFile.source = TFT_SD; else infoFile.source = TFT_UDISK; strncpy(infoFile.title, &infoCmd.queue[infoCmd.index_r].gcode[cmd_index + 4], MAX_PATH_LEN); // strip out any checksum that might be in the string @@ -280,7 +280,7 @@ void sendQueueCmd(void) { if (startsWith("M23 SD:", infoCmd.queue[infoCmd.index_r].gcode) || startsWith("M23 U:", infoCmd.queue[infoCmd.index_r].gcode)) { - if(startsWith("M23 SD:", infoCmd.queue[infoCmd.index_r].gcode)) + if (startsWith("M23 SD:", infoCmd.queue[infoCmd.index_r].gcode)) infoFile.source = TFT_SD; else infoFile.source = TFT_UDISK; @@ -399,7 +399,7 @@ void sendQueueCmd(void) { if (startsWith("M30 SD:", infoCmd.queue[infoCmd.index_r].gcode) || startsWith("M30 U:", infoCmd.queue[infoCmd.index_r].gcode)) { - if(startsWith("M30 SD:", infoCmd.queue[infoCmd.index_r].gcode)) infoFile.source = TFT_SD; + if (startsWith("M30 SD:", infoCmd.queue[infoCmd.index_r].gcode)) infoFile.source = TFT_SD; else infoFile.source = TFT_UDISK; TCHAR filepath[MAX_PATH_LEN]; strncpy(filepath, &infoCmd.queue[infoCmd.index_r].gcode[cmd_index + 4], MAX_PATH_LEN); @@ -486,10 +486,10 @@ void sendQueueCmd(void) break; case 92: //M92 Steps per unit - if(cmd_seen('X')) setParameter(P_STEPS_PER_MM, X_AXIS, cmd_float()); - if(cmd_seen('Y')) setParameter(P_STEPS_PER_MM, Y_AXIS, cmd_float()); - if(cmd_seen('Z')) setParameter(P_STEPS_PER_MM, Z_AXIS, cmd_float()); - if(cmd_seen('E')) setParameter(P_STEPS_PER_MM, E_AXIS, cmd_float()); + if (cmd_seen('X')) setParameter(P_STEPS_PER_MM, X_AXIS, cmd_float()); + if (cmd_seen('Y')) setParameter(P_STEPS_PER_MM, Y_AXIS, cmd_float()); + if (cmd_seen('Z')) setParameter(P_STEPS_PER_MM, Z_AXIS, cmd_float()); + if (cmd_seen('E')) setParameter(P_STEPS_PER_MM, E_AXIS, cmd_float()); break; case 105: //M105 @@ -503,7 +503,7 @@ void sendQueueCmd(void) case 106: //M106 { uint8_t i = cmd_seen('P') ? cmd_value() : 0; - if(cmd_seen('S') && fanIsType(i, FAN_TYPE_F) ) { + if (cmd_seen('S') && fanIsType(i, FAN_TYPE_F) ) { fanSetSpeed(i, cmd_value()); fanSetSendWaiting(i, false); } @@ -526,12 +526,12 @@ void sendQueueCmd(void) case 710: //M710 Controller Fan { u8 i = 0; - if(cmd_seen('S')) { + if (cmd_seen('S')) { i = fanGetTypID(i,FAN_TYPE_CTRL_S); fanSetSpeed(i, cmd_value()); fanSetSendWaiting(i, false); } - if(cmd_seen('I')) { + if (cmd_seen('I')) { i = fanGetTypID(i=0,FAN_TYPE_CTRL_I); fanSetSpeed(i, cmd_value()); fanSetSendWaiting(i, false); @@ -559,7 +559,7 @@ void sendQueueCmd(void) if (fromTFT) { uint8_t i = cmd_seen('T') ? cmd_value() : heatGetCurrentHotend(); - if(cmd_seen('S')) + if (cmd_seen('S')) { heatSyncTargetTemp(i, cmd_value()); } @@ -665,52 +665,52 @@ void sendQueueCmd(void) } break; case 201: //M201 Maximum Acceleration (units/s2) - if(cmd_seen('X')) setParameter(P_MAX_ACCELERATION, X_AXIS, cmd_float()); - if(cmd_seen('Y')) setParameter(P_MAX_ACCELERATION, Y_AXIS, cmd_float()); - if(cmd_seen('Z')) setParameter(P_MAX_ACCELERATION, Z_AXIS, cmd_float()); - if(cmd_seen('E')) setParameter(P_MAX_ACCELERATION, E_AXIS, cmd_float()); + if (cmd_seen('X')) setParameter(P_MAX_ACCELERATION, X_AXIS, cmd_float()); + if (cmd_seen('Y')) setParameter(P_MAX_ACCELERATION, Y_AXIS, cmd_float()); + if (cmd_seen('Z')) setParameter(P_MAX_ACCELERATION, Z_AXIS, cmd_float()); + if (cmd_seen('E')) setParameter(P_MAX_ACCELERATION, E_AXIS, cmd_float()); break; case 203: //M203 Maximum feedrates (units/s) - if(cmd_seen('X')) setParameter(P_MAX_FEED_RATE, X_AXIS, cmd_float()); - if(cmd_seen('Y')) setParameter(P_MAX_FEED_RATE, Y_AXIS, cmd_float()); - if(cmd_seen('Z')) setParameter(P_MAX_FEED_RATE, Z_AXIS, cmd_float()); - if(cmd_seen('E')) setParameter(P_MAX_FEED_RATE, E_AXIS, cmd_float()); + if (cmd_seen('X')) setParameter(P_MAX_FEED_RATE, X_AXIS, cmd_float()); + if (cmd_seen('Y')) setParameter(P_MAX_FEED_RATE, Y_AXIS, cmd_float()); + if (cmd_seen('Z')) setParameter(P_MAX_FEED_RATE, Z_AXIS, cmd_float()); + if (cmd_seen('E')) setParameter(P_MAX_FEED_RATE, E_AXIS, cmd_float()); break; case 204: //M204 Acceleration (units/s2) - if(cmd_seen('P')) setParameter(P_ACCELERATION, 0, cmd_float()); - if(cmd_seen('R')) setParameter(P_ACCELERATION, 1, cmd_float()); - if(cmd_seen('T')) setParameter(P_ACCELERATION, 2, cmd_float()); + if (cmd_seen('P')) setParameter(P_ACCELERATION, 0, cmd_float()); + if (cmd_seen('R')) setParameter(P_ACCELERATION, 1, cmd_float()); + if (cmd_seen('T')) setParameter(P_ACCELERATION, 2, cmd_float()); break; case 205: //M205 - Set Advanced Settings - if(cmd_seen('X')) setParameter(P_JERK, X_AXIS, cmd_float()); - if(cmd_seen('Y')) setParameter(P_JERK, Y_AXIS, cmd_float()); - if(cmd_seen('Z')) setParameter(P_JERK, Z_AXIS, cmd_float()); - if(cmd_seen('E')) setParameter(P_JERK, E_AXIS, cmd_float()); - if(cmd_seen('J')) setParameter(P_JUNCTION_DEVIATION, 0, cmd_float()); + if (cmd_seen('X')) setParameter(P_JERK, X_AXIS, cmd_float()); + if (cmd_seen('Y')) setParameter(P_JERK, Y_AXIS, cmd_float()); + if (cmd_seen('Z')) setParameter(P_JERK, Z_AXIS, cmd_float()); + if (cmd_seen('E')) setParameter(P_JERK, E_AXIS, cmd_float()); + if (cmd_seen('J')) setParameter(P_JUNCTION_DEVIATION, 0, cmd_float()); break; case 206: //M206 Home offset - if(cmd_seen('X')) setParameter(P_HOME_OFFSET, X_AXIS, cmd_float()); - if(cmd_seen('Y')) setParameter(P_HOME_OFFSET, Y_AXIS, cmd_float()); - if(cmd_seen('Z')) setParameter(P_HOME_OFFSET, Z_AXIS, cmd_float()); + if (cmd_seen('X')) setParameter(P_HOME_OFFSET, X_AXIS, cmd_float()); + if (cmd_seen('Y')) setParameter(P_HOME_OFFSET, Y_AXIS, cmd_float()); + if (cmd_seen('Z')) setParameter(P_HOME_OFFSET, Z_AXIS, cmd_float()); break; case 207: //M207 FW Retract - if(cmd_seen('S')) setParameter(P_FWRETRACT, 0, cmd_float()); - if(cmd_seen('W')) setParameter(P_FWRETRACT, 1, cmd_float()); - if(cmd_seen('F')) setParameter(P_FWRETRACT, 2, cmd_float()); - if(cmd_seen('Z')) setParameter(P_FWRETRACT, 3, cmd_float()); + if (cmd_seen('S')) setParameter(P_FWRETRACT, 0, cmd_float()); + if (cmd_seen('W')) setParameter(P_FWRETRACT, 1, cmd_float()); + if (cmd_seen('F')) setParameter(P_FWRETRACT, 2, cmd_float()); + if (cmd_seen('Z')) setParameter(P_FWRETRACT, 3, cmd_float()); break; case 208: //M208 FW Retract recover - if(cmd_seen('S')) setParameter(P_FWRECOVER, 0, cmd_float()); - if(cmd_seen('W')) setParameter(P_FWRECOVER, 1, cmd_float()); - if(cmd_seen('F')) setParameter(P_FWRECOVER, 2, cmd_float()); - if(cmd_seen('R')) setParameter(P_FWRECOVER, 3, cmd_float()); + if (cmd_seen('S')) setParameter(P_FWRECOVER, 0, cmd_float()); + if (cmd_seen('W')) setParameter(P_FWRECOVER, 1, cmd_float()); + if (cmd_seen('F')) setParameter(P_FWRECOVER, 2, cmd_float()); + if (cmd_seen('R')) setParameter(P_FWRECOVER, 3, cmd_float()); break; case 220: //M220 - if(cmd_seen('S')) + if (cmd_seen('S')) speedSetPercent(0,cmd_value()); break; case 221: //M221 - if(cmd_seen('S')) + if (cmd_seen('S')) speedSetPercent(1,cmd_value()); break; @@ -734,12 +734,12 @@ void sendQueueCmd(void) #endif case 355: //M355 { - if(cmd_seen('S')) + if (cmd_seen('S')) { caseLightSetState(cmd_value() > 0); caseLightSendWaiting(false); } - if(cmd_seen('P')) + if (cmd_seen('P')) { caseLightSetBrightness(cmd_value()); caseLightSendWaiting(false); @@ -750,7 +750,7 @@ void sendQueueCmd(void) case 420: //M420 //ABL state will be set through parsACK.c after receiving confirmation message from the printer // to prevent wrong state in case of error. - if(cmd_seen('Z')) setParameter(P_ABL_STATE,1,cmd_float()); + if (cmd_seen('Z')) setParameter(P_ABL_STATE,1,cmd_float()); break; #ifdef NOZZLE_PAUSE_M600_M601 @@ -766,44 +766,44 @@ void sendQueueCmd(void) break; #endif case 851: //M851 Z probe offset - if(cmd_seen('X')) setParameter(P_PROBE_OFFSET, X_AXIS, cmd_float()); - if(cmd_seen('Y')) setParameter(P_PROBE_OFFSET, Y_AXIS, cmd_float()); - if(cmd_seen('Z')) setParameter(P_PROBE_OFFSET, Z_AXIS, cmd_float()); + if (cmd_seen('X')) setParameter(P_PROBE_OFFSET, X_AXIS, cmd_float()); + if (cmd_seen('Y')) setParameter(P_PROBE_OFFSET, Y_AXIS, cmd_float()); + if (cmd_seen('Z')) setParameter(P_PROBE_OFFSET, Z_AXIS, cmd_float()); break; case 900: //M900 Linear advance if (cmd_seen('K')) setParameter(P_LIN_ADV, 0, cmd_float()); break; case 906: //M906 Stepper driver current - if(cmd_seen('X')) setParameter(P_CURRENT, X_AXIS, cmd_value()); - if(cmd_seen('Y')) setParameter(P_CURRENT, Y_AXIS, cmd_value()); - if(cmd_seen('Z')) setParameter(P_CURRENT, Z_AXIS, cmd_value()); - if(cmd_seen('E')) setParameter(P_CURRENT, E_AXIS, cmd_value()); - if(cmd_seen('I')) + if (cmd_seen('X')) setParameter(P_CURRENT, X_AXIS, cmd_value()); + if (cmd_seen('Y')) setParameter(P_CURRENT, Y_AXIS, cmd_value()); + if (cmd_seen('Z')) setParameter(P_CURRENT, Z_AXIS, cmd_value()); + if (cmd_seen('E')) setParameter(P_CURRENT, E_AXIS, cmd_value()); + if (cmd_seen('I')) { - if(cmd_seen('X')) setDualStepperStatus(X_STEPPER,true); - if(cmd_seen('Y')) setDualStepperStatus(Y_STEPPER,true); - if(cmd_seen('Z')) setDualStepperStatus(Z_STEPPER,true); + if (cmd_seen('X')) setDualStepperStatus(X_STEPPER,true); + if (cmd_seen('Y')) setDualStepperStatus(Y_STEPPER,true); + if (cmd_seen('Z')) setDualStepperStatus(Z_STEPPER,true); } - if(cmd_seen('T') && cmd_value() == 0) + if (cmd_seen('T') && cmd_value() == 0) { - if(cmd_seen('E')) setParameter(P_CURRENT,E_STEPPER,cmd_value()); + if (cmd_seen('E')) setParameter(P_CURRENT,E_STEPPER,cmd_value()); } - if(cmd_seen('T') && cmd_value() == 1) + if (cmd_seen('T') && cmd_value() == 1) { - if(cmd_seen('E')) setParameter(P_CURRENT,E2_STEPPER,cmd_value()); + if (cmd_seen('E')) setParameter(P_CURRENT,E2_STEPPER,cmd_value()); setDualStepperStatus(E_STEPPER,true); } break; case 914: //parse and store TMC Bump sensitivity values - if(cmd_seen('X')) setParameter(P_BUMPSENSITIVITY, X_STEPPER, cmd_float()); - if(cmd_seen('Y')) setParameter(P_BUMPSENSITIVITY, Y_STEPPER, cmd_float()); - if(cmd_seen('Z')) setParameter(P_BUMPSENSITIVITY, Z_STEPPER, cmd_float()); + if (cmd_seen('X')) setParameter(P_BUMPSENSITIVITY, X_STEPPER, cmd_float()); + if (cmd_seen('Y')) setParameter(P_BUMPSENSITIVITY, Y_STEPPER, cmd_float()); + if (cmd_seen('Z')) setParameter(P_BUMPSENSITIVITY, Z_STEPPER, cmd_float()); break; case 913: //M913 Hybrid Threshold Speed - if(cmd_seen('X')) setParameter(P_HYBRID_THRESHOLD, X_STEPPER, cmd_value()); - if(cmd_seen('Y')) setParameter(P_HYBRID_THRESHOLD, Y_STEPPER, cmd_value()); - if(cmd_seen('Z')) setParameter(P_HYBRID_THRESHOLD, Z_STEPPER, cmd_value()); - if(cmd_seen('E')) setParameter(P_HYBRID_THRESHOLD, E_STEPPER, cmd_value()); + if (cmd_seen('X')) setParameter(P_HYBRID_THRESHOLD, X_STEPPER, cmd_value()); + if (cmd_seen('Y')) setParameter(P_HYBRID_THRESHOLD, Y_STEPPER, cmd_value()); + if (cmd_seen('Z')) setParameter(P_HYBRID_THRESHOLD, Z_STEPPER, cmd_value()); + if (cmd_seen('E')) setParameter(P_HYBRID_THRESHOLD, E_STEPPER, cmd_value()); break; } break; //end parsing M-codes @@ -818,12 +818,12 @@ void sendQueueCmd(void) AXIS i; for(i=X_AXIS;i 0 // if not Disabled case 29: //G29 { - if(cmd_seen('A')) + if (cmd_seen('A')) { setParameter(P_ABL_STATE,0,1); storeCmd("M117 UBL active\n"); } - if(cmd_seen('D')) + if (cmd_seen('D')) { setParameter(P_ABL_STATE,0,0); storeCmd("M117 UBL inactive\n"); @@ -871,7 +871,7 @@ void sendQueueCmd(void) eSetRelative(false); for(i=X_AXIS;iindex == LABEL_BACKGROUND) return NULL; // No content in label + if (label->index == LABEL_BACKGROUND) + return NULL; // No content in label if (label->index < LABEL_NUM) // Index of language return textSelect(label->index); else // Address of string @@ -250,15 +247,15 @@ void menuDrawItem(const ITEM *item, uint8_t position) void menuDrawIconOnly(const ITEM *item, uint8_t position) { const GUI_RECT *rect = curRect + position; - if(item->icon != ICON_BACKGROUND) + if (item->icon != ICON_BACKGROUND) ICON_ReadDisplay(rect->x0, rect->y0, item->icon); else GUI_ClearPrect(rect); } - void menuDrawListItem(const LISTITEM *item, uint8_t position) +void menuDrawListItem(const LISTITEM *item, uint8_t position) { - const GUI_RECT *rect = rect_of_keyListView + position; + const GUI_RECT *rect = rect_of_keyListView + position; if (item->icon == ICONCHAR_BACKGROUND) { GUI_ClearPrect(rect); @@ -274,7 +271,7 @@ void menuRefreshListPage(void) for (uint8_t i = 0; i < ITEM_PER_PAGE; i++) { menuDrawListItem(&curListItems->items[i], i); - rapid_serial_comm()//perform backend printing loop between drawing icons to avoid printer idling + rapid_serial_comm() //perform backend printing loop between drawing icons to avoid printer idling } } @@ -288,7 +285,7 @@ MENU_TYPE getMenuType(void) return menuType; } -void setMenu(MENU_TYPE menu_type, LABEL * title, u16 rectCount, const GUI_RECT * menuRect, void(*action_redraw)(u8 position, u8 is_press)) +void setMenu(MENU_TYPE menu_type, LABEL *title, u16 rectCount, const GUI_RECT *menuRect, void (*action_redraw)(u8 position, u8 is_press)) { menuType = menu_type; curRect = menuRect; @@ -297,7 +294,7 @@ void setMenu(MENU_TYPE menu_type, LABEL * title, u16 rectCount, const GUI_RECT * TSC_ReDrawIcon = action_redraw; } -void setMenuTypeCustom(void (* redrawCallback)(void)) +void setMenuTypeCustom(void (*redrawCallback)(void)) { menuType = MENU_TYPE_CUSTOM; curMenuCustom = redrawCallback; @@ -317,7 +314,7 @@ void reminderSetUnConnected(void) void reminderMessage(int16_t inf, SYS_STATUS status) { - if(toastRunning() || menuType == MENU_TYPE_FULLSCREEN) + if (toastRunning() || menuType == MENU_TYPE_FULLSCREEN) return; reminder.inf = inf; GUI_SetColor(infoSettings.reminder_color); @@ -331,7 +328,7 @@ void reminderMessage(int16_t inf, SYS_STATUS status) void volumeReminderMessage(int16_t inf, SYS_STATUS status) { wakeLCD(); - if(toastRunning() || menuType == MENU_TYPE_FULLSCREEN) + if (toastRunning() || menuType == MENU_TYPE_FULLSCREEN) return; volumeReminder.inf = inf; GUI_SetColor(infoSettings.sd_reminder_color); @@ -344,10 +341,10 @@ void volumeReminderMessage(int16_t inf, SYS_STATUS status) void busyIndicator(SYS_STATUS status) { - if(status == STATUS_BUSY) + if (status == STATUS_BUSY) { GUI_SetColor(YELLOW); - GUI_FillCircle(busySign.rect.x0, (busySign.rect.y1 - busySign.rect.y0) / 2, (busySign.rect.x1-busySign.rect.x0)/2); + GUI_FillCircle(busySign.rect.x0, (busySign.rect.y1 - busySign.rect.y0) / 2, (busySign.rect.x1 - busySign.rect.x0) / 2); GUI_SetColor(infoSettings.font_color); } busySign.status = status; @@ -356,27 +353,27 @@ void busyIndicator(SYS_STATUS status) void loopReminderClear(void) { - switch(reminder.status) + switch (reminder.status) { - case STATUS_IDLE: + case STATUS_IDLE: + return; + + case STATUS_BUSY: + if (infoCmd.count == CMD_MAX_LIST) + return; + break; + + case STATUS_UNCONNECT: + if (infoHost.connected == false) return; + break; - case STATUS_BUSY: - if(infoCmd.count == CMD_MAX_LIST) - return; - break; - - case STATUS_UNCONNECT: - if(infoHost.connected == false) - return; - break; - - case STATUS_NORMAL: - if(OS_GetTimeMs() < reminder.time) - return; - break; - default: + case STATUS_NORMAL: + if (OS_GetTimeMs() < reminder.time) return; + break; + default: + return; } /* Clear warning message */ @@ -390,14 +387,14 @@ void loopReminderClear(void) void loopVolumeReminderClear(void) { - switch(volumeReminder.status) + switch (volumeReminder.status) { - case STATUS_NORMAL: - if(OS_GetTimeMs() < volumeReminder.time) - return; - break; - default: + case STATUS_NORMAL: + if (OS_GetTimeMs() < volumeReminder.time) return; + break; + default: + return; } /* Clear warning message */ @@ -411,15 +408,15 @@ void loopVolumeReminderClear(void) void loopBusySignClear(void) { - switch(busySign.status) + switch (busySign.status) { - case STATUS_IDLE: - return; + case STATUS_IDLE: + return; - case STATUS_BUSY: - if(OS_GetTimeMs() < busySign.time) - return; - break; + case STATUS_BUSY: + if (OS_GetTimeMs() < busySign.time) + return; + break; } /* End Busy display sing */ @@ -430,28 +427,29 @@ void loopBusySignClear(void) else { GUI_SetColor(infoSettings.title_bg_color); - GUI_FillCircle(busySign.rect.x0, (busySign.rect.y1 - busySign.rect.y0) / 2, (busySign.rect.x1-busySign.rect.x0)/2); + GUI_FillCircle(busySign.rect.x0, (busySign.rect.y1 - busySign.rect.y0) / 2, (busySign.rect.x1 - busySign.rect.x0) / 2); GUI_SetColor(infoSettings.font_color); } } void notificationDot(void) { - if(hasNotification()) - { - GUI_SetColor(infoSettings.font_color); - } + if (hasNotification()) + { + GUI_SetColor(infoSettings.font_color); + } else - { - GUI_SetColor(infoSettings.title_bg_color); - } - GUI_FillCircle(3, 3, 3); - GUI_RestoreColorDefault(); + { + GUI_SetColor(infoSettings.title_bg_color); + } + GUI_FillCircle(3, 3, 3); + GUI_RestoreColorDefault(); } void menuDrawTitle(const uint8_t *content) //(const MENUITEMS * menuItems) { - if(menuType == MENU_TYPE_FULLSCREEN) return; + if (menuType == MENU_TYPE_FULLSCREEN) + return; if (toastRunning()) { drawToast(true); @@ -465,13 +463,15 @@ void menuDrawTitle(const uint8_t *content) //(const MENUITEMS * menuItems) { GUI_DispLenString(10, start_y, content, LCD_WIDTH - 20, true); start_x += GUI_StrPixelWidth(content); - if (start_x > LCD_WIDTH-20) start_x = LCD_WIDTH - 20; + if (start_x > LCD_WIDTH - 20) + start_x = LCD_WIDTH - 20; } - GUI_ClearRect(start_x, start_y, end_x, start_y+BYTE_HEIGHT); + GUI_ClearRect(start_x, start_y, end_x, start_y + BYTE_HEIGHT); notificationDot(); GUI_SetBkColor(infoSettings.bg_color); - if(reminder.status == STATUS_IDLE) return; + if (reminder.status == STATUS_IDLE) + return; GUI_SetColor(infoSettings.reminder_color); GUI_SetBkColor(infoSettings.title_bg_color); GUI_DispStringInPrect(&reminder.rect, reminder.inf); @@ -482,16 +482,18 @@ void menuReDrawCurTitle(void) { if (menuType == MENU_TYPE_LISTVIEW) { - if(curListItems == NULL) return; - if(curListItems->title.index < LABEL_BACKGROUND) - menuDrawTitle(labelGetAddress(&curListItems->title)); + if (curListItems == NULL) + return; + if (curListItems->title.index < LABEL_BACKGROUND) + menuDrawTitle(labelGetAddress(&curListItems->title)); } - else if(menuType == MENU_TYPE_ICON) + else if (menuType == MENU_TYPE_ICON) { - if(curMenuItems == NULL) return; + if (curMenuItems == NULL) + return; menuDrawTitle(labelGetAddress(&curMenuItems->title)); } - else if(menuType == MENU_TYPE_OTHER) + else if (menuType == MENU_TYPE_OTHER) { menuDrawTitle(labelGetAddress(curTitle)); } @@ -513,7 +515,7 @@ void menuDrawPage(const MENUITEMS *menuItems) for (i = 0; i < ITEM_PER_PAGE; i++) { menuDrawItem(&menuItems->items[i], i); - rapid_serial_comm()//perform backend printing loop between drawing icons to avoid printer idling + rapid_serial_comm() //perform backend printing loop between drawing icons to avoid printer idling } } @@ -538,15 +540,15 @@ void menuDrawListPage(const LISTITEMS *listItems) //const GUI_RECT *rect = rect_of_keyListView + i; if (curListItems->items[i].icon != ICONCHAR_BACKGROUND) menuDrawListItem(&curListItems->items[i], i); - rapid_serial_comm()//perform backend printing loop between drawing icons to avoid printer idling + rapid_serial_comm() //perform backend printing loop between drawing icons to avoid printer idling } } //Show live info text on icons -void showLiveInfo(uint8_t index, const LIVE_INFO * liveicon, const ITEM * item) +void showLiveInfo(uint8_t index, const LIVE_INFO *liveicon, const ITEM *item) { if (item != NULL) - menuDrawIconOnly(item,index); + menuDrawIconOnly(item, index); for (uint8_t i = 0; i < LIVEICON_LINES; i++) { @@ -603,39 +605,42 @@ void showLiveInfo(uint8_t index, const LIVE_INFO * liveicon, const ITEM * item) //When there is a button value, the icon changes color and redraws void itemDrawIconPress(u8 position, u8 is_press) { - if (position > KEY_ICON_7) return; + if (position > KEY_ICON_7) + return; if (menuType == MENU_TYPE_ICON) { - if (curMenuItems == NULL) return; - if (curMenuItems->items[position].icon == ICON_BACKGROUND) return; + if (curMenuItems == NULL) + return; + if (curMenuItems->items[position].icon == ICON_BACKGROUND) + return; const GUI_RECT *rect = curRect + position; if (is_press) // Turn green when pressed ICON_PressedDisplay(rect->x0, rect->y0, curMenuItems->items[position].icon); else // Redraw normal icon when released - ICON_ReadDisplay(rect->x0, rect->y0,curMenuItems->items[position].icon); + ICON_ReadDisplay(rect->x0, rect->y0, curMenuItems->items[position].icon); } else if (menuType == MENU_TYPE_LISTVIEW) { //draw rec over list item if pressed if (curListItems == NULL) - return; + return; const GUI_RECT *rect = rect_of_keyListView + position; if (curListItems->items[position].icon == ICONCHAR_BACKGROUND) { - GUI_ClearPrect(rect); - return; + GUI_ClearPrect(rect); + return; } if (is_press) { - ListItem_Display(rect,position,&curListItems->items[position], true); + ListItem_Display(rect, position, &curListItems->items[position], true); } else { - ListItem_Display(rect,position,&curListItems->items[position], false); + ListItem_Display(rect, position, &curListItems->items[position], false); } } } @@ -646,21 +651,20 @@ KEY_VALUES menuKeyGetValue(void) KEY_VALUES tempkey = KEY_IDLE; if (menuType == MENU_TYPE_ICON) { - tempkey = (infoMenu.menu[infoMenu.cur] == menuStatus) ? - (KEY_VALUES)KEY_GetValue(COUNT(rect_of_keySS), rect_of_keySS) : (KEY_VALUES)KEY_GetValue(COUNT(rect_of_key), rect_of_key); // for normal menu + tempkey = (infoMenu.menu[infoMenu.cur] == menuStatus) ? (KEY_VALUES)KEY_GetValue(COUNT(rect_of_keySS), rect_of_keySS) : (KEY_VALUES)KEY_GetValue(COUNT(rect_of_key), rect_of_key); // for normal menu } else if (menuType == MENU_TYPE_LISTVIEW) { tempkey = (KEY_VALUES)KEY_GetValue(COUNT(rect_of_keyListView), rect_of_keyListView); //for listview } - else if(menuType == MENU_TYPE_OTHER) + else if (menuType == MENU_TYPE_OTHER) { if ((KEY_VALUES)KEY_GetValue(1, rect_of_titleBar) == 0) tempkey = KEY_TITLEBAR; else - return(KEY_VALUES)KEY_GetValue(curRectCount, curRect); + return (KEY_VALUES)KEY_GetValue(curRectCount, curRect); } - else if(menuType == MENU_TYPE_FULLSCREEN) + else if (menuType == MENU_TYPE_FULLSCREEN) { return tempkey = (KEY_VALUES)KEY_GetValue(curRectCount, curRect); } @@ -679,66 +683,73 @@ KEY_VALUES menuKeyGetValue(void) //Get the top left point of the corresponding icon position) GUI_POINT getIconStartPoint(int index) { - GUI_POINT p = {curRect[index].x0,curRect[index].y0}; + GUI_POINT p = {curRect[index].x0, curRect[index].y0}; return p; } void loopBackEnd(void) { - getGcodeFromFile(); //Get Gcode command from the file to be printed + getGcodeFromFile(); //Get Gcode command from the file to be printed - sendQueueCmd(); //Parse and send Gcode commands in the queue + sendQueueCmd(); //Parse and send Gcode commands in the queue - parseACK(); //Parse the received slave response information + parseACK(); //Parse the received slave response information - parseRcvGcode(); //Parse the received Gcode from other UART, such as: ESP3D, etc... + parseRcvGcode(); //Parse the received Gcode from other UART, such as: ESP3D, etc... - loopCheckHeater(); //Temperature monitor + loopCheckHeater(); //Temperature monitor - loopFan(); //Fan speed monitor + loopFan(); //Fan speed monitor - loopSpeed(); //Speed & flow monitor + loopSpeed(); //Speed & flow monitor - #ifdef BUZZER_PIN - loopBuzzer(); - #endif +#ifdef BUZZER_PIN + loopBuzzer(); +#endif - if(infoMachineSettings.onboard_sd_support == ENABLED) + if (infoMachineSettings.onboard_sd_support == ENABLED) { loopCheckPrinting(); //Check if there is a SD or USB print running. } - #ifdef U_DISK_SUPPORT - USBH_Process(&USB_OTG_Core, &USB_Host); - #endif +#ifdef U_DISK_SUPPORT + USBH_Process(&USB_OTG_Core, &USB_Host); +#endif - #if LCD_ENCODER_SUPPORT - #if defined(ST7920_SPI) || defined(LCD2004_simulator) - if(infoMenu.menu[infoMenu.cur] != menuMarlinMode) - #endif - { - loopCheckEncoderSteps(); //check change in encoder steps - } - #endif +#if LCD_ENCODER_SUPPORT +#if defined(ST7920_SPI) || defined(LCD2004_simulator) + if (infoMenu.menu[infoMenu.cur] != menuMarlinMode) +#endif + { + loopCheckEncoderSteps(); //check change in encoder steps + } +#endif - #if defined(ST7920_SPI) || defined(LCD2004_simulator) - loopCheckMode(); - #endif +#if defined(ST7920_SPI) || defined(LCD2004_simulator) + loopCheckMode(); +#endif - #ifdef FIL_RUNOUT_PIN - loopBackEndFILRunoutDetect(); - #endif +#ifdef FIL_RUNOUT_PIN + loopBackEndFILRunoutDetect(); +#endif - #ifdef LCD_LED_PWM_CHANNEL - loopDimTimer(); - #endif +#ifdef LCD_LED_PWM_CHANNEL + loopDimTimer(); +#endif - if(infoSettings.sequential_mode) + if (infoSettings.sequential_mode) { setSequentialModeColor(); } - if(infoMachineSettings.caseLightsBrightness == ENABLED) +#if preheatNotification + volatile preheatNotification; + if (infoMenu.menu[infoMenu.cur] == menuPreheat &&) + { + } +#endif + + if (infoMachineSettings.caseLightsBrightness == ENABLED) { loopCaseLight(); } @@ -747,15 +758,15 @@ void loopBackEnd(void) void loopFrontEnd(void) { - loopVolumeSource(); //Check if volume source(SD/U disk) insert + loopVolumeSource(); //Check if volume source(SD/U disk) insert loopToast(); - loopReminderClear(); //If there is a message in the status bar, timed clear + loopReminderClear(); //If there is a message in the status bar, timed clear loopVolumeReminderClear(); - loopBusySignClear(); //Busy Indicator clear + loopBusySignClear(); //Busy Indicator clear loopTemperatureStatus(); diff --git a/TFT/src/User/API/parseACK.c b/TFT/src/User/API/parseACK.c index f1cafbe434..70c82a5a3f 100644 --- a/TFT/src/User/API/parseACK.c +++ b/TFT/src/User/API/parseACK.c @@ -52,7 +52,7 @@ static char ack_seen(const char *str) { for(i=0; str[i]!=0 && dmaL2Cache[ack_index+i]!=0 && dmaL2Cache[ack_index+i]==str[i]; i++) {} - if(str[i]==0) + if (str[i]==0) { ack_index += i; return true; @@ -66,10 +66,10 @@ static char ack_cmp(const char *str) u16 i; for(i=0; i Saving RAM +#define MAXCOLD_TEMP 50 +#define DEFAULT_COLDTEMP 25 + uint8_t prevPixelColor = 0; uint8_t waitForNext = 0; bool heatingDone = false; bool finishedPrint = false; #ifdef LED_COLOR_PIN - #ifdef LCD_LED_PWM_CHANNEL - bool idle_ledmode_previous = false; - #endif +#ifdef LCD_LED_PWM_CHANNEL +bool idle_ledmode_previous = false; +#endif #endif +uint16_t coldTemperature = 0; -void setSequentialModeColor(void) { +void setSequentialModeColor(void) +{ if (waitForNext > 0) { waitForNext--; @@ -21,10 +24,37 @@ void setSequentialModeColor(void) { } // Set the waitForNext to a certain number to prevent that this function is // executes a lot - // This means that after X cycles it will be back in this function + // This means that after 'X' cycles it will be back in this function waitForNext = 200; - if (!isPrinting()) { + //Let's estimate the room temperature + if (coldTemperature == 0) + { + uint16_t hotendCurrentTemp = heatGetCurrentTemp(0); + uint16_t bedCurrentTemp = heatGetCurrentTemp(BED); + uint8_t divider = 0; + if (hotendCurrentTemp < MAXCOLD_TEMP) + { + coldTemperature = hotendCurrentTemp; + divider++; + } + if (bedCurrentTemp < MAXCOLD_TEMP) + { + coldTemperature = bedCurrentTemp; + divider++; + } + if (coldTemperature == 0) + { + coldTemperature = DEFAULT_COLDTEMP; + } + else + { + coldTemperature = coldTemperature / divider; + } + } + + if (!isPrinting()) + { // Not printing/ // Check if the previous color has been set. // If not, return to reduce cycletime @@ -39,17 +69,18 @@ void setSequentialModeColor(void) { //Reset flag heating done heatingDone = false; - if (infoMenu.menu[infoMenu.cur] != menuPrinting) { - #ifdef LED_COLOR_PIN - #ifdef LCD_LED_PWM_CHANNEL - //Make sure that the knob_led_idle is back in business - if(idle_ledmode_previous) - { - idle_ledmode_previous = false; - infoSettings.knob_led_idle = 1; - } - #endif - #endif + if (infoMenu.menu[infoMenu.cur] != menuPrinting) + { +#ifdef LED_COLOR_PIN +#ifdef LCD_LED_PWM_CHANNEL + //Make sure that the knob_led_idle is back in business + if (idle_ledmode_previous) + { + idle_ledmode_previous = false; + infoSettings.knob_led_idle = 1; + } +#endif +#endif //Restore colors to default value prevPixelColor = 0; @@ -58,48 +89,48 @@ void setSequentialModeColor(void) { finishedPrint = false; //Turn off neopixels and set knob led back to default - storeCmd("M150 R0 U0 B0 P255\n"); + storeCmd("M150 R0 U0 B0 P0\n"); //set the screen to the max brightness //The encoder knob will get it's default color. + lcd_dim.dimmed = true; //Force dimmed mode wakeLCD(); return; } - if(finishedPrint) + if (finishedPrint) { // Print is already marked as ready. // No need to change the LED's again return; } - #ifdef LED_COLOR_PIN - #ifdef LCD_LED_PWM_CHANNEL - // set the knob_led_idle temperorly to OFF - if(infoSettings.knob_led_idle && !idle_ledmode_previous) - { - idle_ledmode_previous = true; - infoSettings.knob_led_idle = 0; //Temperory turn off led idle - } - #endif - #endif +#ifdef LED_COLOR_PIN +#ifdef LCD_LED_PWM_CHANNEL + // set the knob_led_idle temperorly to OFF + if (infoSettings.knob_led_idle && !idle_ledmode_previous) + { + idle_ledmode_previous = true; + infoSettings.knob_led_idle = 0; //Temperory turn off led idle + } +#endif +#endif //Set neopixel and ledknob to green storeCmd("M150 R0 U255 B0 P255\n"); - #ifdef LED_COLOR_PIN - WS2812_Send_DAT(LED_GREEN); - #endif +#ifdef LED_COLOR_PIN + WS2812_Send_DAT(LED_GREEN); +#endif finishedPrint = true; return; - } else { - if(heatingDone) + if (heatingDone) { return; //Go back when preheating is finished } @@ -110,19 +141,19 @@ void setSequentialModeColor(void) { if (hotendTargetTemp == 0 && bedTargetTemp == 0) { - return; //No temperature set "yet". Do nothing. + return; //No temperature set "yet". Do nothing. } - #ifdef LED_COLOR_PIN - #ifdef LCD_LED_PWM_CHANNEL - // set the knob_led_idle temperorly to OFF - if(infoSettings.knob_led_idle && !idle_ledmode_previous) - { - idle_ledmode_previous = true; - infoSettings.knob_led_idle = 0; //Temperory turn off led idle - } - #endif - #endif +#ifdef LED_COLOR_PIN +#ifdef LCD_LED_PWM_CHANNEL + // set the knob_led_idle temperorly to OFF + if (infoSettings.knob_led_idle && !idle_ledmode_previous) + { + idle_ledmode_previous = true; + infoSettings.knob_led_idle = 0; //Temperory turn off led idle + } +#endif +#endif //Store current temperature values to reduce cycle time uint16_t hotendCurrentTemp = heatGetCurrentTemp(0); @@ -136,17 +167,17 @@ void setSequentialModeColor(void) { //Bed and hotend are on temperature. Set neopixel to white storeCmd("M150 R255 U255 B255 P255\n"); - //Restore the encoder to the previous state - #ifdef LED_COLOR_PIN - #ifdef LCD_LED_PWM_CHANNEL - //Set the knob_led_idle on again - if(idle_ledmode_previous) - { - idle_ledmode_previous = false; - infoSettings.knob_led_idle = 1; - } - #endif - #endif +//Restore the encoder to the previous state +#ifdef LED_COLOR_PIN +#ifdef LCD_LED_PWM_CHANNEL + //Set the knob_led_idle on again + if (idle_ledmode_previous) + { + idle_ledmode_previous = false; + infoSettings.knob_led_idle = 1; + } +#endif +#endif //set the screen to the max brightness //The encoder knob will get it's default color. @@ -163,17 +194,17 @@ void setSequentialModeColor(void) { { //Only use total temperature when hotend and bed heat up at the same time uint16_t totalTemperature = hotendTargetTemp + bedTargetTemp; - newLedValue = map(hotendCurrentTemp + bedCurrentTemp, 0, totalTemperature, 0, 255); + newLedValue = map(hotendCurrentTemp + bedCurrentTemp, coldTemperature, totalTemperature, 0, 255); } else { if (hotendTargetTemp == 0) { - newLedValue = map(bedCurrentTemp, 0, bedTargetTemp, 0, 125); + newLedValue = map(bedCurrentTemp, coldTemperature, bedTargetTemp, 0, 125); } else { - newLedValue = map(hotendCurrentTemp, 0, hotendTargetTemp, 125, 255); + newLedValue = map(hotendCurrentTemp, coldTemperature, hotendTargetTemp, 125, 255); } } @@ -187,20 +218,20 @@ void setSequentialModeColor(void) { // Set the neopixel color storeCmd("M150 R%i U0 B%i P255\n", newLedValue, 255 - newLedValue); - #ifdef LED_COLOR_PIN - uint32_t newPixelColor = 0; - newPixelColor |= (uint32_t)(newLedValue) << 8; - newPixelColor |= (uint32_t)(255 - newLedValue); - - //WEG - //char tempstr[60]; - //sprintf(tempstr, "NEW %i | R:%i B:%i | LV: %i", newPixelColor, colorRed, colorBlue, newLedValue); - //GUI_DispString(100, 0, (u8 *)tempstr); - //END WEG - - //Color the Knob led when available - WS2812_Send_DAT(newPixelColor); - #endif +#ifdef LED_COLOR_PIN + uint32_t newPixelColor = 0; + newPixelColor |= (uint32_t)(newLedValue) << 8; + newPixelColor |= (uint32_t)(255 - newLedValue); + + //WEG + //char tempstr[60]; + //sprintf(tempstr, "NEW %i | R:%i B:%i | LV: %i", newPixelColor, colorRed, colorBlue, newLedValue); + //GUI_DispString(100, 0, (u8 *)tempstr); + //END WEG + + //Color the Knob led when available + WS2812_Send_DAT(newPixelColor); +#endif prevPixelColor = newLedValue; return; diff --git a/TFT/src/User/Fatfs/diskio.c b/TFT/src/User/Fatfs/diskio.c index 29e09c317e..3b7244c3aa 100644 --- a/TFT/src/User/Fatfs/diskio.c +++ b/TFT/src/User/Fatfs/diskio.c @@ -101,7 +101,7 @@ DRESULT disk_read ( return RES_OK; case DEV_USB : - if(USBH_UDISK_Read(buff, sector, count) == 0) + if (USBH_UDISK_Read(buff, sector, count) == 0) return RES_OK; else return RES_ERROR; @@ -138,7 +138,7 @@ DRESULT disk_write ( return RES_OK; case DEV_USB : - if(USBH_UDISK_Write((u8*)buff, sector, count) == 0) + if (USBH_UDISK_Write((u8*)buff, sector, count) == 0) return RES_OK; else return RES_ERROR; diff --git a/TFT/src/User/Fatfs/myfatfs.c b/TFT/src/User/Fatfs/myfatfs.c index fd85197e1b..917887ca8e 100644 --- a/TFT/src/User/Fatfs/myfatfs.c +++ b/TFT/src/User/Fatfs/myfatfs.c @@ -114,13 +114,13 @@ bool Get_NewestGcode(const TCHAR* path) len=strlen(path); while (f_readdir(&dirs, &finfo) == FR_OK) { - if(finfo.fname[0]==0) break; - if((finfo.fattrib&AM_HID) != 0) continue; + if (finfo.fname[0]==0) break; + if ((finfo.fattrib&AM_HID) != 0) continue; - if((finfo.fattrib&AM_DIR) == AM_DIR) + if ((finfo.fattrib&AM_DIR) == AM_DIR) { char *nextdirpath = malloc(len+strlen(finfo.fname)+2); - if(nextdirpath==NULL) break; + if (nextdirpath==NULL) break; strcpy(nextdirpath, path); strcat(nextdirpath,"/"); @@ -132,13 +132,13 @@ bool Get_NewestGcode(const TCHAR* path) } else { - if(strstr(finfo.fname,".gcode")==NULL) continue; - if(((finfo.fdate <<16)|finfo.ftime) < date) continue; + if (strstr(finfo.fname,".gcode")==NULL) continue; + if (((finfo.fdate <<16)|finfo.ftime) < date) continue; date=(finfo.fdate <<16)|finfo.ftime; resetInfoFile(); - if(len+strlen(finfo.fname)+2>MAX_PATH_LEN) break; + if (len+strlen(finfo.fname)+2>MAX_PATH_LEN) break; strcpy(infoFile.title,path); strcat(infoFile.title,"/"); diff --git a/TFT/src/User/Hal/LCD_Init.c b/TFT/src/User/Hal/LCD_Init.c index 5bb16c4ac7..ce5485b5b7 100644 --- a/TFT/src/User/Hal/LCD_Init.c +++ b/TFT/src/User/Hal/LCD_Init.c @@ -80,7 +80,7 @@ void loopDimTimer(void) lcd_dim.dimmed = false; Set_LCD_Brightness(LCD_BRIGHTNESS[infoSettings.lcd_brightness]); #ifdef LED_COLOR_PIN - if(infoSettings.knob_led_idle) + if (infoSettings.knob_led_idle) { WS2812_Send_DAT(led_color[infoSettings.knob_led_color]); } @@ -100,7 +100,7 @@ void loopDimTimer(void) lcd_dim.dimmed = true; Set_LCD_Brightness(LCD_BRIGHTNESS[infoSettings.lcd_idle_brightness]); #ifdef LED_COLOR_PIN - if(infoSettings.knob_led_idle) + if (infoSettings.knob_led_idle) { WS2812_Send_DAT(led_color[LED_OFF]); } @@ -119,7 +119,7 @@ void _wakeLCD(void) lcd_dim.dimmed = false; Set_LCD_Brightness(LCD_BRIGHTNESS[infoSettings.lcd_brightness]); #ifdef LED_COLOR_PIN - if(infoSettings.knob_led_idle) + if (infoSettings.knob_led_idle) { WS2812_Send_DAT(led_color[infoSettings.knob_led_color]); } diff --git a/TFT/src/User/Hal/STM32_USB_HOST_Library/Class/MSC/src/usbh_msc_bot.c b/TFT/src/User/Hal/STM32_USB_HOST_Library/Class/MSC/src/usbh_msc_bot.c index 7630551bd1..6984b6bc9a 100644 --- a/TFT/src/User/Hal/STM32_USB_HOST_Library/Class/MSC/src/usbh_msc_bot.c +++ b/TFT/src/User/Hal/STM32_USB_HOST_Library/Class/MSC/src/usbh_msc_bot.c @@ -125,7 +125,7 @@ USBH_BOTXfer_TypeDef USBH_MSC_BOTXferParam; */ void USBH_MSC_Init(USB_OTG_CORE_HANDLE *pdev ) { - if(HCD_IsDeviceConnected(pdev)) + if (HCD_IsDeviceConnected(pdev)) { USBH_MSC_CBWData.field.CBWSignature = USBH_MSC_BOT_CBW_SIGNATURE; USBH_MSC_CBWData.field.CBWTag = USBH_MSC_BOT_CBW_TAG; @@ -155,7 +155,7 @@ void USBH_MSC_HandleBOTXfer (USB_OTG_CORE_HANDLE *pdev ,USBH_HOST *phost) URB_STATE URB_Status = URB_IDLE; - if(HCD_IsDeviceConnected(pdev)) + if (HCD_IsDeviceConnected(pdev)) { switch (USBH_MSC_BOTXferParam.BOTState) @@ -175,7 +175,7 @@ void USBH_MSC_HandleBOTXfer (USB_OTG_CORE_HANDLE *pdev ,USBH_HOST *phost) case USBH_MSC_SENT_CBW: URB_Status = HCD_GetURB_State(pdev , MSC_Machine.hc_num_out); - if(URB_Status == URB_DONE) + if (URB_Status == URB_DONE) { BOTStallErrorCount = 0; USBH_MSC_BOTXferParam.BOTStateBkp = USBH_MSC_SENT_CBW; @@ -208,16 +208,16 @@ void USBH_MSC_HandleBOTXfer (USB_OTG_CORE_HANDLE *pdev ,USBH_HOST *phost) } } - else if(URB_Status == URB_NOTREADY) + else if (URB_Status == URB_NOTREADY) { USBH_MSC_BOTXferParam.BOTState = USBH_MSC_BOTXferParam.BOTStateBkp; } - else if(URB_Status == URB_STALL) + else if (URB_Status == URB_STALL) { error_direction = USBH_MSC_DIR_OUT; USBH_MSC_BOTXferParam.BOTState = USBH_MSC_BOT_ERROR_OUT; } - else if(URB_Status == URB_ERROR) + else if (URB_Status == URB_ERROR) { xfer_error_count++; @@ -239,12 +239,12 @@ void USBH_MSC_HandleBOTXfer (USB_OTG_CORE_HANDLE *pdev ,USBH_HOST *phost) URB_Status = HCD_GetURB_State(pdev , MSC_Machine.hc_num_in); /* BOT DATA IN stage */ - if((URB_Status == URB_DONE) ||(USBH_MSC_BOTXferParam.BOTStateBkp != USBH_MSC_BOT_DATAIN_STATE)) + if ((URB_Status == URB_DONE) ||(USBH_MSC_BOTXferParam.BOTStateBkp != USBH_MSC_BOT_DATAIN_STATE)) { BOTStallErrorCount = 0; USBH_MSC_BOTXferParam.BOTStateBkp = USBH_MSC_BOT_DATAIN_STATE; - if(remainingDataLength > MSC_Machine.MSBulkInEpSize) + if (remainingDataLength > MSC_Machine.MSBulkInEpSize) { USBH_BulkReceiveData (pdev, datapointer, @@ -269,7 +269,7 @@ void USBH_MSC_HandleBOTXfer (USB_OTG_CORE_HANDLE *pdev ,USBH_HOST *phost) remainingDataLength = 0; /* Reset this value and keep in same state */ } } - else if(URB_Status == URB_STALL) + else if (URB_Status == URB_STALL) { /* This is Data Stage STALL Condition */ @@ -290,7 +290,7 @@ void USBH_MSC_HandleBOTXfer (USB_OTG_CORE_HANDLE *pdev ,USBH_HOST *phost) } - else if(URB_Status == URB_ERROR) + else if (URB_Status == URB_ERROR) { xfer_error_count++; @@ -310,11 +310,11 @@ void USBH_MSC_HandleBOTXfer (USB_OTG_CORE_HANDLE *pdev ,USBH_HOST *phost) case USBH_MSC_BOT_DATAOUT_STATE: /* BOT DATA OUT stage */ URB_Status = HCD_GetURB_State(pdev , MSC_Machine.hc_num_out); - if(URB_Status == URB_DONE) + if (URB_Status == URB_DONE) { BOTStallErrorCount = 0; USBH_MSC_BOTXferParam.BOTStateBkp = USBH_MSC_BOT_DATAOUT_STATE; - if(remainingDataLength > MSC_Machine.MSBulkOutEpSize) + if (remainingDataLength > MSC_Machine.MSBulkOutEpSize) { USBH_BulkSendData (pdev, datapointer, @@ -342,9 +342,9 @@ void USBH_MSC_HandleBOTXfer (USB_OTG_CORE_HANDLE *pdev ,USBH_HOST *phost) } } - else if(URB_Status == URB_NOTREADY) + else if (URB_Status == URB_NOTREADY) { - if(datapointer != datapointer_prev) + if (datapointer != datapointer_prev) { USBH_BulkSendData (pdev, (datapointer - MSC_Machine.MSBulkOutEpSize), @@ -360,7 +360,7 @@ void USBH_MSC_HandleBOTXfer (USB_OTG_CORE_HANDLE *pdev ,USBH_HOST *phost) } } - else if(URB_Status == URB_STALL) + else if (URB_Status == URB_STALL) { error_direction = USBH_MSC_DIR_OUT; USBH_MSC_BOTXferParam.BOTState = USBH_MSC_BOT_ERROR_OUT; @@ -381,7 +381,7 @@ void USBH_MSC_HandleBOTXfer (USB_OTG_CORE_HANDLE *pdev ,USBH_HOST *phost) USBH_MSC_BOTXferParam.BOTStateBkp = USBH_MSC_RECEIVE_CSW_STATE; } - else if(URB_Status == URB_ERROR) + else if (URB_Status == URB_ERROR) { xfer_error_count++; @@ -426,7 +426,7 @@ void USBH_MSC_HandleBOTXfer (USB_OTG_CORE_HANDLE *pdev ,USBH_HOST *phost) case USBH_MSC_DECODE_CSW: URB_Status = HCD_GetURB_State(pdev , MSC_Machine.hc_num_in); /* Decode CSW */ - if(URB_Status == URB_DONE) + if (URB_Status == URB_DONE) { BOTStallErrorCount = 0; USBH_MSC_BOTXferParam.BOTStateBkp = USBH_MSC_RECEIVE_CSW_STATE; @@ -435,13 +435,13 @@ void USBH_MSC_HandleBOTXfer (USB_OTG_CORE_HANDLE *pdev ,USBH_HOST *phost) USBH_MSC_BOTXferParam.BOTXferStatus = USBH_MSC_DecodeCSW(pdev , phost); } - else if(URB_Status == URB_STALL) + else if (URB_Status == URB_STALL) { error_direction = USBH_MSC_DIR_IN; USBH_MSC_BOTXferParam.BOTState = USBH_MSC_BOT_ERROR_IN; } - else if(URB_Status == URB_ERROR) + else if (URB_Status == URB_ERROR) { xfer_error_count++; @@ -566,12 +566,12 @@ uint8_t USBH_MSC_DecodeCSW(USB_OTG_CORE_HANDLE *pdev , USBH_HOST *phost) uint32_t dataXferCount = 0; status = USBH_MSC_FAIL; - if(HCD_IsDeviceConnected(pdev)) + if (HCD_IsDeviceConnected(pdev)) { /*Checking if the transfer length is different than 13*/ dataXferCount = HCD_GetXferCnt(pdev, MSC_Machine.hc_num_in); - if(dataXferCount != USBH_MSC_CSW_LENGTH) + if (dataXferCount != USBH_MSC_CSW_LENGTH) { /*(4) Hi > Dn (Host expects to receive data from the device, Device intends to transfer no data) @@ -589,15 +589,15 @@ uint8_t USBH_MSC_DecodeCSW(USB_OTG_CORE_HANDLE *pdev , USBH_HOST *phost) { /* CSW length is Correct */ /* Check validity of the CSW Signature and CSWStatus */ - if(USBH_MSC_CSWData.field.CSWSignature == USBH_MSC_BOT_CSW_SIGNATURE) + if (USBH_MSC_CSWData.field.CSWSignature == USBH_MSC_BOT_CSW_SIGNATURE) {/* Check Condition 1. dCSWSignature is equal to 53425355h */ - if(USBH_MSC_CSWData.field.CSWTag == USBH_MSC_CBWData.field.CBWTag) + if (USBH_MSC_CSWData.field.CSWTag == USBH_MSC_CBWData.field.CBWTag) { /* Check Condition 3. dCSWTag matches the dCBWTag from the corresponding CBW */ - if(USBH_MSC_CSWData.field.CSWStatus == USBH_MSC_OK) + if (USBH_MSC_CSWData.field.CSWStatus == USBH_MSC_OK) { /* Refer to USB Mass-Storage Class : BOT (www.usb.org) @@ -621,12 +621,12 @@ uint8_t USBH_MSC_DecodeCSW(USB_OTG_CORE_HANDLE *pdev , USBH_HOST *phost) status = USBH_MSC_OK; } - else if(USBH_MSC_CSWData.field.CSWStatus == USBH_MSC_FAIL) + else if (USBH_MSC_CSWData.field.CSWStatus == USBH_MSC_FAIL) { status = USBH_MSC_FAIL; } - else if(USBH_MSC_CSWData.field.CSWStatus == USBH_MSC_PHASE_ERROR) + else if (USBH_MSC_CSWData.field.CSWStatus == USBH_MSC_PHASE_ERROR) { /* Refer to USB Mass-Storage Class : BOT (www.usb.org) Section 6.7 diff --git a/TFT/src/User/Hal/STM32_USB_HOST_Library/Class/MSC/src/usbh_msc_core.c b/TFT/src/User/Hal/STM32_USB_HOST_Library/Class/MSC/src/usbh_msc_core.c index edeebd6059..c44e8b47c4 100644 --- a/TFT/src/User/Hal/STM32_USB_HOST_Library/Class/MSC/src/usbh_msc_core.c +++ b/TFT/src/User/Hal/STM32_USB_HOST_Library/Class/MSC/src/usbh_msc_core.c @@ -167,10 +167,10 @@ static USBH_Status USBH_MSC_InterfaceInit ( USB_OTG_CORE_HANDLE *pdev, { USBH_HOST *pphost = phost; - if((pphost->device_prop.Itf_Desc[0].bInterfaceClass == MSC_CLASS) && \ + if ((pphost->device_prop.Itf_Desc[0].bInterfaceClass == MSC_CLASS) && \ (pphost->device_prop.Itf_Desc[0].bInterfaceProtocol == MSC_PROTOCOL)) { - if(pphost->device_prop.Ep_Desc[0][0].bEndpointAddress & 0x80) + if (pphost->device_prop.Ep_Desc[0][0].bEndpointAddress & 0x80) { MSC_Machine.MSBulkInEp = (pphost->device_prop.Ep_Desc[0][0].bEndpointAddress); MSC_Machine.MSBulkInEpSize = pphost->device_prop.Ep_Desc[0][0].wMaxPacketSize; @@ -181,7 +181,7 @@ static USBH_Status USBH_MSC_InterfaceInit ( USB_OTG_CORE_HANDLE *pdev, MSC_Machine.MSBulkOutEpSize = pphost->device_prop.Ep_Desc[0] [0].wMaxPacketSize; } - if(pphost->device_prop.Ep_Desc[0][1].bEndpointAddress & 0x80) + if (pphost->device_prop.Ep_Desc[0][1].bEndpointAddress & 0x80) { MSC_Machine.MSBulkInEp = (pphost->device_prop.Ep_Desc[0][1].bEndpointAddress); MSC_Machine.MSBulkInEpSize = pphost->device_prop.Ep_Desc[0][1].wMaxPacketSize; @@ -330,7 +330,7 @@ static USBH_Status USBH_MSC_Handle(USB_OTG_CORE_HANDLE *pdev , static uint8_t maxLunExceed = FALSE; - if(HCD_IsDeviceConnected(pdev)) + if (HCD_IsDeviceConnected(pdev)) { switch(USBH_MSC_BOTXferParam.MSCState) { @@ -344,12 +344,12 @@ static USBH_Status USBH_MSC_Handle(USB_OTG_CORE_HANDLE *pdev , /* Issue GetMaxLUN request */ status = USBH_MSC_GETMaxLUN(pdev, phost); - if(status == USBH_OK ) + if (status == USBH_OK ) { MSC_Machine.maxLun = *(MSC_Machine.buff) ; /* If device has more that one logical unit then it is not supported */ - if((MSC_Machine.maxLun > 0) && (maxLunExceed == FALSE)) + if ((MSC_Machine.maxLun > 0) && (maxLunExceed == FALSE)) { maxLunExceed = TRUE; pphost->usr_cb->DeviceNotSupported(); @@ -360,7 +360,7 @@ static USBH_Status USBH_MSC_Handle(USB_OTG_CORE_HANDLE *pdev , USBH_MSC_BOTXferParam.MSCState = USBH_MSC_TEST_UNIT_READY; } - if(status == USBH_NOT_SUPPORTED ) + if (status == USBH_NOT_SUPPORTED ) { /* If the Command has failed, then we need to move to Next State, after STALL condition is cleared by Control-Transfer */ @@ -376,7 +376,7 @@ static USBH_Status USBH_MSC_Handle(USB_OTG_CORE_HANDLE *pdev , phost, 0x00, pphost->Control.hc_num_out); - if(status == USBH_OK ) + if (status == USBH_OK ) { /* If GetMaxLun Request not support, assume Single LUN configuration */ MSC_Machine.maxLun = 0; @@ -389,7 +389,7 @@ static USBH_Status USBH_MSC_Handle(USB_OTG_CORE_HANDLE *pdev , /* Issue SCSI command TestUnitReady */ mscStatus = USBH_MSC_TestUnitReady(pdev); - if(mscStatus == USBH_MSC_OK ) + if (mscStatus == USBH_MSC_OK ) { USBH_MSC_BOTXferParam.MSCState = USBH_MSC_READ_CAPACITY10; MSCErrorCount = 0; @@ -404,7 +404,7 @@ MSCErrorCount = 0; case USBH_MSC_READ_CAPACITY10: /* Issue READ_CAPACITY10 SCSI command */ mscStatus = USBH_MSC_ReadCapacity10(pdev); - if(mscStatus == USBH_MSC_OK ) + if (mscStatus == USBH_MSC_OK ) { USBH_MSC_BOTXferParam.MSCState = USBH_MSC_MODE_SENSE6; MSCErrorCount = 0; @@ -419,7 +419,7 @@ MSCErrorCount = 0; case USBH_MSC_MODE_SENSE6: /* Issue ModeSense6 SCSI command for detecting if device is write-protected */ mscStatus = USBH_MSC_ModeSense6(pdev); - if(mscStatus == USBH_MSC_OK ) + if (mscStatus == USBH_MSC_OK ) { USBH_MSC_BOTXferParam.MSCState = USBH_MSC_DEFAULT_APPLI_STATE; MSCErrorCount = 0; @@ -439,7 +439,7 @@ MSCErrorCount = 0; case USBH_MSC_DEFAULT_APPLI_STATE: /* Process Application callback for MSC */ appliStatus = pphost->usr_cb->UserApplication(); - if(appliStatus == 0) + if (appliStatus == 0) { USBH_MSC_BOTXferParam.MSCState = USBH_MSC_DEFAULT_APPLI_STATE; } @@ -459,7 +459,7 @@ MSCErrorCount = 0; case USBH_MSC_REQUEST_SENSE: /* Issue RequestSense SCSI command for retrieving error code */ mscStatus = USBH_MSC_RequestSense(pdev); - if(mscStatus == USBH_MSC_OK ) + if (mscStatus == USBH_MSC_OK ) { USBH_MSC_BOTXferParam.MSCState = USBH_MSC_BOTXferParam.MSCStateBkp; status = USBH_OK; @@ -510,10 +510,10 @@ static USBH_Status USBH_MSC_GETMaxLUN(USB_OTG_CORE_HANDLE *pdev , USBH_HOST *pho void USBH_MSC_ErrorHandle(uint8_t status) { - if(status == USBH_MSC_FAIL) + if (status == USBH_MSC_FAIL) { MSCErrorCount++; - if(MSCErrorCount < USBH_MSC_ERROR_RETRY_LIMIT) + if (MSCErrorCount < USBH_MSC_ERROR_RETRY_LIMIT) { /* Try MSC level error recovery, Issue the request Sense to get Drive error reason */ USBH_MSC_BOTXferParam.MSCState = USBH_MSC_REQUEST_SENSE; @@ -525,12 +525,12 @@ void USBH_MSC_ErrorHandle(uint8_t status) USBH_MSC_BOTXferParam.MSCState = USBH_MSC_UNRECOVERED_STATE; } } - else if(status == USBH_MSC_PHASE_ERROR) + else if (status == USBH_MSC_PHASE_ERROR) { /* Phase error, Go to Unrecovered state */ USBH_MSC_BOTXferParam.MSCState = USBH_MSC_UNRECOVERED_STATE; } - else if(status == USBH_MSC_BUSY) + else if (status == USBH_MSC_BUSY) { /*No change in state*/ } diff --git a/TFT/src/User/Hal/STM32_USB_HOST_Library/Class/MSC/src/usbh_msc_scsi.c b/TFT/src/User/Hal/STM32_USB_HOST_Library/Class/MSC/src/usbh_msc_scsi.c index 4a4eebc084..409de92295 100644 --- a/TFT/src/User/Hal/STM32_USB_HOST_Library/Class/MSC/src/usbh_msc_scsi.c +++ b/TFT/src/User/Hal/STM32_USB_HOST_Library/Class/MSC/src/usbh_msc_scsi.c @@ -128,7 +128,7 @@ uint8_t USBH_MSC_TestUnitReady (USB_OTG_CORE_HANDLE *pdev) uint8_t index; USBH_MSC_Status_TypeDef status = USBH_MSC_BUSY; - if(HCD_IsDeviceConnected(pdev)) + if (HCD_IsDeviceConnected(pdev)) { switch(USBH_MSC_BOTXferParam.CmdStateMachine) { @@ -158,7 +158,7 @@ uint8_t USBH_MSC_TestUnitReady (USB_OTG_CORE_HANDLE *pdev) break; case CMD_WAIT_STATUS: - if(USBH_MSC_BOTXferParam.BOTXferStatus == USBH_MSC_OK) + if (USBH_MSC_BOTXferParam.BOTXferStatus == USBH_MSC_OK) { /* Commands successfully sent and Response Received */ USBH_MSC_BOTXferParam.CmdStateMachine = CMD_SEND_STATE; @@ -200,7 +200,7 @@ uint8_t USBH_MSC_ReadCapacity10(USB_OTG_CORE_HANDLE *pdev) uint8_t index; USBH_MSC_Status_TypeDef status = USBH_MSC_BUSY; - if(HCD_IsDeviceConnected(pdev)) + if (HCD_IsDeviceConnected(pdev)) { switch(USBH_MSC_BOTXferParam.CmdStateMachine) { @@ -231,7 +231,7 @@ uint8_t USBH_MSC_ReadCapacity10(USB_OTG_CORE_HANDLE *pdev) break; case CMD_WAIT_STATUS: - if(USBH_MSC_BOTXferParam.BOTXferStatus == USBH_MSC_OK) + if (USBH_MSC_BOTXferParam.BOTXferStatus == USBH_MSC_OK) { /*assign the capacity*/ (((uint8_t*)&USBH_MSC_Param.MSCapacity )[3]) = USBH_DataInBuffer[0]; @@ -286,7 +286,7 @@ uint8_t USBH_MSC_ModeSense6(USB_OTG_CORE_HANDLE *pdev) uint8_t index; USBH_MSC_Status_TypeDef status = USBH_MSC_BUSY; - if(HCD_IsDeviceConnected(pdev)) + if (HCD_IsDeviceConnected(pdev)) { switch(USBH_MSC_BOTXferParam.CmdStateMachine) { @@ -322,7 +322,7 @@ uint8_t USBH_MSC_ModeSense6(USB_OTG_CORE_HANDLE *pdev) break; case CMD_WAIT_STATUS: - if(USBH_MSC_BOTXferParam.BOTXferStatus == USBH_MSC_OK) + if (USBH_MSC_BOTXferParam.BOTXferStatus == USBH_MSC_OK) { /* Assign the Write Protect status */ /* If WriteProtect = 0, Writing is allowed @@ -380,7 +380,7 @@ uint8_t USBH_MSC_RequestSense(USB_OTG_CORE_HANDLE *pdev) uint8_t index; - if(HCD_IsDeviceConnected(pdev)) + if (HCD_IsDeviceConnected(pdev)) { switch(USBH_MSC_BOTXferParam.CmdStateMachine) { @@ -418,7 +418,7 @@ uint8_t USBH_MSC_RequestSense(USB_OTG_CORE_HANDLE *pdev) case CMD_WAIT_STATUS: - if(USBH_MSC_BOTXferParam.BOTXferStatus == USBH_MSC_OK) + if (USBH_MSC_BOTXferParam.BOTXferStatus == USBH_MSC_OK) { /* Get Sense data*/ (((uint8_t*)&USBH_MSC_Param.MSSenseKey )[3]) = USBH_DataInBuffer[0]; @@ -477,7 +477,7 @@ uint8_t USBH_MSC_Write10(USB_OTG_CORE_HANDLE *pdev, USBH_MSC_Status_TypeDef status = USBH_MSC_BUSY; uint16_t nbOfPages; - if(HCD_IsDeviceConnected(pdev)) + if (HCD_IsDeviceConnected(pdev)) { switch(USBH_MSC_BOTXferParam.CmdStateMachine) { @@ -520,7 +520,7 @@ uint8_t USBH_MSC_Write10(USB_OTG_CORE_HANDLE *pdev, break; case CMD_WAIT_STATUS: - if(USBH_MSC_BOTXferParam.BOTXferStatus == USBH_MSC_OK) + if (USBH_MSC_BOTXferParam.BOTXferStatus == USBH_MSC_OK) { /* Commands successfully sent and Response Received */ USBH_MSC_BOTXferParam.CmdStateMachine = CMD_SEND_STATE; @@ -566,7 +566,7 @@ uint8_t USBH_MSC_Read10(USB_OTG_CORE_HANDLE *pdev, uint16_t nbOfPages; status = USBH_MSC_BUSY; - if(HCD_IsDeviceConnected(pdev)) + if (HCD_IsDeviceConnected(pdev)) { switch(USBH_MSC_BOTXferParam.CmdStateMachine) { @@ -613,7 +613,7 @@ uint8_t USBH_MSC_Read10(USB_OTG_CORE_HANDLE *pdev, case CMD_WAIT_STATUS: - if((USBH_MSC_BOTXferParam.BOTXferStatus == USBH_MSC_OK) && \ + if ((USBH_MSC_BOTXferParam.BOTXferStatus == USBH_MSC_OK) && \ (HCD_IsDeviceConnected(pdev))) { /* Commands successfully sent and Response Received */ diff --git a/TFT/src/User/Hal/STM32_USB_HOST_Library/Core/src/usbh_core.c b/TFT/src/User/Hal/STM32_USB_HOST_Library/Core/src/usbh_core.c index c7c4e12d54..cbb2608d07 100644 --- a/TFT/src/User/Hal/STM32_USB_HOST_Library/Core/src/usbh_core.c +++ b/TFT/src/User/Hal/STM32_USB_HOST_Library/Core/src/usbh_core.c @@ -258,7 +258,7 @@ void USBH_Process(USB_OTG_CORE_HANDLE *pdev , USBH_HOST *phost) /* check for Host port events */ if (((HCD_IsDeviceConnected(pdev) == 0)|| (HCD_IsPortEnabled(pdev) == 0))&& (phost->gState != HOST_IDLE)) { - if(phost->gState != HOST_DEV_DISCONNECTED) + if (phost->gState != HOST_DEV_DISCONNECTED) { phost->gState = HOST_DEV_DISCONNECTED; } @@ -347,7 +347,7 @@ void USBH_Process(USB_OTG_CORE_HANDLE *pdev , USBH_HOST *phost) /*The function should return user response true to move to class state */ if ( phost->usr_cb->UserInput() == USBH_USR_RESP_OK) { - if((phost->class_cb->Init(pdev, phost))\ + if ((phost->class_cb->Init(pdev, phost))\ == USBH_OK) { phost->gState = HOST_CLASS_REQUEST; @@ -359,7 +359,7 @@ void USBH_Process(USB_OTG_CORE_HANDLE *pdev , USBH_HOST *phost) /* process class standard control requests state machine */ status = phost->class_cb->Requests(pdev, phost); - if(status == USBH_OK) + if (status == USBH_OK) { phost->gState = HOST_CLASS; } @@ -455,7 +455,7 @@ void USBH_ErrorHandle(USBH_HOST *phost, USBH_Status errType) phost->gState = HOST_ERROR_STATE; } /* USB host restart requested from application layer */ - else if(errType == USBH_APPLY_DEINIT) + else if (errType == USBH_APPLY_DEINIT) { phost->gState = HOST_ERROR_STATE; /* user callback for initialization */ @@ -689,7 +689,7 @@ USBH_Status USBH_HandleControl (USB_OTG_CORE_HANDLE *pdev, USBH_HOST *phost) URB_Status = HCD_GetURB_State(pdev , phost->Control.hc_num_out); /* case SETUP packet sent successfully */ - if(URB_Status == URB_DONE) + if (URB_Status == URB_DONE) { direction = (phost->Control.setup.b.bmRequestType & USB_REQ_DIR_MASK); @@ -728,7 +728,7 @@ USBH_Status USBH_HandleControl (USB_OTG_CORE_HANDLE *pdev, USBH_HOST *phost) /* Set the delay timer to enable timeout for data stage completion */ phost->Control.timer = HCD_GetCurrentFrame(pdev); } - else if(URB_Status == URB_ERROR) + else if (URB_Status == URB_ERROR) { phost->Control.state = CTRL_ERROR; phost->Control.status = CTRL_XACTERR; @@ -840,12 +840,12 @@ USBH_Status USBH_HandleControl (USB_OTG_CORE_HANDLE *pdev, USBH_HOST *phost) phost->Control.state = CTRL_ERROR; } - else if((HCD_GetCurrentFrame(pdev)\ + else if ((HCD_GetCurrentFrame(pdev)\ - phost->Control.timer) > timeout) { phost->Control.state = CTRL_ERROR; } - else if(URB_Status == URB_STALL) + else if (URB_Status == URB_STALL) { /* Control transfers completed, Exit the State Machine */ phost->gState = phost->gStateBkp; diff --git a/TFT/src/User/Hal/STM32_USB_HOST_Library/Core/src/usbh_hcs.c b/TFT/src/User/Hal/STM32_USB_HOST_Library/Core/src/usbh_hcs.c index 1e348d3a9d..d6166021ff 100644 --- a/TFT/src/User/Hal/STM32_USB_HOST_Library/Core/src/usbh_hcs.c +++ b/TFT/src/User/Hal/STM32_USB_HOST_Library/Core/src/usbh_hcs.c @@ -110,7 +110,7 @@ uint8_t USBH_Open_Channel (USB_OTG_CORE_HANDLE *pdev, pdev->host.hc[hc_num].speed = speed; pdev->host.hc[hc_num].toggle_in = 0; pdev->host.hc[hc_num].toggle_out = 0; - if(speed == HPRT0_PRTSPD_HIGH_SPEED) + if (speed == HPRT0_PRTSPD_HIGH_SPEED) { pdev->host.hc[hc_num].do_ping = 1; } @@ -140,17 +140,17 @@ uint8_t USBH_Modify_Channel (USB_OTG_CORE_HANDLE *pdev, uint16_t mps) { - if(dev_address != 0) + if (dev_address != 0) { pdev->host.hc[hc_num].dev_addr = dev_address; } - if((pdev->host.hc[hc_num].max_packet != mps) && (mps != 0)) + if ((pdev->host.hc[hc_num].max_packet != mps) && (mps != 0)) { pdev->host.hc[hc_num].max_packet = mps; } - if((pdev->host.hc[hc_num].speed != speed ) && (speed != 0 )) + if ((pdev->host.hc[hc_num].speed != speed ) && (speed != 0 )) { pdev->host.hc[hc_num].speed = speed; } @@ -187,7 +187,7 @@ uint8_t USBH_Alloc_Channel (USB_OTG_CORE_HANDLE *pdev, uint8_t ep_addr) */ uint8_t USBH_Free_Channel (USB_OTG_CORE_HANDLE *pdev, uint8_t idx) { - if(idx < HC_MAX) + if (idx < HC_MAX) { pdev->host.channel[idx] &= HC_USED_MASK; } diff --git a/TFT/src/User/Hal/STM32_USB_HOST_Library/Core/src/usbh_ioreq.c b/TFT/src/User/Hal/STM32_USB_HOST_Library/Core/src/usbh_ioreq.c index 9420c93160..e66baa3d76 100644 --- a/TFT/src/User/Hal/STM32_USB_HOST_Library/Core/src/usbh_ioreq.c +++ b/TFT/src/User/Hal/STM32_USB_HOST_Library/Core/src/usbh_ioreq.c @@ -281,7 +281,7 @@ USBH_Status USBH_BulkReceiveData( USB_OTG_CORE_HANDLE *pdev, pdev->host.hc[hc_num].xfer_len = length; - if( pdev->host.hc[hc_num].toggle_in == 0) + if ( pdev->host.hc[hc_num].toggle_in == 0) { pdev->host.hc[hc_num].data_pid = HC_PID_DATA0; } @@ -316,7 +316,7 @@ USBH_Status USBH_InterruptReceiveData( USB_OTG_CORE_HANDLE *pdev, - if(pdev->host.hc[hc_num].toggle_in == 0) + if (pdev->host.hc[hc_num].toggle_in == 0) { pdev->host.hc[hc_num].data_pid = HC_PID_DATA0; } @@ -352,7 +352,7 @@ USBH_Status USBH_InterruptSendData( USB_OTG_CORE_HANDLE *pdev, pdev->host.hc[hc_num].xfer_buff = buff; pdev->host.hc[hc_num].xfer_len = length; - if(pdev->host.hc[hc_num].toggle_in == 0) + if (pdev->host.hc[hc_num].toggle_in == 0) { pdev->host.hc[hc_num].data_pid = HC_PID_DATA0; } diff --git a/TFT/src/User/Hal/STM32_USB_HOST_Library/Core/src/usbh_stdreq.c b/TFT/src/User/Hal/STM32_USB_HOST_Library/Core/src/usbh_stdreq.c index 060a6d8902..8bdcd79093 100644 --- a/TFT/src/User/Hal/STM32_USB_HOST_Library/Core/src/usbh_stdreq.c +++ b/TFT/src/User/Hal/STM32_USB_HOST_Library/Core/src/usbh_stdreq.c @@ -120,7 +120,7 @@ USBH_Status USBH_Get_DevDesc(USB_OTG_CORE_HANDLE *pdev, USBH_Status status; - if((status = USBH_GetDescriptor(pdev, + if ((status = USBH_GetDescriptor(pdev, phost, USB_REQ_RECIPIENT_DEVICE | USB_REQ_TYPE_STANDARD, USB_DESC_DEVICE, @@ -153,7 +153,7 @@ USBH_Status USBH_Get_CfgDesc(USB_OTG_CORE_HANDLE *pdev, USBH_Status status, result; uint16_t index = 0; - if((status = USBH_GetDescriptor(pdev, + if ((status = USBH_GetDescriptor(pdev, phost, USB_REQ_RECIPIENT_DEVICE | USB_REQ_TYPE_STANDARD, USB_DESC_CONFIGURATION, @@ -198,7 +198,7 @@ USBH_Status USBH_Get_StringDesc(USB_OTG_CORE_HANDLE *pdev, { USBH_Status status; - if((status = USBH_GetDescriptor(pdev, + if ((status = USBH_GetDescriptor(pdev, phost, USB_REQ_RECIPIENT_DEVICE | USB_REQ_TYPE_STANDARD, USB_DESC_STRING | string_index, @@ -481,13 +481,13 @@ USBH_Status USBH_ParseCfgDesc (USBH_CfgDesc_TypeDef* cfg_desc, { if_ix = *(((uint8_t *)pdesc ) + 2); pif = &itf_desc[if_ix]; - if((*((uint8_t *)pdesc + 3)) < 3) + if ((*((uint8_t *)pdesc + 3)) < 3) { USBH_ParseInterfaceDesc (&temp_pif, (uint8_t *)pdesc); ep_ix = 0; /* Parse Ep descriptors relative to the current interface */ - if(temp_pif.bNumEndpoints <= USBH_MAX_NUM_ENDPOINTS) + if (temp_pif.bNumEndpoints <= USBH_MAX_NUM_ENDPOINTS) { while (ep_ix < temp_pif.bNumEndpoints) { @@ -495,14 +495,14 @@ USBH_Status USBH_ParseCfgDesc (USBH_CfgDesc_TypeDef* cfg_desc, if (pdesc->bDescriptorType == USB_DESC_TYPE_ENDPOINT) { pep = &ep_desc[if_ix][ep_ix]; - if(prev_itf != if_ix) + if (prev_itf != if_ix) { prev_itf = if_ix; USBH_ParseInterfaceDesc (pif, (uint8_t *)&temp_pif); } else { - if(prev_ep_size > LE16((uint8_t *)pdesc + 4)) + if (prev_ep_size > LE16((uint8_t *)pdesc + 4)) { break; } diff --git a/TFT/src/User/Hal/STM32_USB_OTG_Driver/src/usb_core.c b/TFT/src/User/Hal/STM32_USB_OTG_Driver/src/usb_core.c index 63ff1d1e17..14974b213f 100644 --- a/TFT/src/User/Hal/STM32_USB_OTG_Driver/src/usb_core.c +++ b/TFT/src/User/Hal/STM32_USB_OTG_Driver/src/usb_core.c @@ -369,7 +369,7 @@ USB_OTG_STS USB_OTG_CoreInit(USB_OTG_CORE_HANDLE *pdev) /* Reset after a PHY select */ USB_OTG_CoreReset(pdev); - if(pdev->cfg.dma_enable == 1) + if (pdev->cfg.dma_enable == 1) { ahbcfg.b.hburstlen = 5; /* 64 x 32-bits*/ @@ -404,7 +404,7 @@ USB_OTG_STS USB_OTG_CoreInit(USB_OTG_CORE_HANDLE *pdev) #if defined (STM32F446xx) || defined (STM32F469_479xx) #else - if(pdev->cfg.Sof_output) + if (pdev->cfg.Sof_output) { gccfg.b.sofouten = 1; } @@ -414,7 +414,7 @@ USB_OTG_STS USB_OTG_CoreInit(USB_OTG_CORE_HANDLE *pdev) USB_OTG_BSP_mDelay(20); } /* case the HS core is working in FS mode */ - if(pdev->cfg.dma_enable == 1) + if (pdev->cfg.dma_enable == 1) { ahbcfg.d32 = USB_OTG_READ_REG32(&pdev->regs.GREGS->GAHBCFG); @@ -686,7 +686,7 @@ USB_OTG_STS USB_OTG_CoreInitHost(USB_OTG_CORE_HANDLE *pdev) /* Configure data FIFO sizes */ /* Rx FIFO */ #ifdef USB_OTG_FS_CORE - if(pdev->cfg.coreID == USB_OTG_FS_CORE_ID) + if (pdev->cfg.coreID == USB_OTG_FS_CORE_ID) { /* set Rx FIFO size */ USB_OTG_WRITE_REG32(&pdev->regs.GREGS->GRXFSIZ, RX_FIFO_FS_SIZE); @@ -1065,7 +1065,7 @@ USB_OTG_STS USB_OTG_HC_StartXfer(USB_OTG_CORE_HANDLE *pdev , uint8_t hc_num) if (pdev->cfg.dma_enable == 0) /* Slave mode */ { - if((pdev->host.hc[hc_num].ep_is_in == 0) && + if ((pdev->host.hc[hc_num].ep_is_in == 0) && (pdev->host.hc[hc_num].xfer_len > 0)) { switch(pdev->host.hc[hc_num].ep_type) @@ -1078,7 +1078,7 @@ USB_OTG_STS USB_OTG_HC_StartXfer(USB_OTG_CORE_HANDLE *pdev , uint8_t hc_num) len_words = (pdev->host.hc[hc_num].xfer_len + 3) / 4; /* check if there is enough space in FIFO space */ - if(len_words > hnptxsts.b.nptxfspcavail) + if (len_words > hnptxsts.b.nptxfspcavail) { /* need to process data in nptxfempty interrupt */ intmsk.b.nptxfempty = 1; @@ -1092,7 +1092,7 @@ USB_OTG_STS USB_OTG_HC_StartXfer(USB_OTG_CORE_HANDLE *pdev , uint8_t hc_num) hptxsts.d32 = USB_OTG_READ_REG32(&pdev->regs.HREGS->HPTXSTS); len_words = (pdev->host.hc[hc_num].xfer_len + 3) / 4; /* check if there is enough space in FIFO space */ - if(len_words > hptxsts.b.ptxfspcavail) /* split the transfer */ + if (len_words > hptxsts.b.ptxfspcavail) /* split the transfer */ { /* need to process data in ptxfempty interrupt */ intmsk.b.ptxfempty = 1; @@ -1258,7 +1258,7 @@ USB_OTG_STS USB_OTG_CoreInitDev (USB_OTG_CORE_HANDLE *pdev) USB_OTG_WRITE_REG32( &pdev->regs.DREGS->DCFG, dcfg.d32 ); #ifdef USB_OTG_FS_CORE - if(pdev->cfg.coreID == USB_OTG_FS_CORE_ID ) + if (pdev->cfg.coreID == USB_OTG_FS_CORE_ID ) { /* Set Full speed phy */ @@ -1292,12 +1292,12 @@ USB_OTG_STS USB_OTG_CoreInitDev (USB_OTG_CORE_HANDLE *pdev) } #endif #ifdef USB_OTG_HS_CORE - if(pdev->cfg.coreID == USB_OTG_HS_CORE_ID ) + if (pdev->cfg.coreID == USB_OTG_HS_CORE_ID ) { /* Set High speed phy */ - if(pdev->cfg.phy_itface == USB_OTG_ULPI_PHY) + if (pdev->cfg.phy_itface == USB_OTG_ULPI_PHY) { USB_OTG_InitDevSpeed (pdev , USB_OTG_SPEED_PARAM_HIGH); } @@ -1564,7 +1564,7 @@ USB_OTG_STS USB_OTG_EPActivate(USB_OTG_CORE_HANDLE *pdev , USB_OTG_EP *ep) } /* Enable the Interrupt for this EP */ #ifdef USB_OTG_HS_DEDICATED_EP1_ENABLED - if((ep->num == 1)&&(pdev->cfg.coreID == USB_OTG_HS_CORE_ID)) + if ((ep->num == 1)&&(pdev->cfg.coreID == USB_OTG_HS_CORE_ID)) { USB_OTG_MODIFY_REG32(&pdev->regs.DREGS->DEACHMSK, 0, daintmsk.d32); } @@ -2013,9 +2013,9 @@ void USB_OTG_ActiveRemoteWakeup(USB_OTG_CORE_HANDLE *pdev) if (pdev->dev.DevRemoteWakeup) { dsts.d32 = USB_OTG_READ_REG32(&pdev->regs.DREGS->DSTS); - if(dsts.b.suspsts == 1) + if (dsts.b.suspsts == 1) { - if(pdev->cfg.low_power) + if (pdev->cfg.low_power) { /* un-gate USB Core clock */ power.d32 = USB_OTG_READ_REG32(pdev->regs.PCGCCTL); @@ -2041,7 +2041,7 @@ void USB_OTG_ActiveRemoteWakeup(USB_OTG_CORE_HANDLE *pdev) */ void USB_OTG_UngateClock(USB_OTG_CORE_HANDLE *pdev) { - if(pdev->cfg.low_power) + if (pdev->cfg.low_power) { USB_OTG_DSTS_TypeDef dsts; @@ -2049,7 +2049,7 @@ void USB_OTG_UngateClock(USB_OTG_CORE_HANDLE *pdev) dsts.d32 = USB_OTG_READ_REG32(&pdev->regs.DREGS->DSTS); - if(dsts.b.suspsts == 1) + if (dsts.b.suspsts == 1) { /* un-gate USB Core clock */ power.d32 = USB_OTG_READ_REG32(pdev->regs.PCGCCTL); diff --git a/TFT/src/User/Hal/STM32_USB_OTG_Driver/src/usb_hcd_int.c b/TFT/src/User/Hal/STM32_USB_OTG_Driver/src/usb_hcd_int.c index 887ca35ae3..c41861dceb 100644 --- a/TFT/src/User/Hal/STM32_USB_OTG_Driver/src/usb_hcd_int.c +++ b/TFT/src/User/Hal/STM32_USB_OTG_Driver/src/usb_hcd_int.c @@ -406,7 +406,7 @@ static uint32_t USB_OTG_USBH_handle_port_ISR (USB_OTG_CORE_HANDLE *pdev) USB_OTG_WRITE_REG32(&pdev->regs.HREGS->HFIR, 6000 ); if (hcfg.b.fslspclksel != HCFG_6_MHZ) { - if(pdev->cfg.phy_itface == USB_OTG_EMBEDDED_PHY) + if (pdev->cfg.phy_itface == USB_OTG_EMBEDDED_PHY) { USB_OTG_InitFSLSPClkSel(pdev , HCFG_6_MHZ); } @@ -549,7 +549,7 @@ uint32_t USB_OTG_USBH_handle_hc_n_Out_ISR (USB_OTG_CORE_HANDLE *pdev , uint32_t { MASK_HOST_INT_CHH (num); - if(pdev->host.HC_Status[num] == HC_XFRC) + if (pdev->host.HC_Status[num] == HC_XFRC) { pdev->host.URB_State[num] = URB_DONE; @@ -558,23 +558,23 @@ uint32_t USB_OTG_USBH_handle_hc_n_Out_ISR (USB_OTG_CORE_HANDLE *pdev , uint32_t pdev->host.hc[num].toggle_out ^= 1; } } - else if(pdev->host.HC_Status[num] == HC_NAK) + else if (pdev->host.HC_Status[num] == HC_NAK) { pdev->host.URB_State[num] = URB_NOTREADY; } - else if(pdev->host.HC_Status[num] == HC_NYET) + else if (pdev->host.HC_Status[num] == HC_NYET) { - if(pdev->host.hc[num].do_ping == 1) + if (pdev->host.hc[num].do_ping == 1) { USB_OTG_HC_DoPing(pdev, num); } pdev->host.URB_State[num] = URB_NOTREADY; } - else if(pdev->host.HC_Status[num] == HC_STALL) + else if (pdev->host.HC_Status[num] == HC_STALL) { pdev->host.URB_State[num] = URB_STALL; } - else if(pdev->host.HC_Status[num] == HC_XACTERR) + else if (pdev->host.HC_Status[num] == HC_XACTERR) { { pdev->host.URB_State[num] = URB_ERROR; @@ -669,7 +669,7 @@ uint32_t USB_OTG_USBH_handle_hc_n_In_ISR (USB_OTG_CORE_HANDLE *pdev , uint32_t n pdev->host.hc[num].toggle_in ^= 1; } - else if(hcchar.b.eptype == EP_TYPE_INTR) + else if (hcchar.b.eptype == EP_TYPE_INTR) { hcchar.b.oddfrm = 1; USB_OTG_WRITE_REG32(&pdev->regs.HC_REGS[num]->HCCHAR, hcchar.d32); @@ -680,7 +680,7 @@ uint32_t USB_OTG_USBH_handle_hc_n_In_ISR (USB_OTG_CORE_HANDLE *pdev , uint32_t n { MASK_HOST_INT_CHH (num); - if(pdev->host.HC_Status[num] == HC_XFRC) + if (pdev->host.HC_Status[num] == HC_XFRC) { pdev->host.URB_State[num] = URB_DONE; } @@ -690,14 +690,14 @@ uint32_t USB_OTG_USBH_handle_hc_n_In_ISR (USB_OTG_CORE_HANDLE *pdev , uint32_t n pdev->host.URB_State[num] = URB_STALL; } - else if((pdev->host.HC_Status[num] == HC_XACTERR) || + else if ((pdev->host.HC_Status[num] == HC_XACTERR) || (pdev->host.HC_Status[num] == HC_DATATGLERR)) { pdev->host.ErrCnt[num] = 0; pdev->host.URB_State[num] = URB_ERROR; } - else if(hcchar.b.eptype == EP_TYPE_INTR) + else if (hcchar.b.eptype == EP_TYPE_INTR) { pdev->host.hc[num].toggle_in ^= 1; } @@ -714,7 +714,7 @@ uint32_t USB_OTG_USBH_handle_hc_n_In_ISR (USB_OTG_CORE_HANDLE *pdev , uint32_t n } else if (hcint.b.nak) { - if(hcchar.b.eptype == EP_TYPE_INTR) + if (hcchar.b.eptype == EP_TYPE_INTR) { UNMASK_HOST_INT_CHH (num); if (pdev->cfg.dma_enable == 0) @@ -785,7 +785,7 @@ static uint32_t USB_OTG_USBH_handle_rx_qlvl_ISR (USB_OTG_CORE_HANDLE *pdev) pdev->host.XferCnt[channelnum] = count; hctsiz.d32 = USB_OTG_READ_REG32(&pdev->regs.HC_REGS[channelnum]->HCTSIZ); - if(hctsiz.b.pktcnt > 0) + if (hctsiz.b.pktcnt > 0) { /* re-activate the channel when more packets are expected */ hcchar.b.chen = 1; diff --git a/TFT/src/User/Hal/buzzer.c b/TFT/src/User/Hal/buzzer.c index dd4d29b79f..0e775b44d3 100644 --- a/TFT/src/User/Hal/buzzer.c +++ b/TFT/src/User/Hal/buzzer.c @@ -76,15 +76,13 @@ void Buzzer_play(SOUND sound) switch (sound) { case sound_ok: - if (infoSettings.alertSound != 1) - break; + if (infoSettings.alertSound != 1) break; Buzzer_TurnOn(3500, 50); Buzzer_TurnOn(0, 40); Buzzer_TurnOn(5500, 50); break; case sound_success: - if (infoSettings.alertSound != 1) - break; + if (infoSettings.alertSound != 1) break; Buzzer_TurnOn(3500, 50); Buzzer_TurnOn(0, 50); Buzzer_TurnOn(3500, 50); @@ -92,15 +90,13 @@ void Buzzer_play(SOUND sound) Buzzer_TurnOn(3500, 50); break; case sound_cancel: - if (infoSettings.alertSound != 1) - break; + if (infoSettings.alertSound != 1) break; Buzzer_TurnOn(5500, 50); Buzzer_TurnOn(0, 20); Buzzer_TurnOn(3500, 40); break; case sound_notify: - if (infoSettings.alertSound != 1) - break; + if (infoSettings.alertSound != 1) break; Buzzer_TurnOn(3090, 50); Buzzer_TurnOn(0, 50); Buzzer_TurnOn(4190, 50); @@ -113,19 +109,23 @@ void Buzzer_play(SOUND sound) Buzzer_TurnOn(2200, 200); break; case sound_deny: - if (infoSettings.alertSound != 1) - break; + if (infoSettings.alertSound != 1) break; Buzzer_TurnOn(500, 10); case sound_toast: - if (infoSettings.toastSound != 1) - break; + if (infoSettings.toastSound != 1) break; Buzzer_TurnOn(1500, 30); Buzzer_TurnOn(2000, 30); break; + case sound_preheatDone: + if (infoSettings.preheatDoneSound != 1) break; + buzzer_TurnOn(2000,250); + buzzer_TurnOn(0, 50); + buzzer_TurnOn(1500, 100); + buzzer_TurnOn(4000, 2500); + break; case sound_keypress: default: - if (infoSettings.touchSound != 1) - break; + if (infoSettings.touchSound != 1) break; Buzzer_TurnOn(BUZZER_FREQUENCY_HZ, BUZZER_FREQUENCY_DURATION_MS); break; } @@ -151,7 +151,7 @@ void TIM3_IRQHandler(void) { if ((TIM3->SR & 0x01) != 0) { // update interrupt flag TIM3->SR = (uint16_t)~(1<<0); // clear interrupt flag if (toggles != 0) { - if(toggles > 0) toggles--; + if (toggles > 0) toggles--; GPIO_ToggleLevel(BUZZER_PIN); } else { TIM3->CR1 &= ~(0x01); // stop timer diff --git a/TFT/src/User/Hal/buzzer.h b/TFT/src/User/Hal/buzzer.h index acbf446b0a..3c9bd8829f 100644 --- a/TFT/src/User/Hal/buzzer.h +++ b/TFT/src/User/Hal/buzzer.h @@ -25,6 +25,7 @@ typedef enum sound_notify, sound_deny, sound_toast, + sound_preheatDone, sound_keypress, }SOUND; diff --git a/TFT/src/User/Hal/sd.c b/TFT/src/User/Hal/sd.c index cca42a0918..39fe99f12f 100644 --- a/TFT/src/User/Hal/sd.c +++ b/TFT/src/User/Hal/sd.c @@ -87,7 +87,7 @@ void SD_Cancel_CS(void) u8 SD_Select(void) { SD_SPI_CS_Set(0); - if(SD_Wait_Ready()==0)return 0;//Waiting for success + if (SD_Wait_Ready()==0) return 0;//Waiting for success SD_Cancel_CS(); return 1;//Wait for failure } @@ -102,7 +102,7 @@ u8 SD_Wait_Ready(void) u32 t=0; do { - if(SD_SPI_Read_Write_Byte(0XFF)==0XFF)return 0;//OK + if (SD_SPI_Read_Write_Byte(0XFF)==0XFF) return 0;//OK t++; }while(t<0XFFFFFF);//wait return 1; @@ -135,7 +135,7 @@ u8 SD_Get_Ack(u8 Response) ****************************************************************************************/ u8 SD_RecvData(u8*buf,u16 len) { - if(SD_Get_Ack(0xFE))return 1;//Wait for SD card to send back data start token 0xFE + if (SD_Get_Ack(0xFE)) return 1;//Wait for SD card to send back data start token 0xFE while(len--)//Start receiving data { *buf=SD_SPI_Read_Write_Byte(0xFF); @@ -158,16 +158,16 @@ u8 SD_RecvData(u8*buf,u16 len) u8 SD_Send_Data(u8*buf,u8 cmd) { u16 t; - if(SD_Wait_Ready()) return 1; //Waiting for preparation to fail + if (SD_Wait_Ready()) return 1; //Waiting for preparation to fail SD_SPI_Read_Write_Byte(cmd); - if(cmd!=0XFD)//Not an end instruction + if (cmd!=0XFD)//Not an end instruction { for(t=0;t<512;t++)SD_SPI_Read_Write_Byte(buf[t]); SD_SPI_Read_Write_Byte(0xFF); //Ignore crc SD_SPI_Read_Write_Byte(0xFF); t = SD_SPI_Read_Write_Byte(0xFF); //Receive response - if((t&0x1F) != 0x05)return 2; //Response error + if ((t&0x1F) != 0x05) return 2; //Response error } return 0;//Write success } @@ -186,7 +186,7 @@ u8 SD_SendCmd(u8 cmd, u32 arg, u8 crc) u8 r1; u8 Retry=0; SD_Cancel_CS(); //Cancel last selection - if(SD_Select()) return 0XFF;//Chip Select Failure + if (SD_Select()) return 0XFF;//Chip Select Failure //send SD_SPI_Read_Write_Byte(cmd | 0x40);//Write commands separately SD_SPI_Read_Write_Byte(arg >> 24); @@ -194,7 +194,7 @@ u8 SD_SendCmd(u8 cmd, u32 arg, u8 crc) SD_SPI_Read_Write_Byte(arg >> 8); SD_SPI_Read_Write_Byte(arg); SD_SPI_Read_Write_Byte(crc); - if(cmd==CMD12) SD_SPI_Read_Write_Byte(0xff);//Skip a stuff byte when stop reading + if (cmd==CMD12) SD_SPI_Read_Write_Byte(0xff);//Skip a stuff byte when stop reading //Waiting for a response, or exiting after a timeout Retry=0X1F; do @@ -217,12 +217,12 @@ u8 SD_GetCID(u8 *cid_data) u8 r1; //Send CMD10 command, read CID r1=SD_SendCmd(CMD10,0,0x01); - if(r1==0x00) + if (r1==0x00) { r1=SD_RecvData(cid_data,16);//Receive 16 bytes of data } SD_Cancel_CS();//Cancel film selection - if(r1) return 1; + if (r1) return 1; else return 0; } @@ -237,12 +237,12 @@ u8 SD_GetCSD(u8 *csd_data) { u8 r1; r1=SD_SendCmd(CMD9,0,0x01); //Send CMD9 command, read CSD - if(r1==0) + if (r1==0) { r1=SD_RecvData(csd_data, 16);//Receive 16 bytes of data } SD_Cancel_CS();//Cancel film selection - if(r1) return 1; + if (r1) return 1; else return 0; } @@ -259,8 +259,8 @@ u32 SD_Get_Sector_Count(void) u32 Capacity; u8 n; u16 csize; - if(SD_GetCSD(csd) != 0) return 0; //Get CSD information, if an error occurs during the period, return 0 - if((csd[0]&0xC0) == 0x40) //V2.00 card, if it is SDHC card, calculate it as follows + if (SD_GetCSD(csd) != 0) return 0; //Get CSD information, if an error occurs during the period, return 0 + if ((csd[0]&0xC0) == 0x40) //V2.00 card, if it is SDHC card, calculate it as follows { csize = csd[9] + ((u16)csd[8] << 8) + 1; Capacity = (u32)csize << 10;//Get the number of sectors @@ -296,12 +296,12 @@ u8 SD_Init(void) r1 = SD_SendCmd(CMD0,0,0x95);//Enter IDLE state }while((r1!=0X01) && retry--); SD_Type=0; // No card by default - if(r1==0X01) + if (r1==0X01) { - if(SD_SendCmd(CMD8,0x1AA,0x87)==1) //SD V2.0 + if (SD_SendCmd(CMD8,0x1AA,0x87)==1) //SD V2.0 { for(i=0;i<4;i++)buf[i]=SD_SPI_Read_Write_Byte(0XFF); //Get trailing return value of R7 resp - if(buf[2]==0X01&&buf[3]==0XAA) //Does the card support 2.7 ~ 3.6V + if (buf[2]==0X01&&buf[3]==0XAA) //Does the card support 2.7 ~ 3.6V { retry = 0XFFFE; do @@ -309,10 +309,10 @@ u8 SD_Init(void) SD_SendCmd(CMD55,0,0X01); //Send CMD55 r1 = SD_SendCmd(CMD41,0x40000000,0X01);//Send CMD41 }while(r1 && retry--); - if(retry&&SD_SendCmd(CMD58,0,0X01) == 0)//Identification of SD2.0 card version started + if (retry&&SD_SendCmd(CMD58,0,0X01) == 0)//Identification of SD2.0 card version started { for(i=0;i<4;i++)buf[i]=SD_SPI_Read_Write_Byte(0XFF);//Get OCR value - if(buf[0]&0x40)SD_Type=SD_TYPE_V2HC; //Check CCS + if (buf[0]&0x40)SD_Type=SD_TYPE_V2HC; //Check CCS else SD_Type=SD_TYPE_V2; } } @@ -321,7 +321,7 @@ u8 SD_Init(void) { SD_SendCmd(CMD55,0,0X01); //Send CMD55 r1 = SD_SendCmd(CMD41,0,0X01); //Send CMD41 - if(r1 <= 1) + if (r1 <= 1) { SD_Type = SD_TYPE_V1; retry = 0XFFFE; @@ -340,14 +340,14 @@ u8 SD_Init(void) r1 = SD_SendCmd(CMD1,0,0X01);//Send CMD1 }while(r1 && retry--); } - if(retry==0 || SD_SendCmd(CMD16,512,0X01)!=0) + if (retry==0 || SD_SendCmd(CMD16,512,0X01)!=0) SD_Type = SD_TYPE_ERR;//Wrong card } } SD_Cancel_CS(); //Cancel film selection SD_SetHighSpeed(); - if(SD_Type) return 0; - else if(r1) return r1; + if (SD_Type) return 0; + else if (r1) return r1; return 0xaa;//�������� } @@ -362,11 +362,11 @@ u8 SD_Init(void) u8 SD_ReadDisk(u8*buf,u32 sector,u8 cnt) //Read SD card, fatfs / usb calls x { u8 r1; - if(SD_Type != SD_TYPE_V2HC) sector <<= 9;//Translate to byte address - if(cnt == 1) + if (SD_Type != SD_TYPE_V2HC) sector <<= 9;//Translate to byte address + if (cnt == 1) { r1 = SD_SendCmd(CMD17, sector, 0X01);//Read command - if(r1 == 0) //Instruction sent successfully + if (r1 == 0) //Instruction sent successfully { r1 = SD_RecvData(buf,512); //Receive 512 bytes } @@ -394,23 +394,23 @@ u8 SD_ReadDisk(u8*buf,u32 sector,u8 cnt) //Read SD card, fatfs / usb calls x u8 SD_WriteDisk(u8*buf,u32 sector,u8 cnt) //Write SD card, fatfs / usb call { u8 r1; - if(SD_Type!=SD_TYPE_V2HC) sector *= 512;//Translate to byte address - if(cnt == 1) + if (SD_Type!=SD_TYPE_V2HC) sector *= 512;//Translate to byte address + if (cnt == 1) { r1 = SD_SendCmd(CMD24, sector, 0X01);//Read command - if(r1 == 0)//Instruction sent successfully + if (r1 == 0)//Instruction sent successfully { r1 = SD_Send_Data(buf, 0xFE);//Write 512 bytes } }else { - if(SD_Type != SD_TYPE_MMC) + if (SD_Type != SD_TYPE_MMC) { SD_SendCmd(CMD55, 0, 0X01); SD_SendCmd(CMD23, cnt, 0X01);//Send instruction } r1 = SD_SendCmd(CMD25, sector, 0X01);//Continuous read command - if(r1 == 0) + if (r1 == 0) { do { diff --git a/TFT/src/User/Hal/stm32f10x/GPIO_Init.c b/TFT/src/User/Hal/stm32f10x/GPIO_Init.c index bead1bad52..3fc2f79e84 100644 --- a/TFT/src/User/Hal/stm32f10x/GPIO_Init.c +++ b/TFT/src/User/Hal/stm32f10x/GPIO_Init.c @@ -19,7 +19,7 @@ void GPIO_InitSet(uint16_t io, GPIO_MODE mode, uint8_t AF) GPIO_Port[port]->BSRR = 1 << pin; //set high } - if(pin <= 7) + if (pin <= 7) { GPIO_Port[port]->CRL &= ~(0xF << 4*(pin & 0x7)); //clear control reg bits GPIO_Port[port]->CRL |= mode << 4*(pin & 0x7); //clear control reg bits diff --git a/TFT/src/User/Hal/stm32f10x/Serial.c b/TFT/src/User/Hal/stm32f10x/Serial.c index f58606c894..2ff2c10844 100644 --- a/TFT/src/User/Hal/stm32f10x/Serial.c +++ b/TFT/src/User/Hal/stm32f10x/Serial.c @@ -92,14 +92,14 @@ void Serial_DeInit(void) void USART_IRQHandler(uint8_t port) { - if((Serial[port].uart->SR & (1<<4))!=0) + if ((Serial[port].uart->SR & (1<<4))!=0) { Serial[port].uart->SR; Serial[port].uart->DR; dmaL1Data[port].wIndex = DMA_TRANS_LEN - Serial[port].dma_chanel->CNDTR; uint16_t wIndex = (dmaL1Data[port].wIndex == 0) ? DMA_TRANS_LEN : dmaL1Data[port].wIndex; - if(dmaL1Data[port].cache[wIndex-1] == '\n') // Receive completed + if (dmaL1Data[port].cache[wIndex-1] == '\n') // Receive completed { infoHost.rx_ok[port] = true; } diff --git a/TFT/src/User/Hal/stm32f10x/sdio_sdcard.c b/TFT/src/User/Hal/stm32f10x/sdio_sdcard.c index 44b86f2e9f..e43b1bdbdf 100644 --- a/TFT/src/User/Hal/stm32f10x/sdio_sdcard.c +++ b/TFT/src/User/Hal/stm32f10x/sdio_sdcard.c @@ -88,13 +88,13 @@ SD_Error SD_Init(void) SDIO->MASK=0x00000000; MY_NVIC_Init(0,0,SDIO_IRQn,2); errorstatus=SD_PowerON(); - if(errorstatus==SD_OK) errorstatus=SD_InitializeCards(); - if(errorstatus==SD_OK) errorstatus=SD_GetCardInfo(&SDCardInfo); - if(errorstatus==SD_OK) errorstatus=SD_SelectDeselect((u32)(SDCardInfo.RCA<<16)); - if(errorstatus==SD_OK) errorstatus=SD_EnableWideBusOperation(1); - if((errorstatus==SD_OK)||(SDIO_MULTIMEDIA_CARD==CardType)) + if (errorstatus==SD_OK) errorstatus=SD_InitializeCards(); + if (errorstatus==SD_OK) errorstatus=SD_GetCardInfo(&SDCardInfo); + if (errorstatus==SD_OK) errorstatus=SD_SelectDeselect((u32)(SDCardInfo.RCA<<16)); + if (errorstatus==SD_OK) errorstatus=SD_EnableWideBusOperation(1); + if ((errorstatus==SD_OK)||(SDIO_MULTIMEDIA_CARD==CardType)) { - if(SDCardInfo.CardType==SDIO_STD_CAPACITY_SD_CARD_V1_1||SDCardInfo.CardType==SDIO_STD_CAPACITY_SD_CARD_V2_0) + if (SDCardInfo.CardType==SDIO_STD_CAPACITY_SD_CARD_V1_1||SDCardInfo.CardType==SDIO_STD_CAPACITY_SD_CARD_V2_0) { clkdiv=SDIO_TRANSFER_CLK_DIV+6; //V1.1/V2.0 72/12=6Mhz }else clkdiv=SDIO_TRANSFER_CLK_DIV; //SDHC 72/6=12Mhz @@ -164,39 +164,39 @@ SD_Error SD_PowerON(void) { SDIO_Send_Cmd(SD_CMD_GO_IDLE_STATE,0,0); errorstatus=CmdError(); - if(errorstatus==SD_OK)break; + if (errorstatus==SD_OK)break; } - if(errorstatus)return errorstatus; + if (errorstatus) return errorstatus; SDIO_Send_Cmd(SDIO_SEND_IF_COND,1,SD_CHECK_PATTERN); errorstatus=CmdResp7Error(); - if(errorstatus==SD_OK) + if (errorstatus==SD_OK) { CardType=SDIO_STD_CAPACITY_SD_CARD_V2_0; SDType=SD_HIGH_CAPACITY; } SDIO_Send_Cmd(SD_CMD_APP_CMD,1,0); errorstatus=CmdResp1Error(SD_CMD_APP_CMD); - if(errorstatus==SD_OK)//SD2.0/SD 1.1 + if (errorstatus==SD_OK)//SD2.0/SD 1.1 { while((!validvoltage)&&(countRESP1; validvoltage=(((response>>31)==1)?1:0); count++; } - if(count>=SD_MAX_VOLT_TRIAL) + if (count>=SD_MAX_VOLT_TRIAL) { errorstatus=SD_INVALID_VOLTRANGE; return errorstatus; } - if(response&=SD_HIGH_CAPACITY) + if (response&=SD_HIGH_CAPACITY) { CardType=SDIO_HIGH_CAPACITY_SD_CARD; } @@ -207,12 +207,12 @@ SD_Error SD_PowerON(void) { SDIO_Send_Cmd(SD_CMD_SEND_OP_COND,1,SD_VOLTAGE_WINDOW_MMC);//����CMD1,����Ӧ errorstatus=CmdResp3Error(); //�ȴ�R3��Ӧ - if(errorstatus!=SD_OK)return errorstatus; //��Ӧ���� + if (errorstatus!=SD_OK) return errorstatus; //��Ӧ���� response=SDIO->RESP1;; //�õ���Ӧ validvoltage=(((response>>31)==1)?1:0); count++; } - if(count>=SD_MAX_VOLT_TRIAL) + if (count>=SD_MAX_VOLT_TRIAL) { errorstatus=SD_INVALID_VOLTRANGE; return errorstatus; @@ -234,35 +234,35 @@ SD_Error SD_InitializeCards(void) { SD_Error errorstatus=SD_OK; u16 rca = 0x01; - if((SDIO->POWER&0X03)==0)return SD_REQUEST_NOT_APPLICABLE;//����Դ״̬,ȷ��Ϊ�ϵ�״̬ - if(SDIO_SECURE_DIGITAL_IO_CARD!=CardType) //��SECURE_DIGITAL_IO_CARD + if ((SDIO->POWER&0X03)==0) return SD_REQUEST_NOT_APPLICABLE;//����Դ״̬,ȷ��Ϊ�ϵ�״̬ + if (SDIO_SECURE_DIGITAL_IO_CARD!=CardType) //��SECURE_DIGITAL_IO_CARD { SDIO_Send_Cmd(SD_CMD_ALL_SEND_CID,3,0); //����CMD2,ȡ��CID,����Ӧ errorstatus=CmdResp2Error(); //�ȴ�R2��Ӧ - if(errorstatus!=SD_OK)return errorstatus; //��Ӧ���� + if (errorstatus!=SD_OK) return errorstatus; //��Ӧ���� CID_Tab[0]=SDIO->RESP1; CID_Tab[1]=SDIO->RESP2; CID_Tab[2]=SDIO->RESP3; CID_Tab[3]=SDIO->RESP4; } - if((SDIO_STD_CAPACITY_SD_CARD_V1_1==CardType)||(SDIO_STD_CAPACITY_SD_CARD_V2_0==CardType)||(SDIO_SECURE_DIGITAL_IO_COMBO_CARD==CardType)||(SDIO_HIGH_CAPACITY_SD_CARD==CardType))//�жϿ����� + if ((SDIO_STD_CAPACITY_SD_CARD_V1_1==CardType)||(SDIO_STD_CAPACITY_SD_CARD_V2_0==CardType)||(SDIO_SECURE_DIGITAL_IO_COMBO_CARD==CardType)||(SDIO_HIGH_CAPACITY_SD_CARD==CardType))//�жϿ����� { SDIO_Send_Cmd(SD_CMD_SET_REL_ADDR,1,0); //����CMD3,����Ӧ errorstatus=CmdResp6Error(SD_CMD_SET_REL_ADDR,&rca);//�ȴ�R6��Ӧ - if(errorstatus!=SD_OK)return errorstatus; //��Ӧ���� + if (errorstatus!=SD_OK) return errorstatus; //��Ӧ���� } if (SDIO_MULTIMEDIA_CARD==CardType) { SDIO_Send_Cmd(SD_CMD_SET_REL_ADDR,1,(u32)(rca<<16));//����CMD3,����Ӧ errorstatus=CmdResp2Error(); //�ȴ�R2��Ӧ - if(errorstatus!=SD_OK)return errorstatus; //��Ӧ���� + if (errorstatus!=SD_OK) return errorstatus; //��Ӧ���� } if (SDIO_SECURE_DIGITAL_IO_CARD!=CardType) //��SECURE_DIGITAL_IO_CARD { RCA = rca; SDIO_Send_Cmd(SD_CMD_SEND_CSD,3,(u32)(rca<<16));//����CMD9+��RCA,ȡ��CSD,����Ӧ errorstatus=CmdResp2Error(); //�ȴ�R2��Ӧ - if(errorstatus!=SD_OK)return errorstatus; //��Ӧ���� + if (errorstatus!=SD_OK) return errorstatus; //��Ӧ���� CSD_Tab[0]=SDIO->RESP1; CSD_Tab[1]=SDIO->RESP2; CSD_Tab[2]=SDIO->RESP3; @@ -300,7 +300,7 @@ SD_Error SD_GetCardInfo(SD_CardInfo *cardinfo) cardinfo->SD_csd.RdBlockMisalign=(tmp&0x20)>>5; //������? cardinfo->SD_csd.DSRImpl=(tmp&0x10)>>4; cardinfo->SD_csd.Reserved2=0; //���� - if((CardType==SDIO_STD_CAPACITY_SD_CARD_V1_1)||(CardType==SDIO_STD_CAPACITY_SD_CARD_V2_0)||(SDIO_MULTIMEDIA_CARD==CardType))//��׼1.1/2.0��/MMC�� + if ((CardType==SDIO_STD_CAPACITY_SD_CARD_V1_1)||(CardType==SDIO_STD_CAPACITY_SD_CARD_V2_0)||(SDIO_MULTIMEDIA_CARD==CardType))//��׼1.1/2.0��/MMC�� { cardinfo->SD_csd.DeviceSize=(tmp&0x03)<<10; //C_SIZE(12λ) tmp=(u8)(CSD_Tab[1]&0x000000FF); //��7���ֽ� @@ -319,7 +319,7 @@ SD_Error SD_GetCardInfo(SD_CardInfo *cardinfo) cardinfo->CardCapacity*=(1<<(cardinfo->SD_csd.DeviceSizeMul+2)); cardinfo->CardBlockSize=1<<(cardinfo->SD_csd.RdBlockLen);//����? cardinfo->CardCapacity*=cardinfo->CardBlockSize; - }else if(CardType==SDIO_HIGH_CAPACITY_SD_CARD) //�������� + }else if (CardType==SDIO_HIGH_CAPACITY_SD_CARD) //�������� { tmp=(u8)(CSD_Tab[1]&0x000000FF); //��7���ֽ� cardinfo->SD_csd.DeviceSize=(tmp&0x3F)<<16;//C_SIZE @@ -398,14 +398,14 @@ SD_Error SD_GetCardInfo(SD_CardInfo *cardinfo) SD_Error SD_EnableWideBusOperation(u32 wmode) { SD_Error errorstatus=SD_OK; - if(SDIO_MULTIMEDIA_CARD==CardType)return SD_UNSUPPORTED_FEATURE;//MMC����֧�� - else if((SDIO_STD_CAPACITY_SD_CARD_V1_1==CardType)||(SDIO_STD_CAPACITY_SD_CARD_V2_0==CardType)||(SDIO_HIGH_CAPACITY_SD_CARD==CardType)) + if (SDIO_MULTIMEDIA_CARD==CardType) return SD_UNSUPPORTED_FEATURE;//MMC����֧�� + else if ((SDIO_STD_CAPACITY_SD_CARD_V1_1==CardType)||(SDIO_STD_CAPACITY_SD_CARD_V2_0==CardType)||(SDIO_HIGH_CAPACITY_SD_CARD==CardType)) { - if(wmode>=2)return SD_UNSUPPORTED_FEATURE;//��֧��8λģʽ + if (wmode>=2) return SD_UNSUPPORTED_FEATURE;//��֧��8λģʽ else { errorstatus=SDEnWideBus(wmode); - if(SD_OK==errorstatus) + if (SD_OK==errorstatus) { SDIO->CLKCR&=~(3<<11); //����?ǰ��λ������ SDIO->CLKCR|=(u16)wmode<<11;//1λ/4λ���߿��� @@ -421,7 +421,7 @@ SD_Error SD_EnableWideBusOperation(u32 wmode) SD_Error SD_SetDeviceMode(u32 Mode) { SD_Error errorstatus = SD_OK; - if((Mode==SD_DMA_MODE)||(Mode==SD_POLLING_MODE))DeviceMode=Mode; + if ((Mode==SD_DMA_MODE)||(Mode==SD_POLLING_MODE))DeviceMode=Mode; else errorstatus=SD_INVALID_PARAMETER; return errorstatus; } @@ -443,32 +443,32 @@ SD_Error SD_ReadBlock(u8 *buf,long long addr,u16 blksize) u8 power; u32 count=0,*tempbuff=(u32*)buf;//ת��Ϊu32ָ�� u32 timeout=SDIO_DATATIMEOUT; - if(NULL==buf) return SD_INVALID_PARAMETER; + if (NULL==buf) return SD_INVALID_PARAMETER; SDIO->DCTRL=0x0; //���ݿ��ƼĴ�������(��DMA) - if(CardType==SDIO_HIGH_CAPACITY_SD_CARD)//�������� + if (CardType==SDIO_HIGH_CAPACITY_SD_CARD)//�������� { blksize=512; addr>>=9; } SDIO_Send_Data_Cfg(SD_DATATIMEOUT,0,0,0); //���DPSM״̬������ - if(SDIO->RESP1&SD_CARD_LOCKED)return SD_LOCK_UNLOCK_FAILED;//������ - if((blksize>0)&&(blksize<=2048)&&((blksize&(blksize-1))==0)) + if (SDIO->RESP1&SD_CARD_LOCKED) return SD_LOCK_UNLOCK_FAILED;//������ + if ((blksize>0)&&(blksize<=2048)&&((blksize&(blksize-1))==0)) { power=convert_from_bytes_to_power_of_two(blksize); SDIO_Send_Cmd(SD_CMD_SET_BLOCKLEN,1,blksize); //����CMD16+�������ݳ���Ϊblksize,����Ӧ errorstatus=CmdResp1Error(SD_CMD_SET_BLOCKLEN); //�ȴ�R1��Ӧ - if(errorstatus!=SD_OK)return errorstatus; //��Ӧ���� + if (errorstatus!=SD_OK) return errorstatus; //��Ӧ���� }else return SD_INVALID_PARAMETER; SDIO_Send_Data_Cfg(SD_DATATIMEOUT,blksize,power,1); //blksize,���������� SDIO_Send_Cmd(SD_CMD_READ_SINGLE_BLOCK,1,addr); //����CMD17+��addr��ַ����ȡ����,����Ӧ errorstatus=CmdResp1Error(SD_CMD_READ_SINGLE_BLOCK);//�ȴ�R1��Ӧ - if(errorstatus!=SD_OK)return errorstatus; //��Ӧ���� - if(DeviceMode==SD_POLLING_MODE) //��ѯģʽ,��ѯ���� + if (errorstatus!=SD_OK) return errorstatus; //��Ӧ���� + if (DeviceMode==SD_POLLING_MODE) //��ѯģʽ,��ѯ���� { INTX_DISABLE();//�ر����ж�(POLLINGģʽ,�Ͻ��жϴ��SDIO��д����!!!) while(!(SDIO->STA&((1<<5)|(1<<1)|(1<<3)|(1<<10)|(1<<9))))//������/CRC/��ʱ/���?(��־)/��ʼλ���� { - if(SDIO->STA&(1<<15)) //����������,��ʾ���ٴ���8���� + if (SDIO->STA&(1<<15)) //����������,��ʾ���ٴ���8���� { for(count=0;count<8;count++) //ѭ����ȡ���� { @@ -478,23 +478,23 @@ SD_Error SD_ReadBlock(u8 *buf,long long addr,u16 blksize) timeout=0X7FFFFF; //���������ʱ��? }else //������ʱ { - if(timeout==0)return SD_DATA_TIMEOUT; + if (timeout==0) return SD_DATA_TIMEOUT; timeout--; } } - if(SDIO->STA&(1<<3)) //���ݳ�ʱ���� + if (SDIO->STA&(1<<3)) //���ݳ�ʱ���� { SDIO->ICR|=1<<3; //������־ return SD_DATA_TIMEOUT; - }else if(SDIO->STA&(1<<1)) //���ݿ�CRC���� + }else if (SDIO->STA&(1<<1)) //���ݿ�CRC���� { SDIO->ICR|=1<<1; //������־ return SD_DATA_CRC_FAIL; - }else if(SDIO->STA&(1<<5)) //����fifo�������? + }else if (SDIO->STA&(1<<5)) //����fifo�������? { SDIO->ICR|=1<<5; //������־ return SD_RX_OVERRUN; - }else if(SDIO->STA&(1<<9)) //������ʼλ���� + }else if (SDIO->STA&(1<<9)) //������ʼλ���� { SDIO->ICR|=1<<9; //������־ return SD_START_BIT_ERR; @@ -506,7 +506,7 @@ SD_Error SD_ReadBlock(u8 *buf,long long addr,u16 blksize) } INTX_ENABLE();//�������ж� SDIO->ICR=0X5FF; //������б�� - }else if(DeviceMode==SD_DMA_MODE) + }else if (DeviceMode==SD_DMA_MODE) { SD_DMA_Config((u32*)buf,blksize,0); TransferError=SD_OK; @@ -515,8 +515,8 @@ SD_Error SD_ReadBlock(u8 *buf,long long addr,u16 blksize) SDIO->MASK|=(1<<1)|(1<<3)|(1<<8)|(1<<5)|(1<<9); //������Ҫ���ж� SDIO->DCTRL|=1<<3; //SDIO DMAʹ�� while(((DMA2->ISR&0X2000)==RESET)&&(TransferEnd==0)&&(TransferError==SD_OK)&&timeout)timeout--;//�ȴ��������? - if(timeout==0)return SD_DATA_TIMEOUT;//��ʱ - if(TransferError!=SD_OK)errorstatus=TransferError; + if (timeout==0) return SD_DATA_TIMEOUT;//��ʱ + if (TransferError!=SD_OK)errorstatus=TransferError; } return errorstatus; } @@ -531,33 +531,33 @@ SD_Error SD_ReadMultiBlocks(u8 *buf,long long addr,u16 blksize,u32 nblks) tempbuff=(u32*)buf;//ת��Ϊu32ָ�� SDIO->DCTRL=0x0; //���ݿ��ƼĴ�������(��DMA) - if(CardType==SDIO_HIGH_CAPACITY_SD_CARD)//�������� + if (CardType==SDIO_HIGH_CAPACITY_SD_CARD)//�������� { blksize=512; addr>>=9; } SDIO_Send_Data_Cfg(SD_DATATIMEOUT,0,0,0); //���DPSM״̬������ - if(SDIO->RESP1&SD_CARD_LOCKED)return SD_LOCK_UNLOCK_FAILED;//������ - if((blksize>0)&&(blksize<=2048)&&((blksize&(blksize-1))==0)) + if (SDIO->RESP1&SD_CARD_LOCKED) return SD_LOCK_UNLOCK_FAILED;//������ + if ((blksize>0)&&(blksize<=2048)&&((blksize&(blksize-1))==0)) { power=convert_from_bytes_to_power_of_two(blksize); SDIO_Send_Cmd(SD_CMD_SET_BLOCKLEN,1,blksize); //����CMD16+�������ݳ���Ϊblksize,����Ӧ errorstatus=CmdResp1Error(SD_CMD_SET_BLOCKLEN); //�ȴ�R1��Ӧ - if(errorstatus!=SD_OK)return errorstatus; //��Ӧ���� + if (errorstatus!=SD_OK) return errorstatus; //��Ӧ���� }else return SD_INVALID_PARAMETER; - if(nblks>1) //���� + if (nblks>1) //���� { - if(nblks*blksize>SD_MAX_DATA_LENGTH) return SD_INVALID_PARAMETER;//�ж��Ƿ񳬹������ճ��� + if (nblks*blksize>SD_MAX_DATA_LENGTH) return SD_INVALID_PARAMETER;//�ж��Ƿ񳬹������ճ��� SDIO_Send_Data_Cfg(SD_DATATIMEOUT,nblks*blksize,power,1);//nblks*blksize,512����?,���������� SDIO_Send_Cmd(SD_CMD_READ_MULT_BLOCK,1,addr); //����CMD18+��addr��ַ����ȡ����,����Ӧ errorstatus=CmdResp1Error(SD_CMD_READ_MULT_BLOCK);//�ȴ�R1��Ӧ - if(errorstatus!=SD_OK)return errorstatus; //��Ӧ���� - if(DeviceMode==SD_POLLING_MODE) + if (errorstatus!=SD_OK) return errorstatus; //��Ӧ���� + if (DeviceMode==SD_POLLING_MODE) { INTX_DISABLE();//�ر����ж�(POLLINGģʽ,�Ͻ��жϴ��SDIO��д����!!!) while(!(SDIO->STA&((1<<5)|(1<<1)|(1<<3)|(1<<8)|(1<<9))))//������/CRC/��ʱ/���?(��־)/��ʼλ���� { - if(SDIO->STA&(1<<15)) //����������,��ʾ���ٴ���8���� + if (SDIO->STA&(1<<15)) //����������,��ʾ���ٴ���8���� { for(count=0;count<8;count++) //ѭ����ȡ���� { @@ -567,23 +567,23 @@ SD_Error SD_ReadMultiBlocks(u8 *buf,long long addr,u16 blksize,u32 nblks) timeout=0X7FFFFF; //���������ʱ��? }else //������ʱ { - if(timeout==0)return SD_DATA_TIMEOUT; + if (timeout==0) return SD_DATA_TIMEOUT; timeout--; } } - if(SDIO->STA&(1<<3)) //���ݳ�ʱ���� + if (SDIO->STA&(1<<3)) //���ݳ�ʱ���� { SDIO->ICR|=1<<3; //������־ return SD_DATA_TIMEOUT; - }else if(SDIO->STA&(1<<1)) //���ݿ�CRC���� + }else if (SDIO->STA&(1<<1)) //���ݿ�CRC���� { SDIO->ICR|=1<<1; //������־ return SD_DATA_CRC_FAIL; - }else if(SDIO->STA&(1<<5)) //����fifo�������? + }else if (SDIO->STA&(1<<5)) //����fifo�������? { SDIO->ICR|=1<<5; //������־ return SD_RX_OVERRUN; - }else if(SDIO->STA&(1<<9)) //������ʼλ���� + }else if (SDIO->STA&(1<<9)) //������ʼλ���� { SDIO->ICR|=1<<9; //������־ return SD_START_BIT_ERR; @@ -593,18 +593,18 @@ SD_Error SD_ReadMultiBlocks(u8 *buf,long long addr,u16 blksize,u32 nblks) *tempbuff=SDIO->FIFO; //ѭ����ȡ���� tempbuff++; } - if(SDIO->STA&(1<<8)) //���ս��� + if (SDIO->STA&(1<<8)) //���ս��� { - if((SDIO_STD_CAPACITY_SD_CARD_V1_1==CardType)||(SDIO_STD_CAPACITY_SD_CARD_V2_0==CardType)||(SDIO_HIGH_CAPACITY_SD_CARD==CardType)) + if ((SDIO_STD_CAPACITY_SD_CARD_V1_1==CardType)||(SDIO_STD_CAPACITY_SD_CARD_V2_0==CardType)||(SDIO_HIGH_CAPACITY_SD_CARD==CardType)) { SDIO_Send_Cmd(SD_CMD_STOP_TRANSMISSION,1,0); //����CMD12+�������� errorstatus=CmdResp1Error(SD_CMD_STOP_TRANSMISSION);//�ȴ�R1��Ӧ - if(errorstatus!=SD_OK)return errorstatus; + if (errorstatus!=SD_OK) return errorstatus; } } INTX_ENABLE();//�������ж� SDIO->ICR=0X5FF; //������б�� - }else if(DeviceMode==SD_DMA_MODE) + }else if (DeviceMode==SD_DMA_MODE) { SD_DMA_Config((u32*)buf,nblks*blksize,0); TransferError=SD_OK; @@ -613,9 +613,9 @@ SD_Error SD_ReadMultiBlocks(u8 *buf,long long addr,u16 blksize,u32 nblks) SDIO->MASK|=(1<<1)|(1<<3)|(1<<8)|(1<<5)|(1<<9); //������Ҫ���ж� SDIO->DCTRL|=1<<3; //SDIO DMAʹ�� while(((DMA2->ISR&0X2000)==RESET)&&timeout)timeout--;//�ȴ��������? - if(timeout==0)return SD_DATA_TIMEOUT;//��ʱ + if (timeout==0) return SD_DATA_TIMEOUT;//��ʱ while((TransferEnd==0)&&(TransferError==SD_OK)); - if(TransferError!=SD_OK)errorstatus=TransferError; + if (TransferError!=SD_OK)errorstatus=TransferError; } } return errorstatus; @@ -633,25 +633,25 @@ SD_Error SD_WriteBlock(u8 *buf,long long addr, u16 blksize) u32 cardstatus=0,count=0,restwords=0; u32 tlen=blksize; //�ܳ���(�ֽ�) u32*tempbuff=(u32*)buf; - if(buf==NULL)return SD_INVALID_PARAMETER;//�������� + if (buf==NULL) return SD_INVALID_PARAMETER;//�������� SDIO->DCTRL=0x0; //���ݿ��ƼĴ�������(��DMA) SDIO_Send_Data_Cfg(SD_DATATIMEOUT,0,0,0); //���DPSM״̬������ - if(SDIO->RESP1&SD_CARD_LOCKED)return SD_LOCK_UNLOCK_FAILED;//������ - if(CardType==SDIO_HIGH_CAPACITY_SD_CARD) //�������� + if (SDIO->RESP1&SD_CARD_LOCKED) return SD_LOCK_UNLOCK_FAILED;//������ + if (CardType==SDIO_HIGH_CAPACITY_SD_CARD) //�������� { blksize=512; addr>>=9; } - if((blksize>0)&&(blksize<=2048)&&((blksize&(blksize-1))==0)) + if ((blksize>0)&&(blksize<=2048)&&((blksize&(blksize-1))==0)) { power=convert_from_bytes_to_power_of_two(blksize); SDIO_Send_Cmd(SD_CMD_SET_BLOCKLEN,1,blksize); //����CMD16+�������ݳ���Ϊblksize,����Ӧ errorstatus=CmdResp1Error(SD_CMD_SET_BLOCKLEN); //�ȴ�R1��Ӧ - if(errorstatus!=SD_OK)return errorstatus; //��Ӧ���� + if (errorstatus!=SD_OK) return errorstatus; //��Ӧ���� }else return SD_INVALID_PARAMETER; SDIO_Send_Cmd(SD_CMD_SEND_STATUS,1,(u32)RCA<<16); //����CMD13,��ѯ����״̬,����Ӧ errorstatus=CmdResp1Error(SD_CMD_SEND_STATUS); //�ȴ�R1��Ӧ - if(errorstatus!=SD_OK)return errorstatus; + if (errorstatus!=SD_OK) return errorstatus; cardstatus=SDIO->RESP1; timeout=SD_DATATIMEOUT; while(((cardstatus&0x00000100)==0)&&(timeout>0)) //���READY_FOR_DATAλ�Ƿ���λ @@ -659,13 +659,13 @@ SD_Error SD_WriteBlock(u8 *buf,long long addr, u16 blksize) timeout--; SDIO_Send_Cmd(SD_CMD_SEND_STATUS,1,(u32)RCA<<16);//����CMD13,��ѯ����״̬,����Ӧ errorstatus=CmdResp1Error(SD_CMD_SEND_STATUS); //�ȴ�R1��Ӧ - if(errorstatus!=SD_OK)return errorstatus; + if (errorstatus!=SD_OK) return errorstatus; cardstatus=SDIO->RESP1; } - if(timeout==0)return SD_ERROR; + if (timeout==0) return SD_ERROR; SDIO_Send_Cmd(SD_CMD_WRITE_SINGLE_BLOCK,1,addr); //����CMD24,д����ָ��,����Ӧ errorstatus=CmdResp1Error(SD_CMD_WRITE_SINGLE_BLOCK);//�ȴ�R1��Ӧ - if(errorstatus!=SD_OK)return errorstatus; + if (errorstatus!=SD_OK) return errorstatus; StopCondition=0; //����д,����Ҫ����ֹͣ����ָ�� SDIO_Send_Data_Cfg(SD_DATATIMEOUT,blksize,power,0); //blksize, ���������� timeout=SDIO_DATATIMEOUT; @@ -674,9 +674,9 @@ SD_Error SD_WriteBlock(u8 *buf,long long addr, u16 blksize) INTX_DISABLE();//�ر����ж�(POLLINGģʽ,�Ͻ��жϴ��SDIO��д����!!!) while(!(SDIO->STA&((1<<10)|(1<<4)|(1<<1)|(1<<3)|(1<<9))))//���ݿ鷢�ͳɹ�/����/CRC/��ʱ/��ʼλ���� { - if(SDIO->STA&(1<<14)) //���������?,��ʾ���ٴ���8���� + if (SDIO->STA&(1<<14)) //���������?,��ʾ���ٴ���8���� { - if((tlen-bytestransferred)STA&(1<<3)) //���ݳ�ʱ���� + if (SDIO->STA&(1<<3)) //���ݳ�ʱ���� { SDIO->ICR|=1<<3; //������־ return SD_DATA_TIMEOUT; - }else if(SDIO->STA&(1<<1)) //���ݿ�CRC���� + }else if (SDIO->STA&(1<<1)) //���ݿ�CRC���� { SDIO->ICR|=1<<1; //������־ return SD_DATA_CRC_FAIL; - }else if(SDIO->STA&(1<<4)) //����fifo�������? + }else if (SDIO->STA&(1<<4)) //����fifo�������? { SDIO->ICR|=1<<4; //������־ return SD_TX_UNDERRUN; - }else if(SDIO->STA&(1<<9)) //������ʼλ���� + }else if (SDIO->STA&(1<<9)) //������ʼλ���� { SDIO->ICR|=1<<9; //������־ return SD_START_BIT_ERR; } INTX_ENABLE();//�������ж� SDIO->ICR=0X5FF; //������б�� - }else if(DeviceMode==SD_DMA_MODE) + }else if (DeviceMode==SD_DMA_MODE) { SD_DMA_Config((u32*)buf,blksize,1);//SDIO DMA���� TransferError=SD_OK; @@ -728,15 +728,15 @@ SD_Error SD_WriteBlock(u8 *buf,long long addr, u16 blksize) SDIO->MASK|=(1<<1)|(1<<3)|(1<<8)|(1<<4)|(1<<9); //���ò������ݽ�������ж�? SDIO->DCTRL|=1<<3; //SDIO DMAʹ��. while(((DMA2->ISR&0X2000)==RESET)&&timeout)timeout--;//�ȴ��������? - if(timeout==0) + if (timeout==0) { SD_Init(); //���³�ʼ��SD��,���Խ��д������������? return SD_DATA_TIMEOUT; //��ʱ } timeout=SDIO_DATATIMEOUT; while((TransferEnd==0)&&(TransferError==SD_OK)&&timeout)timeout--; - if(timeout==0)return SD_DATA_TIMEOUT; //��ʱ - if(TransferError!=SD_OK)return TransferError; + if (timeout==0) return SD_DATA_TIMEOUT; //��ʱ + if (TransferError!=SD_OK) return TransferError; } SDIO->ICR=0X5FF; //������б�� errorstatus=IsCardProgramming(&cardstate); @@ -760,48 +760,48 @@ SD_Error SD_WriteMultiBlocks(u8 *buf,long long addr,u16 blksize,u32 nblks) u32 count = 0, restwords = 0; u32 tlen=nblks*blksize; //�ܳ���(�ֽ�) u32 *tempbuff = (u32*)buf; - if(buf==NULL)return SD_INVALID_PARAMETER; //�������� + if (buf==NULL) return SD_INVALID_PARAMETER; //�������� SDIO->DCTRL=0x0; //���ݿ��ƼĴ�������(��DMA) SDIO_Send_Data_Cfg(SD_DATATIMEOUT,0,0,0); //���DPSM״̬������ - if(SDIO->RESP1&SD_CARD_LOCKED)return SD_LOCK_UNLOCK_FAILED;//������ - if(CardType==SDIO_HIGH_CAPACITY_SD_CARD)//�������� + if (SDIO->RESP1&SD_CARD_LOCKED) return SD_LOCK_UNLOCK_FAILED;//������ + if (CardType==SDIO_HIGH_CAPACITY_SD_CARD)//�������� { blksize=512; addr>>=9; } - if((blksize>0)&&(blksize<=2048)&&((blksize&(blksize-1))==0)) + if ((blksize>0)&&(blksize<=2048)&&((blksize&(blksize-1))==0)) { power=convert_from_bytes_to_power_of_two(blksize); SDIO_Send_Cmd(SD_CMD_SET_BLOCKLEN,1,blksize); //����CMD16+�������ݳ���Ϊblksize,����Ӧ errorstatus=CmdResp1Error(SD_CMD_SET_BLOCKLEN); //�ȴ�R1��Ӧ - if(errorstatus!=SD_OK)return errorstatus; //��Ӧ���� + if (errorstatus!=SD_OK) return errorstatus; //��Ӧ���� }else return SD_INVALID_PARAMETER; - if(nblks>1) + if (nblks>1) { - if(nblks*blksize>SD_MAX_DATA_LENGTH)return SD_INVALID_PARAMETER; - if((SDIO_STD_CAPACITY_SD_CARD_V1_1==CardType)||(SDIO_STD_CAPACITY_SD_CARD_V2_0==CardType)||(SDIO_HIGH_CAPACITY_SD_CARD==CardType)) + if (nblks*blksize>SD_MAX_DATA_LENGTH) return SD_INVALID_PARAMETER; + if ((SDIO_STD_CAPACITY_SD_CARD_V1_1==CardType)||(SDIO_STD_CAPACITY_SD_CARD_V2_0==CardType)||(SDIO_HIGH_CAPACITY_SD_CARD==CardType)) { //�������? SDIO_Send_Cmd(SD_CMD_APP_CMD,1,(u32)RCA<<16); //����ACMD55,����Ӧ errorstatus=CmdResp1Error(SD_CMD_APP_CMD); //�ȴ�R1��Ӧ - if(errorstatus!=SD_OK)return errorstatus; + if (errorstatus!=SD_OK) return errorstatus; SDIO_Send_Cmd(SD_CMD_SET_BLOCK_COUNT,1,nblks); //����CMD23,���ÿ�����,����Ӧ errorstatus=CmdResp1Error(SD_CMD_SET_BLOCK_COUNT);//�ȴ�R1��Ӧ - if(errorstatus!=SD_OK)return errorstatus; + if (errorstatus!=SD_OK) return errorstatus; } SDIO_Send_Cmd(SD_CMD_WRITE_MULT_BLOCK,1,addr); //����CMD25,���дָ��?,����Ӧ errorstatus=CmdResp1Error(SD_CMD_WRITE_MULT_BLOCK); //�ȴ�R1��Ӧ - if(errorstatus!=SD_OK)return errorstatus; + if (errorstatus!=SD_OK) return errorstatus; SDIO_Send_Data_Cfg(SD_DATATIMEOUT,nblks*blksize,power,0);//blksize, ���������� - if(DeviceMode==SD_POLLING_MODE) + if (DeviceMode==SD_POLLING_MODE) { timeout=SDIO_DATATIMEOUT; INTX_DISABLE();//�ر����ж�(POLLINGģʽ,�Ͻ��жϴ��SDIO��д����!!!) while(!(SDIO->STA&((1<<4)|(1<<1)|(1<<8)|(1<<3)|(1<<9))))//����/CRC/���ݽ���/��ʱ/��ʼλ���� { - if(SDIO->STA&(1<<14)) //���������?,��ʾ���ٴ���8��(32�ֽ�) + if (SDIO->STA&(1<<14)) //���������?,��ʾ���ٴ���8��(32�ֽ�) { - if((tlen-bytestransferred)STA&(1<<3)) //���ݳ�ʱ���� + if (SDIO->STA&(1<<3)) //���ݳ�ʱ���� { SDIO->ICR|=1<<3; //������־ return SD_DATA_TIMEOUT; - }else if(SDIO->STA&(1<<1)) //���ݿ�CRC���� + } + else if (SDIO->STA&(1<<1)) //���ݿ�CRC���� { SDIO->ICR|=1<<1; //������־ return SD_DATA_CRC_FAIL; - }else if(SDIO->STA&(1<<4)) //����fifo�������? + } + else if (SDIO->STA&(1<<4)) //����fifo�������? { SDIO->ICR|=1<<4; //������־ return SD_TX_UNDERRUN; - }else if(SDIO->STA&(1<<9)) //������ʼλ���� + } + else if (SDIO->STA&(1<<9)) //������ʼλ���� { SDIO->ICR|=1<<9; //������־ return SD_START_BIT_ERR; } - if(SDIO->STA&(1<<8)) //���ͽ��� + if (SDIO->STA&(1<<8)) //���ͽ��� { - if((SDIO_STD_CAPACITY_SD_CARD_V1_1==CardType)||(SDIO_STD_CAPACITY_SD_CARD_V2_0==CardType)||(SDIO_HIGH_CAPACITY_SD_CARD==CardType)) + if ((SDIO_STD_CAPACITY_SD_CARD_V1_1==CardType)||(SDIO_STD_CAPACITY_SD_CARD_V2_0==CardType)||(SDIO_HIGH_CAPACITY_SD_CARD==CardType)) { SDIO_Send_Cmd(SD_CMD_STOP_TRANSMISSION,1,0); //����CMD12+�������� errorstatus=CmdResp1Error(SD_CMD_STOP_TRANSMISSION);//�ȴ�R1��Ӧ - if(errorstatus!=SD_OK)return errorstatus; + if (errorstatus!=SD_OK) return errorstatus; } } INTX_ENABLE();//�������ж� SDIO->ICR=0X5FF; //������б�� - }else if(DeviceMode==SD_DMA_MODE) + } + else if (DeviceMode==SD_DMA_MODE) { SD_DMA_Config((u32*)buf,nblks*blksize,1);//SDIO DMA���� TransferError=SD_OK; @@ -862,15 +866,15 @@ SD_Error SD_WriteMultiBlocks(u8 *buf,long long addr,u16 blksize,u32 nblks) SDIO->DCTRL|=1<<3; //SDIO DMAʹ��. timeout=SDIO_DATATIMEOUT; while(((DMA2->ISR&0X2000)==RESET)&&timeout)timeout--;//�ȴ��������? - if(timeout==0) //��ʱ + if (timeout==0) //��ʱ { SD_Init(); //���³�ʼ��SD��,���Խ��д������������? return SD_DATA_TIMEOUT; //��ʱ } timeout=SDIO_DATATIMEOUT; while((TransferEnd==0)&&(TransferError==SD_OK)&&timeout)timeout--; - if(timeout==0)return SD_DATA_TIMEOUT; //��ʱ - if(TransferError!=SD_OK)return TransferError; + if (timeout==0) return SD_DATA_TIMEOUT; //��ʱ + if (TransferError!=SD_OK) return TransferError; } } SDIO->ICR=0X5FF; //������б�� @@ -891,7 +895,7 @@ void SDIO_IRQHandler(void) //����ֵ:�������? SD_Error SD_ProcessIRQSrc(void) { - if(SDIO->STA&(1<<8))//��������ж�? + if (SDIO->STA&(1<<8))//��������ж�? { if (StopCondition==1) { @@ -903,35 +907,35 @@ SD_Error SD_ProcessIRQSrc(void) TransferEnd = 1; return(TransferError); } - if(SDIO->STA&(1<<1))//����CRC���� + if (SDIO->STA&(1<<1))//����CRC���� { SDIO->ICR|=1<<1;//����жϱ�� SDIO->MASK&=~((1<<1)|(1<<3)|(1<<8)|(1<<14)|(1<<15)|(1<<4)|(1<<5)|(1<<9));//�ر�����ж�? TransferError = SD_DATA_CRC_FAIL; return(SD_DATA_CRC_FAIL); } - if(SDIO->STA&(1<<3))//���ݳ�ʱ���� + if (SDIO->STA&(1<<3))//���ݳ�ʱ���� { SDIO->ICR|=1<<3;//����жϱ�� SDIO->MASK&=~((1<<1)|(1<<3)|(1<<8)|(1<<14)|(1<<15)|(1<<4)|(1<<5)|(1<<9));//�ر�����ж�? TransferError = SD_DATA_TIMEOUT; return(SD_DATA_TIMEOUT); } - if(SDIO->STA&(1<<5))//FIFO�������? + if (SDIO->STA&(1<<5))//FIFO�������? { SDIO->ICR|=1<<5;//����жϱ�� SDIO->MASK&=~((1<<1)|(1<<3)|(1<<8)|(1<<14)|(1<<15)|(1<<4)|(1<<5)|(1<<9));//�ر�����ж�? TransferError = SD_RX_OVERRUN; return(SD_RX_OVERRUN); } - if(SDIO->STA&(1<<4))//FIFO�������? + if (SDIO->STA&(1<<4))//FIFO�������? { SDIO->ICR|=1<<4;//����жϱ�� SDIO->MASK&=~((1<<1)|(1<<3)|(1<<8)|(1<<14)|(1<<15)|(1<<4)|(1<<5)|(1<<9));//�ر�����ж�? TransferError = SD_TX_UNDERRUN; return(SD_TX_UNDERRUN); } - if(SDIO->STA&(1<<9))//��ʼλ���� + if (SDIO->STA&(1<<9))//��ʼλ���� { SDIO->ICR|=1<<9;//����жϱ�� SDIO->MASK&=~((1<<1)|(1<<3)|(1<<8)|(1<<14)|(1<<15)|(1<<4)|(1<<5)|(1<<9));//�ر�����ж�? @@ -949,9 +953,9 @@ SD_Error CmdError(void) u32 timeout=SDIO_CMD0TIMEOUT; while(timeout--) { - if(SDIO->STA&(1<<7))break; //�����ѷ���(������Ӧ) + if (SDIO->STA&(1<<7))break; //�����ѷ���(������Ӧ) } - if(timeout==0)return SD_CMD_RSP_TIMEOUT; + if (timeout==0) return SD_CMD_RSP_TIMEOUT; SDIO->ICR=0X5FF; //������ return errorstatus; } @@ -965,15 +969,15 @@ SD_Error CmdResp7Error(void) while(timeout--) { status=SDIO->STA; - if(status&((1<<0)|(1<<2)|(1<<6)))break;//CRC����/������Ӧ��ʱ/�Ѿ��յ���Ӧ(CRCУ��ɹ�?) + if (status&((1<<0)|(1<<2)|(1<<6)))break;//CRC����/������Ӧ��ʱ/�Ѿ��յ���Ӧ(CRCУ��ɹ�?) } - if((timeout==0)||(status&(1<<2))) //��Ӧ��ʱ + if ((timeout==0)||(status&(1<<2))) //��Ӧ��ʱ { errorstatus=SD_CMD_RSP_TIMEOUT; //��ǰ������2.0���ݿ�,���߲�֧���趨�ĵ�ѹ��Χ SDIO->ICR|=1<<2; //���������Ӧ��ʱ���? return errorstatus; } - if(status&1<<6) //�ɹ����յ���Ӧ + if (status&1<<6) //�ɹ����յ���Ӧ { errorstatus=SD_OK; SDIO->ICR|=1<<6; //�����Ӧ���? @@ -989,19 +993,19 @@ SD_Error CmdResp1Error(u8 cmd) while(1) { status=SDIO->STA; - if(status&((1<<0)|(1<<2)|(1<<6)))break;//CRC����/������Ӧ��ʱ/�Ѿ��յ���Ӧ(CRCУ��ɹ�?) + if (status&((1<<0)|(1<<2)|(1<<6)))break;//CRC����/������Ӧ��ʱ/�Ѿ��յ���Ӧ(CRCУ��ɹ�?) } - if(status&(1<<2)) //��Ӧ��ʱ + if (status&(1<<2)) //��Ӧ��ʱ { SDIO->ICR=1<<2; //���������Ӧ��ʱ���? return SD_CMD_RSP_TIMEOUT; } - if(status&(1<<0)) //CRC���� + if (status&(1<<0)) //CRC���� { SDIO->ICR=1<<0; //������? return SD_CMD_CRC_FAIL; } - if(SDIO->RESPCMD!=cmd)return SD_ILLEGAL_CMD;//���ƥ�� + if (SDIO->RESPCMD!=cmd) return SD_ILLEGAL_CMD;//���ƥ�� SDIO->ICR=0X5FF; //������ return (SD_Error)(SDIO->RESP1&SD_OCR_ERRORBITS);//���ؿ���Ӧ } @@ -1013,9 +1017,9 @@ SD_Error CmdResp3Error(void) while(1) { status=SDIO->STA; - if(status&((1<<0)|(1<<2)|(1<<6)))break;//CRC����/������Ӧ��ʱ/�Ѿ��յ���Ӧ(CRCУ��ɹ�?) + if (status&((1<<0)|(1<<2)|(1<<6)))break;//CRC����/������Ӧ��ʱ/�Ѿ��յ���Ӧ(CRCУ��ɹ�?) } - if(status&(1<<2)) //��Ӧ��ʱ + if (status&(1<<2)) //��Ӧ��ʱ { SDIO->ICR|=1<<2; //���������Ӧ��ʱ���? return SD_CMD_RSP_TIMEOUT; @@ -1033,15 +1037,15 @@ SD_Error CmdResp2Error(void) while(timeout--) { status=SDIO->STA; - if(status&((1<<0)|(1<<2)|(1<<6)))break;//CRC����/������Ӧ��ʱ/�Ѿ��յ���Ӧ(CRCУ��ɹ�?) + if (status&((1<<0)|(1<<2)|(1<<6)))break;//CRC����/������Ӧ��ʱ/�Ѿ��յ���Ӧ(CRCУ��ɹ�?) } - if((timeout==0)||(status&(1<<2))) //��Ӧ��ʱ + if ((timeout==0)||(status&(1<<2))) //��Ӧ��ʱ { errorstatus=SD_CMD_RSP_TIMEOUT; SDIO->ICR|=1<<2; //���������Ӧ��ʱ���? return errorstatus; } - if(status&1<<0) //CRC���� + if (status&1<<0) //CRC���� { errorstatus=SD_CMD_CRC_FAIL; SDIO->ICR|=1<<0; //�����Ӧ���? @@ -1061,32 +1065,32 @@ SD_Error CmdResp6Error(u8 cmd,u16*prca) while(1) { status=SDIO->STA; - if(status&((1<<0)|(1<<2)|(1<<6)))break;//CRC����/������Ӧ��ʱ/�Ѿ��յ���Ӧ(CRCУ��ɹ�?) + if (status&((1<<0)|(1<<2)|(1<<6)))break;//CRC����/������Ӧ��ʱ/�Ѿ��յ���Ӧ(CRCУ��ɹ�?) } - if(status&(1<<2)) //��Ӧ��ʱ + if (status&(1<<2)) //��Ӧ��ʱ { SDIO->ICR|=1<<2; //���������Ӧ��ʱ���? return SD_CMD_RSP_TIMEOUT; } - if(status&1<<0) //CRC���� + if (status&1<<0) //CRC���� { SDIO->ICR|=1<<0; //�����Ӧ���? return SD_CMD_CRC_FAIL; } - if(SDIO->RESPCMD!=cmd) //�ж��Ƿ���Ӧcmd���� + if (SDIO->RESPCMD!=cmd) //�ж��Ƿ���Ӧcmd���� { return SD_ILLEGAL_CMD; } SDIO->ICR=0X5FF; //������б�� rspr1=SDIO->RESP1; //�õ���Ӧ - if(SD_ALLZERO==(rspr1&(SD_R6_GENERAL_UNKNOWN_ERROR|SD_R6_ILLEGAL_CMD|SD_R6_COM_CRC_FAILED))) + if (SD_ALLZERO==(rspr1&(SD_R6_GENERAL_UNKNOWN_ERROR|SD_R6_ILLEGAL_CMD|SD_R6_COM_CRC_FAILED))) { *prca=(u16)(rspr1>>16); //����16λ�õ�,rca return errorstatus; } - if(rspr1&SD_R6_GENERAL_UNKNOWN_ERROR)return SD_GENERAL_UNKNOWN_ERROR; - if(rspr1&SD_R6_ILLEGAL_CMD)return SD_ILLEGAL_CMD; - if(rspr1&SD_R6_COM_CRC_FAILED)return SD_COM_CRC_FAILED; + if (rspr1&SD_R6_GENERAL_UNKNOWN_ERROR) return SD_GENERAL_UNKNOWN_ERROR; + if (rspr1&SD_R6_ILLEGAL_CMD) return SD_ILLEGAL_CMD; + if (rspr1&SD_R6_COM_CRC_FAILED) return SD_COM_CRC_FAILED; return errorstatus; } @@ -1098,16 +1102,16 @@ SD_Error SDEnWideBus(u8 enx) SD_Error errorstatus = SD_OK; u32 scr[2]={0,0}; u8 arg=0X00; - if(enx)arg=0X02; + if (enx)arg=0X02; else arg=0X00; - if(SDIO->RESP1&SD_CARD_LOCKED)return SD_LOCK_UNLOCK_FAILED;//SD������LOCKED״̬ + if (SDIO->RESP1&SD_CARD_LOCKED) return SD_LOCK_UNLOCK_FAILED;//SD������LOCKED״̬ errorstatus=FindSCR(RCA,scr); //�õ�SCR�Ĵ������� - if(errorstatus!=SD_OK)return errorstatus; - if((scr[1]&SD_WIDE_BUS_SUPPORT)!=SD_ALLZERO) //֧�ֿ����� + if (errorstatus!=SD_OK) return errorstatus; + if ((scr[1]&SD_WIDE_BUS_SUPPORT)!=SD_ALLZERO) //֧�ֿ����� { SDIO_Send_Cmd(SD_CMD_APP_CMD,1,(u32)RCA<<16); //����CMD55+RCA,����Ӧ errorstatus=CmdResp1Error(SD_CMD_APP_CMD); - if(errorstatus!=SD_OK)return errorstatus; + if (errorstatus!=SD_OK) return errorstatus; SDIO_Send_Cmd(SD_CMD_APP_SD_SET_BUSWIDTH,1,arg);//����ACMD6,����Ӧ,����:10,4λ;00,1λ. errorstatus=CmdResp1Error(SD_CMD_APP_SD_SET_BUSWIDTH); return errorstatus; @@ -1122,17 +1126,17 @@ SD_Error IsCardProgramming(u8 *pstatus) SDIO_Send_Cmd(SD_CMD_SEND_STATUS,1,(u32)RCA<<16); //����CMD13 status=SDIO->STA; while(!(status&((1<<0)|(1<<6)|(1<<2))))status=SDIO->STA;//�ȴ��������? - if(status&(1<<0)) //CRC���ʧ��? + if (status&(1<<0)) //CRC���ʧ��? { SDIO->ICR|=1<<0; //���������? return SD_CMD_CRC_FAIL; } - if(status&(1<<2)) //���ʱ + if (status&(1<<2)) //���ʱ { SDIO->ICR|=1<<2; //���������? return SD_CMD_RSP_TIMEOUT; } - if(SDIO->RESPCMD!=SD_CMD_SEND_STATUS)return SD_ILLEGAL_CMD; + if (SDIO->RESPCMD!=SD_CMD_SEND_STATUS) return SD_ILLEGAL_CMD; SDIO->ICR=0X5FF; //������б�� respR1=SDIO->RESP1; *pstatus=(u8)((respR1>>9)&0x0000000F); @@ -1144,14 +1148,14 @@ SD_Error IsCardProgramming(u8 *pstatus) SD_Error SD_SendStatus(uint32_t *pcardstatus) { SD_Error errorstatus = SD_OK; - if(pcardstatus==NULL) + if (pcardstatus==NULL) { errorstatus=SD_INVALID_PARAMETER; return errorstatus; } SDIO_Send_Cmd(SD_CMD_SEND_STATUS,1,RCA<<16); //����CMD13,����Ӧ errorstatus=CmdResp1Error(SD_CMD_SEND_STATUS); //��ѯ��Ӧ״̬ - if(errorstatus!=SD_OK)return errorstatus; + if (errorstatus!=SD_OK) return errorstatus; *pcardstatus=SDIO->RESP1;//��ȡ��Ӧֵ return errorstatus; } @@ -1160,7 +1164,7 @@ SD_Error SD_SendStatus(uint32_t *pcardstatus) SDCardState SD_GetState(void) { u32 resp1=0; - if(SD_SendStatus(&resp1)!=SD_OK)return SD_CARD_ERROR; + if (SD_SendStatus(&resp1)!=SD_OK) return SD_CARD_ERROR; else return (SDCardState)((resp1>>9) & 0x0F); } //����SD����SCR�Ĵ���ֵ @@ -1174,39 +1178,39 @@ SD_Error FindSCR(u16 rca,u32 *pscr) u32 tempscr[2]={0,0}; SDIO_Send_Cmd(SD_CMD_SET_BLOCKLEN,1,8); //����CMD16,����Ӧ,����Block SizeΪ8�ֽ� errorstatus=CmdResp1Error(SD_CMD_SET_BLOCKLEN); - if(errorstatus!=SD_OK)return errorstatus; + if (errorstatus!=SD_OK) return errorstatus; SDIO_Send_Cmd(SD_CMD_APP_CMD,1,(u32)rca<<16); //����CMD55,����Ӧ errorstatus=CmdResp1Error(SD_CMD_APP_CMD); - if(errorstatus!=SD_OK)return errorstatus; + if (errorstatus!=SD_OK) return errorstatus; SDIO_Send_Data_Cfg(SD_DATATIMEOUT,8,3,1); //8���ֽڳ���,blockΪ8�ֽ�,SD����SDIO. SDIO_Send_Cmd(SD_CMD_SD_APP_SEND_SCR,1,0); //����ACMD51,����Ӧ,����Ϊ0 errorstatus=CmdResp1Error(SD_CMD_SD_APP_SEND_SCR); - if(errorstatus!=SD_OK)return errorstatus; + if (errorstatus!=SD_OK) return errorstatus; while(!(SDIO->STA&(SDIO_FLAG_RXOVERR|SDIO_FLAG_DCRCFAIL|SDIO_FLAG_DTIMEOUT|SDIO_FLAG_DBCKEND|SDIO_FLAG_STBITERR))) { - if(SDIO->STA&(1<<21))//����FIFO���ݿ��� + if (SDIO->STA&(1<<21))//����FIFO���ݿ��� { *(tempscr+index)=SDIO->FIFO; //��ȡFIFO���� index++; - if(index>=2)break; + if (index>=2)break; } } - if(SDIO->STA&(1<<3)) //�������ݳ�ʱ + if (SDIO->STA&(1<<3)) //�������ݳ�ʱ { SDIO->ICR|=1<<3; //������ return SD_DATA_TIMEOUT; } - else if(SDIO->STA&(1<<1)) //�ѷ���/���յ����ݿ�CRCУ�����? + else if (SDIO->STA&(1<<1)) //�ѷ���/���յ����ݿ�CRCУ�����? { SDIO->ICR|=1<<1; //������ return SD_DATA_CRC_FAIL; } - else if(SDIO->STA&(1<<5)) //����FIFO���? + else if (SDIO->STA&(1<<5)) //����FIFO���? { SDIO->ICR|=1<<5; //������ return SD_RX_OVERRUN; } - else if(SDIO->STA&(1<<9)) //��ʼλ������ + else if (SDIO->STA&(1<<9)) //��ʼλ������ { SDIO->ICR|=1<<9; //������ return SD_START_BIT_ERR; @@ -1262,7 +1266,7 @@ u8 SD_ReadDisk(u8*buf,u32 sector,u8 cnt) long long lsector=sector; u8 n; lsector<<=9; - if((u32)buf%4!=0) + if ((u32)buf%4!=0) { for(n=0;nIDR & (1<<12)) != 0) + if ((GPIOB->IDR & (1<<12)) != 0) { SPI_ReEnable(!!(GPIOB->IDR & (1<<13))); // Adaptive spi mode0 / mode3 ST7920_SPI_NUM->CR1 |= (1<<6); diff --git a/TFT/src/User/Hal/stm32f2_f4xx/GPIO_Init.c b/TFT/src/User/Hal/stm32f2_f4xx/GPIO_Init.c index 8fcef52ea7..bbac223503 100644 --- a/TFT/src/User/Hal/stm32f2_f4xx/GPIO_Init.c +++ b/TFT/src/User/Hal/stm32f2_f4xx/GPIO_Init.c @@ -28,7 +28,7 @@ void GPIO_InitSet(uint16_t io, GPIO_MODE mode, uint8_t AF) GPIO_Port[port]->OSPEEDR |= (GPIO_MODE_GET_OSPEED(mode)) << (pin*2); //set speed bits } - if(GPIO_MODE_GET_MODE(mode) == GPIO_MODE_AF) + if (GPIO_MODE_GET_MODE(mode) == GPIO_MODE_AF) { GPIO_Port[port]->AFR[pin >> 0x03] &= ~(0xF << ((pin & 0x07) * 4)); //clear alternate function bits GPIO_Port[port]->AFR[pin >> 0x03] |= AF<< ((pin & 0x07) * 4); //set alternate function bits @@ -40,7 +40,7 @@ void GPIO_SetLevel(uint16_t io, uint8_t level) u16 port = GPIO_GET_PORT(io); u16 pin = GPIO_GET_PIN(io); - if(level) + if (level) GPIO_Port[port]->BSRRL = 1 << pin; else GPIO_Port[port]->BSRRH = 1 << pin; diff --git a/TFT/src/User/Hal/stm32f2_f4xx/Serial.c b/TFT/src/User/Hal/stm32f2_f4xx/Serial.c index 0a27228650..a4f5b2cfa5 100644 --- a/TFT/src/User/Hal/stm32f2_f4xx/Serial.c +++ b/TFT/src/User/Hal/stm32f2_f4xx/Serial.c @@ -124,14 +124,14 @@ void Serial_DMAClearFlag(uint8_t port) void USART_IRQHandler(uint8_t port) { - if((Serial[port].uart->SR & (1<<4))!=0) + if ((Serial[port].uart->SR & (1<<4))!=0) { Serial[port].uart->SR; Serial[port].uart->DR; dmaL1Data[port].wIndex = DMA_TRANS_LEN - Serial[port].dma_stream->NDTR; uint16_t wIndex = (dmaL1Data[port].wIndex == 0) ? DMA_TRANS_LEN : dmaL1Data[port].wIndex; - if(dmaL1Data[port].cache[wIndex-1] == '\n') // Receive completed + if (dmaL1Data[port].cache[wIndex-1] == '\n') // Receive completed { infoHost.rx_ok[port] = true; } diff --git a/TFT/src/User/Hal/stm32f2_f4xx/spi_slave.c b/TFT/src/User/Hal/stm32f2_f4xx/spi_slave.c index d064dd4950..b24c06aca9 100644 --- a/TFT/src/User/Hal/stm32f2_f4xx/spi_slave.c +++ b/TFT/src/User/Hal/stm32f2_f4xx/spi_slave.c @@ -148,7 +148,7 @@ void EXTI15_10_IRQHandler(void) #ifdef ST7920_SPI case LCD12864: - if((GPIOB->IDR & (1<<12)) != 0) + if ((GPIOB->IDR & (1<<12)) != 0) { SPI_ReEnable(!!(GPIOB->IDR & (1<<13))); // Adaptive spi mode0 / mode3 ST7920_SPI_NUM->CR1 |= (1<<6); diff --git a/TFT/src/User/Hal/xpt2046.c b/TFT/src/User/Hal/xpt2046.c index 9fc0eb9699..dacc579571 100644 --- a/TFT/src/User/Hal/xpt2046.c +++ b/TFT/src/User/Hal/xpt2046.c @@ -68,7 +68,7 @@ u16 XPT2046_Average_AD(u8 CMD) { for(j=i+1; j buf[j]) //Ascending + if (buf[i] > buf[j]) //Ascending { temp = buf[i]; buf[i] = buf[j]; @@ -90,7 +90,7 @@ u16 XPT2046_Repeated_Compare_AD(u8 CMD) ad1 = XPT2046_Average_AD(CMD); ad2 = XPT2046_Average_AD(CMD); - if((ad2 <= ad1 && ad1 < ad2 + ERR_RANGE) + if ((ad2 <= ad1 && ad1 < ad2 + ERR_RANGE) || (ad1 <= ad2 && ad2 < ad1 + ERR_RANGE)) //The error before and after is less than ERR_RANGE //Two errors before and after ERR_RANGE { return (ad1+ad2)/2; diff --git a/TFT/src/User/Menu/ConnectionSettings.c b/TFT/src/User/Menu/ConnectionSettings.c index d00d41d4f0..ffab3a992e 100644 --- a/TFT/src/User/Menu/ConnectionSettings.c +++ b/TFT/src/User/Menu/ConnectionSettings.c @@ -67,7 +67,7 @@ void menuBaudrate(void) break; default: - if(key_num < LISTITEM_PER_PAGE) + if (key_num < LISTITEM_PER_PAGE) { uint16_t tmp_i = listWidgetGetCurPage() * LISTITEM_PER_PAGE + key_num; if (tmp_i != cur_item) { // has changed @@ -89,7 +89,7 @@ void menuBaudrate(void) loopProcess(); } - if(memcmp(&now, &infoSettings, sizeof(SETTINGS))) + if (memcmp(&now, &infoSettings, sizeof(SETTINGS))) { storePara(); } diff --git a/TFT/src/User/Menu/Extrude.c b/TFT/src/User/Menu/Extrude.c index c383283967..d1df271807 100644 --- a/TFT/src/User/Menu/Extrude.c +++ b/TFT/src/User/Menu/Extrude.c @@ -82,7 +82,7 @@ void menuExtrude(void) #if LCD_ENCODER_SUPPORT encoderPosition = 0; #endif - if(eRelative) mustStoreCmd("M82\n"); // Set extruder to absolute + if (eRelative) mustStoreCmd("M82\n"); // Set extruder to absolute while(infoMenu.menu[infoMenu.cur] == menuExtrude) { key_num = menuKeyGetValue(); @@ -119,7 +119,7 @@ void menuExtrude(void) default: #if LCD_ENCODER_SUPPORT - if(encoderPosition) + if (encoderPosition) { eTemp += item_len[item_len_i]*encoderPosition; encoderPosition = 0; @@ -127,11 +127,11 @@ void menuExtrude(void) #endif break; } - if(extrudeCoordinate != eTemp) + if (extrudeCoordinate != eTemp) { extrudeCoordinate = eTemp; extrudeCoordinateReDraw(true); - if(item_extruder_i != heatGetCurrentTool()) + if (item_extruder_i != heatGetCurrentTool()) storeCmd("%s\n", tool_change[item_extruder_i]); storeCmd("G0 E%.5f F%d\n", extrudeCoordinate, infoSettings.ext_speed[item_speed_i]); } @@ -139,5 +139,5 @@ void menuExtrude(void) } mustStoreCmd("G92 E%.5f\n",eSaved); mustStoreCmd("G0 F%d\n",feedrate); - if(eRelative) mustStoreCmd("M83\n"); // Set extruder to relative + if (eRelative) mustStoreCmd("M83\n"); // Set extruder to relative } diff --git a/TFT/src/User/Menu/Fan.c b/TFT/src/User/Menu/Fan.c index 3c72c6400a..6a4cccbd34 100644 --- a/TFT/src/User/Menu/Fan.c +++ b/TFT/src/User/Menu/Fan.c @@ -19,7 +19,7 @@ void fanSpeedReDraw(bool skip_header) GUI_DispString(exhibitRect.x0, exhibitRect.y0, (u8 *)tempstr); } - if(infoSettings.fan_percentage == 1) + if (infoSettings.fan_percentage == 1) sprintf(tempstr, " %d%% ", fanGetSpeedPercent(curIndex)); else sprintf(tempstr, " %d ", (int)fanGetSpeed(curIndex)); @@ -118,7 +118,7 @@ void menuFan(void) default: #if LCD_ENCODER_SUPPORT - if(encoderPosition) + if (encoderPosition) { if (actFan < infoSettings.fan_max[curIndex] && encoderPosition > 0) { diff --git a/TFT/src/User/Menu/FeatureSettings.c b/TFT/src/User/Menu/FeatureSettings.c index 80e2fe4bd5..6a980a0c1a 100644 --- a/TFT/src/User/Menu/FeatureSettings.c +++ b/TFT/src/User/Menu/FeatureSettings.c @@ -244,7 +244,7 @@ void updateFeatureSettings(uint8_t key_val) case SKEY_LCD_BRIGHTNESS: { infoSettings.lcd_brightness = (infoSettings.lcd_brightness + 1) % ITEM_BRIGHTNESS_NUM; - if(infoSettings.lcd_brightness == 0) + if (infoSettings.lcd_brightness == 0) { infoSettings.lcd_brightness = 1; //In Normal it should not be off. Set back to 5% } @@ -431,12 +431,12 @@ void loadFeatureSettings() } else { - if(fe_cur_page == 0) + if (fe_cur_page == 0) { featureSettingsItems.items[5].icon = ICONCHAR_BACKGROUND; featureSettingsItems.items[6].icon = ICONCHAR_PAGEDOWN; } - else if(fe_cur_page == (FE_PAGE_COUNT-1)) + else if (fe_cur_page == (FE_PAGE_COUNT-1)) { featureSettingsItems.items[5].icon = ICONCHAR_PAGEUP; featureSettingsItems.items[6].icon = ICONCHAR_BACKGROUND; @@ -466,7 +466,7 @@ void menuFeatureSettings(void) switch (key_num) { case KEY_ICON_5: - if(FE_PAGE_COUNT > 1) + if (FE_PAGE_COUNT > 1) { if (fe_cur_page > 0) { @@ -478,7 +478,7 @@ void menuFeatureSettings(void) break; case KEY_ICON_6: - if(FE_PAGE_COUNT > 1) + if (FE_PAGE_COUNT > 1) { if (fe_cur_page < FE_PAGE_COUNT - 1) { @@ -494,7 +494,7 @@ void menuFeatureSettings(void) infoMenu.cur--; break; default: - if(key_num < LISTITEM_PER_PAGE) + if (key_num < LISTITEM_PER_PAGE) { updateFeatureSettings(key_num); menuDrawListItem(&featureSettingsItems.items[key_num],key_num); @@ -505,7 +505,7 @@ void menuFeatureSettings(void) loopProcess(); } - if(memcmp(&now, &infoSettings, sizeof(SETTINGS))) + if (memcmp(&now, &infoSettings, sizeof(SETTINGS))) { storePara(); } diff --git a/TFT/src/User/Menu/Heat.c b/TFT/src/User/Menu/Heat.c index 0a94844f60..a4c431575a 100644 --- a/TFT/src/User/Menu/Heat.c +++ b/TFT/src/User/Menu/Heat.c @@ -116,13 +116,13 @@ void menuHeat(void) default : #if LCD_ENCODER_SUPPORT - if(encoderPosition) + if (encoderPosition) { - if(encoderPosition > 0) + if (encoderPosition > 0) { heatSetTargetTemp(c_heater, actTarget + item_degree[item_degree_i]); } - if(encoderPosition < 0) + if (encoderPosition < 0) { heatSetTargetTemp(c_heater, actTarget - item_degree[item_degree_i]); } @@ -142,7 +142,7 @@ void menuHeat(void) } // Set slow update time if not waiting for target temperature - if(heatHasWaiting() == false) + if (heatHasWaiting() == false) { heatSetUpdateTime(TEMPERATURE_QUERY_SLOW_DURATION); } diff --git a/TFT/src/User/Menu/MachineSettings.c b/TFT/src/User/Menu/MachineSettings.c index 512a4c5f6e..81e70ac505 100644 --- a/TFT/src/User/Menu/MachineSettings.c +++ b/TFT/src/User/Menu/MachineSettings.c @@ -50,12 +50,12 @@ void loaditemsCustomGcode() } else { - if(gc_cur_page == 0) + if (gc_cur_page == 0) { customItems.items[5].icon = ICONCHAR_BACKGROUND; customItems.items[6].icon = ICONCHAR_PAGEDOWN; } - else if(gc_cur_page == (gc_page_count-1)) + else if (gc_cur_page == (gc_page_count-1)) { customItems.items[5].icon = ICONCHAR_PAGEUP; customItems.items[6].icon = ICONCHAR_BACKGROUND; diff --git a/TFT/src/User/Menu/MarlinMode.c b/TFT/src/User/Menu/MarlinMode.c index f1482f82ff..cf21bdb8fe 100644 --- a/TFT/src/User/Menu/MarlinMode.c +++ b/TFT/src/User/Menu/MarlinMode.c @@ -20,7 +20,7 @@ void menuMarlinMode(void) GUI_Clear(infoSettings.marlin_mode_bg_color); GUI_SetColor(infoSettings.marlin_mode_font_color); GUI_SetBkColor(infoSettings.marlin_mode_bg_color); - if(infoSettings.marlin_mode_showtitle == 1) + if (infoSettings.marlin_mode_showtitle == 1) { STRINGS_STORE tempST; W25Qxx_ReadBuffer((uint8_t *)&tempST,STRINGS_STORE_ADDR,sizeof(STRINGS_STORE)); @@ -60,7 +60,7 @@ void menuMarlinMode(void) #if LCD_ENCODER_SUPPORT sendEncoder(LCD_ReadTouch()); - if(LCD_BtnTouch(LCD_BUTTON_INTERVALS)) + if (LCD_BtnTouch(LCD_BUTTON_INTERVALS)) { sendEncoder(1); } diff --git a/TFT/src/User/Menu/Mode.c b/TFT/src/User/Menu/Mode.c index b97db1456d..d2f74bce48 100644 --- a/TFT/src/User/Menu/Mode.c +++ b/TFT/src/User/Menu/Mode.c @@ -45,7 +45,7 @@ void infoMenuSelect(void) setEncActiveSignal(0); #endif GUI_RestoreColorDefault(); - if(infoSettings.unified_menu == 1) //if Unified menu is selected + if (infoSettings.unified_menu == 1) //if Unified menu is selected { infoMenu.menu[infoMenu.cur] = menuStatus; //status screen as default screen on boot } diff --git a/TFT/src/User/Menu/More.c b/TFT/src/User/Menu/More.c index e4662237ec..bb573fa70a 100644 --- a/TFT/src/User/Menu/More.c +++ b/TFT/src/User/Menu/More.c @@ -3,7 +3,7 @@ void isPauseConfirm(void) { - if(setPrintPause(true,false)) + if (setPrintPause(true,false)) { infoMenu.menu[infoMenu.cur] = menuExtrude; } diff --git a/TFT/src/User/Menu/Move.c b/TFT/src/User/Menu/Move.c index 601884d536..bbae426049 100644 --- a/TFT/src/User/Menu/Move.c +++ b/TFT/src/User/Menu/Move.c @@ -94,7 +94,7 @@ void menuMove(void) {{0, 4}, {1, 5}, {2, 6}} #endif ; - if(infoSettings.invert_axis[X_AXIS] != 1) + if (infoSettings.invert_axis[X_AXIS] != 1) { LOAD_XYZ_LABEL_INDEX(table[X_AXIS][0], INC, table[X_AXIS][1], DEC, X); // table[0] <--> INC(+) table[1] <--> DEC(+) if not inverted } @@ -103,7 +103,7 @@ void menuMove(void) LOAD_XYZ_LABEL_INDEX(table[X_AXIS][0], DEC, table[X_AXIS][1], INC, X); // table[0] <--> DEC(-) table[1] <--> INC(-) if inverted } - if(infoSettings.invert_axis[Y_AXIS] != 1) + if (infoSettings.invert_axis[Y_AXIS] != 1) { LOAD_XYZ_LABEL_INDEX(table[Y_AXIS][0], INC, table[Y_AXIS][1], DEC, Y); } @@ -112,7 +112,7 @@ void menuMove(void) LOAD_XYZ_LABEL_INDEX(table[Y_AXIS][0], DEC, table[Y_AXIS][1], INC, Y); } - if(infoSettings.invert_axis[Z_AXIS] != 1) + if (infoSettings.invert_axis[Z_AXIS] != 1) { LOAD_XYZ_LABEL_INDEX(table[Z_AXIS][0], INC, table[Z_AXIS][1], DEC, Z); } @@ -171,7 +171,7 @@ void menuMove(void) #endif default: #if LCD_ENCODER_SUPPORT - if(encoderPosition) + if (encoderPosition) { storeMoveCmd(nowAxis, encoderPosition > 0 ? 1 : -1); encoderPosition = 0; diff --git a/TFT/src/User/Menu/Parametersetting.c b/TFT/src/User/Menu/Parametersetting.c index a92503c547..2284e41ebb 100644 --- a/TFT/src/User/Menu/Parametersetting.c +++ b/TFT/src/User/Menu/Parametersetting.c @@ -215,12 +215,12 @@ void loadParameterPage(void) } else { - if(ps_cur_page == 0) + if (ps_cur_page == 0) { parameterMainItems.items[5].icon = ICONCHAR_BACKGROUND; parameterMainItems.items[6].icon = ICONCHAR_PAGEDOWN; } - else if(ps_cur_page == (total_pages-1)) + else if (ps_cur_page == (total_pages-1)) { parameterMainItems.items[5].icon = ICONCHAR_PAGEUP; parameterMainItems.items[6].icon = ICONCHAR_BACKGROUND; @@ -254,7 +254,7 @@ void menuParameterSettings(void) switch (key_num) { case KEY_ICON_5: - if(total_pages > 1) + if (total_pages > 1) { if (ps_cur_page > 0) { @@ -266,7 +266,7 @@ void menuParameterSettings(void) break; case KEY_ICON_6: - if(total_pages > 1) + if (total_pages > 1) { if (ps_cur_page < total_pages - 1) { @@ -350,7 +350,7 @@ bool temperatureStatusValid(void) void loopTemperatureStatus(void) { - if(getMenuType() == MENU_TYPE_FULLSCREEN) return; + if (getMenuType() == MENU_TYPE_FULLSCREEN) return; if (!temperatureStatusValid()) return; uint8_t tmpHeater[3]; // chamber, bed, hotend diff --git a/TFT/src/User/Menu/PowerFailed.c b/TFT/src/User/Menu/PowerFailed.c index b812bb3351..e1e22dbbea 100644 --- a/TFT/src/User/Menu/PowerFailed.c +++ b/TFT/src/User/Menu/PowerFailed.c @@ -83,14 +83,14 @@ void powerFailedCache(u32 offset) void powerFailedClose(void) { - if(create_ok==false) return; + if (create_ok==false) return; f_close(&fpPowerFailed); } void powerFailedDelete(void) { - if(create_ok==false) return; + if (create_ok==false) return; f_unlink(powerFailedFileName); clearPowerFailed(); @@ -100,9 +100,9 @@ static bool powerFailedExist(void) { FIL fp; UINT br; - if(f_open(&fp, powerFailedFileName, FA_OPEN_EXISTING|FA_READ) != FR_OK) return false; - if(f_read(&fp, infoFile.title, MAX_PATH_LEN, &br) != FR_OK) return false; - if(f_close(&fp) != FR_OK) return false; + if (f_open(&fp, powerFailedFileName, FA_OPEN_EXISTING|FA_READ) != FR_OK) return false; + if (f_read(&fp, infoFile.title, MAX_PATH_LEN, &br) != FR_OK) return false; + if (f_close(&fp) != FR_OK) return false; create_ok = true; return true; @@ -111,7 +111,7 @@ static bool powerFailedExist(void) bool powerFailedlSeek(FIL* fp) { - if(f_lseek(fp,infoBreakPoint.offset) != FR_OK) return false; + if (f_lseek(fp,infoBreakPoint.offset) != FR_OK) return false; return true; } @@ -123,15 +123,15 @@ bool powerOffGetData(void) UINT br; uint8_t model_icon; - if(f_open(&fp, powerFailedFileName, FA_OPEN_EXISTING|FA_READ) != FR_OK) return false; - if(f_lseek(&fp, MAX_PATH_LEN) != FR_OK) return false; - if(f_read(&fp, &model_icon, 1, &br) != FR_OK) return false; - if(f_read(&fp, &infoBreakPoint, sizeof(infoBreakPoint), &br) != FR_OK) return false; + if (f_open(&fp, powerFailedFileName, FA_OPEN_EXISTING|FA_READ) != FR_OK) return false; + if (f_lseek(&fp, MAX_PATH_LEN) != FR_OK) return false; + if (f_read(&fp, &model_icon, 1, &br) != FR_OK) return false; + if (f_read(&fp, &infoBreakPoint, sizeof(infoBreakPoint), &br) != FR_OK) return false; setPrintModelIcon(model_icon); for(int8_t i = MAX_HEATER_COUNT - 1; i >= 0; i--) { - if(infoBreakPoint.target[i] != 0) + if (infoBreakPoint.target[i] != 0) { mustStoreCacheCmd("%s S%d\n", heatWaitCmd[i], infoBreakPoint.target[i]); } @@ -139,22 +139,22 @@ bool powerOffGetData(void) for(uint8_t i = 0; i < infoSettings.fan_count; i++) { - if(infoBreakPoint.fan[i] != 0 && fanIsType(i,FAN_TYPE_F)) + if (infoBreakPoint.fan[i] != 0 && fanIsType(i,FAN_TYPE_F)) { mustStoreCacheCmd("%s S%d\n", fanCmd[i], infoBreakPoint.fan[i]); } } mustStoreCacheCmd("%s\n", tool_change[infoBreakPoint.tool]); - if(infoBreakPoint.feedrate != 0) + if (infoBreakPoint.feedrate != 0) { uint16_t z_raised = 0; - if(infoSettings.btt_ups == 1) + if (infoSettings.btt_ups == 1) { z_raised += infoSettings.powerloss_z_raise; } - if(infoBreakPoint.pause) + if (infoBreakPoint.pause) { z_raised += infoSettings.pause_z_raise; } @@ -182,11 +182,11 @@ bool powerOffGetData(void) mustStoreCacheCmd("G92 E%.5f\n",infoBreakPoint.axis[E_AXIS]); mustStoreCacheCmd("G1 F%d\n",infoBreakPoint.feedrate); - if(infoBreakPoint.relative_e == false) + if (infoBreakPoint.relative_e == false) { mustStoreCacheCmd("M82\n"); } - if(infoBreakPoint.relative == true) + if (infoBreakPoint.relative == true) { mustStoreCacheCmd("G91\n"); } @@ -204,7 +204,7 @@ void menuPowerOff(void) GUI_DispString((LCD_WIDTH - GUI_StrPixelWidth(LABEL_LOADING))/2, LCD_HEIGHT/2 - BYTE_HEIGHT, LABEL_LOADING); - if(mountFS()==true && powerFailedExist()) + if (mountFS()==true && powerFailedExist()) { popupDrawPage(DIALOG_TYPE_QUESTION, bottomDoubleBtn, textSelect(LABEL_POWER_FAILED), (u8* )infoFile.title, textSelect(LABEL_CONFIRM), textSelect(LABEL_CANCEL)); @@ -229,7 +229,7 @@ void menuPowerOff(void) } #ifdef SD_CD_PIN - if(isVolumeExist(infoFile.source) != true) + if (isVolumeExist(infoFile.source) != true) { resetInfoFile(); clearPowerFailed(); diff --git a/TFT/src/User/Menu/PreheatMenu.c b/TFT/src/User/Menu/PreheatMenu.c index 4e584c814d..a1ec2c1595 100644 --- a/TFT/src/User/Menu/PreheatMenu.c +++ b/TFT/src/User/Menu/PreheatMenu.c @@ -1,6 +1,9 @@ #include "PreheatMenu.h" #include "includes.h" +//Set this for preheatnotification to 1 +#define preheatNotification 1 + const GUI_POINT preheat_title = {ICON_WIDTH/2, PREHEAT_TITLE_Y }; const GUI_POINT preheat_val_tool = {ICON_WIDTH - BYTE_WIDTH/2, PREHEAT_TOOL_Y}; const GUI_POINT preheat_val_bed = {ICON_WIDTH - BYTE_WIDTH/2, PREHEAT_BED_Y}; diff --git a/TFT/src/User/Menu/Print.c b/TFT/src/User/Menu/Print.c index 88009505f3..b1fb98503d 100644 --- a/TFT/src/User/Menu/Print.c +++ b/TFT/src/User/Menu/Print.c @@ -61,16 +61,16 @@ void scrollFileNameCreate(u8 i) { u8 num=infoFile.cur_page * NUM_PER_PAGE + i; - if(infoFile.F_num + infoFile.f_num==0) + if (infoFile.F_num + infoFile.f_num==0) { memset(&gcodeScroll,0,sizeof(SCROLL)); return; } - if(numx0, rect->y0, rect->x1, rect->y1); @@ -117,9 +117,9 @@ void gocdeIconDraw(void) //draw files for( ;(i + infoFile.cur_page * NUM_PER_PAGE < infoFile.f_num + infoFile.F_num) && (i < NUM_PER_PAGE) ;i++) // gcode file { - if(EnterDir(infoFile.file[i + infoFile.cur_page * NUM_PER_PAGE - infoFile.F_num]) == false) break; + if (EnterDir(infoFile.file[i + infoFile.cur_page * NUM_PER_PAGE - infoFile.F_num]) == false) break; // if model preview bmp exists, display bmp directly without writing to flash - if(model_DirectDisplay(getIconStartPoint(i), infoFile.title) != true) + if (model_DirectDisplay(getIconStartPoint(i), infoFile.title) != true) { curItem.icon = ICON_FILE; menuDrawItem(&curItem, i); @@ -183,12 +183,12 @@ void gocdeListDraw(void) } else { - if(infoFile.cur_page == 0) + if (infoFile.cur_page == 0) { printListItems.items[5].icon = ICONCHAR_BACKGROUND; printListItems.items[6].icon = ICONCHAR_PAGEDOWN; } - else if(infoFile.cur_page == (t_pagenum-1)) + else if (infoFile.cur_page == (t_pagenum-1)) { printListItems.items[5].icon = ICONCHAR_PAGEUP; printListItems.items[6].icon = ICONCHAR_BACKGROUND; @@ -222,7 +222,7 @@ void menuPrintFromSource(void) if (mountFS() == true && scanPrintFiles() == true) { - if(list_mode != true) + if (list_mode != true) { menuDrawPage(&printIconItems); gocdeIconDraw(); @@ -235,7 +235,7 @@ void menuPrintFromSource(void) } else { - if(infoFile.source == BOARD_SD) + if (infoFile.source == BOARD_SD) { GUI_DispStringInRect(0, 0, LCD_WIDTH, LCD_HEIGHT, (u8*)requestCommandInfo.cmd_rev_buf); } @@ -253,7 +253,7 @@ void menuPrintFromSource(void) Scroll_DispString(&titleScroll, LEFT); // GUI_SetBkColor(infoSettings.bg_color); - if(list_mode != true) + if (list_mode != true) { Scroll_DispString(&gcodeScroll, CENTER); // } @@ -263,7 +263,7 @@ void menuPrintFromSource(void) switch(key_num) { case KEY_ICON_5: - if(infoFile.cur_page > 0) + if (infoFile.cur_page > 0) { infoFile.cur_page--; update=1; @@ -271,7 +271,7 @@ void menuPrintFromSource(void) break; case KEY_ICON_6: - if(infoFile.cur_page+1 < (infoFile.F_num+infoFile.f_num+(NUM_PER_PAGE-1))/NUM_PER_PAGE) + if (infoFile.cur_page+1 < (infoFile.F_num+infoFile.f_num+(NUM_PER_PAGE-1))/NUM_PER_PAGE) { infoFile.cur_page++; update=1; @@ -280,7 +280,7 @@ void menuPrintFromSource(void) case KEY_ICON_7: infoFile.cur_page = 0; - if(IsRootDir() == true) + if (IsRootDir() == true) { clearInfoFile(); infoMenu.cur--; @@ -298,20 +298,20 @@ void menuPrintFromSource(void) break; default: - if(key_num < ITEM_PER_PAGE) + if (key_num < ITEM_PER_PAGE) { u16 start = infoFile.cur_page * NUM_PER_PAGE; - if(key_num + start < infoFile.F_num) //folder + if (key_num + start < infoFile.F_num) //folder { - if(EnterDir(infoFile.folder[key_num + start]) == false) break; + if (EnterDir(infoFile.folder[key_num + start]) == false) break; scanPrintFiles(); update=1; infoFile.cur_page=0; } - else if(key_num+start < infoFile.F_num+infoFile.f_num) //gcode + else if (key_num+start < infoFile.F_num+infoFile.f_num) //gcode { - if(infoHost.connected !=true) break; - if(EnterDir(infoFile.file[key_num + start - infoFile.F_num]) == false) break; + if (infoHost.connected !=true) break; + if (EnterDir(infoFile.file[key_num + start - infoFile.F_num]) == false) break; //load model preview in flash if icon exists setPrintModelIcon(infoFile.source != BOARD_SD && model_DecodeToFlash(infoFile.title)); @@ -322,11 +322,11 @@ void menuPrintFromSource(void) showDialog(DIALOG_TYPE_QUESTION, startPrint, ExitDir, NULL); } } - else if(key_num >=KEY_LABEL_0 && key_num <= KEY_LABEL_4) + else if (key_num >=KEY_LABEL_0 && key_num <= KEY_LABEL_4) { - if(list_mode != true) + if (list_mode != true) { - if(key_num - KEY_LABEL_0 + infoFile.cur_page * NUM_PER_PAGE < infoFile.F_num + infoFile.f_num) + if (key_num - KEY_LABEL_0 + infoFile.cur_page * NUM_PER_PAGE < infoFile.F_num + infoFile.f_num) { normalNameDisp(gcodeScroll.rect, gcodeScroll.text); scrollFileNameCreate(key_num - KEY_LABEL_0); @@ -336,11 +336,11 @@ void menuPrintFromSource(void) break; } - if(update) + if (update) { update=0; - if(list_mode != true) + if (list_mode != true) { gocdeIconDraw(); } @@ -351,7 +351,7 @@ void menuPrintFromSource(void) } #ifdef SD_CD_PIN - if(isVolumeExist(infoFile.source) != true) + if (isVolumeExist(infoFile.source) != true) { resetInfoFile(); infoMenu.cur--; @@ -413,7 +413,7 @@ void menuPrint(void) #else case KEY_ICON_1: #endif - if(infoMachineSettings.onboard_sd_support == ENABLED) + if (infoMachineSettings.onboard_sd_support == ENABLED) { list_mode = true; //force list mode in Onboard sd card infoFile.source = BOARD_SD; diff --git a/TFT/src/User/Menu/PrintingMenu.c b/TFT/src/User/Menu/PrintingMenu.c index fdc3f17854..eef074f06a 100644 --- a/TFT/src/User/Menu/PrintingMenu.c +++ b/TFT/src/User/Menu/PrintingMenu.c @@ -67,12 +67,12 @@ void menuBeforePrinting(void) case BOARD_SD: // GCode from file on ONBOARD SD size = request_M23(infoFile.title+5); - // if(powerFailedCreate(infoFile.title)==false) + // if (powerFailedCreate(infoFile.title)==false) // { // // } // FIXME: Powerfail resume is not yet supported for ONBOARD_SD. Need more work. - if(size == 0) + if (size == 0) { ExitDir(); infoMenu.cur--; @@ -81,7 +81,7 @@ void menuBeforePrinting(void) infoPrinting.size = size; - // if(powerFailedExist()) + // if (powerFailedExist()) // { request_M24(0); // } @@ -90,7 +90,7 @@ void menuBeforePrinting(void) // request_M24(infoBreakPoint.offset); // } - if(infoMachineSettings.autoReportSDStatus ==1) + if (infoMachineSettings.autoReportSDStatus ==1) { request_M27(infoSettings.m27_refresh_time*1000); //Check if there is a SD or USB print running. } @@ -105,13 +105,13 @@ void menuBeforePrinting(void) case TFT_UDISK: case TFT_SD: // GCode from file on TFT SD - if(f_open(&infoPrinting.file,infoFile.title, FA_OPEN_EXISTING | FA_READ) != FR_OK) + if (f_open(&infoPrinting.file,infoFile.title, FA_OPEN_EXISTING | FA_READ) != FR_OK) { ExitDir(); infoMenu.cur--; return ; } - if(powerFailedCreate(infoFile.title) == false) + if (powerFailedCreate(infoFile.title) == false) { } @@ -119,7 +119,7 @@ void menuBeforePrinting(void) infoPrinting.size = f_size(&infoPrinting.file); infoPrinting.cur = infoPrinting.file.fptr; - if(infoSettings.send_start_gcode == 1 && infoPrinting.cur == 0) // PLR continue printing, CAN NOT use start gcode + if (infoSettings.send_start_gcode == 1 && infoPrinting.cur == 0) // PLR continue printing, CAN NOT use start gcode { sendPrintCodes(0); } @@ -167,7 +167,7 @@ void reValueBed(int icon_pos) void reDrawFan(int icon_pos) { char tempstr[10]; - if(infoSettings.fan_percentage == 1) + if (infoSettings.fan_percentage == 1) { sprintf(tempstr, "%d%%", fanGetSpeedPercent(c_fan)); } @@ -192,7 +192,7 @@ void reDrawSpeed(int icon_pos) sprintf(tempstr, "%d%%", speedGetPercent(c_speedID) ); - if(c_speedID == 0) + if (c_speedID == 0) { ICON_ReadDisplay(printinfo_points[icon_pos].x,printinfo_points[icon_pos].y,ICON_PRINTING_SPEED); } @@ -250,16 +250,16 @@ void reDrawLayer(int icon_pos) void toggleinfo(void) { - if(OS_GetTimeMs() > nextTime) + if (OS_GetTimeMs() > nextTime) { - if(infoSettings.hotend_count > 1) + if (infoSettings.hotend_count > 1) { c_Tool = (c_Tool + 1) % infoSettings.hotend_count; rapid_serial_loop(); //perform backend printing loop before drawing to avoid printer idling reValueNozzle(EXT_ICON_POS); } - if((infoSettings.fan_count + infoSettings.fan_ctrl_count) > 1) + if ((infoSettings.fan_count + infoSettings.fan_ctrl_count) > 1) { c_fan = (c_fan + 1) % (infoSettings.fan_count + infoSettings.fan_ctrl_count); rapid_serial_loop(); //perform backend printing loop before drawing to avoid printer idling @@ -331,7 +331,7 @@ void menuPrinting(void) // Scroll_DispString(&titleScroll, LEFT); //Scroll display file name will take too many CPU cycles //check nozzle temp change - if(nowHeat.T[c_Tool].current != heatGetCurrentTemp(c_Tool) || nowHeat.T[c_Tool].target != heatGetTargetTemp(c_Tool)) + if (nowHeat.T[c_Tool].current != heatGetCurrentTemp(c_Tool) || nowHeat.T[c_Tool].target != heatGetTargetTemp(c_Tool)) { nowHeat.T[c_Tool].current = heatGetCurrentTemp(c_Tool); nowHeat.T[c_Tool].target = heatGetTargetTemp(c_Tool); @@ -340,7 +340,7 @@ void menuPrinting(void) } //check bed temp change - if(nowHeat.T[BED].current != heatGetCurrentTemp(BED) || nowHeat.T[BED].target != heatGetTargetTemp(BED)) + if (nowHeat.T[BED].current != heatGetCurrentTemp(BED) || nowHeat.T[BED].target != heatGetTargetTemp(BED)) { nowHeat.T[BED].current = heatGetCurrentTemp(BED); nowHeat.T[BED].target = heatGetTargetTemp(BED); @@ -349,7 +349,7 @@ void menuPrinting(void) } //check Fan speed change - if(nowFan[c_fan] != fanGetSpeed(c_fan)) + if (nowFan[c_fan] != fanGetSpeed(c_fan)) { nowFan[c_fan] = fanGetSpeed(c_fan); rapid_serial_loop(); //perform backend printing loop before drawing to avoid printer idling @@ -357,10 +357,10 @@ void menuPrinting(void) } //check printing progress - if(infoPrinting.size != 0) + if (infoPrinting.size != 0) { //check print time change - if(time != infoPrinting.time || infoPrinting.progress != MIN((uint64_t)infoPrinting.cur*100/infoPrinting.size, 100)) + if (time != infoPrinting.time || infoPrinting.progress != MIN((uint64_t)infoPrinting.cur*100/infoPrinting.size, 100)) { time = infoPrinting.time; infoPrinting.progress = MIN((uint64_t)infoPrinting.cur*100/infoPrinting.size, 100); @@ -371,7 +371,7 @@ void menuPrinting(void) } else { - if(infoPrinting.progress != 100) + if (infoPrinting.progress != 100) { infoPrinting.progress = 100; reDrawTime(TIM_ICON_POS); @@ -380,7 +380,7 @@ void menuPrinting(void) } //Z_AXIS coordinate - if(curLayer != coordinateGetAxisTarget(Z_AXIS)) + if (curLayer != coordinateGetAxisTarget(Z_AXIS)) { curLayer = coordinateGetAxisTarget(Z_AXIS); rapid_serial_loop(); //perform backend printing loop before drawing to avoid printer idling @@ -388,21 +388,21 @@ void menuPrinting(void) } //check change in speed or flow - if(curspeed[c_speedID] != speedGetPercent(c_speedID)) + if (curspeed[c_speedID] != speedGetPercent(c_speedID)) { curspeed[c_speedID] = speedGetPercent(c_speedID); rapid_serial_loop(); //perform backend printing loop before drawing to avoid printer idling reDrawSpeed(SPD_ICON_POS); } - if(lastPause != isPause()) + if (lastPause != isPause()) { lastPause = isPause(); printingItems.items[KEY_ICON_5] = itemIsPause[lastPause]; menuDrawItem(&printingItems.items[KEY_ICON_5], KEY_ICON_5); } - if(lastPrinting != isPrinting()) { + if (lastPrinting != isPrinting()) { lastPrinting = isPrinting(); printingItems.items[KEY_ICON_7] = itemIsPrinting[lastPrinting]; menuDrawItem(&printingItems.items[KEY_ICON_7], KEY_ICON_7); @@ -426,7 +426,7 @@ void menuPrinting(void) break; case KEY_ICON_7: - if(isPrinting()) + if (isPrinting()) { setDialogText(LABEL_WARNING, LABEL_STOP_PRINT, LABEL_CONFIRM, LABEL_CANCEL); showDialog(DIALOG_TYPE_ALERT, stopConfirm, NULL, NULL); diff --git a/TFT/src/User/Menu/ScreenSettings.c b/TFT/src/User/Menu/ScreenSettings.c index c7ce67c0ef..55d618ff82 100644 --- a/TFT/src/User/Menu/ScreenSettings.c +++ b/TFT/src/User/Menu/ScreenSettings.c @@ -59,7 +59,7 @@ void menuLanguage(void) break; default: - if(key_num < LISTITEM_PER_PAGE) + if (key_num < LISTITEM_PER_PAGE) { uint16_t cur_item = infoSettings.language; uint16_t tmp_i = listWidgetGetCurPage() * LISTITEM_PER_PAGE + key_num; @@ -80,7 +80,7 @@ void menuLanguage(void) loopProcess(); } - if(memcmp(&now, &infoSettings, sizeof(SETTINGS))) + if (memcmp(&now, &infoSettings, sizeof(SETTINGS))) { statusScreen_setReady(); // restore msg buffer when language is changed storePara(); @@ -148,7 +148,7 @@ void menuSimulatorBackGroundColor(void) break; default: - if(key_num < LISTITEM_PER_PAGE) + if (key_num < LISTITEM_PER_PAGE) { uint16_t tmp_i = listWidgetGetCurPage() * LISTITEM_PER_PAGE + key_num; if (tmp_i < LCD_COLOR_COUNT && tmp_i != cur_item) { // has changed @@ -167,7 +167,7 @@ void menuSimulatorBackGroundColor(void) loopProcess(); } - if(memcmp(&now, &infoSettings, sizeof(SETTINGS))) + if (memcmp(&now, &infoSettings, sizeof(SETTINGS))) { storePara(); } @@ -213,7 +213,7 @@ void menuSimulatorFontColor(void) break; default: - if(key_num < LISTITEM_PER_PAGE) + if (key_num < LISTITEM_PER_PAGE) { uint16_t tmp_i = listWidgetGetCurPage() * LISTITEM_PER_PAGE + key_num; if (tmp_i < LCD_COLOR_COUNT && tmp_i != cur_item) { // has changed @@ -232,7 +232,7 @@ void menuSimulatorFontColor(void) loopProcess(); } - if(memcmp(&now, &infoSettings, sizeof(SETTINGS))) + if (memcmp(&now, &infoSettings, sizeof(SETTINGS))) { storePara(); } @@ -251,7 +251,7 @@ void menuSoundSettings(void) {ICONCHAR_TOGGLE_ON, LIST_TOGGLE, LABEL_TOUCH_SOUND, LABEL_BACKGROUND}, {ICONCHAR_TOGGLE_ON, LIST_TOGGLE, LABEL_ALERT_SOUND, LABEL_BACKGROUND}, {ICONCHAR_TOGGLE_ON, LIST_TOGGLE, LABEL_TOAST_SOUND, LABEL_BACKGROUND}, - {ICONCHAR_BACKGROUND, LIST_LABEL, LABEL_BACKGROUND, LABEL_BACKGROUND}, + {ICONCHAR_TOGGLE_ON, LIST_TOGGLE, LABEL_TOAST_SOUND, LABEL_BACKGROUND}, {ICONCHAR_BACKGROUND, LIST_LABEL, LABEL_BACKGROUND, LABEL_BACKGROUND}, {ICONCHAR_BACKGROUND, LIST_LABEL, LABEL_BACKGROUND, LABEL_BACKGROUND}, {ICONCHAR_BACKGROUND, LIST_LABEL, LABEL_BACKGROUND, LABEL_BACKGROUND}, @@ -261,6 +261,7 @@ void menuSoundSettings(void) sounditems.items[0].icon = (infoSettings.touchSound == 1) ? ICONCHAR_TOGGLE_ON : ICONCHAR_TOGGLE_OFF; sounditems.items[1].icon = (infoSettings.alertSound == 1) ? ICONCHAR_TOGGLE_ON : ICONCHAR_TOGGLE_OFF; sounditems.items[2].icon = (infoSettings.toastSound == 1) ? ICONCHAR_TOGGLE_ON : ICONCHAR_TOGGLE_OFF; + sounditems.items[3].icon = (infoSettings.preheatDoneSound == 1) ? ICONCHAR_TOGGLE_ON : ICONCHAR_TOGGLE_OFF; KEY_VALUES key_num = KEY_IDLE; SETTINGS now = infoSettings; @@ -340,7 +341,7 @@ void menuScreenSettings(void) for(u8 i = 0; i < LCD_COLOR_COUNT; i++) { - if(infoSettings.marlin_mode_bg_color == lcd_colors[i]) + if (infoSettings.marlin_mode_bg_color == lcd_colors[i]) { screenSettingsItems.items[LCD12864_BG_INDEX].label = lcd_color_names[i]; } @@ -349,7 +350,7 @@ void menuScreenSettings(void) // LCD12864 font color for(u8 i = 0; i < LCD_COLOR_COUNT; i++) { - if(infoSettings.marlin_mode_font_color == lcd_colors[i]) + if (infoSettings.marlin_mode_font_color == lcd_colors[i]) { screenSettingsItems.items[LCD12864_FN_INDEX].label = lcd_color_names[i]; } @@ -412,7 +413,7 @@ void menuScreenSettings(void) loopProcess(); } - if(memcmp(&now, &infoSettings, sizeof(SETTINGS))) + if (memcmp(&now, &infoSettings, sizeof(SETTINGS))) { storePara(); } diff --git a/TFT/src/User/Menu/Selectmode.c b/TFT/src/User/Menu/Selectmode.c index 627d8fe01e..bf1cb170ea 100644 --- a/TFT/src/User/Menu/Selectmode.c +++ b/TFT/src/User/Menu/Selectmode.c @@ -30,7 +30,7 @@ void drawModeIcon(void) GUI_RestoreColorDefault(); - if(infoSettings.marlin_type == LCD12864) + if (infoSettings.marlin_type == LCD12864) GUI_DispStringInPrect(&mode_title_rect[0],(uint8_t *)"LCD12864 Mode"); else GUI_DispStringInPrect(&mode_title_rect[0],(uint8_t *)"LCD2004 Mode"); @@ -41,9 +41,9 @@ void drawModeIcon(void) bool LCD_ReadPen(uint16_t intervals) { static u32 TouchTime = 0; - if(!XPT2046_Read_Pen()) + if (!XPT2046_Read_Pen()) { - if(OS_GetTimeMs() - TouchTime > intervals) + if (OS_GetTimeMs() - TouchTime > intervals) { return true; } @@ -78,14 +78,14 @@ void loopCheckMode(void) // IDEALLY I would like to be able to swap even when the TFT is in printing mode // but before I can allow that I need a way to make sure that we swap back into the right mode (and correct screen) // and I really want a reliable way to DETECT that the TFT should be in printing mode even when the print was started externally. - if(isPrinting() || skipMode) + if (isPrinting() || skipMode) return; - if(infoMenu.menu[infoMenu.cur] == menuMode) + if (infoMenu.menu[infoMenu.cur] == menuMode) return; // #endif - if(LCD_ReadPen(LCD_CHANGE_MODE_INTERVALS) + if (LCD_ReadPen(LCD_CHANGE_MODE_INTERVALS) #if LCD_ENCODER_SUPPORT || encoder_ReadBtn(LCD_CHANGE_MODE_INTERVALS) #endif @@ -129,21 +129,21 @@ void menuMode(void) { MKEY_VALUES key_num = MKeyGetValue(); - if(key_num == MKEY_0 || key_num == MKEY_1) + if (key_num == MKEY_0 || key_num == MKEY_1) { nowMode = key_num; break; } #if LCD_ENCODER_SUPPORT - if(encoderPosition) + if (encoderPosition) { nowMode = NOBEYOND(0, nowMode + encoderPosition, MODE_COUNT - 1); drawSelectedMode(nowMode); encoderPosition = 0; } - if(encoder_ReadBtn(LCD_BUTTON_INTERVALS)) + if (encoder_ReadBtn(LCD_BUTTON_INTERVALS)) { break; } @@ -160,7 +160,7 @@ void menuMode(void) } } - if(infoSettings.mode != nowMode) + if (infoSettings.mode != nowMode) { infoSettings.mode = nowMode; storePara(); diff --git a/TFT/src/User/Menu/Speed.c b/TFT/src/User/Menu/Speed.c index 95d17cd60e..c3f1621c52 100644 --- a/TFT/src/User/Menu/Speed.c +++ b/TFT/src/User/Menu/Speed.c @@ -84,12 +84,12 @@ void menuSpeed(void) switch(key_num) { case KEY_ICON_0: - if(now > SPEED_MIN) + if (now > SPEED_MIN) speedSetPercent(item_percentage_i, now - item_percent_unit[item_percent_unit_i]); break; case KEY_ICON_3: - if(now < SPEED_MAX) + if (now < SPEED_MAX) speedSetPercent(item_percentage_i, now + item_percent_unit[item_percent_unit_i]); break; @@ -116,7 +116,7 @@ void menuSpeed(void) break; default: #if LCD_ENCODER_SUPPORT - if(encoderPosition) + if (encoderPosition) { if (now < SPEED_MAX && encoderPosition > 0) { diff --git a/TFT/src/User/Menu/StatusScreen.c b/TFT/src/User/Menu/StatusScreen.c index a56db03d6d..2002f837e7 100644 --- a/TFT/src/User/Menu/StatusScreen.c +++ b/TFT/src/User/Menu/StatusScreen.c @@ -189,7 +189,7 @@ void statusScreen_setMsg(const uint8_t *title, const uint8_t *msg) void statusScreen_setReady(void) { strncpy(msgtitle, (char *)textSelect(LABEL_STATUS), sizeof(msgtitle)); - if(infoHost.connected == false) + if (infoHost.connected == false) { strncpy(msgbody, (char *)textSelect(LABEL_UNCONNECTED), sizeof(msgbody)); } @@ -264,7 +264,7 @@ void menuStatus(void) drawStatusScreenMsg(); while (infoMenu.menu[infoMenu.cur] == menuStatus) { - if(infoHost.connected != lastConnection_status) + if (infoHost.connected != lastConnection_status) { statusScreen_setReady(); lastConnection_status = infoHost.connected; diff --git a/TFT/src/User/os_timer.c b/TFT/src/User/os_timer.c index a46eb1c030..8f45f7a2f6 100644 --- a/TFT/src/User/os_timer.c +++ b/TFT/src/User/os_timer.c @@ -33,7 +33,7 @@ void TIM7_IRQHandler(void) loopTouchScreen(); - if(os_counter == (uint32_t)(~0)) { + if (os_counter == (uint32_t)(~0)) { os_counter = 0; } } @@ -59,9 +59,9 @@ void OS_TaskInit(OS_TASK *task, uint32_t time_ms, FP_TASK function, void *para) */ void OS_TaskLoop(OS_TASK *task_t) { - if(task_t->is_exist == 0) return; - if(OS_GetTimeMs() < task_t->next_time) return; - if(task_t->is_repeat == 0) + if (task_t->is_exist == 0) return; + if (OS_GetTimeMs() < task_t->next_time) return; + if (task_t->is_repeat == 0) { task_t->is_exist = 0; } @@ -79,7 +79,7 @@ void OS_TaskEnable(OS_TASK *task_t, uint8_t is_exec,uint8_t is_repeat) task_t->is_exist =1; task_t->is_repeat = is_repeat; task_t->next_time = OS_GetTimeMs() + task_t->time_ms; - if(is_exec) + if (is_exec) (*task_t->task)(task_t->para); } From ee62ab424adf4b82e0cfcac9faa96a5426b72b44 Mon Sep 17 00:00:00 2001 From: petervw Date: Sun, 15 Nov 2020 20:17:20 +0100 Subject: [PATCH 15/24] Succesful first build of notification sound for preheat done --- TFT/src/User/API/Settings.c | 2 +- TFT/src/User/API/config.c | 235 ++++++++++++++++++++++------- TFT/src/User/API/config.h | 1 + TFT/src/User/API/config.inc | 1 + TFT/src/User/API/flashStore.c | 2 + TFT/src/User/API/menu.c | 34 ++++- TFT/src/User/Hal/buzzer.c | 8 +- TFT/src/User/Menu/ScreenSettings.c | 12 +- 8 files changed, 229 insertions(+), 66 deletions(-) diff --git a/TFT/src/User/API/Settings.c b/TFT/src/User/API/Settings.c index 9692cbc2cf..94fe951a89 100644 --- a/TFT/src/User/API/Settings.c +++ b/TFT/src/User/API/Settings.c @@ -98,7 +98,7 @@ void infoSettingsReset(void) infoSettings.touchSound = ENABLED; infoSettings.toastSound = ENABLED; infoSettings.alertSound = ENABLED; - infoSettings.preheatDoneSound = ENABLED; + infoSettings.preheatDoneSound = ENABLED; infoSettings.knob_led_color = STARTUP_KNOB_LED_COLOR; infoSettings.knob_led_idle = ENABLED; infoSettings.lcd_brightness = DEFAULT_LCD_BRIGHTNESS; diff --git a/TFT/src/User/API/config.c b/TFT/src/User/API/config.c index d19724d3e8..c9b0b512bf 100644 --- a/TFT/src/User/API/config.c +++ b/TFT/src/User/API/config.c @@ -762,61 +762,97 @@ void parseConfigKey(u16 index) case C_INDEX_BUILD_MIN: if (key_seen("X")) - { if (inLimit(config_int(), MIN_SIZE_LIMIT, MAX_SIZE_LIMIT)) + { + if (inLimit(config_int(), MIN_SIZE_LIMIT, MAX_SIZE_LIMIT)) + { infoSettings.machine_size_min[X_AXIS] = config_int(); + } } if (key_seen("Y")) - { if (inLimit(config_int(), MIN_SIZE_LIMIT, MAX_SIZE_LIMIT)) + { + if (inLimit(config_int(), MIN_SIZE_LIMIT, MAX_SIZE_LIMIT)) + { infoSettings.machine_size_min[Y_AXIS] = config_int(); + } } if (key_seen("Z")) - { if (inLimit(config_int(), MIN_SIZE_LIMIT, MAX_SIZE_LIMIT)) + { + if (inLimit(config_int(), MIN_SIZE_LIMIT, MAX_SIZE_LIMIT)) + { infoSettings.machine_size_min[Z_AXIS] = config_int(); + } } break; case C_INDEX_BUILD_MAX: if (key_seen("X")) - { if (inLimit(config_int(), MIN_SIZE_LIMIT, MAX_SIZE_LIMIT)) + { + if (inLimit(config_int(), MIN_SIZE_LIMIT, MAX_SIZE_LIMIT)) + { infoSettings.machine_size_max[X_AXIS] = config_int(); + } } if (key_seen("Y")) - { if (inLimit(config_int(), MIN_SIZE_LIMIT, MAX_SIZE_LIMIT)) + { + if (inLimit(config_int(), MIN_SIZE_LIMIT, MAX_SIZE_LIMIT)) + { infoSettings.machine_size_max[Y_AXIS] = config_int(); + } } if (key_seen("Z")) - { if (inLimit(config_int(), MIN_SIZE_LIMIT, MAX_SIZE_LIMIT)) + { + if (inLimit(config_int(), MIN_SIZE_LIMIT, MAX_SIZE_LIMIT)) + { infoSettings.machine_size_max[Z_AXIS] = config_int(); + } } break; case C_INDEX_MOVE_SPEED: if (key_seen("S")) - { if (inLimit(config_int(), MIN_SPEED_LIMIT, MAX_SPEED_LIMIT)) + { + if (inLimit(config_int(), MIN_SPEED_LIMIT, MAX_SPEED_LIMIT)) + { infoSettings.axis_speed[0] = config_int(); + } } if (key_seen("N")) - { if (inLimit(config_int(), MIN_SPEED_LIMIT, MAX_SPEED_LIMIT)) + { + if (inLimit(config_int(), MIN_SPEED_LIMIT, MAX_SPEED_LIMIT)) + { infoSettings.axis_speed[1] = config_int(); + } } if (key_seen("F")) - { if (inLimit(config_int(), MIN_SPEED_LIMIT, MAX_SPEED_LIMIT)) + { + if (inLimit(config_int(), MIN_SPEED_LIMIT, MAX_SPEED_LIMIT)) + { infoSettings.axis_speed[2] = config_int(); + } } break; case C_INDEX_EXT_SPEED: if (key_seen("S")) - { if (inLimit(config_int(), MIN_SPEED_LIMIT, MAX_SPEED_LIMIT)) + { + if (inLimit(config_int(), MIN_SPEED_LIMIT, MAX_SPEED_LIMIT)) + { infoSettings.ext_speed[0] = config_int(); + } } if (key_seen("N")) - { if (inLimit(config_int(), MIN_SPEED_LIMIT, MAX_SPEED_LIMIT)) + { + if (inLimit(config_int(), MIN_SPEED_LIMIT, MAX_SPEED_LIMIT)) + { infoSettings.ext_speed[1] = config_int(); + } } if (key_seen("F")) - { if (inLimit(config_int(), MIN_SPEED_LIMIT, MAX_SPEED_LIMIT)) + { + if (inLimit(config_int(), MIN_SPEED_LIMIT, MAX_SPEED_LIMIT)) + { infoSettings.ext_speed[2] = config_int(); + } } break; @@ -828,13 +864,17 @@ void parseConfigKey(u16 index) { u8 i = config_int(); if (inLimit(i,0,2)) + { infoSettings.onboardSD = i; + } break; } case C_INDEX_M27_DELAY: if (inLimit(config_int(), MIN_DELAY_SEC, MAX_DELAY_SEC)) + { infoSettings.m27_refresh_time = config_int(); + } break; case C_INDEX_M27_KEEP_ON: @@ -845,7 +885,9 @@ void parseConfigKey(u16 index) { u8 i = config_int(); if (inLimit(i,0,2)) + { infoSettings.longFileName = i; + } break; } @@ -855,77 +897,118 @@ void parseConfigKey(u16 index) case C_INDEX_PAUSE_RETRACT: if (key_seen("R")) - { if (inLimit(config_float(), MIN_RETRACT_LIMIT, MAX_RETRACT_LIMIT)) + { + if (inLimit(config_float(), MIN_RETRACT_LIMIT, MAX_RETRACT_LIMIT)) + { infoSettings.pause_retract_len = config_float(); + } } if (key_seen("P")) - { if (inLimit(config_float(), MIN_RETRACT_LIMIT, MAX_RETRACT_LIMIT)) + { + if (inLimit(config_float(), MIN_RETRACT_LIMIT, MAX_RETRACT_LIMIT)) + { infoSettings.resume_purge_len = config_float(); + } } break; case C_INDEX_PAUSE_POS: if (key_seen("X")) - { if (inLimit(config_float(), MIN_POS_LIMIT, MAX_SIZE_LIMIT)) + { + if (inLimit(config_float(), MIN_POS_LIMIT, MAX_SIZE_LIMIT)) + { infoSettings.pause_pos[X_AXIS] = config_float(); + } } if (key_seen("Y")) - { if (inLimit(config_float(), MIN_POS_LIMIT, MAX_SIZE_LIMIT)) + { + if (inLimit(config_float(), MIN_POS_LIMIT, MAX_SIZE_LIMIT)) + { infoSettings.pause_pos[Y_AXIS] = config_float(); + } } break; case C_INDEX_PAUSE_Z_RAISE: if (inLimit(config_float(), MIN_POS_LIMIT, MAX_SIZE_LIMIT)) + { infoSettings.pause_z_raise = config_float(); + } break; case C_INDEX_PAUSE_FEEDRATE: if (key_seen("X")) - { if (inLimit(config_int(), MIN_SPEED_LIMIT, MAX_SPEED_LIMIT)) + { + if (inLimit(config_int(), MIN_SPEED_LIMIT, MAX_SPEED_LIMIT)) + { infoSettings.pause_feedrate[0] = config_int(); + } } if (key_seen("Y")) - { if (inLimit(config_int(), MIN_SPEED_LIMIT, MAX_SPEED_LIMIT)) + { + if (inLimit(config_int(), MIN_SPEED_LIMIT, MAX_SPEED_LIMIT)) + { infoSettings.pause_feedrate[1] = config_int(); + } } if (key_seen("Z")) - { if (inLimit(config_int(), MIN_SPEED_LIMIT, MAX_SPEED_LIMIT)) + { + if (inLimit(config_int(), MIN_SPEED_LIMIT, MAX_SPEED_LIMIT)) + { infoSettings.pause_feedrate[2] = config_int(); + } } if (key_seen("E")) - { if (inLimit(config_int(), MIN_SPEED_LIMIT, MAX_SPEED_LIMIT)) + { + if (inLimit(config_int(), MIN_SPEED_LIMIT, MAX_SPEED_LIMIT)) + { infoSettings.pause_feedrate[3] = config_int(); + } } break; case C_INDEX_LEVEL_EDGE: if (inLimit(config_int(), MIN_POS_LIMIT, MAX_SIZE_LIMIT)) + { infoSettings.level_edge = config_int(); + } break; case C_INDEX_LEVEL_Z_POS: if (inLimit(config_float(), MIN_POS_LIMIT, MAX_SIZE_LIMIT)) + { infoSettings.level_z_pos = config_float(); + } break; case C_INDEX_LEVEL_Z_RAISE: if (inLimit(config_float(), MIN_POS_LIMIT, MAX_SIZE_LIMIT)) + { infoSettings.level_z_raise = config_float(); + } break; case C_INDEX_LEVEL_FEEDRATE: if (key_seen("X")) - { if (inLimit(config_int(), MIN_SPEED_LIMIT, MAX_SPEED_LIMIT)) + { + if (inLimit(config_int(), MIN_SPEED_LIMIT, MAX_SPEED_LIMIT)) + { infoSettings.level_feedrate[0] = config_int(); + } } if (key_seen("Y")) - { if (inLimit(config_int(), MIN_SPEED_LIMIT, MAX_SPEED_LIMIT)) + { + if (inLimit(config_int(), MIN_SPEED_LIMIT, MAX_SPEED_LIMIT)) + { infoSettings.level_feedrate[1] = config_int(); + } } if (key_seen("Z")) - { if (inLimit(config_int(), MIN_SPEED_LIMIT, MAX_SPEED_LIMIT)) + { + if (inLimit(config_int(), MIN_SPEED_LIMIT, MAX_SPEED_LIMIT)) + { infoSettings.level_feedrate[2] = config_int(); + } } break; @@ -940,8 +1023,11 @@ void parseConfigKey(u16 index) strcpy(pchr, strrchr(cur_line, ':') + 1); int utf8len = getUTF8Length((u8*)pchr); int bytelen = strlen(pchr) + 1; - if (inLimit(utf8len,NAME_MIN_LENGTH,MAX_STRING_LENGTH) && inLimit(bytelen,NAME_MIN_LENGTH,MAX_GCODE_LENGTH)) - strcpy(configStringsStore->preheat_name[index - C_INDEX_PREHEAT_NAME_1], pchr); + if (inLimit(utf8len,NAME_MIN_LENGTH,MAX_STRING_LENGTH) && + inLimit(bytelen,NAME_MIN_LENGTH,MAX_GCODE_LENGTH)) + { + strcpy(configStringsStore->preheat_name[index - C_INDEX_PREHEAT_NAME_1], pchr); + } } break; @@ -955,12 +1041,18 @@ void parseConfigKey(u16 index) { int val_index = index - C_INDEX_PREHEAT_TEMP_1; if (key_seen("B")) - { if (inLimit(config_int(), MIN_BED_TEMP, MAX_BED_TEMP)) + { + if (inLimit(config_int(), MIN_BED_TEMP, MAX_BED_TEMP)) + { infoSettings.preheat_bed[val_index] = config_int(); + } } if (key_seen("T")) - { if (inLimit(config_int(), MIN_TOOL_TEMP, MAX_TOOL_TEMP)) + { + if (inLimit(config_int(), MIN_TOOL_TEMP, MAX_TOOL_TEMP)) + { infoSettings.preheat_temp[val_index] = config_int(); + } } } break; @@ -971,11 +1063,17 @@ void parseConfigKey(u16 index) case C_INDEX_PS_ON: if (config_int() == 1) + { infoSettings.auto_off = 1; + } else if (config_int() == 2) + { infoSettings.auto_off = 2; + } else + { infoSettings.auto_off = 0; + } break; case C_INDEX_PS_LOGIC: @@ -984,7 +1082,9 @@ void parseConfigKey(u16 index) case C_INDEX_SHUTDOWN_TEMP: if (inLimit(config_int(), MIN_BED_TEMP, MAX_BED_TEMP)) + { infoSettings.auto_off_temp = config_int(); + } break; #endif @@ -1003,7 +1103,9 @@ void parseConfigKey(u16 index) case C_INDEX_POWERLOSS_ZRAISE: if (inLimit(config_float(), MIN_SIZE_LIMIT, MAX_SIZE_LIMIT)) + { infoSettings.powerloss_z_raise = config_float(); + } break; case C_INDEX_BTT_MINIUPS: @@ -1025,12 +1127,16 @@ void parseConfigKey(u16 index) case C_INDEX_RUNOUT_NOISE: if (inLimit(config_int(), MIN_DELAY_MS, MAX_DELAY_MS)) + { infoSettings.runout_noise_ms = config_int(); + } break; case C_INDEX_RUNOUT_DISTANCE: if (inLimit(config_int(), MIN_RUNOUT_DISTANCE, MAX_RUNOUT_DISTANCE)) + { infoSettings.runout_distance = config_int(); + } break; #endif @@ -1038,30 +1144,47 @@ void parseConfigKey(u16 index) #ifdef BUZZER_PIN case C_INDEX_TOUCH_SOUND: if (inLimit(config_int(),0,1)) + { infoSettings.touchSound = config_int(); + } break; case C_INDEX_TOAST_SOUND: if (inLimit(config_int(),0,1)) + { infoSettings.toastSound = config_int(); + } break; case C_INDEX_ALERT_SOUND: if (inLimit(config_int(),0,1)) + { infoSettings.alertSound = config_int(); + } break; + + case C_INDEX_PREHEATDONE_SOUND: + if (inLimit(config_int(),0,1)) + { + infoSettings.preheatDoneSound = config_int(); + } + #endif #ifdef LED_COLOR_PIN case C_INDEX_KNOB_COLOR: if (inLimit(config_int(), 0, LED_COLOR_NUM-1)) + { infoSettings.knob_led_color = config_int(); + } break; #ifdef LCD_LED_PWM_CHANNEL case C_INDEX_KNOB_LED_IDLE: if (inLimit(config_int(), 0, 1)) + { infoSettings.knob_led_idle = config_int(); + } break; #endif //lcd_led_pwm #endif @@ -1069,23 +1192,33 @@ void parseConfigKey(u16 index) #ifdef LCD_LED_PWM_CHANNEL case C_INDEX_BRIGHTNESS: if (inLimit(config_int(), 0, ITEM_BRIGHTNESS_NUM - 1)) + { infoSettings.lcd_brightness = config_int(); + } if (infoSettings.lcd_brightness == 0) + { infoSettings.lcd_brightness = 1; //If someone set it to 0 set it to 1 + } break; case C_INDEX_BRIGHTNESS_IDLE: if (inLimit(config_int(), 0, ITEM_BRIGHTNESS_NUM-1)) + { infoSettings.lcd_idle_brightness = config_int(); + } break; case C_INDEX_BRIGHTNESS_IDLE_DELAY: if (inLimit(config_int(), 0, ITEM_SECONDS_NUM-1)) + { infoSettings.lcd_idle_timer = config_int(); + } break; #endif case C_INDEX_SEQUENTIAL_MODE: if (inLimit(config_int(), 0, 1)) + { infoSettings.sequential_mode = config_int(); + } break; //---------------------------------------------------------CustomG-Code Commands upto 15 custom G-code @@ -1140,25 +1273,25 @@ void parseConfigKey(u16 index) strcpy(pchr,strrchr(cur_line,':') + 1); int len = strlen(pchr) + 1; if (inLimit(len,GCODE_MIN_LENGTH,MAX_GCODE_LENGTH) && (customcode_good[fileindex] == 1)) //check if gcode length is ok and the name was ok - { - strcpy(configCustomGcodes->gcode[customcode_index-1], pchr); - } + { + strcpy(configCustomGcodes->gcode[customcode_index-1], pchr); + } else if (customcode_good[fileindex] == 1) //if name was ok but gcode is not ok then reduce count - { - customcode_index--; - } + { + customcode_index--; + } }break; //---------------------------------------------------------Start, End & Cancel G-codes case C_INDEX_START_GCODE_ON: - infoSettings.send_start_gcode = getOnOff(); + infoSettings.send_start_gcode = getOnOff(); break; case C_INDEX_END_GCODE_ON: - infoSettings.send_end_gcode = getOnOff(); + infoSettings.send_end_gcode = getOnOff(); break; case C_INDEX_CANCEL_GCODE_ON: - infoSettings.send_cancel_gcode = getOnOff(); + infoSettings.send_cancel_gcode = getOnOff(); break; case C_INDEX_START_GCODE: @@ -1169,12 +1302,12 @@ void parseConfigKey(u16 index) if (inLimit(len,GCODE_MIN_LENGTH,MAX_GCODE_LENGTH)) { strcpy(configPrintGcodes->start_gcode, pchr); - #ifdef CONFIG_DEBUG - GUI_DispStringInRect(recterrortxt.x0, recterrortxt.y0 + (BYTE_HEIGHT * 2), recterrortxt.x1, recterrortxt.y1, (u8*)configPrintGcodes->start_gcode); - Delay_ms(1000); - Delay_ms(1000); + #ifdef CONFIG_DEBUG + GUI_DispStringInRect(recterrortxt.x0, recterrortxt.y0 + (BYTE_HEIGHT * 2), recterrortxt.x1, recterrortxt.y1, (u8*)configPrintGcodes->start_gcode); + Delay_ms(1000); + Delay_ms(1000); - #endif + #endif } } @@ -1187,11 +1320,11 @@ void parseConfigKey(u16 index) if (inLimit(len,GCODE_MIN_LENGTH,MAX_GCODE_LENGTH)) { strcpy(configPrintGcodes->end_gcode, pchr); - #ifdef CONFIG_DEBUG - GUI_DispStringInRect(recterrortxt.x0, recterrortxt.y0 + (BYTE_HEIGHT * 2), recterrortxt.x1, recterrortxt.y1, (u8*)configPrintGcodes->end_gcode); - Delay_ms(1000); - Delay_ms(1000); - #endif + #ifdef CONFIG_DEBUG + GUI_DispStringInRect(recterrortxt.x0, recterrortxt.y0 + (BYTE_HEIGHT * 2), recterrortxt.x1, recterrortxt.y1, (u8*)configPrintGcodes->end_gcode); + Delay_ms(1000); + Delay_ms(1000); + #endif } } @@ -1204,11 +1337,11 @@ void parseConfigKey(u16 index) if (inLimit(len,GCODE_MIN_LENGTH,MAX_GCODE_LENGTH)) { strcpy(configPrintGcodes->cancel_gcode, pchr); - #ifdef CONFIG_DEBUG - GUI_DispStringInRect(recterrortxt.x0, recterrortxt.y0 + (BYTE_HEIGHT * 2), recterrortxt.x1, recterrortxt.y1, (u8*)configPrintGcodes->cancel_gcode); - Delay_ms(1000); - Delay_ms(1000); - #endif + #ifdef CONFIG_DEBUG + GUI_DispStringInRect(recterrortxt.x0, recterrortxt.y0 + (BYTE_HEIGHT * 2), recterrortxt.x1, recterrortxt.y1, (u8*)configPrintGcodes->cancel_gcode); + Delay_ms(1000); + Delay_ms(1000); + #endif } } diff --git a/TFT/src/User/API/config.h b/TFT/src/User/API/config.h index 6b1432b61e..bbc28f8dfa 100644 --- a/TFT/src/User/API/config.h +++ b/TFT/src/User/API/config.h @@ -103,6 +103,7 @@ extern "C" { #define CONFIG_TOUCH_SOUND "touch_sound:" #define CONFIG_TOAST_SOUND "toast_sound:" #define CONFIG_ALERT_SOUND "alert_sound:" +#define CONFIG_PREHEATDONE_SOUND "preheatdone_sound:" #define CONFIG_KNOB_COLOR "knob_led_color:" #define CONFIG_KNOB_LED_IDLE "knob_led_idle:" #define CONFIG_BRIGHTNESS "lcd_brightness:" diff --git a/TFT/src/User/API/config.inc b/TFT/src/User/API/config.inc index 596834dd3c..84d1c88624 100644 --- a/TFT/src/User/API/config.inc +++ b/TFT/src/User/API/config.inc @@ -93,6 +93,7 @@ X_CONFIG(RUNOUT_DISTANCE) X_CONFIG(TOUCH_SOUND) X_CONFIG(TOAST_SOUND) X_CONFIG(ALERT_SOUND) +X_CONFIG(PREHEATDONE_SOUND) X_CONFIG(KNOB_COLOR) X_CONFIG(KNOB_LED_IDLE) X_CONFIG(BRIGHTNESS) diff --git a/TFT/src/User/API/flashStore.c b/TFT/src/User/API/flashStore.c index 0f946efbc3..4cd0c9d7f5 100644 --- a/TFT/src/User/API/flashStore.c +++ b/TFT/src/User/API/flashStore.c @@ -90,6 +90,7 @@ void readStoredPara(void) infoSettings.touchSound = byteToWord(data + (index += 4), 4); infoSettings.toastSound = byteToWord(data + (index += 4), 4); infoSettings.alertSound = byteToWord(data + (index += 4), 4); + infoSettings.preheatDoneSound = byteToWord(data + (index += 4), 4); infoSettings.terminalACK = byteToWord(data + (index += 4), 4); infoSettings.move_speed = byteToWord(data + (index += 4), 4); @@ -230,6 +231,7 @@ void storePara(void) wordToByte(infoSettings.touchSound, data + (index += 4)); wordToByte(infoSettings.toastSound, data + (index += 4)); wordToByte(infoSettings.alertSound, data + (index += 4)); + wordToByte(infoSettings.preheatDoneSound, data + (index += 4)); wordToByte(infoSettings.terminalACK, data + (index += 4)); wordToByte(infoSettings.move_speed, data + (index += 4)); diff --git a/TFT/src/User/API/menu.c b/TFT/src/User/API/menu.c index a87bc71d0d..f5265c0a66 100644 --- a/TFT/src/User/API/menu.c +++ b/TFT/src/User/API/menu.c @@ -737,17 +737,37 @@ void loopBackEnd(void) loopDimTimer(); #endif - if (infoSettings.sequential_mode) +if (infoSettings.sequential_mode) +{ + setSequentialModeColor(); +} + +if (infoSettings.preheatDoneSound) +{ + volatile bool preheatNotification; + if (preheatNotification && heatGetTargetTemp(heatGetCurrentHotend()) == 0 && heatGetTargetTemp(BED)) { - setSequentialModeColor(); + //No target set. No notification needed + preheatNotification = false; } - -#if preheatNotification - volatile preheatNotification; - if (infoMenu.menu[infoMenu.cur] == menuPreheat &&) + else if (preheatNotification && + heatGetCurrentTemp(heatGetCurrentHotend()) >= heatGetTargetTemp(heatGetCurrentHotend()) && + heatGetCurrentTemp(BED) >= heatGetTargetTemp(BED)) { + // Preheat finished. Sound the notification + Buzzer_play(sound_preheatDone); + preheatNotification = false; } -#endif + else if (infoMenu.menu[infoMenu.cur] == menuPreheat && + (heatGetCurrentTemp(heatGetCurrentHotend()) < heatGetTargetTemp(heatGetCurrentHotend()) - 10 || + heatGetCurrentTemp(BED) < heatGetTargetTemp(BED) - 10 + ) && !preheatNotification) + { + //Set preheatnotification to true when the current temp is smalles then the target - 10C + // From now on it doesn't matter in which menu you are. + preheatNotification = true; + } +} if (infoMachineSettings.caseLightsBrightness == ENABLED) { diff --git a/TFT/src/User/Hal/buzzer.c b/TFT/src/User/Hal/buzzer.c index 0e775b44d3..d65f1a0b13 100644 --- a/TFT/src/User/Hal/buzzer.c +++ b/TFT/src/User/Hal/buzzer.c @@ -118,10 +118,10 @@ void Buzzer_play(SOUND sound) break; case sound_preheatDone: if (infoSettings.preheatDoneSound != 1) break; - buzzer_TurnOn(2000,250); - buzzer_TurnOn(0, 50); - buzzer_TurnOn(1500, 100); - buzzer_TurnOn(4000, 2500); + Buzzer_TurnOn(2000,250); + Buzzer_TurnOn(0, 50); + Buzzer_TurnOn(1500, 100); + Buzzer_TurnOn(4000, 2500); break; case sound_keypress: default: diff --git a/TFT/src/User/Menu/ScreenSettings.c b/TFT/src/User/Menu/ScreenSettings.c index 55d618ff82..6f1004961d 100644 --- a/TFT/src/User/Menu/ScreenSettings.c +++ b/TFT/src/User/Menu/ScreenSettings.c @@ -258,9 +258,9 @@ void menuSoundSettings(void) {ICONCHAR_BACK, LIST_LABEL, LABEL_BACKGROUND, LABEL_BACKGROUND},} }; - sounditems.items[0].icon = (infoSettings.touchSound == 1) ? ICONCHAR_TOGGLE_ON : ICONCHAR_TOGGLE_OFF; - sounditems.items[1].icon = (infoSettings.alertSound == 1) ? ICONCHAR_TOGGLE_ON : ICONCHAR_TOGGLE_OFF; - sounditems.items[2].icon = (infoSettings.toastSound == 1) ? ICONCHAR_TOGGLE_ON : ICONCHAR_TOGGLE_OFF; + sounditems.items[0].icon = (infoSettings.touchSound == 1) ? ICONCHAR_TOGGLE_ON : ICONCHAR_TOGGLE_OFF; + sounditems.items[1].icon = (infoSettings.alertSound == 1) ? ICONCHAR_TOGGLE_ON : ICONCHAR_TOGGLE_OFF; + sounditems.items[2].icon = (infoSettings.toastSound == 1) ? ICONCHAR_TOGGLE_ON : ICONCHAR_TOGGLE_OFF; sounditems.items[3].icon = (infoSettings.preheatDoneSound == 1) ? ICONCHAR_TOGGLE_ON : ICONCHAR_TOGGLE_OFF; KEY_VALUES key_num = KEY_IDLE; @@ -291,6 +291,12 @@ void menuSoundSettings(void) menuDrawListItem(&sounditems.items[key_num], key_num); break; + case KEY_ICON_3: + infoSettings.preheatDoneSound = (infoSettings.preheatDoneSound + 1) % 2; + sounditems.items[key_num].icon = (infoSettings.preheatDoneSound == 1) ? ICONCHAR_TOGGLE_ON : ICONCHAR_TOGGLE_OFF; + menuDrawListItem(&sounditems.items[key_num], key_num); + break; + case KEY_ICON_7: infoMenu.cur--; break; From 0e215ebd56841288f75534203783d43d23f2d6cc Mon Sep 17 00:00:00 2001 From: petervw Date: Sun, 15 Nov 2020 20:31:30 +0100 Subject: [PATCH 16/24] Added preheat done notification to the languages files --- .../Language Packs/language_am.ini | 1 + .../Language Packs/language_ca.ini | 1 + .../Language Packs/language_cn.ini | 1 + .../Language Packs/language_cz.ini | 1 + .../Language Packs/language_de.ini | 1 + .../Language Packs/language_en.ini | 1 + .../Language Packs/language_es.ini | 1 + .../Language Packs/language_fr.ini | 1 + .../Language Packs/language_gr.ini | 1 + .../Language Packs/language_hu.ini | 1 + .../Language Packs/language_it.ini | 1 + .../Language Packs/language_jp.ini | 1 + .../Language Packs/language_nl.ini | 1 + .../Language Packs/language_pl.ini | 1 + .../Language Packs/language_pt.ini | 1 + .../Language Packs/language_ru.ini | 1 + .../Language Packs/language_sk.ini | 1 + .../Language Packs/language_sl.ini | 1 + .../Language Packs/language_tc.ini | 1 + .../Language Packs/language_tr.ini | 1 + .../Language Packs/language_am.ini | 1 + .../Language Packs/language_ca.ini | 1 + .../Language Packs/language_cn.ini | 1 + .../Language Packs/language_cz.ini | 1 + .../Language Packs/language_de.ini | 1 + .../Language Packs/language_en.ini | 1 + .../Language Packs/language_es.ini | 1 + .../Language Packs/language_fr.ini | 1 + .../Language Packs/language_gr.ini | 1 + .../Language Packs/language_hu.ini | 1 + .../Language Packs/language_it.ini | 1 + .../Language Packs/language_jp.ini | 1 + .../Language Packs/language_nl.ini | 1 + .../Language Packs/language_pl.ini | 1 + .../Language Packs/language_pt.ini | 1 + .../Language Packs/language_ru.ini | 1 + .../Language Packs/language_sk.ini | 1 + .../Language Packs/language_sl.ini | 1 + .../Language Packs/language_tc.ini | 1 + .../Language Packs/language_tr.ini | 1 + TFT/src/User/API/Language/Language.inc | 1 + TFT/src/User/API/Language/language_am.h | 555 +++++++++--------- TFT/src/User/API/Language/language_ca.h | 555 +++++++++--------- TFT/src/User/API/Language/language_cn.h | 555 +++++++++--------- TFT/src/User/API/Language/language_cz.h | 555 +++++++++--------- TFT/src/User/API/Language/language_de.h | 555 +++++++++--------- TFT/src/User/API/Language/language_en.h | 555 +++++++++--------- TFT/src/User/API/Language/language_es.h | 555 +++++++++--------- TFT/src/User/API/Language/language_fr.h | 555 +++++++++--------- TFT/src/User/API/Language/language_gr.h | 555 +++++++++--------- TFT/src/User/API/Language/language_hu.h | 555 +++++++++--------- TFT/src/User/API/Language/language_it.h | 555 +++++++++--------- TFT/src/User/API/Language/language_jp.h | 555 +++++++++--------- TFT/src/User/API/Language/language_keywords.h | 1 + TFT/src/User/API/Language/language_nl.h | 555 +++++++++--------- TFT/src/User/API/Language/language_pl.h | 555 +++++++++--------- TFT/src/User/API/Language/language_pt.h | 555 +++++++++--------- TFT/src/User/API/Language/language_ru.h | 555 +++++++++--------- TFT/src/User/API/Language/language_sk.h | 555 +++++++++--------- TFT/src/User/API/Language/language_sl.h | 555 +++++++++--------- TFT/src/User/API/Language/language_tc.h | 555 +++++++++--------- TFT/src/User/API/Language/language_tr.h | 555 +++++++++--------- TFT/src/User/API/Settings.h | 4 +- TFT/src/User/Menu/ScreenSettings.c | 16 +- 64 files changed, 5612 insertions(+), 5550 deletions(-) diff --git a/Copy to SD Card root directory to update - Unified Menu Material theme/Language Packs/language_am.ini b/Copy to SD Card root directory to update - Unified Menu Material theme/Language Packs/language_am.ini index 5c56c0b96c..fe87b32aff 100644 --- a/Copy to SD Card root directory to update - Unified Menu Material theme/Language Packs/language_am.ini +++ b/Copy to SD Card root directory to update - Unified Menu Material theme/Language Packs/language_am.ini @@ -19,6 +19,7 @@ label_sound:Sound label_touch_sound:Touch sounds label_toast_sound:Toast Notifications label_alert_sound:Popups and Alerts +label_preheatdone_sound:Preheat done notification label_shut_down:Shut Down label_rgb_settings:LED Color label_rgb_off:LED Off diff --git a/Copy to SD Card root directory to update - Unified Menu Material theme/Language Packs/language_ca.ini b/Copy to SD Card root directory to update - Unified Menu Material theme/Language Packs/language_ca.ini index b097b61404..71fe2071e2 100644 --- a/Copy to SD Card root directory to update - Unified Menu Material theme/Language Packs/language_ca.ini +++ b/Copy to SD Card root directory to update - Unified Menu Material theme/Language Packs/language_ca.ini @@ -19,6 +19,7 @@ label_sound:Sound label_touch_sound:Touch sounds label_toast_sound:Toast Notifications label_alert_sound:Popups and Alerts +label_preheatdone_sound:Preheat done notification label_shut_down:Apagar label_rgb_settings:Color LED label_rgb_off:Apagar LED diff --git a/Copy to SD Card root directory to update - Unified Menu Material theme/Language Packs/language_cn.ini b/Copy to SD Card root directory to update - Unified Menu Material theme/Language Packs/language_cn.ini index 80b05f9030..295273b24e 100644 --- a/Copy to SD Card root directory to update - Unified Menu Material theme/Language Packs/language_cn.ini +++ b/Copy to SD Card root directory to update - Unified Menu Material theme/Language Packs/language_cn.ini @@ -19,6 +19,7 @@ label_sound:声音 label_touch_sound:按钮声音 label_toast_sound:Toast 提示声音 label_alert_sound:弹窗和提示声音 +label_preheatdone_sound:Preheat done notification label_shut_down:关闭电源 label_rgb_settings:灯光颜色 label_rgb_off:熄灭灯光 diff --git a/Copy to SD Card root directory to update - Unified Menu Material theme/Language Packs/language_cz.ini b/Copy to SD Card root directory to update - Unified Menu Material theme/Language Packs/language_cz.ini index 0a03120481..48b56f8ec9 100644 --- a/Copy to SD Card root directory to update - Unified Menu Material theme/Language Packs/language_cz.ini +++ b/Copy to SD Card root directory to update - Unified Menu Material theme/Language Packs/language_cz.ini @@ -19,6 +19,7 @@ label_sound:Zvuk label_touch_sound:Zvuk při dotyku label_toast_sound:Zvuk vytápění label_alert_sound:Upozornění, popup okno +label_preheatdone_sound:Preheat done notification label_shut_down:Vypnout label_rgb_settings:Barva LED label_rgb_off:LED vyp. diff --git a/Copy to SD Card root directory to update - Unified Menu Material theme/Language Packs/language_de.ini b/Copy to SD Card root directory to update - Unified Menu Material theme/Language Packs/language_de.ini index 5eee2103c1..73a0858db1 100644 --- a/Copy to SD Card root directory to update - Unified Menu Material theme/Language Packs/language_de.ini +++ b/Copy to SD Card root directory to update - Unified Menu Material theme/Language Packs/language_de.ini @@ -19,6 +19,7 @@ label_sound:Töne label_touch_sound:Eingabe label_toast_sound:Toasts label_alert_sound:Popups & Alarme +label_preheatdone_sound:Preheat done notification label_shut_down:auschalten (PS_ON) label_rgb_settings:LED Farbe label_rgb_off:LED aus diff --git a/Copy to SD Card root directory to update - Unified Menu Material theme/Language Packs/language_en.ini b/Copy to SD Card root directory to update - Unified Menu Material theme/Language Packs/language_en.ini index 1b324858cb..2f69de732c 100644 --- a/Copy to SD Card root directory to update - Unified Menu Material theme/Language Packs/language_en.ini +++ b/Copy to SD Card root directory to update - Unified Menu Material theme/Language Packs/language_en.ini @@ -19,6 +19,7 @@ label_sound:Sound label_touch_sound:Touch sounds label_toast_sound:Toast Notifications label_alert_sound:Popups and Alerts +label_preheatdone_sound:Preheat done notification label_shut_down:Shut Down label_rgb_settings:LED Color label_rgb_off:LED Off diff --git a/Copy to SD Card root directory to update - Unified Menu Material theme/Language Packs/language_es.ini b/Copy to SD Card root directory to update - Unified Menu Material theme/Language Packs/language_es.ini index 9919e5cc7f..b5530f292e 100644 --- a/Copy to SD Card root directory to update - Unified Menu Material theme/Language Packs/language_es.ini +++ b/Copy to SD Card root directory to update - Unified Menu Material theme/Language Packs/language_es.ini @@ -19,6 +19,7 @@ label_sound:Sound label_touch_sound:Touch sounds label_toast_sound:Toast Notifications label_alert_sound:Popups and Alerts +label_preheatdone_sound:Preheat done notification label_shut_down:Apagar label_rgb_settings:Color LED label_rgb_off:Apagar LED diff --git a/Copy to SD Card root directory to update - Unified Menu Material theme/Language Packs/language_fr.ini b/Copy to SD Card root directory to update - Unified Menu Material theme/Language Packs/language_fr.ini index b6041ea167..981e870dcf 100644 --- a/Copy to SD Card root directory to update - Unified Menu Material theme/Language Packs/language_fr.ini +++ b/Copy to SD Card root directory to update - Unified Menu Material theme/Language Packs/language_fr.ini @@ -19,6 +19,7 @@ label_sound:Son label_touch_sound:Son des touches label_toast_sound:Notifications label_alert_sound:Popups et alertes +label_preheatdone_sound:Preheat done notification label_shut_down:Eteindre label_rgb_settings:LED label_rgb_off:LED Off diff --git a/Copy to SD Card root directory to update - Unified Menu Material theme/Language Packs/language_gr.ini b/Copy to SD Card root directory to update - Unified Menu Material theme/Language Packs/language_gr.ini index f8f05d12c3..6bf01b2e9c 100644 --- a/Copy to SD Card root directory to update - Unified Menu Material theme/Language Packs/language_gr.ini +++ b/Copy to SD Card root directory to update - Unified Menu Material theme/Language Packs/language_gr.ini @@ -19,6 +19,7 @@ label_sound:Sound label_touch_sound:Touch sounds label_toast_sound:Toast Notifications label_alert_sound:Popups and Alerts +label_preheatdone_sound:Preheat done notification label_shut_down:Απενεργοποίηση label_rgb_settings:Χρώμα LED label_rgb_off:Απενεργοποίηση LED diff --git a/Copy to SD Card root directory to update - Unified Menu Material theme/Language Packs/language_hu.ini b/Copy to SD Card root directory to update - Unified Menu Material theme/Language Packs/language_hu.ini index 5b62dcdff3..ddf22736bf 100644 --- a/Copy to SD Card root directory to update - Unified Menu Material theme/Language Packs/language_hu.ini +++ b/Copy to SD Card root directory to update - Unified Menu Material theme/Language Packs/language_hu.ini @@ -19,6 +19,7 @@ label_sound:Hangok label_touch_sound:Érintés hangja label_toast_sound:Fűtő értesítések label_alert_sound:Felugró riasztások +label_preheatdone_sound:Preheat done notification label_shut_down:Leállítás label_rgb_settings:LED Szín label_rgb_off:LED KI diff --git a/Copy to SD Card root directory to update - Unified Menu Material theme/Language Packs/language_it.ini b/Copy to SD Card root directory to update - Unified Menu Material theme/Language Packs/language_it.ini index cd92ad8311..c60198e92d 100644 --- a/Copy to SD Card root directory to update - Unified Menu Material theme/Language Packs/language_it.ini +++ b/Copy to SD Card root directory to update - Unified Menu Material theme/Language Packs/language_it.ini @@ -19,6 +19,7 @@ label_sound:Suono label_touch_sound:Suono touch label_toast_sound:Notifiche Toast label_alert_sound:Popup e Avvisi +label_preheatdone_sound:Preheat done notification label_shut_down:Spegni label_rgb_settings:RGB LED label_rgb_off:Spegni diff --git a/Copy to SD Card root directory to update - Unified Menu Material theme/Language Packs/language_jp.ini b/Copy to SD Card root directory to update - Unified Menu Material theme/Language Packs/language_jp.ini index 9adea325b8..3d9c9f79c5 100644 --- a/Copy to SD Card root directory to update - Unified Menu Material theme/Language Packs/language_jp.ini +++ b/Copy to SD Card root directory to update - Unified Menu Material theme/Language Packs/language_jp.ini @@ -19,6 +19,7 @@ label_sound:Sound label_touch_sound:Touch sounds label_toast_sound:Toast Notifications label_alert_sound:Popups and Alerts +label_preheatdone_sound:Preheat done notification label_shut_down:シャットダウン label_rgb_settings:LED カラー label_rgb_off:LED オフ diff --git a/Copy to SD Card root directory to update - Unified Menu Material theme/Language Packs/language_nl.ini b/Copy to SD Card root directory to update - Unified Menu Material theme/Language Packs/language_nl.ini index 1197e59d27..6695a9275a 100644 --- a/Copy to SD Card root directory to update - Unified Menu Material theme/Language Packs/language_nl.ini +++ b/Copy to SD Card root directory to update - Unified Menu Material theme/Language Packs/language_nl.ini @@ -19,6 +19,7 @@ label_sound:Sound label_touch_sound:Touch sounds label_toast_sound:Toast Notifications label_alert_sound:Popups and Alerts +label_preheatdone_sound:Preheat done notification label_shut_down:Uitschakelen label_rgb_settings:LED Kleur label_rgb_off:LED Uit diff --git a/Copy to SD Card root directory to update - Unified Menu Material theme/Language Packs/language_pl.ini b/Copy to SD Card root directory to update - Unified Menu Material theme/Language Packs/language_pl.ini index 24ef5ddc29..ac63092b10 100644 --- a/Copy to SD Card root directory to update - Unified Menu Material theme/Language Packs/language_pl.ini +++ b/Copy to SD Card root directory to update - Unified Menu Material theme/Language Packs/language_pl.ini @@ -19,6 +19,7 @@ label_sound:Sound label_touch_sound:Touch sounds label_toast_sound:Toast Notifications label_alert_sound:Popups and Alerts +label_preheatdone_sound:Preheat done notification label_shut_down:Wyłącz label_rgb_settings:Kolor LED label_rgb_off:Wyłącz LED diff --git a/Copy to SD Card root directory to update - Unified Menu Material theme/Language Packs/language_pt.ini b/Copy to SD Card root directory to update - Unified Menu Material theme/Language Packs/language_pt.ini index b7277958a1..b3d6b07f97 100644 --- a/Copy to SD Card root directory to update - Unified Menu Material theme/Language Packs/language_pt.ini +++ b/Copy to SD Card root directory to update - Unified Menu Material theme/Language Packs/language_pt.ini @@ -19,6 +19,7 @@ label_sound:Sound label_touch_sound:Touch sounds label_toast_sound:Toast Notifications label_alert_sound:Popups and Alerts +label_preheatdone_sound:Preheat done notification label_shut_down:Desligar label_rgb_settings:LED cor label_rgb_off:Desligar diff --git a/Copy to SD Card root directory to update - Unified Menu Material theme/Language Packs/language_ru.ini b/Copy to SD Card root directory to update - Unified Menu Material theme/Language Packs/language_ru.ini index dbfb922f1e..19ca1de7e7 100644 --- a/Copy to SD Card root directory to update - Unified Menu Material theme/Language Packs/language_ru.ini +++ b/Copy to SD Card root directory to update - Unified Menu Material theme/Language Packs/language_ru.ini @@ -19,6 +19,7 @@ label_sound:Звуки label_touch_sound:Звуки нажатий label_toast_sound:Звуки инфостроки label_alert_sound:Предупреждения +label_preheatdone_sound:Preheat done notification label_shut_down:Выключить label_rgb_settings:Цвет LED label_rgb_off:LED выкл diff --git a/Copy to SD Card root directory to update - Unified Menu Material theme/Language Packs/language_sk.ini b/Copy to SD Card root directory to update - Unified Menu Material theme/Language Packs/language_sk.ini index 7cb5427bce..93668ab1fa 100644 --- a/Copy to SD Card root directory to update - Unified Menu Material theme/Language Packs/language_sk.ini +++ b/Copy to SD Card root directory to update - Unified Menu Material theme/Language Packs/language_sk.ini @@ -19,6 +19,7 @@ label_sound:Sound label_touch_sound:Touch sounds label_toast_sound:Toast Notifications label_alert_sound:Popups and Alerts +label_preheatdone_sound:Preheat done notification label_shut_down:Vypnúť label_rgb_settings:Farba LED label_rgb_off:Vypnúť LED diff --git a/Copy to SD Card root directory to update - Unified Menu Material theme/Language Packs/language_sl.ini b/Copy to SD Card root directory to update - Unified Menu Material theme/Language Packs/language_sl.ini index 5654f4bff2..ac9fecd8b5 100644 --- a/Copy to SD Card root directory to update - Unified Menu Material theme/Language Packs/language_sl.ini +++ b/Copy to SD Card root directory to update - Unified Menu Material theme/Language Packs/language_sl.ini @@ -19,6 +19,7 @@ label_sound:Sound label_touch_sound:Touch sounds label_toast_sound:Toast Notifications label_alert_sound:Popups and Alerts +label_preheatdone_sound:Preheat done notification label_shut_down:Izklop label_rgb_settings:Barva LED label_rgb_off:LED Off diff --git a/Copy to SD Card root directory to update - Unified Menu Material theme/Language Packs/language_tc.ini b/Copy to SD Card root directory to update - Unified Menu Material theme/Language Packs/language_tc.ini index 366afe7d18..437f453058 100644 --- a/Copy to SD Card root directory to update - Unified Menu Material theme/Language Packs/language_tc.ini +++ b/Copy to SD Card root directory to update - Unified Menu Material theme/Language Packs/language_tc.ini @@ -19,6 +19,7 @@ label_sound:聲音 label_touch_sound:按鈕聲音 label_toast_sound:Toast 提示聲音 label_alert_sound:彈窗和提示聲音 +label_preheatdone_sound:Preheat done notification label_shut_down:關閉電源 label_rgb_settings:燈光顏色 label_rgb_off:關閉燈光 diff --git a/Copy to SD Card root directory to update - Unified Menu Material theme/Language Packs/language_tr.ini b/Copy to SD Card root directory to update - Unified Menu Material theme/Language Packs/language_tr.ini index f9fbde4e01..a41cd221f1 100644 --- a/Copy to SD Card root directory to update - Unified Menu Material theme/Language Packs/language_tr.ini +++ b/Copy to SD Card root directory to update - Unified Menu Material theme/Language Packs/language_tr.ini @@ -19,6 +19,7 @@ label_sound:Sound label_touch_sound:Touch sounds label_toast_sound:Toast Notifications label_alert_sound:Popups and Alerts +label_preheatdone_sound:Preheat done notification label_shut_down:Kapat label_rgb_settings:LED Rengi label_rgb_off:LED'i Kapat diff --git a/Copy to SD Card root directory to update/Language Packs/language_am.ini b/Copy to SD Card root directory to update/Language Packs/language_am.ini index 5c56c0b96c..fe87b32aff 100644 --- a/Copy to SD Card root directory to update/Language Packs/language_am.ini +++ b/Copy to SD Card root directory to update/Language Packs/language_am.ini @@ -19,6 +19,7 @@ label_sound:Sound label_touch_sound:Touch sounds label_toast_sound:Toast Notifications label_alert_sound:Popups and Alerts +label_preheatdone_sound:Preheat done notification label_shut_down:Shut Down label_rgb_settings:LED Color label_rgb_off:LED Off diff --git a/Copy to SD Card root directory to update/Language Packs/language_ca.ini b/Copy to SD Card root directory to update/Language Packs/language_ca.ini index b097b61404..71fe2071e2 100644 --- a/Copy to SD Card root directory to update/Language Packs/language_ca.ini +++ b/Copy to SD Card root directory to update/Language Packs/language_ca.ini @@ -19,6 +19,7 @@ label_sound:Sound label_touch_sound:Touch sounds label_toast_sound:Toast Notifications label_alert_sound:Popups and Alerts +label_preheatdone_sound:Preheat done notification label_shut_down:Apagar label_rgb_settings:Color LED label_rgb_off:Apagar LED diff --git a/Copy to SD Card root directory to update/Language Packs/language_cn.ini b/Copy to SD Card root directory to update/Language Packs/language_cn.ini index 80b05f9030..295273b24e 100644 --- a/Copy to SD Card root directory to update/Language Packs/language_cn.ini +++ b/Copy to SD Card root directory to update/Language Packs/language_cn.ini @@ -19,6 +19,7 @@ label_sound:声音 label_touch_sound:按钮声音 label_toast_sound:Toast 提示声音 label_alert_sound:弹窗和提示声音 +label_preheatdone_sound:Preheat done notification label_shut_down:关闭电源 label_rgb_settings:灯光颜色 label_rgb_off:熄灭灯光 diff --git a/Copy to SD Card root directory to update/Language Packs/language_cz.ini b/Copy to SD Card root directory to update/Language Packs/language_cz.ini index 0a03120481..48b56f8ec9 100644 --- a/Copy to SD Card root directory to update/Language Packs/language_cz.ini +++ b/Copy to SD Card root directory to update/Language Packs/language_cz.ini @@ -19,6 +19,7 @@ label_sound:Zvuk label_touch_sound:Zvuk při dotyku label_toast_sound:Zvuk vytápění label_alert_sound:Upozornění, popup okno +label_preheatdone_sound:Preheat done notification label_shut_down:Vypnout label_rgb_settings:Barva LED label_rgb_off:LED vyp. diff --git a/Copy to SD Card root directory to update/Language Packs/language_de.ini b/Copy to SD Card root directory to update/Language Packs/language_de.ini index 5eee2103c1..73a0858db1 100644 --- a/Copy to SD Card root directory to update/Language Packs/language_de.ini +++ b/Copy to SD Card root directory to update/Language Packs/language_de.ini @@ -19,6 +19,7 @@ label_sound:Töne label_touch_sound:Eingabe label_toast_sound:Toasts label_alert_sound:Popups & Alarme +label_preheatdone_sound:Preheat done notification label_shut_down:auschalten (PS_ON) label_rgb_settings:LED Farbe label_rgb_off:LED aus diff --git a/Copy to SD Card root directory to update/Language Packs/language_en.ini b/Copy to SD Card root directory to update/Language Packs/language_en.ini index 1b324858cb..2f69de732c 100644 --- a/Copy to SD Card root directory to update/Language Packs/language_en.ini +++ b/Copy to SD Card root directory to update/Language Packs/language_en.ini @@ -19,6 +19,7 @@ label_sound:Sound label_touch_sound:Touch sounds label_toast_sound:Toast Notifications label_alert_sound:Popups and Alerts +label_preheatdone_sound:Preheat done notification label_shut_down:Shut Down label_rgb_settings:LED Color label_rgb_off:LED Off diff --git a/Copy to SD Card root directory to update/Language Packs/language_es.ini b/Copy to SD Card root directory to update/Language Packs/language_es.ini index 9919e5cc7f..b5530f292e 100644 --- a/Copy to SD Card root directory to update/Language Packs/language_es.ini +++ b/Copy to SD Card root directory to update/Language Packs/language_es.ini @@ -19,6 +19,7 @@ label_sound:Sound label_touch_sound:Touch sounds label_toast_sound:Toast Notifications label_alert_sound:Popups and Alerts +label_preheatdone_sound:Preheat done notification label_shut_down:Apagar label_rgb_settings:Color LED label_rgb_off:Apagar LED diff --git a/Copy to SD Card root directory to update/Language Packs/language_fr.ini b/Copy to SD Card root directory to update/Language Packs/language_fr.ini index b6041ea167..981e870dcf 100644 --- a/Copy to SD Card root directory to update/Language Packs/language_fr.ini +++ b/Copy to SD Card root directory to update/Language Packs/language_fr.ini @@ -19,6 +19,7 @@ label_sound:Son label_touch_sound:Son des touches label_toast_sound:Notifications label_alert_sound:Popups et alertes +label_preheatdone_sound:Preheat done notification label_shut_down:Eteindre label_rgb_settings:LED label_rgb_off:LED Off diff --git a/Copy to SD Card root directory to update/Language Packs/language_gr.ini b/Copy to SD Card root directory to update/Language Packs/language_gr.ini index f8f05d12c3..6bf01b2e9c 100644 --- a/Copy to SD Card root directory to update/Language Packs/language_gr.ini +++ b/Copy to SD Card root directory to update/Language Packs/language_gr.ini @@ -19,6 +19,7 @@ label_sound:Sound label_touch_sound:Touch sounds label_toast_sound:Toast Notifications label_alert_sound:Popups and Alerts +label_preheatdone_sound:Preheat done notification label_shut_down:Απενεργοποίηση label_rgb_settings:Χρώμα LED label_rgb_off:Απενεργοποίηση LED diff --git a/Copy to SD Card root directory to update/Language Packs/language_hu.ini b/Copy to SD Card root directory to update/Language Packs/language_hu.ini index 5b62dcdff3..ddf22736bf 100644 --- a/Copy to SD Card root directory to update/Language Packs/language_hu.ini +++ b/Copy to SD Card root directory to update/Language Packs/language_hu.ini @@ -19,6 +19,7 @@ label_sound:Hangok label_touch_sound:Érintés hangja label_toast_sound:Fűtő értesítések label_alert_sound:Felugró riasztások +label_preheatdone_sound:Preheat done notification label_shut_down:Leállítás label_rgb_settings:LED Szín label_rgb_off:LED KI diff --git a/Copy to SD Card root directory to update/Language Packs/language_it.ini b/Copy to SD Card root directory to update/Language Packs/language_it.ini index cd92ad8311..c60198e92d 100644 --- a/Copy to SD Card root directory to update/Language Packs/language_it.ini +++ b/Copy to SD Card root directory to update/Language Packs/language_it.ini @@ -19,6 +19,7 @@ label_sound:Suono label_touch_sound:Suono touch label_toast_sound:Notifiche Toast label_alert_sound:Popup e Avvisi +label_preheatdone_sound:Preheat done notification label_shut_down:Spegni label_rgb_settings:RGB LED label_rgb_off:Spegni diff --git a/Copy to SD Card root directory to update/Language Packs/language_jp.ini b/Copy to SD Card root directory to update/Language Packs/language_jp.ini index 9adea325b8..3d9c9f79c5 100644 --- a/Copy to SD Card root directory to update/Language Packs/language_jp.ini +++ b/Copy to SD Card root directory to update/Language Packs/language_jp.ini @@ -19,6 +19,7 @@ label_sound:Sound label_touch_sound:Touch sounds label_toast_sound:Toast Notifications label_alert_sound:Popups and Alerts +label_preheatdone_sound:Preheat done notification label_shut_down:シャットダウン label_rgb_settings:LED カラー label_rgb_off:LED オフ diff --git a/Copy to SD Card root directory to update/Language Packs/language_nl.ini b/Copy to SD Card root directory to update/Language Packs/language_nl.ini index 1197e59d27..6695a9275a 100644 --- a/Copy to SD Card root directory to update/Language Packs/language_nl.ini +++ b/Copy to SD Card root directory to update/Language Packs/language_nl.ini @@ -19,6 +19,7 @@ label_sound:Sound label_touch_sound:Touch sounds label_toast_sound:Toast Notifications label_alert_sound:Popups and Alerts +label_preheatdone_sound:Preheat done notification label_shut_down:Uitschakelen label_rgb_settings:LED Kleur label_rgb_off:LED Uit diff --git a/Copy to SD Card root directory to update/Language Packs/language_pl.ini b/Copy to SD Card root directory to update/Language Packs/language_pl.ini index 24ef5ddc29..ac63092b10 100644 --- a/Copy to SD Card root directory to update/Language Packs/language_pl.ini +++ b/Copy to SD Card root directory to update/Language Packs/language_pl.ini @@ -19,6 +19,7 @@ label_sound:Sound label_touch_sound:Touch sounds label_toast_sound:Toast Notifications label_alert_sound:Popups and Alerts +label_preheatdone_sound:Preheat done notification label_shut_down:Wyłącz label_rgb_settings:Kolor LED label_rgb_off:Wyłącz LED diff --git a/Copy to SD Card root directory to update/Language Packs/language_pt.ini b/Copy to SD Card root directory to update/Language Packs/language_pt.ini index b7277958a1..b3d6b07f97 100644 --- a/Copy to SD Card root directory to update/Language Packs/language_pt.ini +++ b/Copy to SD Card root directory to update/Language Packs/language_pt.ini @@ -19,6 +19,7 @@ label_sound:Sound label_touch_sound:Touch sounds label_toast_sound:Toast Notifications label_alert_sound:Popups and Alerts +label_preheatdone_sound:Preheat done notification label_shut_down:Desligar label_rgb_settings:LED cor label_rgb_off:Desligar diff --git a/Copy to SD Card root directory to update/Language Packs/language_ru.ini b/Copy to SD Card root directory to update/Language Packs/language_ru.ini index dbfb922f1e..19ca1de7e7 100644 --- a/Copy to SD Card root directory to update/Language Packs/language_ru.ini +++ b/Copy to SD Card root directory to update/Language Packs/language_ru.ini @@ -19,6 +19,7 @@ label_sound:Звуки label_touch_sound:Звуки нажатий label_toast_sound:Звуки инфостроки label_alert_sound:Предупреждения +label_preheatdone_sound:Preheat done notification label_shut_down:Выключить label_rgb_settings:Цвет LED label_rgb_off:LED выкл diff --git a/Copy to SD Card root directory to update/Language Packs/language_sk.ini b/Copy to SD Card root directory to update/Language Packs/language_sk.ini index 7cb5427bce..93668ab1fa 100644 --- a/Copy to SD Card root directory to update/Language Packs/language_sk.ini +++ b/Copy to SD Card root directory to update/Language Packs/language_sk.ini @@ -19,6 +19,7 @@ label_sound:Sound label_touch_sound:Touch sounds label_toast_sound:Toast Notifications label_alert_sound:Popups and Alerts +label_preheatdone_sound:Preheat done notification label_shut_down:Vypnúť label_rgb_settings:Farba LED label_rgb_off:Vypnúť LED diff --git a/Copy to SD Card root directory to update/Language Packs/language_sl.ini b/Copy to SD Card root directory to update/Language Packs/language_sl.ini index 5654f4bff2..ac9fecd8b5 100644 --- a/Copy to SD Card root directory to update/Language Packs/language_sl.ini +++ b/Copy to SD Card root directory to update/Language Packs/language_sl.ini @@ -19,6 +19,7 @@ label_sound:Sound label_touch_sound:Touch sounds label_toast_sound:Toast Notifications label_alert_sound:Popups and Alerts +label_preheatdone_sound:Preheat done notification label_shut_down:Izklop label_rgb_settings:Barva LED label_rgb_off:LED Off diff --git a/Copy to SD Card root directory to update/Language Packs/language_tc.ini b/Copy to SD Card root directory to update/Language Packs/language_tc.ini index 366afe7d18..437f453058 100644 --- a/Copy to SD Card root directory to update/Language Packs/language_tc.ini +++ b/Copy to SD Card root directory to update/Language Packs/language_tc.ini @@ -19,6 +19,7 @@ label_sound:聲音 label_touch_sound:按鈕聲音 label_toast_sound:Toast 提示聲音 label_alert_sound:彈窗和提示聲音 +label_preheatdone_sound:Preheat done notification label_shut_down:關閉電源 label_rgb_settings:燈光顏色 label_rgb_off:關閉燈光 diff --git a/Copy to SD Card root directory to update/Language Packs/language_tr.ini b/Copy to SD Card root directory to update/Language Packs/language_tr.ini index f9fbde4e01..a41cd221f1 100644 --- a/Copy to SD Card root directory to update/Language Packs/language_tr.ini +++ b/Copy to SD Card root directory to update/Language Packs/language_tr.ini @@ -19,6 +19,7 @@ label_sound:Sound label_touch_sound:Touch sounds label_toast_sound:Toast Notifications label_alert_sound:Popups and Alerts +label_preheatdone_sound:Preheat done notification label_shut_down:Kapat label_rgb_settings:LED Rengi label_rgb_off:LED'i Kapat diff --git a/TFT/src/User/API/Language/Language.inc b/TFT/src/User/API/Language/Language.inc index 09a6fac45a..952cc41866 100644 --- a/TFT/src/User/API/Language/Language.inc +++ b/TFT/src/User/API/Language/Language.inc @@ -14,6 +14,7 @@ X_WORD (SOUND) X_WORD (TOUCH_SOUND) X_WORD (ALERT_SOUND) X_WORD (TOAST_SOUND) +X_WORD (PREHEATDONE_SOUND) X_WORD (SHUT_DOWN) X_WORD (RGB_SETTINGS) X_WORD (RGB_OFF) diff --git a/TFT/src/User/API/Language/language_am.h b/TFT/src/User/API/Language/language_am.h index 73b16d52f7..3290ebfdeb 100644 --- a/TFT/src/User/API/Language/language_am.h +++ b/TFT/src/User/API/Language/language_am.h @@ -1,279 +1,280 @@ #pragma once - #define STRING_LANGUAGE "Հայերեն" - #define STRING_HEAT "Ջերմություն" - #define STRING_MOVE "Շարժել" - #define STRING_HOME "Սկզբնական" - #define STRING_DISABLE_STEPPERS "Disarm All" - #define STRING_PRINT "Տպել" - #define STRING_EXTRUDE "Հալել" - #define STRING_FAN "Հովացնել" - #define STRING_SETTINGS "Կարգավորումներ" - #define STRING_SCREEN_SETTINGS "Screen" - #define STRING_MACHINE_SETTINGS "Machine" - #define STRING_FEATURE_SETTINGS "Feature" - #define STRING_SOUND "Sound" - #define STRING_TOUCH_SOUND "Touch sounds" - #define STRING_TOAST_SOUND "Toast Notifications" - #define STRING_ALERT_SOUND "Popups and Alerts" - #define STRING_SHUT_DOWN "Shut Down" - #define STRING_RGB_SETTINGS "LED Color" - #define STRING_RGB_OFF "LED Off" - #define STRING_TERMINAL "Terminal" - #define STRING_CUSTOM "Custom" - #define STRING_LEVELING "Leveling" - #define STRING_POINT_1 "Point 1" - #define STRING_POINT_2 "Point 2" - #define STRING_POINT_3 "Point 3" - #define STRING_POINT_4 "Point 4" - #define STRING_POINT_5 "Point 5" - #define STRING_BED_LEVELING "Bed Level" - #define STRING_BL_COMPLETE "Bed Leveling Complete" - #define STRING_BL_SMART_FILL "Missing probe points\nhave been smart filled.\n \nNote: remember to save!" - #define STRING_BL_ENABLE "BL: on" - #define STRING_BL_DISABLE "BL: off" - #define STRING_ABL "ABL" - #define STRING_BBL "BBL" - #define STRING_UBL "UBL" - #define STRING_MBL "MBL" - #define STRING_MBL_SETTINGS "Mesh Bed Leveling" - #define STRING_ABL_SETTINGS "Auto Bed Leveling" - #define STRING_ABL_SETTINGS_BBL "Bilinear Bed Leveling" - #define STRING_ABL_SETTINGS_UBL "Unified Bed Leveling" - #define STRING_ABL_SETTINGS_UBL_SAVE "Save to slot" - #define STRING_ABL_SETTINGS_UBL_LOAD "Load from slot" - #define STRING_ABL_SLOT0 "Slot 0" - #define STRING_ABL_SLOT1 "Slot 1" - #define STRING_ABL_SLOT2 "Slot 2" - #define STRING_ABL_SLOT3 "Slot 3" - #define STRING_ABL_SLOT_EEPROM "Remember slot for next\nreboot? (Save EEPROM)" - #define STRING_ABL_Z "Z Fade" - #define STRING_BLTOUCH "BLTouch" - #define STRING_BLTOUCH_TEST "Test" - #define STRING_BLTOUCH_DEPLOY "Deploy" - #define STRING_BLTOUCH_STOW "Stow" - #define STRING_BLTOUCH_REPEAT "Repeat" - #define STRING_Z_OFFSET "Z Offset" - #define STRING_PROBE_OFFSET "Probe Offset" - #define STRING_HOME_OFFSET "Home Offset" - #define STRING_CONFIRMATION "Are you sure?" - #define STRING_DOWN "Down" - #define STRING_UP "Up" - #define STRING_SAVE "Save" - #define STRING_RESTORE "Restore" - #define STRING_RESET "Reset" - #define STRING_DEFAULT "Default" - #define STRING_CLEAR "Clear" - #define STRING_NEXT "Next" - #define STRING_DISTANCE "Distance" - #define STRING_INVALID_VALUE "Invalid value(s)" - #define STRING_TIMEOUT_REACHED "Timeout reached!" - #define STRING_PROCESS_RUNNING "Process already running!" - #define STRING_PROCESS_COMPLETED "Process completed!" - #define STRING_PROCESS_ABORTED "Process aborted!" - #define STRING_INC "Ավելացնել" - #define STRING_DEC "Նվազեցնել" - #define STRING_NOZZLE "Գլխիկ" - #define STRING_BED "Տախտակ" - #define STRING_CHAMBER "Chamber" - #define STRING_START "Start" - #define STRING_STOP "Դադարեցնել" - #define STRING_BACK "Հետ" - #define STRING_PAGE_UP "Վերեւ" - #define STRING_PAGE_DOWN "Ներքեւ" - #define STRING_PAUSE "Կանգնեցնել" - #define STRING_RESUME "Շարունակել" - #define STRING_LOAD "Load" - #define STRING_UNLOAD "Unload" - #define STRING_SLOW_SPEED "Դանդաղ" - #define STRING_NORMAL_SPEED "Նորմալ" - #define STRING_FAST_SPEED "Արագ" - #define STRING_FAN_FULL_SPEED "Ամբողջը" - #define STRING_FAN_HALF_SPEED "Կիսատ" - #define STRING_ROTATE_UI "Rotate UI" - #define STRING_TOUCHSCREEN_ADJUST "TSC Adjust" - #define STRING_MORE "More" - #define STRING_SCREEN_INFO "Info" - #define STRING_STATUS "Status" - #define STRING_SIMULATOR_BG_COLOR "Marlin simulator background color" - #define STRING_SIMULATOR_FONT_COLOR "Marlin simulator font color" - #define STRING_WHITE "White" - #define STRING_BLACK "Black" - #define STRING_BLUE "Blue" - #define STRING_RED "Red" - #define STRING_GREEN "Green" - #define STRING_CYAN "Cyan" - #define STRING_YELLOW "Yellow" - #define STRING_BROWN "Brown" - #define STRING_GRAY "Gray" - #define STRING_ORANGE "Orange" - #define STRING_INDIGO "Indigo" - #define STRING_VIOLET "Violet" - #define STRING_MAGENTA "Magenta" - #define STRING_PURPLE "Purple" - #define STRING_LIME "Lime" - #define STRING_DARKBLUE "DarkBlue" - #define STRING_DARKGREEN "DarkGreen" - #define STRING_DARKGRAY "DarkGray" - #define STRING_DISCONNECT "Անջատել" - #define STRING_BAUDRATE "BaudRate" - #define STRING_PERCENTAGE "Percentage" - #define STRING_BABYSTEP "Դանդաղ" - #define STRING_PERCENTAGE_SPEED "Արագություն" - #define STRING_PERCENTAGE_FLOW "Flow" - #define STRING_VALUE_ZERO "Zero" - #define STRING_1_DEGREE "1℃" - #define STRING_5_DEGREE "5℃" - #define STRING_10_DEGREE "10℃" - #define STRING_X_INC "X+" - #define STRING_Y_INC "Y+" - #define STRING_Z_INC "Z+" - #define STRING_X_DEC "X-" - #define STRING_Y_DEC "Y-" - #define STRING_Z_DEC "Z-" - #define STRING_X "X" - #define STRING_Y "Y" - #define STRING_Z "Z" - #define STRING_001_MM "0.01mm" - #define STRING_01_MM "0.1mm" - #define STRING_1_MM "1mm" - #define STRING_5_MM "5mm" - #define STRING_10_MM "10mm" - #define STRING_100_MM "100mm" - #define STRING_200_MM "200mm" - #define STRING_1_PERCENT "1%" - #define STRING_5_PERCENT "5%" - #define STRING_10_PERCENT "10%" - #define STRING_PERCENT_VALUE "%d%%" - #define STRING_READY "Պատրաստ" - #define STRING_BUSY "Ծանրաբեռնված է" - #define STRING_UNCONNECTED "Տպիչը կցված չէ" - #define STRING_DISCONNECT_INFO "Now you can control the printer by your computer!" - #define STRING_LOADING "Բեռնում է..." - #define STRING_POWER_FAILED "Տպելը չի ավարտվել, շարունակե՞լ" - #define STRING_CONTINUE "Շարունակել" - #define STRING_CANCEL "Չեղարկել" - #define STRING_ADJUST_TITLE "Էկրանի կարգավորում" - #define STRING_ADJUST_INFO "Please click on the red dot" - #define STRING_ADJUST_OK "Adjustment Success" - #define STRING_ADJUST_FAILED "Adjustment failed, Please Try Again" - #define STRING_WARNING "Warning" - #define STRING_STOP_PRINT "Stop printing?" - #define STRING_CONFIRM "Confirm" - #define STRING_TFTSD "TFT SD" - #define STRING_READ_TFTSD_ERROR "TFTSD հիշողության սարքը չկա" - #define STRING_TFTSD_INSERTED "Card inserted!" - #define STRING_TFTSD_REMOVED "Card removed!" - #define STRING_U_DISK "U Disk" - #define STRING_READ_U_DISK_ERROR "Read U Disk error!" - #define STRING_U_DISK_INSERTED "U Disk inserted!" - #define STRING_U_DISK_REMOVED "U Disk removed!" - #define STRING_ONBOARDSD "OnboardSD" - #define STRING_READ_ONBOARDSD_ERROR "OnboardSD հիշողության սարքը չկա" - #define STRING_FILAMENT_SENSOR "Filament sensor" - #define STRING_FILAMENT_RUNOUT "Filament runout!" - #define STRING_PREHEAT "Preheat" - #define STRING_PREHEAT_BOTH "Both" - #define STRING_IS_PAUSE "Unable to extrude when\nprinting.\nPause printing?" - #define STRING_AUTO_SHUT_DOWN "Auto Power" - #define STRING_UNIFIEDMOVE "Movement" - #define STRING_UNIFIEDHEAT "Heat&Fan" - #define STRING_COOLDOWN "Cool Down" - #define STRING_EMERGENCYSTOP "EM. STOP" - #define STRING_TOUCH_TO_EXIT "Touch anywhere to exit" - #define STRING_MAINMENU "Menu" - #define STRING_WAIT_TEMP_SHUT_DOWN "Wait for the temperature\nof hotend to be\nlower than %d℃" // Wait for the temperature of hotend to be lower than 50℃ - #define STRING_FORCE_SHUT_DOWN "Force" - #define STRING_SHUTTING_DOWN "Shutting down..." - #define STRING_PARAMETER_SETTING "Պարամետր" - #define STRING_ON "ON" - #define STRING_OFF "OFF" - #define STRING_SMART "SMART" - #define STRING_TERMINAL_ACK "Show ACK in Terminal" - #define STRING_INVERT_XAXIS "Invert X Axis" - #define STRING_INVERT_YAXIS "Invert Y Axis" - #define STRING_INVERT_ZAXIS "Invert Z Axis" - #define STRING_MOVE_SPEED "Move speed(X Y Z)" - #define STRING_KNOB_LED "Rotary Knob LED" - #define STRING_KNOB_LED_IDLE "Rotary Knob LED idle" - #define STRING_M0_PAUSE "Paused by M0 command" - #define STRING_SEND_START_GCODE "Start Gcode before print" - #define STRING_SEND_END_GCODE "End Gcode after print" - #define STRING_SEND_CANCEL_GCODE "Cancel Gcode" - #define STRING_PERSISTENT_STATUS_INFO "Persistent Status Info" - #define STRING_FILE_LISTMODE "Files viewer List Mode" - #define STRING_CURRENT_SETTING "Driver Current (mA)" - #define STRING_STEPS_SETTING "Steps per mm" - #define STRING_MAXFEEDRATE "Max Feed Rate" - #define STRING_MAXACCELERATION "Max Acceleration" - #define STRING_ACCELERATION "Acceleration" - #define STRING_PRINT_ACCELERATION "Print Acceleration" - #define STRING_RETRACT_ACCELERATION "Retract Acceleration" - #define STRING_TRAVEL_ACCELERATION "Travel Acceleration" - #define STRING_JERK "Jerk" - #define STRING_JUNCTION_DEVIATION "Junction Deviation" - #define STRING_BUMP_SENSITIVITY "TMC bump sensitivity" - #define STRING_FWRETRACT "FW Retraction" - #define STRING_FWRECOVER "FW Retraction Recover" - #define STRING_LIN_ADVANCE "Linear Advance" - #define STRING_RESET_SETTINGS_INFO "Reset all settings to\ndefault values?" - #define STRING_RESET_SETTINGS_DONE "Reset all settings\nsuccessful.\nplease restart the device." - #define STRING_INFO "Info" - #define STRING_LCD_BRIGHTNESS "LCD Brightness" - #define STRING_LCD_BRIGHTNESS_DIM "LCD Brightness dim" - #define STRING_LCD_DIM_IDLE_TIMER "LCD dim idle timer" - #define STRING_5_SECONDS "5 Sec." - #define STRING_10_SECONDS "10 Sec." - #define STRING_30_SECONDS "30 Sec." - #define STRING_60_SECONDS "1 Min." - #define STRING_120_SECONDS "2 Min." - #define STRING_300_SECONDS "5 Min." - #define STRING_CUSTOM_SECONDS "Custom" - #define STRING_SEQUENTIAL_MODE "Sequential mode" - #define STRING_ST7920_FULLSCREEN "Marlin mode in fullscreen" - #define STRING_PLR_EN "Power loss recovery" - #define STRING_SETTING_SAVE "Save settings" - #define STRING_SETTING_RESET "Reset default settings" - #define STRING_SETTING_RESTORE "load settings" - #define STRING_EEPROM_SETTINGS "EEPROM" - #define STRING_EEPROM_SAVE_INFO "Save printer settings\nto EEPROM?" - #define STRING_EEPROM_RESTORE_INFO "Reload settings from\nEEPROM?" - #define STRING_EEPROM_RESET_INFO "Reset EEPROM to stock printer settings?" - #define STRING_RETRACT_FEEDRATE "Retract feedrate" - #define STRING_RETRACT_LENGTH "Retract length" - #define STRING_RETRACT_SWAP_LENGTH "Retract swap length" - #define STRING_RETRACT_Z_LIFT "Z lift on retraction" - #define STRING_RETRACT_AUTO "Auto Firmware Retract" - #define STRING_RECOVER_FEEDRATE "Recover feedrate" - #define STRING_SWAP_RECOVER_FEEDRATE "Swap recover feedrate" - #define STRING_RECOVER_LENGTH "Extra recover length" - #define STRING_SWAP_RECOVER_LENGTH "Extra recover swap length" - #define STRING_START_PRINT "Start Printing:\n %s?" - #define STRING_ACK_NOTIFICATION "ACK notification style" - #define STRING_LEVELING_EDGE_DISTANCE "Bed edge distance" - #define STRING_XY_UNLOCK "Disarm XY" - #define STRING_TUNING "Tuning" - #define STRING_PID "PID" - #define STRING_PID_TITLE "PID autotune" - #define STRING_PID_START_INFO "PID autotune may take\nsome time to complete.\nContinue?" - #define STRING_PID_START_INFO_2 "PID autotune in progress!" - #define STRING_PID_START_INFO_3 "Do not touch the screen until completed (green LED ON)!" - #define STRING_TUNE_EXTRUDER "Tune steps" - #define STRING_TUNE_EXT_EXTRUDE_100 "Ext. 100mm" - #define STRING_TUNE_EXT_TEMP "Extruder tuning | Heat" - #define STRING_TUNE_EXT_TEMPLOW "Desired temperature too low!\nMinimum temperature: %d C" - #define STRING_TUNE_EXT_DESIREDVAL "Temperature is not yet at the desired value" - #define STRING_TUNE_EXT_MARK120MM "Mark 120 mm on your fillament\nPress '%s' when ready\nMeasure remaining length\nafter extruding" - #define STRING_TUNE_EXT_HEATOFF "Turn the heater off?" - #define STRING_TUNE_EXT_ADJ_ESTEPS "Adjust E-Steps" - #define STRING_TUNE_EXT_ESTEPS_SAVED "New E-steps saved!\nDon't forget to\nsave it in EEPROM\nNew value: %0.2f" - #define STRING_TUNE_EXT_MEASURED "Length remaining:" - #define STRING_TUNE_EXT_OLD_ESTEP "Old e-steps: %0.2f" - #define STRING_TUNE_EXT_NEW_ESTEP "New e-steps: %0.2f" - #define STRING_CONNECTION_SETTINGS "Connection" - #define STRING_OFFSET_TOOL "Offset 2nd Nozzle" - #define STRING_HYBRID_THRESHOLD "TMC HybridThreshold" - #define STRING_NOTIFICATIONS "Notifications" - #define STRING_MESH_EDITOR "Mesh edit" - #define STRING_MESH_TUNER "Mesh tuner" - #define STRING_CASE_LIGHT "Case light" +#define STRING_LANGUAGE "Հայերեն" +#define STRING_HEAT "Ջերմություն" +#define STRING_MOVE "Շարժել" +#define STRING_HOME "Սկզբնական" +#define STRING_DISABLE_STEPPERS "Disarm All" +#define STRING_PRINT "Տպել" +#define STRING_EXTRUDE "Հալել" +#define STRING_FAN "Հովացնել" +#define STRING_SETTINGS "Կարգավորումներ" +#define STRING_SCREEN_SETTINGS "Screen" +#define STRING_MACHINE_SETTINGS "Machine" +#define STRING_FEATURE_SETTINGS "Feature" +#define STRING_SOUND "Sound" +#define STRING_TOUCH_SOUND "Touch sounds" +#define STRING_TOAST_SOUND "Toast Notifications" +#define STRING_ALERT_SOUND "Popups and Alerts" +#define STRING_PREHEATDONE_SOUND "Preheat done notification" +#define STRING_SHUT_DOWN "Shut Down" +#define STRING_RGB_SETTINGS "LED Color" +#define STRING_RGB_OFF "LED Off" +#define STRING_TERMINAL "Terminal" +#define STRING_CUSTOM "Custom" +#define STRING_LEVELING "Leveling" +#define STRING_POINT_1 "Point 1" +#define STRING_POINT_2 "Point 2" +#define STRING_POINT_3 "Point 3" +#define STRING_POINT_4 "Point 4" +#define STRING_POINT_5 "Point 5" +#define STRING_BED_LEVELING "Bed Level" +#define STRING_BL_COMPLETE "Bed Leveling Complete" +#define STRING_BL_SMART_FILL "Missing probe points\nhave been smart filled.\n \nNote: remember to save!" +#define STRING_BL_ENABLE "BL: on" +#define STRING_BL_DISABLE "BL: off" +#define STRING_ABL "ABL" +#define STRING_BBL "BBL" +#define STRING_UBL "UBL" +#define STRING_MBL "MBL" +#define STRING_MBL_SETTINGS "Mesh Bed Leveling" +#define STRING_ABL_SETTINGS "Auto Bed Leveling" +#define STRING_ABL_SETTINGS_BBL "Bilinear Bed Leveling" +#define STRING_ABL_SETTINGS_UBL "Unified Bed Leveling" +#define STRING_ABL_SETTINGS_UBL_SAVE "Save to slot" +#define STRING_ABL_SETTINGS_UBL_LOAD "Load from slot" +#define STRING_ABL_SLOT0 "Slot 0" +#define STRING_ABL_SLOT1 "Slot 1" +#define STRING_ABL_SLOT2 "Slot 2" +#define STRING_ABL_SLOT3 "Slot 3" +#define STRING_ABL_SLOT_EEPROM "Remember slot for next\nreboot? (Save EEPROM)" +#define STRING_ABL_Z "Z Fade" +#define STRING_BLTOUCH "BLTouch" +#define STRING_BLTOUCH_TEST "Test" +#define STRING_BLTOUCH_DEPLOY "Deploy" +#define STRING_BLTOUCH_STOW "Stow" +#define STRING_BLTOUCH_REPEAT "Repeat" +#define STRING_Z_OFFSET "Z Offset" +#define STRING_PROBE_OFFSET "Probe Offset" +#define STRING_HOME_OFFSET "Home Offset" +#define STRING_CONFIRMATION "Are you sure?" +#define STRING_DOWN "Down" +#define STRING_UP "Up" +#define STRING_SAVE "Save" +#define STRING_RESTORE "Restore" +#define STRING_RESET "Reset" +#define STRING_DEFAULT "Default" +#define STRING_CLEAR "Clear" +#define STRING_NEXT "Next" +#define STRING_DISTANCE "Distance" +#define STRING_INVALID_VALUE "Invalid value(s)" +#define STRING_TIMEOUT_REACHED "Timeout reached!" +#define STRING_PROCESS_RUNNING "Process already running!" +#define STRING_PROCESS_COMPLETED "Process completed!" +#define STRING_PROCESS_ABORTED "Process aborted!" +#define STRING_INC "Ավելացնել" +#define STRING_DEC "Նվազեցնել" +#define STRING_NOZZLE "Գլխիկ" +#define STRING_BED "Տախտակ" +#define STRING_CHAMBER "Chamber" +#define STRING_START "Start" +#define STRING_STOP "Դադարեցնել" +#define STRING_BACK "Հետ" +#define STRING_PAGE_UP "Վերեւ" +#define STRING_PAGE_DOWN "Ներքեւ" +#define STRING_PAUSE "Կանգնեցնել" +#define STRING_RESUME "Շարունակել" +#define STRING_LOAD "Load" +#define STRING_UNLOAD "Unload" +#define STRING_SLOW_SPEED "Դանդաղ" +#define STRING_NORMAL_SPEED "Նորմալ" +#define STRING_FAST_SPEED "Արագ" +#define STRING_FAN_FULL_SPEED "Ամբողջը" +#define STRING_FAN_HALF_SPEED "Կիսատ" +#define STRING_ROTATE_UI "Rotate UI" +#define STRING_TOUCHSCREEN_ADJUST "TSC Adjust" +#define STRING_MORE "More" +#define STRING_SCREEN_INFO "Info" +#define STRING_STATUS "Status" +#define STRING_SIMULATOR_BG_COLOR "Marlin simulator background color" +#define STRING_SIMULATOR_FONT_COLOR "Marlin simulator font color" +#define STRING_WHITE "White" +#define STRING_BLACK "Black" +#define STRING_BLUE "Blue" +#define STRING_RED "Red" +#define STRING_GREEN "Green" +#define STRING_CYAN "Cyan" +#define STRING_YELLOW "Yellow" +#define STRING_BROWN "Brown" +#define STRING_GRAY "Gray" +#define STRING_ORANGE "Orange" +#define STRING_INDIGO "Indigo" +#define STRING_VIOLET "Violet" +#define STRING_MAGENTA "Magenta" +#define STRING_PURPLE "Purple" +#define STRING_LIME "Lime" +#define STRING_DARKBLUE "DarkBlue" +#define STRING_DARKGREEN "DarkGreen" +#define STRING_DARKGRAY "DarkGray" +#define STRING_DISCONNECT "Անջատել" +#define STRING_BAUDRATE "BaudRate" +#define STRING_PERCENTAGE "Percentage" +#define STRING_BABYSTEP "Դանդաղ" +#define STRING_PERCENTAGE_SPEED "Արագություն" +#define STRING_PERCENTAGE_FLOW "Flow" +#define STRING_VALUE_ZERO "Zero" +#define STRING_1_DEGREE "1℃" +#define STRING_5_DEGREE "5℃" +#define STRING_10_DEGREE "10℃" +#define STRING_X_INC "X+" +#define STRING_Y_INC "Y+" +#define STRING_Z_INC "Z+" +#define STRING_X_DEC "X-" +#define STRING_Y_DEC "Y-" +#define STRING_Z_DEC "Z-" +#define STRING_X "X" +#define STRING_Y "Y" +#define STRING_Z "Z" +#define STRING_001_MM "0.01mm" +#define STRING_01_MM "0.1mm" +#define STRING_1_MM "1mm" +#define STRING_5_MM "5mm" +#define STRING_10_MM "10mm" +#define STRING_100_MM "100mm" +#define STRING_200_MM "200mm" +#define STRING_1_PERCENT "1%" +#define STRING_5_PERCENT "5%" +#define STRING_10_PERCENT "10%" +#define STRING_PERCENT_VALUE "%d%%" +#define STRING_READY "Պատրաստ" +#define STRING_BUSY "Ծանրաբեռնված է" +#define STRING_UNCONNECTED "Տպիչը կցված չէ" +#define STRING_DISCONNECT_INFO "Now you can control the printer by your computer!" +#define STRING_LOADING "Բեռնում է..." +#define STRING_POWER_FAILED "Տպելը չի ավարտվել, շարունակե՞լ" +#define STRING_CONTINUE "Շարունակել" +#define STRING_CANCEL "Չեղարկել" +#define STRING_ADJUST_TITLE "Էկրանի կարգավորում" +#define STRING_ADJUST_INFO "Please click on the red dot" +#define STRING_ADJUST_OK "Adjustment Success" +#define STRING_ADJUST_FAILED "Adjustment failed, Please Try Again" +#define STRING_WARNING "Warning" +#define STRING_STOP_PRINT "Stop printing?" +#define STRING_CONFIRM "Confirm" +#define STRING_TFTSD "TFT SD" +#define STRING_READ_TFTSD_ERROR "TFTSD հիշողության սարքը չկա" +#define STRING_TFTSD_INSERTED "Card inserted!" +#define STRING_TFTSD_REMOVED "Card removed!" +#define STRING_U_DISK "U Disk" +#define STRING_READ_U_DISK_ERROR "Read U Disk error!" +#define STRING_U_DISK_INSERTED "U Disk inserted!" +#define STRING_U_DISK_REMOVED "U Disk removed!" +#define STRING_ONBOARDSD "OnboardSD" +#define STRING_READ_ONBOARDSD_ERROR "OnboardSD հիշողության սարքը չկա" +#define STRING_FILAMENT_SENSOR "Filament sensor" +#define STRING_FILAMENT_RUNOUT "Filament runout!" +#define STRING_PREHEAT "Preheat" +#define STRING_PREHEAT_BOTH "Both" +#define STRING_IS_PAUSE "Unable to extrude when\nprinting.\nPause printing?" +#define STRING_AUTO_SHUT_DOWN "Auto Power" +#define STRING_UNIFIEDMOVE "Movement" +#define STRING_UNIFIEDHEAT "Heat&Fan" +#define STRING_COOLDOWN "Cool Down" +#define STRING_EMERGENCYSTOP "EM. STOP" +#define STRING_TOUCH_TO_EXIT "Touch anywhere to exit" +#define STRING_MAINMENU "Menu" +#define STRING_WAIT_TEMP_SHUT_DOWN "Wait for the temperature\nof hotend to be\nlower than %d℃" // Wait for the temperature of hotend to be lower than 50℃ +#define STRING_FORCE_SHUT_DOWN "Force" +#define STRING_SHUTTING_DOWN "Shutting down..." +#define STRING_PARAMETER_SETTING "Պարամետր" +#define STRING_ON "ON" +#define STRING_OFF "OFF" +#define STRING_SMART "SMART" +#define STRING_TERMINAL_ACK "Show ACK in Terminal" +#define STRING_INVERT_XAXIS "Invert X Axis" +#define STRING_INVERT_YAXIS "Invert Y Axis" +#define STRING_INVERT_ZAXIS "Invert Z Axis" +#define STRING_MOVE_SPEED "Move speed(X Y Z)" +#define STRING_KNOB_LED "Rotary Knob LED" +#define STRING_KNOB_LED_IDLE "Rotary Knob LED idle" +#define STRING_M0_PAUSE "Paused by M0 command" +#define STRING_SEND_START_GCODE "Start Gcode before print" +#define STRING_SEND_END_GCODE "End Gcode after print" +#define STRING_SEND_CANCEL_GCODE "Cancel Gcode" +#define STRING_PERSISTENT_STATUS_INFO "Persistent Status Info" +#define STRING_FILE_LISTMODE "Files viewer List Mode" +#define STRING_CURRENT_SETTING "Driver Current (mA)" +#define STRING_STEPS_SETTING "Steps per mm" +#define STRING_MAXFEEDRATE "Max Feed Rate" +#define STRING_MAXACCELERATION "Max Acceleration" +#define STRING_ACCELERATION "Acceleration" +#define STRING_PRINT_ACCELERATION "Print Acceleration" +#define STRING_RETRACT_ACCELERATION "Retract Acceleration" +#define STRING_TRAVEL_ACCELERATION "Travel Acceleration" +#define STRING_JERK "Jerk" +#define STRING_JUNCTION_DEVIATION "Junction Deviation" +#define STRING_BUMP_SENSITIVITY "TMC bump sensitivity" +#define STRING_FWRETRACT "FW Retraction" +#define STRING_FWRECOVER "FW Retraction Recover" +#define STRING_LIN_ADVANCE "Linear Advance" +#define STRING_RESET_SETTINGS_INFO "Reset all settings to\ndefault values?" +#define STRING_RESET_SETTINGS_DONE "Reset all settings\nsuccessful.\nplease restart the device." +#define STRING_INFO "Info" +#define STRING_LCD_BRIGHTNESS "LCD Brightness" +#define STRING_LCD_BRIGHTNESS_DIM "LCD Brightness dim" +#define STRING_LCD_DIM_IDLE_TIMER "LCD dim idle timer" +#define STRING_5_SECONDS "5 Sec." +#define STRING_10_SECONDS "10 Sec." +#define STRING_30_SECONDS "30 Sec." +#define STRING_60_SECONDS "1 Min." +#define STRING_120_SECONDS "2 Min." +#define STRING_300_SECONDS "5 Min." +#define STRING_CUSTOM_SECONDS "Custom" +#define STRING_SEQUENTIAL_MODE "Sequential mode" +#define STRING_ST7920_FULLSCREEN "Marlin mode in fullscreen" +#define STRING_PLR_EN "Power loss recovery" +#define STRING_SETTING_SAVE "Save settings" +#define STRING_SETTING_RESET "Reset default settings" +#define STRING_SETTING_RESTORE "load settings" +#define STRING_EEPROM_SETTINGS "EEPROM" +#define STRING_EEPROM_SAVE_INFO "Save printer settings\nto EEPROM?" +#define STRING_EEPROM_RESTORE_INFO "Reload settings from\nEEPROM?" +#define STRING_EEPROM_RESET_INFO "Reset EEPROM to stock printer settings?" +#define STRING_RETRACT_FEEDRATE "Retract feedrate" +#define STRING_RETRACT_LENGTH "Retract length" +#define STRING_RETRACT_SWAP_LENGTH "Retract swap length" +#define STRING_RETRACT_Z_LIFT "Z lift on retraction" +#define STRING_RETRACT_AUTO "Auto Firmware Retract" +#define STRING_RECOVER_FEEDRATE "Recover feedrate" +#define STRING_SWAP_RECOVER_FEEDRATE "Swap recover feedrate" +#define STRING_RECOVER_LENGTH "Extra recover length" +#define STRING_SWAP_RECOVER_LENGTH "Extra recover swap length" +#define STRING_START_PRINT "Start Printing:\n %s?" +#define STRING_ACK_NOTIFICATION "ACK notification style" +#define STRING_LEVELING_EDGE_DISTANCE "Bed edge distance" +#define STRING_XY_UNLOCK "Disarm XY" +#define STRING_TUNING "Tuning" +#define STRING_PID "PID" +#define STRING_PID_TITLE "PID autotune" +#define STRING_PID_START_INFO "PID autotune may take\nsome time to complete.\nContinue?" +#define STRING_PID_START_INFO_2 "PID autotune in progress!" +#define STRING_PID_START_INFO_3 "Do not touch the screen until completed (green LED ON)!" +#define STRING_TUNE_EXTRUDER "Tune steps" +#define STRING_TUNE_EXT_EXTRUDE_100 "Ext. 100mm" +#define STRING_TUNE_EXT_TEMP "Extruder tuning | Heat" +#define STRING_TUNE_EXT_TEMPLOW "Desired temperature too low!\nMinimum temperature: %d C" +#define STRING_TUNE_EXT_DESIREDVAL "Temperature is not yet at the desired value" +#define STRING_TUNE_EXT_MARK120MM "Mark 120 mm on your fillament\nPress '%s' when ready\nMeasure remaining length\nafter extruding" +#define STRING_TUNE_EXT_HEATOFF "Turn the heater off?" +#define STRING_TUNE_EXT_ADJ_ESTEPS "Adjust E-Steps" +#define STRING_TUNE_EXT_ESTEPS_SAVED "New E-steps saved!\nDon't forget to\nsave it in EEPROM\nNew value: %0.2f" +#define STRING_TUNE_EXT_MEASURED "Length remaining:" +#define STRING_TUNE_EXT_OLD_ESTEP "Old e-steps: %0.2f" +#define STRING_TUNE_EXT_NEW_ESTEP "New e-steps: %0.2f" +#define STRING_CONNECTION_SETTINGS "Connection" +#define STRING_OFFSET_TOOL "Offset 2nd Nozzle" +#define STRING_HYBRID_THRESHOLD "TMC HybridThreshold" +#define STRING_NOTIFICATIONS "Notifications" +#define STRING_MESH_EDITOR "Mesh edit" +#define STRING_MESH_TUNER "Mesh tuner" +#define STRING_CASE_LIGHT "Case light" diff --git a/TFT/src/User/API/Language/language_ca.h b/TFT/src/User/API/Language/language_ca.h index 1520838c6c..1e78cc09c3 100644 --- a/TFT/src/User/API/Language/language_ca.h +++ b/TFT/src/User/API/Language/language_ca.h @@ -1,280 +1,281 @@ #pragma once - #define STRING_LANGUAGE "Català" - #define STRING_HEAT "Escalfar" - #define STRING_MOVE "Moure" - #define STRING_HOME "Origen" - #define STRING_DISABLE_STEPPERS "Disarm All" - #define STRING_PRINT "Imprimir" - #define STRING_EXTRUDE "Extruir" - #define STRING_FAN "Ventilar" - #define STRING_SETTINGS "Configura" - #define STRING_SCREEN_SETTINGS "Pantalla" - #define STRING_MACHINE_SETTINGS "Màquina" - #define STRING_FEATURE_SETTINGS "Afegits" - #define STRING_SOUND "Sound" - #define STRING_TOUCH_SOUND "Touch sounds" - #define STRING_TOAST_SOUND "Toast Notifications" - #define STRING_ALERT_SOUND "Popups and Alerts" - #define STRING_SHUT_DOWN "Apagar" - #define STRING_RGB_SETTINGS "Color LED" - #define STRING_RGB_OFF "Apagar LED" - #define STRING_TERMINAL "Terminal" - #define STRING_CUSTOM "Personalitzar" - #define STRING_LEVELING "Anivellar" - #define STRING_POINT_1 "Punt 1" - #define STRING_POINT_2 "Punt 2" - #define STRING_POINT_3 "Punt 3" - #define STRING_POINT_4 "Punt 4" - #define STRING_POINT_5 "Punt 5" - #define STRING_BED_LEVELING "Bed Level" - #define STRING_BL_COMPLETE "Nivellat del llit completat" - #define STRING_BL_SMART_FILL "Falten punts de prova\ns'han omplert de forma intel·ligent.\n \nNota: recordeu guardar!" - #define STRING_BL_ENABLE "BL: on" - #define STRING_BL_DISABLE "BL: off" - #define STRING_ABL "ABL" - #define STRING_BBL "BBL" - #define STRING_UBL "UBL" - #define STRING_MBL "MBL" - #define STRING_MBL_SETTINGS "Mesh Bed Leveling" - #define STRING_ABL_SETTINGS "Auto Bed Leveling" - #define STRING_ABL_SETTINGS_BBL "Nivellament del llit Bilinear" - #define STRING_ABL_SETTINGS_UBL "Nivellament de llit unificat" - #define STRING_ABL_SETTINGS_UBL_SAVE "Desa a la ranura" - #define STRING_ABL_SETTINGS_UBL_LOAD "Carrega des de la ranura" - #define STRING_ABL_SLOT0 "Ranura 0" - #define STRING_ABL_SLOT1 "Ranura 1" - #define STRING_ABL_SLOT2 "Ranura 2" - #define STRING_ABL_SLOT3 "Ranura 3" - #define STRING_ABL_SLOT_EEPROM "Recordar la ranura per al proper\nreinici? (Guardar EEPROM)" - #define STRING_ABL_Z "Z Fade" - #define STRING_BLTOUCH "BLTouch" - #define STRING_BLTOUCH_TEST "Provar" - #define STRING_BLTOUCH_DEPLOY "Desplegar" - #define STRING_BLTOUCH_STOW "Plegar" - #define STRING_BLTOUCH_REPEAT "Repetir" - #define STRING_Z_OFFSET "Z Offset" - #define STRING_PROBE_OFFSET "Sonda Compensar" - #define STRING_HOME_OFFSET "Home Offset" - #define STRING_CONFIRMATION "Estàs segur?" - #define STRING_DOWN "Avall" - #define STRING_UP "Amunt" - #define STRING_SAVE "Gravar" - #define STRING_RESTORE "Restore" - #define STRING_RESET "Reset" - #define STRING_DEFAULT "Default" - #define STRING_CLEAR "Clear" - #define STRING_NEXT "Next" - #define STRING_DISTANCE "Distance" - #define STRING_INVALID_VALUE "Invalid value(s)" - #define STRING_TIMEOUT_REACHED "Timeout reached!" - #define STRING_PROCESS_RUNNING "Process already running!" - #define STRING_PROCESS_COMPLETED "Process completed!" - #define STRING_PROCESS_ABORTED "Process aborted!" - #define STRING_INC "Augmentar" - #define STRING_DEC "Disminur" - #define STRING_NOZZLE "Nozzle" - #define STRING_BED "Llit" - #define STRING_CHAMBER "Cambra" - #define STRING_START "Començar" - #define STRING_STOP "Parar" - #define STRING_BACK "Tornar" - #define STRING_PAGE_UP "Retrocedir" - #define STRING_PAGE_DOWN "Avançar" - #define STRING_PAUSE "Pausar" - #define STRING_RESUME "Continuar" - #define STRING_LOAD "Carregar" - #define STRING_UNLOAD "Descarregar" - #define STRING_SLOW_SPEED "Lent" - #define STRING_NORMAL_SPEED "Normal" - #define STRING_FAST_SPEED "Ràpid" - #define STRING_FAN_FULL_SPEED "Màxim" - #define STRING_FAN_HALF_SPEED "Meitat" - #define STRING_ROTATE_UI "Rotar" - #define STRING_TOUCHSCREEN_ADJUST "Calibrar" - #define STRING_MORE "Més" - #define STRING_SCREEN_INFO "Informar" - #define STRING_STATUS "Estat" - #define STRING_SIMULATOR_BG_COLOR "Color de fons del simulador Marlin" - #define STRING_SIMULATOR_FONT_COLOR "Color de lletra de simulador Marlin" - #define STRING_WHITE "Blanc" - #define STRING_BLACK "Negre" - #define STRING_BLUE "Blau" - #define STRING_RED "Vermell" - #define STRING_GREEN "Verd" - #define STRING_CYAN "Cian" - #define STRING_YELLOW "groc" - #define STRING_BROWN "marró" - #define STRING_GRAY "Gris" - #define STRING_ORANGE "taronja" - #define STRING_INDIGO "Índigo" - #define STRING_VIOLET "violeta" - #define STRING_MAGENTA "Magenta" - #define STRING_PURPLE "Porpra" - #define STRING_LIME "Llima" - #define STRING_DARKBLUE "Blau fosc" - #define STRING_DARKGREEN "Verd fosc" - #define STRING_DARKGRAY "Gris fosc" - #define STRING_DISCONNECT "Desconnectar" - #define STRING_BAUDRATE "Velocitat de transmissió" - #define STRING_PERCENTAGE "Percentatge" - #define STRING_BABYSTEP "BabyStep" - #define STRING_PERCENTAGE_SPEED "Velocitat" - #define STRING_PERCENTAGE_FLOW "Flux" - #define STRING_VALUE_ZERO "Zero" - #define STRING_1_DEGREE "1℃" - #define STRING_5_DEGREE "5℃" - #define STRING_10_DEGREE "10℃" - #define STRING_X_INC "+X" - #define STRING_Y_INC "+Y" - #define STRING_Z_INC "+Z" - #define STRING_X_DEC "-X" - #define STRING_Y_DEC "-Y" - #define STRING_Z_DEC "-Z" - #define STRING_X "X" - #define STRING_Y "Y" - #define STRING_Z "Z" - #define STRING_001_MM "0.01mm" - #define STRING_01_MM "0.1mm" - #define STRING_1_MM "1mm" - #define STRING_5_MM "5mm" - #define STRING_10_MM "10mm" - #define STRING_100_MM "100mm" - #define STRING_200_MM "200mm" - #define STRING_1_PERCENT "1%" - #define STRING_5_PERCENT "5%" - #define STRING_10_PERCENT "10%" - #define STRING_PERCENT_VALUE "%d%%" - #define STRING_READY "A punt!!" - #define STRING_BUSY "Processament ocupat, si us plau esperi ..." - #define STRING_UNCONNECTED "No hi ha comunicació amb impressora!" - #define STRING_DISCONNECT_INFO "Ara pot controlar la impressora des del seu ordinador!" - #define STRING_LOADING "Carregant ..." - #define STRING_POWER_FAILED "¿Continuar imprimint?" - #define STRING_CONTINUE "Continuar" - #define STRING_CANCEL "Cancel · lar" - #define STRING_ADJUST_TITLE "¡Calibrar la pantalla tàctil" - #define STRING_ADJUST_INFO "Si us plau feu clic al punt vermell" - #define STRING_ADJUST_OK "Ajust correcte" - #define STRING_ADJUST_FAILED "Ajust fallit, si us plau intenteu de nou" - #define STRING_WARNING "Advertència" - #define STRING_STOP_PRINT "Voleu aturar la impressió?" - #define STRING_CONFIRM "Confirmar" - #define STRING_TFTSD "SD TFT" - #define STRING_READ_TFTSD_ERROR "Error a la targeta SD TFT!" - #define STRING_TFTSD_INSERTED "¡Targeta inserida!" - #define STRING_TFTSD_REMOVED "¡Targeta extreta!" - #define STRING_U_DISK "Pendrive" - #define STRING_READ_U_DISK_ERROR "¡Error al Pendrive!" - #define STRING_U_DISK_INSERTED "¡Pendrive inserit!" - #define STRING_U_DISK_REMOVED "¡Pendrive extret!" - #define STRING_ONBOARDSD "SD Placa" - #define STRING_READ_ONBOARDSD_ERROR "Error a la targeta SD de la placa!" - #define STRING_FILAMENT_SENSOR "Sensor de filament" - #define STRING_FILAMENT_RUNOUT "¡Filament esgotat!" - #define STRING_PREHEAT "Preescalfar" - #define STRING_PREHEAT_BOTH "Tots dos" - #define STRING_IS_PAUSE "No es pot extruir\nal imprimir,¿\nPausar la impressió?" - #define STRING_AUTO_SHUT_DOWN "Apag. aut." - #define STRING_UNIFIEDMOVE "Moviment" - #define STRING_UNIFIEDHEAT "Calor/Ventilador" - #define STRING_COOLDOWN "Refredar" - #define STRING_EMERGENCYSTOP "PARADA EMERGENCIA" - #define STRING_TOUCH_TO_EXIT "Toca qualsevol lloc per sortir" - #define STRING_MAINMENU "Menú" - #define STRING_WAIT_TEMP_SHUT_DOWN "Espereu que la\ntemperatura del hotend\nsigui inferior a %d℃" // Wait for the temperature of hotend to be lower than 50℃ - #define STRING_FORCE_SHUT_DOWN "Forçar Apagat" - #define STRING_SHUTTING_DOWN "Apagant..." - #define STRING_PARAMETER_SETTING "Paràmetre" - #define STRING_ON "ON" - #define STRING_OFF "OFF" - #define STRING_SMART "SMART" - #define STRING_TERMINAL_ACK "Mostra ACK a la terminal" - #define STRING_INVERT_XAXIS "Invertir eix X" - #define STRING_INVERT_YAXIS "Invertir eix Y" - #define STRING_INVERT_ZAXIS "Invertir eix Z" - #define STRING_MOVE_SPEED "Velocitat de moviment(X Y Z)" - #define STRING_KNOB_LED "Perilla rotativa LED" - #define STRING_KNOB_LED_IDLE "Rotary Knob LED idle" - #define STRING_M0_PAUSE "En pausa per l'ordre M0" - #define STRING_SEND_START_GCODE "Enviar Gcode inicial" - #define STRING_SEND_END_GCODE "Enviar Gcode final" - #define STRING_SEND_CANCEL_GCODE "Cancel · lar Gcode" - #define STRING_PERSISTENT_STATUS_INFO "Informació d'estat persistent" - #define STRING_FILE_LISTMODE "Mode de visualització de fitxers" - #define STRING_CURRENT_SETTING "Corrent del Driver (mA)" - #define STRING_STEPS_SETTING "Passos per MM" - #define STRING_MAXFEEDRATE "Max Feed Rate" - #define STRING_MAXACCELERATION "Max Acceleració" - #define STRING_ACCELERATION "Acceleració" - #define STRING_PRINT_ACCELERATION "Acceleració Impressió" - #define STRING_RETRACT_ACCELERATION "Acceleració Retracció" - #define STRING_TRAVEL_ACCELERATION "Acceleració Viatge" - #define STRING_JERK "Jerk" - #define STRING_JUNCTION_DEVIATION "Junction Deviation" - #define STRING_BUMP_SENSITIVITY "Sensibilitat al topall TMC" - #define STRING_FWRETRACT "Retracció de FW" - #define STRING_FWRECOVER "Recuperació de Retracció de FW" - #define STRING_LIN_ADVANCE "Avanç Lineal" - #define STRING_RESET_SETTINGS_INFO "Restableix tota la configuració a\nvalors predeterminats?" - #define STRING_RESET_SETTINGS_DONE "Restableix tota la configuració\naconseguit.\nreinicieu el dispositiu." - #define STRING_INFO "Informació" - #define STRING_LCD_BRIGHTNESS "Lluminositat LCD" - #define STRING_LCD_BRIGHTNESS_DIM "Dim Lluminositat LCD" - #define STRING_LCD_DIM_IDLE_TIMER "Temporitzador inactiu LCD" - #define STRING_5_SECONDS "5 Sec." - #define STRING_10_SECONDS "10 Sec." - #define STRING_30_SECONDS "30 Sec." - #define STRING_60_SECONDS "1 Min." - #define STRING_120_SECONDS "2 Min." - #define STRING_300_SECONDS "5 Min." - #define STRING_CUSTOM_SECONDS "Personalitzat" - #define STRING_SEQUENTIAL_MODE "Sequential mode" - #define STRING_ST7920_FULLSCREEN "Mode Marlin a pantalla completa" - #define STRING_PLR_EN "Recuperació de pèrdua d’energia" - #define STRING_SETTING_SAVE "Save settings" - #define STRING_SETTING_RESET "Restableix la configuració" - #define STRING_SETTING_RESTORE "Restaura la configuració" - #define STRING_EEPROM_SETTINGS "EEPROM" - #define STRING_EEPROM_SAVE_INFO "Desa la configuració de la impressora\na la EEPROM?" - #define STRING_EEPROM_RESTORE_INFO "Carregar la configuració de\nEEPROM?" - #define STRING_EEPROM_RESET_INFO "Reset EEPROM to stock printer settings?" - #define STRING_RETRACT_FEEDRATE "Velocitat Retracció" - #define STRING_RETRACT_LENGTH "Longitud Retracció" - #define STRING_RETRACT_SWAP_LENGTH "Distància retracció intercanvi" - #define STRING_RETRACT_Z_LIFT "Z aixecament a la retracció" - #define STRING_RETRACT_AUTO "Auto Firmware Retract" - #define STRING_RECOVER_FEEDRATE "Velocitat recuperació" - #define STRING_SWAP_RECOVER_FEEDRATE "Velocitat recuperació intercanvi" - #define STRING_RECOVER_LENGTH "Distancia recuperació extra" - #define STRING_SWAP_RECOVER_LENGTH "Distancia recuperació intercanvi extra" - #define STRING_START_PRINT "Comenceu a imprimir:\n %s?" - #define STRING_ACK_NOTIFICATION "ACK notification style" - #define STRING_LEVELING_EDGE_DISTANCE "Bed edge distance" - #define STRING_XY_UNLOCK "Disarm XY" - #define STRING_TUNING "Tuning" - #define STRING_PID "PID" - #define STRING_PID_TITLE "PID autotune" - #define STRING_PID_START_INFO "PID autotune may take\nsome time to complete.\nContinue?" - #define STRING_PID_START_INFO_2 "PID autotune in progress!" - #define STRING_PID_START_INFO_3 "Do not touch the screen until completed (green LED ON)!" - #define STRING_TUNE_EXTRUDER "Tune steps" - #define STRING_TUNE_EXT_EXTRUDE_100 "Ext. 100mm" - #define STRING_TUNE_EXT_TEMP "Extruder tuning | Heat" - #define STRING_TUNE_EXT_TEMPLOW "Desired temperature too low!\nMinimum temperature: %d C" - #define STRING_TUNE_EXT_DESIREDVAL "Temperature is not yet at the desired value" - #define STRING_TUNE_EXT_MARK120MM "Mark 120 mm on your fillament\nPress '%s' when ready\nMeasure remaining length\nafter extruding" - #define STRING_TUNE_EXT_HEATOFF "Turn the heater off?" - #define STRING_TUNE_EXT_ADJ_ESTEPS "Adjust E-Steps" - #define STRING_TUNE_EXT_ESTEPS_SAVED "New E-steps saved!\nDon't forget to\nsave it in EEPROM\nNew value: %0.2f" - #define STRING_TUNE_EXT_MEASURED "Length remaining:" - #define STRING_TUNE_EXT_OLD_ESTEP "Old e-steps: %0.2f" - #define STRING_TUNE_EXT_NEW_ESTEP "New e-steps: %0.2f" - #define STRING_CONNECTION_SETTINGS "Connection" - #define STRING_OFFSET_TOOL "Offset 2nd Nozzle" - #define STRING_HYBRID_THRESHOLD "TMC HybridThreshold" - #define STRING_NOTIFICATIONS "Notifications" - #define STRING_MESH_EDITOR "Mesh edit" - #define STRING_MESH_TUNER "Mesh tuner" - #define STRING_CASE_LIGHT "Case light" +#define STRING_LANGUAGE "Català" +#define STRING_HEAT "Escalfar" +#define STRING_MOVE "Moure" +#define STRING_HOME "Origen" +#define STRING_DISABLE_STEPPERS "Disarm All" +#define STRING_PRINT "Imprimir" +#define STRING_EXTRUDE "Extruir" +#define STRING_FAN "Ventilar" +#define STRING_SETTINGS "Configura" +#define STRING_SCREEN_SETTINGS "Pantalla" +#define STRING_MACHINE_SETTINGS "Màquina" +#define STRING_FEATURE_SETTINGS "Afegits" +#define STRING_SOUND "Sound" +#define STRING_TOUCH_SOUND "Touch sounds" +#define STRING_TOAST_SOUND "Toast Notifications" +#define STRING_ALERT_SOUND "Popups and Alerts" +#define STRING_PREHEATDONE_SOUND "Preheat done notification" +#define STRING_SHUT_DOWN "Apagar" +#define STRING_RGB_SETTINGS "Color LED" +#define STRING_RGB_OFF "Apagar LED" +#define STRING_TERMINAL "Terminal" +#define STRING_CUSTOM "Personalitzar" +#define STRING_LEVELING "Anivellar" +#define STRING_POINT_1 "Punt 1" +#define STRING_POINT_2 "Punt 2" +#define STRING_POINT_3 "Punt 3" +#define STRING_POINT_4 "Punt 4" +#define STRING_POINT_5 "Punt 5" +#define STRING_BED_LEVELING "Bed Level" +#define STRING_BL_COMPLETE "Nivellat del llit completat" +#define STRING_BL_SMART_FILL "Falten punts de prova\ns'han omplert de forma intel·ligent.\n \nNota: recordeu guardar!" +#define STRING_BL_ENABLE "BL: on" +#define STRING_BL_DISABLE "BL: off" +#define STRING_ABL "ABL" +#define STRING_BBL "BBL" +#define STRING_UBL "UBL" +#define STRING_MBL "MBL" +#define STRING_MBL_SETTINGS "Mesh Bed Leveling" +#define STRING_ABL_SETTINGS "Auto Bed Leveling" +#define STRING_ABL_SETTINGS_BBL "Nivellament del llit Bilinear" +#define STRING_ABL_SETTINGS_UBL "Nivellament de llit unificat" +#define STRING_ABL_SETTINGS_UBL_SAVE "Desa a la ranura" +#define STRING_ABL_SETTINGS_UBL_LOAD "Carrega des de la ranura" +#define STRING_ABL_SLOT0 "Ranura 0" +#define STRING_ABL_SLOT1 "Ranura 1" +#define STRING_ABL_SLOT2 "Ranura 2" +#define STRING_ABL_SLOT3 "Ranura 3" +#define STRING_ABL_SLOT_EEPROM "Recordar la ranura per al proper\nreinici? (Guardar EEPROM)" +#define STRING_ABL_Z "Z Fade" +#define STRING_BLTOUCH "BLTouch" +#define STRING_BLTOUCH_TEST "Provar" +#define STRING_BLTOUCH_DEPLOY "Desplegar" +#define STRING_BLTOUCH_STOW "Plegar" +#define STRING_BLTOUCH_REPEAT "Repetir" +#define STRING_Z_OFFSET "Z Offset" +#define STRING_PROBE_OFFSET "Sonda Compensar" +#define STRING_HOME_OFFSET "Home Offset" +#define STRING_CONFIRMATION "Estàs segur?" +#define STRING_DOWN "Avall" +#define STRING_UP "Amunt" +#define STRING_SAVE "Gravar" +#define STRING_RESTORE "Restore" +#define STRING_RESET "Reset" +#define STRING_DEFAULT "Default" +#define STRING_CLEAR "Clear" +#define STRING_NEXT "Next" +#define STRING_DISTANCE "Distance" +#define STRING_INVALID_VALUE "Invalid value(s)" +#define STRING_TIMEOUT_REACHED "Timeout reached!" +#define STRING_PROCESS_RUNNING "Process already running!" +#define STRING_PROCESS_COMPLETED "Process completed!" +#define STRING_PROCESS_ABORTED "Process aborted!" +#define STRING_INC "Augmentar" +#define STRING_DEC "Disminur" +#define STRING_NOZZLE "Nozzle" +#define STRING_BED "Llit" +#define STRING_CHAMBER "Cambra" +#define STRING_START "Començar" +#define STRING_STOP "Parar" +#define STRING_BACK "Tornar" +#define STRING_PAGE_UP "Retrocedir" +#define STRING_PAGE_DOWN "Avançar" +#define STRING_PAUSE "Pausar" +#define STRING_RESUME "Continuar" +#define STRING_LOAD "Carregar" +#define STRING_UNLOAD "Descarregar" +#define STRING_SLOW_SPEED "Lent" +#define STRING_NORMAL_SPEED "Normal" +#define STRING_FAST_SPEED "Ràpid" +#define STRING_FAN_FULL_SPEED "Màxim" +#define STRING_FAN_HALF_SPEED "Meitat" +#define STRING_ROTATE_UI "Rotar" +#define STRING_TOUCHSCREEN_ADJUST "Calibrar" +#define STRING_MORE "Més" +#define STRING_SCREEN_INFO "Informar" +#define STRING_STATUS "Estat" +#define STRING_SIMULATOR_BG_COLOR "Color de fons del simulador Marlin" +#define STRING_SIMULATOR_FONT_COLOR "Color de lletra de simulador Marlin" +#define STRING_WHITE "Blanc" +#define STRING_BLACK "Negre" +#define STRING_BLUE "Blau" +#define STRING_RED "Vermell" +#define STRING_GREEN "Verd" +#define STRING_CYAN "Cian" +#define STRING_YELLOW "groc" +#define STRING_BROWN "marró" +#define STRING_GRAY "Gris" +#define STRING_ORANGE "taronja" +#define STRING_INDIGO "Índigo" +#define STRING_VIOLET "violeta" +#define STRING_MAGENTA "Magenta" +#define STRING_PURPLE "Porpra" +#define STRING_LIME "Llima" +#define STRING_DARKBLUE "Blau fosc" +#define STRING_DARKGREEN "Verd fosc" +#define STRING_DARKGRAY "Gris fosc" +#define STRING_DISCONNECT "Desconnectar" +#define STRING_BAUDRATE "Velocitat de transmissió" +#define STRING_PERCENTAGE "Percentatge" +#define STRING_BABYSTEP "BabyStep" +#define STRING_PERCENTAGE_SPEED "Velocitat" +#define STRING_PERCENTAGE_FLOW "Flux" +#define STRING_VALUE_ZERO "Zero" +#define STRING_1_DEGREE "1℃" +#define STRING_5_DEGREE "5℃" +#define STRING_10_DEGREE "10℃" +#define STRING_X_INC "+X" +#define STRING_Y_INC "+Y" +#define STRING_Z_INC "+Z" +#define STRING_X_DEC "-X" +#define STRING_Y_DEC "-Y" +#define STRING_Z_DEC "-Z" +#define STRING_X "X" +#define STRING_Y "Y" +#define STRING_Z "Z" +#define STRING_001_MM "0.01mm" +#define STRING_01_MM "0.1mm" +#define STRING_1_MM "1mm" +#define STRING_5_MM "5mm" +#define STRING_10_MM "10mm" +#define STRING_100_MM "100mm" +#define STRING_200_MM "200mm" +#define STRING_1_PERCENT "1%" +#define STRING_5_PERCENT "5%" +#define STRING_10_PERCENT "10%" +#define STRING_PERCENT_VALUE "%d%%" +#define STRING_READY "A punt!!" +#define STRING_BUSY "Processament ocupat, si us plau esperi ..." +#define STRING_UNCONNECTED "No hi ha comunicació amb impressora!" +#define STRING_DISCONNECT_INFO "Ara pot controlar la impressora des del seu ordinador!" +#define STRING_LOADING "Carregant ..." +#define STRING_POWER_FAILED "¿Continuar imprimint?" +#define STRING_CONTINUE "Continuar" +#define STRING_CANCEL "Cancel · lar" +#define STRING_ADJUST_TITLE "¡Calibrar la pantalla tàctil" +#define STRING_ADJUST_INFO "Si us plau feu clic al punt vermell" +#define STRING_ADJUST_OK "Ajust correcte" +#define STRING_ADJUST_FAILED "Ajust fallit, si us plau intenteu de nou" +#define STRING_WARNING "Advertència" +#define STRING_STOP_PRINT "Voleu aturar la impressió?" +#define STRING_CONFIRM "Confirmar" +#define STRING_TFTSD "SD TFT" +#define STRING_READ_TFTSD_ERROR "Error a la targeta SD TFT!" +#define STRING_TFTSD_INSERTED "¡Targeta inserida!" +#define STRING_TFTSD_REMOVED "¡Targeta extreta!" +#define STRING_U_DISK "Pendrive" +#define STRING_READ_U_DISK_ERROR "¡Error al Pendrive!" +#define STRING_U_DISK_INSERTED "¡Pendrive inserit!" +#define STRING_U_DISK_REMOVED "¡Pendrive extret!" +#define STRING_ONBOARDSD "SD Placa" +#define STRING_READ_ONBOARDSD_ERROR "Error a la targeta SD de la placa!" +#define STRING_FILAMENT_SENSOR "Sensor de filament" +#define STRING_FILAMENT_RUNOUT "¡Filament esgotat!" +#define STRING_PREHEAT "Preescalfar" +#define STRING_PREHEAT_BOTH "Tots dos" +#define STRING_IS_PAUSE "No es pot extruir\nal imprimir,¿\nPausar la impressió?" +#define STRING_AUTO_SHUT_DOWN "Apag. aut." +#define STRING_UNIFIEDMOVE "Moviment" +#define STRING_UNIFIEDHEAT "Calor/Ventilador" +#define STRING_COOLDOWN "Refredar" +#define STRING_EMERGENCYSTOP "PARADA EMERGENCIA" +#define STRING_TOUCH_TO_EXIT "Toca qualsevol lloc per sortir" +#define STRING_MAINMENU "Menú" +#define STRING_WAIT_TEMP_SHUT_DOWN "Espereu que la\ntemperatura del hotend\nsigui inferior a %d℃" // Wait for the temperature of hotend to be lower than 50℃ +#define STRING_FORCE_SHUT_DOWN "Forçar Apagat" +#define STRING_SHUTTING_DOWN "Apagant..." +#define STRING_PARAMETER_SETTING "Paràmetre" +#define STRING_ON "ON" +#define STRING_OFF "OFF" +#define STRING_SMART "SMART" +#define STRING_TERMINAL_ACK "Mostra ACK a la terminal" +#define STRING_INVERT_XAXIS "Invertir eix X" +#define STRING_INVERT_YAXIS "Invertir eix Y" +#define STRING_INVERT_ZAXIS "Invertir eix Z" +#define STRING_MOVE_SPEED "Velocitat de moviment(X Y Z)" +#define STRING_KNOB_LED "Perilla rotativa LED" +#define STRING_KNOB_LED_IDLE "Rotary Knob LED idle" +#define STRING_M0_PAUSE "En pausa per l'ordre M0" +#define STRING_SEND_START_GCODE "Enviar Gcode inicial" +#define STRING_SEND_END_GCODE "Enviar Gcode final" +#define STRING_SEND_CANCEL_GCODE "Cancel · lar Gcode" +#define STRING_PERSISTENT_STATUS_INFO "Informació d'estat persistent" +#define STRING_FILE_LISTMODE "Mode de visualització de fitxers" +#define STRING_CURRENT_SETTING "Corrent del Driver (mA)" +#define STRING_STEPS_SETTING "Passos per MM" +#define STRING_MAXFEEDRATE "Max Feed Rate" +#define STRING_MAXACCELERATION "Max Acceleració" +#define STRING_ACCELERATION "Acceleració" +#define STRING_PRINT_ACCELERATION "Acceleració Impressió" +#define STRING_RETRACT_ACCELERATION "Acceleració Retracció" +#define STRING_TRAVEL_ACCELERATION "Acceleració Viatge" +#define STRING_JERK "Jerk" +#define STRING_JUNCTION_DEVIATION "Junction Deviation" +#define STRING_BUMP_SENSITIVITY "Sensibilitat al topall TMC" +#define STRING_FWRETRACT "Retracció de FW" +#define STRING_FWRECOVER "Recuperació de Retracció de FW" +#define STRING_LIN_ADVANCE "Avanç Lineal" +#define STRING_RESET_SETTINGS_INFO "Restableix tota la configuració a\nvalors predeterminats?" +#define STRING_RESET_SETTINGS_DONE "Restableix tota la configuració\naconseguit.\nreinicieu el dispositiu." +#define STRING_INFO "Informació" +#define STRING_LCD_BRIGHTNESS "Lluminositat LCD" +#define STRING_LCD_BRIGHTNESS_DIM "Dim Lluminositat LCD" +#define STRING_LCD_DIM_IDLE_TIMER "Temporitzador inactiu LCD" +#define STRING_5_SECONDS "5 Sec." +#define STRING_10_SECONDS "10 Sec." +#define STRING_30_SECONDS "30 Sec." +#define STRING_60_SECONDS "1 Min." +#define STRING_120_SECONDS "2 Min." +#define STRING_300_SECONDS "5 Min." +#define STRING_CUSTOM_SECONDS "Personalitzat" +#define STRING_SEQUENTIAL_MODE "Sequential mode" +#define STRING_ST7920_FULLSCREEN "Mode Marlin a pantalla completa" +#define STRING_PLR_EN "Recuperació de pèrdua d’energia" +#define STRING_SETTING_SAVE "Save settings" +#define STRING_SETTING_RESET "Restableix la configuració" +#define STRING_SETTING_RESTORE "Restaura la configuració" +#define STRING_EEPROM_SETTINGS "EEPROM" +#define STRING_EEPROM_SAVE_INFO "Desa la configuració de la impressora\na la EEPROM?" +#define STRING_EEPROM_RESTORE_INFO "Carregar la configuració de\nEEPROM?" +#define STRING_EEPROM_RESET_INFO "Reset EEPROM to stock printer settings?" +#define STRING_RETRACT_FEEDRATE "Velocitat Retracció" +#define STRING_RETRACT_LENGTH "Longitud Retracció" +#define STRING_RETRACT_SWAP_LENGTH "Distància retracció intercanvi" +#define STRING_RETRACT_Z_LIFT "Z aixecament a la retracció" +#define STRING_RETRACT_AUTO "Auto Firmware Retract" +#define STRING_RECOVER_FEEDRATE "Velocitat recuperació" +#define STRING_SWAP_RECOVER_FEEDRATE "Velocitat recuperació intercanvi" +#define STRING_RECOVER_LENGTH "Distancia recuperació extra" +#define STRING_SWAP_RECOVER_LENGTH "Distancia recuperació intercanvi extra" +#define STRING_START_PRINT "Comenceu a imprimir:\n %s?" +#define STRING_ACK_NOTIFICATION "ACK notification style" +#define STRING_LEVELING_EDGE_DISTANCE "Bed edge distance" +#define STRING_XY_UNLOCK "Disarm XY" +#define STRING_TUNING "Tuning" +#define STRING_PID "PID" +#define STRING_PID_TITLE "PID autotune" +#define STRING_PID_START_INFO "PID autotune may take\nsome time to complete.\nContinue?" +#define STRING_PID_START_INFO_2 "PID autotune in progress!" +#define STRING_PID_START_INFO_3 "Do not touch the screen until completed (green LED ON)!" +#define STRING_TUNE_EXTRUDER "Tune steps" +#define STRING_TUNE_EXT_EXTRUDE_100 "Ext. 100mm" +#define STRING_TUNE_EXT_TEMP "Extruder tuning | Heat" +#define STRING_TUNE_EXT_TEMPLOW "Desired temperature too low!\nMinimum temperature: %d C" +#define STRING_TUNE_EXT_DESIREDVAL "Temperature is not yet at the desired value" +#define STRING_TUNE_EXT_MARK120MM "Mark 120 mm on your fillament\nPress '%s' when ready\nMeasure remaining length\nafter extruding" +#define STRING_TUNE_EXT_HEATOFF "Turn the heater off?" +#define STRING_TUNE_EXT_ADJ_ESTEPS "Adjust E-Steps" +#define STRING_TUNE_EXT_ESTEPS_SAVED "New E-steps saved!\nDon't forget to\nsave it in EEPROM\nNew value: %0.2f" +#define STRING_TUNE_EXT_MEASURED "Length remaining:" +#define STRING_TUNE_EXT_OLD_ESTEP "Old e-steps: %0.2f" +#define STRING_TUNE_EXT_NEW_ESTEP "New e-steps: %0.2f" +#define STRING_CONNECTION_SETTINGS "Connection" +#define STRING_OFFSET_TOOL "Offset 2nd Nozzle" +#define STRING_HYBRID_THRESHOLD "TMC HybridThreshold" +#define STRING_NOTIFICATIONS "Notifications" +#define STRING_MESH_EDITOR "Mesh edit" +#define STRING_MESH_TUNER "Mesh tuner" +#define STRING_CASE_LIGHT "Case light" diff --git a/TFT/src/User/API/Language/language_cn.h b/TFT/src/User/API/Language/language_cn.h index a58a07201d..e8ef3a167f 100644 --- a/TFT/src/User/API/Language/language_cn.h +++ b/TFT/src/User/API/Language/language_cn.h @@ -1,279 +1,280 @@ #pragma once - #define STRING_LANGUAGE "简体中文" - #define STRING_HEAT "加热" - #define STRING_MOVE "移动" - #define STRING_HOME "回原点" - #define STRING_DISABLE_STEPPERS "解锁电机" - #define STRING_PRINT "打印" - #define STRING_EXTRUDE "挤出" - #define STRING_FAN "风扇" - #define STRING_SETTINGS "设置" - #define STRING_SCREEN_SETTINGS "屏幕设置" - #define STRING_MACHINE_SETTINGS "机器设置" - #define STRING_FEATURE_SETTINGS "功能设置" - #define STRING_SOUND "声音" - #define STRING_TOUCH_SOUND "按钮声音" - #define STRING_TOAST_SOUND "Toast 提示声音" - #define STRING_ALERT_SOUND "弹窗和提示声音" - #define STRING_SHUT_DOWN "关闭电源" - #define STRING_RGB_SETTINGS "灯光颜色" - #define STRING_RGB_OFF "熄灭灯光" - #define STRING_TERMINAL "Terminal" - #define STRING_CUSTOM "自定义" - #define STRING_LEVELING "调平" - #define STRING_POINT_1 "第一点" - #define STRING_POINT_2 "第二点" - #define STRING_POINT_3 "第三点" - #define STRING_POINT_4 "第四点" - #define STRING_POINT_5 "第五点" - #define STRING_BED_LEVELING "Bed Level" - #define STRING_BL_COMPLETE "平台调平完成!" - #define STRING_BL_SMART_FILL "部分点未探测,已被自动填充, 需要手动保存!" - #define STRING_BL_ENABLE "BL:已开启" - #define STRING_BL_DISABLE "BL:已关闭" - #define STRING_ABL "自动调平" - #define STRING_BBL "BBL" - #define STRING_UBL "UBL" - #define STRING_MBL "MBL" - #define STRING_MBL_SETTINGS "Mesh Bed Leveling" - #define STRING_ABL_SETTINGS "Auto Bed Leveling" - #define STRING_ABL_SETTINGS_BBL "Bilinear Bed Leveling" - #define STRING_ABL_SETTINGS_UBL "Unified Bed Leveling" - #define STRING_ABL_SETTINGS_UBL_SAVE "Save to slot" - #define STRING_ABL_SETTINGS_UBL_LOAD "Load from slot" - #define STRING_ABL_SLOT0 "Slot 0" - #define STRING_ABL_SLOT1 "Slot 1" - #define STRING_ABL_SLOT2 "Slot 2" - #define STRING_ABL_SLOT3 "Slot 3" - #define STRING_ABL_SLOT_EEPROM "Remember slot for next\nreboot? (Save EEPROM)" - #define STRING_ABL_Z "Z Fade" - #define STRING_BLTOUCH "BLTouch" - #define STRING_BLTOUCH_TEST "BL自检" - #define STRING_BLTOUCH_DEPLOY "探针弹出" - #define STRING_BLTOUCH_STOW "探针收回" - #define STRING_BLTOUCH_REPEAT "精度测试" - #define STRING_Z_OFFSET "Z-偏移量" - #define STRING_PROBE_OFFSET "探针偏移量" - #define STRING_HOME_OFFSET "Home Offset" - #define STRING_CONFIRMATION "Are you sure?" - #define STRING_DOWN "降低" - #define STRING_UP "抬升" - #define STRING_SAVE "保存参数" - #define STRING_RESTORE "恢复" - #define STRING_RESET "重置" - #define STRING_DEFAULT "默认" - #define STRING_CLEAR "Clear" - #define STRING_NEXT "下一个" - #define STRING_DISTANCE "距离" - #define STRING_INVALID_VALUE "没有有效的条件!" - #define STRING_TIMEOUT_REACHED "已超时!" - #define STRING_PROCESS_RUNNING "正在运行,请稍后" - #define STRING_PROCESS_COMPLETED "处理已完成!" - #define STRING_PROCESS_ABORTED "处理已被中断!" - #define STRING_INC "增加" - #define STRING_DEC "减少" - #define STRING_NOZZLE "喷头" - #define STRING_BED "热床" - #define STRING_CHAMBER "机箱" - #define STRING_START "开始" - #define STRING_STOP "停止" - #define STRING_BACK "返回" - #define STRING_PAGE_UP "上一页" - #define STRING_PAGE_DOWN "下一页" - #define STRING_PAUSE "暂停" - #define STRING_RESUME "继续" - #define STRING_LOAD "进料" - #define STRING_UNLOAD "退料" - #define STRING_SLOW_SPEED "慢速" - #define STRING_NORMAL_SPEED "常速" - #define STRING_FAST_SPEED "快速" - #define STRING_FAN_FULL_SPEED "全速" - #define STRING_FAN_HALF_SPEED "半速" - #define STRING_ROTATE_UI "旋转界面" - #define STRING_TOUCHSCREEN_ADJUST "触屏校准" - #define STRING_MORE "更多" - #define STRING_SCREEN_INFO "关于" - #define STRING_STATUS "状态" - #define STRING_SIMULATOR_BG_COLOR "Marlin模式背景颜色" - #define STRING_SIMULATOR_FONT_COLOR "Marlin模式字体颜色" - #define STRING_WHITE "白色" - #define STRING_BLACK "黑色" - #define STRING_BLUE "蓝色" - #define STRING_RED "红色" - #define STRING_GREEN "绿色" - #define STRING_CYAN "青色" - #define STRING_YELLOW "黄色" - #define STRING_BROWN "棕色" - #define STRING_GRAY "灰色" - #define STRING_ORANGE "橙色" - #define STRING_INDIGO "靛" - #define STRING_VIOLET "紫罗兰色" - #define STRING_MAGENTA "桃红色" - #define STRING_PURPLE "紫色" - #define STRING_LIME "青柠色" - #define STRING_DARKBLUE "暗蓝色" - #define STRING_DARKGREEN "暗绿色" - #define STRING_DARKGRAY "暗灰色" - #define STRING_DISCONNECT "断开连接" - #define STRING_BAUDRATE "波特率" - #define STRING_PERCENTAGE "百分比" - #define STRING_BABYSTEP "Z-微调" - #define STRING_PERCENTAGE_SPEED "速度百分比" - #define STRING_PERCENTAGE_FLOW "流量百分比" - #define STRING_VALUE_ZERO "清零" - #define STRING_1_DEGREE "1℃" - #define STRING_5_DEGREE "5℃" - #define STRING_10_DEGREE "10℃" - #define STRING_X_INC "X+" - #define STRING_Y_INC "Y+" - #define STRING_Z_INC "Z+" - #define STRING_X_DEC "X-" - #define STRING_Y_DEC "Y-" - #define STRING_Z_DEC "Z-" - #define STRING_X "X" - #define STRING_Y "Y" - #define STRING_Z "Z" - #define STRING_001_MM "0.01mm" - #define STRING_01_MM "0.1mm" - #define STRING_1_MM "1mm" - #define STRING_5_MM "5mm" - #define STRING_10_MM "10mm" - #define STRING_100_MM "100mm" - #define STRING_200_MM "200mm" - #define STRING_1_PERCENT "1%" - #define STRING_5_PERCENT "5%" - #define STRING_10_PERCENT "10%" - #define STRING_PERCENT_VALUE "%d%%" - #define STRING_READY "准备打印" - #define STRING_BUSY "系统繁忙,请稍候..." - #define STRING_UNCONNECTED "未连接到打印机!" - #define STRING_DISCONNECT_INFO "现在可以用电脑控制打印机" - #define STRING_LOADING "加载中..." - #define STRING_POWER_FAILED "是否继续打印?" - #define STRING_CONTINUE "继续" - #define STRING_CANCEL "取消" - #define STRING_ADJUST_TITLE "触屏校准" - #define STRING_ADJUST_INFO "请点击红点中心位置" - #define STRING_ADJUST_OK "校准成功" - #define STRING_ADJUST_FAILED "校准失败,请重试" - #define STRING_WARNING "警告" - #define STRING_STOP_PRINT "是否停止打印?" - #define STRING_CONFIRM "确定" - #define STRING_TFTSD "TFT SD" - #define STRING_READ_TFTSD_ERROR "读TFT SD卡出错!" - #define STRING_TFTSD_INSERTED "SD卡已插入!" - #define STRING_TFTSD_REMOVED "SD卡已拔出!" - #define STRING_U_DISK "U盘" - #define STRING_READ_U_DISK_ERROR "读U盘出错!" - #define STRING_U_DISK_INSERTED "U盘已插入!" - #define STRING_U_DISK_REMOVED "U盘已拔出!" - #define STRING_ONBOARDSD "板载SD" - #define STRING_READ_ONBOARDSD_ERROR "读板载SD卡出错!" - #define STRING_FILAMENT_SENSOR "耗材检测传感器" - #define STRING_FILAMENT_RUNOUT "耗材已用尽,请更换耗材!" - #define STRING_PREHEAT "一键预热" - #define STRING_PREHEAT_BOTH "全部" - #define STRING_IS_PAUSE "打印中无法挤出耗材, 是否暂停打印?" - #define STRING_AUTO_SHUT_DOWN "自动关机" - #define STRING_UNIFIEDMOVE "运动" - #define STRING_UNIFIEDHEAT "温度" - #define STRING_COOLDOWN "冷却" - #define STRING_EMERGENCYSTOP "紧急停止" - #define STRING_TOUCH_TO_EXIT "触摸任意点退出当前界面" - #define STRING_MAINMENU "菜单" - #define STRING_WAIT_TEMP_SHUT_DOWN "喷头温度正在降温,等待低于%d℃后自动关机" // 喷头温度正在降温,等待低于50℃后自动关机 - #define STRING_FORCE_SHUT_DOWN "强制关机" - #define STRING_SHUTTING_DOWN "正在关机..." - #define STRING_PARAMETER_SETTING "参数设置" - #define STRING_ON "开启" - #define STRING_OFF "关闭" - #define STRING_SMART "智能" - #define STRING_TERMINAL_ACK "在G-code终端中显示温度信息" - #define STRING_INVERT_XAXIS "翻转X轴" - #define STRING_INVERT_YAXIS "翻转Y轴" - #define STRING_INVERT_ZAXIS "翻转Z轴" - #define STRING_MOVE_SPEED "移动速度(X Y Z)" - #define STRING_KNOB_LED "旋钮LED颜色" - #define STRING_KNOB_LED_IDLE "旋钮LED自动睡眠" - #define STRING_M0_PAUSE "M0暂停" - #define STRING_SEND_START_GCODE "执行打印前起始Gcode" - #define STRING_SEND_END_GCODE "执行打印后结束Gcode" - #define STRING_SEND_CANCEL_GCODE "中断打印Gcode" - #define STRING_PERSISTENT_STATUS_INFO "顶部温度信息" - #define STRING_FILE_LISTMODE "文件浏览列表模式" - #define STRING_CURRENT_SETTING "TMC驱动电流设置" - #define STRING_STEPS_SETTING "电机每毫米脉冲数(Steps/mm)" - #define STRING_MAXFEEDRATE "最大移动速度" - #define STRING_MAXACCELERATION "最大加速度" - #define STRING_ACCELERATION "加速度" - #define STRING_PRINT_ACCELERATION "打印加速度" - #define STRING_RETRACT_ACCELERATION "回抽加速度" - #define STRING_TRAVEL_ACCELERATION "空载加速度" - #define STRING_JERK "Jerk" - #define STRING_JUNCTION_DEVIATION "Junction Deviation" - #define STRING_BUMP_SENSITIVITY "TMC堵转检测灵敏度" - #define STRING_FWRETRACT "FW Retraction" - #define STRING_FWRECOVER "FW Retraction Recover" - #define STRING_LIN_ADVANCE "Linear Advance" - #define STRING_RESET_SETTINGS_INFO "所有的设置会被重置为默认值, 是否继续?" - #define STRING_RESET_SETTINGS_DONE "重置所有参数成功! 重启设备后生效." - #define STRING_INFO "提示" - #define STRING_LCD_BRIGHTNESS "LCD背光亮度" - #define STRING_LCD_BRIGHTNESS_DIM "LCD睡眠背光亮度" - #define STRING_LCD_DIM_IDLE_TIMER "LCD自动睡眠时间" - #define STRING_5_SECONDS "5秒" - #define STRING_10_SECONDS "10秒" - #define STRING_30_SECONDS "30秒" - #define STRING_60_SECONDS "1分钟" - #define STRING_120_SECONDS "2分钟" - #define STRING_300_SECONDS "5分钟" - #define STRING_CUSTOM_SECONDS "自定义" - #define STRING_SEQUENTIAL_MODE "Sequential mode" - #define STRING_ST7920_FULLSCREEN "全屏显示Marlin模式" - #define STRING_PLR_EN "断电续打" - #define STRING_SETTING_SAVE "保存设置" - #define STRING_SETTING_RESET "重置设置" - #define STRING_SETTING_RESTORE "保存设置" - #define STRING_EEPROM_SETTINGS "EEPROM" - #define STRING_EEPROM_SAVE_INFO "是否保存打印机设置到EEPROM?" - #define STRING_EEPROM_RESTORE_INFO "是否从EEPROM加载设置?" - #define STRING_EEPROM_RESET_INFO "重置EEPROM到出厂设置?" - #define STRING_RETRACT_FEEDRATE "FW回抽速度" - #define STRING_RETRACT_LENGTH "FW回抽长度" - #define STRING_RETRACT_SWAP_LENGTH "换料时回抽的长度" - #define STRING_RETRACT_Z_LIFT "回抽时Z轴抬升的高度" - #define STRING_RETRACT_AUTO "FW自动回抽" - #define STRING_RECOVER_FEEDRATE "FW挤出速度" - #define STRING_SWAP_RECOVER_FEEDRATE "换料时挤出的速度" - #define STRING_RECOVER_LENGTH "额外挤出的长度" - #define STRING_SWAP_RECOVER_LENGTH "换料时额外挤出的长度" - #define STRING_START_PRINT "是否开始打印:\n %s?" - #define STRING_ACK_NOTIFICATION "ACK 弹窗类型" - #define STRING_LEVELING_EDGE_DISTANCE "手动调平边沿距离" - #define STRING_XY_UNLOCK "解锁XY" - #define STRING_TUNING "调整" - #define STRING_PID "PID" - #define STRING_PID_TITLE "PID自动整定" - #define STRING_PID_START_INFO "开始PID自动整定,需要几分钟来完成,是否继续?" - #define STRING_PID_START_INFO_2 "PID 正在自动整定中!" - #define STRING_PID_START_INFO_3 "不要操作触控屏直到整定完成!" - #define STRING_TUNE_EXTRUDER "微调E-Steps" - #define STRING_TUNE_EXT_EXTRUDE_100 "挤出100mm" - #define STRING_TUNE_EXT_TEMP "挤出机微调 | 加热" - #define STRING_TUNE_EXT_TEMPLOW "目标温度太低,最低温度为: %d℃" - #define STRING_TUNE_EXT_DESIREDVAL "实际温度还没达到设定值" - #define STRING_TUNE_EXT_MARK120MM "在耗材上标记120mm\n标记完成后点击 '%s'\n挤出完成后测量剩余长度" - #define STRING_TUNE_EXT_HEATOFF "关闭加热?" - #define STRING_TUNE_EXT_ADJ_ESTEPS "调整E-Steps" - #define STRING_TUNE_EXT_ESTEPS_SAVED "新的E-Steps已生效,需要手动保存到EEPROM\n新E-Steps: %0.2f" - #define STRING_TUNE_EXT_MEASURED "剩余的长度:" - #define STRING_TUNE_EXT_OLD_ESTEP "旧的E-Steps: %0.2f" - #define STRING_TUNE_EXT_NEW_ESTEP "新的E-Steps: %0.2f" - #define STRING_CONNECTION_SETTINGS "连接" - #define STRING_OFFSET_TOOL "Offset 2nd Nozzle" - #define STRING_HYBRID_THRESHOLD "TMC HybridThreshold" - #define STRING_NOTIFICATIONS "Notifications" - #define STRING_MESH_EDITOR "Mesh edit" - #define STRING_MESH_TUNER "Mesh tuner" - #define STRING_CASE_LIGHT "Case light" +#define STRING_LANGUAGE "简体中文" +#define STRING_HEAT "加热" +#define STRING_MOVE "移动" +#define STRING_HOME "回原点" +#define STRING_DISABLE_STEPPERS "解锁电机" +#define STRING_PRINT "打印" +#define STRING_EXTRUDE "挤出" +#define STRING_FAN "风扇" +#define STRING_SETTINGS "设置" +#define STRING_SCREEN_SETTINGS "屏幕设置" +#define STRING_MACHINE_SETTINGS "机器设置" +#define STRING_FEATURE_SETTINGS "功能设置" +#define STRING_SOUND "声音" +#define STRING_TOUCH_SOUND "按钮声音" +#define STRING_TOAST_SOUND "Toast 提示声音" +#define STRING_ALERT_SOUND "弹窗和提示声音" +#define STRING_PREHEATDONE_SOUND "Preheat done notification" +#define STRING_SHUT_DOWN "关闭电源" +#define STRING_RGB_SETTINGS "灯光颜色" +#define STRING_RGB_OFF "熄灭灯光" +#define STRING_TERMINAL "Terminal" +#define STRING_CUSTOM "自定义" +#define STRING_LEVELING "调平" +#define STRING_POINT_1 "第一点" +#define STRING_POINT_2 "第二点" +#define STRING_POINT_3 "第三点" +#define STRING_POINT_4 "第四点" +#define STRING_POINT_5 "第五点" +#define STRING_BED_LEVELING "Bed Level" +#define STRING_BL_COMPLETE "平台调平完成!" +#define STRING_BL_SMART_FILL "部分点未探测,已被自动填充, 需要手动保存!" +#define STRING_BL_ENABLE "BL:已开启" +#define STRING_BL_DISABLE "BL:已关闭" +#define STRING_ABL "自动调平" +#define STRING_BBL "BBL" +#define STRING_UBL "UBL" +#define STRING_MBL "MBL" +#define STRING_MBL_SETTINGS "Mesh Bed Leveling" +#define STRING_ABL_SETTINGS "Auto Bed Leveling" +#define STRING_ABL_SETTINGS_BBL "Bilinear Bed Leveling" +#define STRING_ABL_SETTINGS_UBL "Unified Bed Leveling" +#define STRING_ABL_SETTINGS_UBL_SAVE "Save to slot" +#define STRING_ABL_SETTINGS_UBL_LOAD "Load from slot" +#define STRING_ABL_SLOT0 "Slot 0" +#define STRING_ABL_SLOT1 "Slot 1" +#define STRING_ABL_SLOT2 "Slot 2" +#define STRING_ABL_SLOT3 "Slot 3" +#define STRING_ABL_SLOT_EEPROM "Remember slot for next\nreboot? (Save EEPROM)" +#define STRING_ABL_Z "Z Fade" +#define STRING_BLTOUCH "BLTouch" +#define STRING_BLTOUCH_TEST "BL自检" +#define STRING_BLTOUCH_DEPLOY "探针弹出" +#define STRING_BLTOUCH_STOW "探针收回" +#define STRING_BLTOUCH_REPEAT "精度测试" +#define STRING_Z_OFFSET "Z-偏移量" +#define STRING_PROBE_OFFSET "探针偏移量" +#define STRING_HOME_OFFSET "Home Offset" +#define STRING_CONFIRMATION "Are you sure?" +#define STRING_DOWN "降低" +#define STRING_UP "抬升" +#define STRING_SAVE "保存参数" +#define STRING_RESTORE "恢复" +#define STRING_RESET "重置" +#define STRING_DEFAULT "默认" +#define STRING_CLEAR "Clear" +#define STRING_NEXT "下一个" +#define STRING_DISTANCE "距离" +#define STRING_INVALID_VALUE "没有有效的条件!" +#define STRING_TIMEOUT_REACHED "已超时!" +#define STRING_PROCESS_RUNNING "正在运行,请稍后" +#define STRING_PROCESS_COMPLETED "处理已完成!" +#define STRING_PROCESS_ABORTED "处理已被中断!" +#define STRING_INC "增加" +#define STRING_DEC "减少" +#define STRING_NOZZLE "喷头" +#define STRING_BED "热床" +#define STRING_CHAMBER "机箱" +#define STRING_START "开始" +#define STRING_STOP "停止" +#define STRING_BACK "返回" +#define STRING_PAGE_UP "上一页" +#define STRING_PAGE_DOWN "下一页" +#define STRING_PAUSE "暂停" +#define STRING_RESUME "继续" +#define STRING_LOAD "进料" +#define STRING_UNLOAD "退料" +#define STRING_SLOW_SPEED "慢速" +#define STRING_NORMAL_SPEED "常速" +#define STRING_FAST_SPEED "快速" +#define STRING_FAN_FULL_SPEED "全速" +#define STRING_FAN_HALF_SPEED "半速" +#define STRING_ROTATE_UI "旋转界面" +#define STRING_TOUCHSCREEN_ADJUST "触屏校准" +#define STRING_MORE "更多" +#define STRING_SCREEN_INFO "关于" +#define STRING_STATUS "状态" +#define STRING_SIMULATOR_BG_COLOR "Marlin模式背景颜色" +#define STRING_SIMULATOR_FONT_COLOR "Marlin模式字体颜色" +#define STRING_WHITE "白色" +#define STRING_BLACK "黑色" +#define STRING_BLUE "蓝色" +#define STRING_RED "红色" +#define STRING_GREEN "绿色" +#define STRING_CYAN "青色" +#define STRING_YELLOW "黄色" +#define STRING_BROWN "棕色" +#define STRING_GRAY "灰色" +#define STRING_ORANGE "橙色" +#define STRING_INDIGO "靛" +#define STRING_VIOLET "紫罗兰色" +#define STRING_MAGENTA "桃红色" +#define STRING_PURPLE "紫色" +#define STRING_LIME "青柠色" +#define STRING_DARKBLUE "暗蓝色" +#define STRING_DARKGREEN "暗绿色" +#define STRING_DARKGRAY "暗灰色" +#define STRING_DISCONNECT "断开连接" +#define STRING_BAUDRATE "波特率" +#define STRING_PERCENTAGE "百分比" +#define STRING_BABYSTEP "Z-微调" +#define STRING_PERCENTAGE_SPEED "速度百分比" +#define STRING_PERCENTAGE_FLOW "流量百分比" +#define STRING_VALUE_ZERO "清零" +#define STRING_1_DEGREE "1℃" +#define STRING_5_DEGREE "5℃" +#define STRING_10_DEGREE "10℃" +#define STRING_X_INC "X+" +#define STRING_Y_INC "Y+" +#define STRING_Z_INC "Z+" +#define STRING_X_DEC "X-" +#define STRING_Y_DEC "Y-" +#define STRING_Z_DEC "Z-" +#define STRING_X "X" +#define STRING_Y "Y" +#define STRING_Z "Z" +#define STRING_001_MM "0.01mm" +#define STRING_01_MM "0.1mm" +#define STRING_1_MM "1mm" +#define STRING_5_MM "5mm" +#define STRING_10_MM "10mm" +#define STRING_100_MM "100mm" +#define STRING_200_MM "200mm" +#define STRING_1_PERCENT "1%" +#define STRING_5_PERCENT "5%" +#define STRING_10_PERCENT "10%" +#define STRING_PERCENT_VALUE "%d%%" +#define STRING_READY "准备打印" +#define STRING_BUSY "系统繁忙,请稍候..." +#define STRING_UNCONNECTED "未连接到打印机!" +#define STRING_DISCONNECT_INFO "现在可以用电脑控制打印机" +#define STRING_LOADING "加载中..." +#define STRING_POWER_FAILED "是否继续打印?" +#define STRING_CONTINUE "继续" +#define STRING_CANCEL "取消" +#define STRING_ADJUST_TITLE "触屏校准" +#define STRING_ADJUST_INFO "请点击红点中心位置" +#define STRING_ADJUST_OK "校准成功" +#define STRING_ADJUST_FAILED "校准失败,请重试" +#define STRING_WARNING "警告" +#define STRING_STOP_PRINT "是否停止打印?" +#define STRING_CONFIRM "确定" +#define STRING_TFTSD "TFT SD" +#define STRING_READ_TFTSD_ERROR "读TFT SD卡出错!" +#define STRING_TFTSD_INSERTED "SD卡已插入!" +#define STRING_TFTSD_REMOVED "SD卡已拔出!" +#define STRING_U_DISK "U盘" +#define STRING_READ_U_DISK_ERROR "读U盘出错!" +#define STRING_U_DISK_INSERTED "U盘已插入!" +#define STRING_U_DISK_REMOVED "U盘已拔出!" +#define STRING_ONBOARDSD "板载SD" +#define STRING_READ_ONBOARDSD_ERROR "读板载SD卡出错!" +#define STRING_FILAMENT_SENSOR "耗材检测传感器" +#define STRING_FILAMENT_RUNOUT "耗材已用尽,请更换耗材!" +#define STRING_PREHEAT "一键预热" +#define STRING_PREHEAT_BOTH "全部" +#define STRING_IS_PAUSE "打印中无法挤出耗材, 是否暂停打印?" +#define STRING_AUTO_SHUT_DOWN "自动关机" +#define STRING_UNIFIEDMOVE "运动" +#define STRING_UNIFIEDHEAT "温度" +#define STRING_COOLDOWN "冷却" +#define STRING_EMERGENCYSTOP "紧急停止" +#define STRING_TOUCH_TO_EXIT "触摸任意点退出当前界面" +#define STRING_MAINMENU "菜单" +#define STRING_WAIT_TEMP_SHUT_DOWN "喷头温度正在降温,等待低于%d℃后自动关机" // 喷头温度正在降温,等待低于50℃后自动关机 +#define STRING_FORCE_SHUT_DOWN "强制关机" +#define STRING_SHUTTING_DOWN "正在关机..." +#define STRING_PARAMETER_SETTING "参数设置" +#define STRING_ON "开启" +#define STRING_OFF "关闭" +#define STRING_SMART "智能" +#define STRING_TERMINAL_ACK "在G-code终端中显示温度信息" +#define STRING_INVERT_XAXIS "翻转X轴" +#define STRING_INVERT_YAXIS "翻转Y轴" +#define STRING_INVERT_ZAXIS "翻转Z轴" +#define STRING_MOVE_SPEED "移动速度(X Y Z)" +#define STRING_KNOB_LED "旋钮LED颜色" +#define STRING_KNOB_LED_IDLE "旋钮LED自动睡眠" +#define STRING_M0_PAUSE "M0暂停" +#define STRING_SEND_START_GCODE "执行打印前起始Gcode" +#define STRING_SEND_END_GCODE "执行打印后结束Gcode" +#define STRING_SEND_CANCEL_GCODE "中断打印Gcode" +#define STRING_PERSISTENT_STATUS_INFO "顶部温度信息" +#define STRING_FILE_LISTMODE "文件浏览列表模式" +#define STRING_CURRENT_SETTING "TMC驱动电流设置" +#define STRING_STEPS_SETTING "电机每毫米脉冲数(Steps/mm)" +#define STRING_MAXFEEDRATE "最大移动速度" +#define STRING_MAXACCELERATION "最大加速度" +#define STRING_ACCELERATION "加速度" +#define STRING_PRINT_ACCELERATION "打印加速度" +#define STRING_RETRACT_ACCELERATION "回抽加速度" +#define STRING_TRAVEL_ACCELERATION "空载加速度" +#define STRING_JERK "Jerk" +#define STRING_JUNCTION_DEVIATION "Junction Deviation" +#define STRING_BUMP_SENSITIVITY "TMC堵转检测灵敏度" +#define STRING_FWRETRACT "FW Retraction" +#define STRING_FWRECOVER "FW Retraction Recover" +#define STRING_LIN_ADVANCE "Linear Advance" +#define STRING_RESET_SETTINGS_INFO "所有的设置会被重置为默认值, 是否继续?" +#define STRING_RESET_SETTINGS_DONE "重置所有参数成功! 重启设备后生效." +#define STRING_INFO "提示" +#define STRING_LCD_BRIGHTNESS "LCD背光亮度" +#define STRING_LCD_BRIGHTNESS_DIM "LCD睡眠背光亮度" +#define STRING_LCD_DIM_IDLE_TIMER "LCD自动睡眠时间" +#define STRING_5_SECONDS "5秒" +#define STRING_10_SECONDS "10秒" +#define STRING_30_SECONDS "30秒" +#define STRING_60_SECONDS "1分钟" +#define STRING_120_SECONDS "2分钟" +#define STRING_300_SECONDS "5分钟" +#define STRING_CUSTOM_SECONDS "自定义" +#define STRING_SEQUENTIAL_MODE "Sequential mode" +#define STRING_ST7920_FULLSCREEN "全屏显示Marlin模式" +#define STRING_PLR_EN "断电续打" +#define STRING_SETTING_SAVE "保存设置" +#define STRING_SETTING_RESET "重置设置" +#define STRING_SETTING_RESTORE "保存设置" +#define STRING_EEPROM_SETTINGS "EEPROM" +#define STRING_EEPROM_SAVE_INFO "是否保存打印机设置到EEPROM?" +#define STRING_EEPROM_RESTORE_INFO "是否从EEPROM加载设置?" +#define STRING_EEPROM_RESET_INFO "重置EEPROM到出厂设置?" +#define STRING_RETRACT_FEEDRATE "FW回抽速度" +#define STRING_RETRACT_LENGTH "FW回抽长度" +#define STRING_RETRACT_SWAP_LENGTH "换料时回抽的长度" +#define STRING_RETRACT_Z_LIFT "回抽时Z轴抬升的高度" +#define STRING_RETRACT_AUTO "FW自动回抽" +#define STRING_RECOVER_FEEDRATE "FW挤出速度" +#define STRING_SWAP_RECOVER_FEEDRATE "换料时挤出的速度" +#define STRING_RECOVER_LENGTH "额外挤出的长度" +#define STRING_SWAP_RECOVER_LENGTH "换料时额外挤出的长度" +#define STRING_START_PRINT "是否开始打印:\n %s?" +#define STRING_ACK_NOTIFICATION "ACK 弹窗类型" +#define STRING_LEVELING_EDGE_DISTANCE "手动调平边沿距离" +#define STRING_XY_UNLOCK "解锁XY" +#define STRING_TUNING "调整" +#define STRING_PID "PID" +#define STRING_PID_TITLE "PID自动整定" +#define STRING_PID_START_INFO "开始PID自动整定,需要几分钟来完成,是否继续?" +#define STRING_PID_START_INFO_2 "PID 正在自动整定中!" +#define STRING_PID_START_INFO_3 "不要操作触控屏直到整定完成!" +#define STRING_TUNE_EXTRUDER "微调E-Steps" +#define STRING_TUNE_EXT_EXTRUDE_100 "挤出100mm" +#define STRING_TUNE_EXT_TEMP "挤出机微调 | 加热" +#define STRING_TUNE_EXT_TEMPLOW "目标温度太低,最低温度为: %d℃" +#define STRING_TUNE_EXT_DESIREDVAL "实际温度还没达到设定值" +#define STRING_TUNE_EXT_MARK120MM "在耗材上标记120mm\n标记完成后点击 '%s'\n挤出完成后测量剩余长度" +#define STRING_TUNE_EXT_HEATOFF "关闭加热?" +#define STRING_TUNE_EXT_ADJ_ESTEPS "调整E-Steps" +#define STRING_TUNE_EXT_ESTEPS_SAVED "新的E-Steps已生效,需要手动保存到EEPROM\n新E-Steps: %0.2f" +#define STRING_TUNE_EXT_MEASURED "剩余的长度:" +#define STRING_TUNE_EXT_OLD_ESTEP "旧的E-Steps: %0.2f" +#define STRING_TUNE_EXT_NEW_ESTEP "新的E-Steps: %0.2f" +#define STRING_CONNECTION_SETTINGS "连接" +#define STRING_OFFSET_TOOL "Offset 2nd Nozzle" +#define STRING_HYBRID_THRESHOLD "TMC HybridThreshold" +#define STRING_NOTIFICATIONS "Notifications" +#define STRING_MESH_EDITOR "Mesh edit" +#define STRING_MESH_TUNER "Mesh tuner" +#define STRING_CASE_LIGHT "Case light" diff --git a/TFT/src/User/API/Language/language_cz.h b/TFT/src/User/API/Language/language_cz.h index 1a4f49cc38..e59206d106 100644 --- a/TFT/src/User/API/Language/language_cz.h +++ b/TFT/src/User/API/Language/language_cz.h @@ -1,279 +1,280 @@ #pragma once - #define STRING_LANGUAGE "Čeština" - #define STRING_HEAT "Teplota" - #define STRING_MOVE "Posunout" - #define STRING_HOME "Domů" - #define STRING_DISABLE_STEPPERS "Motory" - #define STRING_PRINT "Tisknout" - #define STRING_EXTRUDE "Filament" - #define STRING_FAN "Ofuk" - #define STRING_SETTINGS "Nastavení" - #define STRING_SCREEN_SETTINGS "Displej" - #define STRING_MACHINE_SETTINGS "Tiskárna" - #define STRING_FEATURE_SETTINGS "Vlastnosti" - #define STRING_SOUND "Zvuk" - #define STRING_TOUCH_SOUND "Zvuk při dotyku" - #define STRING_TOAST_SOUND "Zvuk vytápění" - #define STRING_ALERT_SOUND "Upozornění, popup okno" - #define STRING_SHUT_DOWN "Vypnout" - #define STRING_RGB_SETTINGS "Barva LED" - #define STRING_RGB_OFF "LED vyp." - #define STRING_TERMINAL "Terminál" - #define STRING_CUSTOM "Vlastní" - #define STRING_LEVELING "Srovnat" - #define STRING_POINT_1 "Bod 1" - #define STRING_POINT_2 "Bod 2" - #define STRING_POINT_3 "Bod 3" - #define STRING_POINT_4 "Bod 4" - #define STRING_POINT_5 "Bod 5" - #define STRING_BED_LEVELING "Bed Level" - #define STRING_BL_COMPLETE "Vyrovnání kompletní" - #define STRING_BL_SMART_FILL "Chybějící body sondy\nbyly vyplněny inteligentně.\n \nPozn: Nezapomeň uložit!" - #define STRING_BL_ENABLE "BL: on" - #define STRING_BL_DISABLE "BL: off" - #define STRING_ABL "Vyrovnat" - #define STRING_BBL "BBL" - #define STRING_UBL "UBL" - #define STRING_MBL "MBL" - #define STRING_MBL_SETTINGS "Ruční vyrovnání" - #define STRING_ABL_SETTINGS "Auto vyrovnání" - #define STRING_ABL_SETTINGS_BBL "Bilineární vyrovnání" - #define STRING_ABL_SETTINGS_UBL "UBL vyrovnání" - #define STRING_ABL_SETTINGS_UBL_SAVE "Uložit do slotu" - #define STRING_ABL_SETTINGS_UBL_LOAD "Nahrát ze slotu" - #define STRING_ABL_SLOT0 "Slot 0" - #define STRING_ABL_SLOT1 "Slot 1" - #define STRING_ABL_SLOT2 "Slot 2" - #define STRING_ABL_SLOT3 "Slot 3" - #define STRING_ABL_SLOT_EEPROM "Zapamatuj si slot\nrestart? (Uložit EEPROM)" - #define STRING_ABL_Z "Z-Slábnutí" - #define STRING_BLTOUCH "BLTouch" - #define STRING_BLTOUCH_TEST "Test" - #define STRING_BLTOUCH_DEPLOY "Vysunout" - #define STRING_BLTOUCH_STOW "Zasunout" - #define STRING_BLTOUCH_REPEAT "Přesnost" - #define STRING_Z_OFFSET "Z Offset" - #define STRING_PROBE_OFFSET "Offset sondy" - #define STRING_HOME_OFFSET "Home Offset" - #define STRING_CONFIRMATION "Jste si jistý?" - #define STRING_DOWN "Dolů" - #define STRING_UP "Nahoru" - #define STRING_SAVE "Uložit" - #define STRING_RESTORE "Obnovit" - #define STRING_RESET "Reset" - #define STRING_DEFAULT "Výchozí" - #define STRING_CLEAR "Vymaž" - #define STRING_NEXT "Další" - #define STRING_DISTANCE "Vzdálenost" - #define STRING_INVALID_VALUE "Neplatná hodnota/y!" - #define STRING_TIMEOUT_REACHED "Časový limit vypršel!" - #define STRING_PROCESS_RUNNING "Probíhá proces!" - #define STRING_PROCESS_COMPLETED "Proces dokončen!" - #define STRING_PROCESS_ABORTED "Proces přerušen!" - #define STRING_INC "Přidat" - #define STRING_DEC "Ubrat" - #define STRING_NOZZLE "Tryska" - #define STRING_BED "Stolek" - #define STRING_CHAMBER "Komora" - #define STRING_START "Start" - #define STRING_STOP "Stop" - #define STRING_BACK "Zpět" - #define STRING_PAGE_UP "Další" - #define STRING_PAGE_DOWN "Předchozí" - #define STRING_PAUSE "Pauza" - #define STRING_RESUME "Obnovit" - #define STRING_LOAD "Zavést" - #define STRING_UNLOAD "Vysunout" - #define STRING_SLOW_SPEED "Pomalu" - #define STRING_NORMAL_SPEED "Normál" - #define STRING_FAST_SPEED "Rychle" - #define STRING_FAN_FULL_SPEED "Plný" - #define STRING_FAN_HALF_SPEED "Poloviční" - #define STRING_ROTATE_UI "Otočit UI" - #define STRING_TOUCHSCREEN_ADJUST "Kalibrovat" - #define STRING_MORE "Více" - #define STRING_SCREEN_INFO "Info" - #define STRING_STATUS "Status" - #define STRING_SIMULATOR_BG_COLOR "Marlin - Barva pozadí" - #define STRING_SIMULATOR_FONT_COLOR "Marlin - Barva písma" - #define STRING_WHITE "Bílá" - #define STRING_BLACK "Černá" - #define STRING_BLUE "Modrá" - #define STRING_RED "Červená" - #define STRING_GREEN "Zelená" - #define STRING_CYAN "Tyrkys" - #define STRING_YELLOW "Žlutá" - #define STRING_BROWN "Hnědá" - #define STRING_GRAY "Šedá" - #define STRING_ORANGE "Oranžová" - #define STRING_INDIGO "Indigo" - #define STRING_VIOLET "Fialová" - #define STRING_MAGENTA "Purpurová" - #define STRING_PURPLE "Nachová" - #define STRING_LIME "Limetková" - #define STRING_DARKBLUE "Tmavá Modrá" - #define STRING_DARKGREEN "Tmavá Červená" - #define STRING_DARKGRAY "Tmavá Šedá" - #define STRING_DISCONNECT "Odpojit" - #define STRING_BAUDRATE "Serial Port" - #define STRING_PERCENTAGE "Procenta" - #define STRING_BABYSTEP "BabyStep" - #define STRING_PERCENTAGE_SPEED "Rychlost" - #define STRING_PERCENTAGE_FLOW "Průtok" - #define STRING_VALUE_ZERO "Vynulovat" - #define STRING_1_DEGREE "1℃" - #define STRING_5_DEGREE "5℃" - #define STRING_10_DEGREE "10℃" - #define STRING_X_INC "X+" - #define STRING_Y_INC "Y+" - #define STRING_Z_INC "Z+" - #define STRING_X_DEC "X-" - #define STRING_Y_DEC "Y-" - #define STRING_Z_DEC "Z-" - #define STRING_X "X" - #define STRING_Y "Y" - #define STRING_Z "Z" - #define STRING_001_MM "0,01mm" - #define STRING_01_MM "0,1mm" - #define STRING_1_MM "1mm" - #define STRING_5_MM "5mm" - #define STRING_10_MM "10mm" - #define STRING_100_MM "100mm" - #define STRING_200_MM "200mm" - #define STRING_1_PERCENT "1%" - #define STRING_5_PERCENT "5%" - #define STRING_10_PERCENT "10%" - #define STRING_PERCENT_VALUE "%d%%" - #define STRING_READY "Připraven" - #define STRING_BUSY "Zpracovávám, čekejte prosím..." - #define STRING_UNCONNECTED "Tiskárna není připojena!" - #define STRING_DISCONNECT_INFO "Nyní můžete tiskárnu ovládat z počítače!" - #define STRING_LOADING "Nahrávám..." - #define STRING_POWER_FAILED "Obnovit tisk?" - #define STRING_CONTINUE "Pokračovat" - #define STRING_CANCEL "Zrušit" - #define STRING_ADJUST_TITLE "Kalibrace dotykové obrazovky" - #define STRING_ADJUST_INFO "Dotkněte se postupně všech bodů" - #define STRING_ADJUST_OK "Kalibrace úspěšná" - #define STRING_ADJUST_FAILED "Kalibrace selhala, zopakujte znovu" - #define STRING_WARNING "Varování" - #define STRING_STOP_PRINT "Zastavit tisk?" - #define STRING_CONFIRM "Potvrdit" - #define STRING_TFTSD "TFT SD" - #define STRING_READ_TFTSD_ERROR "Chyba při čtení SD karty!" - #define STRING_TFTSD_INSERTED "SD karta vložena!" - #define STRING_TFTSD_REMOVED "SD karta vyjmuta!" - #define STRING_U_DISK "USB Disk" - #define STRING_READ_U_DISK_ERROR "Chyba při čtení USB disku!" - #define STRING_U_DISK_INSERTED "USB disk vložen!" - #define STRING_U_DISK_REMOVED "USB disk vyjmut!" - #define STRING_ONBOARDSD "Onboard SD" - #define STRING_READ_ONBOARDSD_ERROR "Chyba při čtení Onboard SD!" - #define STRING_FILAMENT_SENSOR "Senzor filamentu" - #define STRING_FILAMENT_RUNOUT "Došel filament!" - #define STRING_PREHEAT "Zahřát" - #define STRING_PREHEAT_BOTH "Vše" - #define STRING_IS_PAUSE "Během tisku nelze\nextrudovat,\nmám pozastavit tisk?" - #define STRING_AUTO_SHUT_DOWN "Auto.vypnutí" - #define STRING_UNIFIEDMOVE "Pohyb" - #define STRING_UNIFIEDHEAT "Teplota" - #define STRING_COOLDOWN "Zchladit" - #define STRING_EMERGENCYSTOP "!!STOP!!" - #define STRING_TOUCH_TO_EXIT "Pro návrat se dotkněte obrazovky..." - #define STRING_MAINMENU "Menu" - #define STRING_WAIT_TEMP_SHUT_DOWN "Čekám na zchladnutí\nextruderu pod %d℃" // Wait for the temperature of hotend to be lower than 50℃ - #define STRING_FORCE_SHUT_DOWN "Vynutit" - #define STRING_SHUTTING_DOWN "Vypínám se..." - #define STRING_PARAMETER_SETTING "Parametry" - #define STRING_ON "ON" - #define STRING_OFF "OFF" - #define STRING_SMART "SMART" - #define STRING_TERMINAL_ACK "zobrazit ACK Terminálu" - #define STRING_INVERT_XAXIS "Otočit osu X" - #define STRING_INVERT_YAXIS "Otočit osu Y" - #define STRING_INVERT_ZAXIS "Otočit osu Z" - #define STRING_MOVE_SPEED "Rychlost pohybu X Y Z" - #define STRING_KNOB_LED "Rotační knob LED" - #define STRING_KNOB_LED_IDLE "Rotační knob LED idle" - #define STRING_M0_PAUSE "Pauza po příkazu M0" - #define STRING_SEND_START_GCODE "Spustit Gcode před tiskem" - #define STRING_SEND_END_GCODE "Spustit Gcode po tisku" - #define STRING_SEND_CANCEL_GCODE "Přerušení tisku" - #define STRING_PERSISTENT_STATUS_INFO "Trvalé zobrazení stavu" - #define STRING_FILE_LISTMODE "Zobrazit soub.jako seznam" - #define STRING_CURRENT_SETTING "Proud motorů (mA)" - #define STRING_STEPS_SETTING "Kroků/mm" - #define STRING_MAXFEEDRATE "Max rychlost" - #define STRING_MAXACCELERATION "Max zrychlení" - #define STRING_ACCELERATION "Zrychlení" - #define STRING_PRINT_ACCELERATION "Zrychlení při tisku" - #define STRING_RETRACT_ACCELERATION "Zrychlení retrakcí" - #define STRING_TRAVEL_ACCELERATION "Zrychlení při přesunu" - #define STRING_JERK "Jerk-trhnutí" - #define STRING_JUNCTION_DEVIATION "Junction Deviation" - #define STRING_BUMP_SENSITIVITY "Citlivost nárazu TMC" - #define STRING_FWRETRACT "FW Zatažení" - #define STRING_FWRECOVER "FW Obnovení" - #define STRING_LIN_ADVANCE "Linear Advance" - #define STRING_RESET_SETTINGS_INFO "Všechna nastavení budou\nobnovena na výchozí\nhodnoty. Pokračovat?" - #define STRING_RESET_SETTINGS_DONE "Resetování všech nastavení\nbylo úspěšně provedeno.\nRestartujte zařízení." - #define STRING_INFO "Info" - #define STRING_LCD_BRIGHTNESS "LCD Jas" - #define STRING_LCD_BRIGHTNESS_DIM "LCD snížení jasu" - #define STRING_LCD_DIM_IDLE_TIMER "LCD snížení jasu po" - #define STRING_5_SECONDS "5 sec." - #define STRING_10_SECONDS "10 sec." - #define STRING_30_SECONDS "30 sec." - #define STRING_60_SECONDS "1 min." - #define STRING_120_SECONDS "2 min." - #define STRING_300_SECONDS "5 min." - #define STRING_CUSTOM_SECONDS "Vlastní" - #define STRING_SEQUENTIAL_MODE "Sequential mode" - #define STRING_ST7920_FULLSCREEN "Celoobrazovkový režim Marlin" - #define STRING_PLR_EN "Obnova po ztrátě napájení" - #define STRING_SETTING_SAVE "Uložení nastavení" - #define STRING_SETTING_RESET "Reset nastavení" - #define STRING_SETTING_RESTORE "Obnovení nastavení" - #define STRING_EEPROM_SETTINGS "EEPROM" - #define STRING_EEPROM_SAVE_INFO "Uložit nastavení tiskárny\ndo EEPROM?" - #define STRING_EEPROM_RESTORE_INFO "Obnovit nastavení \nz EEPROM?" - #define STRING_EEPROM_RESET_INFO "Reset EEPROM na výchozí hodnoty?" - #define STRING_RETRACT_FEEDRATE "Rychlost zatažení" - #define STRING_RETRACT_LENGTH "Délka zatažení" - #define STRING_RETRACT_SWAP_LENGTH "Délka zatažení Swap" - #define STRING_RETRACT_Z_LIFT "Z zvýšení při zatažení" - #define STRING_RETRACT_AUTO "Auto Firmware Retract" - #define STRING_RECOVER_FEEDRATE "Rychlost obnovení" - #define STRING_SWAP_RECOVER_FEEDRATE "Rychlost obnovení Swap" - #define STRING_RECOVER_LENGTH "Délka obnovení" - #define STRING_SWAP_RECOVER_LENGTH "Délka obnovení Swap" - #define STRING_START_PRINT "Spustit tisk:\n %s?" - #define STRING_ACK_NOTIFICATION "Styl oznámení ACK" - #define STRING_LEVELING_EDGE_DISTANCE "Vzdálenost nivelačních bodů\n stolku od kraje" - #define STRING_XY_UNLOCK "Uvolnit XY" - #define STRING_TUNING "Kalibrace" - #define STRING_PID "PID" - #define STRING_PID_TITLE "PID autokalibrace" - #define STRING_PID_START_INFO "PID autokalibrace bude spuštěna.\n Bude to cvíli trvat. Pokračovat?" - #define STRING_PID_START_INFO_2 "PID autokalibrace probíhá!" - #define STRING_PID_START_INFO_3 "NEDOTÝKEJ se displeje dokud není dokončeno\n (Zelená LED svítí)!" - #define STRING_TUNE_EXTRUDER "E-Krok" - #define STRING_TUNE_EXT_EXTRUDE_100 "100mm Vysunutí" - #define STRING_TUNE_EXT_TEMP "Kalibrace extruderu, ohřev" - #define STRING_TUNE_EXT_TEMPLOW "Požadovaná teplota je příliš nízká!\nMinimální teplota: %d C" - #define STRING_TUNE_EXT_DESIREDVAL "Teplota ještě není na požadované hodnotě" - #define STRING_TUNE_EXT_MARK120MM "Označ 120mm on fillamentu\nStlač '%s' pokud jsi připraven.\nZměř zbývající délku\npo vytlačení." - #define STRING_TUNE_EXT_HEATOFF "Vypnout topení?" - #define STRING_TUNE_EXT_ADJ_ESTEPS "Nastavení E-Kroků" - #define STRING_TUNE_EXT_ESTEPS_SAVED "Nové E-kroky uloženy!\nNezapmeň \nuložit do EEPROM.\nNová hodnota: %0.2f" - #define STRING_TUNE_EXT_MEASURED "Zbývající délka:" - #define STRING_TUNE_EXT_OLD_ESTEP "Původní E-kroky: %0.2f" - #define STRING_TUNE_EXT_NEW_ESTEP "Nový E-kroky: %0.2f" - #define STRING_CONNECTION_SETTINGS "Připojení" - #define STRING_OFFSET_TOOL "Offset 2.trysky" - #define STRING_HYBRID_THRESHOLD "TMC Hybridní práh" - #define STRING_NOTIFICATIONS "Oznámení" - #define STRING_MESH_EDITOR "Mesh síť" - #define STRING_MESH_TUNER "Mesh nastavení" - #define STRING_CASE_LIGHT "Case light" +#define STRING_LANGUAGE "Čeština" +#define STRING_HEAT "Teplota" +#define STRING_MOVE "Posunout" +#define STRING_HOME "Domů" +#define STRING_DISABLE_STEPPERS "Motory" +#define STRING_PRINT "Tisknout" +#define STRING_EXTRUDE "Filament" +#define STRING_FAN "Ofuk" +#define STRING_SETTINGS "Nastavení" +#define STRING_SCREEN_SETTINGS "Displej" +#define STRING_MACHINE_SETTINGS "Tiskárna" +#define STRING_FEATURE_SETTINGS "Vlastnosti" +#define STRING_SOUND "Zvuk" +#define STRING_TOUCH_SOUND "Zvuk při dotyku" +#define STRING_TOAST_SOUND "Zvuk vytápění" +#define STRING_ALERT_SOUND "Upozornění, popup okno" +#define STRING_PREHEATDONE_SOUND "Preheat done notification" +#define STRING_SHUT_DOWN "Vypnout" +#define STRING_RGB_SETTINGS "Barva LED" +#define STRING_RGB_OFF "LED vyp." +#define STRING_TERMINAL "Terminál" +#define STRING_CUSTOM "Vlastní" +#define STRING_LEVELING "Srovnat" +#define STRING_POINT_1 "Bod 1" +#define STRING_POINT_2 "Bod 2" +#define STRING_POINT_3 "Bod 3" +#define STRING_POINT_4 "Bod 4" +#define STRING_POINT_5 "Bod 5" +#define STRING_BED_LEVELING "Bed Level" +#define STRING_BL_COMPLETE "Vyrovnání kompletní" +#define STRING_BL_SMART_FILL "Chybějící body sondy\nbyly vyplněny inteligentně.\n \nPozn: Nezapomeň uložit!" +#define STRING_BL_ENABLE "BL: on" +#define STRING_BL_DISABLE "BL: off" +#define STRING_ABL "Vyrovnat" +#define STRING_BBL "BBL" +#define STRING_UBL "UBL" +#define STRING_MBL "MBL" +#define STRING_MBL_SETTINGS "Ruční vyrovnání" +#define STRING_ABL_SETTINGS "Auto vyrovnání" +#define STRING_ABL_SETTINGS_BBL "Bilineární vyrovnání" +#define STRING_ABL_SETTINGS_UBL "UBL vyrovnání" +#define STRING_ABL_SETTINGS_UBL_SAVE "Uložit do slotu" +#define STRING_ABL_SETTINGS_UBL_LOAD "Nahrát ze slotu" +#define STRING_ABL_SLOT0 "Slot 0" +#define STRING_ABL_SLOT1 "Slot 1" +#define STRING_ABL_SLOT2 "Slot 2" +#define STRING_ABL_SLOT3 "Slot 3" +#define STRING_ABL_SLOT_EEPROM "Zapamatuj si slot\nrestart? (Uložit EEPROM)" +#define STRING_ABL_Z "Z-Slábnutí" +#define STRING_BLTOUCH "BLTouch" +#define STRING_BLTOUCH_TEST "Test" +#define STRING_BLTOUCH_DEPLOY "Vysunout" +#define STRING_BLTOUCH_STOW "Zasunout" +#define STRING_BLTOUCH_REPEAT "Přesnost" +#define STRING_Z_OFFSET "Z Offset" +#define STRING_PROBE_OFFSET "Offset sondy" +#define STRING_HOME_OFFSET "Home Offset" +#define STRING_CONFIRMATION "Jste si jistý?" +#define STRING_DOWN "Dolů" +#define STRING_UP "Nahoru" +#define STRING_SAVE "Uložit" +#define STRING_RESTORE "Obnovit" +#define STRING_RESET "Reset" +#define STRING_DEFAULT "Výchozí" +#define STRING_CLEAR "Vymaž" +#define STRING_NEXT "Další" +#define STRING_DISTANCE "Vzdálenost" +#define STRING_INVALID_VALUE "Neplatná hodnota/y!" +#define STRING_TIMEOUT_REACHED "Časový limit vypršel!" +#define STRING_PROCESS_RUNNING "Probíhá proces!" +#define STRING_PROCESS_COMPLETED "Proces dokončen!" +#define STRING_PROCESS_ABORTED "Proces přerušen!" +#define STRING_INC "Přidat" +#define STRING_DEC "Ubrat" +#define STRING_NOZZLE "Tryska" +#define STRING_BED "Stolek" +#define STRING_CHAMBER "Komora" +#define STRING_START "Start" +#define STRING_STOP "Stop" +#define STRING_BACK "Zpět" +#define STRING_PAGE_UP "Další" +#define STRING_PAGE_DOWN "Předchozí" +#define STRING_PAUSE "Pauza" +#define STRING_RESUME "Obnovit" +#define STRING_LOAD "Zavést" +#define STRING_UNLOAD "Vysunout" +#define STRING_SLOW_SPEED "Pomalu" +#define STRING_NORMAL_SPEED "Normál" +#define STRING_FAST_SPEED "Rychle" +#define STRING_FAN_FULL_SPEED "Plný" +#define STRING_FAN_HALF_SPEED "Poloviční" +#define STRING_ROTATE_UI "Otočit UI" +#define STRING_TOUCHSCREEN_ADJUST "Kalibrovat" +#define STRING_MORE "Více" +#define STRING_SCREEN_INFO "Info" +#define STRING_STATUS "Status" +#define STRING_SIMULATOR_BG_COLOR "Marlin - Barva pozadí" +#define STRING_SIMULATOR_FONT_COLOR "Marlin - Barva písma" +#define STRING_WHITE "Bílá" +#define STRING_BLACK "Černá" +#define STRING_BLUE "Modrá" +#define STRING_RED "Červená" +#define STRING_GREEN "Zelená" +#define STRING_CYAN "Tyrkys" +#define STRING_YELLOW "Žlutá" +#define STRING_BROWN "Hnědá" +#define STRING_GRAY "Šedá" +#define STRING_ORANGE "Oranžová" +#define STRING_INDIGO "Indigo" +#define STRING_VIOLET "Fialová" +#define STRING_MAGENTA "Purpurová" +#define STRING_PURPLE "Nachová" +#define STRING_LIME "Limetková" +#define STRING_DARKBLUE "Tmavá Modrá" +#define STRING_DARKGREEN "Tmavá Červená" +#define STRING_DARKGRAY "Tmavá Šedá" +#define STRING_DISCONNECT "Odpojit" +#define STRING_BAUDRATE "Serial Port" +#define STRING_PERCENTAGE "Procenta" +#define STRING_BABYSTEP "BabyStep" +#define STRING_PERCENTAGE_SPEED "Rychlost" +#define STRING_PERCENTAGE_FLOW "Průtok" +#define STRING_VALUE_ZERO "Vynulovat" +#define STRING_1_DEGREE "1℃" +#define STRING_5_DEGREE "5℃" +#define STRING_10_DEGREE "10℃" +#define STRING_X_INC "X+" +#define STRING_Y_INC "Y+" +#define STRING_Z_INC "Z+" +#define STRING_X_DEC "X-" +#define STRING_Y_DEC "Y-" +#define STRING_Z_DEC "Z-" +#define STRING_X "X" +#define STRING_Y "Y" +#define STRING_Z "Z" +#define STRING_001_MM "0,01mm" +#define STRING_01_MM "0,1mm" +#define STRING_1_MM "1mm" +#define STRING_5_MM "5mm" +#define STRING_10_MM "10mm" +#define STRING_100_MM "100mm" +#define STRING_200_MM "200mm" +#define STRING_1_PERCENT "1%" +#define STRING_5_PERCENT "5%" +#define STRING_10_PERCENT "10%" +#define STRING_PERCENT_VALUE "%d%%" +#define STRING_READY "Připraven" +#define STRING_BUSY "Zpracovávám, čekejte prosím..." +#define STRING_UNCONNECTED "Tiskárna není připojena!" +#define STRING_DISCONNECT_INFO "Nyní můžete tiskárnu ovládat z počítače!" +#define STRING_LOADING "Nahrávám..." +#define STRING_POWER_FAILED "Obnovit tisk?" +#define STRING_CONTINUE "Pokračovat" +#define STRING_CANCEL "Zrušit" +#define STRING_ADJUST_TITLE "Kalibrace dotykové obrazovky" +#define STRING_ADJUST_INFO "Dotkněte se postupně všech bodů" +#define STRING_ADJUST_OK "Kalibrace úspěšná" +#define STRING_ADJUST_FAILED "Kalibrace selhala, zopakujte znovu" +#define STRING_WARNING "Varování" +#define STRING_STOP_PRINT "Zastavit tisk?" +#define STRING_CONFIRM "Potvrdit" +#define STRING_TFTSD "TFT SD" +#define STRING_READ_TFTSD_ERROR "Chyba při čtení SD karty!" +#define STRING_TFTSD_INSERTED "SD karta vložena!" +#define STRING_TFTSD_REMOVED "SD karta vyjmuta!" +#define STRING_U_DISK "USB Disk" +#define STRING_READ_U_DISK_ERROR "Chyba při čtení USB disku!" +#define STRING_U_DISK_INSERTED "USB disk vložen!" +#define STRING_U_DISK_REMOVED "USB disk vyjmut!" +#define STRING_ONBOARDSD "Onboard SD" +#define STRING_READ_ONBOARDSD_ERROR "Chyba při čtení Onboard SD!" +#define STRING_FILAMENT_SENSOR "Senzor filamentu" +#define STRING_FILAMENT_RUNOUT "Došel filament!" +#define STRING_PREHEAT "Zahřát" +#define STRING_PREHEAT_BOTH "Vše" +#define STRING_IS_PAUSE "Během tisku nelze\nextrudovat,\nmám pozastavit tisk?" +#define STRING_AUTO_SHUT_DOWN "Auto.vypnutí" +#define STRING_UNIFIEDMOVE "Pohyb" +#define STRING_UNIFIEDHEAT "Teplota" +#define STRING_COOLDOWN "Zchladit" +#define STRING_EMERGENCYSTOP "!!STOP!!" +#define STRING_TOUCH_TO_EXIT "Pro návrat se dotkněte obrazovky..." +#define STRING_MAINMENU "Menu" +#define STRING_WAIT_TEMP_SHUT_DOWN "Čekám na zchladnutí\nextruderu pod %d℃" // Wait for the temperature of hotend to be lower than 50℃ +#define STRING_FORCE_SHUT_DOWN "Vynutit" +#define STRING_SHUTTING_DOWN "Vypínám se..." +#define STRING_PARAMETER_SETTING "Parametry" +#define STRING_ON "ON" +#define STRING_OFF "OFF" +#define STRING_SMART "SMART" +#define STRING_TERMINAL_ACK "zobrazit ACK Terminálu" +#define STRING_INVERT_XAXIS "Otočit osu X" +#define STRING_INVERT_YAXIS "Otočit osu Y" +#define STRING_INVERT_ZAXIS "Otočit osu Z" +#define STRING_MOVE_SPEED "Rychlost pohybu X Y Z" +#define STRING_KNOB_LED "Rotační knob LED" +#define STRING_KNOB_LED_IDLE "Rotační knob LED idle" +#define STRING_M0_PAUSE "Pauza po příkazu M0" +#define STRING_SEND_START_GCODE "Spustit Gcode před tiskem" +#define STRING_SEND_END_GCODE "Spustit Gcode po tisku" +#define STRING_SEND_CANCEL_GCODE "Přerušení tisku" +#define STRING_PERSISTENT_STATUS_INFO "Trvalé zobrazení stavu" +#define STRING_FILE_LISTMODE "Zobrazit soub.jako seznam" +#define STRING_CURRENT_SETTING "Proud motorů (mA)" +#define STRING_STEPS_SETTING "Kroků/mm" +#define STRING_MAXFEEDRATE "Max rychlost" +#define STRING_MAXACCELERATION "Max zrychlení" +#define STRING_ACCELERATION "Zrychlení" +#define STRING_PRINT_ACCELERATION "Zrychlení při tisku" +#define STRING_RETRACT_ACCELERATION "Zrychlení retrakcí" +#define STRING_TRAVEL_ACCELERATION "Zrychlení při přesunu" +#define STRING_JERK "Jerk-trhnutí" +#define STRING_JUNCTION_DEVIATION "Junction Deviation" +#define STRING_BUMP_SENSITIVITY "Citlivost nárazu TMC" +#define STRING_FWRETRACT "FW Zatažení" +#define STRING_FWRECOVER "FW Obnovení" +#define STRING_LIN_ADVANCE "Linear Advance" +#define STRING_RESET_SETTINGS_INFO "Všechna nastavení budou\nobnovena na výchozí\nhodnoty. Pokračovat?" +#define STRING_RESET_SETTINGS_DONE "Resetování všech nastavení\nbylo úspěšně provedeno.\nRestartujte zařízení." +#define STRING_INFO "Info" +#define STRING_LCD_BRIGHTNESS "LCD Jas" +#define STRING_LCD_BRIGHTNESS_DIM "LCD snížení jasu" +#define STRING_LCD_DIM_IDLE_TIMER "LCD snížení jasu po" +#define STRING_5_SECONDS "5 sec." +#define STRING_10_SECONDS "10 sec." +#define STRING_30_SECONDS "30 sec." +#define STRING_60_SECONDS "1 min." +#define STRING_120_SECONDS "2 min." +#define STRING_300_SECONDS "5 min." +#define STRING_CUSTOM_SECONDS "Vlastní" +#define STRING_SEQUENTIAL_MODE "Sequential mode" +#define STRING_ST7920_FULLSCREEN "Celoobrazovkový režim Marlin" +#define STRING_PLR_EN "Obnova po ztrátě napájení" +#define STRING_SETTING_SAVE "Uložení nastavení" +#define STRING_SETTING_RESET "Reset nastavení" +#define STRING_SETTING_RESTORE "Obnovení nastavení" +#define STRING_EEPROM_SETTINGS "EEPROM" +#define STRING_EEPROM_SAVE_INFO "Uložit nastavení tiskárny\ndo EEPROM?" +#define STRING_EEPROM_RESTORE_INFO "Obnovit nastavení \nz EEPROM?" +#define STRING_EEPROM_RESET_INFO "Reset EEPROM na výchozí hodnoty?" +#define STRING_RETRACT_FEEDRATE "Rychlost zatažení" +#define STRING_RETRACT_LENGTH "Délka zatažení" +#define STRING_RETRACT_SWAP_LENGTH "Délka zatažení Swap" +#define STRING_RETRACT_Z_LIFT "Z zvýšení při zatažení" +#define STRING_RETRACT_AUTO "Auto Firmware Retract" +#define STRING_RECOVER_FEEDRATE "Rychlost obnovení" +#define STRING_SWAP_RECOVER_FEEDRATE "Rychlost obnovení Swap" +#define STRING_RECOVER_LENGTH "Délka obnovení" +#define STRING_SWAP_RECOVER_LENGTH "Délka obnovení Swap" +#define STRING_START_PRINT "Spustit tisk:\n %s?" +#define STRING_ACK_NOTIFICATION "Styl oznámení ACK" +#define STRING_LEVELING_EDGE_DISTANCE "Vzdálenost nivelačních bodů\n stolku od kraje" +#define STRING_XY_UNLOCK "Uvolnit XY" +#define STRING_TUNING "Kalibrace" +#define STRING_PID "PID" +#define STRING_PID_TITLE "PID autokalibrace" +#define STRING_PID_START_INFO "PID autokalibrace bude spuštěna.\n Bude to cvíli trvat. Pokračovat?" +#define STRING_PID_START_INFO_2 "PID autokalibrace probíhá!" +#define STRING_PID_START_INFO_3 "NEDOTÝKEJ se displeje dokud není dokončeno\n (Zelená LED svítí)!" +#define STRING_TUNE_EXTRUDER "E-Krok" +#define STRING_TUNE_EXT_EXTRUDE_100 "100mm Vysunutí" +#define STRING_TUNE_EXT_TEMP "Kalibrace extruderu, ohřev" +#define STRING_TUNE_EXT_TEMPLOW "Požadovaná teplota je příliš nízká!\nMinimální teplota: %d C" +#define STRING_TUNE_EXT_DESIREDVAL "Teplota ještě není na požadované hodnotě" +#define STRING_TUNE_EXT_MARK120MM "Označ 120mm on fillamentu\nStlač '%s' pokud jsi připraven.\nZměř zbývající délku\npo vytlačení." +#define STRING_TUNE_EXT_HEATOFF "Vypnout topení?" +#define STRING_TUNE_EXT_ADJ_ESTEPS "Nastavení E-Kroků" +#define STRING_TUNE_EXT_ESTEPS_SAVED "Nové E-kroky uloženy!\nNezapmeň \nuložit do EEPROM.\nNová hodnota: %0.2f" +#define STRING_TUNE_EXT_MEASURED "Zbývající délka:" +#define STRING_TUNE_EXT_OLD_ESTEP "Původní E-kroky: %0.2f" +#define STRING_TUNE_EXT_NEW_ESTEP "Nový E-kroky: %0.2f" +#define STRING_CONNECTION_SETTINGS "Připojení" +#define STRING_OFFSET_TOOL "Offset 2.trysky" +#define STRING_HYBRID_THRESHOLD "TMC Hybridní práh" +#define STRING_NOTIFICATIONS "Oznámení" +#define STRING_MESH_EDITOR "Mesh síť" +#define STRING_MESH_TUNER "Mesh nastavení" +#define STRING_CASE_LIGHT "Case light" diff --git a/TFT/src/User/API/Language/language_de.h b/TFT/src/User/API/Language/language_de.h index 5e09df40fc..a0f5fcbbcf 100644 --- a/TFT/src/User/API/Language/language_de.h +++ b/TFT/src/User/API/Language/language_de.h @@ -1,279 +1,280 @@ #pragma once - #define STRING_LANGUAGE "Deutsch" - #define STRING_HEAT "heizen" - #define STRING_MOVE "bewegen" - #define STRING_HOME "Home XYZ" - #define STRING_DISABLE_STEPPERS "alle lösen" - #define STRING_PRINT "drucken" - #define STRING_EXTRUDE "Extruder" - #define STRING_FAN "Lüfter" - #define STRING_SETTINGS "Einstellungen" - #define STRING_SCREEN_SETTINGS "Bildschirm" - #define STRING_MACHINE_SETTINGS "Drucker" - #define STRING_FEATURE_SETTINGS "Andere" - #define STRING_SOUND "Töne" - #define STRING_TOUCH_SOUND "Eingabe" - #define STRING_TOAST_SOUND "Toasts" - #define STRING_ALERT_SOUND "Popups & Alarme" - #define STRING_SHUT_DOWN "auschalten (PS_ON)" - #define STRING_RGB_SETTINGS "LED Farbe" - #define STRING_RGB_OFF "LED aus" - #define STRING_TERMINAL "Terminal" - #define STRING_CUSTOM "Extras" - #define STRING_LEVELING "justieren" - #define STRING_POINT_1 "Punkt 1" - #define STRING_POINT_2 "Punkt 2" - #define STRING_POINT_3 "Punkt 3" - #define STRING_POINT_4 "Punkt 4" - #define STRING_POINT_5 "Punkt 5" - #define STRING_BED_LEVELING "vermessen" - #define STRING_BL_COMPLETE "Bett-Vermessung ausgeführt" - #define STRING_BL_SMART_FILL "Fehlende Messpunkte\nwurden berechent.\n \nHinweis: Bitte speichern!" - #define STRING_BL_ENABLE "BL: an" - #define STRING_BL_DISABLE "BL: aus" - #define STRING_ABL "ABL" - #define STRING_BBL "BBL" - #define STRING_UBL "UBL" - #define STRING_MBL "MBL" - #define STRING_MBL_SETTINGS "Bett Vermessung (Raster)" - #define STRING_ABL_SETTINGS "Bett Vermessung (auto)" - #define STRING_ABL_SETTINGS_BBL "Bett Vermessung (bilinear)" - #define STRING_ABL_SETTINGS_UBL "Bett Vermessung (Unified)" - #define STRING_ABL_SETTINGS_UBL_SAVE "im Slot speichern" - #define STRING_ABL_SETTINGS_UBL_LOAD "aus Slot laden" - #define STRING_ABL_SLOT0 "Slot 0" - #define STRING_ABL_SLOT1 "Slot 1" - #define STRING_ABL_SLOT2 "Slot 2" - #define STRING_ABL_SLOT3 "Slot 3" - #define STRING_ABL_SLOT_EEPROM "Slot für den nächsten\nNeustart merken?(Im EEPROM speichern)" - #define STRING_ABL_Z "Z Fade" - #define STRING_BLTOUCH "BLTouch" - #define STRING_BLTOUCH_TEST "testen" - #define STRING_BLTOUCH_DEPLOY "ausfahren" - #define STRING_BLTOUCH_STOW "einziehen" - #define STRING_BLTOUCH_REPEAT "widerholen" - #define STRING_Z_OFFSET "Delta Z" - #define STRING_PROBE_OFFSET "Delta Fühler" - #define STRING_HOME_OFFSET "Home Offset" - #define STRING_CONFIRMATION "Sicher?" - #define STRING_DOWN "ab" - #define STRING_UP "auf" - #define STRING_SAVE "speichern" - #define STRING_RESTORE "laden" - #define STRING_RESET "zurücksetzen" - #define STRING_DEFAULT "Standard" - #define STRING_CLEAR "löschen" - #define STRING_NEXT "nächster" - #define STRING_DISTANCE "Abstand" - #define STRING_INVALID_VALUE "Ungültige(r) Wert(e)" - #define STRING_TIMEOUT_REACHED "Timeout erreicht!" - #define STRING_PROCESS_RUNNING "Prozess läuft bereits!" - #define STRING_PROCESS_COMPLETED "Prozess fertiggestellt!" - #define STRING_PROCESS_ABORTED "Prozess abgebrochen!" - #define STRING_INC "erhöhen" - #define STRING_DEC "verringern" - #define STRING_NOZZLE "Düse" - #define STRING_BED "Heizbett" - #define STRING_CHAMBER "Kammer" - #define STRING_START "Start" - #define STRING_STOP "Stop" - #define STRING_BACK "zurück" - #define STRING_PAGE_UP "Seite hoch" - #define STRING_PAGE_DOWN "Seite runter" - #define STRING_PAUSE "Pause" - #define STRING_RESUME "Wiederaufnahme" - #define STRING_LOAD "laden" - #define STRING_UNLOAD "entladen" - #define STRING_SLOW_SPEED "langsam" - #define STRING_NORMAL_SPEED "normal" - #define STRING_FAST_SPEED "schnell" - #define STRING_FAN_FULL_SPEED "alles" - #define STRING_FAN_HALF_SPEED "halb" - #define STRING_ROTATE_UI "UI drehen" - #define STRING_TOUCHSCREEN_ADJUST "TSC kalib." - #define STRING_MORE "mehr" - #define STRING_SCREEN_INFO "Info" - #define STRING_STATUS "Status" - #define STRING_SIMULATOR_BG_COLOR "Hintergrundfarbe Marlin" - #define STRING_SIMULATOR_FONT_COLOR "Schriftfarbe Marlin" - #define STRING_WHITE "weiß" - #define STRING_BLACK "schwarz" - #define STRING_BLUE "blau" - #define STRING_RED "rot" - #define STRING_GREEN "grün" - #define STRING_CYAN "cyan" - #define STRING_YELLOW "gelb" - #define STRING_BROWN "braun" - #define STRING_GRAY "grau" - #define STRING_ORANGE "orange" - #define STRING_INDIGO "indigo" - #define STRING_VIOLET "violet" - #define STRING_MAGENTA "magenta" - #define STRING_PURPLE "lila" - #define STRING_LIME "grüngelb" - #define STRING_DARKBLUE "dunkelblau" - #define STRING_DARKGREEN "dunkelgrün" - #define STRING_DARKGRAY "dunkelgrau" - #define STRING_DISCONNECT "trennen" - #define STRING_BAUDRATE "Baudrate" - #define STRING_PERCENTAGE "Prozent" - #define STRING_BABYSTEP "BabyStep" - #define STRING_PERCENTAGE_SPEED "Geschw." - #define STRING_PERCENTAGE_FLOW "Fluss" - #define STRING_VALUE_ZERO "0" - #define STRING_1_DEGREE "1℃" - #define STRING_5_DEGREE "5℃" - #define STRING_10_DEGREE "10℃" - #define STRING_X_INC "X+" - #define STRING_Y_INC "Y+" - #define STRING_Z_INC "Z+" - #define STRING_X_DEC "X-" - #define STRING_Y_DEC "Y-" - #define STRING_Z_DEC "Z-" - #define STRING_X "X" - #define STRING_Y "Y" - #define STRING_Z "Z" - #define STRING_001_MM "0.01mm" - #define STRING_01_MM "0.1mm" - #define STRING_1_MM "1mm" - #define STRING_5_MM "5mm" - #define STRING_10_MM "10mm" - #define STRING_100_MM "100mm" - #define STRING_200_MM "200mm" - #define STRING_1_PERCENT "1%" - #define STRING_5_PERCENT "5%" - #define STRING_10_PERCENT "10%" - #define STRING_PERCENT_VALUE "%d%%" - #define STRING_READY "bereit" - #define STRING_BUSY "Bitte warten ..." - #define STRING_UNCONNECTED "Keine Verbindung zum Drucker!" - #define STRING_DISCONNECT_INFO "Verbindung getrennt!" - #define STRING_LOADING "Lade ..." - #define STRING_POWER_FAILED "Druck fortsetzen?" //Question Sign - #define STRING_CONTINUE "fortsetzen" - #define STRING_CANCEL "Abbruch" //Cancel Sign - #define STRING_ADJUST_TITLE "Touchscreen kalibrieren" - #define STRING_ADJUST_INFO "roten Punkt antippen" - #define STRING_ADJUST_OK "erfolgreich kalibriert" - #define STRING_ADJUST_FAILED "Kalibrierung fehlgeschlagen, erneut versuchen." - #define STRING_WARNING "Warnung" //Exclamation Sign - #define STRING_STOP_PRINT "Druck abbrechen?" - #define STRING_CONFIRM "OK" //Confirm Sign - #define STRING_TFTSD "TFT SD" - #define STRING_READ_TFTSD_ERROR "TFT SD Lesefehler!" - #define STRING_TFTSD_INSERTED "SD-Karte eingesteckt!" - #define STRING_TFTSD_REMOVED "SD-Karte entfernt!" - #define STRING_U_DISK "USB-Stick" - #define STRING_READ_U_DISK_ERROR "USB-Stick Lesefehler!" - #define STRING_U_DISK_INSERTED "USB-Stick eingesteckt!" - #define STRING_U_DISK_REMOVED "USB-Stick entfernt!" - #define STRING_ONBOARDSD "Onboard SD" - #define STRING_READ_ONBOARDSD_ERROR "Onboard SD Lesefehler!" - #define STRING_FILAMENT_SENSOR "Filament Sensor" - #define STRING_FILAMENT_RUNOUT "Filament alle!" - #define STRING_PREHEAT "vorheizen" - #define STRING_PREHEAT_BOTH "beide" - #define STRING_IS_PAUSE "Extrudieren während\nDruckvorgang nicht\nmöglich!\nDruck pausieren?" - #define STRING_AUTO_SHUT_DOWN "Automatisch AUS (PS_ON)" - #define STRING_UNIFIEDMOVE "Bewegung" - #define STRING_UNIFIEDHEAT "Heiz.Lüft." - #define STRING_COOLDOWN "abkühlen" - #define STRING_EMERGENCYSTOP "NOT AUS!" - #define STRING_TOUCH_TO_EXIT "Zum Verlassen, Bildschirm berühren." - #define STRING_MAINMENU "Menü" - #define STRING_WAIT_TEMP_SHUT_DOWN "Warte bis Hotend-\nTemperatur unter\n %d℃ fällt." // Wait for the temperature of hotend to be lower than 50℃ - #define STRING_FORCE_SHUT_DOWN "erzwinge" - #define STRING_SHUTTING_DOWN "Fahre herunter..." - #define STRING_PARAMETER_SETTING "Parameter" - #define STRING_ON "AN" - #define STRING_OFF "AUS" - #define STRING_SMART "SMART" - #define STRING_TERMINAL_ACK "Zeige ACK im Terminal" - #define STRING_INVERT_XAXIS "Invertiere X-Achse" - #define STRING_INVERT_YAXIS "Invertiere Y-Achse" - #define STRING_INVERT_ZAXIS "Invertiere Z-Achse" - #define STRING_MOVE_SPEED "Geschwindigkeit (XYZ)" - #define STRING_KNOB_LED "Drehknopf LED Farbe" - #define STRING_KNOB_LED_IDLE "Drehknopf LED idle Farbe" - #define STRING_M0_PAUSE "Pause durch M0 Befehl" - #define STRING_SEND_START_GCODE "Gcode vor Druck" - #define STRING_SEND_END_GCODE "Gcode nach Druck" - #define STRING_SEND_CANCEL_GCODE "Gcode bei Abbruch" - #define STRING_PERSISTENT_STATUS_INFO "Speicherungs-Status" - #define STRING_FILE_LISTMODE "Datein als Liste" - #define STRING_CURRENT_SETTING "Treiber Strom (mA)" - #define STRING_STEPS_SETTING "Steps pro mm" - #define STRING_MAXFEEDRATE "max. Geschwindigkeit" - #define STRING_MAXACCELERATION "max. Beschleunigung" - #define STRING_ACCELERATION "Beschleunigung" - #define STRING_PRINT_ACCELERATION "Beschleunigung (Druck)" - #define STRING_RETRACT_ACCELERATION "Beschleunigung (Rückzug)" - #define STRING_TRAVEL_ACCELERATION "Beschleunigung (Fahrt)" - #define STRING_JERK "Jerk" - #define STRING_JUNCTION_DEVIATION "Junction Deviation" - #define STRING_BUMP_SENSITIVITY "TMC Empfindlichkeit" - #define STRING_FWRETRACT "FW Rückzug" - #define STRING_FWRECOVER "FW Rückeinschub" - #define STRING_LIN_ADVANCE "Linear Advance" - #define STRING_RESET_SETTINGS_INFO "Hiermit werden alle\nEinstellungen zurückgesetzt. Fortfahren?" - #define STRING_RESET_SETTINGS_DONE "Einstellungen wurden\nerfolgreich zurückgesetzt.\nBitte neustarten." - #define STRING_INFO "Info" //Info Sign - #define STRING_LCD_BRIGHTNESS "LCD Helligkeit" - #define STRING_LCD_BRIGHTNESS_DIM "LCD Helligkeit (Standby)" - #define STRING_LCD_DIM_IDLE_TIMER "LCD Timer Standby" - #define STRING_5_SECONDS "5 Sek." - #define STRING_10_SECONDS "10 Sek." - #define STRING_30_SECONDS "30 Sek." - #define STRING_60_SECONDS "1 Min." - #define STRING_120_SECONDS "2 Min." - #define STRING_300_SECONDS "5 Min." - #define STRING_CUSTOM_SECONDS "Benutz." - #define STRING_SEQUENTIAL_MODE "Sequential mode" - #define STRING_ST7920_FULLSCREEN "Marlin Modus im Vollbild" - #define STRING_PLR_EN "Wiederherstellung nach Stromausfall" - #define STRING_SETTING_SAVE "Einstellungen speichern" - #define STRING_SETTING_RESET "Einstellungen zurücksetzten" - #define STRING_SETTING_RESTORE "Einstellungen wiederherstellen" - #define STRING_EEPROM_SETTINGS "EEPROM" - #define STRING_EEPROM_SAVE_INFO "Einstellungen im\nEEPROM speichern?" - #define STRING_EEPROM_RESTORE_INFO "Einstellungen aus\nEEPROM laden?" - #define STRING_EEPROM_RESET_INFO "Standardeinstellungen des Druckers wiederherstellen?" - #define STRING_RETRACT_FEEDRATE "Rückzugsgeschwindigkeit" - #define STRING_RETRACT_LENGTH "Rückzugslänge" - #define STRING_RETRACT_SWAP_LENGTH "Rückzugslänge (Wechsel)" - #define STRING_RETRACT_Z_LIFT "Z-Anhebung bei Rückzug" - #define STRING_RETRACT_AUTO "Auto-Rückzug über Firmware" - #define STRING_RECOVER_FEEDRATE "Geschw. Rückeinschub" - #define STRING_SWAP_RECOVER_FEEDRATE "Geschw. Rückeinschub (Wechsel)" - #define STRING_RECOVER_LENGTH "zus. Länge Rückeinschub" - #define STRING_SWAP_RECOVER_LENGTH "zus. Länge Rückeinschub (Wechsel)" - #define STRING_START_PRINT "Druck starten:\n %s?" - #define STRING_ACK_NOTIFICATION "ACK Benachrichtigungs-Stil" - #define STRING_LEVELING_EDGE_DISTANCE "Bettecken-Abstand" - #define STRING_XY_UNLOCK "löse XY" - #define STRING_TUNING "Justage" - #define STRING_PID "PID" - #define STRING_PID_TITLE "PID autotune" - #define STRING_PID_START_INFO "PID autotune benötigt\neinige Zeit.\nWeitermachen?" - #define STRING_PID_START_INFO_2 "PID autotune läuft!" - #define STRING_PID_START_INFO_3 "Berühren Sie den Bildschirm erst bei Fertigstellung (Grüne LED)!" - #define STRING_TUNE_EXTRUDER "Steps anp." - #define STRING_TUNE_EXT_EXTRUDE_100 "100mm ext." - #define STRING_TUNE_EXT_TEMP "Ext. Kalib. Temp." - #define STRING_TUNE_EXT_TEMPLOW "Temparatur zu niedrig!\nMinimale Temparatur: %d C" - #define STRING_TUNE_EXT_DESIREDVAL "Temparatur hat gewünschten Wert noch nicht erreicht" - #define STRING_TUNE_EXT_MARK120MM "Filament 120 mm über Einlass markieren,\ndann '%s' drücken & nach Extrusion\nerneut messen" - #define STRING_TUNE_EXT_HEATOFF "Heizung abschalten?" - #define STRING_TUNE_EXT_ADJ_ESTEPS "E-Steps einstellen" - #define STRING_TUNE_EXT_ESTEPS_SAVED "Neue E-Steps gespeichert!\nBitte auch im EEPROM speichern.\nNeuer Wert: %0.2f" - #define STRING_TUNE_EXT_MEASURED "Restliche Länge:" - #define STRING_TUNE_EXT_OLD_ESTEP "Alte E-Steps: %0.2f" - #define STRING_TUNE_EXT_NEW_ESTEP "Neue E-Steps: %0.2f" - #define STRING_CONNECTION_SETTINGS "Verbindung" - #define STRING_OFFSET_TOOL "Abstand 2te Düse" - #define STRING_HYBRID_THRESHOLD "TMC HybridThreshold" - #define STRING_NOTIFICATIONS "Benachrichtigungen" - #define STRING_MESH_EDITOR "Mesh edit." - #define STRING_MESH_TUNER "Mesh anp." - #define STRING_CASE_LIGHT "Case light" +#define STRING_LANGUAGE "Deutsch" +#define STRING_HEAT "heizen" +#define STRING_MOVE "bewegen" +#define STRING_HOME "Home XYZ" +#define STRING_DISABLE_STEPPERS "alle lösen" +#define STRING_PRINT "drucken" +#define STRING_EXTRUDE "Extruder" +#define STRING_FAN "Lüfter" +#define STRING_SETTINGS "Einstellungen" +#define STRING_SCREEN_SETTINGS "Bildschirm" +#define STRING_MACHINE_SETTINGS "Drucker" +#define STRING_FEATURE_SETTINGS "Andere" +#define STRING_SOUND "Töne" +#define STRING_TOUCH_SOUND "Eingabe" +#define STRING_TOAST_SOUND "Toasts" +#define STRING_ALERT_SOUND "Popups & Alarme" +#define STRING_PREHEATDONE_SOUND "Preheat done notification" +#define STRING_SHUT_DOWN "auschalten (PS_ON)" +#define STRING_RGB_SETTINGS "LED Farbe" +#define STRING_RGB_OFF "LED aus" +#define STRING_TERMINAL "Terminal" +#define STRING_CUSTOM "Extras" +#define STRING_LEVELING "justieren" +#define STRING_POINT_1 "Punkt 1" +#define STRING_POINT_2 "Punkt 2" +#define STRING_POINT_3 "Punkt 3" +#define STRING_POINT_4 "Punkt 4" +#define STRING_POINT_5 "Punkt 5" +#define STRING_BED_LEVELING "vermessen" +#define STRING_BL_COMPLETE "Bett-Vermessung ausgeführt" +#define STRING_BL_SMART_FILL "Fehlende Messpunkte\nwurden berechent.\n \nHinweis: Bitte speichern!" +#define STRING_BL_ENABLE "BL: an" +#define STRING_BL_DISABLE "BL: aus" +#define STRING_ABL "ABL" +#define STRING_BBL "BBL" +#define STRING_UBL "UBL" +#define STRING_MBL "MBL" +#define STRING_MBL_SETTINGS "Bett Vermessung (Raster)" +#define STRING_ABL_SETTINGS "Bett Vermessung (auto)" +#define STRING_ABL_SETTINGS_BBL "Bett Vermessung (bilinear)" +#define STRING_ABL_SETTINGS_UBL "Bett Vermessung (Unified)" +#define STRING_ABL_SETTINGS_UBL_SAVE "im Slot speichern" +#define STRING_ABL_SETTINGS_UBL_LOAD "aus Slot laden" +#define STRING_ABL_SLOT0 "Slot 0" +#define STRING_ABL_SLOT1 "Slot 1" +#define STRING_ABL_SLOT2 "Slot 2" +#define STRING_ABL_SLOT3 "Slot 3" +#define STRING_ABL_SLOT_EEPROM "Slot für den nächsten\nNeustart merken?(Im EEPROM speichern)" +#define STRING_ABL_Z "Z Fade" +#define STRING_BLTOUCH "BLTouch" +#define STRING_BLTOUCH_TEST "testen" +#define STRING_BLTOUCH_DEPLOY "ausfahren" +#define STRING_BLTOUCH_STOW "einziehen" +#define STRING_BLTOUCH_REPEAT "widerholen" +#define STRING_Z_OFFSET "Delta Z" +#define STRING_PROBE_OFFSET "Delta Fühler" +#define STRING_HOME_OFFSET "Home Offset" +#define STRING_CONFIRMATION "Sicher?" +#define STRING_DOWN "ab" +#define STRING_UP "auf" +#define STRING_SAVE "speichern" +#define STRING_RESTORE "laden" +#define STRING_RESET "zurücksetzen" +#define STRING_DEFAULT "Standard" +#define STRING_CLEAR "löschen" +#define STRING_NEXT "nächster" +#define STRING_DISTANCE "Abstand" +#define STRING_INVALID_VALUE "Ungültige(r) Wert(e)" +#define STRING_TIMEOUT_REACHED "Timeout erreicht!" +#define STRING_PROCESS_RUNNING "Prozess läuft bereits!" +#define STRING_PROCESS_COMPLETED "Prozess fertiggestellt!" +#define STRING_PROCESS_ABORTED "Prozess abgebrochen!" +#define STRING_INC "erhöhen" +#define STRING_DEC "verringern" +#define STRING_NOZZLE "Düse" +#define STRING_BED "Heizbett" +#define STRING_CHAMBER "Kammer" +#define STRING_START "Start" +#define STRING_STOP "Stop" +#define STRING_BACK "zurück" +#define STRING_PAGE_UP "Seite hoch" +#define STRING_PAGE_DOWN "Seite runter" +#define STRING_PAUSE "Pause" +#define STRING_RESUME "Wiederaufnahme" +#define STRING_LOAD "laden" +#define STRING_UNLOAD "entladen" +#define STRING_SLOW_SPEED "langsam" +#define STRING_NORMAL_SPEED "normal" +#define STRING_FAST_SPEED "schnell" +#define STRING_FAN_FULL_SPEED "alles" +#define STRING_FAN_HALF_SPEED "halb" +#define STRING_ROTATE_UI "UI drehen" +#define STRING_TOUCHSCREEN_ADJUST "TSC kalib." +#define STRING_MORE "mehr" +#define STRING_SCREEN_INFO "Info" +#define STRING_STATUS "Status" +#define STRING_SIMULATOR_BG_COLOR "Hintergrundfarbe Marlin" +#define STRING_SIMULATOR_FONT_COLOR "Schriftfarbe Marlin" +#define STRING_WHITE "weiß" +#define STRING_BLACK "schwarz" +#define STRING_BLUE "blau" +#define STRING_RED "rot" +#define STRING_GREEN "grün" +#define STRING_CYAN "cyan" +#define STRING_YELLOW "gelb" +#define STRING_BROWN "braun" +#define STRING_GRAY "grau" +#define STRING_ORANGE "orange" +#define STRING_INDIGO "indigo" +#define STRING_VIOLET "violet" +#define STRING_MAGENTA "magenta" +#define STRING_PURPLE "lila" +#define STRING_LIME "grüngelb" +#define STRING_DARKBLUE "dunkelblau" +#define STRING_DARKGREEN "dunkelgrün" +#define STRING_DARKGRAY "dunkelgrau" +#define STRING_DISCONNECT "trennen" +#define STRING_BAUDRATE "Baudrate" +#define STRING_PERCENTAGE "Prozent" +#define STRING_BABYSTEP "BabyStep" +#define STRING_PERCENTAGE_SPEED "Geschw." +#define STRING_PERCENTAGE_FLOW "Fluss" +#define STRING_VALUE_ZERO "0" +#define STRING_1_DEGREE "1℃" +#define STRING_5_DEGREE "5℃" +#define STRING_10_DEGREE "10℃" +#define STRING_X_INC "X+" +#define STRING_Y_INC "Y+" +#define STRING_Z_INC "Z+" +#define STRING_X_DEC "X-" +#define STRING_Y_DEC "Y-" +#define STRING_Z_DEC "Z-" +#define STRING_X "X" +#define STRING_Y "Y" +#define STRING_Z "Z" +#define STRING_001_MM "0.01mm" +#define STRING_01_MM "0.1mm" +#define STRING_1_MM "1mm" +#define STRING_5_MM "5mm" +#define STRING_10_MM "10mm" +#define STRING_100_MM "100mm" +#define STRING_200_MM "200mm" +#define STRING_1_PERCENT "1%" +#define STRING_5_PERCENT "5%" +#define STRING_10_PERCENT "10%" +#define STRING_PERCENT_VALUE "%d%%" +#define STRING_READY "bereit" +#define STRING_BUSY "Bitte warten ..." +#define STRING_UNCONNECTED "Keine Verbindung zum Drucker!" +#define STRING_DISCONNECT_INFO "Verbindung getrennt!" +#define STRING_LOADING "Lade ..." +#define STRING_POWER_FAILED "Druck fortsetzen?" //Question Sign +#define STRING_CONTINUE "fortsetzen" +#define STRING_CANCEL "Abbruch" //Cancel Sign +#define STRING_ADJUST_TITLE "Touchscreen kalibrieren" +#define STRING_ADJUST_INFO "roten Punkt antippen" +#define STRING_ADJUST_OK "erfolgreich kalibriert" +#define STRING_ADJUST_FAILED "Kalibrierung fehlgeschlagen, erneut versuchen." +#define STRING_WARNING "Warnung" //Exclamation Sign +#define STRING_STOP_PRINT "Druck abbrechen?" +#define STRING_CONFIRM "OK" //Confirm Sign +#define STRING_TFTSD "TFT SD" +#define STRING_READ_TFTSD_ERROR "TFT SD Lesefehler!" +#define STRING_TFTSD_INSERTED "SD-Karte eingesteckt!" +#define STRING_TFTSD_REMOVED "SD-Karte entfernt!" +#define STRING_U_DISK "USB-Stick" +#define STRING_READ_U_DISK_ERROR "USB-Stick Lesefehler!" +#define STRING_U_DISK_INSERTED "USB-Stick eingesteckt!" +#define STRING_U_DISK_REMOVED "USB-Stick entfernt!" +#define STRING_ONBOARDSD "Onboard SD" +#define STRING_READ_ONBOARDSD_ERROR "Onboard SD Lesefehler!" +#define STRING_FILAMENT_SENSOR "Filament Sensor" +#define STRING_FILAMENT_RUNOUT "Filament alle!" +#define STRING_PREHEAT "vorheizen" +#define STRING_PREHEAT_BOTH "beide" +#define STRING_IS_PAUSE "Extrudieren während\nDruckvorgang nicht\nmöglich!\nDruck pausieren?" +#define STRING_AUTO_SHUT_DOWN "Automatisch AUS (PS_ON)" +#define STRING_UNIFIEDMOVE "Bewegung" +#define STRING_UNIFIEDHEAT "Heiz.Lüft." +#define STRING_COOLDOWN "abkühlen" +#define STRING_EMERGENCYSTOP "NOT AUS!" +#define STRING_TOUCH_TO_EXIT "Zum Verlassen, Bildschirm berühren." +#define STRING_MAINMENU "Menü" +#define STRING_WAIT_TEMP_SHUT_DOWN "Warte bis Hotend-\nTemperatur unter\n %d℃ fällt." // Wait for the temperature of hotend to be lower than 50℃ +#define STRING_FORCE_SHUT_DOWN "erzwinge" +#define STRING_SHUTTING_DOWN "Fahre herunter..." +#define STRING_PARAMETER_SETTING "Parameter" +#define STRING_ON "AN" +#define STRING_OFF "AUS" +#define STRING_SMART "SMART" +#define STRING_TERMINAL_ACK "Zeige ACK im Terminal" +#define STRING_INVERT_XAXIS "Invertiere X-Achse" +#define STRING_INVERT_YAXIS "Invertiere Y-Achse" +#define STRING_INVERT_ZAXIS "Invertiere Z-Achse" +#define STRING_MOVE_SPEED "Geschwindigkeit (XYZ)" +#define STRING_KNOB_LED "Drehknopf LED Farbe" +#define STRING_KNOB_LED_IDLE "Drehknopf LED idle Farbe" +#define STRING_M0_PAUSE "Pause durch M0 Befehl" +#define STRING_SEND_START_GCODE "Gcode vor Druck" +#define STRING_SEND_END_GCODE "Gcode nach Druck" +#define STRING_SEND_CANCEL_GCODE "Gcode bei Abbruch" +#define STRING_PERSISTENT_STATUS_INFO "Speicherungs-Status" +#define STRING_FILE_LISTMODE "Datein als Liste" +#define STRING_CURRENT_SETTING "Treiber Strom (mA)" +#define STRING_STEPS_SETTING "Steps pro mm" +#define STRING_MAXFEEDRATE "max. Geschwindigkeit" +#define STRING_MAXACCELERATION "max. Beschleunigung" +#define STRING_ACCELERATION "Beschleunigung" +#define STRING_PRINT_ACCELERATION "Beschleunigung (Druck)" +#define STRING_RETRACT_ACCELERATION "Beschleunigung (Rückzug)" +#define STRING_TRAVEL_ACCELERATION "Beschleunigung (Fahrt)" +#define STRING_JERK "Jerk" +#define STRING_JUNCTION_DEVIATION "Junction Deviation" +#define STRING_BUMP_SENSITIVITY "TMC Empfindlichkeit" +#define STRING_FWRETRACT "FW Rückzug" +#define STRING_FWRECOVER "FW Rückeinschub" +#define STRING_LIN_ADVANCE "Linear Advance" +#define STRING_RESET_SETTINGS_INFO "Hiermit werden alle\nEinstellungen zurückgesetzt. Fortfahren?" +#define STRING_RESET_SETTINGS_DONE "Einstellungen wurden\nerfolgreich zurückgesetzt.\nBitte neustarten." +#define STRING_INFO "Info" //Info Sign +#define STRING_LCD_BRIGHTNESS "LCD Helligkeit" +#define STRING_LCD_BRIGHTNESS_DIM "LCD Helligkeit (Standby)" +#define STRING_LCD_DIM_IDLE_TIMER "LCD Timer Standby" +#define STRING_5_SECONDS "5 Sek." +#define STRING_10_SECONDS "10 Sek." +#define STRING_30_SECONDS "30 Sek." +#define STRING_60_SECONDS "1 Min." +#define STRING_120_SECONDS "2 Min." +#define STRING_300_SECONDS "5 Min." +#define STRING_CUSTOM_SECONDS "Benutz." +#define STRING_SEQUENTIAL_MODE "Sequential mode" +#define STRING_ST7920_FULLSCREEN "Marlin Modus im Vollbild" +#define STRING_PLR_EN "Wiederherstellung nach Stromausfall" +#define STRING_SETTING_SAVE "Einstellungen speichern" +#define STRING_SETTING_RESET "Einstellungen zurücksetzten" +#define STRING_SETTING_RESTORE "Einstellungen wiederherstellen" +#define STRING_EEPROM_SETTINGS "EEPROM" +#define STRING_EEPROM_SAVE_INFO "Einstellungen im\nEEPROM speichern?" +#define STRING_EEPROM_RESTORE_INFO "Einstellungen aus\nEEPROM laden?" +#define STRING_EEPROM_RESET_INFO "Standardeinstellungen des Druckers wiederherstellen?" +#define STRING_RETRACT_FEEDRATE "Rückzugsgeschwindigkeit" +#define STRING_RETRACT_LENGTH "Rückzugslänge" +#define STRING_RETRACT_SWAP_LENGTH "Rückzugslänge (Wechsel)" +#define STRING_RETRACT_Z_LIFT "Z-Anhebung bei Rückzug" +#define STRING_RETRACT_AUTO "Auto-Rückzug über Firmware" +#define STRING_RECOVER_FEEDRATE "Geschw. Rückeinschub" +#define STRING_SWAP_RECOVER_FEEDRATE "Geschw. Rückeinschub (Wechsel)" +#define STRING_RECOVER_LENGTH "zus. Länge Rückeinschub" +#define STRING_SWAP_RECOVER_LENGTH "zus. Länge Rückeinschub (Wechsel)" +#define STRING_START_PRINT "Druck starten:\n %s?" +#define STRING_ACK_NOTIFICATION "ACK Benachrichtigungs-Stil" +#define STRING_LEVELING_EDGE_DISTANCE "Bettecken-Abstand" +#define STRING_XY_UNLOCK "löse XY" +#define STRING_TUNING "Justage" +#define STRING_PID "PID" +#define STRING_PID_TITLE "PID autotune" +#define STRING_PID_START_INFO "PID autotune benötigt\neinige Zeit.\nWeitermachen?" +#define STRING_PID_START_INFO_2 "PID autotune läuft!" +#define STRING_PID_START_INFO_3 "Berühren Sie den Bildschirm erst bei Fertigstellung (Grüne LED)!" +#define STRING_TUNE_EXTRUDER "Steps anp." +#define STRING_TUNE_EXT_EXTRUDE_100 "100mm ext." +#define STRING_TUNE_EXT_TEMP "Ext. Kalib. Temp." +#define STRING_TUNE_EXT_TEMPLOW "Temparatur zu niedrig!\nMinimale Temparatur: %d C" +#define STRING_TUNE_EXT_DESIREDVAL "Temparatur hat gewünschten Wert noch nicht erreicht" +#define STRING_TUNE_EXT_MARK120MM "Filament 120 mm über Einlass markieren,\ndann '%s' drücken & nach Extrusion\nerneut messen" +#define STRING_TUNE_EXT_HEATOFF "Heizung abschalten?" +#define STRING_TUNE_EXT_ADJ_ESTEPS "E-Steps einstellen" +#define STRING_TUNE_EXT_ESTEPS_SAVED "Neue E-Steps gespeichert!\nBitte auch im EEPROM speichern.\nNeuer Wert: %0.2f" +#define STRING_TUNE_EXT_MEASURED "Restliche Länge:" +#define STRING_TUNE_EXT_OLD_ESTEP "Alte E-Steps: %0.2f" +#define STRING_TUNE_EXT_NEW_ESTEP "Neue E-Steps: %0.2f" +#define STRING_CONNECTION_SETTINGS "Verbindung" +#define STRING_OFFSET_TOOL "Abstand 2te Düse" +#define STRING_HYBRID_THRESHOLD "TMC HybridThreshold" +#define STRING_NOTIFICATIONS "Benachrichtigungen" +#define STRING_MESH_EDITOR "Mesh edit." +#define STRING_MESH_TUNER "Mesh anp." +#define STRING_CASE_LIGHT "Case light" diff --git a/TFT/src/User/API/Language/language_en.h b/TFT/src/User/API/Language/language_en.h index 3881f87827..dfb693bf4c 100644 --- a/TFT/src/User/API/Language/language_en.h +++ b/TFT/src/User/API/Language/language_en.h @@ -1,279 +1,280 @@ #pragma once - #define STRING_LANGUAGE "English" - #define STRING_HEAT "Heat" - #define STRING_MOVE "Move" - #define STRING_HOME "Home" - #define STRING_DISABLE_STEPPERS "Disarm All" - #define STRING_PRINT "Print" - #define STRING_EXTRUDE "Extrude" - #define STRING_FAN "Fan" - #define STRING_SETTINGS "Settings" - #define STRING_SCREEN_SETTINGS "Screen" - #define STRING_MACHINE_SETTINGS "Machine" - #define STRING_FEATURE_SETTINGS "Feature" - #define STRING_SOUND "Sound" - #define STRING_TOUCH_SOUND "Touch sounds" - #define STRING_TOAST_SOUND "Toast Notifications" - #define STRING_ALERT_SOUND "Popups and Alerts" - #define STRING_SHUT_DOWN "Shut Down" - #define STRING_RGB_SETTINGS "LED Color" - #define STRING_RGB_OFF "LED Off" - #define STRING_TERMINAL "Terminal" - #define STRING_CUSTOM "Custom" - #define STRING_LEVELING "Leveling" - #define STRING_POINT_1 "Point 1" - #define STRING_POINT_2 "Point 2" - #define STRING_POINT_3 "Point 3" - #define STRING_POINT_4 "Point 4" - #define STRING_POINT_5 "Point 5" - #define STRING_BED_LEVELING "Bed Level" - #define STRING_BL_COMPLETE "Bed Leveling Complete" - #define STRING_BL_SMART_FILL "Missing probe points\nhave been smart filled.\n \nNote: remember to save!" - #define STRING_BL_ENABLE "BL: on" - #define STRING_BL_DISABLE "BL: off" - #define STRING_ABL "ABL" - #define STRING_BBL "BBL" - #define STRING_UBL "UBL" - #define STRING_MBL "MBL" - #define STRING_MBL_SETTINGS "Mesh Bed Leveling" - #define STRING_ABL_SETTINGS "Auto Bed Leveling" - #define STRING_ABL_SETTINGS_BBL "Bilinear Bed Leveling" - #define STRING_ABL_SETTINGS_UBL "Unified Bed Leveling" - #define STRING_ABL_SETTINGS_UBL_SAVE "Save to slot" - #define STRING_ABL_SETTINGS_UBL_LOAD "Load from slot" - #define STRING_ABL_SLOT0 "Slot 0" - #define STRING_ABL_SLOT1 "Slot 1" - #define STRING_ABL_SLOT2 "Slot 2" - #define STRING_ABL_SLOT3 "Slot 3" - #define STRING_ABL_SLOT_EEPROM "Remember slot for next\nreboot? (Save EEPROM)" - #define STRING_ABL_Z "Z Fade" - #define STRING_BLTOUCH "BLTouch" - #define STRING_BLTOUCH_TEST "Test" - #define STRING_BLTOUCH_DEPLOY "Deploy" - #define STRING_BLTOUCH_STOW "Stow" - #define STRING_BLTOUCH_REPEAT "Repeat" - #define STRING_Z_OFFSET "Z Offset" - #define STRING_PROBE_OFFSET "Probe Offset" - #define STRING_HOME_OFFSET "Home Offset" - #define STRING_CONFIRMATION "Are you sure?" - #define STRING_DOWN "Down" - #define STRING_UP "Up" - #define STRING_SAVE "Save" - #define STRING_RESTORE "Restore" - #define STRING_RESET "Reset" - #define STRING_DEFAULT "Default" - #define STRING_CLEAR "Clear" - #define STRING_NEXT "Next" - #define STRING_DISTANCE "Distance" - #define STRING_INVALID_VALUE "Invalid value(s)" - #define STRING_TIMEOUT_REACHED "Timeout reached!" - #define STRING_PROCESS_RUNNING "Process already running!" - #define STRING_PROCESS_COMPLETED "Process completed!" - #define STRING_PROCESS_ABORTED "Process aborted!" - #define STRING_INC "Increase" - #define STRING_DEC "Decrease" - #define STRING_NOZZLE "Nozzle" - #define STRING_BED "Hotbed" - #define STRING_CHAMBER "Chamber" - #define STRING_START "Start" - #define STRING_STOP "Stop" - #define STRING_BACK "Back" - #define STRING_PAGE_UP "Page up" - #define STRING_PAGE_DOWN "Page down" - #define STRING_PAUSE "Pause" - #define STRING_RESUME "Resume" - #define STRING_LOAD "Load" - #define STRING_UNLOAD "Unload" - #define STRING_SLOW_SPEED "Slow" - #define STRING_NORMAL_SPEED "Normal" - #define STRING_FAST_SPEED "Fast" - #define STRING_FAN_FULL_SPEED "Full" - #define STRING_FAN_HALF_SPEED "Half" - #define STRING_ROTATE_UI "Rotate UI" - #define STRING_TOUCHSCREEN_ADJUST "TSC Adjust" - #define STRING_MORE "More" - #define STRING_SCREEN_INFO "Info" - #define STRING_STATUS "Info" - #define STRING_SIMULATOR_BG_COLOR "Marlin simulator background color" - #define STRING_SIMULATOR_FONT_COLOR "Marlin simulator font color" - #define STRING_WHITE "White" - #define STRING_BLACK "Black" - #define STRING_BLUE "Blue" - #define STRING_RED "Red" - #define STRING_GREEN "Green" - #define STRING_CYAN "Cyan" - #define STRING_YELLOW "Yellow" - #define STRING_BROWN "Brown" - #define STRING_GRAY "Gray" - #define STRING_ORANGE "Orange" - #define STRING_INDIGO "Indigo" - #define STRING_VIOLET "Violet" - #define STRING_MAGENTA "Magenta" - #define STRING_PURPLE "Purple" - #define STRING_LIME "Lime" - #define STRING_DARKBLUE "DarkBlue" - #define STRING_DARKGREEN "DarkGreen" - #define STRING_DARKGRAY "DarkGray" - #define STRING_DISCONNECT "Disconnect" - #define STRING_BAUDRATE "BaudRate" - #define STRING_PERCENTAGE "Percentage" - #define STRING_BABYSTEP "BabyStep" - #define STRING_PERCENTAGE_SPEED "Speed" - #define STRING_PERCENTAGE_FLOW "Flow" - #define STRING_VALUE_ZERO "Zero" - #define STRING_1_DEGREE "1℃" - #define STRING_5_DEGREE "5℃" - #define STRING_10_DEGREE "10℃" - #define STRING_X_INC "X+" - #define STRING_Y_INC "Y+" - #define STRING_Z_INC "Z+" - #define STRING_X_DEC "X-" - #define STRING_Y_DEC "Y-" - #define STRING_Z_DEC "Z-" - #define STRING_X "X" - #define STRING_Y "Y" - #define STRING_Z "Z" - #define STRING_001_MM "0.01mm" - #define STRING_01_MM "0.1mm" - #define STRING_1_MM "1mm" - #define STRING_5_MM "5mm" - #define STRING_10_MM "10mm" - #define STRING_100_MM "100mm" - #define STRING_200_MM "200mm" - #define STRING_1_PERCENT "1%" - #define STRING_5_PERCENT "5%" - #define STRING_10_PERCENT "10%" - #define STRING_PERCENT_VALUE "%d%%" - #define STRING_READY "Ready" - #define STRING_BUSY "Busy processing, please wait..." - #define STRING_UNCONNECTED "No printer attached!" - #define STRING_DISCONNECT_INFO "Now you can control the printer by your computer!" - #define STRING_LOADING "Loading..." - #define STRING_POWER_FAILED "Continue printing?" //Question Sign - #define STRING_CONTINUE "Continue" - #define STRING_CANCEL "\u088F Cancel" //Cancel Sign - #define STRING_ADJUST_TITLE "Touch Screen Calibration" - #define STRING_ADJUST_INFO "Please click on the red dot" - #define STRING_ADJUST_OK "Adjustment Success" - #define STRING_ADJUST_FAILED "Adjustment failed, Please Try Again" - #define STRING_WARNING "Warning" //Exclamation Sign - #define STRING_STOP_PRINT "Stop printing?" - #define STRING_CONFIRM "\u088E OK" //Confirm Sign - #define STRING_TFTSD "TFT SD" - #define STRING_READ_TFTSD_ERROR "Read TFT SD card error!" - #define STRING_TFTSD_INSERTED "Card inserted!" - #define STRING_TFTSD_REMOVED "Card removed!" - #define STRING_U_DISK "U Disk" - #define STRING_READ_U_DISK_ERROR "Read U Disk error!" - #define STRING_U_DISK_INSERTED "U Disk inserted!" - #define STRING_U_DISK_REMOVED "U Disk removed!" - #define STRING_ONBOARDSD "OnboardSD" - #define STRING_READ_ONBOARDSD_ERROR "Read Onboard SD card error!" - #define STRING_FILAMENT_SENSOR "Filament sensor" - #define STRING_FILAMENT_RUNOUT "filament runout!" - #define STRING_PREHEAT "Preheat" - #define STRING_PREHEAT_BOTH "Both" - #define STRING_IS_PAUSE "Unable to extrude when\nprinting.\nPause printing?" - #define STRING_AUTO_SHUT_DOWN "Auto Power" - #define STRING_UNIFIEDMOVE "Movement" - #define STRING_UNIFIEDHEAT "Heat/Fan" - #define STRING_COOLDOWN "Cool Down" - #define STRING_EMERGENCYSTOP "EM. STOP" - #define STRING_TOUCH_TO_EXIT "Touch anywhere to exit" - #define STRING_MAINMENU "Menu" - #define STRING_WAIT_TEMP_SHUT_DOWN "Wait for the hotend\ntemperature to be\nlower than %d ℃" - #define STRING_FORCE_SHUT_DOWN "Force" - #define STRING_SHUTTING_DOWN "Shutting down..." - #define STRING_PARAMETER_SETTING "Parameter Settings" - #define STRING_ON "ON" - #define STRING_OFF "OFF" - #define STRING_SMART "SMART" - #define STRING_TERMINAL_ACK "Show ACK in Terminal" - #define STRING_INVERT_XAXIS "Invert X Axis" - #define STRING_INVERT_YAXIS "Invert Y Axis" - #define STRING_INVERT_ZAXIS "Invert Z Axis" - #define STRING_MOVE_SPEED "Move speed(X Y Z)" - #define STRING_KNOB_LED "Rotary Knob LED" - #define STRING_KNOB_LED_IDLE "Rotary Knob LED idle" - #define STRING_M0_PAUSE "Paused by M0 command" - #define STRING_SEND_START_GCODE "Start Gcode before print" - #define STRING_SEND_END_GCODE "End Gcode after print" - #define STRING_SEND_CANCEL_GCODE "Cancel Gcode" - #define STRING_PERSISTENT_STATUS_INFO "Persistent Status Info" - #define STRING_FILE_LISTMODE "Files viewer List Mode" - #define STRING_CURRENT_SETTING "Driver Current (mA)" - #define STRING_STEPS_SETTING "Steps per mm" - #define STRING_MAXFEEDRATE "Max Feed Rate" - #define STRING_MAXACCELERATION "Max Acceleration" - #define STRING_ACCELERATION "Acceleration" - #define STRING_PRINT_ACCELERATION "Print Acceleration" - #define STRING_RETRACT_ACCELERATION "Retract Acceleration" - #define STRING_TRAVEL_ACCELERATION "Travel Acceleration" - #define STRING_JERK "Jerk" - #define STRING_JUNCTION_DEVIATION "Junction Deviation" - #define STRING_BUMP_SENSITIVITY "TMC bump sensitivity" - #define STRING_FWRETRACT "FW Retraction" - #define STRING_FWRECOVER "FW Retraction Recover" - #define STRING_LIN_ADVANCE "Linear Advance" - #define STRING_RESET_SETTINGS_INFO "Reset all settings to\ndefault values?" - #define STRING_RESET_SETTINGS_DONE "Reset all settings\nsuccessful.\nplease restart the device." - #define STRING_INFO "Info" //Info Sign - #define STRING_LCD_BRIGHTNESS "LCD Brightness" - #define STRING_LCD_BRIGHTNESS_DIM "LCD Brightness dim" - #define STRING_LCD_DIM_IDLE_TIMER "LCD dim idle timer" - #define STRING_5_SECONDS "5 Sec." - #define STRING_10_SECONDS "10 Sec." - #define STRING_30_SECONDS "30 Sec." - #define STRING_60_SECONDS "1 Min." - #define STRING_120_SECONDS "2 Min." - #define STRING_300_SECONDS "5 Min." - #define STRING_CUSTOM_SECONDS "Custom" - #define STRING_SEQUENTIAL_MODE "Sequential mode" - #define STRING_ST7920_FULLSCREEN "Marlin mode in fullscreen" - #define STRING_PLR_EN "Power loss recovery" - #define STRING_SETTING_SAVE "Save settings" - #define STRING_SETTING_RESET "Reset default settings" - #define STRING_SETTING_RESTORE "Restore settings" - #define STRING_EEPROM_SETTINGS "EEPROM" - #define STRING_EEPROM_SAVE_INFO "Save printer settings\nto EEPROM?" - #define STRING_EEPROM_RESTORE_INFO "Reload settings from\nEEPROM?" - #define STRING_EEPROM_RESET_INFO "Reset EEPROM to stock printer settings?" - #define STRING_RETRACT_FEEDRATE "Retract feedrate" - #define STRING_RETRACT_LENGTH "Retract length" - #define STRING_RETRACT_SWAP_LENGTH "Retract swap length" - #define STRING_RETRACT_Z_LIFT "Z lift on retraction" - #define STRING_RETRACT_AUTO "Auto Firmware Retract" - #define STRING_RECOVER_FEEDRATE "Recover feedrate" - #define STRING_SWAP_RECOVER_FEEDRATE "Swap recover feedrate" - #define STRING_RECOVER_LENGTH "Extra recover length" - #define STRING_SWAP_RECOVER_LENGTH "Extra recover swap length" - #define STRING_START_PRINT "Start Printing:\n %s?" - #define STRING_ACK_NOTIFICATION "ACK notification style" - #define STRING_LEVELING_EDGE_DISTANCE "Bed edge distance" - #define STRING_XY_UNLOCK "Disarm XY" - #define STRING_TUNING "Tuning" - #define STRING_PID "PID" - #define STRING_PID_TITLE "PID autotune" - #define STRING_PID_START_INFO "PID autotune may take\nsome time to complete.\nContinue?" - #define STRING_PID_START_INFO_2 "PID autotune in progress!" - #define STRING_PID_START_INFO_3 "Do not touch the screen until completed (green LED ON)!" - #define STRING_TUNE_EXTRUDER "Tune steps" - #define STRING_TUNE_EXT_EXTRUDE_100 "Ext. 100mm" - #define STRING_TUNE_EXT_TEMP "Extruder tuning | Heat" - #define STRING_TUNE_EXT_TEMPLOW "Desired temperature too low!\nMinimum temperature: %d C" - #define STRING_TUNE_EXT_DESIREDVAL "Temperature is not yet at the desired value" - #define STRING_TUNE_EXT_MARK120MM "Mark 120 mm on your fillament\nPress '%s' when ready\nMeasure remaining length\nafter extruding" - #define STRING_TUNE_EXT_HEATOFF "Turn the heater off?" - #define STRING_TUNE_EXT_ADJ_ESTEPS "Adjust E-Steps" - #define STRING_TUNE_EXT_ESTEPS_SAVED "New E-steps saved!\nDon't forget to\nsave it in EEPROM\nNew value: %0.2f" - #define STRING_TUNE_EXT_MEASURED "Length remaining:" - #define STRING_TUNE_EXT_OLD_ESTEP "Old e-steps: %0.2f" - #define STRING_TUNE_EXT_NEW_ESTEP "New e-steps: %0.2f" - #define STRING_CONNECTION_SETTINGS "Connection" - #define STRING_OFFSET_TOOL "Offset 2nd Nozzle" - #define STRING_HYBRID_THRESHOLD "TMC HybridThreshold" - #define STRING_NOTIFICATIONS "Notifications" - #define STRING_MESH_EDITOR "Mesh edit" - #define STRING_MESH_TUNER "Mesh tuner" - #define STRING_CASE_LIGHT "Case light" +#define STRING_LANGUAGE "English" +#define STRING_HEAT "Heat" +#define STRING_MOVE "Move" +#define STRING_HOME "Home" +#define STRING_DISABLE_STEPPERS "Disarm All" +#define STRING_PRINT "Print" +#define STRING_EXTRUDE "Extrude" +#define STRING_FAN "Fan" +#define STRING_SETTINGS "Settings" +#define STRING_SCREEN_SETTINGS "Screen" +#define STRING_MACHINE_SETTINGS "Machine" +#define STRING_FEATURE_SETTINGS "Feature" +#define STRING_SOUND "Sound" +#define STRING_TOUCH_SOUND "Touch sounds" +#define STRING_TOAST_SOUND "Toast Notifications" +#define STRING_ALERT_SOUND "Popups and Alerts" +#define STRING_PREHEATDONE_SOUND "Preheat done notification" +#define STRING_SHUT_DOWN "Shut Down" +#define STRING_RGB_SETTINGS "LED Color" +#define STRING_RGB_OFF "LED Off" +#define STRING_TERMINAL "Terminal" +#define STRING_CUSTOM "Custom" +#define STRING_LEVELING "Leveling" +#define STRING_POINT_1 "Point 1" +#define STRING_POINT_2 "Point 2" +#define STRING_POINT_3 "Point 3" +#define STRING_POINT_4 "Point 4" +#define STRING_POINT_5 "Point 5" +#define STRING_BED_LEVELING "Bed Level" +#define STRING_BL_COMPLETE "Bed Leveling Complete" +#define STRING_BL_SMART_FILL "Missing probe points\nhave been smart filled.\n \nNote: remember to save!" +#define STRING_BL_ENABLE "BL: on" +#define STRING_BL_DISABLE "BL: off" +#define STRING_ABL "ABL" +#define STRING_BBL "BBL" +#define STRING_UBL "UBL" +#define STRING_MBL "MBL" +#define STRING_MBL_SETTINGS "Mesh Bed Leveling" +#define STRING_ABL_SETTINGS "Auto Bed Leveling" +#define STRING_ABL_SETTINGS_BBL "Bilinear Bed Leveling" +#define STRING_ABL_SETTINGS_UBL "Unified Bed Leveling" +#define STRING_ABL_SETTINGS_UBL_SAVE "Save to slot" +#define STRING_ABL_SETTINGS_UBL_LOAD "Load from slot" +#define STRING_ABL_SLOT0 "Slot 0" +#define STRING_ABL_SLOT1 "Slot 1" +#define STRING_ABL_SLOT2 "Slot 2" +#define STRING_ABL_SLOT3 "Slot 3" +#define STRING_ABL_SLOT_EEPROM "Remember slot for next\nreboot? (Save EEPROM)" +#define STRING_ABL_Z "Z Fade" +#define STRING_BLTOUCH "BLTouch" +#define STRING_BLTOUCH_TEST "Test" +#define STRING_BLTOUCH_DEPLOY "Deploy" +#define STRING_BLTOUCH_STOW "Stow" +#define STRING_BLTOUCH_REPEAT "Repeat" +#define STRING_Z_OFFSET "Z Offset" +#define STRING_PROBE_OFFSET "Probe Offset" +#define STRING_HOME_OFFSET "Home Offset" +#define STRING_CONFIRMATION "Are you sure?" +#define STRING_DOWN "Down" +#define STRING_UP "Up" +#define STRING_SAVE "Save" +#define STRING_RESTORE "Restore" +#define STRING_RESET "Reset" +#define STRING_DEFAULT "Default" +#define STRING_CLEAR "Clear" +#define STRING_NEXT "Next" +#define STRING_DISTANCE "Distance" +#define STRING_INVALID_VALUE "Invalid value(s)" +#define STRING_TIMEOUT_REACHED "Timeout reached!" +#define STRING_PROCESS_RUNNING "Process already running!" +#define STRING_PROCESS_COMPLETED "Process completed!" +#define STRING_PROCESS_ABORTED "Process aborted!" +#define STRING_INC "Increase" +#define STRING_DEC "Decrease" +#define STRING_NOZZLE "Nozzle" +#define STRING_BED "Hotbed" +#define STRING_CHAMBER "Chamber" +#define STRING_START "Start" +#define STRING_STOP "Stop" +#define STRING_BACK "Back" +#define STRING_PAGE_UP "Page up" +#define STRING_PAGE_DOWN "Page down" +#define STRING_PAUSE "Pause" +#define STRING_RESUME "Resume" +#define STRING_LOAD "Load" +#define STRING_UNLOAD "Unload" +#define STRING_SLOW_SPEED "Slow" +#define STRING_NORMAL_SPEED "Normal" +#define STRING_FAST_SPEED "Fast" +#define STRING_FAN_FULL_SPEED "Full" +#define STRING_FAN_HALF_SPEED "Half" +#define STRING_ROTATE_UI "Rotate UI" +#define STRING_TOUCHSCREEN_ADJUST "TSC Adjust" +#define STRING_MORE "More" +#define STRING_SCREEN_INFO "Info" +#define STRING_STATUS "Info" +#define STRING_SIMULATOR_BG_COLOR "Marlin simulator background color" +#define STRING_SIMULATOR_FONT_COLOR "Marlin simulator font color" +#define STRING_WHITE "White" +#define STRING_BLACK "Black" +#define STRING_BLUE "Blue" +#define STRING_RED "Red" +#define STRING_GREEN "Green" +#define STRING_CYAN "Cyan" +#define STRING_YELLOW "Yellow" +#define STRING_BROWN "Brown" +#define STRING_GRAY "Gray" +#define STRING_ORANGE "Orange" +#define STRING_INDIGO "Indigo" +#define STRING_VIOLET "Violet" +#define STRING_MAGENTA "Magenta" +#define STRING_PURPLE "Purple" +#define STRING_LIME "Lime" +#define STRING_DARKBLUE "DarkBlue" +#define STRING_DARKGREEN "DarkGreen" +#define STRING_DARKGRAY "DarkGray" +#define STRING_DISCONNECT "Disconnect" +#define STRING_BAUDRATE "BaudRate" +#define STRING_PERCENTAGE "Percentage" +#define STRING_BABYSTEP "BabyStep" +#define STRING_PERCENTAGE_SPEED "Speed" +#define STRING_PERCENTAGE_FLOW "Flow" +#define STRING_VALUE_ZERO "Zero" +#define STRING_1_DEGREE "1℃" +#define STRING_5_DEGREE "5℃" +#define STRING_10_DEGREE "10℃" +#define STRING_X_INC "X+" +#define STRING_Y_INC "Y+" +#define STRING_Z_INC "Z+" +#define STRING_X_DEC "X-" +#define STRING_Y_DEC "Y-" +#define STRING_Z_DEC "Z-" +#define STRING_X "X" +#define STRING_Y "Y" +#define STRING_Z "Z" +#define STRING_001_MM "0.01mm" +#define STRING_01_MM "0.1mm" +#define STRING_1_MM "1mm" +#define STRING_5_MM "5mm" +#define STRING_10_MM "10mm" +#define STRING_100_MM "100mm" +#define STRING_200_MM "200mm" +#define STRING_1_PERCENT "1%" +#define STRING_5_PERCENT "5%" +#define STRING_10_PERCENT "10%" +#define STRING_PERCENT_VALUE "%d%%" +#define STRING_READY "Ready" +#define STRING_BUSY "Busy processing, please wait..." +#define STRING_UNCONNECTED "No printer attached!" +#define STRING_DISCONNECT_INFO "Now you can control the printer by your computer!" +#define STRING_LOADING "Loading..." +#define STRING_POWER_FAILED "Continue printing?" //Question Sign +#define STRING_CONTINUE "Continue" +#define STRING_CANCEL "\u088F Cancel" //Cancel Sign +#define STRING_ADJUST_TITLE "Touch Screen Calibration" +#define STRING_ADJUST_INFO "Please click on the red dot" +#define STRING_ADJUST_OK "Adjustment Success" +#define STRING_ADJUST_FAILED "Adjustment failed, Please Try Again" +#define STRING_WARNING "Warning" //Exclamation Sign +#define STRING_STOP_PRINT "Stop printing?" +#define STRING_CONFIRM "\u088E OK" //Confirm Sign +#define STRING_TFTSD "TFT SD" +#define STRING_READ_TFTSD_ERROR "Read TFT SD card error!" +#define STRING_TFTSD_INSERTED "Card inserted!" +#define STRING_TFTSD_REMOVED "Card removed!" +#define STRING_U_DISK "U Disk" +#define STRING_READ_U_DISK_ERROR "Read U Disk error!" +#define STRING_U_DISK_INSERTED "U Disk inserted!" +#define STRING_U_DISK_REMOVED "U Disk removed!" +#define STRING_ONBOARDSD "OnboardSD" +#define STRING_READ_ONBOARDSD_ERROR "Read Onboard SD card error!" +#define STRING_FILAMENT_SENSOR "Filament sensor" +#define STRING_FILAMENT_RUNOUT "filament runout!" +#define STRING_PREHEAT "Preheat" +#define STRING_PREHEAT_BOTH "Both" +#define STRING_IS_PAUSE "Unable to extrude when\nprinting.\nPause printing?" +#define STRING_AUTO_SHUT_DOWN "Auto Power" +#define STRING_UNIFIEDMOVE "Movement" +#define STRING_UNIFIEDHEAT "Heat/Fan" +#define STRING_COOLDOWN "Cool Down" +#define STRING_EMERGENCYSTOP "EM. STOP" +#define STRING_TOUCH_TO_EXIT "Touch anywhere to exit" +#define STRING_MAINMENU "Menu" +#define STRING_WAIT_TEMP_SHUT_DOWN "Wait for the hotend\ntemperature to be\nlower than %d ℃" +#define STRING_FORCE_SHUT_DOWN "Force" +#define STRING_SHUTTING_DOWN "Shutting down..." +#define STRING_PARAMETER_SETTING "Parameter Settings" +#define STRING_ON "ON" +#define STRING_OFF "OFF" +#define STRING_SMART "SMART" +#define STRING_TERMINAL_ACK "Show ACK in Terminal" +#define STRING_INVERT_XAXIS "Invert X Axis" +#define STRING_INVERT_YAXIS "Invert Y Axis" +#define STRING_INVERT_ZAXIS "Invert Z Axis" +#define STRING_MOVE_SPEED "Move speed(X Y Z)" +#define STRING_KNOB_LED "Rotary Knob LED" +#define STRING_KNOB_LED_IDLE "Rotary Knob LED idle" +#define STRING_M0_PAUSE "Paused by M0 command" +#define STRING_SEND_START_GCODE "Start Gcode before print" +#define STRING_SEND_END_GCODE "End Gcode after print" +#define STRING_SEND_CANCEL_GCODE "Cancel Gcode" +#define STRING_PERSISTENT_STATUS_INFO "Persistent Status Info" +#define STRING_FILE_LISTMODE "Files viewer List Mode" +#define STRING_CURRENT_SETTING "Driver Current (mA)" +#define STRING_STEPS_SETTING "Steps per mm" +#define STRING_MAXFEEDRATE "Max Feed Rate" +#define STRING_MAXACCELERATION "Max Acceleration" +#define STRING_ACCELERATION "Acceleration" +#define STRING_PRINT_ACCELERATION "Print Acceleration" +#define STRING_RETRACT_ACCELERATION "Retract Acceleration" +#define STRING_TRAVEL_ACCELERATION "Travel Acceleration" +#define STRING_JERK "Jerk" +#define STRING_JUNCTION_DEVIATION "Junction Deviation" +#define STRING_BUMP_SENSITIVITY "TMC bump sensitivity" +#define STRING_FWRETRACT "FW Retraction" +#define STRING_FWRECOVER "FW Retraction Recover" +#define STRING_LIN_ADVANCE "Linear Advance" +#define STRING_RESET_SETTINGS_INFO "Reset all settings to\ndefault values?" +#define STRING_RESET_SETTINGS_DONE "Reset all settings\nsuccessful.\nplease restart the device." +#define STRING_INFO "Info" //Info Sign +#define STRING_LCD_BRIGHTNESS "LCD Brightness" +#define STRING_LCD_BRIGHTNESS_DIM "LCD Brightness dim" +#define STRING_LCD_DIM_IDLE_TIMER "LCD dim idle timer" +#define STRING_5_SECONDS "5 Sec." +#define STRING_10_SECONDS "10 Sec." +#define STRING_30_SECONDS "30 Sec." +#define STRING_60_SECONDS "1 Min." +#define STRING_120_SECONDS "2 Min." +#define STRING_300_SECONDS "5 Min." +#define STRING_CUSTOM_SECONDS "Custom" +#define STRING_SEQUENTIAL_MODE "Sequential mode" +#define STRING_ST7920_FULLSCREEN "Marlin mode in fullscreen" +#define STRING_PLR_EN "Power loss recovery" +#define STRING_SETTING_SAVE "Save settings" +#define STRING_SETTING_RESET "Reset default settings" +#define STRING_SETTING_RESTORE "Restore settings" +#define STRING_EEPROM_SETTINGS "EEPROM" +#define STRING_EEPROM_SAVE_INFO "Save printer settings\nto EEPROM?" +#define STRING_EEPROM_RESTORE_INFO "Reload settings from\nEEPROM?" +#define STRING_EEPROM_RESET_INFO "Reset EEPROM to stock printer settings?" +#define STRING_RETRACT_FEEDRATE "Retract feedrate" +#define STRING_RETRACT_LENGTH "Retract length" +#define STRING_RETRACT_SWAP_LENGTH "Retract swap length" +#define STRING_RETRACT_Z_LIFT "Z lift on retraction" +#define STRING_RETRACT_AUTO "Auto Firmware Retract" +#define STRING_RECOVER_FEEDRATE "Recover feedrate" +#define STRING_SWAP_RECOVER_FEEDRATE "Swap recover feedrate" +#define STRING_RECOVER_LENGTH "Extra recover length" +#define STRING_SWAP_RECOVER_LENGTH "Extra recover swap length" +#define STRING_START_PRINT "Start Printing:\n %s?" +#define STRING_ACK_NOTIFICATION "ACK notification style" +#define STRING_LEVELING_EDGE_DISTANCE "Bed edge distance" +#define STRING_XY_UNLOCK "Disarm XY" +#define STRING_TUNING "Tuning" +#define STRING_PID "PID" +#define STRING_PID_TITLE "PID autotune" +#define STRING_PID_START_INFO "PID autotune may take\nsome time to complete.\nContinue?" +#define STRING_PID_START_INFO_2 "PID autotune in progress!" +#define STRING_PID_START_INFO_3 "Do not touch the screen until completed (green LED ON)!" +#define STRING_TUNE_EXTRUDER "Tune steps" +#define STRING_TUNE_EXT_EXTRUDE_100 "Ext. 100mm" +#define STRING_TUNE_EXT_TEMP "Extruder tuning | Heat" +#define STRING_TUNE_EXT_TEMPLOW "Desired temperature too low!\nMinimum temperature: %d C" +#define STRING_TUNE_EXT_DESIREDVAL "Temperature is not yet at the desired value" +#define STRING_TUNE_EXT_MARK120MM "Mark 120 mm on your fillament\nPress '%s' when ready\nMeasure remaining length\nafter extruding" +#define STRING_TUNE_EXT_HEATOFF "Turn the heater off?" +#define STRING_TUNE_EXT_ADJ_ESTEPS "Adjust E-Steps" +#define STRING_TUNE_EXT_ESTEPS_SAVED "New E-steps saved!\nDon't forget to\nsave it in EEPROM\nNew value: %0.2f" +#define STRING_TUNE_EXT_MEASURED "Length remaining:" +#define STRING_TUNE_EXT_OLD_ESTEP "Old e-steps: %0.2f" +#define STRING_TUNE_EXT_NEW_ESTEP "New e-steps: %0.2f" +#define STRING_CONNECTION_SETTINGS "Connection" +#define STRING_OFFSET_TOOL "Offset 2nd Nozzle" +#define STRING_HYBRID_THRESHOLD "TMC HybridThreshold" +#define STRING_NOTIFICATIONS "Notifications" +#define STRING_MESH_EDITOR "Mesh edit" +#define STRING_MESH_TUNER "Mesh tuner" +#define STRING_CASE_LIGHT "Case light" diff --git a/TFT/src/User/API/Language/language_es.h b/TFT/src/User/API/Language/language_es.h index 6d7ac17307..a6a189ae3a 100644 --- a/TFT/src/User/API/Language/language_es.h +++ b/TFT/src/User/API/Language/language_es.h @@ -1,279 +1,280 @@ #pragma once - #define STRING_LANGUAGE "Español" - #define STRING_HEAT "Calentar" - #define STRING_MOVE "Mover" - #define STRING_HOME "Origen" - #define STRING_DISABLE_STEPPERS "Disarm All" - #define STRING_PRINT "Imprimir" - #define STRING_EXTRUDE "Extruir" - #define STRING_FAN "Ventilar" - #define STRING_SETTINGS "Configurar" - #define STRING_SCREEN_SETTINGS "Pantalla" - #define STRING_MACHINE_SETTINGS "Máquina" - #define STRING_FEATURE_SETTINGS "Añadidos" - #define STRING_SOUND "Sound" - #define STRING_TOUCH_SOUND "Touch sounds" - #define STRING_TOAST_SOUND "Toast Notifications" - #define STRING_ALERT_SOUND "Popups and Alerts" - #define STRING_SHUT_DOWN "Apagar" - #define STRING_RGB_SETTINGS "Color LED" - #define STRING_RGB_OFF "Apagar LED" - #define STRING_TERMINAL "Terminal" - #define STRING_CUSTOM "Personalizar" - #define STRING_LEVELING "Nivelar" - #define STRING_POINT_1 "Punto 1" - #define STRING_POINT_2 "Punto 2" - #define STRING_POINT_3 "Punto 3" - #define STRING_POINT_4 "Punto 4" - #define STRING_POINT_5 "Punto 5" - #define STRING_BED_LEVELING "Bed Level" - #define STRING_BL_COMPLETE "Bed Leveling Complete" - #define STRING_BL_SMART_FILL "Missing probe points\nhave been smart filled.\n \nNote: remember to save!" - #define STRING_BL_ENABLE "BL: on" - #define STRING_BL_DISABLE "BL: off" - #define STRING_ABL "ABL" - #define STRING_BBL "BBL" - #define STRING_UBL "UBL" - #define STRING_MBL "MBL" - #define STRING_MBL_SETTINGS "Mesh Bed Leveling" - #define STRING_ABL_SETTINGS "Auto Bed Leveling" - #define STRING_ABL_SETTINGS_BBL "Bilinear Bed Leveling" - #define STRING_ABL_SETTINGS_UBL "Unified Bed Leveling" - #define STRING_ABL_SETTINGS_UBL_SAVE "Save to slot" - #define STRING_ABL_SETTINGS_UBL_LOAD "Load from slot" - #define STRING_ABL_SLOT0 "Slot 0" - #define STRING_ABL_SLOT1 "Slot 1" - #define STRING_ABL_SLOT2 "Slot 2" - #define STRING_ABL_SLOT3 "Slot 3" - #define STRING_ABL_SLOT_EEPROM "Remember slot for next\nreboot? (Save EEPROM)" - #define STRING_ABL_Z "Z Fade" - #define STRING_BLTOUCH "BLTouch" - #define STRING_BLTOUCH_TEST "Probar" - #define STRING_BLTOUCH_DEPLOY "Desplegar" - #define STRING_BLTOUCH_STOW "Plegar" - #define STRING_BLTOUCH_REPEAT "Repetir" - #define STRING_Z_OFFSET "Z Offset" - #define STRING_PROBE_OFFSET "Sonda Compensar" - #define STRING_HOME_OFFSET "Home Offset" - #define STRING_CONFIRMATION "Are you sure?" - #define STRING_DOWN "Down" - #define STRING_UP "Up" - #define STRING_SAVE "Grabar" - #define STRING_RESTORE "Restore" - #define STRING_RESET "Reset" - #define STRING_DEFAULT "Default" - #define STRING_CLEAR "Clear" - #define STRING_NEXT "Next" - #define STRING_DISTANCE "Distance" - #define STRING_INVALID_VALUE "Invalid value(s)" - #define STRING_TIMEOUT_REACHED "Timeout reached!" - #define STRING_PROCESS_RUNNING "Process already running!" - #define STRING_PROCESS_COMPLETED "Process completed!" - #define STRING_PROCESS_ABORTED "Process aborted!" - #define STRING_INC "Aumentar" - #define STRING_DEC "Disminur" - #define STRING_NOZZLE "Punta" - #define STRING_BED "Cama" - #define STRING_CHAMBER "Chamber" - #define STRING_START "Start" - #define STRING_STOP "Parar" - #define STRING_BACK "Volver" - #define STRING_PAGE_UP "Retroceder" - #define STRING_PAGE_DOWN "Avanzar" - #define STRING_PAUSE "Pausar" - #define STRING_RESUME "Continuar" - #define STRING_LOAD "Cargar" - #define STRING_UNLOAD "Descargar" - #define STRING_SLOW_SPEED "Despacio" - #define STRING_NORMAL_SPEED "Normal" - #define STRING_FAST_SPEED "Rápido" - #define STRING_FAN_FULL_SPEED "Todo" - #define STRING_FAN_HALF_SPEED "Mitad" - #define STRING_ROTATE_UI "Rotar" - #define STRING_TOUCHSCREEN_ADJUST "Calibrar" - #define STRING_MORE "Más" - #define STRING_SCREEN_INFO "Informar" - #define STRING_STATUS "Status" - #define STRING_SIMULATOR_BG_COLOR "Marlin simulator background color" - #define STRING_SIMULATOR_FONT_COLOR "Marlin simulator font color" - #define STRING_WHITE "Blanco" - #define STRING_BLACK "Negro" - #define STRING_BLUE "Azul" - #define STRING_RED "Rojo" - #define STRING_GREEN "Verde" - #define STRING_CYAN "Cyan" - #define STRING_YELLOW "Amarillo" - #define STRING_BROWN "Marrón" - #define STRING_GRAY "Gris" - #define STRING_ORANGE "Orange" - #define STRING_INDIGO "Indigo" - #define STRING_VIOLET "Violet" - #define STRING_MAGENTA "Magenta" - #define STRING_PURPLE "Purple" - #define STRING_LIME "Lime" - #define STRING_DARKBLUE "DarkBlue" - #define STRING_DARKGREEN "DarkGreen" - #define STRING_DARKGRAY "DarkGray" - #define STRING_DISCONNECT "Desconectar" - #define STRING_BAUDRATE "BaudRate" - #define STRING_PERCENTAGE "Porcentaje" - #define STRING_BABYSTEP "BabyStep" - #define STRING_PERCENTAGE_SPEED "Velocidad" - #define STRING_PERCENTAGE_FLOW "Flujo" - #define STRING_VALUE_ZERO "Cero" - #define STRING_1_DEGREE "1℃" - #define STRING_5_DEGREE "5℃" - #define STRING_10_DEGREE "10℃" - #define STRING_X_INC "+X" - #define STRING_Y_INC "+Y" - #define STRING_Z_INC "+Z" - #define STRING_X_DEC "-X" - #define STRING_Y_DEC "-Y" - #define STRING_Z_DEC "-Z" - #define STRING_X "X" - #define STRING_Y "Y" - #define STRING_Z "Z" - #define STRING_001_MM "0.01mm" - #define STRING_01_MM "0.1mm" - #define STRING_1_MM "1mm" - #define STRING_5_MM "5mm" - #define STRING_10_MM "10mm" - #define STRING_100_MM "100mm" - #define STRING_200_MM "200mm" - #define STRING_1_PERCENT "1%" - #define STRING_5_PERCENT "5%" - #define STRING_10_PERCENT "10%" - #define STRING_PERCENT_VALUE "%d%%" - #define STRING_READY "Preparado" - #define STRING_BUSY "Procesamiento ocupado, por favor espere..." - #define STRING_UNCONNECTED "¡No hay comunicación con impresora!" - #define STRING_DISCONNECT_INFO "¡Ahora puede controlar la impresora desde su ordenador!" - #define STRING_LOADING "Cargando..." - #define STRING_POWER_FAILED "¿Continuar imprimiendo?" - #define STRING_CONTINUE "Continuar" - #define STRING_CANCEL "Cancelar" - #define STRING_ADJUST_TITLE "¡Calibrar la pantalla táctil" - #define STRING_ADJUST_INFO "Por favor haga clic en el punto rojo" - #define STRING_ADJUST_OK "Ajuste correcto" - #define STRING_ADJUST_FAILED "Ajuste fallido, por favor intentelo de nuevo" - #define STRING_WARNING "Advertencia" - #define STRING_STOP_PRINT "¿Desea parar la impresión?" - #define STRING_CONFIRM "Confirmar" - #define STRING_TFTSD "SD TFT" - #define STRING_READ_TFTSD_ERROR "¡Error en la tarjeta SD TFT!" - #define STRING_TFTSD_INSERTED "¡Tarjeta insertada!" - #define STRING_TFTSD_REMOVED "¡Tarjeta extraida!" - #define STRING_U_DISK "Pendrive" - #define STRING_READ_U_DISK_ERROR "¡Error en el Pendrive!" - #define STRING_U_DISK_INSERTED "¡Pendrive insertado!" - #define STRING_U_DISK_REMOVED "¡Pendrive extraido!" - #define STRING_ONBOARDSD "SD Placa" - #define STRING_READ_ONBOARDSD_ERROR "¡Error en la tarjeta SD de la placa!" - #define STRING_FILAMENT_SENSOR "Filament sensor" - #define STRING_FILAMENT_RUNOUT "¡Filamento agotado!" - #define STRING_PREHEAT "Precalentar" - #define STRING_PREHEAT_BOTH "Ambos" - #define STRING_IS_PAUSE "No se puede extruir\nal imprimir,¿\nPausar la impresión?" - #define STRING_AUTO_SHUT_DOWN "Apag. aut." - #define STRING_UNIFIEDMOVE "Movimiento" - #define STRING_UNIFIEDHEAT "Calor/Ventilador" - #define STRING_COOLDOWN "Enfriarse" - #define STRING_EMERGENCYSTOP "PARADA EMERGENCIA" - #define STRING_TOUCH_TO_EXIT "Toca cualquier lugar para salir" - #define STRING_MAINMENU "Menu" - #define STRING_WAIT_TEMP_SHUT_DOWN "Espere a que la\ntemperatura del hotend\nsea inferior a %d℃" // Wait for the temperature of hotend to be lower than 50℃ - #define STRING_FORCE_SHUT_DOWN "Forzar Apagado" - #define STRING_SHUTTING_DOWN "Apagando..." - #define STRING_PARAMETER_SETTING "Parámetro" - #define STRING_ON "ON" - #define STRING_OFF "OFF" - #define STRING_SMART "SMART" - #define STRING_TERMINAL_ACK "Show ACK in Terminal" - #define STRING_INVERT_XAXIS "Invert X Axis" - #define STRING_INVERT_YAXIS "Invert Y Axis" - #define STRING_INVERT_ZAXIS "Invert Z Axis" - #define STRING_MOVE_SPEED "Move speed(X Y Z)" - #define STRING_KNOB_LED "Rotary Knob LED" - #define STRING_KNOB_LED_IDLE "Rotary Knob LED idle" - #define STRING_M0_PAUSE "Paused by M0 command" - #define STRING_SEND_START_GCODE "Start Gcode before print" - #define STRING_SEND_END_GCODE "End Gcode after print" - #define STRING_SEND_CANCEL_GCODE "Cancel Gcode" - #define STRING_PERSISTENT_STATUS_INFO "Persistent Status Info" - #define STRING_FILE_LISTMODE "Files viewer List Mode" - #define STRING_CURRENT_SETTING "Driver Current (mA)" - #define STRING_STEPS_SETTING "Steps per mm" - #define STRING_MAXFEEDRATE "Max Feed Rate" - #define STRING_MAXACCELERATION "Max Acceleration" - #define STRING_ACCELERATION "Acceleration" - #define STRING_PRINT_ACCELERATION "Print Acceleration" - #define STRING_RETRACT_ACCELERATION "Retract Acceleration" - #define STRING_TRAVEL_ACCELERATION "Travel Acceleration" - #define STRING_JERK "Jerk" - #define STRING_JUNCTION_DEVIATION "Junction Deviation" - #define STRING_BUMP_SENSITIVITY "TMC bump sensitivity" - #define STRING_FWRETRACT "FW Retraction" - #define STRING_FWRECOVER "FW Retraction Recover" - #define STRING_LIN_ADVANCE "Linear Advance" - #define STRING_RESET_SETTINGS_INFO "Reset all settings to\ndefault values?" - #define STRING_RESET_SETTINGS_DONE "Reset all settings\nsuccessful.\nplease restart the device." - #define STRING_INFO "Info" - #define STRING_LCD_BRIGHTNESS "LCD Brightness" - #define STRING_LCD_BRIGHTNESS_DIM "LCD Brightness dim" - #define STRING_LCD_DIM_IDLE_TIMER "LCD dim idle timer" - #define STRING_5_SECONDS "5 Sec." - #define STRING_10_SECONDS "10 Sec." - #define STRING_30_SECONDS "30 Sec." - #define STRING_60_SECONDS "1 Min." - #define STRING_120_SECONDS "2 Min." - #define STRING_300_SECONDS "5 Min." - #define STRING_CUSTOM_SECONDS "Custom" - #define STRING_SEQUENTIAL_MODE "Sequential mode" - #define STRING_ST7920_FULLSCREEN "Marlin mode in fullscreen" - #define STRING_PLR_EN "Power loss recovery" - #define STRING_SETTING_SAVE "Save settings" - #define STRING_SETTING_RESET "Reset default settings" - #define STRING_SETTING_RESTORE "Restore settings" - #define STRING_EEPROM_SETTINGS "EEPROM" - #define STRING_EEPROM_SAVE_INFO "Save printer settings\nto EEPROM?" - #define STRING_EEPROM_RESTORE_INFO "Reload settings from\nEEPROM?" - #define STRING_EEPROM_RESET_INFO "Reset EEPROM to stock printer settings?" - #define STRING_RETRACT_FEEDRATE "Retract feedrate" - #define STRING_RETRACT_LENGTH "Retract length" - #define STRING_RETRACT_SWAP_LENGTH "Retract swap length" - #define STRING_RETRACT_Z_LIFT "Z lift on retraction" - #define STRING_RETRACT_AUTO "Auto Firmware Retract" - #define STRING_RECOVER_FEEDRATE "Recover feedrate" - #define STRING_SWAP_RECOVER_FEEDRATE "Swap recover feedrate" - #define STRING_RECOVER_LENGTH "Extra recover length" - #define STRING_SWAP_RECOVER_LENGTH "Extra recover swap length" - #define STRING_START_PRINT "Start Printing:\n %s?" - #define STRING_ACK_NOTIFICATION "ACK notification style" - #define STRING_LEVELING_EDGE_DISTANCE "Bed edge distance" - #define STRING_XY_UNLOCK "Desbloquear XY" - #define STRING_TUNING "Tuning" - #define STRING_PID "PID" - #define STRING_PID_TITLE "PID autotune" - #define STRING_PID_START_INFO "PID autotune may take\nsome time to complete.\nContinue?" - #define STRING_PID_START_INFO_2 "PID autotune in progress!" - #define STRING_PID_START_INFO_3 "Do not touch the screen until completed (green LED ON)!" - #define STRING_TUNE_EXTRUDER "Tune steps" - #define STRING_TUNE_EXT_EXTRUDE_100 "Ext. 100mm" - #define STRING_TUNE_EXT_TEMP "Extruder tuning | Heat" - #define STRING_TUNE_EXT_TEMPLOW "Desired temperature too low!\nMinimum temperature: %d C" - #define STRING_TUNE_EXT_DESIREDVAL "Temperature is not yet at the desired value" - #define STRING_TUNE_EXT_MARK120MM "Mark 120 mm on your fillament\nPress '%s' when ready\nMeasure remaining length\nafter extruding" - #define STRING_TUNE_EXT_HEATOFF "Turn the heater off?" - #define STRING_TUNE_EXT_ADJ_ESTEPS "Adjust E-Steps" - #define STRING_TUNE_EXT_ESTEPS_SAVED "New E-steps saved!\nDon't forget to\nsave it in EEPROM\nNew value: %0.2f" - #define STRING_TUNE_EXT_MEASURED "Length remaining:" - #define STRING_TUNE_EXT_OLD_ESTEP "Old e-steps: %0.2f" - #define STRING_TUNE_EXT_NEW_ESTEP "New e-steps: %0.2f" - #define STRING_CONNECTION_SETTINGS "Connection" - #define STRING_OFFSET_TOOL "Offset 2nd Nozzle" - #define STRING_HYBRID_THRESHOLD "TMC HybridThreshold" - #define STRING_NOTIFICATIONS "Notifications" - #define STRING_MESH_EDITOR "Mesh edit" - #define STRING_MESH_TUNER "Mesh tuner" - #define STRING_CASE_LIGHT "Case light" +#define STRING_LANGUAGE "Español" +#define STRING_HEAT "Calentar" +#define STRING_MOVE "Mover" +#define STRING_HOME "Origen" +#define STRING_DISABLE_STEPPERS "Disarm All" +#define STRING_PRINT "Imprimir" +#define STRING_EXTRUDE "Extruir" +#define STRING_FAN "Ventilar" +#define STRING_SETTINGS "Configurar" +#define STRING_SCREEN_SETTINGS "Pantalla" +#define STRING_MACHINE_SETTINGS "Máquina" +#define STRING_FEATURE_SETTINGS "Añadidos" +#define STRING_SOUND "Sound" +#define STRING_TOUCH_SOUND "Touch sounds" +#define STRING_TOAST_SOUND "Toast Notifications" +#define STRING_ALERT_SOUND "Popups and Alerts" +#define STRING_PREHEATDONE_SOUND "Preheat done notification" +#define STRING_SHUT_DOWN "Apagar" +#define STRING_RGB_SETTINGS "Color LED" +#define STRING_RGB_OFF "Apagar LED" +#define STRING_TERMINAL "Terminal" +#define STRING_CUSTOM "Personalizar" +#define STRING_LEVELING "Nivelar" +#define STRING_POINT_1 "Punto 1" +#define STRING_POINT_2 "Punto 2" +#define STRING_POINT_3 "Punto 3" +#define STRING_POINT_4 "Punto 4" +#define STRING_POINT_5 "Punto 5" +#define STRING_BED_LEVELING "Bed Level" +#define STRING_BL_COMPLETE "Bed Leveling Complete" +#define STRING_BL_SMART_FILL "Missing probe points\nhave been smart filled.\n \nNote: remember to save!" +#define STRING_BL_ENABLE "BL: on" +#define STRING_BL_DISABLE "BL: off" +#define STRING_ABL "ABL" +#define STRING_BBL "BBL" +#define STRING_UBL "UBL" +#define STRING_MBL "MBL" +#define STRING_MBL_SETTINGS "Mesh Bed Leveling" +#define STRING_ABL_SETTINGS "Auto Bed Leveling" +#define STRING_ABL_SETTINGS_BBL "Bilinear Bed Leveling" +#define STRING_ABL_SETTINGS_UBL "Unified Bed Leveling" +#define STRING_ABL_SETTINGS_UBL_SAVE "Save to slot" +#define STRING_ABL_SETTINGS_UBL_LOAD "Load from slot" +#define STRING_ABL_SLOT0 "Slot 0" +#define STRING_ABL_SLOT1 "Slot 1" +#define STRING_ABL_SLOT2 "Slot 2" +#define STRING_ABL_SLOT3 "Slot 3" +#define STRING_ABL_SLOT_EEPROM "Remember slot for next\nreboot? (Save EEPROM)" +#define STRING_ABL_Z "Z Fade" +#define STRING_BLTOUCH "BLTouch" +#define STRING_BLTOUCH_TEST "Probar" +#define STRING_BLTOUCH_DEPLOY "Desplegar" +#define STRING_BLTOUCH_STOW "Plegar" +#define STRING_BLTOUCH_REPEAT "Repetir" +#define STRING_Z_OFFSET "Z Offset" +#define STRING_PROBE_OFFSET "Sonda Compensar" +#define STRING_HOME_OFFSET "Home Offset" +#define STRING_CONFIRMATION "Are you sure?" +#define STRING_DOWN "Down" +#define STRING_UP "Up" +#define STRING_SAVE "Grabar" +#define STRING_RESTORE "Restore" +#define STRING_RESET "Reset" +#define STRING_DEFAULT "Default" +#define STRING_CLEAR "Clear" +#define STRING_NEXT "Next" +#define STRING_DISTANCE "Distance" +#define STRING_INVALID_VALUE "Invalid value(s)" +#define STRING_TIMEOUT_REACHED "Timeout reached!" +#define STRING_PROCESS_RUNNING "Process already running!" +#define STRING_PROCESS_COMPLETED "Process completed!" +#define STRING_PROCESS_ABORTED "Process aborted!" +#define STRING_INC "Aumentar" +#define STRING_DEC "Disminur" +#define STRING_NOZZLE "Punta" +#define STRING_BED "Cama" +#define STRING_CHAMBER "Chamber" +#define STRING_START "Start" +#define STRING_STOP "Parar" +#define STRING_BACK "Volver" +#define STRING_PAGE_UP "Retroceder" +#define STRING_PAGE_DOWN "Avanzar" +#define STRING_PAUSE "Pausar" +#define STRING_RESUME "Continuar" +#define STRING_LOAD "Cargar" +#define STRING_UNLOAD "Descargar" +#define STRING_SLOW_SPEED "Despacio" +#define STRING_NORMAL_SPEED "Normal" +#define STRING_FAST_SPEED "Rápido" +#define STRING_FAN_FULL_SPEED "Todo" +#define STRING_FAN_HALF_SPEED "Mitad" +#define STRING_ROTATE_UI "Rotar" +#define STRING_TOUCHSCREEN_ADJUST "Calibrar" +#define STRING_MORE "Más" +#define STRING_SCREEN_INFO "Informar" +#define STRING_STATUS "Status" +#define STRING_SIMULATOR_BG_COLOR "Marlin simulator background color" +#define STRING_SIMULATOR_FONT_COLOR "Marlin simulator font color" +#define STRING_WHITE "Blanco" +#define STRING_BLACK "Negro" +#define STRING_BLUE "Azul" +#define STRING_RED "Rojo" +#define STRING_GREEN "Verde" +#define STRING_CYAN "Cyan" +#define STRING_YELLOW "Amarillo" +#define STRING_BROWN "Marrón" +#define STRING_GRAY "Gris" +#define STRING_ORANGE "Orange" +#define STRING_INDIGO "Indigo" +#define STRING_VIOLET "Violet" +#define STRING_MAGENTA "Magenta" +#define STRING_PURPLE "Purple" +#define STRING_LIME "Lime" +#define STRING_DARKBLUE "DarkBlue" +#define STRING_DARKGREEN "DarkGreen" +#define STRING_DARKGRAY "DarkGray" +#define STRING_DISCONNECT "Desconectar" +#define STRING_BAUDRATE "BaudRate" +#define STRING_PERCENTAGE "Porcentaje" +#define STRING_BABYSTEP "BabyStep" +#define STRING_PERCENTAGE_SPEED "Velocidad" +#define STRING_PERCENTAGE_FLOW "Flujo" +#define STRING_VALUE_ZERO "Cero" +#define STRING_1_DEGREE "1℃" +#define STRING_5_DEGREE "5℃" +#define STRING_10_DEGREE "10℃" +#define STRING_X_INC "+X" +#define STRING_Y_INC "+Y" +#define STRING_Z_INC "+Z" +#define STRING_X_DEC "-X" +#define STRING_Y_DEC "-Y" +#define STRING_Z_DEC "-Z" +#define STRING_X "X" +#define STRING_Y "Y" +#define STRING_Z "Z" +#define STRING_001_MM "0.01mm" +#define STRING_01_MM "0.1mm" +#define STRING_1_MM "1mm" +#define STRING_5_MM "5mm" +#define STRING_10_MM "10mm" +#define STRING_100_MM "100mm" +#define STRING_200_MM "200mm" +#define STRING_1_PERCENT "1%" +#define STRING_5_PERCENT "5%" +#define STRING_10_PERCENT "10%" +#define STRING_PERCENT_VALUE "%d%%" +#define STRING_READY "Preparado" +#define STRING_BUSY "Procesamiento ocupado, por favor espere..." +#define STRING_UNCONNECTED "¡No hay comunicación con impresora!" +#define STRING_DISCONNECT_INFO "¡Ahora puede controlar la impresora desde su ordenador!" +#define STRING_LOADING "Cargando..." +#define STRING_POWER_FAILED "¿Continuar imprimiendo?" +#define STRING_CONTINUE "Continuar" +#define STRING_CANCEL "Cancelar" +#define STRING_ADJUST_TITLE "¡Calibrar la pantalla táctil" +#define STRING_ADJUST_INFO "Por favor haga clic en el punto rojo" +#define STRING_ADJUST_OK "Ajuste correcto" +#define STRING_ADJUST_FAILED "Ajuste fallido, por favor intentelo de nuevo" +#define STRING_WARNING "Advertencia" +#define STRING_STOP_PRINT "¿Desea parar la impresión?" +#define STRING_CONFIRM "Confirmar" +#define STRING_TFTSD "SD TFT" +#define STRING_READ_TFTSD_ERROR "¡Error en la tarjeta SD TFT!" +#define STRING_TFTSD_INSERTED "¡Tarjeta insertada!" +#define STRING_TFTSD_REMOVED "¡Tarjeta extraida!" +#define STRING_U_DISK "Pendrive" +#define STRING_READ_U_DISK_ERROR "¡Error en el Pendrive!" +#define STRING_U_DISK_INSERTED "¡Pendrive insertado!" +#define STRING_U_DISK_REMOVED "¡Pendrive extraido!" +#define STRING_ONBOARDSD "SD Placa" +#define STRING_READ_ONBOARDSD_ERROR "¡Error en la tarjeta SD de la placa!" +#define STRING_FILAMENT_SENSOR "Filament sensor" +#define STRING_FILAMENT_RUNOUT "¡Filamento agotado!" +#define STRING_PREHEAT "Precalentar" +#define STRING_PREHEAT_BOTH "Ambos" +#define STRING_IS_PAUSE "No se puede extruir\nal imprimir,¿\nPausar la impresión?" +#define STRING_AUTO_SHUT_DOWN "Apag. aut." +#define STRING_UNIFIEDMOVE "Movimiento" +#define STRING_UNIFIEDHEAT "Calor/Ventilador" +#define STRING_COOLDOWN "Enfriarse" +#define STRING_EMERGENCYSTOP "PARADA EMERGENCIA" +#define STRING_TOUCH_TO_EXIT "Toca cualquier lugar para salir" +#define STRING_MAINMENU "Menu" +#define STRING_WAIT_TEMP_SHUT_DOWN "Espere a que la\ntemperatura del hotend\nsea inferior a %d℃" // Wait for the temperature of hotend to be lower than 50℃ +#define STRING_FORCE_SHUT_DOWN "Forzar Apagado" +#define STRING_SHUTTING_DOWN "Apagando..." +#define STRING_PARAMETER_SETTING "Parámetro" +#define STRING_ON "ON" +#define STRING_OFF "OFF" +#define STRING_SMART "SMART" +#define STRING_TERMINAL_ACK "Show ACK in Terminal" +#define STRING_INVERT_XAXIS "Invert X Axis" +#define STRING_INVERT_YAXIS "Invert Y Axis" +#define STRING_INVERT_ZAXIS "Invert Z Axis" +#define STRING_MOVE_SPEED "Move speed(X Y Z)" +#define STRING_KNOB_LED "Rotary Knob LED" +#define STRING_KNOB_LED_IDLE "Rotary Knob LED idle" +#define STRING_M0_PAUSE "Paused by M0 command" +#define STRING_SEND_START_GCODE "Start Gcode before print" +#define STRING_SEND_END_GCODE "End Gcode after print" +#define STRING_SEND_CANCEL_GCODE "Cancel Gcode" +#define STRING_PERSISTENT_STATUS_INFO "Persistent Status Info" +#define STRING_FILE_LISTMODE "Files viewer List Mode" +#define STRING_CURRENT_SETTING "Driver Current (mA)" +#define STRING_STEPS_SETTING "Steps per mm" +#define STRING_MAXFEEDRATE "Max Feed Rate" +#define STRING_MAXACCELERATION "Max Acceleration" +#define STRING_ACCELERATION "Acceleration" +#define STRING_PRINT_ACCELERATION "Print Acceleration" +#define STRING_RETRACT_ACCELERATION "Retract Acceleration" +#define STRING_TRAVEL_ACCELERATION "Travel Acceleration" +#define STRING_JERK "Jerk" +#define STRING_JUNCTION_DEVIATION "Junction Deviation" +#define STRING_BUMP_SENSITIVITY "TMC bump sensitivity" +#define STRING_FWRETRACT "FW Retraction" +#define STRING_FWRECOVER "FW Retraction Recover" +#define STRING_LIN_ADVANCE "Linear Advance" +#define STRING_RESET_SETTINGS_INFO "Reset all settings to\ndefault values?" +#define STRING_RESET_SETTINGS_DONE "Reset all settings\nsuccessful.\nplease restart the device." +#define STRING_INFO "Info" +#define STRING_LCD_BRIGHTNESS "LCD Brightness" +#define STRING_LCD_BRIGHTNESS_DIM "LCD Brightness dim" +#define STRING_LCD_DIM_IDLE_TIMER "LCD dim idle timer" +#define STRING_5_SECONDS "5 Sec." +#define STRING_10_SECONDS "10 Sec." +#define STRING_30_SECONDS "30 Sec." +#define STRING_60_SECONDS "1 Min." +#define STRING_120_SECONDS "2 Min." +#define STRING_300_SECONDS "5 Min." +#define STRING_CUSTOM_SECONDS "Custom" +#define STRING_SEQUENTIAL_MODE "Sequential mode" +#define STRING_ST7920_FULLSCREEN "Marlin mode in fullscreen" +#define STRING_PLR_EN "Power loss recovery" +#define STRING_SETTING_SAVE "Save settings" +#define STRING_SETTING_RESET "Reset default settings" +#define STRING_SETTING_RESTORE "Restore settings" +#define STRING_EEPROM_SETTINGS "EEPROM" +#define STRING_EEPROM_SAVE_INFO "Save printer settings\nto EEPROM?" +#define STRING_EEPROM_RESTORE_INFO "Reload settings from\nEEPROM?" +#define STRING_EEPROM_RESET_INFO "Reset EEPROM to stock printer settings?" +#define STRING_RETRACT_FEEDRATE "Retract feedrate" +#define STRING_RETRACT_LENGTH "Retract length" +#define STRING_RETRACT_SWAP_LENGTH "Retract swap length" +#define STRING_RETRACT_Z_LIFT "Z lift on retraction" +#define STRING_RETRACT_AUTO "Auto Firmware Retract" +#define STRING_RECOVER_FEEDRATE "Recover feedrate" +#define STRING_SWAP_RECOVER_FEEDRATE "Swap recover feedrate" +#define STRING_RECOVER_LENGTH "Extra recover length" +#define STRING_SWAP_RECOVER_LENGTH "Extra recover swap length" +#define STRING_START_PRINT "Start Printing:\n %s?" +#define STRING_ACK_NOTIFICATION "ACK notification style" +#define STRING_LEVELING_EDGE_DISTANCE "Bed edge distance" +#define STRING_XY_UNLOCK "Desbloquear XY" +#define STRING_TUNING "Tuning" +#define STRING_PID "PID" +#define STRING_PID_TITLE "PID autotune" +#define STRING_PID_START_INFO "PID autotune may take\nsome time to complete.\nContinue?" +#define STRING_PID_START_INFO_2 "PID autotune in progress!" +#define STRING_PID_START_INFO_3 "Do not touch the screen until completed (green LED ON)!" +#define STRING_TUNE_EXTRUDER "Tune steps" +#define STRING_TUNE_EXT_EXTRUDE_100 "Ext. 100mm" +#define STRING_TUNE_EXT_TEMP "Extruder tuning | Heat" +#define STRING_TUNE_EXT_TEMPLOW "Desired temperature too low!\nMinimum temperature: %d C" +#define STRING_TUNE_EXT_DESIREDVAL "Temperature is not yet at the desired value" +#define STRING_TUNE_EXT_MARK120MM "Mark 120 mm on your fillament\nPress '%s' when ready\nMeasure remaining length\nafter extruding" +#define STRING_TUNE_EXT_HEATOFF "Turn the heater off?" +#define STRING_TUNE_EXT_ADJ_ESTEPS "Adjust E-Steps" +#define STRING_TUNE_EXT_ESTEPS_SAVED "New E-steps saved!\nDon't forget to\nsave it in EEPROM\nNew value: %0.2f" +#define STRING_TUNE_EXT_MEASURED "Length remaining:" +#define STRING_TUNE_EXT_OLD_ESTEP "Old e-steps: %0.2f" +#define STRING_TUNE_EXT_NEW_ESTEP "New e-steps: %0.2f" +#define STRING_CONNECTION_SETTINGS "Connection" +#define STRING_OFFSET_TOOL "Offset 2nd Nozzle" +#define STRING_HYBRID_THRESHOLD "TMC HybridThreshold" +#define STRING_NOTIFICATIONS "Notifications" +#define STRING_MESH_EDITOR "Mesh edit" +#define STRING_MESH_TUNER "Mesh tuner" +#define STRING_CASE_LIGHT "Case light" diff --git a/TFT/src/User/API/Language/language_fr.h b/TFT/src/User/API/Language/language_fr.h index 9218365209..c0ee712aba 100644 --- a/TFT/src/User/API/Language/language_fr.h +++ b/TFT/src/User/API/Language/language_fr.h @@ -1,279 +1,280 @@ #pragma once - #define STRING_LANGUAGE "Français" - #define STRING_HEAT "Chauffer" - #define STRING_MOVE "Déplacer" - #define STRING_HOME "Home" - #define STRING_DISABLE_STEPPERS "Moteurs" - #define STRING_PRINT "Imprimer" - #define STRING_EXTRUDE "Extruder" - #define STRING_FAN "Ventiler" - #define STRING_SETTINGS "Options" - #define STRING_SCREEN_SETTINGS "Écran" - #define STRING_MACHINE_SETTINGS "Machine" - #define STRING_FEATURE_SETTINGS "Paramètres" - #define STRING_SOUND "Son" - #define STRING_TOUCH_SOUND "Son des touches" - #define STRING_TOAST_SOUND "Notifications" - #define STRING_ALERT_SOUND "Popups et alertes" - #define STRING_SHUT_DOWN "Eteindre" - #define STRING_RGB_SETTINGS "LED" - #define STRING_RGB_OFF "LED Off" - #define STRING_TERMINAL "Terminal" - #define STRING_CUSTOM "Gcode" - #define STRING_LEVELING "Niveaux" - #define STRING_POINT_1 "Point 1" - #define STRING_POINT_2 "Point 2" - #define STRING_POINT_3 "Point 3" - #define STRING_POINT_4 "Point 4" - #define STRING_POINT_5 "Point 5" - #define STRING_BED_LEVELING "ABL" - #define STRING_BL_COMPLETE "Nivellement terminé" - #define STRING_BL_SMART_FILL "Les points de sonde manquants\nont été intelligemment remplis.\n \nNote : n'oubliez pas de sauvegarder !" - #define STRING_BL_ENABLE "BL On" - #define STRING_BL_DISABLE "BL Off" - #define STRING_ABL "ABL" - #define STRING_BBL "BBL" - #define STRING_UBL "UBL" - #define STRING_MBL "MBL" - #define STRING_MBL_SETTINGS "Nivellement Mesh" - #define STRING_ABL_SETTINGS "Nivellement Automatique" - #define STRING_ABL_SETTINGS_BBL "Nivellement bilinéaire" - #define STRING_ABL_SETTINGS_UBL "Nivellement unifié" - #define STRING_ABL_SETTINGS_UBL_SAVE "Enregistrer dans l'emplacement" - #define STRING_ABL_SETTINGS_UBL_LOAD "Charger depuis l'emplacement" - #define STRING_ABL_SLOT0 "Slot 0" - #define STRING_ABL_SLOT1 "Slot 1" - #define STRING_ABL_SLOT2 "Slot 2" - #define STRING_ABL_SLOT3 "Slot 3" - #define STRING_ABL_SLOT_EEPROM "Se souvenir de l'emplacement\nau prochain redémarrage ?\n(Sauvegarde EEPROM)" - #define STRING_ABL_Z "Z Fade" - #define STRING_BLTOUCH "BLTouch" - #define STRING_BLTOUCH_TEST "Tester" - #define STRING_BLTOUCH_DEPLOY "Déployer" - #define STRING_BLTOUCH_STOW "Rentrer" - #define STRING_BLTOUCH_REPEAT "Répéter" - #define STRING_Z_OFFSET "Z Offset" - #define STRING_PROBE_OFFSET "Décalage Palpeur" - #define STRING_HOME_OFFSET "Home Offset" - #define STRING_CONFIRMATION "Êtes-vous sûr ?" - #define STRING_DOWN "Descendre" - #define STRING_UP "Monter" - #define STRING_SAVE "Sauver" - #define STRING_RESTORE "Restaurer" - #define STRING_RESET "Reset" - #define STRING_DEFAULT "Défaut" - #define STRING_CLEAR "Effacer" - #define STRING_NEXT "Suivant" - #define STRING_DISTANCE "Distance" - #define STRING_INVALID_VALUE "Aucune valeur valide fournie !" - #define STRING_TIMEOUT_REACHED "Délai d'attente dépassé !" - #define STRING_PROCESS_RUNNING "Processus en cours ! Veuillez patienter" - #define STRING_PROCESS_COMPLETED "Processus terminé !" - #define STRING_PROCESS_ABORTED "Processus annulé !" - #define STRING_INC "Plus" - #define STRING_DEC "Moins" - #define STRING_NOZZLE "Buse" - #define STRING_BED "Plateau" - #define STRING_CHAMBER "Caisson" - #define STRING_START "Démarrer" - #define STRING_STOP "Stopper" - #define STRING_BACK "Retour" - #define STRING_PAGE_UP "Précédent" - #define STRING_PAGE_DOWN "Suivant" - #define STRING_PAUSE "Pause" - #define STRING_RESUME "Reprendre" - #define STRING_LOAD "Charger" - #define STRING_UNLOAD "Décharger" - #define STRING_SLOW_SPEED "Lent" - #define STRING_NORMAL_SPEED "Normal" - #define STRING_FAST_SPEED "Rapide" - #define STRING_FAN_FULL_SPEED "Max" - #define STRING_FAN_HALF_SPEED "Moitié" - #define STRING_ROTATE_UI "Rotation" - #define STRING_TOUCHSCREEN_ADJUST "Ajuster" - #define STRING_MORE "Plus" - #define STRING_SCREEN_INFO "Infos" - #define STRING_STATUS "Statut" - #define STRING_SIMULATOR_BG_COLOR "Couleur de l'arrière-plan Marlin" - #define STRING_SIMULATOR_FONT_COLOR "Couleur de la police Marlin" - #define STRING_WHITE "Blanc" - #define STRING_BLACK "Noir" - #define STRING_BLUE "Bleu" - #define STRING_RED "Rouge" - #define STRING_GREEN "Vert" - #define STRING_CYAN "Cyan" - #define STRING_YELLOW "Jaune" - #define STRING_BROWN "Marron" - #define STRING_GRAY "Gris" - #define STRING_ORANGE "Orange" - #define STRING_INDIGO "Indigo" - #define STRING_VIOLET "Violette" - #define STRING_MAGENTA "Magenta" - #define STRING_PURPLE "Violet" - #define STRING_LIME "Lime" - #define STRING_DARKBLUE "Bleu Foncé" - #define STRING_DARKGREEN "Vert Foncé" - #define STRING_DARKGRAY "Gris Foncé" - #define STRING_DISCONNECT "Libérer" - #define STRING_BAUDRATE "Vitesse" - #define STRING_PERCENTAGE "Avancement" - #define STRING_BABYSTEP "BabyStep" - #define STRING_PERCENTAGE_SPEED "Vitesse" - #define STRING_PERCENTAGE_FLOW "Débit" - #define STRING_VALUE_ZERO "Zéro" - #define STRING_1_DEGREE "1℃" - #define STRING_5_DEGREE "5℃" - #define STRING_10_DEGREE "10℃" - #define STRING_X_INC "X+" - #define STRING_Y_INC "Y+" - #define STRING_Z_INC "Z+" - #define STRING_X_DEC "X-" - #define STRING_Y_DEC "Y-" - #define STRING_Z_DEC "Z-" - #define STRING_X "X" - #define STRING_Y "Y" - #define STRING_Z "Z" - #define STRING_001_MM "0.01mm" - #define STRING_01_MM "0.1mm" - #define STRING_1_MM "1mm" - #define STRING_5_MM "5mm" - #define STRING_10_MM "10mm" - #define STRING_100_MM "100mm" - #define STRING_200_MM "200mm" - #define STRING_1_PERCENT "1%" - #define STRING_5_PERCENT "5%" - #define STRING_10_PERCENT "10%" - #define STRING_PERCENT_VALUE "%d%%" - #define STRING_READY "Prête" - #define STRING_BUSY "Occupée, veuillez patienter..." - #define STRING_UNCONNECTED "Aucune imprimante connectée !" - #define STRING_DISCONNECT_INFO "Vous pouvez maintenant contrôler l'imprimante depuis votre ordinateur !" - #define STRING_LOADING "Chargement..." - #define STRING_POWER_FAILED "Continuer l'impression ?" - #define STRING_CONTINUE "Continuer" - #define STRING_CANCEL "Annuler" - #define STRING_ADJUST_TITLE "Calibration écran tactile" - #define STRING_ADJUST_INFO "Veuillez toucher le point rouge" - #define STRING_ADJUST_OK "Succès de l'ajustement" - #define STRING_ADJUST_FAILED "Ajustement incorrect, veuillez réessayer" - #define STRING_WARNING "Attention" - #define STRING_STOP_PRINT "Arrêter l'impression ?" - #define STRING_CONFIRM "Confirmer" - #define STRING_TFTSD "SD TFT" - #define STRING_READ_TFTSD_ERROR "Erreur de lecture de la carte SD TFT !" - #define STRING_TFTSD_INSERTED "Carte insérée !" - #define STRING_TFTSD_REMOVED "Carte retirée !" - #define STRING_U_DISK "Clé USB" - #define STRING_READ_U_DISK_ERROR "Erreur de lecture de la clé USB !" - #define STRING_U_DISK_INSERTED "Clé USB insérée !" - #define STRING_U_DISK_REMOVED "Clé USB retirée !" - #define STRING_ONBOARDSD "SD interne" - #define STRING_READ_ONBOARDSD_ERROR "Erreur de lecture de la carte SD interne !" - #define STRING_FILAMENT_SENSOR "Capteur de filament" - #define STRING_FILAMENT_RUNOUT "Fin de Filament !" - #define STRING_PREHEAT "Préparer" - #define STRING_PREHEAT_BOTH "Global" - #define STRING_IS_PAUSE "Extrusion impossible quand\nl'impression est en cours.\nMettre l'impression en pause ?" - #define STRING_AUTO_SHUT_DOWN "Extinction automatique" - #define STRING_UNIFIEDMOVE "Mouvement" - #define STRING_UNIFIEDHEAT "Chauffer" - #define STRING_COOLDOWN "Refroidir" - #define STRING_EMERGENCYSTOP "Arrêt" - #define STRING_TOUCH_TO_EXIT "Toucher n'importe où pour quitter" - #define STRING_MAINMENU "Menu" - #define STRING_WAIT_TEMP_SHUT_DOWN "Attendez que la température de la buse\nsoit inférieure à %d℃" // Wait for the temperature of hotend to be lower than 50℃ - #define STRING_FORCE_SHUT_DOWN "Forcer l'extinction" - #define STRING_SHUTTING_DOWN "Extinction en cours..." - #define STRING_PARAMETER_SETTING "Réglages" - #define STRING_ON "ON" - #define STRING_OFF "OFF" - #define STRING_SMART "SMART" - #define STRING_TERMINAL_ACK "Afficher ACK sur Terminal" - #define STRING_INVERT_XAXIS "Inverser l'axe X" - #define STRING_INVERT_YAXIS "Inverser l'axe Y" - #define STRING_INVERT_ZAXIS "Inverser l'axe Z" - #define STRING_MOVE_SPEED "Vitesse de déplacement (X Y Z)" - #define STRING_KNOB_LED "LED du bouton rotatif" - #define STRING_KNOB_LED_IDLE "Veille du bouton rotatif" - #define STRING_M0_PAUSE "Suspendu par la commande M0" - #define STRING_SEND_START_GCODE "Gcode avant l'impression" - #define STRING_SEND_END_GCODE "Gcode après l'impression" - #define STRING_SEND_CANCEL_GCODE "Gcode d'annulation" - #define STRING_PERSISTENT_STATUS_INFO "Temp. toujours affichées" - #define STRING_FILE_LISTMODE "Fichiers en mode liste" - #define STRING_CURRENT_SETTING "Courant Driver (mA)" - #define STRING_STEPS_SETTING "Steps par mm" - #define STRING_MAXFEEDRATE "Débit maximum" - #define STRING_MAXACCELERATION "Accélération maximale" - #define STRING_ACCELERATION "Accélération" - #define STRING_PRINT_ACCELERATION "Impression" - #define STRING_RETRACT_ACCELERATION "Rétraction" - #define STRING_TRAVEL_ACCELERATION "Déplacements" - #define STRING_JERK "Jerk" - #define STRING_JUNCTION_DEVIATION "Ecart de jonction" - #define STRING_BUMP_SENSITIVITY "Sensibilité TMC" - #define STRING_FWRETRACT "Rétraction FW" - #define STRING_FWRECOVER "Récupération FW" - #define STRING_LIN_ADVANCE "Linear Advance" - #define STRING_RESET_SETTINGS_INFO "Réinitialiser tous les\nparamètres aux valeurs\npar défaut ?" - #define STRING_RESET_SETTINGS_DONE "Réinitialisation des paramètres\nréalisé avec succès.\nVeuillez redémarrer l'imprimante." - #define STRING_INFO "Infos" - #define STRING_LCD_BRIGHTNESS "Luminosité LCD" - #define STRING_LCD_BRIGHTNESS_DIM "Diminution luminosité" - #define STRING_LCD_DIM_IDLE_TIMER "Durée avant diminution" - #define STRING_5_SECONDS "5 Sec." - #define STRING_10_SECONDS "10 Sec." - #define STRING_30_SECONDS "30 Sec." - #define STRING_60_SECONDS "1 Min." - #define STRING_120_SECONDS "2 Min." - #define STRING_300_SECONDS "5 Min." - #define STRING_CUSTOM_SECONDS "Custom" - #define STRING_SEQUENTIAL_MODE "Sequential mode" - #define STRING_ST7920_FULLSCREEN "Mode Marlin plein écran" - #define STRING_PLR_EN "Reprise après coupure" - #define STRING_SETTING_SAVE "Sauvegarder les paramètres" - #define STRING_SETTING_RESET "RAZ des paramètres" - #define STRING_SETTING_RESTORE "Restaurer les paramètres" - #define STRING_EEPROM_SETTINGS "EEPROM" - #define STRING_EEPROM_SAVE_INFO "Enregistrer les paramètres\ndans l'EEPROM ?" - #define STRING_EEPROM_RESTORE_INFO "Restaurer les paramètres\nde l'EEPROM ?" - #define STRING_EEPROM_RESET_INFO "Réinitialiser l'EEPROM\naux paramètres d'origine\nde l'imprimante ?" - #define STRING_RETRACT_FEEDRATE "Vitesse" - #define STRING_RETRACT_LENGTH "Longueur" - #define STRING_RETRACT_SWAP_LENGTH "Longueur de swap" - #define STRING_RETRACT_Z_LIFT "Décalage en Z" - #define STRING_RETRACT_AUTO "Rétraction Firmware auto" - #define STRING_RECOVER_FEEDRATE "Vitesse" - #define STRING_SWAP_RECOVER_FEEDRATE "Vitesse de swap" - #define STRING_RECOVER_LENGTH "Longueur" - #define STRING_SWAP_RECOVER_LENGTH "Longueur de swap" - #define STRING_START_PRINT "Démarrer l'impression :\n%s ?" - #define STRING_ACK_NOTIFICATION "Style de notification ACK" - #define STRING_LEVELING_EDGE_DISTANCE "Distance au bord du plateau" - #define STRING_XY_UNLOCK "Moteurs XY" - #define STRING_TUNING "Tuning" - #define STRING_PID "PID" - #define STRING_PID_TITLE "Autocalibrage PID" - #define STRING_PID_START_INFO "L'autocalibrage PID va être\nlancé. Cela peut prendre\nquelques minutes. Continuer ?" - #define STRING_PID_START_INFO_2 "Autocalibrage PID en cours !" - #define STRING_PID_START_INFO_3 "Ne touchez pas l'écran avant la fin (LED verte allumée) !" - #define STRING_TUNE_EXTRUDER "Extrudeur" - #define STRING_TUNE_EXT_EXTRUDE_100 "Ext. 100mm" - #define STRING_TUNE_EXT_TEMP "Réglage de l'extrudeur" - #define STRING_TUNE_EXT_TEMPLOW "Température souhaitée\ntrop basse !\nTempérature minimum : %d C" - #define STRING_TUNE_EXT_DESIREDVAL "La température n'est pas\nencore à la valeur souhaitée" - #define STRING_TUNE_EXT_MARK120MM "Marquer 120 mm sur le filament\nAppuyer ensuite sur '%s'\nMesurer la longueur restante" - #define STRING_TUNE_EXT_HEATOFF "Arrêter la chauffe ?" - #define STRING_TUNE_EXT_ADJ_ESTEPS "Ajustement E-Steps" - #define STRING_TUNE_EXT_ESTEPS_SAVED "Nouveau E-steps\nenregistré !" - #define STRING_TUNE_EXT_MEASURED "Longueur restante" - #define STRING_TUNE_EXT_OLD_ESTEP "Ancien : %0.2f" - #define STRING_TUNE_EXT_NEW_ESTEP "Nouveau : %0.2f" - #define STRING_CONNECTION_SETTINGS "Connexion" - #define STRING_OFFSET_TOOL "Offset 2ème Buse" - #define STRING_HYBRID_THRESHOLD "Seuil Hybride TMC" - #define STRING_NOTIFICATIONS "Notifications" - #define STRING_MESH_EDITOR "Maillage" - #define STRING_MESH_TUNER "Edition du maillage" - #define STRING_CASE_LIGHT "Case light" +#define STRING_LANGUAGE "Français" +#define STRING_HEAT "Chauffer" +#define STRING_MOVE "Déplacer" +#define STRING_HOME "Home" +#define STRING_DISABLE_STEPPERS "Moteurs" +#define STRING_PRINT "Imprimer" +#define STRING_EXTRUDE "Extruder" +#define STRING_FAN "Ventiler" +#define STRING_SETTINGS "Options" +#define STRING_SCREEN_SETTINGS "Écran" +#define STRING_MACHINE_SETTINGS "Machine" +#define STRING_FEATURE_SETTINGS "Paramètres" +#define STRING_SOUND "Son" +#define STRING_TOUCH_SOUND "Son des touches" +#define STRING_TOAST_SOUND "Notifications" +#define STRING_ALERT_SOUND "Popups et alertes" +#define STRING_PREHEATDONE_SOUND "Preheat done notification" +#define STRING_SHUT_DOWN "Eteindre" +#define STRING_RGB_SETTINGS "LED" +#define STRING_RGB_OFF "LED Off" +#define STRING_TERMINAL "Terminal" +#define STRING_CUSTOM "Gcode" +#define STRING_LEVELING "Niveaux" +#define STRING_POINT_1 "Point 1" +#define STRING_POINT_2 "Point 2" +#define STRING_POINT_3 "Point 3" +#define STRING_POINT_4 "Point 4" +#define STRING_POINT_5 "Point 5" +#define STRING_BED_LEVELING "ABL" +#define STRING_BL_COMPLETE "Nivellement terminé" +#define STRING_BL_SMART_FILL "Les points de sonde manquants\nont été intelligemment remplis.\n \nNote : n'oubliez pas de sauvegarder !" +#define STRING_BL_ENABLE "BL On" +#define STRING_BL_DISABLE "BL Off" +#define STRING_ABL "ABL" +#define STRING_BBL "BBL" +#define STRING_UBL "UBL" +#define STRING_MBL "MBL" +#define STRING_MBL_SETTINGS "Nivellement Mesh" +#define STRING_ABL_SETTINGS "Nivellement Automatique" +#define STRING_ABL_SETTINGS_BBL "Nivellement bilinéaire" +#define STRING_ABL_SETTINGS_UBL "Nivellement unifié" +#define STRING_ABL_SETTINGS_UBL_SAVE "Enregistrer dans l'emplacement" +#define STRING_ABL_SETTINGS_UBL_LOAD "Charger depuis l'emplacement" +#define STRING_ABL_SLOT0 "Slot 0" +#define STRING_ABL_SLOT1 "Slot 1" +#define STRING_ABL_SLOT2 "Slot 2" +#define STRING_ABL_SLOT3 "Slot 3" +#define STRING_ABL_SLOT_EEPROM "Se souvenir de l'emplacement\nau prochain redémarrage ?\n(Sauvegarde EEPROM)" +#define STRING_ABL_Z "Z Fade" +#define STRING_BLTOUCH "BLTouch" +#define STRING_BLTOUCH_TEST "Tester" +#define STRING_BLTOUCH_DEPLOY "Déployer" +#define STRING_BLTOUCH_STOW "Rentrer" +#define STRING_BLTOUCH_REPEAT "Répéter" +#define STRING_Z_OFFSET "Z Offset" +#define STRING_PROBE_OFFSET "Décalage Palpeur" +#define STRING_HOME_OFFSET "Home Offset" +#define STRING_CONFIRMATION "Êtes-vous sûr ?" +#define STRING_DOWN "Descendre" +#define STRING_UP "Monter" +#define STRING_SAVE "Sauver" +#define STRING_RESTORE "Restaurer" +#define STRING_RESET "Reset" +#define STRING_DEFAULT "Défaut" +#define STRING_CLEAR "Effacer" +#define STRING_NEXT "Suivant" +#define STRING_DISTANCE "Distance" +#define STRING_INVALID_VALUE "Aucune valeur valide fournie !" +#define STRING_TIMEOUT_REACHED "Délai d'attente dépassé !" +#define STRING_PROCESS_RUNNING "Processus en cours ! Veuillez patienter" +#define STRING_PROCESS_COMPLETED "Processus terminé !" +#define STRING_PROCESS_ABORTED "Processus annulé !" +#define STRING_INC "Plus" +#define STRING_DEC "Moins" +#define STRING_NOZZLE "Buse" +#define STRING_BED "Plateau" +#define STRING_CHAMBER "Caisson" +#define STRING_START "Démarrer" +#define STRING_STOP "Stopper" +#define STRING_BACK "Retour" +#define STRING_PAGE_UP "Précédent" +#define STRING_PAGE_DOWN "Suivant" +#define STRING_PAUSE "Pause" +#define STRING_RESUME "Reprendre" +#define STRING_LOAD "Charger" +#define STRING_UNLOAD "Décharger" +#define STRING_SLOW_SPEED "Lent" +#define STRING_NORMAL_SPEED "Normal" +#define STRING_FAST_SPEED "Rapide" +#define STRING_FAN_FULL_SPEED "Max" +#define STRING_FAN_HALF_SPEED "Moitié" +#define STRING_ROTATE_UI "Rotation" +#define STRING_TOUCHSCREEN_ADJUST "Ajuster" +#define STRING_MORE "Plus" +#define STRING_SCREEN_INFO "Infos" +#define STRING_STATUS "Statut" +#define STRING_SIMULATOR_BG_COLOR "Couleur de l'arrière-plan Marlin" +#define STRING_SIMULATOR_FONT_COLOR "Couleur de la police Marlin" +#define STRING_WHITE "Blanc" +#define STRING_BLACK "Noir" +#define STRING_BLUE "Bleu" +#define STRING_RED "Rouge" +#define STRING_GREEN "Vert" +#define STRING_CYAN "Cyan" +#define STRING_YELLOW "Jaune" +#define STRING_BROWN "Marron" +#define STRING_GRAY "Gris" +#define STRING_ORANGE "Orange" +#define STRING_INDIGO "Indigo" +#define STRING_VIOLET "Violette" +#define STRING_MAGENTA "Magenta" +#define STRING_PURPLE "Violet" +#define STRING_LIME "Lime" +#define STRING_DARKBLUE "Bleu Foncé" +#define STRING_DARKGREEN "Vert Foncé" +#define STRING_DARKGRAY "Gris Foncé" +#define STRING_DISCONNECT "Libérer" +#define STRING_BAUDRATE "Vitesse" +#define STRING_PERCENTAGE "Avancement" +#define STRING_BABYSTEP "BabyStep" +#define STRING_PERCENTAGE_SPEED "Vitesse" +#define STRING_PERCENTAGE_FLOW "Débit" +#define STRING_VALUE_ZERO "Zéro" +#define STRING_1_DEGREE "1℃" +#define STRING_5_DEGREE "5℃" +#define STRING_10_DEGREE "10℃" +#define STRING_X_INC "X+" +#define STRING_Y_INC "Y+" +#define STRING_Z_INC "Z+" +#define STRING_X_DEC "X-" +#define STRING_Y_DEC "Y-" +#define STRING_Z_DEC "Z-" +#define STRING_X "X" +#define STRING_Y "Y" +#define STRING_Z "Z" +#define STRING_001_MM "0.01mm" +#define STRING_01_MM "0.1mm" +#define STRING_1_MM "1mm" +#define STRING_5_MM "5mm" +#define STRING_10_MM "10mm" +#define STRING_100_MM "100mm" +#define STRING_200_MM "200mm" +#define STRING_1_PERCENT "1%" +#define STRING_5_PERCENT "5%" +#define STRING_10_PERCENT "10%" +#define STRING_PERCENT_VALUE "%d%%" +#define STRING_READY "Prête" +#define STRING_BUSY "Occupée, veuillez patienter..." +#define STRING_UNCONNECTED "Aucune imprimante connectée !" +#define STRING_DISCONNECT_INFO "Vous pouvez maintenant contrôler l'imprimante depuis votre ordinateur !" +#define STRING_LOADING "Chargement..." +#define STRING_POWER_FAILED "Continuer l'impression ?" +#define STRING_CONTINUE "Continuer" +#define STRING_CANCEL "Annuler" +#define STRING_ADJUST_TITLE "Calibration écran tactile" +#define STRING_ADJUST_INFO "Veuillez toucher le point rouge" +#define STRING_ADJUST_OK "Succès de l'ajustement" +#define STRING_ADJUST_FAILED "Ajustement incorrect, veuillez réessayer" +#define STRING_WARNING "Attention" +#define STRING_STOP_PRINT "Arrêter l'impression ?" +#define STRING_CONFIRM "Confirmer" +#define STRING_TFTSD "SD TFT" +#define STRING_READ_TFTSD_ERROR "Erreur de lecture de la carte SD TFT !" +#define STRING_TFTSD_INSERTED "Carte insérée !" +#define STRING_TFTSD_REMOVED "Carte retirée !" +#define STRING_U_DISK "Clé USB" +#define STRING_READ_U_DISK_ERROR "Erreur de lecture de la clé USB !" +#define STRING_U_DISK_INSERTED "Clé USB insérée !" +#define STRING_U_DISK_REMOVED "Clé USB retirée !" +#define STRING_ONBOARDSD "SD interne" +#define STRING_READ_ONBOARDSD_ERROR "Erreur de lecture de la carte SD interne !" +#define STRING_FILAMENT_SENSOR "Capteur de filament" +#define STRING_FILAMENT_RUNOUT "Fin de Filament !" +#define STRING_PREHEAT "Préparer" +#define STRING_PREHEAT_BOTH "Global" +#define STRING_IS_PAUSE "Extrusion impossible quand\nl'impression est en cours.\nMettre l'impression en pause ?" +#define STRING_AUTO_SHUT_DOWN "Extinction automatique" +#define STRING_UNIFIEDMOVE "Mouvement" +#define STRING_UNIFIEDHEAT "Chauffer" +#define STRING_COOLDOWN "Refroidir" +#define STRING_EMERGENCYSTOP "Arrêt" +#define STRING_TOUCH_TO_EXIT "Toucher n'importe où pour quitter" +#define STRING_MAINMENU "Menu" +#define STRING_WAIT_TEMP_SHUT_DOWN "Attendez que la température de la buse\nsoit inférieure à %d℃" // Wait for the temperature of hotend to be lower than 50℃ +#define STRING_FORCE_SHUT_DOWN "Forcer l'extinction" +#define STRING_SHUTTING_DOWN "Extinction en cours..." +#define STRING_PARAMETER_SETTING "Réglages" +#define STRING_ON "ON" +#define STRING_OFF "OFF" +#define STRING_SMART "SMART" +#define STRING_TERMINAL_ACK "Afficher ACK sur Terminal" +#define STRING_INVERT_XAXIS "Inverser l'axe X" +#define STRING_INVERT_YAXIS "Inverser l'axe Y" +#define STRING_INVERT_ZAXIS "Inverser l'axe Z" +#define STRING_MOVE_SPEED "Vitesse de déplacement (X Y Z)" +#define STRING_KNOB_LED "LED du bouton rotatif" +#define STRING_KNOB_LED_IDLE "Veille du bouton rotatif" +#define STRING_M0_PAUSE "Suspendu par la commande M0" +#define STRING_SEND_START_GCODE "Gcode avant l'impression" +#define STRING_SEND_END_GCODE "Gcode après l'impression" +#define STRING_SEND_CANCEL_GCODE "Gcode d'annulation" +#define STRING_PERSISTENT_STATUS_INFO "Temp. toujours affichées" +#define STRING_FILE_LISTMODE "Fichiers en mode liste" +#define STRING_CURRENT_SETTING "Courant Driver (mA)" +#define STRING_STEPS_SETTING "Steps par mm" +#define STRING_MAXFEEDRATE "Débit maximum" +#define STRING_MAXACCELERATION "Accélération maximale" +#define STRING_ACCELERATION "Accélération" +#define STRING_PRINT_ACCELERATION "Impression" +#define STRING_RETRACT_ACCELERATION "Rétraction" +#define STRING_TRAVEL_ACCELERATION "Déplacements" +#define STRING_JERK "Jerk" +#define STRING_JUNCTION_DEVIATION "Ecart de jonction" +#define STRING_BUMP_SENSITIVITY "Sensibilité TMC" +#define STRING_FWRETRACT "Rétraction FW" +#define STRING_FWRECOVER "Récupération FW" +#define STRING_LIN_ADVANCE "Linear Advance" +#define STRING_RESET_SETTINGS_INFO "Réinitialiser tous les\nparamètres aux valeurs\npar défaut ?" +#define STRING_RESET_SETTINGS_DONE "Réinitialisation des paramètres\nréalisé avec succès.\nVeuillez redémarrer l'imprimante." +#define STRING_INFO "Infos" +#define STRING_LCD_BRIGHTNESS "Luminosité LCD" +#define STRING_LCD_BRIGHTNESS_DIM "Diminution luminosité" +#define STRING_LCD_DIM_IDLE_TIMER "Durée avant diminution" +#define STRING_5_SECONDS "5 Sec." +#define STRING_10_SECONDS "10 Sec." +#define STRING_30_SECONDS "30 Sec." +#define STRING_60_SECONDS "1 Min." +#define STRING_120_SECONDS "2 Min." +#define STRING_300_SECONDS "5 Min." +#define STRING_CUSTOM_SECONDS "Custom" +#define STRING_SEQUENTIAL_MODE "Sequential mode" +#define STRING_ST7920_FULLSCREEN "Mode Marlin plein écran" +#define STRING_PLR_EN "Reprise après coupure" +#define STRING_SETTING_SAVE "Sauvegarder les paramètres" +#define STRING_SETTING_RESET "RAZ des paramètres" +#define STRING_SETTING_RESTORE "Restaurer les paramètres" +#define STRING_EEPROM_SETTINGS "EEPROM" +#define STRING_EEPROM_SAVE_INFO "Enregistrer les paramètres\ndans l'EEPROM ?" +#define STRING_EEPROM_RESTORE_INFO "Restaurer les paramètres\nde l'EEPROM ?" +#define STRING_EEPROM_RESET_INFO "Réinitialiser l'EEPROM\naux paramètres d'origine\nde l'imprimante ?" +#define STRING_RETRACT_FEEDRATE "Vitesse" +#define STRING_RETRACT_LENGTH "Longueur" +#define STRING_RETRACT_SWAP_LENGTH "Longueur de swap" +#define STRING_RETRACT_Z_LIFT "Décalage en Z" +#define STRING_RETRACT_AUTO "Rétraction Firmware auto" +#define STRING_RECOVER_FEEDRATE "Vitesse" +#define STRING_SWAP_RECOVER_FEEDRATE "Vitesse de swap" +#define STRING_RECOVER_LENGTH "Longueur" +#define STRING_SWAP_RECOVER_LENGTH "Longueur de swap" +#define STRING_START_PRINT "Démarrer l'impression :\n%s ?" +#define STRING_ACK_NOTIFICATION "Style de notification ACK" +#define STRING_LEVELING_EDGE_DISTANCE "Distance au bord du plateau" +#define STRING_XY_UNLOCK "Moteurs XY" +#define STRING_TUNING "Tuning" +#define STRING_PID "PID" +#define STRING_PID_TITLE "Autocalibrage PID" +#define STRING_PID_START_INFO "L'autocalibrage PID va être\nlancé. Cela peut prendre\nquelques minutes. Continuer ?" +#define STRING_PID_START_INFO_2 "Autocalibrage PID en cours !" +#define STRING_PID_START_INFO_3 "Ne touchez pas l'écran avant la fin (LED verte allumée) !" +#define STRING_TUNE_EXTRUDER "Extrudeur" +#define STRING_TUNE_EXT_EXTRUDE_100 "Ext. 100mm" +#define STRING_TUNE_EXT_TEMP "Réglage de l'extrudeur" +#define STRING_TUNE_EXT_TEMPLOW "Température souhaitée\ntrop basse !\nTempérature minimum : %d C" +#define STRING_TUNE_EXT_DESIREDVAL "La température n'est pas\nencore à la valeur souhaitée" +#define STRING_TUNE_EXT_MARK120MM "Marquer 120 mm sur le filament\nAppuyer ensuite sur '%s'\nMesurer la longueur restante" +#define STRING_TUNE_EXT_HEATOFF "Arrêter la chauffe ?" +#define STRING_TUNE_EXT_ADJ_ESTEPS "Ajustement E-Steps" +#define STRING_TUNE_EXT_ESTEPS_SAVED "Nouveau E-steps\nenregistré !" +#define STRING_TUNE_EXT_MEASURED "Longueur restante" +#define STRING_TUNE_EXT_OLD_ESTEP "Ancien : %0.2f" +#define STRING_TUNE_EXT_NEW_ESTEP "Nouveau : %0.2f" +#define STRING_CONNECTION_SETTINGS "Connexion" +#define STRING_OFFSET_TOOL "Offset 2ème Buse" +#define STRING_HYBRID_THRESHOLD "Seuil Hybride TMC" +#define STRING_NOTIFICATIONS "Notifications" +#define STRING_MESH_EDITOR "Maillage" +#define STRING_MESH_TUNER "Edition du maillage" +#define STRING_CASE_LIGHT "Case light" diff --git a/TFT/src/User/API/Language/language_gr.h b/TFT/src/User/API/Language/language_gr.h index bd94e4d653..61ee55f4e5 100644 --- a/TFT/src/User/API/Language/language_gr.h +++ b/TFT/src/User/API/Language/language_gr.h @@ -1,279 +1,280 @@ #pragma once - #define STRING_LANGUAGE "Ελληνικά" - #define STRING_HEAT "Θέρμανση" - #define STRING_MOVE "Μετακίνηση" - #define STRING_HOME "Αυτο-Κατεύθυνση" - #define STRING_DISABLE_STEPPERS "Disarm All" - #define STRING_PRINT "Εκτύπωση" - #define STRING_EXTRUDE "Εκβολή" - #define STRING_FAN "Ανεμιστήρας" - #define STRING_SETTINGS "Ρυθμίσεις" - #define STRING_SCREEN_SETTINGS "Οθόνη" - #define STRING_MACHINE_SETTINGS "Μηχανήματος" - #define STRING_FEATURE_SETTINGS "Χαρακτηριστικών" - #define STRING_SOUND "Sound" - #define STRING_TOUCH_SOUND "Touch sounds" - #define STRING_TOAST_SOUND "Toast Notifications" - #define STRING_ALERT_SOUND "Popups and Alerts" - #define STRING_SHUT_DOWN "Απενεργοποίηση" - #define STRING_RGB_SETTINGS "Χρώμα LED" - #define STRING_RGB_OFF "Απενεργοποίηση LED" - #define STRING_TERMINAL "Τερματικό" - #define STRING_CUSTOM "Τροποποιημένο" - #define STRING_LEVELING "Ισοπέδωση" - #define STRING_POINT_1 "Σημείο 1" - #define STRING_POINT_2 "Σημείο 2" - #define STRING_POINT_3 "Σημείο 3" - #define STRING_POINT_4 "Σημείο 4" - #define STRING_POINT_5 "Σημείο 5" - #define STRING_BED_LEVELING "Bed Level" - #define STRING_BL_COMPLETE "Bed Leveling Complete" - #define STRING_BL_SMART_FILL "Missing probe points\nhave been smart filled.\n \nNote: remember to save!" - #define STRING_BL_ENABLE "BL: on" - #define STRING_BL_DISABLE "BL: off" - #define STRING_ABL "ABL" - #define STRING_BBL "BBL" - #define STRING_UBL "UBL" - #define STRING_MBL "MBL" - #define STRING_MBL_SETTINGS "Mesh Bed Leveling" - #define STRING_ABL_SETTINGS "Auto Bed Leveling" - #define STRING_ABL_SETTINGS_BBL "Bilinear Bed Leveling" - #define STRING_ABL_SETTINGS_UBL "Unified Bed Leveling" - #define STRING_ABL_SETTINGS_UBL_SAVE "Save to slot" - #define STRING_ABL_SETTINGS_UBL_LOAD "Load from slot" - #define STRING_ABL_SLOT0 "Slot 0" - #define STRING_ABL_SLOT1 "Slot 1" - #define STRING_ABL_SLOT2 "Slot 2" - #define STRING_ABL_SLOT3 "Slot 3" - #define STRING_ABL_SLOT_EEPROM "Remember slot for next\nreboot? (Save EEPROM)" - #define STRING_ABL_Z "Z Fade" - #define STRING_BLTOUCH "BLTouch" - #define STRING_BLTOUCH_TEST "Δοκιμή" - #define STRING_BLTOUCH_DEPLOY "Επέκταση" - #define STRING_BLTOUCH_STOW "Aπόσυρση" - #define STRING_BLTOUCH_REPEAT "Επανάληψη" - #define STRING_Z_OFFSET "Αντιστάθμιση Z" - #define STRING_PROBE_OFFSET "Αντιστάθμιση Καθετήρας" - #define STRING_HOME_OFFSET "Home Offset" - #define STRING_CONFIRMATION "Are you sure?" - #define STRING_DOWN "Down" - #define STRING_UP "Up" - #define STRING_SAVE "Αποθήκευση" - #define STRING_RESTORE "Restore" - #define STRING_RESET "Επαναφορά" - #define STRING_DEFAULT "Default" - #define STRING_CLEAR "Clear" - #define STRING_NEXT "Next" - #define STRING_DISTANCE "Distance" - #define STRING_INVALID_VALUE "Invalid value(s)" - #define STRING_TIMEOUT_REACHED "Timeout reached!" - #define STRING_PROCESS_RUNNING "Process already running!" - #define STRING_PROCESS_COMPLETED "Process completed!" - #define STRING_PROCESS_ABORTED "Process aborted!" - #define STRING_INC "Αύξηση" - #define STRING_DEC "Μείωση" - #define STRING_NOZZLE "Στόμιο" - #define STRING_BED "Θερμή Βάση" - #define STRING_CHAMBER "Chamber" - #define STRING_START "Start" - #define STRING_STOP "Τερμάτιση" - #define STRING_BACK "Πίσω" - #define STRING_PAGE_UP "Σελίδα πάνω" - #define STRING_PAGE_DOWN "Σελίδα κάτω" - #define STRING_PAUSE "Παύση" - #define STRING_RESUME "Ξαναρχίσει" - #define STRING_LOAD "Φόρτωση" - #define STRING_UNLOAD "Ξεφόρτωση" - #define STRING_SLOW_SPEED "Αργά" - #define STRING_NORMAL_SPEED "Κανονικά" - #define STRING_FAST_SPEED "Γρήγορα" - #define STRING_FAN_FULL_SPEED "Ολοταχώς" - #define STRING_FAN_HALF_SPEED "Μισή ταχύτητα" - #define STRING_ROTATE_UI "Περιστροφή UI" - #define STRING_TOUCHSCREEN_ADJUST "Προσαρμογή TOUCH" - #define STRING_MORE "Περισσότερα" - #define STRING_SCREEN_INFO "Πληροφορίες" - #define STRING_STATUS "ΚΑΤΑΣΤΑΣΗ" - #define STRING_SIMULATOR_BG_COLOR "Marlin simulator background color" - #define STRING_SIMULATOR_FONT_COLOR "Marlin simulator font color" - #define STRING_WHITE "Άσπρο" - #define STRING_BLACK "Μάυρο" - #define STRING_BLUE "Μπλέ" - #define STRING_RED "Κόκκινο" - #define STRING_GREEN "Πράσινο" - #define STRING_CYAN "Κυανό" - #define STRING_YELLOW "Κίτρινο" - #define STRING_BROWN "Καφέ" - #define STRING_GRAY "Γκρί" - #define STRING_ORANGE "Πορτοκάλι" - #define STRING_INDIGO "Ινδικό" - #define STRING_VIOLET "Βιολετί" - #define STRING_MAGENTA "Πορφύρα" - #define STRING_PURPLE "Μωβ" - #define STRING_LIME "Πρασινοκίτρινο" - #define STRING_DARKBLUE "Σκούρο μπλε" - #define STRING_DARKGREEN "Σκούρο πράσινο" - #define STRING_DARKGRAY "Σκούρο γκρίζο" - #define STRING_DISCONNECT "Αποσυνδέσει" - #define STRING_BAUDRATE "BaudRate" - #define STRING_PERCENTAGE "Ποσοστό" - #define STRING_BABYSTEP "Μικροβήμα" - #define STRING_PERCENTAGE_SPEED "Ταχύτητα" - #define STRING_PERCENTAGE_FLOW "Ροή" - #define STRING_VALUE_ZERO "Μηδέν" - #define STRING_1_DEGREE "1℃" - #define STRING_5_DEGREE "5℃" - #define STRING_10_DEGREE "10℃" - #define STRING_X_INC "X+" - #define STRING_Y_INC "Y+" - #define STRING_Z_INC "Z+" - #define STRING_X_DEC "X-" - #define STRING_Y_DEC "Y-" - #define STRING_Z_DEC "Z-" - #define STRING_X "X" - #define STRING_Y "Y" - #define STRING_Z "Z" - #define STRING_001_MM "0.01χιλ" - #define STRING_01_MM "0.1χιλ" - #define STRING_1_MM "1χιλ" - #define STRING_5_MM "5χιλ" - #define STRING_10_MM "10χιλ" - #define STRING_100_MM "100χιλ" - #define STRING_200_MM "200χιλ" - #define STRING_1_PERCENT "1%" - #define STRING_5_PERCENT "5%" - #define STRING_10_PERCENT "10%" - #define STRING_PERCENT_VALUE "%d%%" - #define STRING_READY "Έτοιμο" - #define STRING_BUSY "Απασχολημένη επεξεργασία, παρακάλω περιμένετε ..." - #define STRING_UNCONNECTED "Δεν υπάρχει συνδεδεμένος εκτυπωτής!" - #define STRING_DISCONNECT_INFO "Τώρα μπορείτε να ελέγξετε τον εκτυπωτή από τον υπολογιστή σας!" - #define STRING_LOADING "Φόρτωση..." - #define STRING_POWER_FAILED "Συνέχεια εκτύπωσης;" - #define STRING_CONTINUE "Συνέχεια" - #define STRING_CANCEL "\u088F Ματαίωση" //Cancel Sign - #define STRING_ADJUST_TITLE "Βαθμονόμηση οθόνης αφής" - #define STRING_ADJUST_INFO "Κάντε κλικ στην κόκκινη κουκκίδα" - #define STRING_ADJUST_OK "Επιτυχία προσαρμογής" - #define STRING_ADJUST_FAILED "Η προσαρμογή απέτυχε. Δοκιμάστε ξανά" - #define STRING_WARNING "Προειδοποίηση" - #define STRING_STOP_PRINT "Διακοπή εκτύπωσης?" - #define STRING_CONFIRM "\u088E Εντάξει" //Confirm Sign - #define STRING_TFTSD "TFT SD" - #define STRING_READ_TFTSD_ERROR "Σφάλμα ανάγνωσης κάρτας SD οθόνης!" - #define STRING_TFTSD_INSERTED "Η κάρτα έχει εισαχθεί!" - #define STRING_TFTSD_REMOVED "Η κάρτα αφαιρέθηκε!" - #define STRING_U_DISK "USB Δίσκος" - #define STRING_READ_U_DISK_ERROR "Σφάλμα ανάγνωσης USB Δίσκου!" - #define STRING_U_DISK_INSERTED "Ο USB Δίσκος έχει εισαχθεί!" - #define STRING_U_DISK_REMOVED "Ο USB Δίσκος αφαιρέθηκε!" - #define STRING_ONBOARDSD "Ενσωματωμένη κάρτα SD" - #define STRING_READ_ONBOARDSD_ERROR "Σφάλμα ανάγνωσης ενσωματωμένης κάρτας SD!" - #define STRING_FILAMENT_SENSOR "Αισθητήρας νήματος" - #define STRING_FILAMENT_RUNOUT "τελείωσε το νημά!" - #define STRING_PREHEAT "Προθέρμανση" - #define STRING_PREHEAT_BOTH "Και τα δυο" - #define STRING_IS_PAUSE "Δεν είναι δυνατή η εξώθηση κατα τη δυάρκεια\nεκτύπωσης.\nΠαύση εκτύπωσης?" - #define STRING_AUTO_SHUT_DOWN "Αυτόματη απενεργοποίηση" - #define STRING_UNIFIEDMOVE "Κίνηση" - #define STRING_UNIFIEDHEAT "Θέρμανση/Ανεμιστήρας" - #define STRING_COOLDOWN "Κρυώσει" - #define STRING_EMERGENCYSTOP "Σταμάτημα έκτακτης ανάγκης" - #define STRING_TOUCH_TO_EXIT "Αγγίξτε οπουδήποτε για έξοδο" - #define STRING_MAINMENU "Μενού" - #define STRING_WAIT_TEMP_SHUT_DOWN "Περιμένετε για την \nθερμοκρασία του hotend να πέσει \nχαμηλότερα απο %d ℃" // The length of the info line is 24 characters, so the "temperatureof" will automatically be divided into "temperature of..." - #define STRING_FORCE_SHUT_DOWN "Αναγκαστική απενεργοποίηση" - #define STRING_SHUTTING_DOWN "Απενεργοποίηση..." - #define STRING_PARAMETER_SETTING "Ρυθμίσεις παραμέτρων" - #define STRING_ON "Ενεργό" - #define STRING_OFF "Σβηστό" - #define STRING_SMART "ΈΞΥΠΝΟ" - #define STRING_TERMINAL_ACK "Εμφάνιση ACK στο τερματικό" - #define STRING_INVERT_XAXIS "Αντιστρέψει X άξονα" - #define STRING_INVERT_YAXIS "Αντιστρέψει Y άξονα" - #define STRING_INVERT_ZAXIS "Αντιστρέψει Z άξονα" - #define STRING_MOVE_SPEED "Ταχύτητα κίνησης(X Y Z)" - #define STRING_KNOB_LED "LED περιστροφικού κουμπιού" - #define STRING_KNOB_LED_IDLE "Rotary Knob LED idle" - #define STRING_M0_PAUSE "Διακόπηκε λόγω M0 εντολής" - #define STRING_SEND_START_GCODE "Αρχικό Gcode προ εκτύπωσης" - #define STRING_SEND_END_GCODE "Τερματικό Gcode εφότου εκτύπωσης" - #define STRING_SEND_CANCEL_GCODE "Ματαίωση Gcode" - #define STRING_PERSISTENT_STATUS_INFO "Πληροφορίες μόνιμης κατάστασης" - #define STRING_FILE_LISTMODE "Λειτουργία λίστας προβολής αρχείων" - #define STRING_CURRENT_SETTING "Ένταση η. ρεύ. οδηγού(mA)" - #define STRING_STEPS_SETTING "Βήματα ανά χιλ" - #define STRING_MAXFEEDRATE "Μέγιστο ποσοστό τροφοδοσίας" - #define STRING_MAXACCELERATION "Μέγιστη επιτάχυνση" - #define STRING_ACCELERATION "Eπιτάχυνση" - #define STRING_PRINT_ACCELERATION "Επιτάχυνση εκτύπωσης" - #define STRING_RETRACT_ACCELERATION "Eπιτάχυνση ανάκλησης" - #define STRING_TRAVEL_ACCELERATION "Επιτάχυνση ταξιδιού" - #define STRING_JERK "Jerk" - #define STRING_JUNCTION_DEVIATION "Junction Deviation" - #define STRING_BUMP_SENSITIVITY "TMC ευαισθησία χτυπήματος" - #define STRING_FWRETRACT "FW Retraction" - #define STRING_FWRECOVER "FW Retraction Recover" - #define STRING_LIN_ADVANCE "Linear Advance" - #define STRING_RESET_SETTINGS_INFO "Όλες οι ρυθμίσεις θα \nεπαναφερθούν στις προεπιλεγμένες \nτιμές. Συνεχίσει?" - #define STRING_RESET_SETTINGS_DONE "Η επαναφορά όλων των ρυθμίσεων \nολοκληρώθηκε με επιτυχία. \nΓια πλήρη εφαρμογή,\nπαρακάλω επανεκκινήστε τη συσκευή σας." - #define STRING_INFO "\u0884 Πληροφορίες" //Info Sign - #define STRING_LCD_BRIGHTNESS "Φωτεινότητα οθόνης" - #define STRING_LCD_BRIGHTNESS_DIM "Φωτεινότητα LCD σκοτεινή" - #define STRING_LCD_DIM_IDLE_TIMER "Xρονομετρητής αδράνειας οθόνης" - #define STRING_5_SECONDS "5 Δευτ." - #define STRING_10_SECONDS "10 Δευτ." - #define STRING_30_SECONDS "30 Δευτ." - #define STRING_60_SECONDS "1 Λεπτό" - #define STRING_120_SECONDS "2 Λεπτά" - #define STRING_300_SECONDS "5 Λεπτά" - #define STRING_CUSTOM_SECONDS "Τροποποιημένες ρυθμίσεις" - #define STRING_SEQUENTIAL_MODE "Sequential mode" - #define STRING_ST7920_FULLSCREEN "Λειτουργία Marlin σε πλήρη οθόνη" - #define STRING_PLR_EN "Power loss recovery" - #define STRING_SETTING_SAVE "Save settings" - #define STRING_SETTING_RESET "Reset default settings" - #define STRING_SETTING_RESTORE "Restore settings" - #define STRING_EEPROM_SETTINGS "EEPROM" - #define STRING_EEPROM_SAVE_INFO "Save printer settings\nto EEPROM?" - #define STRING_EEPROM_RESTORE_INFO "Reload settings from\nEEPROM?" - #define STRING_EEPROM_RESET_INFO "Reset EEPROM to stock printer settings?" - #define STRING_RETRACT_FEEDRATE "Retract feedrate" - #define STRING_RETRACT_LENGTH "Retract length" - #define STRING_RETRACT_SWAP_LENGTH "Retract swap length" - #define STRING_RETRACT_Z_LIFT "Z lift on retraction" - #define STRING_RETRACT_AUTO "Auto Firmware Retract" - #define STRING_RECOVER_FEEDRATE "Recover feedrate" - #define STRING_SWAP_RECOVER_FEEDRATE "Swap recover feedrate" - #define STRING_RECOVER_LENGTH "Extra recover length" - #define STRING_SWAP_RECOVER_LENGTH "Extra recover swap length" - #define STRING_START_PRINT "Start Printing:\n %s?" - #define STRING_ACK_NOTIFICATION "ACK notification style" - #define STRING_LEVELING_EDGE_DISTANCE "Bed edge distance" - #define STRING_XY_UNLOCK "Disarm XY" - #define STRING_TUNING "Tuning" - #define STRING_PID "PID" - #define STRING_PID_TITLE "PID autotune" - #define STRING_PID_START_INFO "PID autotune may take\nsome time to complete.\nContinue?" - #define STRING_PID_START_INFO_2 "PID autotune in progress!" - #define STRING_PID_START_INFO_3 "Do not touch the screen until completed (green LED ON)!" - #define STRING_TUNE_EXTRUDER "Tune steps" - #define STRING_TUNE_EXT_EXTRUDE_100 "Ext. 100mm" - #define STRING_TUNE_EXT_TEMP "Extruder tuning | Heat" - #define STRING_TUNE_EXT_TEMPLOW "Desired temperature too low!\nMinimum temperature: %d C" - #define STRING_TUNE_EXT_DESIREDVAL "Temperature is not yet at the desired value" - #define STRING_TUNE_EXT_MARK120MM "Mark 120 mm on your fillament\nPress '%s' when ready\nMeasure remaining length\nafter extruding" - #define STRING_TUNE_EXT_HEATOFF "Turn the heater off?" - #define STRING_TUNE_EXT_ADJ_ESTEPS "Adjust E-Steps" - #define STRING_TUNE_EXT_ESTEPS_SAVED "New E-steps saved!\nDon't forget to\nsave it in EEPROM\nNew value: %0.2f" - #define STRING_TUNE_EXT_MEASURED "Length remaining:" - #define STRING_TUNE_EXT_OLD_ESTEP "Old e-steps: %0.2f" - #define STRING_TUNE_EXT_NEW_ESTEP "New e-steps: %0.2f" - #define STRING_CONNECTION_SETTINGS "Connection" - #define STRING_OFFSET_TOOL "Offset 2nd Nozzle" - #define STRING_HYBRID_THRESHOLD "TMC HybridThreshold" - #define STRING_NOTIFICATIONS "Notifications" - #define STRING_MESH_EDITOR "Mesh edit" - #define STRING_MESH_TUNER "Mesh tuner" - #define STRING_CASE_LIGHT "Case light" +#define STRING_LANGUAGE "Ελληνικά" +#define STRING_HEAT "Θέρμανση" +#define STRING_MOVE "Μετακίνηση" +#define STRING_HOME "Αυτο-Κατεύθυνση" +#define STRING_DISABLE_STEPPERS "Disarm All" +#define STRING_PRINT "Εκτύπωση" +#define STRING_EXTRUDE "Εκβολή" +#define STRING_FAN "Ανεμιστήρας" +#define STRING_SETTINGS "Ρυθμίσεις" +#define STRING_SCREEN_SETTINGS "Οθόνη" +#define STRING_MACHINE_SETTINGS "Μηχανήματος" +#define STRING_FEATURE_SETTINGS "Χαρακτηριστικών" +#define STRING_SOUND "Sound" +#define STRING_TOUCH_SOUND "Touch sounds" +#define STRING_TOAST_SOUND "Toast Notifications" +#define STRING_ALERT_SOUND "Popups and Alerts" +#define STRING_PREHEATDONE_SOUND "Preheat done notification" +#define STRING_SHUT_DOWN "Απενεργοποίηση" +#define STRING_RGB_SETTINGS "Χρώμα LED" +#define STRING_RGB_OFF "Απενεργοποίηση LED" +#define STRING_TERMINAL "Τερματικό" +#define STRING_CUSTOM "Τροποποιημένο" +#define STRING_LEVELING "Ισοπέδωση" +#define STRING_POINT_1 "Σημείο 1" +#define STRING_POINT_2 "Σημείο 2" +#define STRING_POINT_3 "Σημείο 3" +#define STRING_POINT_4 "Σημείο 4" +#define STRING_POINT_5 "Σημείο 5" +#define STRING_BED_LEVELING "Bed Level" +#define STRING_BL_COMPLETE "Bed Leveling Complete" +#define STRING_BL_SMART_FILL "Missing probe points\nhave been smart filled.\n \nNote: remember to save!" +#define STRING_BL_ENABLE "BL: on" +#define STRING_BL_DISABLE "BL: off" +#define STRING_ABL "ABL" +#define STRING_BBL "BBL" +#define STRING_UBL "UBL" +#define STRING_MBL "MBL" +#define STRING_MBL_SETTINGS "Mesh Bed Leveling" +#define STRING_ABL_SETTINGS "Auto Bed Leveling" +#define STRING_ABL_SETTINGS_BBL "Bilinear Bed Leveling" +#define STRING_ABL_SETTINGS_UBL "Unified Bed Leveling" +#define STRING_ABL_SETTINGS_UBL_SAVE "Save to slot" +#define STRING_ABL_SETTINGS_UBL_LOAD "Load from slot" +#define STRING_ABL_SLOT0 "Slot 0" +#define STRING_ABL_SLOT1 "Slot 1" +#define STRING_ABL_SLOT2 "Slot 2" +#define STRING_ABL_SLOT3 "Slot 3" +#define STRING_ABL_SLOT_EEPROM "Remember slot for next\nreboot? (Save EEPROM)" +#define STRING_ABL_Z "Z Fade" +#define STRING_BLTOUCH "BLTouch" +#define STRING_BLTOUCH_TEST "Δοκιμή" +#define STRING_BLTOUCH_DEPLOY "Επέκταση" +#define STRING_BLTOUCH_STOW "Aπόσυρση" +#define STRING_BLTOUCH_REPEAT "Επανάληψη" +#define STRING_Z_OFFSET "Αντιστάθμιση Z" +#define STRING_PROBE_OFFSET "Αντιστάθμιση Καθετήρας" +#define STRING_HOME_OFFSET "Home Offset" +#define STRING_CONFIRMATION "Are you sure?" +#define STRING_DOWN "Down" +#define STRING_UP "Up" +#define STRING_SAVE "Αποθήκευση" +#define STRING_RESTORE "Restore" +#define STRING_RESET "Επαναφορά" +#define STRING_DEFAULT "Default" +#define STRING_CLEAR "Clear" +#define STRING_NEXT "Next" +#define STRING_DISTANCE "Distance" +#define STRING_INVALID_VALUE "Invalid value(s)" +#define STRING_TIMEOUT_REACHED "Timeout reached!" +#define STRING_PROCESS_RUNNING "Process already running!" +#define STRING_PROCESS_COMPLETED "Process completed!" +#define STRING_PROCESS_ABORTED "Process aborted!" +#define STRING_INC "Αύξηση" +#define STRING_DEC "Μείωση" +#define STRING_NOZZLE "Στόμιο" +#define STRING_BED "Θερμή Βάση" +#define STRING_CHAMBER "Chamber" +#define STRING_START "Start" +#define STRING_STOP "Τερμάτιση" +#define STRING_BACK "Πίσω" +#define STRING_PAGE_UP "Σελίδα πάνω" +#define STRING_PAGE_DOWN "Σελίδα κάτω" +#define STRING_PAUSE "Παύση" +#define STRING_RESUME "Ξαναρχίσει" +#define STRING_LOAD "Φόρτωση" +#define STRING_UNLOAD "Ξεφόρτωση" +#define STRING_SLOW_SPEED "Αργά" +#define STRING_NORMAL_SPEED "Κανονικά" +#define STRING_FAST_SPEED "Γρήγορα" +#define STRING_FAN_FULL_SPEED "Ολοταχώς" +#define STRING_FAN_HALF_SPEED "Μισή ταχύτητα" +#define STRING_ROTATE_UI "Περιστροφή UI" +#define STRING_TOUCHSCREEN_ADJUST "Προσαρμογή TOUCH" +#define STRING_MORE "Περισσότερα" +#define STRING_SCREEN_INFO "Πληροφορίες" +#define STRING_STATUS "ΚΑΤΑΣΤΑΣΗ" +#define STRING_SIMULATOR_BG_COLOR "Marlin simulator background color" +#define STRING_SIMULATOR_FONT_COLOR "Marlin simulator font color" +#define STRING_WHITE "Άσπρο" +#define STRING_BLACK "Μάυρο" +#define STRING_BLUE "Μπλέ" +#define STRING_RED "Κόκκινο" +#define STRING_GREEN "Πράσινο" +#define STRING_CYAN "Κυανό" +#define STRING_YELLOW "Κίτρινο" +#define STRING_BROWN "Καφέ" +#define STRING_GRAY "Γκρί" +#define STRING_ORANGE "Πορτοκάλι" +#define STRING_INDIGO "Ινδικό" +#define STRING_VIOLET "Βιολετί" +#define STRING_MAGENTA "Πορφύρα" +#define STRING_PURPLE "Μωβ" +#define STRING_LIME "Πρασινοκίτρινο" +#define STRING_DARKBLUE "Σκούρο μπλε" +#define STRING_DARKGREEN "Σκούρο πράσινο" +#define STRING_DARKGRAY "Σκούρο γκρίζο" +#define STRING_DISCONNECT "Αποσυνδέσει" +#define STRING_BAUDRATE "BaudRate" +#define STRING_PERCENTAGE "Ποσοστό" +#define STRING_BABYSTEP "Μικροβήμα" +#define STRING_PERCENTAGE_SPEED "Ταχύτητα" +#define STRING_PERCENTAGE_FLOW "Ροή" +#define STRING_VALUE_ZERO "Μηδέν" +#define STRING_1_DEGREE "1℃" +#define STRING_5_DEGREE "5℃" +#define STRING_10_DEGREE "10℃" +#define STRING_X_INC "X+" +#define STRING_Y_INC "Y+" +#define STRING_Z_INC "Z+" +#define STRING_X_DEC "X-" +#define STRING_Y_DEC "Y-" +#define STRING_Z_DEC "Z-" +#define STRING_X "X" +#define STRING_Y "Y" +#define STRING_Z "Z" +#define STRING_001_MM "0.01χιλ" +#define STRING_01_MM "0.1χιλ" +#define STRING_1_MM "1χιλ" +#define STRING_5_MM "5χιλ" +#define STRING_10_MM "10χιλ" +#define STRING_100_MM "100χιλ" +#define STRING_200_MM "200χιλ" +#define STRING_1_PERCENT "1%" +#define STRING_5_PERCENT "5%" +#define STRING_10_PERCENT "10%" +#define STRING_PERCENT_VALUE "%d%%" +#define STRING_READY "Έτοιμο" +#define STRING_BUSY "Απασχολημένη επεξεργασία, παρακάλω περιμένετε ..." +#define STRING_UNCONNECTED "Δεν υπάρχει συνδεδεμένος εκτυπωτής!" +#define STRING_DISCONNECT_INFO "Τώρα μπορείτε να ελέγξετε τον εκτυπωτή από τον υπολογιστή σας!" +#define STRING_LOADING "Φόρτωση..." +#define STRING_POWER_FAILED "Συνέχεια εκτύπωσης;" +#define STRING_CONTINUE "Συνέχεια" +#define STRING_CANCEL "\u088F Ματαίωση" //Cancel Sign +#define STRING_ADJUST_TITLE "Βαθμονόμηση οθόνης αφής" +#define STRING_ADJUST_INFO "Κάντε κλικ στην κόκκινη κουκκίδα" +#define STRING_ADJUST_OK "Επιτυχία προσαρμογής" +#define STRING_ADJUST_FAILED "Η προσαρμογή απέτυχε. Δοκιμάστε ξανά" +#define STRING_WARNING "Προειδοποίηση" +#define STRING_STOP_PRINT "Διακοπή εκτύπωσης?" +#define STRING_CONFIRM "\u088E Εντάξει" //Confirm Sign +#define STRING_TFTSD "TFT SD" +#define STRING_READ_TFTSD_ERROR "Σφάλμα ανάγνωσης κάρτας SD οθόνης!" +#define STRING_TFTSD_INSERTED "Η κάρτα έχει εισαχθεί!" +#define STRING_TFTSD_REMOVED "Η κάρτα αφαιρέθηκε!" +#define STRING_U_DISK "USB Δίσκος" +#define STRING_READ_U_DISK_ERROR "Σφάλμα ανάγνωσης USB Δίσκου!" +#define STRING_U_DISK_INSERTED "Ο USB Δίσκος έχει εισαχθεί!" +#define STRING_U_DISK_REMOVED "Ο USB Δίσκος αφαιρέθηκε!" +#define STRING_ONBOARDSD "Ενσωματωμένη κάρτα SD" +#define STRING_READ_ONBOARDSD_ERROR "Σφάλμα ανάγνωσης ενσωματωμένης κάρτας SD!" +#define STRING_FILAMENT_SENSOR "Αισθητήρας νήματος" +#define STRING_FILAMENT_RUNOUT "τελείωσε το νημά!" +#define STRING_PREHEAT "Προθέρμανση" +#define STRING_PREHEAT_BOTH "Και τα δυο" +#define STRING_IS_PAUSE "Δεν είναι δυνατή η εξώθηση κατα τη δυάρκεια\nεκτύπωσης.\nΠαύση εκτύπωσης?" +#define STRING_AUTO_SHUT_DOWN "Αυτόματη απενεργοποίηση" +#define STRING_UNIFIEDMOVE "Κίνηση" +#define STRING_UNIFIEDHEAT "Θέρμανση/Ανεμιστήρας" +#define STRING_COOLDOWN "Κρυώσει" +#define STRING_EMERGENCYSTOP "Σταμάτημα έκτακτης ανάγκης" +#define STRING_TOUCH_TO_EXIT "Αγγίξτε οπουδήποτε για έξοδο" +#define STRING_MAINMENU "Μενού" +#define STRING_WAIT_TEMP_SHUT_DOWN "Περιμένετε για την \nθερμοκρασία του hotend να πέσει \nχαμηλότερα απο %d ℃" // The length of the info line is 24 characters, so the "temperatureof" will automatically be divided into "temperature of..." +#define STRING_FORCE_SHUT_DOWN "Αναγκαστική απενεργοποίηση" +#define STRING_SHUTTING_DOWN "Απενεργοποίηση..." +#define STRING_PARAMETER_SETTING "Ρυθμίσεις παραμέτρων" +#define STRING_ON "Ενεργό" +#define STRING_OFF "Σβηστό" +#define STRING_SMART "ΈΞΥΠΝΟ" +#define STRING_TERMINAL_ACK "Εμφάνιση ACK στο τερματικό" +#define STRING_INVERT_XAXIS "Αντιστρέψει X άξονα" +#define STRING_INVERT_YAXIS "Αντιστρέψει Y άξονα" +#define STRING_INVERT_ZAXIS "Αντιστρέψει Z άξονα" +#define STRING_MOVE_SPEED "Ταχύτητα κίνησης(X Y Z)" +#define STRING_KNOB_LED "LED περιστροφικού κουμπιού" +#define STRING_KNOB_LED_IDLE "Rotary Knob LED idle" +#define STRING_M0_PAUSE "Διακόπηκε λόγω M0 εντολής" +#define STRING_SEND_START_GCODE "Αρχικό Gcode προ εκτύπωσης" +#define STRING_SEND_END_GCODE "Τερματικό Gcode εφότου εκτύπωσης" +#define STRING_SEND_CANCEL_GCODE "Ματαίωση Gcode" +#define STRING_PERSISTENT_STATUS_INFO "Πληροφορίες μόνιμης κατάστασης" +#define STRING_FILE_LISTMODE "Λειτουργία λίστας προβολής αρχείων" +#define STRING_CURRENT_SETTING "Ένταση η. ρεύ. οδηγού(mA)" +#define STRING_STEPS_SETTING "Βήματα ανά χιλ" +#define STRING_MAXFEEDRATE "Μέγιστο ποσοστό τροφοδοσίας" +#define STRING_MAXACCELERATION "Μέγιστη επιτάχυνση" +#define STRING_ACCELERATION "Eπιτάχυνση" +#define STRING_PRINT_ACCELERATION "Επιτάχυνση εκτύπωσης" +#define STRING_RETRACT_ACCELERATION "Eπιτάχυνση ανάκλησης" +#define STRING_TRAVEL_ACCELERATION "Επιτάχυνση ταξιδιού" +#define STRING_JERK "Jerk" +#define STRING_JUNCTION_DEVIATION "Junction Deviation" +#define STRING_BUMP_SENSITIVITY "TMC ευαισθησία χτυπήματος" +#define STRING_FWRETRACT "FW Retraction" +#define STRING_FWRECOVER "FW Retraction Recover" +#define STRING_LIN_ADVANCE "Linear Advance" +#define STRING_RESET_SETTINGS_INFO "Όλες οι ρυθμίσεις θα \nεπαναφερθούν στις προεπιλεγμένες \nτιμές. Συνεχίσει?" +#define STRING_RESET_SETTINGS_DONE "Η επαναφορά όλων των ρυθμίσεων \nολοκληρώθηκε με επιτυχία. \nΓια πλήρη εφαρμογή,\nπαρακάλω επανεκκινήστε τη συσκευή σας." +#define STRING_INFO "\u0884 Πληροφορίες" //Info Sign +#define STRING_LCD_BRIGHTNESS "Φωτεινότητα οθόνης" +#define STRING_LCD_BRIGHTNESS_DIM "Φωτεινότητα LCD σκοτεινή" +#define STRING_LCD_DIM_IDLE_TIMER "Xρονομετρητής αδράνειας οθόνης" +#define STRING_5_SECONDS "5 Δευτ." +#define STRING_10_SECONDS "10 Δευτ." +#define STRING_30_SECONDS "30 Δευτ." +#define STRING_60_SECONDS "1 Λεπτό" +#define STRING_120_SECONDS "2 Λεπτά" +#define STRING_300_SECONDS "5 Λεπτά" +#define STRING_CUSTOM_SECONDS "Τροποποιημένες ρυθμίσεις" +#define STRING_SEQUENTIAL_MODE "Sequential mode" +#define STRING_ST7920_FULLSCREEN "Λειτουργία Marlin σε πλήρη οθόνη" +#define STRING_PLR_EN "Power loss recovery" +#define STRING_SETTING_SAVE "Save settings" +#define STRING_SETTING_RESET "Reset default settings" +#define STRING_SETTING_RESTORE "Restore settings" +#define STRING_EEPROM_SETTINGS "EEPROM" +#define STRING_EEPROM_SAVE_INFO "Save printer settings\nto EEPROM?" +#define STRING_EEPROM_RESTORE_INFO "Reload settings from\nEEPROM?" +#define STRING_EEPROM_RESET_INFO "Reset EEPROM to stock printer settings?" +#define STRING_RETRACT_FEEDRATE "Retract feedrate" +#define STRING_RETRACT_LENGTH "Retract length" +#define STRING_RETRACT_SWAP_LENGTH "Retract swap length" +#define STRING_RETRACT_Z_LIFT "Z lift on retraction" +#define STRING_RETRACT_AUTO "Auto Firmware Retract" +#define STRING_RECOVER_FEEDRATE "Recover feedrate" +#define STRING_SWAP_RECOVER_FEEDRATE "Swap recover feedrate" +#define STRING_RECOVER_LENGTH "Extra recover length" +#define STRING_SWAP_RECOVER_LENGTH "Extra recover swap length" +#define STRING_START_PRINT "Start Printing:\n %s?" +#define STRING_ACK_NOTIFICATION "ACK notification style" +#define STRING_LEVELING_EDGE_DISTANCE "Bed edge distance" +#define STRING_XY_UNLOCK "Disarm XY" +#define STRING_TUNING "Tuning" +#define STRING_PID "PID" +#define STRING_PID_TITLE "PID autotune" +#define STRING_PID_START_INFO "PID autotune may take\nsome time to complete.\nContinue?" +#define STRING_PID_START_INFO_2 "PID autotune in progress!" +#define STRING_PID_START_INFO_3 "Do not touch the screen until completed (green LED ON)!" +#define STRING_TUNE_EXTRUDER "Tune steps" +#define STRING_TUNE_EXT_EXTRUDE_100 "Ext. 100mm" +#define STRING_TUNE_EXT_TEMP "Extruder tuning | Heat" +#define STRING_TUNE_EXT_TEMPLOW "Desired temperature too low!\nMinimum temperature: %d C" +#define STRING_TUNE_EXT_DESIREDVAL "Temperature is not yet at the desired value" +#define STRING_TUNE_EXT_MARK120MM "Mark 120 mm on your fillament\nPress '%s' when ready\nMeasure remaining length\nafter extruding" +#define STRING_TUNE_EXT_HEATOFF "Turn the heater off?" +#define STRING_TUNE_EXT_ADJ_ESTEPS "Adjust E-Steps" +#define STRING_TUNE_EXT_ESTEPS_SAVED "New E-steps saved!\nDon't forget to\nsave it in EEPROM\nNew value: %0.2f" +#define STRING_TUNE_EXT_MEASURED "Length remaining:" +#define STRING_TUNE_EXT_OLD_ESTEP "Old e-steps: %0.2f" +#define STRING_TUNE_EXT_NEW_ESTEP "New e-steps: %0.2f" +#define STRING_CONNECTION_SETTINGS "Connection" +#define STRING_OFFSET_TOOL "Offset 2nd Nozzle" +#define STRING_HYBRID_THRESHOLD "TMC HybridThreshold" +#define STRING_NOTIFICATIONS "Notifications" +#define STRING_MESH_EDITOR "Mesh edit" +#define STRING_MESH_TUNER "Mesh tuner" +#define STRING_CASE_LIGHT "Case light" diff --git a/TFT/src/User/API/Language/language_hu.h b/TFT/src/User/API/Language/language_hu.h index 77b00dfada..c17537f252 100644 --- a/TFT/src/User/API/Language/language_hu.h +++ b/TFT/src/User/API/Language/language_hu.h @@ -1,279 +1,280 @@ #pragma once - #define STRING_LANGUAGE "Magyar" - #define STRING_HEAT "Fűtés" - #define STRING_MOVE "Mozgás" - #define STRING_HOME "Végállás" - #define STRING_DISABLE_STEPPERS "Léptetők" - #define STRING_PRINT "Nyomtatás" - #define STRING_EXTRUDE "Adagolás" - #define STRING_FAN "Hűtés" - #define STRING_SETTINGS "Opciók" - #define STRING_SCREEN_SETTINGS "Kijelző" - #define STRING_MACHINE_SETTINGS "Gép" - #define STRING_FEATURE_SETTINGS "Funkciók" - #define STRING_SOUND "Hangok" - #define STRING_TOUCH_SOUND "Érintés hangja" - #define STRING_TOAST_SOUND "Fűtő értesítések" - #define STRING_ALERT_SOUND "Felugró riasztások" - #define STRING_SHUT_DOWN "Leállítás" - #define STRING_RGB_SETTINGS "LED Szín" - #define STRING_RGB_OFF "LED KI" - #define STRING_TERMINAL "Terminál" - #define STRING_CUSTOM "Egyedi" - #define STRING_LEVELING "Szintezés" - #define STRING_POINT_1 "1. pont" - #define STRING_POINT_2 "2. pont" - #define STRING_POINT_3 "3. pont" - #define STRING_POINT_4 "4. pont" - #define STRING_POINT_5 "5. pont" - #define STRING_BED_LEVELING "Ágyszint" - #define STRING_BL_COMPLETE "Ágy Szintezése Sikeres" - #define STRING_BL_SMART_FILL "A hiányzó szonda pontok\nkitöltésre kerültek.\nMegjegyzés: Mentsd el!" - #define STRING_BL_ENABLE "BL: be" - #define STRING_BL_DISABLE "BL: ki" - #define STRING_ABL "ABL" - #define STRING_BBL "BBL" - #define STRING_UBL "UBL" - #define STRING_MBL "MBL" - #define STRING_MBL_SETTINGS "Kézi Rács Szintezés" - #define STRING_ABL_SETTINGS "Automata Szintezés" - #define STRING_ABL_SETTINGS_BBL "Bilineáris Szintezés" - #define STRING_ABL_SETTINGS_UBL "Egységes Szintezés" - #define STRING_ABL_SETTINGS_UBL_SAVE "Mentés szlotba" - #define STRING_ABL_SETTINGS_UBL_LOAD "Betöltés szlotból" - #define STRING_ABL_SLOT0 "Szlot 0" - #define STRING_ABL_SLOT1 "Szlot 1" - #define STRING_ABL_SLOT2 "Szlot 2" - #define STRING_ABL_SLOT3 "Szlot 3" - #define STRING_ABL_SLOT_EEPROM "Emlékezzen a következő\nújraindításnál? (EEPROM Mentése)" - #define STRING_ABL_Z "Z Áttűnés" - #define STRING_BLTOUCH "BLTouch" - #define STRING_BLTOUCH_TEST "Teszt" - #define STRING_BLTOUCH_DEPLOY "Telepítés" - #define STRING_BLTOUCH_STOW "Elhelyezés" - #define STRING_BLTOUCH_REPEAT "Ismétlés" - #define STRING_Z_OFFSET "Z Eltolás" - #define STRING_PROBE_OFFSET "Szonda Eltolás" - #define STRING_HOME_OFFSET "Home Offset" - #define STRING_CONFIRMATION "Biztos vagy benne?" - #define STRING_DOWN "Le" - #define STRING_UP "Fel" - #define STRING_SAVE "Mentés" - #define STRING_RESTORE "Betöltés" - #define STRING_RESET "Újratölt" - #define STRING_DEFAULT "Alapért." - #define STRING_CLEAR "Tiszta" - #define STRING_NEXT "Tovább" - #define STRING_DISTANCE "Távolság" - #define STRING_INVALID_VALUE "Nincs érvényes érték/s megadva" - #define STRING_TIMEOUT_REACHED "Időkorlát elérve!" - #define STRING_PROCESS_RUNNING "Folyamat fut!" - #define STRING_PROCESS_COMPLETED "Folyamat befejezve!" - #define STRING_PROCESS_ABORTED "Folyamat megszakítva!" - #define STRING_INC "Növel" - #define STRING_DEC "Csökkent" - #define STRING_NOZZLE "Fej" - #define STRING_BED "Ágy" - #define STRING_CHAMBER "Kamra" - #define STRING_START "Kezdés" - #define STRING_STOP "Állj" - #define STRING_BACK "Vissza" - #define STRING_PAGE_UP "Fel" - #define STRING_PAGE_DOWN "Le" - #define STRING_PAUSE "Szünet" - #define STRING_RESUME "Folytatás" - #define STRING_LOAD "Betöltés" - #define STRING_UNLOAD "Kiadás" - #define STRING_SLOW_SPEED "Lassú" - #define STRING_NORMAL_SPEED "Normál" - #define STRING_FAST_SPEED "Gyors" - #define STRING_FAN_FULL_SPEED "Teljes" - #define STRING_FAN_HALF_SPEED "Fél" - #define STRING_ROTATE_UI "Forgatás" - #define STRING_TOUCHSCREEN_ADJUST "Igazítás" - #define STRING_MORE "Több" - #define STRING_SCREEN_INFO "Infó" - #define STRING_STATUS "Státusz" - #define STRING_SIMULATOR_BG_COLOR "Marlin mód háttérszín" - #define STRING_SIMULATOR_FONT_COLOR "Marlin mód betűszín" - #define STRING_WHITE "Fehér" - #define STRING_BLACK "Fekete" - #define STRING_BLUE "Kék" - #define STRING_RED "Piros" - #define STRING_GREEN "Zöld" - #define STRING_CYAN "Cián" - #define STRING_YELLOW "Sárga" - #define STRING_BROWN "Barna" - #define STRING_GRAY "Szürke" - #define STRING_ORANGE "Narancs" - #define STRING_INDIGO "Indigó" - #define STRING_VIOLET "Viola" - #define STRING_MAGENTA "Bíborvörös" - #define STRING_PURPLE "Lila" - #define STRING_LIME "Mész" - #define STRING_DARKBLUE "Sötétkék" - #define STRING_DARKGREEN "Sötétzöld" - #define STRING_DARKGRAY "Sötétszürke" - #define STRING_DISCONNECT "Leválaszt" - #define STRING_BAUDRATE "Kapcsolat" - #define STRING_PERCENTAGE "Százalék" - #define STRING_BABYSTEP "Mikrolépés" - #define STRING_PERCENTAGE_SPEED "Sebesség" - #define STRING_PERCENTAGE_FLOW "Folyás" - #define STRING_VALUE_ZERO "Nulla" - #define STRING_1_DEGREE "1℃" - #define STRING_5_DEGREE "5℃" - #define STRING_10_DEGREE "10℃" - #define STRING_X_INC "X+" - #define STRING_Y_INC "Y+" - #define STRING_Z_INC "Z+" - #define STRING_X_DEC "X-" - #define STRING_Y_DEC "Y-" - #define STRING_Z_DEC "Z-" - #define STRING_X "X" - #define STRING_Y "Y" - #define STRING_Z "Z" - #define STRING_001_MM "0.01mm" - #define STRING_01_MM "0.1mm" - #define STRING_1_MM "1mm" - #define STRING_5_MM "5mm" - #define STRING_10_MM "10mm" - #define STRING_100_MM "100mm" - #define STRING_200_MM "200mm" - #define STRING_1_PERCENT "1%" - #define STRING_5_PERCENT "5%" - #define STRING_10_PERCENT "10%" - #define STRING_PERCENT_VALUE "%d%%" - #define STRING_READY "Kész" - #define STRING_BUSY "Feldolgozás alatt, kérlek várj..." - #define STRING_UNCONNECTED "Nincs nyomtató csatlakoztatva!" - #define STRING_DISCONNECT_INFO "Most a számítógépéről vezérelheted a nyomtatót!" - #define STRING_LOADING "Betöltés..." - #define STRING_POWER_FAILED "Folytatod a nyomtatást?" - #define STRING_CONTINUE "Folytatás" - #define STRING_CANCEL "Mégse" - #define STRING_ADJUST_TITLE "Érintőképernyő kalibrálása." - #define STRING_ADJUST_INFO "Kattints a piros pontra." - #define STRING_ADJUST_OK "Kalibrálás sikeres." - #define STRING_ADJUST_FAILED "A kalibrálás sikertelen, próbáld újra" - #define STRING_WARNING "Figyelem!" - #define STRING_STOP_PRINT "Megállítod a nyomtatást?" - #define STRING_CONFIRM "Igen" - #define STRING_TFTSD "TFT-SD" - #define STRING_READ_TFTSD_ERROR "TFT-SD olvasási hiba!" - #define STRING_TFTSD_INSERTED "SD-Kártya behelyezve!" - #define STRING_TFTSD_REMOVED "SD-Kártya eltávolítva!" - #define STRING_U_DISK "USB Tár" - #define STRING_READ_U_DISK_ERROR "USB olvasási hiba!" - #define STRING_U_DISK_INSERTED "USB behelyezve!" - #define STRING_U_DISK_REMOVED "USB eltávolítva!" - #define STRING_ONBOARDSD "Lap-SD" - #define STRING_READ_ONBOARDSD_ERROR "Alaplap-SD olvasási hiba!" - #define STRING_FILAMENT_SENSOR "Filament érzékelő" - #define STRING_FILAMENT_RUNOUT "Filament kifutás!" - #define STRING_PREHEAT "Előfűtés" - #define STRING_PREHEAT_BOTH "Mindkettő" - #define STRING_IS_PAUSE "Nem sikerült az adagolás\na nyomtatás alatt.\nSzünetelteted a nyomtatást?" - #define STRING_AUTO_SHUT_DOWN "Automata kikapcsolás" - #define STRING_UNIFIEDMOVE "Mozgás" - #define STRING_UNIFIEDHEAT "Fűt/Hűt" - #define STRING_COOLDOWN "Lehűtés" - #define STRING_EMERGENCYSTOP "VészSTOP" - #define STRING_TOUCH_TO_EXIT "Érintsd meg a kilépéshez." - #define STRING_MAINMENU "Főmenü" - #define STRING_WAIT_TEMP_SHUT_DOWN "Várd meg a fej\nvisszahűlését.%d℃" // Várj, míg a fej a megadott ℃ alá hűl. - #define STRING_FORCE_SHUT_DOWN "Kényszerítés" - #define STRING_SHUTTING_DOWN "Leállítás..." - #define STRING_PARAMETER_SETTING "Tényezők" - #define STRING_ON "BE" - #define STRING_OFF "KI" - #define STRING_SMART "OKOS" - #define STRING_TERMINAL_ACK "ACK Megjelenítése" - #define STRING_INVERT_XAXIS "X megfordítása" - #define STRING_INVERT_YAXIS "Y megfordítása" - #define STRING_INVERT_ZAXIS "Z megfordítása" - #define STRING_MOVE_SPEED "Mozg.Sebesség (X-Y-Z)" - #define STRING_KNOB_LED "Forgatógomb LED" - #define STRING_KNOB_LED_IDLE "Forgatógomb tétlen" - #define STRING_M0_PAUSE "Szünetelés M0 parancsal" - #define STRING_SEND_START_GCODE "Kezdő G-Kód" - #define STRING_SEND_END_GCODE "Befejező G-Kód" - #define STRING_SEND_CANCEL_GCODE "Leállító G-Kód" - #define STRING_PERSISTENT_STATUS_INFO "Perzisztens állapotinfó" - #define STRING_FILE_LISTMODE "Fájlnéző listamód" - #define STRING_CURRENT_SETTING "Motoráramok Beállítása" - #define STRING_STEPS_SETTING "Lépés Beállítás" - #define STRING_MAXFEEDRATE "Max Előtolási Sebesség" - #define STRING_MAXACCELERATION "Max Gyorsulás" - #define STRING_ACCELERATION "Gyorsulás" - #define STRING_PRINT_ACCELERATION "Nyomtatás Gyorsulás" - #define STRING_RETRACT_ACCELERATION "Adagoló Gyorsulása" - #define STRING_TRAVEL_ACCELERATION "Utazási Gyorsulás" - #define STRING_JERK "Rántás" - #define STRING_JUNCTION_DEVIATION "Junction Deviation" - #define STRING_BUMP_SENSITIVITY "TMC ütközés érzékenység" - #define STRING_FWRETRACT "FW Visszahúzás" - #define STRING_FWRECOVER "FW Visszahúzás helyreáll." - #define STRING_LIN_ADVANCE "Lineáris Haladás" - #define STRING_RESET_SETTINGS_INFO "Minden beállítás vissza\nfog állni alapértelmezett\nértékre. Folytatod?" - #define STRING_RESET_SETTINGS_DONE "A beállítások visszaállítása\nsikeresen megtörtént.\nAz aktiváláshoz indítsd\nújra az eszközt." - #define STRING_INFO "Infó" - #define STRING_LCD_BRIGHTNESS "LCD Fényerősség" - #define STRING_LCD_BRIGHTNESS_DIM "LCD Halványítás" - #define STRING_LCD_DIM_IDLE_TIMER "LCD Halványítási idő" - #define STRING_5_SECONDS "5 Mp." - #define STRING_10_SECONDS "10 Mp." - #define STRING_30_SECONDS "30 Mp." - #define STRING_60_SECONDS "1 Perc." - #define STRING_120_SECONDS "2 Perc." - #define STRING_300_SECONDS "5 Perc." - #define STRING_CUSTOM_SECONDS "Egyedi" - #define STRING_SEQUENTIAL_MODE "Sequential mode" - #define STRING_ST7920_FULLSCREEN "Nagyképernyős Marlin mód" - #define STRING_PLR_EN "Áramkiesés helyreálítása" - #define STRING_SETTING_SAVE "Beállítások mentése" - #define STRING_SETTING_RESET "Beállítás visszaállítása" - #define STRING_SETTING_RESTORE "Beállítások újratöltése" - #define STRING_EEPROM_SETTINGS "EEPROM" - #define STRING_EEPROM_SAVE_INFO "Menti a megváltozott\nbeállításokat az EEPROM-ba?" - #define STRING_EEPROM_RESTORE_INFO "Betöltöd a beállításokat az\nEEPROM-ból?" - #define STRING_EEPROM_RESET_INFO "Visszaállítod az EEPROM-ot a\ngyári beállításokra?" - #define STRING_RETRACT_FEEDRATE "Visszahúzás előtol." - #define STRING_RETRACT_LENGTH "Visszahúzás hossz" - #define STRING_RETRACT_SWAP_LENGTH "Csere hossz vissza." - #define STRING_RETRACT_Z_LIFT "Z emelése visszahú." - #define STRING_RETRACT_AUTO "Automata Visszahúzás" - #define STRING_RECOVER_FEEDRATE "Előtolás javítás" - #define STRING_SWAP_RECOVER_FEEDRATE "Csere előtolás jav." - #define STRING_RECOVER_LENGTH "Hossz javítás" - #define STRING_SWAP_RECOVER_LENGTH "Cserehossz javítás" - #define STRING_START_PRINT "Elindítod a %s\nfájl nyomtatását?" - #define STRING_ACK_NOTIFICATION "ACK egyéb típus" - #define STRING_LEVELING_EDGE_DISTANCE "Ágy szélének távolsága" - #define STRING_XY_UNLOCK "Felold XY" - #define STRING_TUNING "Tuning" - #define STRING_PID "PID" - #define STRING_PID_TITLE "PID Automatikus Hangolás" - #define STRING_PID_START_INFO "A PID önhangolása elindul.\nPercekig is eltarthat.\nFolytatod?" - #define STRING_PID_START_INFO_2 "PID Automatikus hangolása zajlik!" - #define STRING_PID_START_INFO_3 "NE ÉRINTSD meg a kijelzőt míg nincs kész! (zöld LED jelzi)!" - #define STRING_TUNE_EXTRUDER "Lépés hangolás" - #define STRING_TUNE_EXT_EXTRUDE_100 "Kiad 100mm" - #define STRING_TUNE_EXT_TEMP "Adagoló hangolás | Fűt" - #define STRING_TUNE_EXT_TEMPLOW "Túl alacsony a kívánt hőfok!\nMinimum hőmérséklet: %d C" - #define STRING_TUNE_EXT_DESIREDVAL "A hőfok még nem érte el a kívánt értéket" - #define STRING_TUNE_EXT_MARK120MM "A 120mm-t jelöld be a szálon\nNyomd '%s' ha kész\nMérd meg a hátralévő hosszt\nadagolás után." - #define STRING_TUNE_EXT_HEATOFF "Kikapcsolod a fűtést?" - #define STRING_TUNE_EXT_ADJ_ESTEPS "Állítható E-lépés" - #define STRING_TUNE_EXT_ESTEPS_SAVED "Új E-lépés mentve!\nNe felejtsd el\nmenteni EEPROM-ba.\nÚj érték: %0.2f" - #define STRING_TUNE_EXT_MEASURED "Fennmaradó Hossz:" - #define STRING_TUNE_EXT_OLD_ESTEP "Régi e-lépés: %0.2f" - #define STRING_TUNE_EXT_NEW_ESTEP "Új e-lépés: %0.2f" - #define STRING_CONNECTION_SETTINGS "Kapcsolat" - #define STRING_OFFSET_TOOL "Második fej eltolása" - #define STRING_HYBRID_THRESHOLD "TMC Hibrid Küszöbérték" - #define STRING_NOTIFICATIONS "Értesítések" - #define STRING_MESH_EDITOR "Mesh edit" - #define STRING_MESH_TUNER "Mesh tuner" - #define STRING_CASE_LIGHT "Case light" +#define STRING_LANGUAGE "Magyar" +#define STRING_HEAT "Fűtés" +#define STRING_MOVE "Mozgás" +#define STRING_HOME "Végállás" +#define STRING_DISABLE_STEPPERS "Léptetők" +#define STRING_PRINT "Nyomtatás" +#define STRING_EXTRUDE "Adagolás" +#define STRING_FAN "Hűtés" +#define STRING_SETTINGS "Opciók" +#define STRING_SCREEN_SETTINGS "Kijelző" +#define STRING_MACHINE_SETTINGS "Gép" +#define STRING_FEATURE_SETTINGS "Funkciók" +#define STRING_SOUND "Hangok" +#define STRING_TOUCH_SOUND "Érintés hangja" +#define STRING_TOAST_SOUND "Fűtő értesítések" +#define STRING_ALERT_SOUND "Felugró riasztások" +#define STRING_PREHEATDONE_SOUND "Preheat done notification" +#define STRING_SHUT_DOWN "Leállítás" +#define STRING_RGB_SETTINGS "LED Szín" +#define STRING_RGB_OFF "LED KI" +#define STRING_TERMINAL "Terminál" +#define STRING_CUSTOM "Egyedi" +#define STRING_LEVELING "Szintezés" +#define STRING_POINT_1 "1. pont" +#define STRING_POINT_2 "2. pont" +#define STRING_POINT_3 "3. pont" +#define STRING_POINT_4 "4. pont" +#define STRING_POINT_5 "5. pont" +#define STRING_BED_LEVELING "Ágyszint" +#define STRING_BL_COMPLETE "Ágy Szintezése Sikeres" +#define STRING_BL_SMART_FILL "A hiányzó szonda pontok\nkitöltésre kerültek.\nMegjegyzés: Mentsd el!" +#define STRING_BL_ENABLE "BL: be" +#define STRING_BL_DISABLE "BL: ki" +#define STRING_ABL "ABL" +#define STRING_BBL "BBL" +#define STRING_UBL "UBL" +#define STRING_MBL "MBL" +#define STRING_MBL_SETTINGS "Kézi Rács Szintezés" +#define STRING_ABL_SETTINGS "Automata Szintezés" +#define STRING_ABL_SETTINGS_BBL "Bilineáris Szintezés" +#define STRING_ABL_SETTINGS_UBL "Egységes Szintezés" +#define STRING_ABL_SETTINGS_UBL_SAVE "Mentés szlotba" +#define STRING_ABL_SETTINGS_UBL_LOAD "Betöltés szlotból" +#define STRING_ABL_SLOT0 "Szlot 0" +#define STRING_ABL_SLOT1 "Szlot 1" +#define STRING_ABL_SLOT2 "Szlot 2" +#define STRING_ABL_SLOT3 "Szlot 3" +#define STRING_ABL_SLOT_EEPROM "Emlékezzen a következő\nújraindításnál? (EEPROM Mentése)" +#define STRING_ABL_Z "Z Áttűnés" +#define STRING_BLTOUCH "BLTouch" +#define STRING_BLTOUCH_TEST "Teszt" +#define STRING_BLTOUCH_DEPLOY "Telepítés" +#define STRING_BLTOUCH_STOW "Elhelyezés" +#define STRING_BLTOUCH_REPEAT "Ismétlés" +#define STRING_Z_OFFSET "Z Eltolás" +#define STRING_PROBE_OFFSET "Szonda Eltolás" +#define STRING_HOME_OFFSET "Home Offset" +#define STRING_CONFIRMATION "Biztos vagy benne?" +#define STRING_DOWN "Le" +#define STRING_UP "Fel" +#define STRING_SAVE "Mentés" +#define STRING_RESTORE "Betöltés" +#define STRING_RESET "Újratölt" +#define STRING_DEFAULT "Alapért." +#define STRING_CLEAR "Tiszta" +#define STRING_NEXT "Tovább" +#define STRING_DISTANCE "Távolság" +#define STRING_INVALID_VALUE "Nincs érvényes érték/s megadva" +#define STRING_TIMEOUT_REACHED "Időkorlát elérve!" +#define STRING_PROCESS_RUNNING "Folyamat fut!" +#define STRING_PROCESS_COMPLETED "Folyamat befejezve!" +#define STRING_PROCESS_ABORTED "Folyamat megszakítva!" +#define STRING_INC "Növel" +#define STRING_DEC "Csökkent" +#define STRING_NOZZLE "Fej" +#define STRING_BED "Ágy" +#define STRING_CHAMBER "Kamra" +#define STRING_START "Kezdés" +#define STRING_STOP "Állj" +#define STRING_BACK "Vissza" +#define STRING_PAGE_UP "Fel" +#define STRING_PAGE_DOWN "Le" +#define STRING_PAUSE "Szünet" +#define STRING_RESUME "Folytatás" +#define STRING_LOAD "Betöltés" +#define STRING_UNLOAD "Kiadás" +#define STRING_SLOW_SPEED "Lassú" +#define STRING_NORMAL_SPEED "Normál" +#define STRING_FAST_SPEED "Gyors" +#define STRING_FAN_FULL_SPEED "Teljes" +#define STRING_FAN_HALF_SPEED "Fél" +#define STRING_ROTATE_UI "Forgatás" +#define STRING_TOUCHSCREEN_ADJUST "Igazítás" +#define STRING_MORE "Több" +#define STRING_SCREEN_INFO "Infó" +#define STRING_STATUS "Státusz" +#define STRING_SIMULATOR_BG_COLOR "Marlin mód háttérszín" +#define STRING_SIMULATOR_FONT_COLOR "Marlin mód betűszín" +#define STRING_WHITE "Fehér" +#define STRING_BLACK "Fekete" +#define STRING_BLUE "Kék" +#define STRING_RED "Piros" +#define STRING_GREEN "Zöld" +#define STRING_CYAN "Cián" +#define STRING_YELLOW "Sárga" +#define STRING_BROWN "Barna" +#define STRING_GRAY "Szürke" +#define STRING_ORANGE "Narancs" +#define STRING_INDIGO "Indigó" +#define STRING_VIOLET "Viola" +#define STRING_MAGENTA "Bíborvörös" +#define STRING_PURPLE "Lila" +#define STRING_LIME "Mész" +#define STRING_DARKBLUE "Sötétkék" +#define STRING_DARKGREEN "Sötétzöld" +#define STRING_DARKGRAY "Sötétszürke" +#define STRING_DISCONNECT "Leválaszt" +#define STRING_BAUDRATE "Kapcsolat" +#define STRING_PERCENTAGE "Százalék" +#define STRING_BABYSTEP "Mikrolépés" +#define STRING_PERCENTAGE_SPEED "Sebesség" +#define STRING_PERCENTAGE_FLOW "Folyás" +#define STRING_VALUE_ZERO "Nulla" +#define STRING_1_DEGREE "1℃" +#define STRING_5_DEGREE "5℃" +#define STRING_10_DEGREE "10℃" +#define STRING_X_INC "X+" +#define STRING_Y_INC "Y+" +#define STRING_Z_INC "Z+" +#define STRING_X_DEC "X-" +#define STRING_Y_DEC "Y-" +#define STRING_Z_DEC "Z-" +#define STRING_X "X" +#define STRING_Y "Y" +#define STRING_Z "Z" +#define STRING_001_MM "0.01mm" +#define STRING_01_MM "0.1mm" +#define STRING_1_MM "1mm" +#define STRING_5_MM "5mm" +#define STRING_10_MM "10mm" +#define STRING_100_MM "100mm" +#define STRING_200_MM "200mm" +#define STRING_1_PERCENT "1%" +#define STRING_5_PERCENT "5%" +#define STRING_10_PERCENT "10%" +#define STRING_PERCENT_VALUE "%d%%" +#define STRING_READY "Kész" +#define STRING_BUSY "Feldolgozás alatt, kérlek várj..." +#define STRING_UNCONNECTED "Nincs nyomtató csatlakoztatva!" +#define STRING_DISCONNECT_INFO "Most a számítógépéről vezérelheted a nyomtatót!" +#define STRING_LOADING "Betöltés..." +#define STRING_POWER_FAILED "Folytatod a nyomtatást?" +#define STRING_CONTINUE "Folytatás" +#define STRING_CANCEL "Mégse" +#define STRING_ADJUST_TITLE "Érintőképernyő kalibrálása." +#define STRING_ADJUST_INFO "Kattints a piros pontra." +#define STRING_ADJUST_OK "Kalibrálás sikeres." +#define STRING_ADJUST_FAILED "A kalibrálás sikertelen, próbáld újra" +#define STRING_WARNING "Figyelem!" +#define STRING_STOP_PRINT "Megállítod a nyomtatást?" +#define STRING_CONFIRM "Igen" +#define STRING_TFTSD "TFT-SD" +#define STRING_READ_TFTSD_ERROR "TFT-SD olvasási hiba!" +#define STRING_TFTSD_INSERTED "SD-Kártya behelyezve!" +#define STRING_TFTSD_REMOVED "SD-Kártya eltávolítva!" +#define STRING_U_DISK "USB Tár" +#define STRING_READ_U_DISK_ERROR "USB olvasási hiba!" +#define STRING_U_DISK_INSERTED "USB behelyezve!" +#define STRING_U_DISK_REMOVED "USB eltávolítva!" +#define STRING_ONBOARDSD "Lap-SD" +#define STRING_READ_ONBOARDSD_ERROR "Alaplap-SD olvasási hiba!" +#define STRING_FILAMENT_SENSOR "Filament érzékelő" +#define STRING_FILAMENT_RUNOUT "Filament kifutás!" +#define STRING_PREHEAT "Előfűtés" +#define STRING_PREHEAT_BOTH "Mindkettő" +#define STRING_IS_PAUSE "Nem sikerült az adagolás\na nyomtatás alatt.\nSzünetelteted a nyomtatást?" +#define STRING_AUTO_SHUT_DOWN "Automata kikapcsolás" +#define STRING_UNIFIEDMOVE "Mozgás" +#define STRING_UNIFIEDHEAT "Fűt/Hűt" +#define STRING_COOLDOWN "Lehűtés" +#define STRING_EMERGENCYSTOP "VészSTOP" +#define STRING_TOUCH_TO_EXIT "Érintsd meg a kilépéshez." +#define STRING_MAINMENU "Főmenü" +#define STRING_WAIT_TEMP_SHUT_DOWN "Várd meg a fej\nvisszahűlését.%d℃" // Várj, míg a fej a megadott ℃ alá hűl. +#define STRING_FORCE_SHUT_DOWN "Kényszerítés" +#define STRING_SHUTTING_DOWN "Leállítás..." +#define STRING_PARAMETER_SETTING "Tényezők" +#define STRING_ON "BE" +#define STRING_OFF "KI" +#define STRING_SMART "OKOS" +#define STRING_TERMINAL_ACK "ACK Megjelenítése" +#define STRING_INVERT_XAXIS "X megfordítása" +#define STRING_INVERT_YAXIS "Y megfordítása" +#define STRING_INVERT_ZAXIS "Z megfordítása" +#define STRING_MOVE_SPEED "Mozg.Sebesség (X-Y-Z)" +#define STRING_KNOB_LED "Forgatógomb LED" +#define STRING_KNOB_LED_IDLE "Forgatógomb tétlen" +#define STRING_M0_PAUSE "Szünetelés M0 parancsal" +#define STRING_SEND_START_GCODE "Kezdő G-Kód" +#define STRING_SEND_END_GCODE "Befejező G-Kód" +#define STRING_SEND_CANCEL_GCODE "Leállító G-Kód" +#define STRING_PERSISTENT_STATUS_INFO "Perzisztens állapotinfó" +#define STRING_FILE_LISTMODE "Fájlnéző listamód" +#define STRING_CURRENT_SETTING "Motoráramok Beállítása" +#define STRING_STEPS_SETTING "Lépés Beállítás" +#define STRING_MAXFEEDRATE "Max Előtolási Sebesség" +#define STRING_MAXACCELERATION "Max Gyorsulás" +#define STRING_ACCELERATION "Gyorsulás" +#define STRING_PRINT_ACCELERATION "Nyomtatás Gyorsulás" +#define STRING_RETRACT_ACCELERATION "Adagoló Gyorsulása" +#define STRING_TRAVEL_ACCELERATION "Utazási Gyorsulás" +#define STRING_JERK "Rántás" +#define STRING_JUNCTION_DEVIATION "Junction Deviation" +#define STRING_BUMP_SENSITIVITY "TMC ütközés érzékenység" +#define STRING_FWRETRACT "FW Visszahúzás" +#define STRING_FWRECOVER "FW Visszahúzás helyreáll." +#define STRING_LIN_ADVANCE "Lineáris Haladás" +#define STRING_RESET_SETTINGS_INFO "Minden beállítás vissza\nfog állni alapértelmezett\nértékre. Folytatod?" +#define STRING_RESET_SETTINGS_DONE "A beállítások visszaállítása\nsikeresen megtörtént.\nAz aktiváláshoz indítsd\nújra az eszközt." +#define STRING_INFO "Infó" +#define STRING_LCD_BRIGHTNESS "LCD Fényerősség" +#define STRING_LCD_BRIGHTNESS_DIM "LCD Halványítás" +#define STRING_LCD_DIM_IDLE_TIMER "LCD Halványítási idő" +#define STRING_5_SECONDS "5 Mp." +#define STRING_10_SECONDS "10 Mp." +#define STRING_30_SECONDS "30 Mp." +#define STRING_60_SECONDS "1 Perc." +#define STRING_120_SECONDS "2 Perc." +#define STRING_300_SECONDS "5 Perc." +#define STRING_CUSTOM_SECONDS "Egyedi" +#define STRING_SEQUENTIAL_MODE "Sequential mode" +#define STRING_ST7920_FULLSCREEN "Nagyképernyős Marlin mód" +#define STRING_PLR_EN "Áramkiesés helyreálítása" +#define STRING_SETTING_SAVE "Beállítások mentése" +#define STRING_SETTING_RESET "Beállítás visszaállítása" +#define STRING_SETTING_RESTORE "Beállítások újratöltése" +#define STRING_EEPROM_SETTINGS "EEPROM" +#define STRING_EEPROM_SAVE_INFO "Menti a megváltozott\nbeállításokat az EEPROM-ba?" +#define STRING_EEPROM_RESTORE_INFO "Betöltöd a beállításokat az\nEEPROM-ból?" +#define STRING_EEPROM_RESET_INFO "Visszaállítod az EEPROM-ot a\ngyári beállításokra?" +#define STRING_RETRACT_FEEDRATE "Visszahúzás előtol." +#define STRING_RETRACT_LENGTH "Visszahúzás hossz" +#define STRING_RETRACT_SWAP_LENGTH "Csere hossz vissza." +#define STRING_RETRACT_Z_LIFT "Z emelése visszahú." +#define STRING_RETRACT_AUTO "Automata Visszahúzás" +#define STRING_RECOVER_FEEDRATE "Előtolás javítás" +#define STRING_SWAP_RECOVER_FEEDRATE "Csere előtolás jav." +#define STRING_RECOVER_LENGTH "Hossz javítás" +#define STRING_SWAP_RECOVER_LENGTH "Cserehossz javítás" +#define STRING_START_PRINT "Elindítod a %s\nfájl nyomtatását?" +#define STRING_ACK_NOTIFICATION "ACK egyéb típus" +#define STRING_LEVELING_EDGE_DISTANCE "Ágy szélének távolsága" +#define STRING_XY_UNLOCK "Felold XY" +#define STRING_TUNING "Tuning" +#define STRING_PID "PID" +#define STRING_PID_TITLE "PID Automatikus Hangolás" +#define STRING_PID_START_INFO "A PID önhangolása elindul.\nPercekig is eltarthat.\nFolytatod?" +#define STRING_PID_START_INFO_2 "PID Automatikus hangolása zajlik!" +#define STRING_PID_START_INFO_3 "NE ÉRINTSD meg a kijelzőt míg nincs kész! (zöld LED jelzi)!" +#define STRING_TUNE_EXTRUDER "Lépés hangolás" +#define STRING_TUNE_EXT_EXTRUDE_100 "Kiad 100mm" +#define STRING_TUNE_EXT_TEMP "Adagoló hangolás | Fűt" +#define STRING_TUNE_EXT_TEMPLOW "Túl alacsony a kívánt hőfok!\nMinimum hőmérséklet: %d C" +#define STRING_TUNE_EXT_DESIREDVAL "A hőfok még nem érte el a kívánt értéket" +#define STRING_TUNE_EXT_MARK120MM "A 120mm-t jelöld be a szálon\nNyomd '%s' ha kész\nMérd meg a hátralévő hosszt\nadagolás után." +#define STRING_TUNE_EXT_HEATOFF "Kikapcsolod a fűtést?" +#define STRING_TUNE_EXT_ADJ_ESTEPS "Állítható E-lépés" +#define STRING_TUNE_EXT_ESTEPS_SAVED "Új E-lépés mentve!\nNe felejtsd el\nmenteni EEPROM-ba.\nÚj érték: %0.2f" +#define STRING_TUNE_EXT_MEASURED "Fennmaradó Hossz:" +#define STRING_TUNE_EXT_OLD_ESTEP "Régi e-lépés: %0.2f" +#define STRING_TUNE_EXT_NEW_ESTEP "Új e-lépés: %0.2f" +#define STRING_CONNECTION_SETTINGS "Kapcsolat" +#define STRING_OFFSET_TOOL "Második fej eltolása" +#define STRING_HYBRID_THRESHOLD "TMC Hibrid Küszöbérték" +#define STRING_NOTIFICATIONS "Értesítések" +#define STRING_MESH_EDITOR "Mesh edit" +#define STRING_MESH_TUNER "Mesh tuner" +#define STRING_CASE_LIGHT "Case light" diff --git a/TFT/src/User/API/Language/language_it.h b/TFT/src/User/API/Language/language_it.h index bf07c4e86c..83ef4a0151 100644 --- a/TFT/src/User/API/Language/language_it.h +++ b/TFT/src/User/API/Language/language_it.h @@ -1,279 +1,280 @@ #pragma once - #define STRING_LANGUAGE "Italiano" - #define STRING_HEAT "Riscalda" - #define STRING_MOVE "Muovi" - #define STRING_HOME "Home" - #define STRING_DISABLE_STEPPERS "Spegni mot" - #define STRING_PRINT "Stampa" - #define STRING_EXTRUDE "Estrudi" - #define STRING_FAN "Ventola" - #define STRING_SETTINGS "Opzioni" - #define STRING_SCREEN_SETTINGS "Schermo" - #define STRING_MACHINE_SETTINGS "Stampante" - #define STRING_FEATURE_SETTINGS "Extra" - #define STRING_SOUND "Suono" - #define STRING_TOUCH_SOUND "Suono touch" - #define STRING_TOAST_SOUND "Notifiche Toast" - #define STRING_ALERT_SOUND "Popup e Avvisi" - #define STRING_SHUT_DOWN "Spegni" - #define STRING_RGB_SETTINGS "RGB LED" - #define STRING_RGB_OFF "Spegni" - #define STRING_TERMINAL "Terminale" - #define STRING_CUSTOM "Custom" - #define STRING_LEVELING "Livella" - #define STRING_POINT_1 "Punto 1" - #define STRING_POINT_2 "Punto 2" - #define STRING_POINT_3 "Punto 3" - #define STRING_POINT_4 "Punto 4" - #define STRING_POINT_5 "Punto 5" - #define STRING_BED_LEVELING "Bed Level" - #define STRING_BL_COMPLETE "Livellamento Bed Completato" - #define STRING_BL_SMART_FILL "Punti di test mancanti\nsono stati scelti automaticamente.\n \nNote: ricorda di salvare!" - #define STRING_BL_ENABLE "BL: on" - #define STRING_BL_DISABLE "BL: off" - #define STRING_ABL "ABL" - #define STRING_BBL "BBL" - #define STRING_UBL "UBL" - #define STRING_MBL "MBL" - #define STRING_MBL_SETTINGS "Mesh Bed Leveling" - #define STRING_ABL_SETTINGS "Auto Bed Leveling" - #define STRING_ABL_SETTINGS_BBL "Bilinear Bed Leveling" - #define STRING_ABL_SETTINGS_UBL "Unified Bed Leveling" - #define STRING_ABL_SETTINGS_UBL_SAVE "Salva in slot" - #define STRING_ABL_SETTINGS_UBL_LOAD "Carica da slot" - #define STRING_ABL_SLOT0 "Slot 0" - #define STRING_ABL_SLOT1 "Slot 1" - #define STRING_ABL_SLOT2 "Slot 2" - #define STRING_ABL_SLOT3 "Slot 3" - #define STRING_ABL_SLOT_EEPROM "Ricorda lo slot per il prossimo\nriavvio? (Salva EEPROM)" - #define STRING_ABL_Z "Z Fade" - #define STRING_BLTOUCH "BLTouch" - #define STRING_BLTOUCH_TEST "Test" - #define STRING_BLTOUCH_DEPLOY "Estrai" - #define STRING_BLTOUCH_STOW "Ritrai" - #define STRING_BLTOUCH_REPEAT "Ripeti" - #define STRING_Z_OFFSET "Z Offset" - #define STRING_PROBE_OFFSET "Offset Sonda" - #define STRING_HOME_OFFSET "Home Offset" - #define STRING_CONFIRMATION "Sei sicuro?" - #define STRING_DOWN "Giù" - #define STRING_UP "Su" - #define STRING_SAVE "Salva" - #define STRING_RESTORE "Ripristina" - #define STRING_RESET "Reset" - #define STRING_DEFAULT "Default" - #define STRING_CLEAR "Cancella" - #define STRING_NEXT "Avanti" - #define STRING_DISTANCE "Distanza" - #define STRING_INVALID_VALUE "Valore invalido" - #define STRING_TIMEOUT_REACHED "Timeout raggiunto!" - #define STRING_PROCESS_RUNNING "Processo già in esecuzione!" - #define STRING_PROCESS_COMPLETED "Processo completato!" - #define STRING_PROCESS_ABORTED "Processo interrotto!" - #define STRING_INC "Aumenta" - #define STRING_DEC "Diminuisci" - #define STRING_NOZZLE "Ugello" - #define STRING_BED "Piatto" - #define STRING_CHAMBER "Camera" - #define STRING_START "Avvia" - #define STRING_STOP "Stop" - #define STRING_BACK "Indietro" - #define STRING_PAGE_UP "Pagina Su" - #define STRING_PAGE_DOWN "Pagina Giu" - #define STRING_PAUSE "Pausa" - #define STRING_RESUME "Riprendi" - #define STRING_LOAD "Carica" - #define STRING_UNLOAD "Estrai" - #define STRING_SLOW_SPEED "Lento" - #define STRING_NORMAL_SPEED "Normale" - #define STRING_FAST_SPEED "Veloce" - #define STRING_FAN_FULL_SPEED "Massimo" - #define STRING_FAN_HALF_SPEED "Metà" - #define STRING_ROTATE_UI "Ruota UI" - #define STRING_TOUCHSCREEN_ADJUST "Calibra" - #define STRING_MORE "Altro" - #define STRING_SCREEN_INFO "Info" - #define STRING_STATUS "Stato" - #define STRING_SIMULATOR_BG_COLOR "Marlin simulator colore sfondo" - #define STRING_SIMULATOR_FONT_COLOR "Marlin simulator colore scritte" - #define STRING_WHITE "Bianco" - #define STRING_BLACK "Nero" - #define STRING_BLUE "Blu" - #define STRING_RED "Rosso" - #define STRING_GREEN "Verde" - #define STRING_CYAN "Ciano" - #define STRING_YELLOW "Giallo" - #define STRING_BROWN "Marrone" - #define STRING_GRAY "Grigio" - #define STRING_ORANGE "Arancione" - #define STRING_INDIGO "Indaco" - #define STRING_VIOLET "Viola" - #define STRING_MAGENTA "Magenta" - #define STRING_PURPLE "Viola" - #define STRING_LIME "Lime" - #define STRING_DARKBLUE "Blu Scuro" - #define STRING_DARKGREEN "Vrde Scuro" - #define STRING_DARKGRAY "Grigio Scuro" - #define STRING_DISCONNECT "Scollega" - #define STRING_BAUDRATE "BaudRate" - #define STRING_PERCENTAGE "Percentuale" - #define STRING_BABYSTEP "BabyStep" - #define STRING_PERCENTAGE_SPEED "Velocità" - #define STRING_PERCENTAGE_FLOW "Flusso" - #define STRING_VALUE_ZERO "Zero" - #define STRING_1_DEGREE "1°" - #define STRING_5_DEGREE "5°" - #define STRING_10_DEGREE "10°" - #define STRING_X_INC "X+" - #define STRING_Y_INC "Y+" - #define STRING_Z_INC "Z+" - #define STRING_X_DEC "X-" - #define STRING_Y_DEC "Y-" - #define STRING_Z_DEC "Z-" - #define STRING_X "X" - #define STRING_Y "Y" - #define STRING_Z "Z" - #define STRING_001_MM "0.01mm" - #define STRING_01_MM "0.1mm" - #define STRING_1_MM "1mm" - #define STRING_5_MM "5mm" - #define STRING_10_MM "10mm" - #define STRING_100_MM "100mm" - #define STRING_200_MM "200mm" - #define STRING_1_PERCENT "1%" - #define STRING_5_PERCENT "5%" - #define STRING_10_PERCENT "10%" - #define STRING_PERCENT_VALUE "%d%%" - #define STRING_READY "Pronto" - #define STRING_BUSY "Caricamento,attendi..." - #define STRING_UNCONNECTED "Stampante non connessa" - #define STRING_DISCONNECT_INFO "Puoi controllare la stampante dal PC!" - #define STRING_LOADING "Caricamento..." - #define STRING_POWER_FAILED "Vuoi continuare la stampa?" - #define STRING_CONTINUE "Continua" - #define STRING_CANCEL "Cancella" - #define STRING_ADJUST_TITLE "Calibrazione Touch Screen" - #define STRING_ADJUST_INFO "Premi sui punti rossi" - #define STRING_ADJUST_OK "Regolazione Completata!" - #define STRING_ADJUST_FAILED "Regolazione Fallita. Riprova!" - #define STRING_WARNING "Attenzione" - #define STRING_STOP_PRINT "Vuoi fermare la stampa?" - #define STRING_CONFIRM "Conferma" - #define STRING_TFTSD "SD Schermo" - #define STRING_READ_TFTSD_ERROR "Errore lettura SD!" - #define STRING_TFTSD_INSERTED "SD Inserita" - #define STRING_TFTSD_REMOVED "SD Rimossa" - #define STRING_U_DISK "USB Disk" - #define STRING_READ_U_DISK_ERROR "Errore lettura U Disk" - #define STRING_U_DISK_INSERTED "U Disk inserita!" - #define STRING_U_DISK_REMOVED "U Disk rimossa!" - #define STRING_ONBOARDSD "Micro SD" - #define STRING_READ_ONBOARDSD_ERROR "Errore lettura Micro SD!" - #define STRING_FILAMENT_SENSOR "Sensore Filamento" - #define STRING_FILAMENT_RUNOUT "Filamento finito!" - #define STRING_PREHEAT "Prepara" - #define STRING_PREHEAT_BOTH "Entrambi" - #define STRING_IS_PAUSE "Impossibile estrudere\ndurante la stampa,\nvuoi sospendere?" - #define STRING_AUTO_SHUT_DOWN "Auto Spegnimento" - #define STRING_UNIFIEDMOVE "Movimento" - #define STRING_UNIFIEDHEAT "Scalda" - #define STRING_COOLDOWN "Raffredda" - #define STRING_EMERGENCYSTOP "EMERGENZA" - #define STRING_TOUCH_TO_EXIT "Premi ovunque per uscire" - #define STRING_MAINMENU "Menu" - #define STRING_WAIT_TEMP_SHUT_DOWN "Attendi che la temperatura\ndell'hotend scenda\nsotto %d℃" // Wait for the temperature of hotend to be lower than 50℃ - #define STRING_FORCE_SHUT_DOWN "Forza" - #define STRING_SHUTTING_DOWN "Spegnimento..." - #define STRING_PARAMETER_SETTING "Parametri" - #define STRING_ON "ON" - #define STRING_OFF "OFF" - #define STRING_SMART "SMART" - #define STRING_TERMINAL_ACK "Mostra ACK nel terminale" - #define STRING_INVERT_XAXIS "Inverti Asse X" - #define STRING_INVERT_YAXIS "Inverti Asse Y" - #define STRING_INVERT_ZAXIS "Inverti Asse Z" - #define STRING_MOVE_SPEED "Vel. Movimenti (X Y Z)" - #define STRING_KNOB_LED "LED Manopola " - #define STRING_KNOB_LED_IDLE "LED Manopola inattivo" - #define STRING_M0_PAUSE "Messo in pausa dal comando M0" - #define STRING_SEND_START_GCODE "Gcode prima di stampare" - #define STRING_SEND_END_GCODE "Gcode dopo la stampa" - #define STRING_SEND_CANCEL_GCODE "Gcode Cancella" - #define STRING_PERSISTENT_STATUS_INFO "Info/Stato Permanenti" - #define STRING_FILE_LISTMODE "Files in modalità lista" - #define STRING_CURRENT_SETTING "Corrente Motori(mA)" - #define STRING_STEPS_SETTING "Steps per mm" - #define STRING_MAXFEEDRATE "Max Avanzamento" - #define STRING_MAXACCELERATION "Max Accelerazione" - #define STRING_ACCELERATION "Accelerazione" - #define STRING_PRINT_ACCELERATION "Accel. Stampa" - #define STRING_RETRACT_ACCELERATION "Accel. Ritrazione" - #define STRING_TRAVEL_ACCELERATION "Accel. Spostamenti" - #define STRING_JERK "Jerk" - #define STRING_JUNCTION_DEVIATION "Junction Deviation" - #define STRING_BUMP_SENSITIVITY "TMC Sensibilità Urto" - #define STRING_FWRETRACT "FW Retrazione" - #define STRING_FWRECOVER "FW Recupero Retrazione" - #define STRING_LIN_ADVANCE "Linear Advance" - #define STRING_RESET_SETTINGS_INFO "Ripristinare tutte le\nimpostazioni\nai valori predefiniti?" - #define STRING_RESET_SETTINGS_DONE "Ripristino di tutte le impostazioni\navvenuto con successo.\nperfavore riavvia il dispositivo." - #define STRING_INFO "Info" - #define STRING_LCD_BRIGHTNESS "Luminosità LCD" - #define STRING_LCD_BRIGHTNESS_DIM "Lumin. LCD ridotta" - #define STRING_LCD_DIM_IDLE_TIMER "Riduzione lumin. dopo" - #define STRING_5_SECONDS "5 Sec." - #define STRING_10_SECONDS "10 Sec." - #define STRING_30_SECONDS "30 Sec." - #define STRING_60_SECONDS "1 Min." - #define STRING_120_SECONDS "2 Min." - #define STRING_300_SECONDS "5 Min." - #define STRING_CUSTOM_SECONDS "Custom" - #define STRING_SEQUENTIAL_MODE "Sequential mode" - #define STRING_ST7920_FULLSCREEN "Marlin mode schermo pieno" - #define STRING_PLR_EN "Recupero mancanza corrente" - #define STRING_SETTING_SAVE "Salva le impostazioni" - #define STRING_SETTING_RESET "Ripristina impost standard" - #define STRING_SETTING_RESTORE "Ripristina impost precedenti" - #define STRING_EEPROM_SETTINGS "EEPROM" - #define STRING_EEPROM_SAVE_INFO "Salvare le impostazioni di\nstampa nella EEPROM?" - #define STRING_EEPROM_RESTORE_INFO "Carica le impostazioni \ndalla EEPROM?" - #define STRING_EEPROM_RESET_INFO "Ripristino EEPROM alle \nimpostazioni di fabbrica?" - #define STRING_RETRACT_FEEDRATE "Avanzamento retraz" - #define STRING_RETRACT_LENGTH "Lunghezza retraz" - #define STRING_RETRACT_SWAP_LENGTH "Lunghezza cambio fil." - #define STRING_RETRACT_Z_LIFT "Alza Z al cambio" - #define STRING_RETRACT_AUTO "Auto Firmware Retract" - #define STRING_RECOVER_FEEDRATE "Avanzamento ripristino" - #define STRING_SWAP_RECOVER_FEEDRATE "Avanzamento cambio fil" - #define STRING_RECOVER_LENGTH "Lunghezza extra al ripr." - #define STRING_SWAP_RECOVER_LENGTH "Lunghezza extra al cambio" - #define STRING_START_PRINT "Inizia a stampare:\n %s?" - #define STRING_ACK_NOTIFICATION "ACK stile notifica" - #define STRING_LEVELING_EDGE_DISTANCE "Distanza dai bordi" - #define STRING_XY_UNLOCK "Sblocca XY" - #define STRING_TUNING "Regola" - #define STRING_PID "PID" - #define STRING_PID_TITLE "PID autotune" - #define STRING_PID_START_INFO "PID autotune potrebbe\nrichiedere un po' di tempo.\nContinuare?" - #define STRING_PID_START_INFO_2 "PID autotune in corso!" - #define STRING_PID_START_INFO_3 "Non toccare lo schermo prima del completamento (LED verde Acceso)!" - #define STRING_TUNE_EXTRUDER "Step E" - #define STRING_TUNE_EXT_EXTRUDE_100 "Ext. 100mm" - #define STRING_TUNE_EXT_TEMP "Extruder tuning | Heat" - #define STRING_TUNE_EXT_TEMPLOW "Temperatura desisderata troppo bassa!\nTemperatura minima: %d C" - #define STRING_TUNE_EXT_DESIREDVAL "La temperatura non è ancora al valore desiderato" - #define STRING_TUNE_EXT_MARK120MM "Segna 120 mm sul filamento\nPremi '%s' quando pronto\nMisura lunghezza rimanente\ndopo l'estrusione" - #define STRING_TUNE_EXT_HEATOFF "Spegnere il riscaldamento?" - #define STRING_TUNE_EXT_ADJ_ESTEPS "Regola E-Steps" - #define STRING_TUNE_EXT_ESTEPS_SAVED "Nuovi E-steps salvati!\nNon dimenticare di\nsalvarli nellaEEPROM\nNuovo valore: %0.2f" - #define STRING_TUNE_EXT_MEASURED "Lunghezza rimanente:" - #define STRING_TUNE_EXT_OLD_ESTEP "Vecchi e-steps: %0.2f" - #define STRING_TUNE_EXT_NEW_ESTEP "Nuovi e-steps: %0.2f" - #define STRING_CONNECTION_SETTINGS "Imp.Conn." - #define STRING_OFFSET_TOOL "Offset 2nd Ugello" - #define STRING_HYBRID_THRESHOLD "TMC Soglia Modo Ibrido" - #define STRING_NOTIFICATIONS "Notifiche" - #define STRING_MESH_EDITOR "Mesh edit" - #define STRING_MESH_TUNER "Mesh tuner" - #define STRING_CASE_LIGHT "Case light" +#define STRING_LANGUAGE "Italiano" +#define STRING_HEAT "Riscalda" +#define STRING_MOVE "Muovi" +#define STRING_HOME "Home" +#define STRING_DISABLE_STEPPERS "Spegni mot" +#define STRING_PRINT "Stampa" +#define STRING_EXTRUDE "Estrudi" +#define STRING_FAN "Ventola" +#define STRING_SETTINGS "Opzioni" +#define STRING_SCREEN_SETTINGS "Schermo" +#define STRING_MACHINE_SETTINGS "Stampante" +#define STRING_FEATURE_SETTINGS "Extra" +#define STRING_SOUND "Suono" +#define STRING_TOUCH_SOUND "Suono touch" +#define STRING_TOAST_SOUND "Notifiche Toast" +#define STRING_ALERT_SOUND "Popup e Avvisi" +#define STRING_PREHEATDONE_SOUND "Preheat done notification" +#define STRING_SHUT_DOWN "Spegni" +#define STRING_RGB_SETTINGS "RGB LED" +#define STRING_RGB_OFF "Spegni" +#define STRING_TERMINAL "Terminale" +#define STRING_CUSTOM "Custom" +#define STRING_LEVELING "Livella" +#define STRING_POINT_1 "Punto 1" +#define STRING_POINT_2 "Punto 2" +#define STRING_POINT_3 "Punto 3" +#define STRING_POINT_4 "Punto 4" +#define STRING_POINT_5 "Punto 5" +#define STRING_BED_LEVELING "Bed Level" +#define STRING_BL_COMPLETE "Livellamento Bed Completato" +#define STRING_BL_SMART_FILL "Punti di test mancanti\nsono stati scelti automaticamente.\n \nNote: ricorda di salvare!" +#define STRING_BL_ENABLE "BL: on" +#define STRING_BL_DISABLE "BL: off" +#define STRING_ABL "ABL" +#define STRING_BBL "BBL" +#define STRING_UBL "UBL" +#define STRING_MBL "MBL" +#define STRING_MBL_SETTINGS "Mesh Bed Leveling" +#define STRING_ABL_SETTINGS "Auto Bed Leveling" +#define STRING_ABL_SETTINGS_BBL "Bilinear Bed Leveling" +#define STRING_ABL_SETTINGS_UBL "Unified Bed Leveling" +#define STRING_ABL_SETTINGS_UBL_SAVE "Salva in slot" +#define STRING_ABL_SETTINGS_UBL_LOAD "Carica da slot" +#define STRING_ABL_SLOT0 "Slot 0" +#define STRING_ABL_SLOT1 "Slot 1" +#define STRING_ABL_SLOT2 "Slot 2" +#define STRING_ABL_SLOT3 "Slot 3" +#define STRING_ABL_SLOT_EEPROM "Ricorda lo slot per il prossimo\nriavvio? (Salva EEPROM)" +#define STRING_ABL_Z "Z Fade" +#define STRING_BLTOUCH "BLTouch" +#define STRING_BLTOUCH_TEST "Test" +#define STRING_BLTOUCH_DEPLOY "Estrai" +#define STRING_BLTOUCH_STOW "Ritrai" +#define STRING_BLTOUCH_REPEAT "Ripeti" +#define STRING_Z_OFFSET "Z Offset" +#define STRING_PROBE_OFFSET "Offset Sonda" +#define STRING_HOME_OFFSET "Home Offset" +#define STRING_CONFIRMATION "Sei sicuro?" +#define STRING_DOWN "Giù" +#define STRING_UP "Su" +#define STRING_SAVE "Salva" +#define STRING_RESTORE "Ripristina" +#define STRING_RESET "Reset" +#define STRING_DEFAULT "Default" +#define STRING_CLEAR "Cancella" +#define STRING_NEXT "Avanti" +#define STRING_DISTANCE "Distanza" +#define STRING_INVALID_VALUE "Valore invalido" +#define STRING_TIMEOUT_REACHED "Timeout raggiunto!" +#define STRING_PROCESS_RUNNING "Processo già in esecuzione!" +#define STRING_PROCESS_COMPLETED "Processo completato!" +#define STRING_PROCESS_ABORTED "Processo interrotto!" +#define STRING_INC "Aumenta" +#define STRING_DEC "Diminuisci" +#define STRING_NOZZLE "Ugello" +#define STRING_BED "Piatto" +#define STRING_CHAMBER "Camera" +#define STRING_START "Avvia" +#define STRING_STOP "Stop" +#define STRING_BACK "Indietro" +#define STRING_PAGE_UP "Pagina Su" +#define STRING_PAGE_DOWN "Pagina Giu" +#define STRING_PAUSE "Pausa" +#define STRING_RESUME "Riprendi" +#define STRING_LOAD "Carica" +#define STRING_UNLOAD "Estrai" +#define STRING_SLOW_SPEED "Lento" +#define STRING_NORMAL_SPEED "Normale" +#define STRING_FAST_SPEED "Veloce" +#define STRING_FAN_FULL_SPEED "Massimo" +#define STRING_FAN_HALF_SPEED "Metà" +#define STRING_ROTATE_UI "Ruota UI" +#define STRING_TOUCHSCREEN_ADJUST "Calibra" +#define STRING_MORE "Altro" +#define STRING_SCREEN_INFO "Info" +#define STRING_STATUS "Stato" +#define STRING_SIMULATOR_BG_COLOR "Marlin simulator colore sfondo" +#define STRING_SIMULATOR_FONT_COLOR "Marlin simulator colore scritte" +#define STRING_WHITE "Bianco" +#define STRING_BLACK "Nero" +#define STRING_BLUE "Blu" +#define STRING_RED "Rosso" +#define STRING_GREEN "Verde" +#define STRING_CYAN "Ciano" +#define STRING_YELLOW "Giallo" +#define STRING_BROWN "Marrone" +#define STRING_GRAY "Grigio" +#define STRING_ORANGE "Arancione" +#define STRING_INDIGO "Indaco" +#define STRING_VIOLET "Viola" +#define STRING_MAGENTA "Magenta" +#define STRING_PURPLE "Viola" +#define STRING_LIME "Lime" +#define STRING_DARKBLUE "Blu Scuro" +#define STRING_DARKGREEN "Vrde Scuro" +#define STRING_DARKGRAY "Grigio Scuro" +#define STRING_DISCONNECT "Scollega" +#define STRING_BAUDRATE "BaudRate" +#define STRING_PERCENTAGE "Percentuale" +#define STRING_BABYSTEP "BabyStep" +#define STRING_PERCENTAGE_SPEED "Velocità" +#define STRING_PERCENTAGE_FLOW "Flusso" +#define STRING_VALUE_ZERO "Zero" +#define STRING_1_DEGREE "1°" +#define STRING_5_DEGREE "5°" +#define STRING_10_DEGREE "10°" +#define STRING_X_INC "X+" +#define STRING_Y_INC "Y+" +#define STRING_Z_INC "Z+" +#define STRING_X_DEC "X-" +#define STRING_Y_DEC "Y-" +#define STRING_Z_DEC "Z-" +#define STRING_X "X" +#define STRING_Y "Y" +#define STRING_Z "Z" +#define STRING_001_MM "0.01mm" +#define STRING_01_MM "0.1mm" +#define STRING_1_MM "1mm" +#define STRING_5_MM "5mm" +#define STRING_10_MM "10mm" +#define STRING_100_MM "100mm" +#define STRING_200_MM "200mm" +#define STRING_1_PERCENT "1%" +#define STRING_5_PERCENT "5%" +#define STRING_10_PERCENT "10%" +#define STRING_PERCENT_VALUE "%d%%" +#define STRING_READY "Pronto" +#define STRING_BUSY "Caricamento,attendi..." +#define STRING_UNCONNECTED "Stampante non connessa" +#define STRING_DISCONNECT_INFO "Puoi controllare la stampante dal PC!" +#define STRING_LOADING "Caricamento..." +#define STRING_POWER_FAILED "Vuoi continuare la stampa?" +#define STRING_CONTINUE "Continua" +#define STRING_CANCEL "Cancella" +#define STRING_ADJUST_TITLE "Calibrazione Touch Screen" +#define STRING_ADJUST_INFO "Premi sui punti rossi" +#define STRING_ADJUST_OK "Regolazione Completata!" +#define STRING_ADJUST_FAILED "Regolazione Fallita. Riprova!" +#define STRING_WARNING "Attenzione" +#define STRING_STOP_PRINT "Vuoi fermare la stampa?" +#define STRING_CONFIRM "Conferma" +#define STRING_TFTSD "SD Schermo" +#define STRING_READ_TFTSD_ERROR "Errore lettura SD!" +#define STRING_TFTSD_INSERTED "SD Inserita" +#define STRING_TFTSD_REMOVED "SD Rimossa" +#define STRING_U_DISK "USB Disk" +#define STRING_READ_U_DISK_ERROR "Errore lettura U Disk" +#define STRING_U_DISK_INSERTED "U Disk inserita!" +#define STRING_U_DISK_REMOVED "U Disk rimossa!" +#define STRING_ONBOARDSD "Micro SD" +#define STRING_READ_ONBOARDSD_ERROR "Errore lettura Micro SD!" +#define STRING_FILAMENT_SENSOR "Sensore Filamento" +#define STRING_FILAMENT_RUNOUT "Filamento finito!" +#define STRING_PREHEAT "Prepara" +#define STRING_PREHEAT_BOTH "Entrambi" +#define STRING_IS_PAUSE "Impossibile estrudere\ndurante la stampa,\nvuoi sospendere?" +#define STRING_AUTO_SHUT_DOWN "Auto Spegnimento" +#define STRING_UNIFIEDMOVE "Movimento" +#define STRING_UNIFIEDHEAT "Scalda" +#define STRING_COOLDOWN "Raffredda" +#define STRING_EMERGENCYSTOP "EMERGENZA" +#define STRING_TOUCH_TO_EXIT "Premi ovunque per uscire" +#define STRING_MAINMENU "Menu" +#define STRING_WAIT_TEMP_SHUT_DOWN "Attendi che la temperatura\ndell'hotend scenda\nsotto %d℃" // Wait for the temperature of hotend to be lower than 50℃ +#define STRING_FORCE_SHUT_DOWN "Forza" +#define STRING_SHUTTING_DOWN "Spegnimento..." +#define STRING_PARAMETER_SETTING "Parametri" +#define STRING_ON "ON" +#define STRING_OFF "OFF" +#define STRING_SMART "SMART" +#define STRING_TERMINAL_ACK "Mostra ACK nel terminale" +#define STRING_INVERT_XAXIS "Inverti Asse X" +#define STRING_INVERT_YAXIS "Inverti Asse Y" +#define STRING_INVERT_ZAXIS "Inverti Asse Z" +#define STRING_MOVE_SPEED "Vel. Movimenti (X Y Z)" +#define STRING_KNOB_LED "LED Manopola " +#define STRING_KNOB_LED_IDLE "LED Manopola inattivo" +#define STRING_M0_PAUSE "Messo in pausa dal comando M0" +#define STRING_SEND_START_GCODE "Gcode prima di stampare" +#define STRING_SEND_END_GCODE "Gcode dopo la stampa" +#define STRING_SEND_CANCEL_GCODE "Gcode Cancella" +#define STRING_PERSISTENT_STATUS_INFO "Info/Stato Permanenti" +#define STRING_FILE_LISTMODE "Files in modalità lista" +#define STRING_CURRENT_SETTING "Corrente Motori(mA)" +#define STRING_STEPS_SETTING "Steps per mm" +#define STRING_MAXFEEDRATE "Max Avanzamento" +#define STRING_MAXACCELERATION "Max Accelerazione" +#define STRING_ACCELERATION "Accelerazione" +#define STRING_PRINT_ACCELERATION "Accel. Stampa" +#define STRING_RETRACT_ACCELERATION "Accel. Ritrazione" +#define STRING_TRAVEL_ACCELERATION "Accel. Spostamenti" +#define STRING_JERK "Jerk" +#define STRING_JUNCTION_DEVIATION "Junction Deviation" +#define STRING_BUMP_SENSITIVITY "TMC Sensibilità Urto" +#define STRING_FWRETRACT "FW Retrazione" +#define STRING_FWRECOVER "FW Recupero Retrazione" +#define STRING_LIN_ADVANCE "Linear Advance" +#define STRING_RESET_SETTINGS_INFO "Ripristinare tutte le\nimpostazioni\nai valori predefiniti?" +#define STRING_RESET_SETTINGS_DONE "Ripristino di tutte le impostazioni\navvenuto con successo.\nperfavore riavvia il dispositivo." +#define STRING_INFO "Info" +#define STRING_LCD_BRIGHTNESS "Luminosità LCD" +#define STRING_LCD_BRIGHTNESS_DIM "Lumin. LCD ridotta" +#define STRING_LCD_DIM_IDLE_TIMER "Riduzione lumin. dopo" +#define STRING_5_SECONDS "5 Sec." +#define STRING_10_SECONDS "10 Sec." +#define STRING_30_SECONDS "30 Sec." +#define STRING_60_SECONDS "1 Min." +#define STRING_120_SECONDS "2 Min." +#define STRING_300_SECONDS "5 Min." +#define STRING_CUSTOM_SECONDS "Custom" +#define STRING_SEQUENTIAL_MODE "Sequential mode" +#define STRING_ST7920_FULLSCREEN "Marlin mode schermo pieno" +#define STRING_PLR_EN "Recupero mancanza corrente" +#define STRING_SETTING_SAVE "Salva le impostazioni" +#define STRING_SETTING_RESET "Ripristina impost standard" +#define STRING_SETTING_RESTORE "Ripristina impost precedenti" +#define STRING_EEPROM_SETTINGS "EEPROM" +#define STRING_EEPROM_SAVE_INFO "Salvare le impostazioni di\nstampa nella EEPROM?" +#define STRING_EEPROM_RESTORE_INFO "Carica le impostazioni \ndalla EEPROM?" +#define STRING_EEPROM_RESET_INFO "Ripristino EEPROM alle \nimpostazioni di fabbrica?" +#define STRING_RETRACT_FEEDRATE "Avanzamento retraz" +#define STRING_RETRACT_LENGTH "Lunghezza retraz" +#define STRING_RETRACT_SWAP_LENGTH "Lunghezza cambio fil." +#define STRING_RETRACT_Z_LIFT "Alza Z al cambio" +#define STRING_RETRACT_AUTO "Auto Firmware Retract" +#define STRING_RECOVER_FEEDRATE "Avanzamento ripristino" +#define STRING_SWAP_RECOVER_FEEDRATE "Avanzamento cambio fil" +#define STRING_RECOVER_LENGTH "Lunghezza extra al ripr." +#define STRING_SWAP_RECOVER_LENGTH "Lunghezza extra al cambio" +#define STRING_START_PRINT "Inizia a stampare:\n %s?" +#define STRING_ACK_NOTIFICATION "ACK stile notifica" +#define STRING_LEVELING_EDGE_DISTANCE "Distanza dai bordi" +#define STRING_XY_UNLOCK "Sblocca XY" +#define STRING_TUNING "Regola" +#define STRING_PID "PID" +#define STRING_PID_TITLE "PID autotune" +#define STRING_PID_START_INFO "PID autotune potrebbe\nrichiedere un po' di tempo.\nContinuare?" +#define STRING_PID_START_INFO_2 "PID autotune in corso!" +#define STRING_PID_START_INFO_3 "Non toccare lo schermo prima del completamento (LED verde Acceso)!" +#define STRING_TUNE_EXTRUDER "Step E" +#define STRING_TUNE_EXT_EXTRUDE_100 "Ext. 100mm" +#define STRING_TUNE_EXT_TEMP "Extruder tuning | Heat" +#define STRING_TUNE_EXT_TEMPLOW "Temperatura desisderata troppo bassa!\nTemperatura minima: %d C" +#define STRING_TUNE_EXT_DESIREDVAL "La temperatura non è ancora al valore desiderato" +#define STRING_TUNE_EXT_MARK120MM "Segna 120 mm sul filamento\nPremi '%s' quando pronto\nMisura lunghezza rimanente\ndopo l'estrusione" +#define STRING_TUNE_EXT_HEATOFF "Spegnere il riscaldamento?" +#define STRING_TUNE_EXT_ADJ_ESTEPS "Regola E-Steps" +#define STRING_TUNE_EXT_ESTEPS_SAVED "Nuovi E-steps salvati!\nNon dimenticare di\nsalvarli nellaEEPROM\nNuovo valore: %0.2f" +#define STRING_TUNE_EXT_MEASURED "Lunghezza rimanente:" +#define STRING_TUNE_EXT_OLD_ESTEP "Vecchi e-steps: %0.2f" +#define STRING_TUNE_EXT_NEW_ESTEP "Nuovi e-steps: %0.2f" +#define STRING_CONNECTION_SETTINGS "Imp.Conn." +#define STRING_OFFSET_TOOL "Offset 2nd Ugello" +#define STRING_HYBRID_THRESHOLD "TMC Soglia Modo Ibrido" +#define STRING_NOTIFICATIONS "Notifiche" +#define STRING_MESH_EDITOR "Mesh edit" +#define STRING_MESH_TUNER "Mesh tuner" +#define STRING_CASE_LIGHT "Case light" diff --git a/TFT/src/User/API/Language/language_jp.h b/TFT/src/User/API/Language/language_jp.h index b3877bb21f..2a17877fbe 100644 --- a/TFT/src/User/API/Language/language_jp.h +++ b/TFT/src/User/API/Language/language_jp.h @@ -1,279 +1,280 @@ #pragma once - #define STRING_LANGUAGE "日本語" - #define STRING_HEAT "あたため" - #define STRING_MOVE "移動" - #define STRING_HOME "ゼロにする" - #define STRING_DISABLE_STEPPERS "Disarm All" - #define STRING_PRINT "プリント" - #define STRING_EXTRUDE "押出" - #define STRING_FAN "ファン" - #define STRING_SETTINGS "設定" - #define STRING_SCREEN_SETTINGS "画面" - #define STRING_MACHINE_SETTINGS "マシン" - #define STRING_FEATURE_SETTINGS "機能" - #define STRING_SOUND "Sound" - #define STRING_TOUCH_SOUND "Touch sounds" - #define STRING_TOAST_SOUND "Toast Notifications" - #define STRING_ALERT_SOUND "Popups and Alerts" - #define STRING_SHUT_DOWN "シャットダウン" - #define STRING_RGB_SETTINGS "LED カラー" - #define STRING_RGB_OFF "LED オフ" - #define STRING_TERMINAL "端末" - #define STRING_CUSTOM "カスタム" - #define STRING_LEVELING "レベリング" - #define STRING_POINT_1 "ポイント1" - #define STRING_POINT_2 "ポイント2" - #define STRING_POINT_3 "ポイント3" - #define STRING_POINT_4 "ポイント4" - #define STRING_POINT_5 "ポイント5" - #define STRING_BED_LEVELING "Bed Level" - #define STRING_BL_COMPLETE "Bed Leveling Complete" - #define STRING_BL_SMART_FILL "Missing probe points\nhave been smart filled.\n \nNote: remember to save!" - #define STRING_BL_ENABLE "BL: on" - #define STRING_BL_DISABLE "BL: off" - #define STRING_ABL "自動調整" - #define STRING_BBL "BBL" - #define STRING_UBL "UBL" - #define STRING_MBL "MBL" - #define STRING_MBL_SETTINGS "Mesh Bed Leveling" - #define STRING_ABL_SETTINGS "Auto Bed Leveling" - #define STRING_ABL_SETTINGS_BBL "Bilinear Bed Leveling" - #define STRING_ABL_SETTINGS_UBL "Unified Bed Leveling" - #define STRING_ABL_SETTINGS_UBL_SAVE "Save to slot" - #define STRING_ABL_SETTINGS_UBL_LOAD "Load from slot" - #define STRING_ABL_SLOT0 "Slot 0" - #define STRING_ABL_SLOT1 "Slot 1" - #define STRING_ABL_SLOT2 "Slot 2" - #define STRING_ABL_SLOT3 "Slot 3" - #define STRING_ABL_SLOT_EEPROM "Remember slot for next\nreboot? (Save EEPROM)" - #define STRING_ABL_Z "Z Fade" - #define STRING_BLTOUCH "BLTouch" - #define STRING_BLTOUCH_TEST "テスト" - #define STRING_BLTOUCH_DEPLOY "展開" - #define STRING_BLTOUCH_STOW "収納" - #define STRING_BLTOUCH_REPEAT "繰り返す" - #define STRING_Z_OFFSET "Zオフセット" - #define STRING_PROBE_OFFSET "プローブオフセット" - #define STRING_HOME_OFFSET "Home Offset" - #define STRING_CONFIRMATION "Are you sure?" - #define STRING_DOWN "Down" - #define STRING_UP "Up" - #define STRING_SAVE "保存" - #define STRING_RESTORE "Restore" - #define STRING_RESET "リセット" - #define STRING_DEFAULT "Default" - #define STRING_CLEAR "Clear" - #define STRING_NEXT "Next" - #define STRING_DISTANCE "Distance" - #define STRING_INVALID_VALUE "Invalid value(s)" - #define STRING_TIMEOUT_REACHED "Timeout reached!" - #define STRING_PROCESS_RUNNING "Process already running!" - #define STRING_PROCESS_COMPLETED "Process completed!" - #define STRING_PROCESS_ABORTED "Process aborted!" - #define STRING_INC "増え" - #define STRING_DEC "減る" - #define STRING_NOZZLE "ノズル" - #define STRING_BED "ベッド" - #define STRING_CHAMBER "Chamber" - #define STRING_START "Start" - #define STRING_STOP "停止" - #define STRING_BACK "戻る" - #define STRING_PAGE_UP "前ページ" - #define STRING_PAGE_DOWN "次ページ" - #define STRING_PAUSE "一時停止" - #define STRING_RESUME "続ける" - #define STRING_LOAD "増え" - #define STRING_UNLOAD "減る" - #define STRING_SLOW_SPEED "ゆっくり" - #define STRING_NORMAL_SPEED "正常速度" - #define STRING_FAST_SPEED "早め" - #define STRING_FAN_FULL_SPEED "全速" - #define STRING_FAN_HALF_SPEED "50%速さ" - #define STRING_ROTATE_UI "回転UI" - #define STRING_TOUCHSCREEN_ADJUST "校正する" - #define STRING_MORE "詳細" - #define STRING_SCREEN_INFO "ついて" - #define STRING_STATUS "状態" - #define STRING_SIMULATOR_BG_COLOR "Marlin シミュレータの背景色" - #define STRING_SIMULATOR_FONT_COLOR "Marlinシミュレータフォントの色" - #define STRING_WHITE "白色" - #define STRING_BLACK "黒色" - #define STRING_BLUE "青色" - #define STRING_RED "赤色" - #define STRING_GREEN "緑色" - #define STRING_CYAN "シアン" - #define STRING_YELLOW "黄色" - #define STRING_BROWN "茶色" - #define STRING_GRAY "灰色" - #define STRING_ORANGE "オレンジ" - #define STRING_INDIGO "インディゴ" - #define STRING_VIOLET "バイオレット" - #define STRING_MAGENTA "赤紫色" - #define STRING_PURPLE "紫" - #define STRING_LIME "ライム" - #define STRING_DARKBLUE "濃紺" - #define STRING_DARKGREEN "ダークグリーン" - #define STRING_DARKGRAY "暗灰色" - #define STRING_DISCONNECT "データ接続" - #define STRING_BAUDRATE "ポートレート" - #define STRING_PERCENTAGE "パーセント" - #define STRING_BABYSTEP "ベビーステップ" - #define STRING_PERCENTAGE_SPEED "スビード" - #define STRING_PERCENTAGE_FLOW "押出" - #define STRING_VALUE_ZERO "ゼロ" - #define STRING_1_DEGREE "1℃" - #define STRING_5_DEGREE "5℃" - #define STRING_10_DEGREE "10℃" - #define STRING_X_INC "X+" - #define STRING_Y_INC "Y+" - #define STRING_Z_INC "Z+" - #define STRING_X_DEC "X-" - #define STRING_Y_DEC "Y-" - #define STRING_Z_DEC "Z-" - #define STRING_X "X" - #define STRING_Y "Y" - #define STRING_Z "Z" - #define STRING_001_MM "0.01mm" - #define STRING_01_MM "0.1mm" - #define STRING_1_MM "1mm" - #define STRING_5_MM "5mm" - #define STRING_10_MM "10mm" - #define STRING_100_MM "100mm" - #define STRING_200_MM "200mm" - #define STRING_1_PERCENT "1%" - #define STRING_5_PERCENT "5%" - #define STRING_10_PERCENT "10%" - #define STRING_PERCENT_VALUE "%d%%" - #define STRING_READY "準備中" - #define STRING_BUSY "ビジー状態、しばらくお待ちください..." - #define STRING_UNCONNECTED "プリンターに連続していない!" - #define STRING_DISCONNECT_INFO "SDカード PC両用" - #define STRING_LOADING "ロッド中..." - #define STRING_POWER_FAILED "プリントを継続しますか?" - #define STRING_CONTINUE "継続" - #define STRING_CANCEL "キャンセル" - #define STRING_ADJUST_TITLE "タッチスクリーン較正" - #define STRING_ADJUST_INFO "赤星をタッチ" - #define STRING_ADJUST_OK "校正が成功しました" - #define STRING_ADJUST_FAILED "校正が失敗しました、も一度お試して下さい" - #define STRING_WARNING "注意" - #define STRING_STOP_PRINT "プリントを中止しますか?" - #define STRING_CONFIRM "OK" - #define STRING_TFTSD "TFT SD" - #define STRING_READ_TFTSD_ERROR "TFT SDカードの読み取りがエラー発生しました!" - #define STRING_TFTSD_INSERTED "SDカード入りました!" - #define STRING_TFTSD_REMOVED "SDカード出しました!" - #define STRING_U_DISK "USBメモリー" - #define STRING_READ_U_DISK_ERROR "USBメモリー読み込みエラー!" - #define STRING_U_DISK_INSERTED "U Diskカード入りました!" - #define STRING_U_DISK_REMOVED "U Diskカード出しました!" - #define STRING_ONBOARDSD "内部 mSDカード" - #define STRING_READ_ONBOARDSD_ERROR "内部 mSDカードの読み取りがエラー発生しました!" - #define STRING_FILAMENT_SENSOR "フィラメントセンサ" - #define STRING_FILAMENT_RUNOUT "フィラメントランアウト!" - #define STRING_PREHEAT "予熱する" - #define STRING_PREHEAT_BOTH "両方" - #define STRING_IS_PAUSE "印刷時に押し出すことができない。印刷を中止しますか?" - #define STRING_AUTO_SHUT_DOWN "オートパワー" - #define STRING_UNIFIEDMOVE "移動" - #define STRING_UNIFIEDHEAT "ヒート&ファン" - #define STRING_COOLDOWN "クールダウン" - #define STRING_EMERGENCYSTOP "EM.停止" - #define STRING_TOUCH_TO_EXIT "クリックして終了します" - #define STRING_MAINMENU "メニュー" - #define STRING_WAIT_TEMP_SHUT_DOWN "ホットエンドの温度が%d℃未満になるまで待ちます。" // Wait for the temperature of hotend to be lower than 50℃ - #define STRING_FORCE_SHUT_DOWN "フォース" - #define STRING_SHUTTING_DOWN "シャットダウン..." - #define STRING_PARAMETER_SETTING "パラメータ" - #define STRING_ON "ON" - #define STRING_OFF "OFF" - #define STRING_SMART "スマート" - #define STRING_TERMINAL_ACK "端末でACKを表示する" - #define STRING_INVERT_XAXIS "X軸を反転" - #define STRING_INVERT_YAXIS "Y軸を反転" - #define STRING_INVERT_ZAXIS "Z軸を反転" - #define STRING_MOVE_SPEED "移動速度(X Y Z)" - #define STRING_KNOB_LED "回転ノブLED" - #define STRING_KNOB_LED_IDLE "Rotary Knob LED idle" - #define STRING_M0_PAUSE "MOコマンドで一時停止" - #define STRING_SEND_START_GCODE "印刷前にGコードを開始する" - #define STRING_SEND_END_GCODE "印刷後にGコードを終了する" - #define STRING_SEND_CANCEL_GCODE "Gコードをキャンセルする" - #define STRING_PERSISTENT_STATUS_INFO "永続的なステータス情報" - #define STRING_FILE_LISTMODE "ファイルビューアリストモード" - #define STRING_CURRENT_SETTING "ドライバー電流 (mA)" - #define STRING_STEPS_SETTING "MMあたりのステップ" - #define STRING_MAXFEEDRATE "マックスフィード率" - #define STRING_MAXACCELERATION "最大加速度" - #define STRING_ACCELERATION "加速度" - #define STRING_PRINT_ACCELERATION "印刷加速度" - #define STRING_RETRACT_ACCELERATION "引き戻し加速度" - #define STRING_TRAVEL_ACCELERATION "空振り加速度" - #define STRING_JERK "Jerk" - #define STRING_JUNCTION_DEVIATION "Junction Deviation" - #define STRING_BUMP_SENSITIVITY "TMC バンプ感度" - #define STRING_FWRETRACT "FW Retraction" - #define STRING_FWRECOVER "FW Retraction Recover" - #define STRING_LIN_ADVANCE "Linear Advance" - #define STRING_RESET_SETTINGS_INFO "すべての設定をデフォルト値にリセットしますか?" - #define STRING_RESET_SETTINGS_DONE "すべての設定が正常にリセットされました。デバイスを再起動してください。" - #define STRING_INFO "情報" - #define STRING_LCD_BRIGHTNESS "LCD明るさ" - #define STRING_LCD_BRIGHTNESS_DIM "LCDの輝度が薄暗い" - #define STRING_LCD_DIM_IDLE_TIMER "LCD調光アイドルタイマー" - #define STRING_5_SECONDS "5 Sec." - #define STRING_10_SECONDS "10 Sec." - #define STRING_30_SECONDS "30 Sec." - #define STRING_60_SECONDS "1 Min." - #define STRING_120_SECONDS "2 Min." - #define STRING_300_SECONDS "5 Min." - #define STRING_CUSTOM_SECONDS "カスタム" - #define STRING_SEQUENTIAL_MODE "Sequential mode" - #define STRING_ST7920_FULLSCREEN "フルスクリーンでマーリンモード" - #define STRING_PLR_EN "Power loss recovery" - #define STRING_SETTING_SAVE "Save settings" - #define STRING_SETTING_RESET "設定をリセットする" - #define STRING_SETTING_RESTORE "設定を復元する" - #define STRING_EEPROM_SETTINGS "EEPROM" - #define STRING_EEPROM_SAVE_INFO "プリンタの設定をEEPROMに保存しますか?" - #define STRING_EEPROM_RESTORE_INFO "EEPROMから設定を再読み込み?" - #define STRING_EEPROM_RESET_INFO "Reset EEPROM to stock printer settings?" - #define STRING_RETRACT_FEEDRATE "引き戻し速度" - #define STRING_RETRACT_LENGTH "引き戻し長さ" - #define STRING_RETRACT_SWAP_LENGTH "交換時の引き戻し長さ" - #define STRING_RETRACT_Z_LIFT "引き戻し時のz軸上げの高さ" - #define STRING_RETRACT_AUTO "Auto Firmware Retract" - #define STRING_RECOVER_FEEDRATE "押出速度" - #define STRING_SWAP_RECOVER_FEEDRATE "交換時の押出速度" - #define STRING_RECOVER_LENGTH "余分な押し出し長さ" - #define STRING_SWAP_RECOVER_LENGTH "交換時の余分な押し出し長さ" - #define STRING_START_PRINT "印刷を開始する:\n %s?" - #define STRING_ACK_NOTIFICATION "ACK notification style" - #define STRING_LEVELING_EDGE_DISTANCE "Bed edge distance" - #define STRING_XY_UNLOCK "Disarm XY" - #define STRING_TUNING "Tuning" - #define STRING_PID "PID" - #define STRING_PID_TITLE "PID autotune" - #define STRING_PID_START_INFO "PID autotune may take\nsome time to complete.\nContinue?" - #define STRING_PID_START_INFO_2 "PID autotune in progress!" - #define STRING_PID_START_INFO_3 "Do not touch the screen until completed (green LED ON)!" - #define STRING_TUNE_EXTRUDER "Tune steps" - #define STRING_TUNE_EXT_EXTRUDE_100 "Ext. 100mm" - #define STRING_TUNE_EXT_TEMP "Extruder tuning | Heat" - #define STRING_TUNE_EXT_TEMPLOW "Desired temperature too low!\nMinimum temperature: %d C" - #define STRING_TUNE_EXT_DESIREDVAL "Temperature is not yet at the desired value" - #define STRING_TUNE_EXT_MARK120MM "Mark 120 mm on your fillament\nPress '%s' when ready\nMeasure remaining length\nafter extruding" - #define STRING_TUNE_EXT_HEATOFF "Turn the heater off?" - #define STRING_TUNE_EXT_ADJ_ESTEPS "Adjust E-Steps" - #define STRING_TUNE_EXT_ESTEPS_SAVED "New E-steps saved!\nDon't forget to\nsave it in EEPROM\nNew value: %0.2f" - #define STRING_TUNE_EXT_MEASURED "Length remaining:" - #define STRING_TUNE_EXT_OLD_ESTEP "Old e-steps: %0.2f" - #define STRING_TUNE_EXT_NEW_ESTEP "New e-steps: %0.2f" - #define STRING_CONNECTION_SETTINGS "Connection" - #define STRING_OFFSET_TOOL "Offset 2nd Nozzle" - #define STRING_HYBRID_THRESHOLD "TMC HybridThreshold" - #define STRING_NOTIFICATIONS "Notifications" - #define STRING_MESH_EDITOR "Mesh edit" - #define STRING_MESH_TUNER "Mesh tuner" - #define STRING_CASE_LIGHT "Case light" +#define STRING_LANGUAGE "日本語" +#define STRING_HEAT "あたため" +#define STRING_MOVE "移動" +#define STRING_HOME "ゼロにする" +#define STRING_DISABLE_STEPPERS "Disarm All" +#define STRING_PRINT "プリント" +#define STRING_EXTRUDE "押出" +#define STRING_FAN "ファン" +#define STRING_SETTINGS "設定" +#define STRING_SCREEN_SETTINGS "画面" +#define STRING_MACHINE_SETTINGS "マシン" +#define STRING_FEATURE_SETTINGS "機能" +#define STRING_SOUND "Sound" +#define STRING_TOUCH_SOUND "Touch sounds" +#define STRING_TOAST_SOUND "Toast Notifications" +#define STRING_ALERT_SOUND "Popups and Alerts" +#define STRING_PREHEATDONE_SOUND "Preheat done notification" +#define STRING_SHUT_DOWN "シャットダウン" +#define STRING_RGB_SETTINGS "LED カラー" +#define STRING_RGB_OFF "LED オフ" +#define STRING_TERMINAL "端末" +#define STRING_CUSTOM "カスタム" +#define STRING_LEVELING "レベリング" +#define STRING_POINT_1 "ポイント1" +#define STRING_POINT_2 "ポイント2" +#define STRING_POINT_3 "ポイント3" +#define STRING_POINT_4 "ポイント4" +#define STRING_POINT_5 "ポイント5" +#define STRING_BED_LEVELING "Bed Level" +#define STRING_BL_COMPLETE "Bed Leveling Complete" +#define STRING_BL_SMART_FILL "Missing probe points\nhave been smart filled.\n \nNote: remember to save!" +#define STRING_BL_ENABLE "BL: on" +#define STRING_BL_DISABLE "BL: off" +#define STRING_ABL "自動調整" +#define STRING_BBL "BBL" +#define STRING_UBL "UBL" +#define STRING_MBL "MBL" +#define STRING_MBL_SETTINGS "Mesh Bed Leveling" +#define STRING_ABL_SETTINGS "Auto Bed Leveling" +#define STRING_ABL_SETTINGS_BBL "Bilinear Bed Leveling" +#define STRING_ABL_SETTINGS_UBL "Unified Bed Leveling" +#define STRING_ABL_SETTINGS_UBL_SAVE "Save to slot" +#define STRING_ABL_SETTINGS_UBL_LOAD "Load from slot" +#define STRING_ABL_SLOT0 "Slot 0" +#define STRING_ABL_SLOT1 "Slot 1" +#define STRING_ABL_SLOT2 "Slot 2" +#define STRING_ABL_SLOT3 "Slot 3" +#define STRING_ABL_SLOT_EEPROM "Remember slot for next\nreboot? (Save EEPROM)" +#define STRING_ABL_Z "Z Fade" +#define STRING_BLTOUCH "BLTouch" +#define STRING_BLTOUCH_TEST "テスト" +#define STRING_BLTOUCH_DEPLOY "展開" +#define STRING_BLTOUCH_STOW "収納" +#define STRING_BLTOUCH_REPEAT "繰り返す" +#define STRING_Z_OFFSET "Zオフセット" +#define STRING_PROBE_OFFSET "プローブオフセット" +#define STRING_HOME_OFFSET "Home Offset" +#define STRING_CONFIRMATION "Are you sure?" +#define STRING_DOWN "Down" +#define STRING_UP "Up" +#define STRING_SAVE "保存" +#define STRING_RESTORE "Restore" +#define STRING_RESET "リセット" +#define STRING_DEFAULT "Default" +#define STRING_CLEAR "Clear" +#define STRING_NEXT "Next" +#define STRING_DISTANCE "Distance" +#define STRING_INVALID_VALUE "Invalid value(s)" +#define STRING_TIMEOUT_REACHED "Timeout reached!" +#define STRING_PROCESS_RUNNING "Process already running!" +#define STRING_PROCESS_COMPLETED "Process completed!" +#define STRING_PROCESS_ABORTED "Process aborted!" +#define STRING_INC "増え" +#define STRING_DEC "減る" +#define STRING_NOZZLE "ノズル" +#define STRING_BED "ベッド" +#define STRING_CHAMBER "Chamber" +#define STRING_START "Start" +#define STRING_STOP "停止" +#define STRING_BACK "戻る" +#define STRING_PAGE_UP "前ページ" +#define STRING_PAGE_DOWN "次ページ" +#define STRING_PAUSE "一時停止" +#define STRING_RESUME "続ける" +#define STRING_LOAD "増え" +#define STRING_UNLOAD "減る" +#define STRING_SLOW_SPEED "ゆっくり" +#define STRING_NORMAL_SPEED "正常速度" +#define STRING_FAST_SPEED "早め" +#define STRING_FAN_FULL_SPEED "全速" +#define STRING_FAN_HALF_SPEED "50%速さ" +#define STRING_ROTATE_UI "回転UI" +#define STRING_TOUCHSCREEN_ADJUST "校正する" +#define STRING_MORE "詳細" +#define STRING_SCREEN_INFO "ついて" +#define STRING_STATUS "状態" +#define STRING_SIMULATOR_BG_COLOR "Marlin シミュレータの背景色" +#define STRING_SIMULATOR_FONT_COLOR "Marlinシミュレータフォントの色" +#define STRING_WHITE "白色" +#define STRING_BLACK "黒色" +#define STRING_BLUE "青色" +#define STRING_RED "赤色" +#define STRING_GREEN "緑色" +#define STRING_CYAN "シアン" +#define STRING_YELLOW "黄色" +#define STRING_BROWN "茶色" +#define STRING_GRAY "灰色" +#define STRING_ORANGE "オレンジ" +#define STRING_INDIGO "インディゴ" +#define STRING_VIOLET "バイオレット" +#define STRING_MAGENTA "赤紫色" +#define STRING_PURPLE "紫" +#define STRING_LIME "ライム" +#define STRING_DARKBLUE "濃紺" +#define STRING_DARKGREEN "ダークグリーン" +#define STRING_DARKGRAY "暗灰色" +#define STRING_DISCONNECT "データ接続" +#define STRING_BAUDRATE "ポートレート" +#define STRING_PERCENTAGE "パーセント" +#define STRING_BABYSTEP "ベビーステップ" +#define STRING_PERCENTAGE_SPEED "スビード" +#define STRING_PERCENTAGE_FLOW "押出" +#define STRING_VALUE_ZERO "ゼロ" +#define STRING_1_DEGREE "1℃" +#define STRING_5_DEGREE "5℃" +#define STRING_10_DEGREE "10℃" +#define STRING_X_INC "X+" +#define STRING_Y_INC "Y+" +#define STRING_Z_INC "Z+" +#define STRING_X_DEC "X-" +#define STRING_Y_DEC "Y-" +#define STRING_Z_DEC "Z-" +#define STRING_X "X" +#define STRING_Y "Y" +#define STRING_Z "Z" +#define STRING_001_MM "0.01mm" +#define STRING_01_MM "0.1mm" +#define STRING_1_MM "1mm" +#define STRING_5_MM "5mm" +#define STRING_10_MM "10mm" +#define STRING_100_MM "100mm" +#define STRING_200_MM "200mm" +#define STRING_1_PERCENT "1%" +#define STRING_5_PERCENT "5%" +#define STRING_10_PERCENT "10%" +#define STRING_PERCENT_VALUE "%d%%" +#define STRING_READY "準備中" +#define STRING_BUSY "ビジー状態、しばらくお待ちください..." +#define STRING_UNCONNECTED "プリンターに連続していない!" +#define STRING_DISCONNECT_INFO "SDカード PC両用" +#define STRING_LOADING "ロッド中..." +#define STRING_POWER_FAILED "プリントを継続しますか?" +#define STRING_CONTINUE "継続" +#define STRING_CANCEL "キャンセル" +#define STRING_ADJUST_TITLE "タッチスクリーン較正" +#define STRING_ADJUST_INFO "赤星をタッチ" +#define STRING_ADJUST_OK "校正が成功しました" +#define STRING_ADJUST_FAILED "校正が失敗しました、も一度お試して下さい" +#define STRING_WARNING "注意" +#define STRING_STOP_PRINT "プリントを中止しますか?" +#define STRING_CONFIRM "OK" +#define STRING_TFTSD "TFT SD" +#define STRING_READ_TFTSD_ERROR "TFT SDカードの読み取りがエラー発生しました!" +#define STRING_TFTSD_INSERTED "SDカード入りました!" +#define STRING_TFTSD_REMOVED "SDカード出しました!" +#define STRING_U_DISK "USBメモリー" +#define STRING_READ_U_DISK_ERROR "USBメモリー読み込みエラー!" +#define STRING_U_DISK_INSERTED "U Diskカード入りました!" +#define STRING_U_DISK_REMOVED "U Diskカード出しました!" +#define STRING_ONBOARDSD "内部 mSDカード" +#define STRING_READ_ONBOARDSD_ERROR "内部 mSDカードの読み取りがエラー発生しました!" +#define STRING_FILAMENT_SENSOR "フィラメントセンサ" +#define STRING_FILAMENT_RUNOUT "フィラメントランアウト!" +#define STRING_PREHEAT "予熱する" +#define STRING_PREHEAT_BOTH "両方" +#define STRING_IS_PAUSE "印刷時に押し出すことができない。印刷を中止しますか?" +#define STRING_AUTO_SHUT_DOWN "オートパワー" +#define STRING_UNIFIEDMOVE "移動" +#define STRING_UNIFIEDHEAT "ヒート&ファン" +#define STRING_COOLDOWN "クールダウン" +#define STRING_EMERGENCYSTOP "EM.停止" +#define STRING_TOUCH_TO_EXIT "クリックして終了します" +#define STRING_MAINMENU "メニュー" +#define STRING_WAIT_TEMP_SHUT_DOWN "ホットエンドの温度が%d℃未満になるまで待ちます。" // Wait for the temperature of hotend to be lower than 50℃ +#define STRING_FORCE_SHUT_DOWN "フォース" +#define STRING_SHUTTING_DOWN "シャットダウン..." +#define STRING_PARAMETER_SETTING "パラメータ" +#define STRING_ON "ON" +#define STRING_OFF "OFF" +#define STRING_SMART "スマート" +#define STRING_TERMINAL_ACK "端末でACKを表示する" +#define STRING_INVERT_XAXIS "X軸を反転" +#define STRING_INVERT_YAXIS "Y軸を反転" +#define STRING_INVERT_ZAXIS "Z軸を反転" +#define STRING_MOVE_SPEED "移動速度(X Y Z)" +#define STRING_KNOB_LED "回転ノブLED" +#define STRING_KNOB_LED_IDLE "Rotary Knob LED idle" +#define STRING_M0_PAUSE "MOコマンドで一時停止" +#define STRING_SEND_START_GCODE "印刷前にGコードを開始する" +#define STRING_SEND_END_GCODE "印刷後にGコードを終了する" +#define STRING_SEND_CANCEL_GCODE "Gコードをキャンセルする" +#define STRING_PERSISTENT_STATUS_INFO "永続的なステータス情報" +#define STRING_FILE_LISTMODE "ファイルビューアリストモード" +#define STRING_CURRENT_SETTING "ドライバー電流 (mA)" +#define STRING_STEPS_SETTING "MMあたりのステップ" +#define STRING_MAXFEEDRATE "マックスフィード率" +#define STRING_MAXACCELERATION "最大加速度" +#define STRING_ACCELERATION "加速度" +#define STRING_PRINT_ACCELERATION "印刷加速度" +#define STRING_RETRACT_ACCELERATION "引き戻し加速度" +#define STRING_TRAVEL_ACCELERATION "空振り加速度" +#define STRING_JERK "Jerk" +#define STRING_JUNCTION_DEVIATION "Junction Deviation" +#define STRING_BUMP_SENSITIVITY "TMC バンプ感度" +#define STRING_FWRETRACT "FW Retraction" +#define STRING_FWRECOVER "FW Retraction Recover" +#define STRING_LIN_ADVANCE "Linear Advance" +#define STRING_RESET_SETTINGS_INFO "すべての設定をデフォルト値にリセットしますか?" +#define STRING_RESET_SETTINGS_DONE "すべての設定が正常にリセットされました。デバイスを再起動してください。" +#define STRING_INFO "情報" +#define STRING_LCD_BRIGHTNESS "LCD明るさ" +#define STRING_LCD_BRIGHTNESS_DIM "LCDの輝度が薄暗い" +#define STRING_LCD_DIM_IDLE_TIMER "LCD調光アイドルタイマー" +#define STRING_5_SECONDS "5 Sec." +#define STRING_10_SECONDS "10 Sec." +#define STRING_30_SECONDS "30 Sec." +#define STRING_60_SECONDS "1 Min." +#define STRING_120_SECONDS "2 Min." +#define STRING_300_SECONDS "5 Min." +#define STRING_CUSTOM_SECONDS "カスタム" +#define STRING_SEQUENTIAL_MODE "Sequential mode" +#define STRING_ST7920_FULLSCREEN "フルスクリーンでマーリンモード" +#define STRING_PLR_EN "Power loss recovery" +#define STRING_SETTING_SAVE "Save settings" +#define STRING_SETTING_RESET "設定をリセットする" +#define STRING_SETTING_RESTORE "設定を復元する" +#define STRING_EEPROM_SETTINGS "EEPROM" +#define STRING_EEPROM_SAVE_INFO "プリンタの設定をEEPROMに保存しますか?" +#define STRING_EEPROM_RESTORE_INFO "EEPROMから設定を再読み込み?" +#define STRING_EEPROM_RESET_INFO "Reset EEPROM to stock printer settings?" +#define STRING_RETRACT_FEEDRATE "引き戻し速度" +#define STRING_RETRACT_LENGTH "引き戻し長さ" +#define STRING_RETRACT_SWAP_LENGTH "交換時の引き戻し長さ" +#define STRING_RETRACT_Z_LIFT "引き戻し時のz軸上げの高さ" +#define STRING_RETRACT_AUTO "Auto Firmware Retract" +#define STRING_RECOVER_FEEDRATE "押出速度" +#define STRING_SWAP_RECOVER_FEEDRATE "交換時の押出速度" +#define STRING_RECOVER_LENGTH "余分な押し出し長さ" +#define STRING_SWAP_RECOVER_LENGTH "交換時の余分な押し出し長さ" +#define STRING_START_PRINT "印刷を開始する:\n %s?" +#define STRING_ACK_NOTIFICATION "ACK notification style" +#define STRING_LEVELING_EDGE_DISTANCE "Bed edge distance" +#define STRING_XY_UNLOCK "Disarm XY" +#define STRING_TUNING "Tuning" +#define STRING_PID "PID" +#define STRING_PID_TITLE "PID autotune" +#define STRING_PID_START_INFO "PID autotune may take\nsome time to complete.\nContinue?" +#define STRING_PID_START_INFO_2 "PID autotune in progress!" +#define STRING_PID_START_INFO_3 "Do not touch the screen until completed (green LED ON)!" +#define STRING_TUNE_EXTRUDER "Tune steps" +#define STRING_TUNE_EXT_EXTRUDE_100 "Ext. 100mm" +#define STRING_TUNE_EXT_TEMP "Extruder tuning | Heat" +#define STRING_TUNE_EXT_TEMPLOW "Desired temperature too low!\nMinimum temperature: %d C" +#define STRING_TUNE_EXT_DESIREDVAL "Temperature is not yet at the desired value" +#define STRING_TUNE_EXT_MARK120MM "Mark 120 mm on your fillament\nPress '%s' when ready\nMeasure remaining length\nafter extruding" +#define STRING_TUNE_EXT_HEATOFF "Turn the heater off?" +#define STRING_TUNE_EXT_ADJ_ESTEPS "Adjust E-Steps" +#define STRING_TUNE_EXT_ESTEPS_SAVED "New E-steps saved!\nDon't forget to\nsave it in EEPROM\nNew value: %0.2f" +#define STRING_TUNE_EXT_MEASURED "Length remaining:" +#define STRING_TUNE_EXT_OLD_ESTEP "Old e-steps: %0.2f" +#define STRING_TUNE_EXT_NEW_ESTEP "New e-steps: %0.2f" +#define STRING_CONNECTION_SETTINGS "Connection" +#define STRING_OFFSET_TOOL "Offset 2nd Nozzle" +#define STRING_HYBRID_THRESHOLD "TMC HybridThreshold" +#define STRING_NOTIFICATIONS "Notifications" +#define STRING_MESH_EDITOR "Mesh edit" +#define STRING_MESH_TUNER "Mesh tuner" +#define STRING_CASE_LIGHT "Case light" diff --git a/TFT/src/User/API/Language/language_keywords.h b/TFT/src/User/API/Language/language_keywords.h index 517cd1c657..7df70fabe9 100644 --- a/TFT/src/User/API/Language/language_keywords.h +++ b/TFT/src/User/API/Language/language_keywords.h @@ -23,6 +23,7 @@ extern "C" { #define LANG_KEY_TOUCH_SOUND "label_touch_sound:" #define LANG_KEY_TOAST_SOUND "label_toast_sound:" #define LANG_KEY_ALERT_SOUND "label_alert_sound:" +#define LANG_KEY_PREHEATDONE_SOUND "label_preheatdone_sound:" #define LANG_KEY_SHUT_DOWN "label_shut_down:" #define LANG_KEY_RGB_SETTINGS "label_rgb_settings:" #define LANG_KEY_RGB_OFF "label_rgb_off:" diff --git a/TFT/src/User/API/Language/language_nl.h b/TFT/src/User/API/Language/language_nl.h index 54519f59a5..6d46f5e51e 100644 --- a/TFT/src/User/API/Language/language_nl.h +++ b/TFT/src/User/API/Language/language_nl.h @@ -1,279 +1,280 @@ #pragma once - #define STRING_LANGUAGE "Dutch" - #define STRING_HEAT "Verwarm" - #define STRING_MOVE "Verplaats" - #define STRING_HOME "Thuis" - #define STRING_DISABLE_STEPPERS "Disarm All" - #define STRING_PRINT "Print" - #define STRING_EXTRUDE "Extrudeer" - #define STRING_FAN "Ventilator" - #define STRING_SETTINGS "Instellingen" - #define STRING_SCREEN_SETTINGS "Scherm" - #define STRING_MACHINE_SETTINGS "Machine" - #define STRING_FEATURE_SETTINGS "Kenmerk" - #define STRING_SOUND "Sound" - #define STRING_TOUCH_SOUND "Touch sounds" - #define STRING_TOAST_SOUND "Toast Notifications" - #define STRING_ALERT_SOUND "Popups and Alerts" - #define STRING_SHUT_DOWN "Uitschakelen" - #define STRING_RGB_SETTINGS "LED Kleur" - #define STRING_RGB_OFF "LED Uit" - #define STRING_TERMINAL "Terminal" - #define STRING_CUSTOM "Aangepast" - #define STRING_LEVELING "Nivelleren" - #define STRING_POINT_1 "Punt 1" - #define STRING_POINT_2 "Punt 2" - #define STRING_POINT_3 "Punt 3" - #define STRING_POINT_4 "Punt 4" - #define STRING_POINT_5 "Punt 5" - #define STRING_BED_LEVELING "Bed Level" - #define STRING_BL_COMPLETE "Bed Leveling voltooid" - #define STRING_BL_SMART_FILL "Missende probe punten\nzijn slim opgevuld.\n \nNote: Vergeet niet op te slaan!" - #define STRING_BL_ENABLE "BL: aan" - #define STRING_BL_DISABLE "BL: uit" - #define STRING_ABL "ABL" - #define STRING_BBL "BBL" - #define STRING_UBL "UBL" - #define STRING_MBL "MBL" - #define STRING_MBL_SETTINGS "Mesh Bed Leveling" - #define STRING_ABL_SETTINGS "Auto Bed Leveling" - #define STRING_ABL_SETTINGS_BBL "Bilinear Bed Leveling" - #define STRING_ABL_SETTINGS_UBL "Unified Bed Leveling" - #define STRING_ABL_SETTINGS_UBL_SAVE "Sla op naar sleuf" - #define STRING_ABL_SETTINGS_UBL_LOAD "Laad van sleuf" - #define STRING_ABL_SLOT0 "Sleuf 0" - #define STRING_ABL_SLOT1 "Sleuf 1" - #define STRING_ABL_SLOT2 "Sleuf 2" - #define STRING_ABL_SLOT3 "Sleuf 3" - #define STRING_ABL_SLOT_EEPROM "Onthoud sleuf voor\nvolgende reboot?\n(sla op in EEPROM)" - #define STRING_ABL_Z "Z vervagen" - #define STRING_BLTOUCH "BLTouch" - #define STRING_BLTOUCH_TEST "Test" - #define STRING_BLTOUCH_DEPLOY "Gebruiken" - #define STRING_BLTOUCH_STOW "Inzetten" - #define STRING_BLTOUCH_REPEAT "Herhaal" - #define STRING_Z_OFFSET "Z Offset" - #define STRING_PROBE_OFFSET "Probe Offset" - #define STRING_HOME_OFFSET "Home Offset" - #define STRING_CONFIRMATION "Weet u het zeker?" - #define STRING_DOWN "Omlaag" - #define STRING_UP "Omhoog" - #define STRING_SAVE "Bewaren" - #define STRING_RESTORE "Herstellen" - #define STRING_RESET "Reset" - #define STRING_DEFAULT "Standaard" - #define STRING_CLEAR "Clear" - #define STRING_NEXT "Volgende" - #define STRING_DISTANCE "Afstand" - #define STRING_INVALID_VALUE "Geen correcte waarde/s voorzien!" - #define STRING_TIMEOUT_REACHED "Time-out bereikt!" - #define STRING_PROCESS_RUNNING "Process bezig!" - #define STRING_PROCESS_COMPLETED "Process voltooid!" - #define STRING_PROCESS_ABORTED "Process geannuleerd!" - #define STRING_INC "Verhogen" - #define STRING_DEC "Verlagen" - #define STRING_NOZZLE "Spuitneus" - #define STRING_BED "Verwarmd bed" - #define STRING_CHAMBER "Kamer" - #define STRING_START "Start" - #define STRING_STOP "Stop" - #define STRING_BACK "Terug" - #define STRING_PAGE_UP "Blz omhoog" - #define STRING_PAGE_DOWN "Blz omlaag" - #define STRING_PAUSE "Pauze" - #define STRING_RESUME "Hervatten" - #define STRING_LOAD "Laden" - #define STRING_UNLOAD "Lossen" - #define STRING_SLOW_SPEED "Traag" - #define STRING_NORMAL_SPEED "Normaal" - #define STRING_FAST_SPEED "Snel" - #define STRING_FAN_FULL_SPEED "Volledig" - #define STRING_FAN_HALF_SPEED "Half" - #define STRING_ROTATE_UI "Draai UI" - #define STRING_TOUCHSCREEN_ADJUST "TSC Aanpassen" - #define STRING_MORE "Meer" - #define STRING_SCREEN_INFO "Info" - #define STRING_STATUS "Status" - #define STRING_SIMULATOR_BG_COLOR "Marlin simulator achtergrond kleur" - #define STRING_SIMULATOR_FONT_COLOR "Marlin simulator tekst kleur" - #define STRING_WHITE "Wit" - #define STRING_BLACK "Zwart" - #define STRING_BLUE "Blauw" - #define STRING_RED "Rood" - #define STRING_GREEN "Groen" - #define STRING_CYAN "Cyaan" - #define STRING_YELLOW "Geel" - #define STRING_BROWN "Bruin" - #define STRING_GRAY "Grijs" - #define STRING_ORANGE "Oranje" - #define STRING_INDIGO "Indigo" - #define STRING_VIOLET "Violet" - #define STRING_MAGENTA "Magenta" - #define STRING_PURPLE "Purple" - #define STRING_LIME "Lime" - #define STRING_DARKBLUE "DarkBlue" - #define STRING_DARKGREEN "DarkGreen" - #define STRING_DARKGRAY "DarkGray" - #define STRING_DISCONNECT "Loskoppelen" - #define STRING_BAUDRATE "Baudsnelheid" - #define STRING_PERCENTAGE "Percentage" - #define STRING_BABYSTEP "BabyStap" - #define STRING_PERCENTAGE_SPEED "Snelheid" - #define STRING_PERCENTAGE_FLOW "Stromen" - #define STRING_VALUE_ZERO "Zero" - #define STRING_1_DEGREE "1℃" - #define STRING_5_DEGREE "5℃" - #define STRING_10_DEGREE "10℃" - #define STRING_X_INC "X+" - #define STRING_Y_INC "Y+" - #define STRING_Z_INC "Z+" - #define STRING_X_DEC "X-" - #define STRING_Y_DEC "Y-" - #define STRING_Z_DEC "Z-" - #define STRING_X "X" - #define STRING_Y "Y" - #define STRING_Z "Z" - #define STRING_001_MM "0.01mm" - #define STRING_01_MM "0.1mm" - #define STRING_1_MM "1mm" - #define STRING_5_MM "5mm" - #define STRING_10_MM "10mm" - #define STRING_100_MM "100mm" - #define STRING_200_MM "200mm" - #define STRING_1_PERCENT "1%" - #define STRING_5_PERCENT "5%" - #define STRING_10_PERCENT "10%" - #define STRING_PERCENT_VALUE "%d%%" - #define STRING_READY "Gereed" - #define STRING_BUSY "In verwerking ,wacht aub..." - #define STRING_UNCONNECTED "Geen printer gekoppeld!" - #define STRING_DISCONNECT_INFO "De printer kan nu door de computer bestuurd worden!" - #define STRING_LOADING "Opladen..." - #define STRING_POWER_FAILED "Verder met printen?" - #define STRING_CONTINUE "Verder" - #define STRING_CANCEL "Afbreken" - #define STRING_ADJUST_TITLE "Touch Screen Calibratie" - #define STRING_ADJUST_INFO "Klik op de rode punt" - #define STRING_ADJUST_OK "Calibratie Gelukt" - #define STRING_ADJUST_FAILED "Calibratie Mislukt, Probeer Opnieuw aub" - #define STRING_WARNING "Waarschuwing" - #define STRING_STOP_PRINT "Stop afdruk?" - #define STRING_CONFIRM "Bevestig" - #define STRING_TFTSD "TFT SD" - #define STRING_READ_TFTSD_ERROR "TFT SD leesfout!" - #define STRING_TFTSD_INSERTED "Kaart geplaatst!" - #define STRING_TFTSD_REMOVED "Kaart verwijdert!" - #define STRING_U_DISK "U Disk" - #define STRING_READ_U_DISK_ERROR "U Disk Leesfout!" - #define STRING_U_DISK_INSERTED "U Disk geplaatst!" - #define STRING_U_DISK_REMOVED "U Disk verwijdert!" - #define STRING_ONBOARDSD "OnboardSD" - #define STRING_READ_ONBOARDSD_ERROR "Onboard SD-kaart leesfout!" - #define STRING_FILAMENT_SENSOR "Filament sensor" - #define STRING_FILAMENT_RUNOUT "filament op!" - #define STRING_PREHEAT "Voorverwarmen" - #define STRING_PREHEAT_BOTH "Beide" - #define STRING_IS_PAUSE "Kan niet extruderen\ntijdens printen,\nPauzeer printen?" - #define STRING_AUTO_SHUT_DOWN "Auto Power" - #define STRING_UNIFIEDMOVE "Beweging" - #define STRING_UNIFIEDHEAT "Verwarm/Ventilator" - #define STRING_COOLDOWN "Afkoelen" - #define STRING_EMERGENCYSTOP "NOODSTOP" - #define STRING_TOUCH_TO_EXIT "Aanraken om te verlaten" - #define STRING_MAINMENU "Menu" - #define STRING_WAIT_TEMP_SHUT_DOWN "Wacht tot de temperatuur\nvan de spuitkop\nlager dan %d℃ is" // Wait for the temperature of hotend to be lower than 50℃ - #define STRING_FORCE_SHUT_DOWN "Forceer Afsluiten" - #define STRING_SHUTTING_DOWN "Afsluiten..." - #define STRING_PARAMETER_SETTING "Parameter" - #define STRING_ON "AAN" - #define STRING_OFF "UIT" - #define STRING_SMART "SLIM" - #define STRING_TERMINAL_ACK "Laat ACK in Terminal zien" - #define STRING_INVERT_XAXIS "Inverteer X Axis" - #define STRING_INVERT_YAXIS "Inverteer Y Axis" - #define STRING_INVERT_ZAXIS "Inverteer Z Axis" - #define STRING_MOVE_SPEED "Bewegingssnelheid(X Y Z)" - #define STRING_KNOB_LED "Draaiknop LED" - #define STRING_KNOB_LED_IDLE "Draaiknop LED inactief" - #define STRING_M0_PAUSE "Gepauseerd door M0 commando" - #define STRING_SEND_START_GCODE "Start Gcode before print" - #define STRING_SEND_END_GCODE "End Gcode after print" - #define STRING_SEND_CANCEL_GCODE "Cancel Gcode" - #define STRING_PERSISTENT_STATUS_INFO "Aanhoudende statusinfo" - #define STRING_FILE_LISTMODE "Files viewer List Mode" - #define STRING_CURRENT_SETTING "Driver stroom (mA)" - #define STRING_STEPS_SETTING "Stappen permm" - #define STRING_MAXFEEDRATE "Max Feed Rate" - #define STRING_MAXACCELERATION "Max Acceleratie" - #define STRING_ACCELERATION "Acceleratie" - #define STRING_PRINT_ACCELERATION "Afdruk Acceleratie" - #define STRING_RETRACT_ACCELERATION "Retract Acceleratie" - #define STRING_TRAVEL_ACCELERATION "Travel Acceleratie" - #define STRING_JERK "Jerk" - #define STRING_JUNCTION_DEVIATION "Junction Deviation" - #define STRING_BUMP_SENSITIVITY "TMC bump sensitiviteit" - #define STRING_FWRETRACT "FW Retraction" - #define STRING_FWRECOVER "FW Retraction Recover" - #define STRING_LIN_ADVANCE "Linear Advance" - #define STRING_RESET_SETTINGS_INFO "Reset alle instellingen \naar de standaard waardes?" - #define STRING_RESET_SETTINGS_DONE "Reset van alle instellingen\nis succesvol gelukt.\nHerstart alstublieft het apparaat." - #define STRING_INFO "Info" - #define STRING_LCD_BRIGHTNESS "LCD Brightness" - #define STRING_LCD_BRIGHTNESS_DIM "LCD Brightness dim" - #define STRING_LCD_DIM_IDLE_TIMER "LCD dim idle timer" - #define STRING_5_SECONDS "5 Sec." - #define STRING_10_SECONDS "10 Sec." - #define STRING_30_SECONDS "30 Sec." - #define STRING_60_SECONDS "1 Min." - #define STRING_120_SECONDS "2 Min." - #define STRING_300_SECONDS "5 Min." - #define STRING_CUSTOM_SECONDS "Custom" - #define STRING_SEQUENTIAL_MODE "Sequential mode" - #define STRING_ST7920_FULLSCREEN "Marlin mode in fullscreen" - #define STRING_PLR_EN "Power loss recovery" - #define STRING_SETTING_SAVE "Save settings" - #define STRING_SETTING_RESET "Reset instellingen" - #define STRING_SETTING_RESTORE "Herstel instellingen" - #define STRING_EEPROM_SETTINGS "EEPROM" - #define STRING_EEPROM_SAVE_INFO "Sla printer instellingen\nop naar EEPROM?" - #define STRING_EEPROM_RESTORE_INFO "Herlaad instellingen van \nde EEPROM?" - #define STRING_EEPROM_RESET_INFO "Reset EEPROM naar de standaard printer instellingen?" - #define STRING_RETRACT_FEEDRATE "Retract feedrate" - #define STRING_RETRACT_LENGTH "Retract length" - #define STRING_RETRACT_SWAP_LENGTH "Retract swap length" - #define STRING_RETRACT_Z_LIFT "Z lift on retraction" - #define STRING_RETRACT_AUTO "Auto Firmware Retract" - #define STRING_RECOVER_FEEDRATE "Recover feedrate" - #define STRING_SWAP_RECOVER_FEEDRATE "Swap recover feedrate" - #define STRING_RECOVER_LENGTH "Extra recover length" - #define STRING_SWAP_RECOVER_LENGTH "Extra recover swap length" - #define STRING_START_PRINT "Start afdruk:\n %s?" - #define STRING_ACK_NOTIFICATION "ACK notification style" - #define STRING_LEVELING_EDGE_DISTANCE "Bed edge distance" - #define STRING_XY_UNLOCK "Ontgrendel XY" - #define STRING_TUNING "Tuning" - #define STRING_PID "PID" - #define STRING_PID_TITLE "PID autotune" - #define STRING_PID_START_INFO "PID autotune zal starten.\nDit kan een paar minuten duren.\nDoorgaan?" - #define STRING_PID_START_INFO_2 "PID autotune is bezig!" - #define STRING_PID_START_INFO_3 "Raak het scherm NIET aan totdat deze klaar is (groene LED aan)!" - #define STRING_TUNE_EXTRUDER "Tune steps" - #define STRING_TUNE_EXT_EXTRUDE_100 "Ext. 100mm" - #define STRING_TUNE_EXT_TEMP "Extruder tuning | Heat" - #define STRING_TUNE_EXT_TEMPLOW "Desired temperature too low!\nMinimum temperature: %d C" - #define STRING_TUNE_EXT_DESIREDVAL "Temperature is not yet at the desired value" - #define STRING_TUNE_EXT_MARK120MM "Mark 120 mm on your fillament\nPress '%s' when ready\nMeasure remaining length\nafter extruding" - #define STRING_TUNE_EXT_HEATOFF "Turn the heater off?" - #define STRING_TUNE_EXT_ADJ_ESTEPS "Adjust E-Steps" - #define STRING_TUNE_EXT_ESTEPS_SAVED "New E-steps saved!\nDon't forget to\nsave it in EEPROM\nNew value: %0.2f" - #define STRING_TUNE_EXT_MEASURED "Length remaining:" - #define STRING_TUNE_EXT_OLD_ESTEP "Old e-steps: %0.2f" - #define STRING_TUNE_EXT_NEW_ESTEP "New e-steps: %0.2f" - #define STRING_CONNECTION_SETTINGS "Connecties" - #define STRING_OFFSET_TOOL "Offset 2nd Nozzle" - #define STRING_HYBRID_THRESHOLD "TMC HybridThreshold" - #define STRING_NOTIFICATIONS "Notifications" - #define STRING_MESH_EDITOR "Mesh edit" - #define STRING_MESH_TUNER "Mesh tuner" - #define STRING_CASE_LIGHT "Case light" +#define STRING_LANGUAGE "Dutch" +#define STRING_HEAT "Verwarm" +#define STRING_MOVE "Verplaats" +#define STRING_HOME "Thuis" +#define STRING_DISABLE_STEPPERS "Disarm All" +#define STRING_PRINT "Print" +#define STRING_EXTRUDE "Extrudeer" +#define STRING_FAN "Ventilator" +#define STRING_SETTINGS "Instellingen" +#define STRING_SCREEN_SETTINGS "Scherm" +#define STRING_MACHINE_SETTINGS "Machine" +#define STRING_FEATURE_SETTINGS "Kenmerk" +#define STRING_SOUND "Sound" +#define STRING_TOUCH_SOUND "Touch sounds" +#define STRING_TOAST_SOUND "Toast Notifications" +#define STRING_ALERT_SOUND "Popups and Alerts" +#define STRING_PREHEATDONE_SOUND "Preheat done notification" +#define STRING_SHUT_DOWN "Uitschakelen" +#define STRING_RGB_SETTINGS "LED Kleur" +#define STRING_RGB_OFF "LED Uit" +#define STRING_TERMINAL "Terminal" +#define STRING_CUSTOM "Aangepast" +#define STRING_LEVELING "Nivelleren" +#define STRING_POINT_1 "Punt 1" +#define STRING_POINT_2 "Punt 2" +#define STRING_POINT_3 "Punt 3" +#define STRING_POINT_4 "Punt 4" +#define STRING_POINT_5 "Punt 5" +#define STRING_BED_LEVELING "Bed Level" +#define STRING_BL_COMPLETE "Bed Leveling voltooid" +#define STRING_BL_SMART_FILL "Missende probe punten\nzijn slim opgevuld.\n \nNote: Vergeet niet op te slaan!" +#define STRING_BL_ENABLE "BL: aan" +#define STRING_BL_DISABLE "BL: uit" +#define STRING_ABL "ABL" +#define STRING_BBL "BBL" +#define STRING_UBL "UBL" +#define STRING_MBL "MBL" +#define STRING_MBL_SETTINGS "Mesh Bed Leveling" +#define STRING_ABL_SETTINGS "Auto Bed Leveling" +#define STRING_ABL_SETTINGS_BBL "Bilinear Bed Leveling" +#define STRING_ABL_SETTINGS_UBL "Unified Bed Leveling" +#define STRING_ABL_SETTINGS_UBL_SAVE "Sla op naar sleuf" +#define STRING_ABL_SETTINGS_UBL_LOAD "Laad van sleuf" +#define STRING_ABL_SLOT0 "Sleuf 0" +#define STRING_ABL_SLOT1 "Sleuf 1" +#define STRING_ABL_SLOT2 "Sleuf 2" +#define STRING_ABL_SLOT3 "Sleuf 3" +#define STRING_ABL_SLOT_EEPROM "Onthoud sleuf voor\nvolgende reboot?\n(sla op in EEPROM)" +#define STRING_ABL_Z "Z vervagen" +#define STRING_BLTOUCH "BLTouch" +#define STRING_BLTOUCH_TEST "Test" +#define STRING_BLTOUCH_DEPLOY "Gebruiken" +#define STRING_BLTOUCH_STOW "Inzetten" +#define STRING_BLTOUCH_REPEAT "Herhaal" +#define STRING_Z_OFFSET "Z Offset" +#define STRING_PROBE_OFFSET "Probe Offset" +#define STRING_HOME_OFFSET "Home Offset" +#define STRING_CONFIRMATION "Weet u het zeker?" +#define STRING_DOWN "Omlaag" +#define STRING_UP "Omhoog" +#define STRING_SAVE "Bewaren" +#define STRING_RESTORE "Herstellen" +#define STRING_RESET "Reset" +#define STRING_DEFAULT "Standaard" +#define STRING_CLEAR "Clear" +#define STRING_NEXT "Volgende" +#define STRING_DISTANCE "Afstand" +#define STRING_INVALID_VALUE "Geen correcte waarde/s voorzien!" +#define STRING_TIMEOUT_REACHED "Time-out bereikt!" +#define STRING_PROCESS_RUNNING "Process bezig!" +#define STRING_PROCESS_COMPLETED "Process voltooid!" +#define STRING_PROCESS_ABORTED "Process geannuleerd!" +#define STRING_INC "Verhogen" +#define STRING_DEC "Verlagen" +#define STRING_NOZZLE "Spuitneus" +#define STRING_BED "Verwarmd bed" +#define STRING_CHAMBER "Kamer" +#define STRING_START "Start" +#define STRING_STOP "Stop" +#define STRING_BACK "Terug" +#define STRING_PAGE_UP "Blz omhoog" +#define STRING_PAGE_DOWN "Blz omlaag" +#define STRING_PAUSE "Pauze" +#define STRING_RESUME "Hervatten" +#define STRING_LOAD "Laden" +#define STRING_UNLOAD "Lossen" +#define STRING_SLOW_SPEED "Traag" +#define STRING_NORMAL_SPEED "Normaal" +#define STRING_FAST_SPEED "Snel" +#define STRING_FAN_FULL_SPEED "Volledig" +#define STRING_FAN_HALF_SPEED "Half" +#define STRING_ROTATE_UI "Draai UI" +#define STRING_TOUCHSCREEN_ADJUST "TSC Aanpassen" +#define STRING_MORE "Meer" +#define STRING_SCREEN_INFO "Info" +#define STRING_STATUS "Status" +#define STRING_SIMULATOR_BG_COLOR "Marlin simulator achtergrond kleur" +#define STRING_SIMULATOR_FONT_COLOR "Marlin simulator tekst kleur" +#define STRING_WHITE "Wit" +#define STRING_BLACK "Zwart" +#define STRING_BLUE "Blauw" +#define STRING_RED "Rood" +#define STRING_GREEN "Groen" +#define STRING_CYAN "Cyaan" +#define STRING_YELLOW "Geel" +#define STRING_BROWN "Bruin" +#define STRING_GRAY "Grijs" +#define STRING_ORANGE "Oranje" +#define STRING_INDIGO "Indigo" +#define STRING_VIOLET "Violet" +#define STRING_MAGENTA "Magenta" +#define STRING_PURPLE "Purple" +#define STRING_LIME "Lime" +#define STRING_DARKBLUE "DarkBlue" +#define STRING_DARKGREEN "DarkGreen" +#define STRING_DARKGRAY "DarkGray" +#define STRING_DISCONNECT "Loskoppelen" +#define STRING_BAUDRATE "Baudsnelheid" +#define STRING_PERCENTAGE "Percentage" +#define STRING_BABYSTEP "BabyStap" +#define STRING_PERCENTAGE_SPEED "Snelheid" +#define STRING_PERCENTAGE_FLOW "Stromen" +#define STRING_VALUE_ZERO "Zero" +#define STRING_1_DEGREE "1℃" +#define STRING_5_DEGREE "5℃" +#define STRING_10_DEGREE "10℃" +#define STRING_X_INC "X+" +#define STRING_Y_INC "Y+" +#define STRING_Z_INC "Z+" +#define STRING_X_DEC "X-" +#define STRING_Y_DEC "Y-" +#define STRING_Z_DEC "Z-" +#define STRING_X "X" +#define STRING_Y "Y" +#define STRING_Z "Z" +#define STRING_001_MM "0.01mm" +#define STRING_01_MM "0.1mm" +#define STRING_1_MM "1mm" +#define STRING_5_MM "5mm" +#define STRING_10_MM "10mm" +#define STRING_100_MM "100mm" +#define STRING_200_MM "200mm" +#define STRING_1_PERCENT "1%" +#define STRING_5_PERCENT "5%" +#define STRING_10_PERCENT "10%" +#define STRING_PERCENT_VALUE "%d%%" +#define STRING_READY "Gereed" +#define STRING_BUSY "In verwerking ,wacht aub..." +#define STRING_UNCONNECTED "Geen printer gekoppeld!" +#define STRING_DISCONNECT_INFO "De printer kan nu door de computer bestuurd worden!" +#define STRING_LOADING "Opladen..." +#define STRING_POWER_FAILED "Verder met printen?" +#define STRING_CONTINUE "Verder" +#define STRING_CANCEL "Afbreken" +#define STRING_ADJUST_TITLE "Touch Screen Calibratie" +#define STRING_ADJUST_INFO "Klik op de rode punt" +#define STRING_ADJUST_OK "Calibratie Gelukt" +#define STRING_ADJUST_FAILED "Calibratie Mislukt, Probeer Opnieuw aub" +#define STRING_WARNING "Waarschuwing" +#define STRING_STOP_PRINT "Stop afdruk?" +#define STRING_CONFIRM "Bevestig" +#define STRING_TFTSD "TFT SD" +#define STRING_READ_TFTSD_ERROR "TFT SD leesfout!" +#define STRING_TFTSD_INSERTED "Kaart geplaatst!" +#define STRING_TFTSD_REMOVED "Kaart verwijdert!" +#define STRING_U_DISK "U Disk" +#define STRING_READ_U_DISK_ERROR "U Disk Leesfout!" +#define STRING_U_DISK_INSERTED "U Disk geplaatst!" +#define STRING_U_DISK_REMOVED "U Disk verwijdert!" +#define STRING_ONBOARDSD "OnboardSD" +#define STRING_READ_ONBOARDSD_ERROR "Onboard SD-kaart leesfout!" +#define STRING_FILAMENT_SENSOR "Filament sensor" +#define STRING_FILAMENT_RUNOUT "filament op!" +#define STRING_PREHEAT "Voorverwarmen" +#define STRING_PREHEAT_BOTH "Beide" +#define STRING_IS_PAUSE "Kan niet extruderen\ntijdens printen,\nPauzeer printen?" +#define STRING_AUTO_SHUT_DOWN "Auto Power" +#define STRING_UNIFIEDMOVE "Beweging" +#define STRING_UNIFIEDHEAT "Verwarm/Ventilator" +#define STRING_COOLDOWN "Afkoelen" +#define STRING_EMERGENCYSTOP "NOODSTOP" +#define STRING_TOUCH_TO_EXIT "Aanraken om te verlaten" +#define STRING_MAINMENU "Menu" +#define STRING_WAIT_TEMP_SHUT_DOWN "Wacht tot de temperatuur\nvan de spuitkop\nlager dan %d℃ is" // Wait for the temperature of hotend to be lower than 50℃ +#define STRING_FORCE_SHUT_DOWN "Forceer Afsluiten" +#define STRING_SHUTTING_DOWN "Afsluiten..." +#define STRING_PARAMETER_SETTING "Parameter" +#define STRING_ON "AAN" +#define STRING_OFF "UIT" +#define STRING_SMART "SLIM" +#define STRING_TERMINAL_ACK "Laat ACK in Terminal zien" +#define STRING_INVERT_XAXIS "Inverteer X Axis" +#define STRING_INVERT_YAXIS "Inverteer Y Axis" +#define STRING_INVERT_ZAXIS "Inverteer Z Axis" +#define STRING_MOVE_SPEED "Bewegingssnelheid(X Y Z)" +#define STRING_KNOB_LED "Draaiknop LED" +#define STRING_KNOB_LED_IDLE "Draaiknop LED inactief" +#define STRING_M0_PAUSE "Gepauseerd door M0 commando" +#define STRING_SEND_START_GCODE "Start Gcode before print" +#define STRING_SEND_END_GCODE "End Gcode after print" +#define STRING_SEND_CANCEL_GCODE "Cancel Gcode" +#define STRING_PERSISTENT_STATUS_INFO "Aanhoudende statusinfo" +#define STRING_FILE_LISTMODE "Files viewer List Mode" +#define STRING_CURRENT_SETTING "Driver stroom (mA)" +#define STRING_STEPS_SETTING "Stappen permm" +#define STRING_MAXFEEDRATE "Max Feed Rate" +#define STRING_MAXACCELERATION "Max Acceleratie" +#define STRING_ACCELERATION "Acceleratie" +#define STRING_PRINT_ACCELERATION "Afdruk Acceleratie" +#define STRING_RETRACT_ACCELERATION "Retract Acceleratie" +#define STRING_TRAVEL_ACCELERATION "Travel Acceleratie" +#define STRING_JERK "Jerk" +#define STRING_JUNCTION_DEVIATION "Junction Deviation" +#define STRING_BUMP_SENSITIVITY "TMC bump sensitiviteit" +#define STRING_FWRETRACT "FW Retraction" +#define STRING_FWRECOVER "FW Retraction Recover" +#define STRING_LIN_ADVANCE "Linear Advance" +#define STRING_RESET_SETTINGS_INFO "Reset alle instellingen \naar de standaard waardes?" +#define STRING_RESET_SETTINGS_DONE "Reset van alle instellingen\nis succesvol gelukt.\nHerstart alstublieft het apparaat." +#define STRING_INFO "Info" +#define STRING_LCD_BRIGHTNESS "LCD Brightness" +#define STRING_LCD_BRIGHTNESS_DIM "LCD Brightness dim" +#define STRING_LCD_DIM_IDLE_TIMER "LCD dim idle timer" +#define STRING_5_SECONDS "5 Sec." +#define STRING_10_SECONDS "10 Sec." +#define STRING_30_SECONDS "30 Sec." +#define STRING_60_SECONDS "1 Min." +#define STRING_120_SECONDS "2 Min." +#define STRING_300_SECONDS "5 Min." +#define STRING_CUSTOM_SECONDS "Custom" +#define STRING_SEQUENTIAL_MODE "Sequential mode" +#define STRING_ST7920_FULLSCREEN "Marlin mode in fullscreen" +#define STRING_PLR_EN "Power loss recovery" +#define STRING_SETTING_SAVE "Save settings" +#define STRING_SETTING_RESET "Reset instellingen" +#define STRING_SETTING_RESTORE "Herstel instellingen" +#define STRING_EEPROM_SETTINGS "EEPROM" +#define STRING_EEPROM_SAVE_INFO "Sla printer instellingen\nop naar EEPROM?" +#define STRING_EEPROM_RESTORE_INFO "Herlaad instellingen van \nde EEPROM?" +#define STRING_EEPROM_RESET_INFO "Reset EEPROM naar de standaard printer instellingen?" +#define STRING_RETRACT_FEEDRATE "Retract feedrate" +#define STRING_RETRACT_LENGTH "Retract length" +#define STRING_RETRACT_SWAP_LENGTH "Retract swap length" +#define STRING_RETRACT_Z_LIFT "Z lift on retraction" +#define STRING_RETRACT_AUTO "Auto Firmware Retract" +#define STRING_RECOVER_FEEDRATE "Recover feedrate" +#define STRING_SWAP_RECOVER_FEEDRATE "Swap recover feedrate" +#define STRING_RECOVER_LENGTH "Extra recover length" +#define STRING_SWAP_RECOVER_LENGTH "Extra recover swap length" +#define STRING_START_PRINT "Start afdruk:\n %s?" +#define STRING_ACK_NOTIFICATION "ACK notification style" +#define STRING_LEVELING_EDGE_DISTANCE "Bed edge distance" +#define STRING_XY_UNLOCK "Ontgrendel XY" +#define STRING_TUNING "Tuning" +#define STRING_PID "PID" +#define STRING_PID_TITLE "PID autotune" +#define STRING_PID_START_INFO "PID autotune zal starten.\nDit kan een paar minuten duren.\nDoorgaan?" +#define STRING_PID_START_INFO_2 "PID autotune is bezig!" +#define STRING_PID_START_INFO_3 "Raak het scherm NIET aan totdat deze klaar is (groene LED aan)!" +#define STRING_TUNE_EXTRUDER "Tune steps" +#define STRING_TUNE_EXT_EXTRUDE_100 "Ext. 100mm" +#define STRING_TUNE_EXT_TEMP "Extruder tuning | Heat" +#define STRING_TUNE_EXT_TEMPLOW "Desired temperature too low!\nMinimum temperature: %d C" +#define STRING_TUNE_EXT_DESIREDVAL "Temperature is not yet at the desired value" +#define STRING_TUNE_EXT_MARK120MM "Mark 120 mm on your fillament\nPress '%s' when ready\nMeasure remaining length\nafter extruding" +#define STRING_TUNE_EXT_HEATOFF "Turn the heater off?" +#define STRING_TUNE_EXT_ADJ_ESTEPS "Adjust E-Steps" +#define STRING_TUNE_EXT_ESTEPS_SAVED "New E-steps saved!\nDon't forget to\nsave it in EEPROM\nNew value: %0.2f" +#define STRING_TUNE_EXT_MEASURED "Length remaining:" +#define STRING_TUNE_EXT_OLD_ESTEP "Old e-steps: %0.2f" +#define STRING_TUNE_EXT_NEW_ESTEP "New e-steps: %0.2f" +#define STRING_CONNECTION_SETTINGS "Connecties" +#define STRING_OFFSET_TOOL "Offset 2nd Nozzle" +#define STRING_HYBRID_THRESHOLD "TMC HybridThreshold" +#define STRING_NOTIFICATIONS "Notifications" +#define STRING_MESH_EDITOR "Mesh edit" +#define STRING_MESH_TUNER "Mesh tuner" +#define STRING_CASE_LIGHT "Case light" diff --git a/TFT/src/User/API/Language/language_pl.h b/TFT/src/User/API/Language/language_pl.h index 97d3e04a91..394ce0a4c7 100644 --- a/TFT/src/User/API/Language/language_pl.h +++ b/TFT/src/User/API/Language/language_pl.h @@ -1,279 +1,280 @@ #pragma once - #define STRING_LANGUAGE "Polski" - #define STRING_HEAT "Temp." - #define STRING_MOVE "Ruch" - #define STRING_HOME "Powrót" - #define STRING_DISABLE_STEPPERS "Disarm All" - #define STRING_PRINT "Druk" - #define STRING_EXTRUDE "Extrude" - #define STRING_FAN "Wentylator" - #define STRING_SETTINGS "Ustawienia" - #define STRING_SCREEN_SETTINGS "Ekran" - #define STRING_MACHINE_SETTINGS "Drukarka" - #define STRING_FEATURE_SETTINGS "Opcje" - #define STRING_SOUND "Sound" - #define STRING_TOUCH_SOUND "Touch sounds" - #define STRING_TOAST_SOUND "Toast Notifications" - #define STRING_ALERT_SOUND "Popups and Alerts" - #define STRING_SHUT_DOWN "Wyłącz" - #define STRING_RGB_SETTINGS "Kolor LED" - #define STRING_RGB_OFF "Wyłącz LED" - #define STRING_TERMINAL "Terminal" - #define STRING_CUSTOM "Własne" - #define STRING_LEVELING "Poziomowanie" - #define STRING_POINT_1 "Punkt 1" - #define STRING_POINT_2 "Punkt 2" - #define STRING_POINT_3 "Punkt 3" - #define STRING_POINT_4 "Punkt 4" - #define STRING_POINT_5 "Punkt 5" - #define STRING_BED_LEVELING "Bed Level" - #define STRING_BL_COMPLETE "Bed Leveling Complete" - #define STRING_BL_SMART_FILL "Missing probe points\nhave been smart filled.\n \nNote: remember to save!" - #define STRING_BL_ENABLE "BL: on" - #define STRING_BL_DISABLE "BL: off" - #define STRING_ABL "ABL" - #define STRING_BBL "BBL" - #define STRING_UBL "UBL" - #define STRING_MBL "MBL" - #define STRING_MBL_SETTINGS "Mesh Bed Leveling" - #define STRING_ABL_SETTINGS "Auto Bed Leveling" - #define STRING_ABL_SETTINGS_BBL "Bilinear Bed Leveling" - #define STRING_ABL_SETTINGS_UBL "Unified Bed Leveling" - #define STRING_ABL_SETTINGS_UBL_SAVE "Save to slot" - #define STRING_ABL_SETTINGS_UBL_LOAD "Load from slot" - #define STRING_ABL_SLOT0 "Slot 0" - #define STRING_ABL_SLOT1 "Slot 1" - #define STRING_ABL_SLOT2 "Slot 2" - #define STRING_ABL_SLOT3 "Slot 3" - #define STRING_ABL_SLOT_EEPROM "Remember slot for next\nreboot? (Save EEPROM)" - #define STRING_ABL_Z "Z Fade" - #define STRING_BLTOUCH "BLTouch" - #define STRING_BLTOUCH_TEST "Test" - #define STRING_BLTOUCH_DEPLOY "Wysuń" - #define STRING_BLTOUCH_STOW "Schowaj" - #define STRING_BLTOUCH_REPEAT "Powtórz" - #define STRING_Z_OFFSET "Z Offset" - #define STRING_PROBE_OFFSET "Przesunięcie" - #define STRING_HOME_OFFSET "Home Offset" - #define STRING_CONFIRMATION "Are you sure?" - #define STRING_DOWN "Down" - #define STRING_UP "Up" - #define STRING_SAVE "Zapisz" - #define STRING_RESTORE "Restore" - #define STRING_RESET "Reset" - #define STRING_DEFAULT "Default" - #define STRING_CLEAR "Clear" - #define STRING_NEXT "Next" - #define STRING_DISTANCE "Distance" - #define STRING_INVALID_VALUE "Invalid value(s)" - #define STRING_TIMEOUT_REACHED "Timeout reached!" - #define STRING_PROCESS_RUNNING "Process already running!" - #define STRING_PROCESS_COMPLETED "Process completed!" - #define STRING_PROCESS_ABORTED "Process aborted!" - #define STRING_INC "Więcej" - #define STRING_DEC "Mniej" - #define STRING_NOZZLE "Głowica" - #define STRING_BED "Stół" - #define STRING_CHAMBER "Chamber" - #define STRING_START "Start" - #define STRING_STOP "Stop" - #define STRING_BACK "Powrót" - #define STRING_PAGE_UP "Dalej" - #define STRING_PAGE_DOWN "Wstecz" - #define STRING_PAUSE "Wstrzymaj" - #define STRING_RESUME "Wznów" - #define STRING_LOAD "Load" - #define STRING_UNLOAD "Unload" - #define STRING_SLOW_SPEED "Wolno" - #define STRING_NORMAL_SPEED "Normalnie" - #define STRING_FAST_SPEED "Szybko" - #define STRING_FAN_FULL_SPEED "Max" - #define STRING_FAN_HALF_SPEED "Połowa" - #define STRING_ROTATE_UI "Obrót" - #define STRING_TOUCHSCREEN_ADJUST "Kalibracja" - #define STRING_MORE "Więcej" - #define STRING_SCREEN_INFO "Info" - #define STRING_STATUS "Status" - #define STRING_SIMULATOR_BG_COLOR "Marlin simulator background color" - #define STRING_SIMULATOR_FONT_COLOR "Marlin simulator font color" - #define STRING_WHITE "Biały" - #define STRING_BLACK "Czarny" - #define STRING_BLUE "Niebieski" - #define STRING_RED "Czerwony" - #define STRING_GREEN "Zielony" - #define STRING_CYAN "Turkusowy" - #define STRING_YELLOW "Żółty" - #define STRING_BROWN "Brązowy" - #define STRING_GRAY "Szary" - #define STRING_ORANGE "Orange" - #define STRING_INDIGO "Indigo" - #define STRING_VIOLET "Violet" - #define STRING_MAGENTA "Magenta" - #define STRING_PURPLE "Purple" - #define STRING_LIME "Lime" - #define STRING_DARKBLUE "DarkBlue" - #define STRING_DARKGREEN "DarkGreen" - #define STRING_DARKGRAY "DarkGray" - #define STRING_DISCONNECT "Odłącz" - #define STRING_BAUDRATE "BaudRate" - #define STRING_PERCENTAGE "Procent" - #define STRING_BABYSTEP "BabyStep" - #define STRING_PERCENTAGE_SPEED "Prędkość" - #define STRING_PERCENTAGE_FLOW "Flow" - #define STRING_VALUE_ZERO "Zero" - #define STRING_1_DEGREE "1℃" - #define STRING_5_DEGREE "5℃" - #define STRING_10_DEGREE "10℃" - #define STRING_X_INC "X+" - #define STRING_Y_INC "Y+" - #define STRING_Z_INC "Z+" - #define STRING_X_DEC "X-" - #define STRING_Y_DEC "Y-" - #define STRING_Z_DEC "Z-" - #define STRING_X "X" - #define STRING_Y "Y" - #define STRING_Z "Z" - #define STRING_001_MM "0.01mm" - #define STRING_01_MM "0.1mm" - #define STRING_1_MM "1mm" - #define STRING_5_MM "5mm" - #define STRING_10_MM "10mm" - #define STRING_100_MM "100mm" - #define STRING_200_MM "200mm" - #define STRING_1_PERCENT "1%" - #define STRING_5_PERCENT "5%" - #define STRING_10_PERCENT "10%" - #define STRING_PERCENT_VALUE "%d%%" - #define STRING_READY "Gotowy" - #define STRING_BUSY "Trwa przetwarzanie, proszę czekać..." - #define STRING_UNCONNECTED "Drukarka nie podłączona!" - #define STRING_DISCONNECT_INFO "Teraz możesz kontrolować drukarkę z komputera!" - #define STRING_LOADING "Loading..." - #define STRING_POWER_FAILED "Kontynuować drukowanie?" - #define STRING_CONTINUE "Kontynuuj" - #define STRING_CANCEL "Anuluj" - #define STRING_ADJUST_TITLE "Kalibracja ekranu dotykowego" - #define STRING_ADJUST_INFO "Dotykaj czerwoną kropkę" - #define STRING_ADJUST_OK "Kalibracja poprawna" - #define STRING_ADJUST_FAILED "Kalibracja niepoprawna, spróbuj ponownie" - #define STRING_WARNING "Uwaga" - #define STRING_STOP_PRINT "Zatrzymać drukowanie?" - #define STRING_CONFIRM "Potwierdź" - #define STRING_TFTSD "SD TFT" - #define STRING_READ_TFTSD_ERROR "Błąd odczytu karty SD wyświetlacza!" - #define STRING_TFTSD_INSERTED "Karta włożona!" - #define STRING_TFTSD_REMOVED "Karta wyjęta!" - #define STRING_U_DISK "U Disk" - #define STRING_READ_U_DISK_ERROR "Błąd odczytu U Disk!" - #define STRING_U_DISK_INSERTED "U Disk włożony!" - #define STRING_U_DISK_REMOVED "U Disk wyjęty!" - #define STRING_ONBOARDSD "SD płyta" - #define STRING_READ_ONBOARDSD_ERROR "Błąd odczytu karty SD na płycie!" - #define STRING_FILAMENT_SENSOR "Filament sensor" - #define STRING_FILAMENT_RUNOUT "brak filamentu!" - #define STRING_PREHEAT "Rozgrzew." - #define STRING_PREHEAT_BOTH "Wszystko" - #define STRING_IS_PAUSE "Operacja niedostępna\nw trakcie drukowania,\nwstrzymać drukowanie?" - #define STRING_AUTO_SHUT_DOWN "Auto Wył." - #define STRING_UNIFIEDMOVE "Ruch" - #define STRING_UNIFIEDHEAT "Temperatura" - #define STRING_COOLDOWN "Chłodzenie" - #define STRING_EMERGENCYSTOP "ZATRZYMAJ" - #define STRING_TOUCH_TO_EXIT "Dotkij aby wyjść" - #define STRING_MAINMENU "Menu" - #define STRING_WAIT_TEMP_SHUT_DOWN "Czekam na schłodzenie\ndo %d℃" // Wait for the temperature of hotend to be lower than 50℃ - #define STRING_FORCE_SHUT_DOWN "Wymuś" - #define STRING_SHUTTING_DOWN "Wyłączanie..." - #define STRING_PARAMETER_SETTING "Parametr" - #define STRING_ON "ON" - #define STRING_OFF "OFF" - #define STRING_SMART "SMART" - #define STRING_TERMINAL_ACK "Show ACK in Terminal" - #define STRING_INVERT_XAXIS "Invert X Axis" - #define STRING_INVERT_YAXIS "Invert Y Axis" - #define STRING_INVERT_ZAXIS "Invert Z Axis" - #define STRING_MOVE_SPEED "Move speed(X Y Z)" - #define STRING_KNOB_LED "Rotary Knob LED" - #define STRING_KNOB_LED_IDLE "Rotary Knob LED idle" - #define STRING_M0_PAUSE "Paused by M0 command" - #define STRING_SEND_START_GCODE "Start Gcode before print" - #define STRING_SEND_END_GCODE "End Gcode after print" - #define STRING_SEND_CANCEL_GCODE "Cancel Gcode" - #define STRING_PERSISTENT_STATUS_INFO "Persistent Status Info" - #define STRING_FILE_LISTMODE "Files viewer List Mode" - #define STRING_CURRENT_SETTING "Driver Current (mA)" - #define STRING_STEPS_SETTING "Steps per mm" - #define STRING_MAXFEEDRATE "Max Feed Rate" - #define STRING_MAXACCELERATION "Max Acceleration" - #define STRING_ACCELERATION "Acceleration" - #define STRING_PRINT_ACCELERATION "Print Acceleration" - #define STRING_RETRACT_ACCELERATION "Retract Acceleration" - #define STRING_TRAVEL_ACCELERATION "Travel Acceleration" - #define STRING_JERK "Jerk" - #define STRING_JUNCTION_DEVIATION "Junction Deviation" - #define STRING_BUMP_SENSITIVITY "TMC bump sensitivity" - #define STRING_FWRETRACT "FW Retraction" - #define STRING_FWRECOVER "FW Retraction Recover" - #define STRING_LIN_ADVANCE "Linear Advance" - #define STRING_RESET_SETTINGS_INFO "Reset all settings to\ndefault values?" - #define STRING_RESET_SETTINGS_DONE "Reset all settings\nsuccessful.\nplease restart the device." - #define STRING_INFO "Info" - #define STRING_LCD_BRIGHTNESS "LCD Brightness" - #define STRING_LCD_BRIGHTNESS_DIM "LCD Brightness dim" - #define STRING_LCD_DIM_IDLE_TIMER "LCD dim idle timer" - #define STRING_5_SECONDS "5 Sec." - #define STRING_10_SECONDS "10 Sec." - #define STRING_30_SECONDS "30 Sec." - #define STRING_60_SECONDS "1 Min." - #define STRING_120_SECONDS "2 Min." - #define STRING_300_SECONDS "5 Min." - #define STRING_CUSTOM_SECONDS "Custom" - #define STRING_SEQUENTIAL_MODE "Sequential mode" - #define STRING_ST7920_FULLSCREEN "Marlin mode in fullscreen" - #define STRING_PLR_EN "Power loss recovery" - #define STRING_SETTING_SAVE "Save settings" - #define STRING_SETTING_RESET "Reset default settings" - #define STRING_SETTING_RESTORE "Restore settings" - #define STRING_EEPROM_SETTINGS "EEPROM" - #define STRING_EEPROM_SAVE_INFO "Save printer settings\nto EEPROM?" - #define STRING_EEPROM_RESTORE_INFO "Reload settings from\nEEPROM?" - #define STRING_EEPROM_RESET_INFO "Reset EEPROM to stock printer settings?" - #define STRING_RETRACT_FEEDRATE "Retract feedrate" - #define STRING_RETRACT_LENGTH "Retract length" - #define STRING_RETRACT_SWAP_LENGTH "Retract swap length" - #define STRING_RETRACT_Z_LIFT "Z lift on retraction" - #define STRING_RETRACT_AUTO "Auto Firmware Retract" - #define STRING_RECOVER_FEEDRATE "Recover feedrate" - #define STRING_SWAP_RECOVER_FEEDRATE "Swap recover feedrate" - #define STRING_RECOVER_LENGTH "Extra recover length" - #define STRING_SWAP_RECOVER_LENGTH "Extra recover swap length" - #define STRING_START_PRINT "Start Printing:\n %s?" - #define STRING_ACK_NOTIFICATION "ACK notification style" - #define STRING_LEVELING_EDGE_DISTANCE "Bed edge distance" - #define STRING_XY_UNLOCK "Odblokuj XY" - #define STRING_TUNING "Tuning" - #define STRING_PID "PID" - #define STRING_PID_TITLE "PID autotune" - #define STRING_PID_START_INFO "PID autotune may take\nsome time to complete.\nContinue?" - #define STRING_PID_START_INFO_2 "PID autotune in progress!" - #define STRING_PID_START_INFO_3 "Do not touch the screen until completed (green LED ON)!" - #define STRING_TUNE_EXTRUDER "Tune steps" - #define STRING_TUNE_EXT_EXTRUDE_100 "Ext. 100mm" - #define STRING_TUNE_EXT_TEMP "Extruder tuning | Heat" - #define STRING_TUNE_EXT_TEMPLOW "Desired temperature too low!\nMinimum temperature: %d C" - #define STRING_TUNE_EXT_DESIREDVAL "Temperature is not yet at the desired value" - #define STRING_TUNE_EXT_MARK120MM "Mark 120 mm on your fillament\nPress '%s' when ready\nMeasure remaining length\nafter extruding" - #define STRING_TUNE_EXT_HEATOFF "Turn the heater off?" - #define STRING_TUNE_EXT_ADJ_ESTEPS "Adjust E-Steps" - #define STRING_TUNE_EXT_ESTEPS_SAVED "New E-steps saved!\nDon't forget to\nsave it in EEPROM\nNew value: %0.2f" - #define STRING_TUNE_EXT_MEASURED "Length remaining:" - #define STRING_TUNE_EXT_OLD_ESTEP "Old e-steps: %0.2f" - #define STRING_TUNE_EXT_NEW_ESTEP "New e-steps: %0.2f" - #define STRING_CONNECTION_SETTINGS "Connection" - #define STRING_OFFSET_TOOL "Offset 2nd Nozzle" - #define STRING_HYBRID_THRESHOLD "TMC HybridThreshold" - #define STRING_NOTIFICATIONS "Notifications" - #define STRING_MESH_EDITOR "Mesh edit" - #define STRING_MESH_TUNER "Mesh tuner" - #define STRING_CASE_LIGHT "Case light" +#define STRING_LANGUAGE "Polski" +#define STRING_HEAT "Temp." +#define STRING_MOVE "Ruch" +#define STRING_HOME "Powrót" +#define STRING_DISABLE_STEPPERS "Disarm All" +#define STRING_PRINT "Druk" +#define STRING_EXTRUDE "Extrude" +#define STRING_FAN "Wentylator" +#define STRING_SETTINGS "Ustawienia" +#define STRING_SCREEN_SETTINGS "Ekran" +#define STRING_MACHINE_SETTINGS "Drukarka" +#define STRING_FEATURE_SETTINGS "Opcje" +#define STRING_SOUND "Sound" +#define STRING_TOUCH_SOUND "Touch sounds" +#define STRING_TOAST_SOUND "Toast Notifications" +#define STRING_ALERT_SOUND "Popups and Alerts" +#define STRING_PREHEATDONE_SOUND "Preheat done notification" +#define STRING_SHUT_DOWN "Wyłącz" +#define STRING_RGB_SETTINGS "Kolor LED" +#define STRING_RGB_OFF "Wyłącz LED" +#define STRING_TERMINAL "Terminal" +#define STRING_CUSTOM "Własne" +#define STRING_LEVELING "Poziomowanie" +#define STRING_POINT_1 "Punkt 1" +#define STRING_POINT_2 "Punkt 2" +#define STRING_POINT_3 "Punkt 3" +#define STRING_POINT_4 "Punkt 4" +#define STRING_POINT_5 "Punkt 5" +#define STRING_BED_LEVELING "Bed Level" +#define STRING_BL_COMPLETE "Bed Leveling Complete" +#define STRING_BL_SMART_FILL "Missing probe points\nhave been smart filled.\n \nNote: remember to save!" +#define STRING_BL_ENABLE "BL: on" +#define STRING_BL_DISABLE "BL: off" +#define STRING_ABL "ABL" +#define STRING_BBL "BBL" +#define STRING_UBL "UBL" +#define STRING_MBL "MBL" +#define STRING_MBL_SETTINGS "Mesh Bed Leveling" +#define STRING_ABL_SETTINGS "Auto Bed Leveling" +#define STRING_ABL_SETTINGS_BBL "Bilinear Bed Leveling" +#define STRING_ABL_SETTINGS_UBL "Unified Bed Leveling" +#define STRING_ABL_SETTINGS_UBL_SAVE "Save to slot" +#define STRING_ABL_SETTINGS_UBL_LOAD "Load from slot" +#define STRING_ABL_SLOT0 "Slot 0" +#define STRING_ABL_SLOT1 "Slot 1" +#define STRING_ABL_SLOT2 "Slot 2" +#define STRING_ABL_SLOT3 "Slot 3" +#define STRING_ABL_SLOT_EEPROM "Remember slot for next\nreboot? (Save EEPROM)" +#define STRING_ABL_Z "Z Fade" +#define STRING_BLTOUCH "BLTouch" +#define STRING_BLTOUCH_TEST "Test" +#define STRING_BLTOUCH_DEPLOY "Wysuń" +#define STRING_BLTOUCH_STOW "Schowaj" +#define STRING_BLTOUCH_REPEAT "Powtórz" +#define STRING_Z_OFFSET "Z Offset" +#define STRING_PROBE_OFFSET "Przesunięcie" +#define STRING_HOME_OFFSET "Home Offset" +#define STRING_CONFIRMATION "Are you sure?" +#define STRING_DOWN "Down" +#define STRING_UP "Up" +#define STRING_SAVE "Zapisz" +#define STRING_RESTORE "Restore" +#define STRING_RESET "Reset" +#define STRING_DEFAULT "Default" +#define STRING_CLEAR "Clear" +#define STRING_NEXT "Next" +#define STRING_DISTANCE "Distance" +#define STRING_INVALID_VALUE "Invalid value(s)" +#define STRING_TIMEOUT_REACHED "Timeout reached!" +#define STRING_PROCESS_RUNNING "Process already running!" +#define STRING_PROCESS_COMPLETED "Process completed!" +#define STRING_PROCESS_ABORTED "Process aborted!" +#define STRING_INC "Więcej" +#define STRING_DEC "Mniej" +#define STRING_NOZZLE "Głowica" +#define STRING_BED "Stół" +#define STRING_CHAMBER "Chamber" +#define STRING_START "Start" +#define STRING_STOP "Stop" +#define STRING_BACK "Powrót" +#define STRING_PAGE_UP "Dalej" +#define STRING_PAGE_DOWN "Wstecz" +#define STRING_PAUSE "Wstrzymaj" +#define STRING_RESUME "Wznów" +#define STRING_LOAD "Load" +#define STRING_UNLOAD "Unload" +#define STRING_SLOW_SPEED "Wolno" +#define STRING_NORMAL_SPEED "Normalnie" +#define STRING_FAST_SPEED "Szybko" +#define STRING_FAN_FULL_SPEED "Max" +#define STRING_FAN_HALF_SPEED "Połowa" +#define STRING_ROTATE_UI "Obrót" +#define STRING_TOUCHSCREEN_ADJUST "Kalibracja" +#define STRING_MORE "Więcej" +#define STRING_SCREEN_INFO "Info" +#define STRING_STATUS "Status" +#define STRING_SIMULATOR_BG_COLOR "Marlin simulator background color" +#define STRING_SIMULATOR_FONT_COLOR "Marlin simulator font color" +#define STRING_WHITE "Biały" +#define STRING_BLACK "Czarny" +#define STRING_BLUE "Niebieski" +#define STRING_RED "Czerwony" +#define STRING_GREEN "Zielony" +#define STRING_CYAN "Turkusowy" +#define STRING_YELLOW "Żółty" +#define STRING_BROWN "Brązowy" +#define STRING_GRAY "Szary" +#define STRING_ORANGE "Orange" +#define STRING_INDIGO "Indigo" +#define STRING_VIOLET "Violet" +#define STRING_MAGENTA "Magenta" +#define STRING_PURPLE "Purple" +#define STRING_LIME "Lime" +#define STRING_DARKBLUE "DarkBlue" +#define STRING_DARKGREEN "DarkGreen" +#define STRING_DARKGRAY "DarkGray" +#define STRING_DISCONNECT "Odłącz" +#define STRING_BAUDRATE "BaudRate" +#define STRING_PERCENTAGE "Procent" +#define STRING_BABYSTEP "BabyStep" +#define STRING_PERCENTAGE_SPEED "Prędkość" +#define STRING_PERCENTAGE_FLOW "Flow" +#define STRING_VALUE_ZERO "Zero" +#define STRING_1_DEGREE "1℃" +#define STRING_5_DEGREE "5℃" +#define STRING_10_DEGREE "10℃" +#define STRING_X_INC "X+" +#define STRING_Y_INC "Y+" +#define STRING_Z_INC "Z+" +#define STRING_X_DEC "X-" +#define STRING_Y_DEC "Y-" +#define STRING_Z_DEC "Z-" +#define STRING_X "X" +#define STRING_Y "Y" +#define STRING_Z "Z" +#define STRING_001_MM "0.01mm" +#define STRING_01_MM "0.1mm" +#define STRING_1_MM "1mm" +#define STRING_5_MM "5mm" +#define STRING_10_MM "10mm" +#define STRING_100_MM "100mm" +#define STRING_200_MM "200mm" +#define STRING_1_PERCENT "1%" +#define STRING_5_PERCENT "5%" +#define STRING_10_PERCENT "10%" +#define STRING_PERCENT_VALUE "%d%%" +#define STRING_READY "Gotowy" +#define STRING_BUSY "Trwa przetwarzanie, proszę czekać..." +#define STRING_UNCONNECTED "Drukarka nie podłączona!" +#define STRING_DISCONNECT_INFO "Teraz możesz kontrolować drukarkę z komputera!" +#define STRING_LOADING "Loading..." +#define STRING_POWER_FAILED "Kontynuować drukowanie?" +#define STRING_CONTINUE "Kontynuuj" +#define STRING_CANCEL "Anuluj" +#define STRING_ADJUST_TITLE "Kalibracja ekranu dotykowego" +#define STRING_ADJUST_INFO "Dotykaj czerwoną kropkę" +#define STRING_ADJUST_OK "Kalibracja poprawna" +#define STRING_ADJUST_FAILED "Kalibracja niepoprawna, spróbuj ponownie" +#define STRING_WARNING "Uwaga" +#define STRING_STOP_PRINT "Zatrzymać drukowanie?" +#define STRING_CONFIRM "Potwierdź" +#define STRING_TFTSD "SD TFT" +#define STRING_READ_TFTSD_ERROR "Błąd odczytu karty SD wyświetlacza!" +#define STRING_TFTSD_INSERTED "Karta włożona!" +#define STRING_TFTSD_REMOVED "Karta wyjęta!" +#define STRING_U_DISK "U Disk" +#define STRING_READ_U_DISK_ERROR "Błąd odczytu U Disk!" +#define STRING_U_DISK_INSERTED "U Disk włożony!" +#define STRING_U_DISK_REMOVED "U Disk wyjęty!" +#define STRING_ONBOARDSD "SD płyta" +#define STRING_READ_ONBOARDSD_ERROR "Błąd odczytu karty SD na płycie!" +#define STRING_FILAMENT_SENSOR "Filament sensor" +#define STRING_FILAMENT_RUNOUT "brak filamentu!" +#define STRING_PREHEAT "Rozgrzew." +#define STRING_PREHEAT_BOTH "Wszystko" +#define STRING_IS_PAUSE "Operacja niedostępna\nw trakcie drukowania,\nwstrzymać drukowanie?" +#define STRING_AUTO_SHUT_DOWN "Auto Wył." +#define STRING_UNIFIEDMOVE "Ruch" +#define STRING_UNIFIEDHEAT "Temperatura" +#define STRING_COOLDOWN "Chłodzenie" +#define STRING_EMERGENCYSTOP "ZATRZYMAJ" +#define STRING_TOUCH_TO_EXIT "Dotkij aby wyjść" +#define STRING_MAINMENU "Menu" +#define STRING_WAIT_TEMP_SHUT_DOWN "Czekam na schłodzenie\ndo %d℃" // Wait for the temperature of hotend to be lower than 50℃ +#define STRING_FORCE_SHUT_DOWN "Wymuś" +#define STRING_SHUTTING_DOWN "Wyłączanie..." +#define STRING_PARAMETER_SETTING "Parametr" +#define STRING_ON "ON" +#define STRING_OFF "OFF" +#define STRING_SMART "SMART" +#define STRING_TERMINAL_ACK "Show ACK in Terminal" +#define STRING_INVERT_XAXIS "Invert X Axis" +#define STRING_INVERT_YAXIS "Invert Y Axis" +#define STRING_INVERT_ZAXIS "Invert Z Axis" +#define STRING_MOVE_SPEED "Move speed(X Y Z)" +#define STRING_KNOB_LED "Rotary Knob LED" +#define STRING_KNOB_LED_IDLE "Rotary Knob LED idle" +#define STRING_M0_PAUSE "Paused by M0 command" +#define STRING_SEND_START_GCODE "Start Gcode before print" +#define STRING_SEND_END_GCODE "End Gcode after print" +#define STRING_SEND_CANCEL_GCODE "Cancel Gcode" +#define STRING_PERSISTENT_STATUS_INFO "Persistent Status Info" +#define STRING_FILE_LISTMODE "Files viewer List Mode" +#define STRING_CURRENT_SETTING "Driver Current (mA)" +#define STRING_STEPS_SETTING "Steps per mm" +#define STRING_MAXFEEDRATE "Max Feed Rate" +#define STRING_MAXACCELERATION "Max Acceleration" +#define STRING_ACCELERATION "Acceleration" +#define STRING_PRINT_ACCELERATION "Print Acceleration" +#define STRING_RETRACT_ACCELERATION "Retract Acceleration" +#define STRING_TRAVEL_ACCELERATION "Travel Acceleration" +#define STRING_JERK "Jerk" +#define STRING_JUNCTION_DEVIATION "Junction Deviation" +#define STRING_BUMP_SENSITIVITY "TMC bump sensitivity" +#define STRING_FWRETRACT "FW Retraction" +#define STRING_FWRECOVER "FW Retraction Recover" +#define STRING_LIN_ADVANCE "Linear Advance" +#define STRING_RESET_SETTINGS_INFO "Reset all settings to\ndefault values?" +#define STRING_RESET_SETTINGS_DONE "Reset all settings\nsuccessful.\nplease restart the device." +#define STRING_INFO "Info" +#define STRING_LCD_BRIGHTNESS "LCD Brightness" +#define STRING_LCD_BRIGHTNESS_DIM "LCD Brightness dim" +#define STRING_LCD_DIM_IDLE_TIMER "LCD dim idle timer" +#define STRING_5_SECONDS "5 Sec." +#define STRING_10_SECONDS "10 Sec." +#define STRING_30_SECONDS "30 Sec." +#define STRING_60_SECONDS "1 Min." +#define STRING_120_SECONDS "2 Min." +#define STRING_300_SECONDS "5 Min." +#define STRING_CUSTOM_SECONDS "Custom" +#define STRING_SEQUENTIAL_MODE "Sequential mode" +#define STRING_ST7920_FULLSCREEN "Marlin mode in fullscreen" +#define STRING_PLR_EN "Power loss recovery" +#define STRING_SETTING_SAVE "Save settings" +#define STRING_SETTING_RESET "Reset default settings" +#define STRING_SETTING_RESTORE "Restore settings" +#define STRING_EEPROM_SETTINGS "EEPROM" +#define STRING_EEPROM_SAVE_INFO "Save printer settings\nto EEPROM?" +#define STRING_EEPROM_RESTORE_INFO "Reload settings from\nEEPROM?" +#define STRING_EEPROM_RESET_INFO "Reset EEPROM to stock printer settings?" +#define STRING_RETRACT_FEEDRATE "Retract feedrate" +#define STRING_RETRACT_LENGTH "Retract length" +#define STRING_RETRACT_SWAP_LENGTH "Retract swap length" +#define STRING_RETRACT_Z_LIFT "Z lift on retraction" +#define STRING_RETRACT_AUTO "Auto Firmware Retract" +#define STRING_RECOVER_FEEDRATE "Recover feedrate" +#define STRING_SWAP_RECOVER_FEEDRATE "Swap recover feedrate" +#define STRING_RECOVER_LENGTH "Extra recover length" +#define STRING_SWAP_RECOVER_LENGTH "Extra recover swap length" +#define STRING_START_PRINT "Start Printing:\n %s?" +#define STRING_ACK_NOTIFICATION "ACK notification style" +#define STRING_LEVELING_EDGE_DISTANCE "Bed edge distance" +#define STRING_XY_UNLOCK "Odblokuj XY" +#define STRING_TUNING "Tuning" +#define STRING_PID "PID" +#define STRING_PID_TITLE "PID autotune" +#define STRING_PID_START_INFO "PID autotune may take\nsome time to complete.\nContinue?" +#define STRING_PID_START_INFO_2 "PID autotune in progress!" +#define STRING_PID_START_INFO_3 "Do not touch the screen until completed (green LED ON)!" +#define STRING_TUNE_EXTRUDER "Tune steps" +#define STRING_TUNE_EXT_EXTRUDE_100 "Ext. 100mm" +#define STRING_TUNE_EXT_TEMP "Extruder tuning | Heat" +#define STRING_TUNE_EXT_TEMPLOW "Desired temperature too low!\nMinimum temperature: %d C" +#define STRING_TUNE_EXT_DESIREDVAL "Temperature is not yet at the desired value" +#define STRING_TUNE_EXT_MARK120MM "Mark 120 mm on your fillament\nPress '%s' when ready\nMeasure remaining length\nafter extruding" +#define STRING_TUNE_EXT_HEATOFF "Turn the heater off?" +#define STRING_TUNE_EXT_ADJ_ESTEPS "Adjust E-Steps" +#define STRING_TUNE_EXT_ESTEPS_SAVED "New E-steps saved!\nDon't forget to\nsave it in EEPROM\nNew value: %0.2f" +#define STRING_TUNE_EXT_MEASURED "Length remaining:" +#define STRING_TUNE_EXT_OLD_ESTEP "Old e-steps: %0.2f" +#define STRING_TUNE_EXT_NEW_ESTEP "New e-steps: %0.2f" +#define STRING_CONNECTION_SETTINGS "Connection" +#define STRING_OFFSET_TOOL "Offset 2nd Nozzle" +#define STRING_HYBRID_THRESHOLD "TMC HybridThreshold" +#define STRING_NOTIFICATIONS "Notifications" +#define STRING_MESH_EDITOR "Mesh edit" +#define STRING_MESH_TUNER "Mesh tuner" +#define STRING_CASE_LIGHT "Case light" diff --git a/TFT/src/User/API/Language/language_pt.h b/TFT/src/User/API/Language/language_pt.h index 50be00e142..cb69219ef9 100644 --- a/TFT/src/User/API/Language/language_pt.h +++ b/TFT/src/User/API/Language/language_pt.h @@ -1,279 +1,280 @@ #pragma once - #define STRING_LANGUAGE "Portugues" - #define STRING_HEAT "Aquecer" - #define STRING_MOVE "Mover" - #define STRING_HOME "Inicio" - #define STRING_DISABLE_STEPPERS "Disarm All" - #define STRING_PRINT "Imprimir" - #define STRING_EXTRUDE "Extrudir" - #define STRING_FAN "Ventoinha" - #define STRING_SETTINGS "Configurar" - #define STRING_SCREEN_SETTINGS "Ecra" - #define STRING_MACHINE_SETTINGS "Impressora" - #define STRING_FEATURE_SETTINGS "Extras" - #define STRING_SOUND "Sound" - #define STRING_TOUCH_SOUND "Touch sounds" - #define STRING_TOAST_SOUND "Toast Notifications" - #define STRING_ALERT_SOUND "Popups and Alerts" - #define STRING_SHUT_DOWN "Desligar" - #define STRING_RGB_SETTINGS "LED cor" - #define STRING_RGB_OFF "Desligar" - #define STRING_TERMINAL "Terminal" - #define STRING_CUSTOM "Custom" - #define STRING_LEVELING "Nivelar" - #define STRING_POINT_1 "Ponto 1" - #define STRING_POINT_2 "Ponto 2" - #define STRING_POINT_3 "Ponto 3" - #define STRING_POINT_4 "Ponto 4" - #define STRING_POINT_5 "Ponto 5" - #define STRING_BED_LEVELING "Bed Level" - #define STRING_BL_COMPLETE "Bed Leveling Complete" - #define STRING_BL_SMART_FILL "Missing probe points\nhave been smart filled.\n \nNote: remember to save!" - #define STRING_BL_ENABLE "BL: on" - #define STRING_BL_DISABLE "BL: off" - #define STRING_ABL "ABL" - #define STRING_BBL "BBL" - #define STRING_UBL "UBL" - #define STRING_MBL "MBL" - #define STRING_MBL_SETTINGS "Mesh Bed Leveling" - #define STRING_ABL_SETTINGS "Auto Bed Leveling" - #define STRING_ABL_SETTINGS_BBL "Bilinear Bed Leveling" - #define STRING_ABL_SETTINGS_UBL "Unified Bed Leveling" - #define STRING_ABL_SETTINGS_UBL_SAVE "Save to slot" - #define STRING_ABL_SETTINGS_UBL_LOAD "Load from slot" - #define STRING_ABL_SLOT0 "Slot 0" - #define STRING_ABL_SLOT1 "Slot 1" - #define STRING_ABL_SLOT2 "Slot 2" - #define STRING_ABL_SLOT3 "Slot 3" - #define STRING_ABL_SLOT_EEPROM "Remember slot for next\nreboot? (Save EEPROM)" - #define STRING_ABL_Z "Z Fade" - #define STRING_BLTOUCH "BLTouch" - #define STRING_BLTOUCH_TEST "Testar" - #define STRING_BLTOUCH_DEPLOY "Abrir" - #define STRING_BLTOUCH_STOW "Encolher" - #define STRING_BLTOUCH_REPEAT "Repetir" - #define STRING_Z_OFFSET "Z Offset" - #define STRING_PROBE_OFFSET "Probe Offset" - #define STRING_HOME_OFFSET "Home Offset" - #define STRING_CONFIRMATION "Are you sure?" - #define STRING_DOWN "Down" - #define STRING_UP "Up" - #define STRING_SAVE "Gravar" - #define STRING_RESTORE "Restore" - #define STRING_RESET "Reset" - #define STRING_DEFAULT "Default" - #define STRING_CLEAR "Clear" - #define STRING_NEXT "Next" - #define STRING_DISTANCE "Distance" - #define STRING_INVALID_VALUE "Invalid value(s)" - #define STRING_TIMEOUT_REACHED "Timeout reached!" - #define STRING_PROCESS_RUNNING "Process already running!" - #define STRING_PROCESS_COMPLETED "Process completed!" - #define STRING_PROCESS_ABORTED "Process aborted!" - #define STRING_INC "Aumentar" - #define STRING_DEC "Diminuir" - #define STRING_NOZZLE "Nozzle" - #define STRING_BED "Hotbed" - #define STRING_CHAMBER "Chamber" - #define STRING_START "Start" - #define STRING_STOP "Parar" - #define STRING_BACK "Voltar" - #define STRING_PAGE_UP "Subir pagina" - #define STRING_PAGE_DOWN "Pagina abaixo" - #define STRING_PAUSE "Pausar" - #define STRING_RESUME "Resumir" - #define STRING_LOAD "Carregar" - #define STRING_UNLOAD "Descarregar" - #define STRING_SLOW_SPEED "Lento" - #define STRING_NORMAL_SPEED "Normal" - #define STRING_FAST_SPEED "Rapido" - #define STRING_FAN_FULL_SPEED "Full" - #define STRING_FAN_HALF_SPEED "Half" - #define STRING_ROTATE_UI "Rodar" - #define STRING_TOUCHSCREEN_ADJUST "Ajustar" - #define STRING_MORE "Mais" - #define STRING_SCREEN_INFO "Info" - #define STRING_STATUS "Status" - #define STRING_SIMULATOR_BG_COLOR "Marlin simulator background color" - #define STRING_SIMULATOR_FONT_COLOR "Marlin simulator font color" - #define STRING_WHITE "Branco" - #define STRING_BLACK "Preto" - #define STRING_BLUE "Azul" - #define STRING_RED "Vermelho" - #define STRING_GREEN "Verde" - #define STRING_CYAN "Turquesa" - #define STRING_YELLOW "Amarelo" - #define STRING_BROWN "Castanho" - #define STRING_GRAY "Cinzento" - #define STRING_ORANGE "Orange" - #define STRING_INDIGO "Indigo" - #define STRING_VIOLET "Violet" - #define STRING_MAGENTA "Magenta" - #define STRING_PURPLE "Purple" - #define STRING_LIME "Lime" - #define STRING_DARKBLUE "DarkBlue" - #define STRING_DARKGREEN "DarkGreen" - #define STRING_DARKGRAY "DarkGray" - #define STRING_DISCONNECT "Desconectar" - #define STRING_BAUDRATE "BaudRate" - #define STRING_PERCENTAGE "Percentagem" - #define STRING_BABYSTEP "BabyStep" - #define STRING_PERCENTAGE_SPEED "Rapidez" - #define STRING_PERCENTAGE_FLOW "Fluxo" - #define STRING_VALUE_ZERO "Zero" - #define STRING_1_DEGREE "1℃" - #define STRING_5_DEGREE "5℃" - #define STRING_10_DEGREE "10℃" - #define STRING_X_INC "X+" - #define STRING_Y_INC "Y+" - #define STRING_Z_INC "Z+" - #define STRING_X_DEC "X-" - #define STRING_Y_DEC "Y-" - #define STRING_Z_DEC "Z-" - #define STRING_X "X" - #define STRING_Y "Y" - #define STRING_Z "Z" - #define STRING_001_MM "0.01mm" - #define STRING_01_MM "0.1mm" - #define STRING_1_MM "1mm" - #define STRING_5_MM "5mm" - #define STRING_10_MM "10mm" - #define STRING_100_MM "100mm" - #define STRING_200_MM "200mm" - #define STRING_1_PERCENT "1%" - #define STRING_5_PERCENT "5%" - #define STRING_10_PERCENT "10%" - #define STRING_PERCENT_VALUE "%d%%" - #define STRING_READY "Pronto" - #define STRING_BUSY "Em processamento, aguarde..." - #define STRING_UNCONNECTED "Nenhuma impressora conectada!" - #define STRING_DISCONNECT_INFO "Agora podes controlar a impressora com o computador!" - #define STRING_LOADING "Carregando..." - #define STRING_POWER_FAILED "Continuar a imprimir?" - #define STRING_CONTINUE "Continuar" - #define STRING_CANCEL "Cancelar" - #define STRING_ADJUST_TITLE "Calibracao do Touch Screen" - #define STRING_ADJUST_INFO "Por favor, clique no ponto vermelho" - #define STRING_ADJUST_OK "Ajustado com sucesso" - #define STRING_ADJUST_FAILED "Ajuste falhou, tente novamente" - #define STRING_WARNING "Aviso" - #define STRING_STOP_PRINT "Parar de imprimir?" - #define STRING_CONFIRM "Confirme" - #define STRING_TFTSD "TFT SD" - #define STRING_READ_TFTSD_ERROR "Erro a ler TFT SD!" - #define STRING_TFTSD_INSERTED "Cartao inserido!" - #define STRING_TFTSD_REMOVED "Cartao removido!" - #define STRING_U_DISK "U Disk" - #define STRING_READ_U_DISK_ERROR "Erro a ler U Disk!" - #define STRING_U_DISK_INSERTED "U Disk inserido!" - #define STRING_U_DISK_REMOVED "U Disk removido!" - #define STRING_ONBOARDSD "OnboardSD" - #define STRING_READ_ONBOARDSD_ERROR "Erro a ler Onboard SD card!" - #define STRING_FILAMENT_SENSOR "Filament sensor" - #define STRING_FILAMENT_RUNOUT "Filamento runout!" - #define STRING_PREHEAT "Aquecer" - #define STRING_PREHEAT_BOTH "Ambos" - #define STRING_IS_PAUSE "Nao e possível a extrusão\ndurante a impressao,\npausar a impressao?" - #define STRING_AUTO_SHUT_DOWN "Auto Power" - #define STRING_UNIFIEDMOVE "Movimento" - #define STRING_UNIFIEDHEAT "Heat/Fan" - #define STRING_COOLDOWN "Arrefecer" - #define STRING_EMERGENCYSTOP "EMERGENCIA STOP" - #define STRING_TOUCH_TO_EXIT "Toque em qualquer lugar para sair" - #define STRING_MAINMENU "Menu" - #define STRING_WAIT_TEMP_SHUT_DOWN "Wait for the hotend\ntemperature to be\nlower than %d ℃" // Wait for the temperature of hotend to be lower than 50℃ - #define STRING_FORCE_SHUT_DOWN "Force" - #define STRING_SHUTTING_DOWN "Shutting down..." - #define STRING_PARAMETER_SETTING "Parâmetro" - #define STRING_ON "ON" - #define STRING_OFF "OFF" - #define STRING_SMART "SMART" - #define STRING_TERMINAL_ACK "Show ACK in Terminal" - #define STRING_INVERT_XAXIS "Invert X Axis" - #define STRING_INVERT_YAXIS "Invert Y Axis" - #define STRING_INVERT_ZAXIS "Invert Z Axis" - #define STRING_MOVE_SPEED "Move speed(X Y Z)" - #define STRING_KNOB_LED "Rotary Knob LED" - #define STRING_KNOB_LED_IDLE "Rotary Knob LED idle" - #define STRING_M0_PAUSE "Paused by M0 command" - #define STRING_SEND_START_GCODE "Start Gcode before print" - #define STRING_SEND_END_GCODE "End Gcode after print" - #define STRING_SEND_CANCEL_GCODE "Cancel Gcode" - #define STRING_PERSISTENT_STATUS_INFO "Persistent Status Info" - #define STRING_FILE_LISTMODE "Files viewer List Mode" - #define STRING_CURRENT_SETTING "Driver Current (mA)" - #define STRING_STEPS_SETTING "Steps per mm" - #define STRING_MAXFEEDRATE "Max Feed Rate" - #define STRING_MAXACCELERATION "Max Acceleration" - #define STRING_ACCELERATION "Acceleration" - #define STRING_PRINT_ACCELERATION "Print Acceleration" - #define STRING_RETRACT_ACCELERATION "Retract Acceleration" - #define STRING_TRAVEL_ACCELERATION "Travel Acceleration" - #define STRING_JERK "Jerk" - #define STRING_JUNCTION_DEVIATION "Junction Deviation" - #define STRING_BUMP_SENSITIVITY "TMC bump sensitivity" - #define STRING_FWRETRACT "FW Retraction" - #define STRING_FWRECOVER "FW Retraction Recover" - #define STRING_LIN_ADVANCE "Linear Advance" - #define STRING_RESET_SETTINGS_INFO "Reset all settings to\ndefault values?" - #define STRING_RESET_SETTINGS_DONE "Reset all settings\nsuccessful.\nplease restart the device." - #define STRING_INFO "Info" - #define STRING_LCD_BRIGHTNESS "LCD Brightness" - #define STRING_LCD_BRIGHTNESS_DIM "LCD Brightness dim" - #define STRING_LCD_DIM_IDLE_TIMER "LCD dim idle timer" - #define STRING_5_SECONDS "5 Sec." - #define STRING_10_SECONDS "10 Sec." - #define STRING_30_SECONDS "30 Sec." - #define STRING_60_SECONDS "1 Min." - #define STRING_120_SECONDS "2 Min." - #define STRING_300_SECONDS "5 Min." - #define STRING_CUSTOM_SECONDS "Custom" - #define STRING_SEQUENTIAL_MODE "Sequential mode" - #define STRING_ST7920_FULLSCREEN "Marlin mode in fullscreen" - #define STRING_PLR_EN "Power loss recovery" - #define STRING_SETTING_SAVE "Save settings" - #define STRING_SETTING_RESET "Reset default settings" - #define STRING_SETTING_RESTORE "Restore settings" - #define STRING_EEPROM_SETTINGS "EEPROM" - #define STRING_EEPROM_SAVE_INFO "Save printer settings\nto EEPROM?" - #define STRING_EEPROM_RESTORE_INFO "Reload settings from\nEEPROM?" - #define STRING_EEPROM_RESET_INFO "Reset EEPROM to stock printer settings?" - #define STRING_RETRACT_FEEDRATE "Retract feedrate" - #define STRING_RETRACT_LENGTH "Retract length" - #define STRING_RETRACT_SWAP_LENGTH "Retract swap length" - #define STRING_RETRACT_Z_LIFT "Z lift on retraction" - #define STRING_RETRACT_AUTO "Auto Firmware Retract" - #define STRING_RECOVER_FEEDRATE "Recover feedrate" - #define STRING_SWAP_RECOVER_FEEDRATE "Swap recover feedrate" - #define STRING_RECOVER_LENGTH "Extra recover length" - #define STRING_SWAP_RECOVER_LENGTH "Extra recover swap length" - #define STRING_START_PRINT "Start Printing:\n %s?" - #define STRING_ACK_NOTIFICATION "ACK notification style" - #define STRING_LEVELING_EDGE_DISTANCE "Bed edge distance" - #define STRING_XY_UNLOCK "Desbloquear XY" - #define STRING_TUNING "Tuning" - #define STRING_PID "PID" - #define STRING_PID_TITLE "PID autotune" - #define STRING_PID_START_INFO "PID autotune may take\nsome time to complete.\nContinue?" - #define STRING_PID_START_INFO_2 "PID autotune in progress!" - #define STRING_PID_START_INFO_3 "Do not touch the screen until completed (green LED ON)!" - #define STRING_TUNE_EXTRUDER "Tune steps" - #define STRING_TUNE_EXT_EXTRUDE_100 "Ext. 100mm" - #define STRING_TUNE_EXT_TEMP "Extruder tuning | Heat" - #define STRING_TUNE_EXT_TEMPLOW "Desired temperature too low!\nMinimum temperature: %d C" - #define STRING_TUNE_EXT_DESIREDVAL "Temperature is not yet at the desired value" - #define STRING_TUNE_EXT_MARK120MM "Mark 120 mm on your fillament\nPress '%s' when ready\nMeasure remaining length\nafter extruding" - #define STRING_TUNE_EXT_HEATOFF "Turn the heater off?" - #define STRING_TUNE_EXT_ADJ_ESTEPS "Adjust E-Steps" - #define STRING_TUNE_EXT_ESTEPS_SAVED "New E-steps saved!\nDon't forget to\nsave it in EEPROM\nNew value: %0.2f" - #define STRING_TUNE_EXT_MEASURED "Length remaining:" - #define STRING_TUNE_EXT_OLD_ESTEP "Old e-steps: %0.2f" - #define STRING_TUNE_EXT_NEW_ESTEP "New e-steps: %0.2f" - #define STRING_CONNECTION_SETTINGS "Connection" - #define STRING_OFFSET_TOOL "Offset 2nd Nozzle" - #define STRING_HYBRID_THRESHOLD "TMC HybridThreshold" - #define STRING_NOTIFICATIONS "Notifications" - #define STRING_MESH_EDITOR "Mesh edit" - #define STRING_MESH_TUNER "Mesh tuner" - #define STRING_CASE_LIGHT "Case light" +#define STRING_LANGUAGE "Portugues" +#define STRING_HEAT "Aquecer" +#define STRING_MOVE "Mover" +#define STRING_HOME "Inicio" +#define STRING_DISABLE_STEPPERS "Disarm All" +#define STRING_PRINT "Imprimir" +#define STRING_EXTRUDE "Extrudir" +#define STRING_FAN "Ventoinha" +#define STRING_SETTINGS "Configurar" +#define STRING_SCREEN_SETTINGS "Ecra" +#define STRING_MACHINE_SETTINGS "Impressora" +#define STRING_FEATURE_SETTINGS "Extras" +#define STRING_SOUND "Sound" +#define STRING_TOUCH_SOUND "Touch sounds" +#define STRING_TOAST_SOUND "Toast Notifications" +#define STRING_ALERT_SOUND "Popups and Alerts" +#define STRING_PREHEATDONE_SOUND "Preheat done notification" +#define STRING_SHUT_DOWN "Desligar" +#define STRING_RGB_SETTINGS "LED cor" +#define STRING_RGB_OFF "Desligar" +#define STRING_TERMINAL "Terminal" +#define STRING_CUSTOM "Custom" +#define STRING_LEVELING "Nivelar" +#define STRING_POINT_1 "Ponto 1" +#define STRING_POINT_2 "Ponto 2" +#define STRING_POINT_3 "Ponto 3" +#define STRING_POINT_4 "Ponto 4" +#define STRING_POINT_5 "Ponto 5" +#define STRING_BED_LEVELING "Bed Level" +#define STRING_BL_COMPLETE "Bed Leveling Complete" +#define STRING_BL_SMART_FILL "Missing probe points\nhave been smart filled.\n \nNote: remember to save!" +#define STRING_BL_ENABLE "BL: on" +#define STRING_BL_DISABLE "BL: off" +#define STRING_ABL "ABL" +#define STRING_BBL "BBL" +#define STRING_UBL "UBL" +#define STRING_MBL "MBL" +#define STRING_MBL_SETTINGS "Mesh Bed Leveling" +#define STRING_ABL_SETTINGS "Auto Bed Leveling" +#define STRING_ABL_SETTINGS_BBL "Bilinear Bed Leveling" +#define STRING_ABL_SETTINGS_UBL "Unified Bed Leveling" +#define STRING_ABL_SETTINGS_UBL_SAVE "Save to slot" +#define STRING_ABL_SETTINGS_UBL_LOAD "Load from slot" +#define STRING_ABL_SLOT0 "Slot 0" +#define STRING_ABL_SLOT1 "Slot 1" +#define STRING_ABL_SLOT2 "Slot 2" +#define STRING_ABL_SLOT3 "Slot 3" +#define STRING_ABL_SLOT_EEPROM "Remember slot for next\nreboot? (Save EEPROM)" +#define STRING_ABL_Z "Z Fade" +#define STRING_BLTOUCH "BLTouch" +#define STRING_BLTOUCH_TEST "Testar" +#define STRING_BLTOUCH_DEPLOY "Abrir" +#define STRING_BLTOUCH_STOW "Encolher" +#define STRING_BLTOUCH_REPEAT "Repetir" +#define STRING_Z_OFFSET "Z Offset" +#define STRING_PROBE_OFFSET "Probe Offset" +#define STRING_HOME_OFFSET "Home Offset" +#define STRING_CONFIRMATION "Are you sure?" +#define STRING_DOWN "Down" +#define STRING_UP "Up" +#define STRING_SAVE "Gravar" +#define STRING_RESTORE "Restore" +#define STRING_RESET "Reset" +#define STRING_DEFAULT "Default" +#define STRING_CLEAR "Clear" +#define STRING_NEXT "Next" +#define STRING_DISTANCE "Distance" +#define STRING_INVALID_VALUE "Invalid value(s)" +#define STRING_TIMEOUT_REACHED "Timeout reached!" +#define STRING_PROCESS_RUNNING "Process already running!" +#define STRING_PROCESS_COMPLETED "Process completed!" +#define STRING_PROCESS_ABORTED "Process aborted!" +#define STRING_INC "Aumentar" +#define STRING_DEC "Diminuir" +#define STRING_NOZZLE "Nozzle" +#define STRING_BED "Hotbed" +#define STRING_CHAMBER "Chamber" +#define STRING_START "Start" +#define STRING_STOP "Parar" +#define STRING_BACK "Voltar" +#define STRING_PAGE_UP "Subir pagina" +#define STRING_PAGE_DOWN "Pagina abaixo" +#define STRING_PAUSE "Pausar" +#define STRING_RESUME "Resumir" +#define STRING_LOAD "Carregar" +#define STRING_UNLOAD "Descarregar" +#define STRING_SLOW_SPEED "Lento" +#define STRING_NORMAL_SPEED "Normal" +#define STRING_FAST_SPEED "Rapido" +#define STRING_FAN_FULL_SPEED "Full" +#define STRING_FAN_HALF_SPEED "Half" +#define STRING_ROTATE_UI "Rodar" +#define STRING_TOUCHSCREEN_ADJUST "Ajustar" +#define STRING_MORE "Mais" +#define STRING_SCREEN_INFO "Info" +#define STRING_STATUS "Status" +#define STRING_SIMULATOR_BG_COLOR "Marlin simulator background color" +#define STRING_SIMULATOR_FONT_COLOR "Marlin simulator font color" +#define STRING_WHITE "Branco" +#define STRING_BLACK "Preto" +#define STRING_BLUE "Azul" +#define STRING_RED "Vermelho" +#define STRING_GREEN "Verde" +#define STRING_CYAN "Turquesa" +#define STRING_YELLOW "Amarelo" +#define STRING_BROWN "Castanho" +#define STRING_GRAY "Cinzento" +#define STRING_ORANGE "Orange" +#define STRING_INDIGO "Indigo" +#define STRING_VIOLET "Violet" +#define STRING_MAGENTA "Magenta" +#define STRING_PURPLE "Purple" +#define STRING_LIME "Lime" +#define STRING_DARKBLUE "DarkBlue" +#define STRING_DARKGREEN "DarkGreen" +#define STRING_DARKGRAY "DarkGray" +#define STRING_DISCONNECT "Desconectar" +#define STRING_BAUDRATE "BaudRate" +#define STRING_PERCENTAGE "Percentagem" +#define STRING_BABYSTEP "BabyStep" +#define STRING_PERCENTAGE_SPEED "Rapidez" +#define STRING_PERCENTAGE_FLOW "Fluxo" +#define STRING_VALUE_ZERO "Zero" +#define STRING_1_DEGREE "1℃" +#define STRING_5_DEGREE "5℃" +#define STRING_10_DEGREE "10℃" +#define STRING_X_INC "X+" +#define STRING_Y_INC "Y+" +#define STRING_Z_INC "Z+" +#define STRING_X_DEC "X-" +#define STRING_Y_DEC "Y-" +#define STRING_Z_DEC "Z-" +#define STRING_X "X" +#define STRING_Y "Y" +#define STRING_Z "Z" +#define STRING_001_MM "0.01mm" +#define STRING_01_MM "0.1mm" +#define STRING_1_MM "1mm" +#define STRING_5_MM "5mm" +#define STRING_10_MM "10mm" +#define STRING_100_MM "100mm" +#define STRING_200_MM "200mm" +#define STRING_1_PERCENT "1%" +#define STRING_5_PERCENT "5%" +#define STRING_10_PERCENT "10%" +#define STRING_PERCENT_VALUE "%d%%" +#define STRING_READY "Pronto" +#define STRING_BUSY "Em processamento, aguarde..." +#define STRING_UNCONNECTED "Nenhuma impressora conectada!" +#define STRING_DISCONNECT_INFO "Agora podes controlar a impressora com o computador!" +#define STRING_LOADING "Carregando..." +#define STRING_POWER_FAILED "Continuar a imprimir?" +#define STRING_CONTINUE "Continuar" +#define STRING_CANCEL "Cancelar" +#define STRING_ADJUST_TITLE "Calibracao do Touch Screen" +#define STRING_ADJUST_INFO "Por favor, clique no ponto vermelho" +#define STRING_ADJUST_OK "Ajustado com sucesso" +#define STRING_ADJUST_FAILED "Ajuste falhou, tente novamente" +#define STRING_WARNING "Aviso" +#define STRING_STOP_PRINT "Parar de imprimir?" +#define STRING_CONFIRM "Confirme" +#define STRING_TFTSD "TFT SD" +#define STRING_READ_TFTSD_ERROR "Erro a ler TFT SD!" +#define STRING_TFTSD_INSERTED "Cartao inserido!" +#define STRING_TFTSD_REMOVED "Cartao removido!" +#define STRING_U_DISK "U Disk" +#define STRING_READ_U_DISK_ERROR "Erro a ler U Disk!" +#define STRING_U_DISK_INSERTED "U Disk inserido!" +#define STRING_U_DISK_REMOVED "U Disk removido!" +#define STRING_ONBOARDSD "OnboardSD" +#define STRING_READ_ONBOARDSD_ERROR "Erro a ler Onboard SD card!" +#define STRING_FILAMENT_SENSOR "Filament sensor" +#define STRING_FILAMENT_RUNOUT "Filamento runout!" +#define STRING_PREHEAT "Aquecer" +#define STRING_PREHEAT_BOTH "Ambos" +#define STRING_IS_PAUSE "Nao e possível a extrusão\ndurante a impressao,\npausar a impressao?" +#define STRING_AUTO_SHUT_DOWN "Auto Power" +#define STRING_UNIFIEDMOVE "Movimento" +#define STRING_UNIFIEDHEAT "Heat/Fan" +#define STRING_COOLDOWN "Arrefecer" +#define STRING_EMERGENCYSTOP "EMERGENCIA STOP" +#define STRING_TOUCH_TO_EXIT "Toque em qualquer lugar para sair" +#define STRING_MAINMENU "Menu" +#define STRING_WAIT_TEMP_SHUT_DOWN "Wait for the hotend\ntemperature to be\nlower than %d ℃" // Wait for the temperature of hotend to be lower than 50℃ +#define STRING_FORCE_SHUT_DOWN "Force" +#define STRING_SHUTTING_DOWN "Shutting down..." +#define STRING_PARAMETER_SETTING "Parâmetro" +#define STRING_ON "ON" +#define STRING_OFF "OFF" +#define STRING_SMART "SMART" +#define STRING_TERMINAL_ACK "Show ACK in Terminal" +#define STRING_INVERT_XAXIS "Invert X Axis" +#define STRING_INVERT_YAXIS "Invert Y Axis" +#define STRING_INVERT_ZAXIS "Invert Z Axis" +#define STRING_MOVE_SPEED "Move speed(X Y Z)" +#define STRING_KNOB_LED "Rotary Knob LED" +#define STRING_KNOB_LED_IDLE "Rotary Knob LED idle" +#define STRING_M0_PAUSE "Paused by M0 command" +#define STRING_SEND_START_GCODE "Start Gcode before print" +#define STRING_SEND_END_GCODE "End Gcode after print" +#define STRING_SEND_CANCEL_GCODE "Cancel Gcode" +#define STRING_PERSISTENT_STATUS_INFO "Persistent Status Info" +#define STRING_FILE_LISTMODE "Files viewer List Mode" +#define STRING_CURRENT_SETTING "Driver Current (mA)" +#define STRING_STEPS_SETTING "Steps per mm" +#define STRING_MAXFEEDRATE "Max Feed Rate" +#define STRING_MAXACCELERATION "Max Acceleration" +#define STRING_ACCELERATION "Acceleration" +#define STRING_PRINT_ACCELERATION "Print Acceleration" +#define STRING_RETRACT_ACCELERATION "Retract Acceleration" +#define STRING_TRAVEL_ACCELERATION "Travel Acceleration" +#define STRING_JERK "Jerk" +#define STRING_JUNCTION_DEVIATION "Junction Deviation" +#define STRING_BUMP_SENSITIVITY "TMC bump sensitivity" +#define STRING_FWRETRACT "FW Retraction" +#define STRING_FWRECOVER "FW Retraction Recover" +#define STRING_LIN_ADVANCE "Linear Advance" +#define STRING_RESET_SETTINGS_INFO "Reset all settings to\ndefault values?" +#define STRING_RESET_SETTINGS_DONE "Reset all settings\nsuccessful.\nplease restart the device." +#define STRING_INFO "Info" +#define STRING_LCD_BRIGHTNESS "LCD Brightness" +#define STRING_LCD_BRIGHTNESS_DIM "LCD Brightness dim" +#define STRING_LCD_DIM_IDLE_TIMER "LCD dim idle timer" +#define STRING_5_SECONDS "5 Sec." +#define STRING_10_SECONDS "10 Sec." +#define STRING_30_SECONDS "30 Sec." +#define STRING_60_SECONDS "1 Min." +#define STRING_120_SECONDS "2 Min." +#define STRING_300_SECONDS "5 Min." +#define STRING_CUSTOM_SECONDS "Custom" +#define STRING_SEQUENTIAL_MODE "Sequential mode" +#define STRING_ST7920_FULLSCREEN "Marlin mode in fullscreen" +#define STRING_PLR_EN "Power loss recovery" +#define STRING_SETTING_SAVE "Save settings" +#define STRING_SETTING_RESET "Reset default settings" +#define STRING_SETTING_RESTORE "Restore settings" +#define STRING_EEPROM_SETTINGS "EEPROM" +#define STRING_EEPROM_SAVE_INFO "Save printer settings\nto EEPROM?" +#define STRING_EEPROM_RESTORE_INFO "Reload settings from\nEEPROM?" +#define STRING_EEPROM_RESET_INFO "Reset EEPROM to stock printer settings?" +#define STRING_RETRACT_FEEDRATE "Retract feedrate" +#define STRING_RETRACT_LENGTH "Retract length" +#define STRING_RETRACT_SWAP_LENGTH "Retract swap length" +#define STRING_RETRACT_Z_LIFT "Z lift on retraction" +#define STRING_RETRACT_AUTO "Auto Firmware Retract" +#define STRING_RECOVER_FEEDRATE "Recover feedrate" +#define STRING_SWAP_RECOVER_FEEDRATE "Swap recover feedrate" +#define STRING_RECOVER_LENGTH "Extra recover length" +#define STRING_SWAP_RECOVER_LENGTH "Extra recover swap length" +#define STRING_START_PRINT "Start Printing:\n %s?" +#define STRING_ACK_NOTIFICATION "ACK notification style" +#define STRING_LEVELING_EDGE_DISTANCE "Bed edge distance" +#define STRING_XY_UNLOCK "Desbloquear XY" +#define STRING_TUNING "Tuning" +#define STRING_PID "PID" +#define STRING_PID_TITLE "PID autotune" +#define STRING_PID_START_INFO "PID autotune may take\nsome time to complete.\nContinue?" +#define STRING_PID_START_INFO_2 "PID autotune in progress!" +#define STRING_PID_START_INFO_3 "Do not touch the screen until completed (green LED ON)!" +#define STRING_TUNE_EXTRUDER "Tune steps" +#define STRING_TUNE_EXT_EXTRUDE_100 "Ext. 100mm" +#define STRING_TUNE_EXT_TEMP "Extruder tuning | Heat" +#define STRING_TUNE_EXT_TEMPLOW "Desired temperature too low!\nMinimum temperature: %d C" +#define STRING_TUNE_EXT_DESIREDVAL "Temperature is not yet at the desired value" +#define STRING_TUNE_EXT_MARK120MM "Mark 120 mm on your fillament\nPress '%s' when ready\nMeasure remaining length\nafter extruding" +#define STRING_TUNE_EXT_HEATOFF "Turn the heater off?" +#define STRING_TUNE_EXT_ADJ_ESTEPS "Adjust E-Steps" +#define STRING_TUNE_EXT_ESTEPS_SAVED "New E-steps saved!\nDon't forget to\nsave it in EEPROM\nNew value: %0.2f" +#define STRING_TUNE_EXT_MEASURED "Length remaining:" +#define STRING_TUNE_EXT_OLD_ESTEP "Old e-steps: %0.2f" +#define STRING_TUNE_EXT_NEW_ESTEP "New e-steps: %0.2f" +#define STRING_CONNECTION_SETTINGS "Connection" +#define STRING_OFFSET_TOOL "Offset 2nd Nozzle" +#define STRING_HYBRID_THRESHOLD "TMC HybridThreshold" +#define STRING_NOTIFICATIONS "Notifications" +#define STRING_MESH_EDITOR "Mesh edit" +#define STRING_MESH_TUNER "Mesh tuner" +#define STRING_CASE_LIGHT "Case light" diff --git a/TFT/src/User/API/Language/language_ru.h b/TFT/src/User/API/Language/language_ru.h index 71178db703..f0ba8d1fd5 100644 --- a/TFT/src/User/API/Language/language_ru.h +++ b/TFT/src/User/API/Language/language_ru.h @@ -1,279 +1,280 @@ #pragma once - #define STRING_LANGUAGE "Русский" - #define STRING_HEAT "Нагрев" - #define STRING_MOVE "Движение" - #define STRING_HOME "Домой" - #define STRING_DISABLE_STEPPERS "Двигатели" - #define STRING_PRINT "Печать" - #define STRING_EXTRUDE "Экструзия" - #define STRING_FAN "Вентилятор" - #define STRING_SETTINGS "Настройки" - #define STRING_SCREEN_SETTINGS "Экран" - #define STRING_MACHINE_SETTINGS "Принтер" - #define STRING_FEATURE_SETTINGS "Опции" - #define STRING_SOUND "Звуки" - #define STRING_TOUCH_SOUND "Звуки нажатий" - #define STRING_TOAST_SOUND "Звуки инфостроки" - #define STRING_ALERT_SOUND "Предупреждения" - #define STRING_SHUT_DOWN "Выключить" - #define STRING_RGB_SETTINGS "Цвет LED" - #define STRING_RGB_OFF "LED выкл" - #define STRING_TERMINAL "Терминал" - #define STRING_CUSTOM "Своё меню" - #define STRING_LEVELING "Стол вруч." - #define STRING_POINT_1 "Точка 1" - #define STRING_POINT_2 "Точка 2" - #define STRING_POINT_3 "Точка 3" - #define STRING_POINT_4 "Точка 4" - #define STRING_POINT_5 "Точка 5" - #define STRING_BED_LEVELING "Стол равнен." - #define STRING_BL_COMPLETE "Выравнивание стола окончено" - #define STRING_BL_SMART_FILL "Отсутствующие точки\nзамера были атоматически\nзаполнены.\nЗапомните для сохраниения!" - #define STRING_BL_ENABLE "BL: вкл" - #define STRING_BL_DISABLE "BL: выкл" - #define STRING_ABL "ABL" - #define STRING_BBL "BBL" - #define STRING_UBL "UBL" - #define STRING_MBL "MBL" - #define STRING_MBL_SETTINGS "Равнение по сетке" - #define STRING_ABL_SETTINGS "Автовыравнивание" - #define STRING_ABL_SETTINGS_BBL "Билинейная калибровка" - #define STRING_ABL_SETTINGS_UBL "Универсальная калибровка" - #define STRING_ABL_SETTINGS_UBL_SAVE "Сохранить в ячейку" - #define STRING_ABL_SETTINGS_UBL_LOAD "Загрузить из ячейки" - #define STRING_ABL_SLOT0 "Ячейка 0" - #define STRING_ABL_SLOT1 "Ячейка 1" - #define STRING_ABL_SLOT2 "Ячейка 2" - #define STRING_ABL_SLOT3 "Ячейка 3" - #define STRING_ABL_SLOT_EEPROM "Восстановить из ячейки\nпри перезагрузке?\n(Сохранить в EEPROM)" - #define STRING_ABL_Z "Z затухание" - #define STRING_BLTOUCH "BLTouch" - #define STRING_BLTOUCH_TEST "BLT тест" - #define STRING_BLTOUCH_DEPLOY "BLT вниз" - #define STRING_BLTOUCH_STOW "BLT вверх" - #define STRING_BLTOUCH_REPEAT "Точность Z" - #define STRING_Z_OFFSET "Отступ Z" - #define STRING_PROBE_OFFSET "Смещение датчика" - #define STRING_HOME_OFFSET "Home Offset" - #define STRING_CONFIRMATION "Вы уверены?" - #define STRING_DOWN "Вниз" - #define STRING_UP "Вверх" - #define STRING_SAVE "Сохранить" - #define STRING_RESTORE "Вернуть" - #define STRING_RESET "Сброс" - #define STRING_DEFAULT "По умолчанию" - #define STRING_CLEAR "Очистить" - #define STRING_NEXT "Следующий" - #define STRING_DISTANCE "Отступы" - #define STRING_INVALID_VALUE "Остутствуют правильные значения!" - #define STRING_TIMEOUT_REACHED "Время истекло!" - #define STRING_PROCESS_RUNNING "Идёт процесс!" - #define STRING_PROCESS_COMPLETED "Процесс завершён!" - #define STRING_PROCESS_ABORTED "Процесс прерван!" - #define STRING_INC "Увеличить" - #define STRING_DEC "Уменьшить" - #define STRING_NOZZLE "Сопло" - #define STRING_BED "Стол" - #define STRING_CHAMBER "Камера" - #define STRING_START "Начать" - #define STRING_STOP "Стоп" - #define STRING_BACK "Назад" - #define STRING_PAGE_UP "\u0899 Стр." //Left Arrow - #define STRING_PAGE_DOWN "Стр. \u089A" //Right Arrow - #define STRING_PAUSE "Пауза" - #define STRING_RESUME "Продолжить" - #define STRING_LOAD "Загрузка" - #define STRING_UNLOAD "Выгрузка" - #define STRING_SLOW_SPEED "Медленно" - #define STRING_NORMAL_SPEED "Обычно" - #define STRING_FAST_SPEED "Быстро" - #define STRING_FAN_FULL_SPEED "Максимум" - #define STRING_FAN_HALF_SPEED "50%" - #define STRING_ROTATE_UI "Переворот" - #define STRING_TOUCHSCREEN_ADJUST "Калибровка" - #define STRING_MORE "Больше\u089C" //Curved Right Arrow - #define STRING_SCREEN_INFO "Инфо" - #define STRING_STATUS "Статус" - #define STRING_SIMULATOR_BG_COLOR "Задний фон Marlin режима" - #define STRING_SIMULATOR_FONT_COLOR "Передний фон Marlin режима" - #define STRING_WHITE "Белый" - #define STRING_BLACK "Чёрный" - #define STRING_BLUE "Синий" - #define STRING_RED "Красный" - #define STRING_GREEN "Зелёный" - #define STRING_CYAN "Голубой" - #define STRING_YELLOW "Жёлтый" - #define STRING_BROWN "Коричневый" - #define STRING_GRAY "Серый" - #define STRING_ORANGE "Оранжевый" - #define STRING_INDIGO "Индиго" - #define STRING_VIOLET "Фиолетовый" - #define STRING_MAGENTA "Маджента" - #define STRING_PURPLE "Пурпурный" - #define STRING_LIME "Лаймовый" - #define STRING_DARKBLUE "Тёмно-синий" - #define STRING_DARKGREEN "Тёмно-зелёный" - #define STRING_DARKGRAY "Тёмно-серый" - #define STRING_DISCONNECT "Отключить" - #define STRING_BAUDRATE "Скорость" - #define STRING_PERCENTAGE "Подстройки" - #define STRING_BABYSTEP "Микрошаг Z" - #define STRING_PERCENTAGE_SPEED "Скорость" - #define STRING_PERCENTAGE_FLOW "Поток" - #define STRING_VALUE_ZERO "Обнулить" - #define STRING_1_DEGREE "1℃" - #define STRING_5_DEGREE "5℃" - #define STRING_10_DEGREE "10℃" - #define STRING_X_INC "X+" - #define STRING_Y_INC "Y+" - #define STRING_Z_INC "Z+" - #define STRING_X_DEC "X-" - #define STRING_Y_DEC "Y-" - #define STRING_Z_DEC "Z-" - #define STRING_X "X" - #define STRING_Y "Y" - #define STRING_Z "Z" - #define STRING_001_MM "0.01мм" - #define STRING_01_MM "0.1мм" - #define STRING_1_MM "1мм" - #define STRING_5_MM "5мм" - #define STRING_10_MM "10мм" - #define STRING_100_MM "100mm" - #define STRING_200_MM "200mm" - #define STRING_1_PERCENT "1%" - #define STRING_5_PERCENT "5%" - #define STRING_10_PERCENT "10%" - #define STRING_PERCENT_VALUE "%d%%" - #define STRING_READY "Готов" - #define STRING_BUSY "Занято процессом, подождите..." - #define STRING_UNCONNECTED "Нет подключения!" - #define STRING_DISCONNECT_INFO "Управление принтером через компьютер" - #define STRING_LOADING "Загрузка..." - #define STRING_POWER_FAILED "Продолжить печать?" - #define STRING_CONTINUE "Продолжение" - #define STRING_CANCEL "\u088F Отмена" //Cancel Sign - #define STRING_ADJUST_TITLE "Калибровка экрана" - #define STRING_ADJUST_INFO "Нажмите на красную точку" - #define STRING_ADJUST_OK "Успешная калибровка" - #define STRING_ADJUST_FAILED "Неудачная калибровка, попробуйте снова" - #define STRING_WARNING "Внимание" - #define STRING_STOP_PRINT "Остановить печать?" - #define STRING_CONFIRM "\u088E OK" //Confirm Sign - #define STRING_TFTSD "SD экрана" - #define STRING_READ_TFTSD_ERROR "Ошибка чтения SD карты!" - #define STRING_TFTSD_INSERTED "SD карта вставлена!" - #define STRING_TFTSD_REMOVED "SD карта извлечена!" - #define STRING_U_DISK "Флеш карта" - #define STRING_READ_U_DISK_ERROR "Ошибка чтения флеш карты!" - #define STRING_U_DISK_INSERTED "Флеш карта вставлена!" - #define STRING_U_DISK_REMOVED "Флеш карта извлечена!" - #define STRING_ONBOARDSD "SD платы" - #define STRING_READ_ONBOARDSD_ERROR "Ошибка чтения SD карты!" - #define STRING_FILAMENT_SENSOR "Сенсор прутка" - #define STRING_FILAMENT_RUNOUT "Пруток закончился" - #define STRING_PREHEAT "Преднагрев" - #define STRING_PREHEAT_BOTH "Оба" - #define STRING_IS_PAUSE "Невозможна экструзия\nпри печати, поставить\nна паузу?" - #define STRING_AUTO_SHUT_DOWN "Автовыключение" - #define STRING_UNIFIEDMOVE "Движение" - #define STRING_UNIFIEDHEAT "Нагрев" - #define STRING_COOLDOWN "Охладить" - #define STRING_EMERGENCYSTOP "Экст.стоп" - #define STRING_TOUCH_TO_EXIT "Нажмите для возврата" - #define STRING_MAINMENU "Меню" - #define STRING_WAIT_TEMP_SHUT_DOWN "Дождитесь температуры\nсопла не ниже чем %d℃" // Wait for the temperature of hotend to be lower than 50℃ - #define STRING_FORCE_SHUT_DOWN "Принудительно выкл" - #define STRING_SHUTTING_DOWN "Выключаю..." - #define STRING_PARAMETER_SETTING "Параметры" - #define STRING_ON "Вкл" - #define STRING_OFF "Выкл" - #define STRING_SMART "Умный" - #define STRING_TERMINAL_ACK "ACK терминала (C°)" - #define STRING_INVERT_XAXIS "Инверсия оси X" - #define STRING_INVERT_YAXIS "Инверсия оси Y" - #define STRING_INVERT_ZAXIS "Инверсия оси Z" - #define STRING_MOVE_SPEED "Скорость (X Y Z)" - #define STRING_KNOB_LED "Подсветка энкодера" - #define STRING_KNOB_LED_IDLE "Простой подсветки энкодера" - #define STRING_M0_PAUSE "Пауза по команде M0" - #define STRING_SEND_START_GCODE "G-код перед печатью" - #define STRING_SEND_END_GCODE "G-код после печати" - #define STRING_SEND_CANCEL_GCODE "G-код отмены печати" - #define STRING_PERSISTENT_STATUS_INFO "Нагрев в инфостроке" - #define STRING_FILE_LISTMODE "Файлы в режиме строк" - #define STRING_CURRENT_SETTING "Настройка TMC драйверов" - #define STRING_STEPS_SETTING "Настройка шагов на мм" - #define STRING_MAXFEEDRATE "MAX скорость подачи" - #define STRING_MAXACCELERATION "MAX ускорение" - #define STRING_ACCELERATION "Ускорение" - #define STRING_PRINT_ACCELERATION "Печати" - #define STRING_RETRACT_ACCELERATION "Ретракта" - #define STRING_TRAVEL_ACCELERATION "Перемещения" - #define STRING_JERK "Рывок" - #define STRING_JUNCTION_DEVIATION "Отклонение узла" - #define STRING_BUMP_SENSITIVITY "TMC чувствительность удара" - #define STRING_FWRETRACT "M207 ретракт" - #define STRING_FWRECOVER "M208 восстановление ретракта" - #define STRING_LIN_ADVANCE "К-фактор" - #define STRING_RESET_SETTINGS_INFO "Все настройки будут\nсброшены по умолчанию.\nПродолжить?" - #define STRING_RESET_SETTINGS_DONE "Успешный сброс настроек\nэкрана. Для полного\nвступления в силу,\nперегрузите устройство." - #define STRING_INFO "\u0884 Информация" //Info Sign - #define STRING_LCD_BRIGHTNESS "Яркость LCD" - #define STRING_LCD_BRIGHTNESS_DIM "Регулировка яркости LCD" - #define STRING_LCD_DIM_IDLE_TIMER "Время до гашения LCD" - #define STRING_5_SECONDS "5 сек." - #define STRING_10_SECONDS "10 сек." - #define STRING_30_SECONDS "30 сек." - #define STRING_60_SECONDS "1 мин." - #define STRING_120_SECONDS "2 мин." - #define STRING_300_SECONDS "5 мин." - #define STRING_CUSTOM_SECONDS "Своё" - #define STRING_SEQUENTIAL_MODE "Sequential mode" - #define STRING_ST7920_FULLSCREEN "Marlin на весь экран" - #define STRING_PLR_EN "Работа после потери питания" - #define STRING_SETTING_SAVE "Сохранить настройки" - #define STRING_SETTING_RESET "Сбросить настройки" - #define STRING_SETTING_RESTORE "Восстановить настройки" - #define STRING_EEPROM_SETTINGS "EEPROM" - #define STRING_EEPROM_SAVE_INFO "Сохранить настройки\nпринтера в EEPROM?" - #define STRING_EEPROM_RESTORE_INFO "Загрузить настройки\nиз EEPROM?" - #define STRING_EEPROM_RESET_INFO "Сбрость EEPROM настройки\nпринтера на начальные?" - #define STRING_RETRACT_FEEDRATE "Скорость" - #define STRING_RETRACT_LENGTH "Длина" - #define STRING_RETRACT_SWAP_LENGTH "Длина при смене сопла" - #define STRING_RETRACT_Z_LIFT "Подъём по Z" - #define STRING_RETRACT_AUTO "Авто FW ретракт" - #define STRING_RECOVER_FEEDRATE "Скорость" - #define STRING_SWAP_RECOVER_FEEDRATE "Скорость при смене сопла" - #define STRING_RECOVER_LENGTH "Длина" - #define STRING_SWAP_RECOVER_LENGTH "Длина при смене сопла" - #define STRING_START_PRINT "Начать печать:\n %s?" - #define STRING_ACK_NOTIFICATION "ACK стиль уведомления" - #define STRING_LEVELING_EDGE_DISTANCE "Отступы от краёв стола" - #define STRING_XY_UNLOCK "Моторы выкл" - #define STRING_TUNING "Наладка" - #define STRING_PID "PID" - #define STRING_PID_TITLE "PID автонастройка" - #define STRING_PID_START_INFO "Сейчас будет запущена PID\nавтонастройка, это займёт\nнекоторое время. Продолжить?" - #define STRING_PID_START_INFO_2 "Автонастройка PID в работе!" - #define STRING_PID_START_INFO_3 "Не трогайте экран до\nокончания настройки\n(загориться зелёным LED)!" - #define STRING_TUNE_EXTRUDER "Настройка шагов" - #define STRING_TUNE_EXT_EXTRUDE_100 "100mm экст." - #define STRING_TUNE_EXT_TEMP "Настройка экструдера/Нагрев" - #define STRING_TUNE_EXT_TEMPLOW "Требуемая температура\nслишком низкая!\nМинимальная температура: %d℃" - #define STRING_TUNE_EXT_DESIREDVAL "Температура еще не достигла требуемого значения" - #define STRING_TUNE_EXT_MARK120MM "Отметьте 120 мм на филаменте\nНажмите '%s' по говности\nИзмерьте полученную длину/nпосле экструдирования" - #define STRING_TUNE_EXT_HEATOFF "Отключить нагрев?" - #define STRING_TUNE_EXT_ADJ_ESTEPS "Подстройка E-шагов" - #define STRING_TUNE_EXT_ESTEPS_SAVED "E-шаги установлены!\nНе забудьте сохранить\nих в EEPROM\nНовое значение: %0.2f" - #define STRING_TUNE_EXT_MEASURED "Оставшаяся длина:" - #define STRING_TUNE_EXT_OLD_ESTEP "Старые E-шаги: %0.2f" - #define STRING_TUNE_EXT_NEW_ESTEP "Новые E-шаги: %0.2f" - #define STRING_CONNECTION_SETTINGS "Соединение" - #define STRING_OFFSET_TOOL "Смещение 2-го сопла" - #define STRING_HYBRID_THRESHOLD "TMC гибридный порог" - #define STRING_NOTIFICATIONS "Уведомления" - #define STRING_MESH_EDITOR "Сетка ред." - #define STRING_MESH_TUNER "Сетка настр." - #define STRING_CASE_LIGHT "Case light" +#define STRING_LANGUAGE "Русский" +#define STRING_HEAT "Нагрев" +#define STRING_MOVE "Движение" +#define STRING_HOME "Домой" +#define STRING_DISABLE_STEPPERS "Двигатели" +#define STRING_PRINT "Печать" +#define STRING_EXTRUDE "Экструзия" +#define STRING_FAN "Вентилятор" +#define STRING_SETTINGS "Настройки" +#define STRING_SCREEN_SETTINGS "Экран" +#define STRING_MACHINE_SETTINGS "Принтер" +#define STRING_FEATURE_SETTINGS "Опции" +#define STRING_SOUND "Звуки" +#define STRING_TOUCH_SOUND "Звуки нажатий" +#define STRING_TOAST_SOUND "Звуки инфостроки" +#define STRING_ALERT_SOUND "Предупреждения" +#define STRING_PREHEATDONE_SOUND "Preheat done notification" +#define STRING_SHUT_DOWN "Выключить" +#define STRING_RGB_SETTINGS "Цвет LED" +#define STRING_RGB_OFF "LED выкл" +#define STRING_TERMINAL "Терминал" +#define STRING_CUSTOM "Своё меню" +#define STRING_LEVELING "Стол вруч." +#define STRING_POINT_1 "Точка 1" +#define STRING_POINT_2 "Точка 2" +#define STRING_POINT_3 "Точка 3" +#define STRING_POINT_4 "Точка 4" +#define STRING_POINT_5 "Точка 5" +#define STRING_BED_LEVELING "Стол равнен." +#define STRING_BL_COMPLETE "Выравнивание стола окончено" +#define STRING_BL_SMART_FILL "Отсутствующие точки\nзамера были атоматически\nзаполнены.\nЗапомните для сохраниения!" +#define STRING_BL_ENABLE "BL: вкл" +#define STRING_BL_DISABLE "BL: выкл" +#define STRING_ABL "ABL" +#define STRING_BBL "BBL" +#define STRING_UBL "UBL" +#define STRING_MBL "MBL" +#define STRING_MBL_SETTINGS "Равнение по сетке" +#define STRING_ABL_SETTINGS "Автовыравнивание" +#define STRING_ABL_SETTINGS_BBL "Билинейная калибровка" +#define STRING_ABL_SETTINGS_UBL "Универсальная калибровка" +#define STRING_ABL_SETTINGS_UBL_SAVE "Сохранить в ячейку" +#define STRING_ABL_SETTINGS_UBL_LOAD "Загрузить из ячейки" +#define STRING_ABL_SLOT0 "Ячейка 0" +#define STRING_ABL_SLOT1 "Ячейка 1" +#define STRING_ABL_SLOT2 "Ячейка 2" +#define STRING_ABL_SLOT3 "Ячейка 3" +#define STRING_ABL_SLOT_EEPROM "Восстановить из ячейки\nпри перезагрузке?\n(Сохранить в EEPROM)" +#define STRING_ABL_Z "Z затухание" +#define STRING_BLTOUCH "BLTouch" +#define STRING_BLTOUCH_TEST "BLT тест" +#define STRING_BLTOUCH_DEPLOY "BLT вниз" +#define STRING_BLTOUCH_STOW "BLT вверх" +#define STRING_BLTOUCH_REPEAT "Точность Z" +#define STRING_Z_OFFSET "Отступ Z" +#define STRING_PROBE_OFFSET "Смещение датчика" +#define STRING_HOME_OFFSET "Home Offset" +#define STRING_CONFIRMATION "Вы уверены?" +#define STRING_DOWN "Вниз" +#define STRING_UP "Вверх" +#define STRING_SAVE "Сохранить" +#define STRING_RESTORE "Вернуть" +#define STRING_RESET "Сброс" +#define STRING_DEFAULT "По умолчанию" +#define STRING_CLEAR "Очистить" +#define STRING_NEXT "Следующий" +#define STRING_DISTANCE "Отступы" +#define STRING_INVALID_VALUE "Остутствуют правильные значения!" +#define STRING_TIMEOUT_REACHED "Время истекло!" +#define STRING_PROCESS_RUNNING "Идёт процесс!" +#define STRING_PROCESS_COMPLETED "Процесс завершён!" +#define STRING_PROCESS_ABORTED "Процесс прерван!" +#define STRING_INC "Увеличить" +#define STRING_DEC "Уменьшить" +#define STRING_NOZZLE "Сопло" +#define STRING_BED "Стол" +#define STRING_CHAMBER "Камера" +#define STRING_START "Начать" +#define STRING_STOP "Стоп" +#define STRING_BACK "Назад" +#define STRING_PAGE_UP "\u0899 Стр." //Left Arrow +#define STRING_PAGE_DOWN "Стр. \u089A" //Right Arrow +#define STRING_PAUSE "Пауза" +#define STRING_RESUME "Продолжить" +#define STRING_LOAD "Загрузка" +#define STRING_UNLOAD "Выгрузка" +#define STRING_SLOW_SPEED "Медленно" +#define STRING_NORMAL_SPEED "Обычно" +#define STRING_FAST_SPEED "Быстро" +#define STRING_FAN_FULL_SPEED "Максимум" +#define STRING_FAN_HALF_SPEED "50%" +#define STRING_ROTATE_UI "Переворот" +#define STRING_TOUCHSCREEN_ADJUST "Калибровка" +#define STRING_MORE "Больше\u089C" //Curved Right Arrow +#define STRING_SCREEN_INFO "Инфо" +#define STRING_STATUS "Статус" +#define STRING_SIMULATOR_BG_COLOR "Задний фон Marlin режима" +#define STRING_SIMULATOR_FONT_COLOR "Передний фон Marlin режима" +#define STRING_WHITE "Белый" +#define STRING_BLACK "Чёрный" +#define STRING_BLUE "Синий" +#define STRING_RED "Красный" +#define STRING_GREEN "Зелёный" +#define STRING_CYAN "Голубой" +#define STRING_YELLOW "Жёлтый" +#define STRING_BROWN "Коричневый" +#define STRING_GRAY "Серый" +#define STRING_ORANGE "Оранжевый" +#define STRING_INDIGO "Индиго" +#define STRING_VIOLET "Фиолетовый" +#define STRING_MAGENTA "Маджента" +#define STRING_PURPLE "Пурпурный" +#define STRING_LIME "Лаймовый" +#define STRING_DARKBLUE "Тёмно-синий" +#define STRING_DARKGREEN "Тёмно-зелёный" +#define STRING_DARKGRAY "Тёмно-серый" +#define STRING_DISCONNECT "Отключить" +#define STRING_BAUDRATE "Скорость" +#define STRING_PERCENTAGE "Подстройки" +#define STRING_BABYSTEP "Микрошаг Z" +#define STRING_PERCENTAGE_SPEED "Скорость" +#define STRING_PERCENTAGE_FLOW "Поток" +#define STRING_VALUE_ZERO "Обнулить" +#define STRING_1_DEGREE "1℃" +#define STRING_5_DEGREE "5℃" +#define STRING_10_DEGREE "10℃" +#define STRING_X_INC "X+" +#define STRING_Y_INC "Y+" +#define STRING_Z_INC "Z+" +#define STRING_X_DEC "X-" +#define STRING_Y_DEC "Y-" +#define STRING_Z_DEC "Z-" +#define STRING_X "X" +#define STRING_Y "Y" +#define STRING_Z "Z" +#define STRING_001_MM "0.01мм" +#define STRING_01_MM "0.1мм" +#define STRING_1_MM "1мм" +#define STRING_5_MM "5мм" +#define STRING_10_MM "10мм" +#define STRING_100_MM "100mm" +#define STRING_200_MM "200mm" +#define STRING_1_PERCENT "1%" +#define STRING_5_PERCENT "5%" +#define STRING_10_PERCENT "10%" +#define STRING_PERCENT_VALUE "%d%%" +#define STRING_READY "Готов" +#define STRING_BUSY "Занято процессом, подождите..." +#define STRING_UNCONNECTED "Нет подключения!" +#define STRING_DISCONNECT_INFO "Управление принтером через компьютер" +#define STRING_LOADING "Загрузка..." +#define STRING_POWER_FAILED "Продолжить печать?" +#define STRING_CONTINUE "Продолжение" +#define STRING_CANCEL "\u088F Отмена" //Cancel Sign +#define STRING_ADJUST_TITLE "Калибровка экрана" +#define STRING_ADJUST_INFO "Нажмите на красную точку" +#define STRING_ADJUST_OK "Успешная калибровка" +#define STRING_ADJUST_FAILED "Неудачная калибровка, попробуйте снова" +#define STRING_WARNING "Внимание" +#define STRING_STOP_PRINT "Остановить печать?" +#define STRING_CONFIRM "\u088E OK" //Confirm Sign +#define STRING_TFTSD "SD экрана" +#define STRING_READ_TFTSD_ERROR "Ошибка чтения SD карты!" +#define STRING_TFTSD_INSERTED "SD карта вставлена!" +#define STRING_TFTSD_REMOVED "SD карта извлечена!" +#define STRING_U_DISK "Флеш карта" +#define STRING_READ_U_DISK_ERROR "Ошибка чтения флеш карты!" +#define STRING_U_DISK_INSERTED "Флеш карта вставлена!" +#define STRING_U_DISK_REMOVED "Флеш карта извлечена!" +#define STRING_ONBOARDSD "SD платы" +#define STRING_READ_ONBOARDSD_ERROR "Ошибка чтения SD карты!" +#define STRING_FILAMENT_SENSOR "Сенсор прутка" +#define STRING_FILAMENT_RUNOUT "Пруток закончился" +#define STRING_PREHEAT "Преднагрев" +#define STRING_PREHEAT_BOTH "Оба" +#define STRING_IS_PAUSE "Невозможна экструзия\nпри печати, поставить\nна паузу?" +#define STRING_AUTO_SHUT_DOWN "Автовыключение" +#define STRING_UNIFIEDMOVE "Движение" +#define STRING_UNIFIEDHEAT "Нагрев" +#define STRING_COOLDOWN "Охладить" +#define STRING_EMERGENCYSTOP "Экст.стоп" +#define STRING_TOUCH_TO_EXIT "Нажмите для возврата" +#define STRING_MAINMENU "Меню" +#define STRING_WAIT_TEMP_SHUT_DOWN "Дождитесь температуры\nсопла не ниже чем %d℃" // Wait for the temperature of hotend to be lower than 50℃ +#define STRING_FORCE_SHUT_DOWN "Принудительно выкл" +#define STRING_SHUTTING_DOWN "Выключаю..." +#define STRING_PARAMETER_SETTING "Параметры" +#define STRING_ON "Вкл" +#define STRING_OFF "Выкл" +#define STRING_SMART "Умный" +#define STRING_TERMINAL_ACK "ACK терминала (C°)" +#define STRING_INVERT_XAXIS "Инверсия оси X" +#define STRING_INVERT_YAXIS "Инверсия оси Y" +#define STRING_INVERT_ZAXIS "Инверсия оси Z" +#define STRING_MOVE_SPEED "Скорость (X Y Z)" +#define STRING_KNOB_LED "Подсветка энкодера" +#define STRING_KNOB_LED_IDLE "Простой подсветки энкодера" +#define STRING_M0_PAUSE "Пауза по команде M0" +#define STRING_SEND_START_GCODE "G-код перед печатью" +#define STRING_SEND_END_GCODE "G-код после печати" +#define STRING_SEND_CANCEL_GCODE "G-код отмены печати" +#define STRING_PERSISTENT_STATUS_INFO "Нагрев в инфостроке" +#define STRING_FILE_LISTMODE "Файлы в режиме строк" +#define STRING_CURRENT_SETTING "Настройка TMC драйверов" +#define STRING_STEPS_SETTING "Настройка шагов на мм" +#define STRING_MAXFEEDRATE "MAX скорость подачи" +#define STRING_MAXACCELERATION "MAX ускорение" +#define STRING_ACCELERATION "Ускорение" +#define STRING_PRINT_ACCELERATION "Печати" +#define STRING_RETRACT_ACCELERATION "Ретракта" +#define STRING_TRAVEL_ACCELERATION "Перемещения" +#define STRING_JERK "Рывок" +#define STRING_JUNCTION_DEVIATION "Отклонение узла" +#define STRING_BUMP_SENSITIVITY "TMC чувствительность удара" +#define STRING_FWRETRACT "M207 ретракт" +#define STRING_FWRECOVER "M208 восстановление ретракта" +#define STRING_LIN_ADVANCE "К-фактор" +#define STRING_RESET_SETTINGS_INFO "Все настройки будут\nсброшены по умолчанию.\nПродолжить?" +#define STRING_RESET_SETTINGS_DONE "Успешный сброс настроек\nэкрана. Для полного\nвступления в силу,\nперегрузите устройство." +#define STRING_INFO "\u0884 Информация" //Info Sign +#define STRING_LCD_BRIGHTNESS "Яркость LCD" +#define STRING_LCD_BRIGHTNESS_DIM "Регулировка яркости LCD" +#define STRING_LCD_DIM_IDLE_TIMER "Время до гашения LCD" +#define STRING_5_SECONDS "5 сек." +#define STRING_10_SECONDS "10 сек." +#define STRING_30_SECONDS "30 сек." +#define STRING_60_SECONDS "1 мин." +#define STRING_120_SECONDS "2 мин." +#define STRING_300_SECONDS "5 мин." +#define STRING_CUSTOM_SECONDS "Своё" +#define STRING_SEQUENTIAL_MODE "Sequential mode" +#define STRING_ST7920_FULLSCREEN "Marlin на весь экран" +#define STRING_PLR_EN "Работа после потери питания" +#define STRING_SETTING_SAVE "Сохранить настройки" +#define STRING_SETTING_RESET "Сбросить настройки" +#define STRING_SETTING_RESTORE "Восстановить настройки" +#define STRING_EEPROM_SETTINGS "EEPROM" +#define STRING_EEPROM_SAVE_INFO "Сохранить настройки\nпринтера в EEPROM?" +#define STRING_EEPROM_RESTORE_INFO "Загрузить настройки\nиз EEPROM?" +#define STRING_EEPROM_RESET_INFO "Сбрость EEPROM настройки\nпринтера на начальные?" +#define STRING_RETRACT_FEEDRATE "Скорость" +#define STRING_RETRACT_LENGTH "Длина" +#define STRING_RETRACT_SWAP_LENGTH "Длина при смене сопла" +#define STRING_RETRACT_Z_LIFT "Подъём по Z" +#define STRING_RETRACT_AUTO "Авто FW ретракт" +#define STRING_RECOVER_FEEDRATE "Скорость" +#define STRING_SWAP_RECOVER_FEEDRATE "Скорость при смене сопла" +#define STRING_RECOVER_LENGTH "Длина" +#define STRING_SWAP_RECOVER_LENGTH "Длина при смене сопла" +#define STRING_START_PRINT "Начать печать:\n %s?" +#define STRING_ACK_NOTIFICATION "ACK стиль уведомления" +#define STRING_LEVELING_EDGE_DISTANCE "Отступы от краёв стола" +#define STRING_XY_UNLOCK "Моторы выкл" +#define STRING_TUNING "Наладка" +#define STRING_PID "PID" +#define STRING_PID_TITLE "PID автонастройка" +#define STRING_PID_START_INFO "Сейчас будет запущена PID\nавтонастройка, это займёт\nнекоторое время. Продолжить?" +#define STRING_PID_START_INFO_2 "Автонастройка PID в работе!" +#define STRING_PID_START_INFO_3 "Не трогайте экран до\nокончания настройки\n(загориться зелёным LED)!" +#define STRING_TUNE_EXTRUDER "Настройка шагов" +#define STRING_TUNE_EXT_EXTRUDE_100 "100mm экст." +#define STRING_TUNE_EXT_TEMP "Настройка экструдера/Нагрев" +#define STRING_TUNE_EXT_TEMPLOW "Требуемая температура\nслишком низкая!\nМинимальная температура: %d℃" +#define STRING_TUNE_EXT_DESIREDVAL "Температура еще не достигла требуемого значения" +#define STRING_TUNE_EXT_MARK120MM "Отметьте 120 мм на филаменте\nНажмите '%s' по говности\nИзмерьте полученную длину/nпосле экструдирования" +#define STRING_TUNE_EXT_HEATOFF "Отключить нагрев?" +#define STRING_TUNE_EXT_ADJ_ESTEPS "Подстройка E-шагов" +#define STRING_TUNE_EXT_ESTEPS_SAVED "E-шаги установлены!\nНе забудьте сохранить\nих в EEPROM\nНовое значение: %0.2f" +#define STRING_TUNE_EXT_MEASURED "Оставшаяся длина:" +#define STRING_TUNE_EXT_OLD_ESTEP "Старые E-шаги: %0.2f" +#define STRING_TUNE_EXT_NEW_ESTEP "Новые E-шаги: %0.2f" +#define STRING_CONNECTION_SETTINGS "Соединение" +#define STRING_OFFSET_TOOL "Смещение 2-го сопла" +#define STRING_HYBRID_THRESHOLD "TMC гибридный порог" +#define STRING_NOTIFICATIONS "Уведомления" +#define STRING_MESH_EDITOR "Сетка ред." +#define STRING_MESH_TUNER "Сетка настр." +#define STRING_CASE_LIGHT "Case light" diff --git a/TFT/src/User/API/Language/language_sk.h b/TFT/src/User/API/Language/language_sk.h index 2e94660635..fcbb62883f 100644 --- a/TFT/src/User/API/Language/language_sk.h +++ b/TFT/src/User/API/Language/language_sk.h @@ -1,279 +1,280 @@ #pragma once - #define STRING_LANGUAGE "Slovensky" - #define STRING_HEAT "Teplota" - #define STRING_MOVE "Posunúť" - #define STRING_HOME "Domov" - #define STRING_DISABLE_STEPPERS "Disarm All" - #define STRING_PRINT "Tlačiť" - #define STRING_EXTRUDE "Extrúder" - #define STRING_FAN "Ofuk" - #define STRING_SETTINGS "Nastavenia" - #define STRING_SCREEN_SETTINGS "Obrazovka" - #define STRING_MACHINE_SETTINGS "Tlačiareň" - #define STRING_FEATURE_SETTINGS "Funkcie" - #define STRING_SOUND "Sound" - #define STRING_TOUCH_SOUND "Touch sounds" - #define STRING_TOAST_SOUND "Toast Notifications" - #define STRING_ALERT_SOUND "Popups and Alerts" - #define STRING_SHUT_DOWN "Vypnúť" - #define STRING_RGB_SETTINGS "Farba LED" - #define STRING_RGB_OFF "Vypnúť LED" - #define STRING_TERMINAL "Terminál" - #define STRING_CUSTOM "Vlastné" - #define STRING_LEVELING "Vyrovnanie" - #define STRING_POINT_1 "Bod 1" - #define STRING_POINT_2 "Bod 2" - #define STRING_POINT_3 "Bod 3" - #define STRING_POINT_4 "Bod 4" - #define STRING_POINT_5 "Bod 5" - #define STRING_BED_LEVELING "Bed Level" - #define STRING_BL_COMPLETE "Bed Leveling Complete" - #define STRING_BL_SMART_FILL "Missing probe points\nhave been smart filled.\n \nNote: remember to save!" - #define STRING_BL_ENABLE "BL: on" - #define STRING_BL_DISABLE "BL: off" - #define STRING_ABL "ABL" - #define STRING_BBL "BBL" - #define STRING_UBL "UBL" - #define STRING_MBL "MBL" - #define STRING_MBL_SETTINGS "Mesh Bed Leveling" - #define STRING_ABL_SETTINGS "Auto Bed Leveling" - #define STRING_ABL_SETTINGS_BBL "Bilinear Bed Leveling" - #define STRING_ABL_SETTINGS_UBL "Unified Bed Leveling" - #define STRING_ABL_SETTINGS_UBL_SAVE "Save to slot" - #define STRING_ABL_SETTINGS_UBL_LOAD "Load from slot" - #define STRING_ABL_SLOT0 "Slot 0" - #define STRING_ABL_SLOT1 "Slot 1" - #define STRING_ABL_SLOT2 "Slot 2" - #define STRING_ABL_SLOT3 "Slot 3" - #define STRING_ABL_SLOT_EEPROM "Remember slot for next\nreboot? (Save EEPROM)" - #define STRING_ABL_Z "Z Fade" - #define STRING_BLTOUCH "BLTouch" - #define STRING_BLTOUCH_TEST "Test" - #define STRING_BLTOUCH_DEPLOY "Vystrčiť" - #define STRING_BLTOUCH_STOW "Stiahnuť" - #define STRING_BLTOUCH_REPEAT "Opakovať" - #define STRING_Z_OFFSET "Z Offset" - #define STRING_PROBE_OFFSET "Probe Offset" - #define STRING_HOME_OFFSET "Home Offset" - #define STRING_CONFIRMATION "Are you sure?" - #define STRING_DOWN "Down" - #define STRING_UP "Up" - #define STRING_SAVE "Uložiť" - #define STRING_RESTORE "Restore" - #define STRING_RESET "Reset" - #define STRING_DEFAULT "Default" - #define STRING_CLEAR "Clear" - #define STRING_NEXT "Next" - #define STRING_DISTANCE "Distance" - #define STRING_INVALID_VALUE "Invalid value(s)" - #define STRING_TIMEOUT_REACHED "Timeout reached!" - #define STRING_PROCESS_RUNNING "Process already running!" - #define STRING_PROCESS_COMPLETED "Process completed!" - #define STRING_PROCESS_ABORTED "Process aborted!" - #define STRING_INC "Pridať" - #define STRING_DEC "Ubrať" - #define STRING_NOZZLE "Tryska" - #define STRING_BED "Podložka" - #define STRING_CHAMBER "Chamber" - #define STRING_START "Start" - #define STRING_STOP "Stop" - #define STRING_BACK "Naspäť" - #define STRING_PAGE_UP "Ďalej" - #define STRING_PAGE_DOWN "Naspäť" - #define STRING_PAUSE "Pauza" - #define STRING_RESUME "Pokračovať" - #define STRING_LOAD "Zaviesť" - #define STRING_UNLOAD "Vysunúť" - #define STRING_SLOW_SPEED "Pomaly" - #define STRING_NORMAL_SPEED "Normálne" - #define STRING_FAST_SPEED "Rýchlo" - #define STRING_FAN_FULL_SPEED "Naplno" - #define STRING_FAN_HALF_SPEED "Polovičná" - #define STRING_ROTATE_UI "Otočiť" - #define STRING_TOUCHSCREEN_ADJUST "Kalibrácia" - #define STRING_MORE "Viacej" - #define STRING_SCREEN_INFO "Info" - #define STRING_STATUS "Status" - #define STRING_SIMULATOR_BG_COLOR "Marlin simulator background color" - #define STRING_SIMULATOR_FONT_COLOR "Marlin simulator font color" - #define STRING_WHITE "Biela" - #define STRING_BLACK "Čierna" - #define STRING_BLUE "Modrá" - #define STRING_RED "Červená" - #define STRING_GREEN "Zelená" - #define STRING_CYAN "Tyrkysová" - #define STRING_YELLOW "Žltá" - #define STRING_BROWN "Hnedá" - #define STRING_GRAY "Šedá" - #define STRING_ORANGE "Oranžová" - #define STRING_INDIGO "Indigo" - #define STRING_VIOLET "Fialová" - #define STRING_MAGENTA "Magenta" - #define STRING_PURPLE "Purple" - #define STRING_LIME "Lime" - #define STRING_DARKBLUE "DarkBlue" - #define STRING_DARKGREEN "DarkGreen" - #define STRING_DARKGRAY "DarkGray" - #define STRING_DISCONNECT "Odpojiť" - #define STRING_BAUDRATE "BaudRate" - #define STRING_PERCENTAGE "Percentá" - #define STRING_BABYSTEP "BabyStep" - #define STRING_PERCENTAGE_SPEED "Rýchlosť" - #define STRING_PERCENTAGE_FLOW "Prietok" - #define STRING_VALUE_ZERO "Vypnúť" - #define STRING_1_DEGREE "1℃" - #define STRING_5_DEGREE "5℃" - #define STRING_10_DEGREE "10℃" - #define STRING_X_INC "X+" - #define STRING_Y_INC "Y+" - #define STRING_Z_INC "Z+" - #define STRING_X_DEC "X-" - #define STRING_Y_DEC "Y-" - #define STRING_Z_DEC "Z-" - #define STRING_X "X" - #define STRING_Y "Y" - #define STRING_Z "Z" - #define STRING_001_MM "0.01mm" - #define STRING_01_MM "0.1mm" - #define STRING_1_MM "1mm" - #define STRING_5_MM "5mm" - #define STRING_10_MM "10mm" - #define STRING_100_MM "100mm" - #define STRING_200_MM "200mm" - #define STRING_1_PERCENT "1%" - #define STRING_5_PERCENT "5%" - #define STRING_10_PERCENT "10%" - #define STRING_PERCENT_VALUE "%d%%" - #define STRING_READY "Pripravená" - #define STRING_BUSY "Počkajte prosím..." - #define STRING_UNCONNECTED "Tlačiareň odpojená!" - #define STRING_DISCONNECT_INFO "Teraz môžete tlačiareň ovládať z počítača!" - #define STRING_LOADING "Načítavam..." - #define STRING_POWER_FAILED "Pokračovať v tlači?" - #define STRING_CONTINUE "Pokračovať" - #define STRING_CANCEL "Zrušiť" - #define STRING_ADJUST_TITLE "Kalibrácia" - #define STRING_ADJUST_INFO "Dotknite sa postupne všetkých bodov" - #define STRING_ADJUST_OK "Kalibrácia úspešná" - #define STRING_ADJUST_FAILED "Kalibrácia zlyhala, opakovať" - #define STRING_WARNING "Varovanie" - #define STRING_STOP_PRINT "Zastaviť tlač?" - #define STRING_CONFIRM "Potvrdiť" - #define STRING_TFTSD "TFT SD" - #define STRING_READ_TFTSD_ERROR "Chyba pri načítaní SD karty!" - #define STRING_TFTSD_INSERTED "SD karta vložená!" - #define STRING_TFTSD_REMOVED "SD karta odstránená!" - #define STRING_U_DISK "USB kľúč" - #define STRING_READ_U_DISK_ERROR "Chyba pri načítaní USB kľúča!" - #define STRING_U_DISK_INSERTED "USB kľúč vložený!" - #define STRING_U_DISK_REMOVED "USB disk odstránený!" - #define STRING_ONBOARDSD "SD karta na doske" - #define STRING_READ_ONBOARDSD_ERROR "Chyba pri načítaní SD karty na doske!" - #define STRING_FILAMENT_SENSOR "Filament senzor" - #define STRING_FILAMENT_RUNOUT "Chýba filament!" - #define STRING_PREHEAT "Nahriať" - #define STRING_PREHEAT_BOTH "Tryska/Podložka" - #define STRING_IS_PAUSE "Nemožno extrudovať\npočas tlače,\npozastaviť tlač?" - #define STRING_AUTO_SHUT_DOWN "Auto vyp." - #define STRING_UNIFIEDMOVE "Pohyb" - #define STRING_UNIFIEDHEAT "Nahriať" - #define STRING_COOLDOWN "Ochladiť" - #define STRING_EMERGENCYSTOP "STOP" - #define STRING_TOUCH_TO_EXIT "Dotknite sa obrazovky pre ukončenie" - #define STRING_MAINMENU "Menu" - #define STRING_WAIT_TEMP_SHUT_DOWN "Počkať na teplotu\ntrysky menej ako %d℃" // Počkať na teplotu hotendu menej ako 50℃ - #define STRING_FORCE_SHUT_DOWN "Vynútené vypnutie" - #define STRING_SHUTTING_DOWN "Vypínanie..." - #define STRING_PARAMETER_SETTING "Parametre" - #define STRING_ON "ZAP" - #define STRING_OFF "VYP" - #define STRING_SMART "SMART" - #define STRING_TERMINAL_ACK "Show ACK in Terminal" - #define STRING_INVERT_XAXIS "Invertovať os X" - #define STRING_INVERT_YAXIS "Invertovať os Y" - #define STRING_INVERT_ZAXIS "Invertovať os Z" - #define STRING_MOVE_SPEED "Rýchlosť pohybu XYZ" - #define STRING_KNOB_LED "LED otočného tlačidla" - #define STRING_KNOB_LED_IDLE "Rotary Knob LED idle" - #define STRING_M0_PAUSE "Pauza príkazom M0" - #define STRING_SEND_START_GCODE "Začiatočný Gcode" - #define STRING_SEND_END_GCODE "Koncový Gcode" - #define STRING_SEND_CANCEL_GCODE "Cancel Gcode" - #define STRING_PERSISTENT_STATUS_INFO "Trvalé info o stave" - #define STRING_FILE_LISTMODE "Zobraziť súbory ako zoznam" - #define STRING_CURRENT_SETTING "Prúd ovládača (mA)" - #define STRING_STEPS_SETTING "Počet krokov na MM" - #define STRING_MAXFEEDRATE "Max Feed Rate" - #define STRING_MAXACCELERATION "Maximálna akcelerácia" - #define STRING_ACCELERATION "Akcelerácia" - #define STRING_PRINT_ACCELERATION "Akcelerácia pri tlači" - #define STRING_RETRACT_ACCELERATION "Akcelerácia retrakcie" - #define STRING_TRAVEL_ACCELERATION "Akcelerácia presunu" - #define STRING_JERK "Jerk" - #define STRING_JUNCTION_DEVIATION "Junction Deviation" - #define STRING_BUMP_SENSITIVITY "TMC bump citlivosť" - #define STRING_FWRETRACT "FW Retraction" - #define STRING_FWRECOVER "FW Retraction Recover" - #define STRING_LIN_ADVANCE "Linear Advance" - #define STRING_RESET_SETTINGS_INFO "Resetovať všetky nastavenia." - #define STRING_RESET_SETTINGS_DONE "Reset všetkých nastavení\nvykonaný. Pre správne\nfungovanie, prosím,\nreštartovať zariadenie." - #define STRING_INFO "Info" - #define STRING_LCD_BRIGHTNESS "Jas LCD" - #define STRING_LCD_BRIGHTNESS_DIM "Zníženie jasu LCD" - #define STRING_LCD_DIM_IDLE_TIMER "Zníženie jasu LCD po" - #define STRING_5_SECONDS "5 sek." - #define STRING_10_SECONDS "10 sek." - #define STRING_30_SECONDS "30 Sec." - #define STRING_60_SECONDS "1 Min." - #define STRING_120_SECONDS "2 Min." - #define STRING_300_SECONDS "5 Min." - #define STRING_CUSTOM_SECONDS "Custom" - #define STRING_SEQUENTIAL_MODE "Sequential mode" - #define STRING_ST7920_FULLSCREEN "Marlin mode in fullscreen" - #define STRING_PLR_EN "Power loss recovery" - #define STRING_SETTING_SAVE "Save settings" - #define STRING_SETTING_RESET "Reset default settings" - #define STRING_SETTING_RESTORE "Restore settings" - #define STRING_EEPROM_SETTINGS "EEPROM" - #define STRING_EEPROM_SAVE_INFO "Save printer settings\nto EEPROM?" - #define STRING_EEPROM_RESTORE_INFO "Reload settings from\nEEPROM?" - #define STRING_EEPROM_RESET_INFO "Reset EEPROM to stock printer settings?" - #define STRING_RETRACT_FEEDRATE "Retract feedrate" - #define STRING_RETRACT_LENGTH "Retract length" - #define STRING_RETRACT_SWAP_LENGTH "Retract swap length" - #define STRING_RETRACT_Z_LIFT "Z lift on retraction" - #define STRING_RETRACT_AUTO "Auto Firmware Retract" - #define STRING_RECOVER_FEEDRATE "Recover feedrate" - #define STRING_SWAP_RECOVER_FEEDRATE "Swap recover feedrate" - #define STRING_RECOVER_LENGTH "Extra recover length" - #define STRING_SWAP_RECOVER_LENGTH "Extra recover swap length" - #define STRING_START_PRINT "Start Printing:\n %s?" - #define STRING_ACK_NOTIFICATION "ACK notification style" - #define STRING_LEVELING_EDGE_DISTANCE "Bed edge distance" - #define STRING_XY_UNLOCK "Odomknite XY" - #define STRING_TUNING "Tuning" - #define STRING_PID "PID" - #define STRING_PID_TITLE "PID autotune" - #define STRING_PID_START_INFO "PID autotune may take\nsome time to complete.\nContinue?" - #define STRING_PID_START_INFO_2 "PID autotune in progress!" - #define STRING_PID_START_INFO_3 "Do not touch the screen until completed (green LED ON)!" - #define STRING_TUNE_EXTRUDER "Tune steps" - #define STRING_TUNE_EXT_EXTRUDE_100 "Ext. 100mm" - #define STRING_TUNE_EXT_TEMP "Extruder tuning | Heat" - #define STRING_TUNE_EXT_TEMPLOW "Desired temperature too low!\nMinimum temperature: %d C" - #define STRING_TUNE_EXT_DESIREDVAL "Temperature is not yet at the desired value" - #define STRING_TUNE_EXT_MARK120MM "Mark 120 mm on your fillament\nPress '%s' when ready\nMeasure remaining length\nafter extruding" - #define STRING_TUNE_EXT_HEATOFF "Turn the heater off?" - #define STRING_TUNE_EXT_ADJ_ESTEPS "Adjust E-Steps" - #define STRING_TUNE_EXT_ESTEPS_SAVED "New E-steps saved!\nDon't forget to\nsave it in EEPROM\nNew value: %0.2f" - #define STRING_TUNE_EXT_MEASURED "Length remaining:" - #define STRING_TUNE_EXT_OLD_ESTEP "Old e-steps: %0.2f" - #define STRING_TUNE_EXT_NEW_ESTEP "New e-steps: %0.2f" - #define STRING_CONNECTION_SETTINGS "Connection" - #define STRING_OFFSET_TOOL "Offset 2nd Nozzle" - #define STRING_HYBRID_THRESHOLD "TMC HybridThreshold" - #define STRING_NOTIFICATIONS "Notifications" - #define STRING_MESH_EDITOR "Mesh edit" - #define STRING_MESH_TUNER "Mesh tuner" - #define STRING_CASE_LIGHT "Case light" +#define STRING_LANGUAGE "Slovensky" +#define STRING_HEAT "Teplota" +#define STRING_MOVE "Posunúť" +#define STRING_HOME "Domov" +#define STRING_DISABLE_STEPPERS "Disarm All" +#define STRING_PRINT "Tlačiť" +#define STRING_EXTRUDE "Extrúder" +#define STRING_FAN "Ofuk" +#define STRING_SETTINGS "Nastavenia" +#define STRING_SCREEN_SETTINGS "Obrazovka" +#define STRING_MACHINE_SETTINGS "Tlačiareň" +#define STRING_FEATURE_SETTINGS "Funkcie" +#define STRING_SOUND "Sound" +#define STRING_TOUCH_SOUND "Touch sounds" +#define STRING_TOAST_SOUND "Toast Notifications" +#define STRING_ALERT_SOUND "Popups and Alerts" +#define STRING_PREHEATDONE_SOUND "Preheat done notification" +#define STRING_SHUT_DOWN "Vypnúť" +#define STRING_RGB_SETTINGS "Farba LED" +#define STRING_RGB_OFF "Vypnúť LED" +#define STRING_TERMINAL "Terminál" +#define STRING_CUSTOM "Vlastné" +#define STRING_LEVELING "Vyrovnanie" +#define STRING_POINT_1 "Bod 1" +#define STRING_POINT_2 "Bod 2" +#define STRING_POINT_3 "Bod 3" +#define STRING_POINT_4 "Bod 4" +#define STRING_POINT_5 "Bod 5" +#define STRING_BED_LEVELING "Bed Level" +#define STRING_BL_COMPLETE "Bed Leveling Complete" +#define STRING_BL_SMART_FILL "Missing probe points\nhave been smart filled.\n \nNote: remember to save!" +#define STRING_BL_ENABLE "BL: on" +#define STRING_BL_DISABLE "BL: off" +#define STRING_ABL "ABL" +#define STRING_BBL "BBL" +#define STRING_UBL "UBL" +#define STRING_MBL "MBL" +#define STRING_MBL_SETTINGS "Mesh Bed Leveling" +#define STRING_ABL_SETTINGS "Auto Bed Leveling" +#define STRING_ABL_SETTINGS_BBL "Bilinear Bed Leveling" +#define STRING_ABL_SETTINGS_UBL "Unified Bed Leveling" +#define STRING_ABL_SETTINGS_UBL_SAVE "Save to slot" +#define STRING_ABL_SETTINGS_UBL_LOAD "Load from slot" +#define STRING_ABL_SLOT0 "Slot 0" +#define STRING_ABL_SLOT1 "Slot 1" +#define STRING_ABL_SLOT2 "Slot 2" +#define STRING_ABL_SLOT3 "Slot 3" +#define STRING_ABL_SLOT_EEPROM "Remember slot for next\nreboot? (Save EEPROM)" +#define STRING_ABL_Z "Z Fade" +#define STRING_BLTOUCH "BLTouch" +#define STRING_BLTOUCH_TEST "Test" +#define STRING_BLTOUCH_DEPLOY "Vystrčiť" +#define STRING_BLTOUCH_STOW "Stiahnuť" +#define STRING_BLTOUCH_REPEAT "Opakovať" +#define STRING_Z_OFFSET "Z Offset" +#define STRING_PROBE_OFFSET "Probe Offset" +#define STRING_HOME_OFFSET "Home Offset" +#define STRING_CONFIRMATION "Are you sure?" +#define STRING_DOWN "Down" +#define STRING_UP "Up" +#define STRING_SAVE "Uložiť" +#define STRING_RESTORE "Restore" +#define STRING_RESET "Reset" +#define STRING_DEFAULT "Default" +#define STRING_CLEAR "Clear" +#define STRING_NEXT "Next" +#define STRING_DISTANCE "Distance" +#define STRING_INVALID_VALUE "Invalid value(s)" +#define STRING_TIMEOUT_REACHED "Timeout reached!" +#define STRING_PROCESS_RUNNING "Process already running!" +#define STRING_PROCESS_COMPLETED "Process completed!" +#define STRING_PROCESS_ABORTED "Process aborted!" +#define STRING_INC "Pridať" +#define STRING_DEC "Ubrať" +#define STRING_NOZZLE "Tryska" +#define STRING_BED "Podložka" +#define STRING_CHAMBER "Chamber" +#define STRING_START "Start" +#define STRING_STOP "Stop" +#define STRING_BACK "Naspäť" +#define STRING_PAGE_UP "Ďalej" +#define STRING_PAGE_DOWN "Naspäť" +#define STRING_PAUSE "Pauza" +#define STRING_RESUME "Pokračovať" +#define STRING_LOAD "Zaviesť" +#define STRING_UNLOAD "Vysunúť" +#define STRING_SLOW_SPEED "Pomaly" +#define STRING_NORMAL_SPEED "Normálne" +#define STRING_FAST_SPEED "Rýchlo" +#define STRING_FAN_FULL_SPEED "Naplno" +#define STRING_FAN_HALF_SPEED "Polovičná" +#define STRING_ROTATE_UI "Otočiť" +#define STRING_TOUCHSCREEN_ADJUST "Kalibrácia" +#define STRING_MORE "Viacej" +#define STRING_SCREEN_INFO "Info" +#define STRING_STATUS "Status" +#define STRING_SIMULATOR_BG_COLOR "Marlin simulator background color" +#define STRING_SIMULATOR_FONT_COLOR "Marlin simulator font color" +#define STRING_WHITE "Biela" +#define STRING_BLACK "Čierna" +#define STRING_BLUE "Modrá" +#define STRING_RED "Červená" +#define STRING_GREEN "Zelená" +#define STRING_CYAN "Tyrkysová" +#define STRING_YELLOW "Žltá" +#define STRING_BROWN "Hnedá" +#define STRING_GRAY "Šedá" +#define STRING_ORANGE "Oranžová" +#define STRING_INDIGO "Indigo" +#define STRING_VIOLET "Fialová" +#define STRING_MAGENTA "Magenta" +#define STRING_PURPLE "Purple" +#define STRING_LIME "Lime" +#define STRING_DARKBLUE "DarkBlue" +#define STRING_DARKGREEN "DarkGreen" +#define STRING_DARKGRAY "DarkGray" +#define STRING_DISCONNECT "Odpojiť" +#define STRING_BAUDRATE "BaudRate" +#define STRING_PERCENTAGE "Percentá" +#define STRING_BABYSTEP "BabyStep" +#define STRING_PERCENTAGE_SPEED "Rýchlosť" +#define STRING_PERCENTAGE_FLOW "Prietok" +#define STRING_VALUE_ZERO "Vypnúť" +#define STRING_1_DEGREE "1℃" +#define STRING_5_DEGREE "5℃" +#define STRING_10_DEGREE "10℃" +#define STRING_X_INC "X+" +#define STRING_Y_INC "Y+" +#define STRING_Z_INC "Z+" +#define STRING_X_DEC "X-" +#define STRING_Y_DEC "Y-" +#define STRING_Z_DEC "Z-" +#define STRING_X "X" +#define STRING_Y "Y" +#define STRING_Z "Z" +#define STRING_001_MM "0.01mm" +#define STRING_01_MM "0.1mm" +#define STRING_1_MM "1mm" +#define STRING_5_MM "5mm" +#define STRING_10_MM "10mm" +#define STRING_100_MM "100mm" +#define STRING_200_MM "200mm" +#define STRING_1_PERCENT "1%" +#define STRING_5_PERCENT "5%" +#define STRING_10_PERCENT "10%" +#define STRING_PERCENT_VALUE "%d%%" +#define STRING_READY "Pripravená" +#define STRING_BUSY "Počkajte prosím..." +#define STRING_UNCONNECTED "Tlačiareň odpojená!" +#define STRING_DISCONNECT_INFO "Teraz môžete tlačiareň ovládať z počítača!" +#define STRING_LOADING "Načítavam..." +#define STRING_POWER_FAILED "Pokračovať v tlači?" +#define STRING_CONTINUE "Pokračovať" +#define STRING_CANCEL "Zrušiť" +#define STRING_ADJUST_TITLE "Kalibrácia" +#define STRING_ADJUST_INFO "Dotknite sa postupne všetkých bodov" +#define STRING_ADJUST_OK "Kalibrácia úspešná" +#define STRING_ADJUST_FAILED "Kalibrácia zlyhala, opakovať" +#define STRING_WARNING "Varovanie" +#define STRING_STOP_PRINT "Zastaviť tlač?" +#define STRING_CONFIRM "Potvrdiť" +#define STRING_TFTSD "TFT SD" +#define STRING_READ_TFTSD_ERROR "Chyba pri načítaní SD karty!" +#define STRING_TFTSD_INSERTED "SD karta vložená!" +#define STRING_TFTSD_REMOVED "SD karta odstránená!" +#define STRING_U_DISK "USB kľúč" +#define STRING_READ_U_DISK_ERROR "Chyba pri načítaní USB kľúča!" +#define STRING_U_DISK_INSERTED "USB kľúč vložený!" +#define STRING_U_DISK_REMOVED "USB disk odstránený!" +#define STRING_ONBOARDSD "SD karta na doske" +#define STRING_READ_ONBOARDSD_ERROR "Chyba pri načítaní SD karty na doske!" +#define STRING_FILAMENT_SENSOR "Filament senzor" +#define STRING_FILAMENT_RUNOUT "Chýba filament!" +#define STRING_PREHEAT "Nahriať" +#define STRING_PREHEAT_BOTH "Tryska/Podložka" +#define STRING_IS_PAUSE "Nemožno extrudovať\npočas tlače,\npozastaviť tlač?" +#define STRING_AUTO_SHUT_DOWN "Auto vyp." +#define STRING_UNIFIEDMOVE "Pohyb" +#define STRING_UNIFIEDHEAT "Nahriať" +#define STRING_COOLDOWN "Ochladiť" +#define STRING_EMERGENCYSTOP "STOP" +#define STRING_TOUCH_TO_EXIT "Dotknite sa obrazovky pre ukončenie" +#define STRING_MAINMENU "Menu" +#define STRING_WAIT_TEMP_SHUT_DOWN "Počkať na teplotu\ntrysky menej ako %d℃" // Počkať na teplotu hotendu menej ako 50℃ +#define STRING_FORCE_SHUT_DOWN "Vynútené vypnutie" +#define STRING_SHUTTING_DOWN "Vypínanie..." +#define STRING_PARAMETER_SETTING "Parametre" +#define STRING_ON "ZAP" +#define STRING_OFF "VYP" +#define STRING_SMART "SMART" +#define STRING_TERMINAL_ACK "Show ACK in Terminal" +#define STRING_INVERT_XAXIS "Invertovať os X" +#define STRING_INVERT_YAXIS "Invertovať os Y" +#define STRING_INVERT_ZAXIS "Invertovať os Z" +#define STRING_MOVE_SPEED "Rýchlosť pohybu XYZ" +#define STRING_KNOB_LED "LED otočného tlačidla" +#define STRING_KNOB_LED_IDLE "Rotary Knob LED idle" +#define STRING_M0_PAUSE "Pauza príkazom M0" +#define STRING_SEND_START_GCODE "Začiatočný Gcode" +#define STRING_SEND_END_GCODE "Koncový Gcode" +#define STRING_SEND_CANCEL_GCODE "Cancel Gcode" +#define STRING_PERSISTENT_STATUS_INFO "Trvalé info o stave" +#define STRING_FILE_LISTMODE "Zobraziť súbory ako zoznam" +#define STRING_CURRENT_SETTING "Prúd ovládača (mA)" +#define STRING_STEPS_SETTING "Počet krokov na MM" +#define STRING_MAXFEEDRATE "Max Feed Rate" +#define STRING_MAXACCELERATION "Maximálna akcelerácia" +#define STRING_ACCELERATION "Akcelerácia" +#define STRING_PRINT_ACCELERATION "Akcelerácia pri tlači" +#define STRING_RETRACT_ACCELERATION "Akcelerácia retrakcie" +#define STRING_TRAVEL_ACCELERATION "Akcelerácia presunu" +#define STRING_JERK "Jerk" +#define STRING_JUNCTION_DEVIATION "Junction Deviation" +#define STRING_BUMP_SENSITIVITY "TMC bump citlivosť" +#define STRING_FWRETRACT "FW Retraction" +#define STRING_FWRECOVER "FW Retraction Recover" +#define STRING_LIN_ADVANCE "Linear Advance" +#define STRING_RESET_SETTINGS_INFO "Resetovať všetky nastavenia." +#define STRING_RESET_SETTINGS_DONE "Reset všetkých nastavení\nvykonaný. Pre správne\nfungovanie, prosím,\nreštartovať zariadenie." +#define STRING_INFO "Info" +#define STRING_LCD_BRIGHTNESS "Jas LCD" +#define STRING_LCD_BRIGHTNESS_DIM "Zníženie jasu LCD" +#define STRING_LCD_DIM_IDLE_TIMER "Zníženie jasu LCD po" +#define STRING_5_SECONDS "5 sek." +#define STRING_10_SECONDS "10 sek." +#define STRING_30_SECONDS "30 Sec." +#define STRING_60_SECONDS "1 Min." +#define STRING_120_SECONDS "2 Min." +#define STRING_300_SECONDS "5 Min." +#define STRING_CUSTOM_SECONDS "Custom" +#define STRING_SEQUENTIAL_MODE "Sequential mode" +#define STRING_ST7920_FULLSCREEN "Marlin mode in fullscreen" +#define STRING_PLR_EN "Power loss recovery" +#define STRING_SETTING_SAVE "Save settings" +#define STRING_SETTING_RESET "Reset default settings" +#define STRING_SETTING_RESTORE "Restore settings" +#define STRING_EEPROM_SETTINGS "EEPROM" +#define STRING_EEPROM_SAVE_INFO "Save printer settings\nto EEPROM?" +#define STRING_EEPROM_RESTORE_INFO "Reload settings from\nEEPROM?" +#define STRING_EEPROM_RESET_INFO "Reset EEPROM to stock printer settings?" +#define STRING_RETRACT_FEEDRATE "Retract feedrate" +#define STRING_RETRACT_LENGTH "Retract length" +#define STRING_RETRACT_SWAP_LENGTH "Retract swap length" +#define STRING_RETRACT_Z_LIFT "Z lift on retraction" +#define STRING_RETRACT_AUTO "Auto Firmware Retract" +#define STRING_RECOVER_FEEDRATE "Recover feedrate" +#define STRING_SWAP_RECOVER_FEEDRATE "Swap recover feedrate" +#define STRING_RECOVER_LENGTH "Extra recover length" +#define STRING_SWAP_RECOVER_LENGTH "Extra recover swap length" +#define STRING_START_PRINT "Start Printing:\n %s?" +#define STRING_ACK_NOTIFICATION "ACK notification style" +#define STRING_LEVELING_EDGE_DISTANCE "Bed edge distance" +#define STRING_XY_UNLOCK "Odomknite XY" +#define STRING_TUNING "Tuning" +#define STRING_PID "PID" +#define STRING_PID_TITLE "PID autotune" +#define STRING_PID_START_INFO "PID autotune may take\nsome time to complete.\nContinue?" +#define STRING_PID_START_INFO_2 "PID autotune in progress!" +#define STRING_PID_START_INFO_3 "Do not touch the screen until completed (green LED ON)!" +#define STRING_TUNE_EXTRUDER "Tune steps" +#define STRING_TUNE_EXT_EXTRUDE_100 "Ext. 100mm" +#define STRING_TUNE_EXT_TEMP "Extruder tuning | Heat" +#define STRING_TUNE_EXT_TEMPLOW "Desired temperature too low!\nMinimum temperature: %d C" +#define STRING_TUNE_EXT_DESIREDVAL "Temperature is not yet at the desired value" +#define STRING_TUNE_EXT_MARK120MM "Mark 120 mm on your fillament\nPress '%s' when ready\nMeasure remaining length\nafter extruding" +#define STRING_TUNE_EXT_HEATOFF "Turn the heater off?" +#define STRING_TUNE_EXT_ADJ_ESTEPS "Adjust E-Steps" +#define STRING_TUNE_EXT_ESTEPS_SAVED "New E-steps saved!\nDon't forget to\nsave it in EEPROM\nNew value: %0.2f" +#define STRING_TUNE_EXT_MEASURED "Length remaining:" +#define STRING_TUNE_EXT_OLD_ESTEP "Old e-steps: %0.2f" +#define STRING_TUNE_EXT_NEW_ESTEP "New e-steps: %0.2f" +#define STRING_CONNECTION_SETTINGS "Connection" +#define STRING_OFFSET_TOOL "Offset 2nd Nozzle" +#define STRING_HYBRID_THRESHOLD "TMC HybridThreshold" +#define STRING_NOTIFICATIONS "Notifications" +#define STRING_MESH_EDITOR "Mesh edit" +#define STRING_MESH_TUNER "Mesh tuner" +#define STRING_CASE_LIGHT "Case light" diff --git a/TFT/src/User/API/Language/language_sl.h b/TFT/src/User/API/Language/language_sl.h index d11b2c74c4..49b36b512f 100644 --- a/TFT/src/User/API/Language/language_sl.h +++ b/TFT/src/User/API/Language/language_sl.h @@ -1,279 +1,280 @@ #pragma once - #define STRING_LANGUAGE "Slovenski" - #define STRING_HEAT "Gretje" - #define STRING_MOVE "Pomik" - #define STRING_HOME "Domov" - #define STRING_DISABLE_STEPPERS "Disarm All" - #define STRING_PRINT "Tisk" - #define STRING_EXTRUDE "Filament" - #define STRING_FAN "Hlajenje" - #define STRING_SETTINGS "Nastavitve" - #define STRING_SCREEN_SETTINGS "Zaslon" - #define STRING_MACHINE_SETTINGS "Naprava" - #define STRING_FEATURE_SETTINGS "Funkcije" - #define STRING_SOUND "Sound" - #define STRING_TOUCH_SOUND "Touch sounds" - #define STRING_TOAST_SOUND "Toast Notifications" - #define STRING_ALERT_SOUND "Popups and Alerts" - #define STRING_SHUT_DOWN "Izklop" - #define STRING_RGB_SETTINGS "Barva LED" - #define STRING_RGB_OFF "LED Off" - #define STRING_TERMINAL "Terminal" - #define STRING_CUSTOM "Po meri" - #define STRING_LEVELING "Niveliraj" - #define STRING_POINT_1 "Točka 1" - #define STRING_POINT_2 "Točka 2" - #define STRING_POINT_3 "Točka 3" - #define STRING_POINT_4 "Točka 4" - #define STRING_POINT_5 "Točka 5" - #define STRING_BED_LEVELING "Bed Level" - #define STRING_BL_COMPLETE "Bed Leveling Complete" - #define STRING_BL_SMART_FILL "Missing probe points\nhave been smart filled.\n \nNote: remember to save!" - #define STRING_BL_ENABLE "BL: on" - #define STRING_BL_DISABLE "BL: off" - #define STRING_ABL "ABL" - #define STRING_BBL "BBL" - #define STRING_UBL "UBL" - #define STRING_MBL "MBL" - #define STRING_MBL_SETTINGS "Mesh Bed Leveling" - #define STRING_ABL_SETTINGS "Auto Bed Leveling" - #define STRING_ABL_SETTINGS_BBL "Bilinear Bed Leveling" - #define STRING_ABL_SETTINGS_UBL "Unified Bed Leveling" - #define STRING_ABL_SETTINGS_UBL_SAVE "Save to slot" - #define STRING_ABL_SETTINGS_UBL_LOAD "Load from slot" - #define STRING_ABL_SLOT0 "Slot 0" - #define STRING_ABL_SLOT1 "Slot 1" - #define STRING_ABL_SLOT2 "Slot 2" - #define STRING_ABL_SLOT3 "Slot 3" - #define STRING_ABL_SLOT_EEPROM "Remember slot for next\nreboot? (Save EEPROM)" - #define STRING_ABL_Z "Z Fade" - #define STRING_BLTOUCH "BLTouch" - #define STRING_BLTOUCH_TEST "Test" - #define STRING_BLTOUCH_DEPLOY "Postavi" - #define STRING_BLTOUCH_STOW "Skrij" - #define STRING_BLTOUCH_REPEAT "Ponovi" - #define STRING_Z_OFFSET "Z odmik" - #define STRING_PROBE_OFFSET "Odmik sonde" - #define STRING_HOME_OFFSET "Home Offset" - #define STRING_CONFIRMATION "Are you sure?" - #define STRING_DOWN "Down" - #define STRING_UP "Up" - #define STRING_SAVE "Shrani" - #define STRING_RESTORE "Restore" - #define STRING_RESET "Reset" - #define STRING_DEFAULT "Default" - #define STRING_CLEAR "Clear" - #define STRING_NEXT "Next" - #define STRING_DISTANCE "Distance" - #define STRING_INVALID_VALUE "Invalid value(s)" - #define STRING_TIMEOUT_REACHED "Timeout reached!" - #define STRING_PROCESS_RUNNING "Process already running!" - #define STRING_PROCESS_COMPLETED "Process completed!" - #define STRING_PROCESS_ABORTED "Process aborted!" - #define STRING_INC "Več" - #define STRING_DEC "Manj" - #define STRING_NOZZLE "Šoba" - #define STRING_BED "Miza" - #define STRING_CHAMBER "Chamber" - #define STRING_START "Start" - #define STRING_STOP "Stop" - #define STRING_BACK "Nazaj" - #define STRING_PAGE_UP "Stran gor" - #define STRING_PAGE_DOWN "Stran dol" - #define STRING_PAUSE "Pavza" - #define STRING_RESUME "Nadaljuj" - #define STRING_LOAD "Naloži" - #define STRING_UNLOAD "Izvrzi" - #define STRING_SLOW_SPEED "Počasi" - #define STRING_NORMAL_SPEED "Normalo" - #define STRING_FAST_SPEED "Hitro" - #define STRING_FAN_FULL_SPEED "100% moč" - #define STRING_FAN_HALF_SPEED "50% moč" - #define STRING_ROTATE_UI "Obrni UI" - #define STRING_TOUCHSCREEN_ADJUST "Umeri" - #define STRING_MORE "Več" - #define STRING_SCREEN_INFO "Info" - #define STRING_STATUS "Info" - #define STRING_SIMULATOR_BG_COLOR "Barva ozadja Marlin simulatorja" - #define STRING_SIMULATOR_FONT_COLOR "Barva pisave Marlin simulatorja" - #define STRING_WHITE "Belo" - #define STRING_BLACK "Črno" - #define STRING_BLUE "Mordo" - #define STRING_RED "Rdeče" - #define STRING_GREEN "Zeleno" - #define STRING_CYAN "Modrozelena" - #define STRING_YELLOW "Rumena" - #define STRING_BROWN "Rjana" - #define STRING_GRAY "Siva" - #define STRING_ORANGE "Oranžna" - #define STRING_INDIGO "Indigo" - #define STRING_VIOLET "Vijolična" - #define STRING_MAGENTA "Magenta" - #define STRING_PURPLE "Temno vijolična" - #define STRING_LIME "Limeta" - #define STRING_DARKBLUE "Temno morda" - #define STRING_DARKGREEN "Temno zelena" - #define STRING_DARKGRAY "Temno siva" - #define STRING_DISCONNECT "Odklopi" - #define STRING_BAUDRATE "Baud hitr." - #define STRING_PERCENTAGE "Procent" - #define STRING_BABYSTEP "BabyStep" - #define STRING_PERCENTAGE_SPEED "Hitrost" - #define STRING_PERCENTAGE_FLOW "Pretok" - #define STRING_VALUE_ZERO "Nič" - #define STRING_1_DEGREE "1℃" - #define STRING_5_DEGREE "5℃" - #define STRING_10_DEGREE "10℃" - #define STRING_X_INC "X+" - #define STRING_Y_INC "Y+" - #define STRING_Z_INC "Z+" - #define STRING_X_DEC "X-" - #define STRING_Y_DEC "Y-" - #define STRING_Z_DEC "Z-" - #define STRING_X "X" - #define STRING_Y "Y" - #define STRING_Z "Z" - #define STRING_001_MM "0.01mm" - #define STRING_01_MM "0.1mm" - #define STRING_1_MM "1mm" - #define STRING_5_MM "5mm" - #define STRING_10_MM "10mm" - #define STRING_100_MM "100mm" - #define STRING_200_MM "200mm" - #define STRING_1_PERCENT "1%" - #define STRING_5_PERCENT "5%" - #define STRING_10_PERCENT "10%" - #define STRING_PERCENT_VALUE "%d%%" - #define STRING_READY "Pripravljen" - #define STRING_BUSY "Zaseden s procesiranjem, prosim počakaj..." - #define STRING_UNCONNECTED "Nobenega tiskalnika priključenega!" - #define STRING_DISCONNECT_INFO "Zdaj lahko upravljaš tiskalnik z računalnikom!" - #define STRING_LOADING "Nalagam..." - #define STRING_POWER_FAILED "Nadaljuj s tiskanjem?" //Question Sign - #define STRING_CONTINUE "Nadaljuj" - #define STRING_CANCEL "\u088F Prekliči" //Cancel Sign - #define STRING_ADJUST_TITLE "Kalibracija zaslona na dotik" - #define STRING_ADJUST_INFO "Pritisni na rdečo piko" - #define STRING_ADJUST_OK "Nastavitev uspešna" - #define STRING_ADJUST_FAILED "Nastavitev neuspešna, prosim poskusi ponovno" - #define STRING_WARNING "Opozorilo" //Exclamation Sign - #define STRING_STOP_PRINT "Ustavim tisk?" - #define STRING_CONFIRM "\u088E OK" //Confirm Sign - #define STRING_TFTSD "TFT SD" - #define STRING_READ_TFTSD_ERROR "Napaka branja TFT SD kartice!" - #define STRING_TFTSD_INSERTED "Kartica vstavljena!" - #define STRING_TFTSD_REMOVED "Kartica odstranjena!" - #define STRING_U_DISK "USB disk" - #define STRING_READ_U_DISK_ERROR "Napaka branja USB diska!" - #define STRING_U_DISK_INSERTED "USB disk vstavljen!" - #define STRING_U_DISK_REMOVED "USB disk odstranjen!" - #define STRING_ONBOARDSD "SKR SD" - #define STRING_READ_ONBOARDSD_ERROR "Napaka branja SKR SD kartice!" - #define STRING_FILAMENT_SENSOR "Senzor filamenta" - #define STRING_FILAMENT_RUNOUT "Ni več filamenta!" - #define STRING_PREHEAT "Predgretje" - #define STRING_PREHEAT_BOTH "Oboje" - #define STRING_IS_PAUSE "Ne morem estrudirat\nmed tiskanjem.\nPavziram tisk?" - #define STRING_AUTO_SHUT_DOWN "Samodejni izklop" - #define STRING_UNIFIEDMOVE "Vodenje" - #define STRING_UNIFIEDHEAT "Gretje" - #define STRING_COOLDOWN "Ohlajanje" - #define STRING_EMERGENCYSTOP "EM. STOP" - #define STRING_TOUCH_TO_EXIT "Klikni kjerkoli za izhod" - #define STRING_MAINMENU "Meni" - #define STRING_WAIT_TEMP_SHUT_DOWN "Čakam, da se šoba\nohladi pod %d °C" - #define STRING_FORCE_SHUT_DOWN "Prisilni izklop" - #define STRING_SHUTTING_DOWN "Ugašam..." - #define STRING_PARAMETER_SETTING "Parametri" - #define STRING_ON "ON" - #define STRING_OFF "OFF" - #define STRING_SMART "SMART" - #define STRING_TERMINAL_ACK "Pokaži ACK v terminalu" - #define STRING_INVERT_XAXIS "Invertiraj X os" - #define STRING_INVERT_YAXIS "Invertiraj Y os" - #define STRING_INVERT_ZAXIS "Invertiraj Z os" - #define STRING_MOVE_SPEED "Hitr. pomika (X Y Z)" - #define STRING_KNOB_LED "LED enkoder gumba" - #define STRING_KNOB_LED_IDLE "Rotary Knob LED idle" - #define STRING_M0_PAUSE "Pavza (M0 ukaz)" - #define STRING_SEND_START_GCODE "Zaženi startno G-kodo" - #define STRING_SEND_END_GCODE "Zaženi končno G-kodo" - #define STRING_SEND_CANCEL_GCODE "Zaženi G-kodo preklica" - #define STRING_PERSISTENT_STATUS_INFO "Stalno prikazuj status" - #define STRING_FILE_LISTMODE "Prikaz datotek v seznamu" - #define STRING_CURRENT_SETTING "Tok driverja mot. (mA)" - #define STRING_STEPS_SETTING "Št. korakov na MM" - #define STRING_MAXFEEDRATE "Max hitr. dovajanja fil." - #define STRING_MAXACCELERATION "Max pospešek" - #define STRING_ACCELERATION "Pospešek" - #define STRING_PRINT_ACCELERATION "Pospešek tiska" - #define STRING_RETRACT_ACCELERATION "Pospešek privleka fil." - #define STRING_TRAVEL_ACCELERATION "Pospešek pomika" - #define STRING_JERK "Jerk" - #define STRING_JUNCTION_DEVIATION "Junction Deviation" - #define STRING_BUMP_SENSITIVITY "TMC občutljivost trka" - #define STRING_FWRETRACT "FW Retraction" - #define STRING_FWRECOVER "FW Retraction Recover" - #define STRING_LIN_ADVANCE "Linear Advance" - #define STRING_RESET_SETTINGS_INFO "Reset vseh nastavitev na\nprivzete vrednosti?" - #define STRING_RESET_SETTINGS_DONE "Reset vseh nastavitev\nuspešna.\nPonovno zaženi napravo." - #define STRING_INFO "Info" //Info Sign - #define STRING_LCD_BRIGHTNESS "Svetilnost LCD" - #define STRING_LCD_BRIGHTNESS_DIM "Zatemnitev LCD" - #define STRING_LCD_DIM_IDLE_TIMER "Zatemnitev po času" - #define STRING_5_SECONDS "5 sek." - #define STRING_10_SECONDS "10 sek." - #define STRING_30_SECONDS "30 sek." - #define STRING_60_SECONDS "1 min." - #define STRING_120_SECONDS "2 min." - #define STRING_300_SECONDS "5 min." - #define STRING_CUSTOM_SECONDS "Po meri" - #define STRING_SEQUENTIAL_MODE "Sequential mode" - #define STRING_ST7920_FULLSCREEN "Marlin čez cel zaslon" - #define STRING_PLR_EN "Power loss recovery" - #define STRING_SETTING_SAVE "Save settings" - #define STRING_SETTING_RESET "Reset nastavitev" - #define STRING_SETTING_RESTORE "Obnovi nastavitve" - #define STRING_EEPROM_SETTINGS "EEPROM" - #define STRING_EEPROM_SAVE_INFO "Shrani nastavitve tiskalnika\nv EEPROM?" - #define STRING_EEPROM_RESTORE_INFO "Naloži nastavitve iz\nEEPROM-a?" - #define STRING_EEPROM_RESET_INFO "Reset EEPROM to stock printer settings?" - #define STRING_RETRACT_FEEDRATE "Retract feedrate" - #define STRING_RETRACT_LENGTH "Retract length" - #define STRING_RETRACT_SWAP_LENGTH "Retract swap length" - #define STRING_RETRACT_Z_LIFT "Z lift on retraction" - #define STRING_RETRACT_AUTO "Auto Firmware Retract" - #define STRING_RECOVER_FEEDRATE "Recover feedrate" - #define STRING_SWAP_RECOVER_FEEDRATE "Swap recover feedrate" - #define STRING_RECOVER_LENGTH "Extra recover length" - #define STRING_SWAP_RECOVER_LENGTH "Extra recover swap length" - #define STRING_START_PRINT "Start tiska:\n %s?" - #define STRING_ACK_NOTIFICATION "ACK notification style" - #define STRING_LEVELING_EDGE_DISTANCE "Bed edge distance" - #define STRING_XY_UNLOCK "Disarm XY" - #define STRING_TUNING "Tuning" - #define STRING_PID "PID" - #define STRING_PID_TITLE "PID autotune" - #define STRING_PID_START_INFO "PID autotune may take\nsome time to complete.\nContinue?" - #define STRING_PID_START_INFO_2 "PID autotune in progress!" - #define STRING_PID_START_INFO_3 "Do not touch the screen until completed (green LED ON)!" - #define STRING_TUNE_EXTRUDER "Tune steps" - #define STRING_TUNE_EXT_EXTRUDE_100 "Ext. 100mm" - #define STRING_TUNE_EXT_TEMP "Extruder tuning | Heat" - #define STRING_TUNE_EXT_TEMPLOW "Desired temperature too low!\nMinimum temperature: %d C" - #define STRING_TUNE_EXT_DESIREDVAL "Temperature is not yet at the desired value" - #define STRING_TUNE_EXT_MARK120MM "Mark 120 mm on your fillament\nPress '%s' when ready\nMeasure remaining length\nafter extruding" - #define STRING_TUNE_EXT_HEATOFF "Turn the heater off?" - #define STRING_TUNE_EXT_ADJ_ESTEPS "Adjust E-Steps" - #define STRING_TUNE_EXT_ESTEPS_SAVED "New E-steps saved!\nDon't forget to\nsave it in EEPROM\nNew value: %0.2f" - #define STRING_TUNE_EXT_MEASURED "Length remaining:" - #define STRING_TUNE_EXT_OLD_ESTEP "Old e-steps: %0.2f" - #define STRING_TUNE_EXT_NEW_ESTEP "New e-steps: %0.2f" - #define STRING_CONNECTION_SETTINGS "Connection" - #define STRING_OFFSET_TOOL "Offset 2nd Nozzle" - #define STRING_HYBRID_THRESHOLD "TMC HybridThreshold" - #define STRING_NOTIFICATIONS "Notifications" - #define STRING_MESH_EDITOR "Mesh edit" - #define STRING_MESH_TUNER "Mesh tuner" - #define STRING_CASE_LIGHT "Case light" +#define STRING_LANGUAGE "Slovenski" +#define STRING_HEAT "Gretje" +#define STRING_MOVE "Pomik" +#define STRING_HOME "Domov" +#define STRING_DISABLE_STEPPERS "Disarm All" +#define STRING_PRINT "Tisk" +#define STRING_EXTRUDE "Filament" +#define STRING_FAN "Hlajenje" +#define STRING_SETTINGS "Nastavitve" +#define STRING_SCREEN_SETTINGS "Zaslon" +#define STRING_MACHINE_SETTINGS "Naprava" +#define STRING_FEATURE_SETTINGS "Funkcije" +#define STRING_SOUND "Sound" +#define STRING_TOUCH_SOUND "Touch sounds" +#define STRING_TOAST_SOUND "Toast Notifications" +#define STRING_ALERT_SOUND "Popups and Alerts" +#define STRING_PREHEATDONE_SOUND "Preheat done notification" +#define STRING_SHUT_DOWN "Izklop" +#define STRING_RGB_SETTINGS "Barva LED" +#define STRING_RGB_OFF "LED Off" +#define STRING_TERMINAL "Terminal" +#define STRING_CUSTOM "Po meri" +#define STRING_LEVELING "Niveliraj" +#define STRING_POINT_1 "Točka 1" +#define STRING_POINT_2 "Točka 2" +#define STRING_POINT_3 "Točka 3" +#define STRING_POINT_4 "Točka 4" +#define STRING_POINT_5 "Točka 5" +#define STRING_BED_LEVELING "Bed Level" +#define STRING_BL_COMPLETE "Bed Leveling Complete" +#define STRING_BL_SMART_FILL "Missing probe points\nhave been smart filled.\n \nNote: remember to save!" +#define STRING_BL_ENABLE "BL: on" +#define STRING_BL_DISABLE "BL: off" +#define STRING_ABL "ABL" +#define STRING_BBL "BBL" +#define STRING_UBL "UBL" +#define STRING_MBL "MBL" +#define STRING_MBL_SETTINGS "Mesh Bed Leveling" +#define STRING_ABL_SETTINGS "Auto Bed Leveling" +#define STRING_ABL_SETTINGS_BBL "Bilinear Bed Leveling" +#define STRING_ABL_SETTINGS_UBL "Unified Bed Leveling" +#define STRING_ABL_SETTINGS_UBL_SAVE "Save to slot" +#define STRING_ABL_SETTINGS_UBL_LOAD "Load from slot" +#define STRING_ABL_SLOT0 "Slot 0" +#define STRING_ABL_SLOT1 "Slot 1" +#define STRING_ABL_SLOT2 "Slot 2" +#define STRING_ABL_SLOT3 "Slot 3" +#define STRING_ABL_SLOT_EEPROM "Remember slot for next\nreboot? (Save EEPROM)" +#define STRING_ABL_Z "Z Fade" +#define STRING_BLTOUCH "BLTouch" +#define STRING_BLTOUCH_TEST "Test" +#define STRING_BLTOUCH_DEPLOY "Postavi" +#define STRING_BLTOUCH_STOW "Skrij" +#define STRING_BLTOUCH_REPEAT "Ponovi" +#define STRING_Z_OFFSET "Z odmik" +#define STRING_PROBE_OFFSET "Odmik sonde" +#define STRING_HOME_OFFSET "Home Offset" +#define STRING_CONFIRMATION "Are you sure?" +#define STRING_DOWN "Down" +#define STRING_UP "Up" +#define STRING_SAVE "Shrani" +#define STRING_RESTORE "Restore" +#define STRING_RESET "Reset" +#define STRING_DEFAULT "Default" +#define STRING_CLEAR "Clear" +#define STRING_NEXT "Next" +#define STRING_DISTANCE "Distance" +#define STRING_INVALID_VALUE "Invalid value(s)" +#define STRING_TIMEOUT_REACHED "Timeout reached!" +#define STRING_PROCESS_RUNNING "Process already running!" +#define STRING_PROCESS_COMPLETED "Process completed!" +#define STRING_PROCESS_ABORTED "Process aborted!" +#define STRING_INC "Več" +#define STRING_DEC "Manj" +#define STRING_NOZZLE "Šoba" +#define STRING_BED "Miza" +#define STRING_CHAMBER "Chamber" +#define STRING_START "Start" +#define STRING_STOP "Stop" +#define STRING_BACK "Nazaj" +#define STRING_PAGE_UP "Stran gor" +#define STRING_PAGE_DOWN "Stran dol" +#define STRING_PAUSE "Pavza" +#define STRING_RESUME "Nadaljuj" +#define STRING_LOAD "Naloži" +#define STRING_UNLOAD "Izvrzi" +#define STRING_SLOW_SPEED "Počasi" +#define STRING_NORMAL_SPEED "Normalo" +#define STRING_FAST_SPEED "Hitro" +#define STRING_FAN_FULL_SPEED "100% moč" +#define STRING_FAN_HALF_SPEED "50% moč" +#define STRING_ROTATE_UI "Obrni UI" +#define STRING_TOUCHSCREEN_ADJUST "Umeri" +#define STRING_MORE "Več" +#define STRING_SCREEN_INFO "Info" +#define STRING_STATUS "Info" +#define STRING_SIMULATOR_BG_COLOR "Barva ozadja Marlin simulatorja" +#define STRING_SIMULATOR_FONT_COLOR "Barva pisave Marlin simulatorja" +#define STRING_WHITE "Belo" +#define STRING_BLACK "Črno" +#define STRING_BLUE "Mordo" +#define STRING_RED "Rdeče" +#define STRING_GREEN "Zeleno" +#define STRING_CYAN "Modrozelena" +#define STRING_YELLOW "Rumena" +#define STRING_BROWN "Rjana" +#define STRING_GRAY "Siva" +#define STRING_ORANGE "Oranžna" +#define STRING_INDIGO "Indigo" +#define STRING_VIOLET "Vijolična" +#define STRING_MAGENTA "Magenta" +#define STRING_PURPLE "Temno vijolična" +#define STRING_LIME "Limeta" +#define STRING_DARKBLUE "Temno morda" +#define STRING_DARKGREEN "Temno zelena" +#define STRING_DARKGRAY "Temno siva" +#define STRING_DISCONNECT "Odklopi" +#define STRING_BAUDRATE "Baud hitr." +#define STRING_PERCENTAGE "Procent" +#define STRING_BABYSTEP "BabyStep" +#define STRING_PERCENTAGE_SPEED "Hitrost" +#define STRING_PERCENTAGE_FLOW "Pretok" +#define STRING_VALUE_ZERO "Nič" +#define STRING_1_DEGREE "1℃" +#define STRING_5_DEGREE "5℃" +#define STRING_10_DEGREE "10℃" +#define STRING_X_INC "X+" +#define STRING_Y_INC "Y+" +#define STRING_Z_INC "Z+" +#define STRING_X_DEC "X-" +#define STRING_Y_DEC "Y-" +#define STRING_Z_DEC "Z-" +#define STRING_X "X" +#define STRING_Y "Y" +#define STRING_Z "Z" +#define STRING_001_MM "0.01mm" +#define STRING_01_MM "0.1mm" +#define STRING_1_MM "1mm" +#define STRING_5_MM "5mm" +#define STRING_10_MM "10mm" +#define STRING_100_MM "100mm" +#define STRING_200_MM "200mm" +#define STRING_1_PERCENT "1%" +#define STRING_5_PERCENT "5%" +#define STRING_10_PERCENT "10%" +#define STRING_PERCENT_VALUE "%d%%" +#define STRING_READY "Pripravljen" +#define STRING_BUSY "Zaseden s procesiranjem, prosim počakaj..." +#define STRING_UNCONNECTED "Nobenega tiskalnika priključenega!" +#define STRING_DISCONNECT_INFO "Zdaj lahko upravljaš tiskalnik z računalnikom!" +#define STRING_LOADING "Nalagam..." +#define STRING_POWER_FAILED "Nadaljuj s tiskanjem?" //Question Sign +#define STRING_CONTINUE "Nadaljuj" +#define STRING_CANCEL "\u088F Prekliči" //Cancel Sign +#define STRING_ADJUST_TITLE "Kalibracija zaslona na dotik" +#define STRING_ADJUST_INFO "Pritisni na rdečo piko" +#define STRING_ADJUST_OK "Nastavitev uspešna" +#define STRING_ADJUST_FAILED "Nastavitev neuspešna, prosim poskusi ponovno" +#define STRING_WARNING "Opozorilo" //Exclamation Sign +#define STRING_STOP_PRINT "Ustavim tisk?" +#define STRING_CONFIRM "\u088E OK" //Confirm Sign +#define STRING_TFTSD "TFT SD" +#define STRING_READ_TFTSD_ERROR "Napaka branja TFT SD kartice!" +#define STRING_TFTSD_INSERTED "Kartica vstavljena!" +#define STRING_TFTSD_REMOVED "Kartica odstranjena!" +#define STRING_U_DISK "USB disk" +#define STRING_READ_U_DISK_ERROR "Napaka branja USB diska!" +#define STRING_U_DISK_INSERTED "USB disk vstavljen!" +#define STRING_U_DISK_REMOVED "USB disk odstranjen!" +#define STRING_ONBOARDSD "SKR SD" +#define STRING_READ_ONBOARDSD_ERROR "Napaka branja SKR SD kartice!" +#define STRING_FILAMENT_SENSOR "Senzor filamenta" +#define STRING_FILAMENT_RUNOUT "Ni več filamenta!" +#define STRING_PREHEAT "Predgretje" +#define STRING_PREHEAT_BOTH "Oboje" +#define STRING_IS_PAUSE "Ne morem estrudirat\nmed tiskanjem.\nPavziram tisk?" +#define STRING_AUTO_SHUT_DOWN "Samodejni izklop" +#define STRING_UNIFIEDMOVE "Vodenje" +#define STRING_UNIFIEDHEAT "Gretje" +#define STRING_COOLDOWN "Ohlajanje" +#define STRING_EMERGENCYSTOP "EM. STOP" +#define STRING_TOUCH_TO_EXIT "Klikni kjerkoli za izhod" +#define STRING_MAINMENU "Meni" +#define STRING_WAIT_TEMP_SHUT_DOWN "Čakam, da se šoba\nohladi pod %d °C" +#define STRING_FORCE_SHUT_DOWN "Prisilni izklop" +#define STRING_SHUTTING_DOWN "Ugašam..." +#define STRING_PARAMETER_SETTING "Parametri" +#define STRING_ON "ON" +#define STRING_OFF "OFF" +#define STRING_SMART "SMART" +#define STRING_TERMINAL_ACK "Pokaži ACK v terminalu" +#define STRING_INVERT_XAXIS "Invertiraj X os" +#define STRING_INVERT_YAXIS "Invertiraj Y os" +#define STRING_INVERT_ZAXIS "Invertiraj Z os" +#define STRING_MOVE_SPEED "Hitr. pomika (X Y Z)" +#define STRING_KNOB_LED "LED enkoder gumba" +#define STRING_KNOB_LED_IDLE "Rotary Knob LED idle" +#define STRING_M0_PAUSE "Pavza (M0 ukaz)" +#define STRING_SEND_START_GCODE "Zaženi startno G-kodo" +#define STRING_SEND_END_GCODE "Zaženi končno G-kodo" +#define STRING_SEND_CANCEL_GCODE "Zaženi G-kodo preklica" +#define STRING_PERSISTENT_STATUS_INFO "Stalno prikazuj status" +#define STRING_FILE_LISTMODE "Prikaz datotek v seznamu" +#define STRING_CURRENT_SETTING "Tok driverja mot. (mA)" +#define STRING_STEPS_SETTING "Št. korakov na MM" +#define STRING_MAXFEEDRATE "Max hitr. dovajanja fil." +#define STRING_MAXACCELERATION "Max pospešek" +#define STRING_ACCELERATION "Pospešek" +#define STRING_PRINT_ACCELERATION "Pospešek tiska" +#define STRING_RETRACT_ACCELERATION "Pospešek privleka fil." +#define STRING_TRAVEL_ACCELERATION "Pospešek pomika" +#define STRING_JERK "Jerk" +#define STRING_JUNCTION_DEVIATION "Junction Deviation" +#define STRING_BUMP_SENSITIVITY "TMC občutljivost trka" +#define STRING_FWRETRACT "FW Retraction" +#define STRING_FWRECOVER "FW Retraction Recover" +#define STRING_LIN_ADVANCE "Linear Advance" +#define STRING_RESET_SETTINGS_INFO "Reset vseh nastavitev na\nprivzete vrednosti?" +#define STRING_RESET_SETTINGS_DONE "Reset vseh nastavitev\nuspešna.\nPonovno zaženi napravo." +#define STRING_INFO "Info" //Info Sign +#define STRING_LCD_BRIGHTNESS "Svetilnost LCD" +#define STRING_LCD_BRIGHTNESS_DIM "Zatemnitev LCD" +#define STRING_LCD_DIM_IDLE_TIMER "Zatemnitev po času" +#define STRING_5_SECONDS "5 sek." +#define STRING_10_SECONDS "10 sek." +#define STRING_30_SECONDS "30 sek." +#define STRING_60_SECONDS "1 min." +#define STRING_120_SECONDS "2 min." +#define STRING_300_SECONDS "5 min." +#define STRING_CUSTOM_SECONDS "Po meri" +#define STRING_SEQUENTIAL_MODE "Sequential mode" +#define STRING_ST7920_FULLSCREEN "Marlin čez cel zaslon" +#define STRING_PLR_EN "Power loss recovery" +#define STRING_SETTING_SAVE "Save settings" +#define STRING_SETTING_RESET "Reset nastavitev" +#define STRING_SETTING_RESTORE "Obnovi nastavitve" +#define STRING_EEPROM_SETTINGS "EEPROM" +#define STRING_EEPROM_SAVE_INFO "Shrani nastavitve tiskalnika\nv EEPROM?" +#define STRING_EEPROM_RESTORE_INFO "Naloži nastavitve iz\nEEPROM-a?" +#define STRING_EEPROM_RESET_INFO "Reset EEPROM to stock printer settings?" +#define STRING_RETRACT_FEEDRATE "Retract feedrate" +#define STRING_RETRACT_LENGTH "Retract length" +#define STRING_RETRACT_SWAP_LENGTH "Retract swap length" +#define STRING_RETRACT_Z_LIFT "Z lift on retraction" +#define STRING_RETRACT_AUTO "Auto Firmware Retract" +#define STRING_RECOVER_FEEDRATE "Recover feedrate" +#define STRING_SWAP_RECOVER_FEEDRATE "Swap recover feedrate" +#define STRING_RECOVER_LENGTH "Extra recover length" +#define STRING_SWAP_RECOVER_LENGTH "Extra recover swap length" +#define STRING_START_PRINT "Start tiska:\n %s?" +#define STRING_ACK_NOTIFICATION "ACK notification style" +#define STRING_LEVELING_EDGE_DISTANCE "Bed edge distance" +#define STRING_XY_UNLOCK "Disarm XY" +#define STRING_TUNING "Tuning" +#define STRING_PID "PID" +#define STRING_PID_TITLE "PID autotune" +#define STRING_PID_START_INFO "PID autotune may take\nsome time to complete.\nContinue?" +#define STRING_PID_START_INFO_2 "PID autotune in progress!" +#define STRING_PID_START_INFO_3 "Do not touch the screen until completed (green LED ON)!" +#define STRING_TUNE_EXTRUDER "Tune steps" +#define STRING_TUNE_EXT_EXTRUDE_100 "Ext. 100mm" +#define STRING_TUNE_EXT_TEMP "Extruder tuning | Heat" +#define STRING_TUNE_EXT_TEMPLOW "Desired temperature too low!\nMinimum temperature: %d C" +#define STRING_TUNE_EXT_DESIREDVAL "Temperature is not yet at the desired value" +#define STRING_TUNE_EXT_MARK120MM "Mark 120 mm on your fillament\nPress '%s' when ready\nMeasure remaining length\nafter extruding" +#define STRING_TUNE_EXT_HEATOFF "Turn the heater off?" +#define STRING_TUNE_EXT_ADJ_ESTEPS "Adjust E-Steps" +#define STRING_TUNE_EXT_ESTEPS_SAVED "New E-steps saved!\nDon't forget to\nsave it in EEPROM\nNew value: %0.2f" +#define STRING_TUNE_EXT_MEASURED "Length remaining:" +#define STRING_TUNE_EXT_OLD_ESTEP "Old e-steps: %0.2f" +#define STRING_TUNE_EXT_NEW_ESTEP "New e-steps: %0.2f" +#define STRING_CONNECTION_SETTINGS "Connection" +#define STRING_OFFSET_TOOL "Offset 2nd Nozzle" +#define STRING_HYBRID_THRESHOLD "TMC HybridThreshold" +#define STRING_NOTIFICATIONS "Notifications" +#define STRING_MESH_EDITOR "Mesh edit" +#define STRING_MESH_TUNER "Mesh tuner" +#define STRING_CASE_LIGHT "Case light" diff --git a/TFT/src/User/API/Language/language_tc.h b/TFT/src/User/API/Language/language_tc.h index c4ecec4f07..06c6b55a6c 100644 --- a/TFT/src/User/API/Language/language_tc.h +++ b/TFT/src/User/API/Language/language_tc.h @@ -1,279 +1,280 @@ #pragma once - #define STRING_LANGUAGE "正體中文" - #define STRING_HEAT "加熱" - #define STRING_MOVE "移動" - #define STRING_HOME "回原點" - #define STRING_DISABLE_STEPPERS "解鎖電機" - #define STRING_PRINT "列印" - #define STRING_EXTRUDE "擠出" - #define STRING_FAN "風扇" - #define STRING_SETTINGS "設定" - #define STRING_SCREEN_SETTINGS "螢幕設定" - #define STRING_MACHINE_SETTINGS "機器設定" - #define STRING_FEATURE_SETTINGS "功能設定" - #define STRING_SOUND "聲音" - #define STRING_TOUCH_SOUND "按鈕聲音" - #define STRING_TOAST_SOUND "Toast 提示聲音" - #define STRING_ALERT_SOUND "彈窗和提示聲音" - #define STRING_SHUT_DOWN "關閉電源" - #define STRING_RGB_SETTINGS "燈光顏色" - #define STRING_RGB_OFF "關閉燈光" - #define STRING_TERMINAL "終端" - #define STRING_CUSTOM "自定義" - #define STRING_LEVELING "調平" - #define STRING_POINT_1 "第一點" - #define STRING_POINT_2 "第二點" - #define STRING_POINT_3 "第三點" - #define STRING_POINT_4 "第四點" - #define STRING_POINT_5 "第五點" - #define STRING_BED_LEVELING "Bed Level" - #define STRING_BL_COMPLETE "平臺調平完成!" - #define STRING_BL_SMART_FILL "部分點未探測,已被自動填充,需要手動保存!" - #define STRING_BL_ENABLE "BL:已開啟" - #define STRING_BL_DISABLE "BL:已關閉" - #define STRING_ABL "自動調平" - #define STRING_BBL "BBL" - #define STRING_UBL "UBL" - #define STRING_MBL "MBL" - #define STRING_MBL_SETTINGS "Mesh Bed Leveling" - #define STRING_ABL_SETTINGS "Auto Bed Leveling" - #define STRING_ABL_SETTINGS_BBL "Bilinear Bed Leveling" - #define STRING_ABL_SETTINGS_UBL "Unified Bed Leveling" - #define STRING_ABL_SETTINGS_UBL_SAVE "Save to slot" - #define STRING_ABL_SETTINGS_UBL_LOAD "Load from slot" - #define STRING_ABL_SLOT0 "Slot 0" - #define STRING_ABL_SLOT1 "Slot 1" - #define STRING_ABL_SLOT2 "Slot 2" - #define STRING_ABL_SLOT3 "Slot 3" - #define STRING_ABL_SLOT_EEPROM "Remember slot for next\nreboot? (Save EEPROM)" - #define STRING_ABL_Z "Z Fade" - #define STRING_BLTOUCH "BLTouch " - #define STRING_BLTOUCH_TEST "BLTouch檢測" - #define STRING_BLTOUCH_DEPLOY "探針彈出" - #define STRING_BLTOUCH_STOW "探針收回" - #define STRING_BLTOUCH_REPEAT "精度測試" - #define STRING_Z_OFFSET "Z軸偏移" - #define STRING_PROBE_OFFSET "探針偏移" - #define STRING_HOME_OFFSET "Home Offset" - #define STRING_CONFIRMATION "Are you sure?" - #define STRING_DOWN "降低" - #define STRING_UP "抬升" - #define STRING_SAVE "儲存設定" - #define STRING_RESTORE "恢復" - #define STRING_RESET "重設" - #define STRING_DEFAULT "默認" - #define STRING_CLEAR "Clear" - #define STRING_NEXT "下一個" - #define STRING_DISTANCE "距離" - #define STRING_INVALID_VALUE "沒有有效的條件!" - #define STRING_TIMEOUT_REACHED "已超時!" - #define STRING_PROCESS_RUNNING "正在運行,請稍後" - #define STRING_PROCESS_COMPLETED "處理已完成!" - #define STRING_PROCESS_ABORTED "處理已被中斷!" - #define STRING_INC "增加" - #define STRING_DEC "減少" - #define STRING_NOZZLE "噴頭" - #define STRING_BED "熱床" - #define STRING_CHAMBER "機殼" - #define STRING_START "開始" - #define STRING_STOP "停止" - #define STRING_BACK "返回" - #define STRING_PAGE_UP "上一頁" - #define STRING_PAGE_DOWN "下一頁" - #define STRING_PAUSE "暫停" - #define STRING_RESUME "繼續" - #define STRING_LOAD "進料" - #define STRING_UNLOAD "退料" - #define STRING_SLOW_SPEED "慢速" - #define STRING_NORMAL_SPEED "常速" - #define STRING_FAST_SPEED "快速" - #define STRING_FAN_FULL_SPEED "全速" - #define STRING_FAN_HALF_SPEED "半速" - #define STRING_ROTATE_UI "顯示方向" - #define STRING_TOUCHSCREEN_ADJUST "觸控校正" - #define STRING_MORE "更多" - #define STRING_SCREEN_INFO "關於" - #define STRING_STATUS "狀態" - #define STRING_SIMULATOR_BG_COLOR "Marlin模式背景顏色" - #define STRING_SIMULATOR_FONT_COLOR "Marlin模式字體顏色" - #define STRING_WHITE "白" - #define STRING_BLACK "黑" - #define STRING_BLUE "藍" - #define STRING_RED "紅" - #define STRING_GREEN "綠" - #define STRING_CYAN "青" - #define STRING_YELLOW "黃" - #define STRING_BROWN "棕" - #define STRING_GRAY "灰" - #define STRING_ORANGE "橘" - #define STRING_INDIGO "靛藍" - #define STRING_VIOLET "藍紫" - #define STRING_MAGENTA "桃紅" - #define STRING_PURPLE "紫" - #define STRING_LIME "萊姆" - #define STRING_DARKBLUE "暗藍" - #define STRING_DARKGREEN "暗綠" - #define STRING_DARKGRAY "深灰" - #define STRING_DISCONNECT "中斷連線" - #define STRING_BAUDRATE "串列傳輸速率" - #define STRING_PERCENTAGE "百分比" - #define STRING_BABYSTEP "Z軸微調" - #define STRING_PERCENTAGE_SPEED "速度百分比" - #define STRING_PERCENTAGE_FLOW "流量百分比" - #define STRING_VALUE_ZERO "歸零" - #define STRING_1_DEGREE "1℃" - #define STRING_5_DEGREE "5℃" - #define STRING_10_DEGREE "10℃" - #define STRING_X_INC "X+" - #define STRING_Y_INC "Y+" - #define STRING_Z_INC "Z+" - #define STRING_X_DEC "X-" - #define STRING_Y_DEC "Y-" - #define STRING_Z_DEC "Z-" - #define STRING_X "X" - #define STRING_Y "Y" - #define STRING_Z "Z" - #define STRING_001_MM "0.01mm" - #define STRING_01_MM "0.1mm" - #define STRING_1_MM "1mm" - #define STRING_5_MM "5mm" - #define STRING_10_MM "10mm" - #define STRING_100_MM "100mm" - #define STRING_200_MM "200mm" - #define STRING_1_PERCENT "1%" - #define STRING_5_PERCENT "5%" - #define STRING_10_PERCENT "10%" - #define STRING_PERCENT_VALUE "%d%%" - #define STRING_READY "已準備好" - #define STRING_BUSY "系統繁忙請稍等" - #define STRING_UNCONNECTED "尚未連線到主機板" - #define STRING_DISCONNECT_INFO "電腦控制模式" - #define STRING_LOADING "讀取中" - #define STRING_POWER_FAILED "要繼續列印嗎?" //Question Sign - #define STRING_CONTINUE "繼續" - #define STRING_CANCEL "取消" //Cancel Sign - #define STRING_ADJUST_TITLE "觸控校正" - #define STRING_ADJUST_INFO "點擊紅點" - #define STRING_ADJUST_OK "校正成功" - #define STRING_ADJUST_FAILED "校正失敗" - #define STRING_WARNING "警告" //Exclamation Sign - #define STRING_STOP_PRINT "要停止列印嗎?" - #define STRING_CONFIRM "確定" //Confirm Sign - #define STRING_TFTSD "SD卡" - #define STRING_READ_TFTSD_ERROR "SD卡讀取失敗" - #define STRING_TFTSD_INSERTED "偵測到SD卡" - #define STRING_TFTSD_REMOVED "SD卡已拔出" - #define STRING_U_DISK "隨身碟" - #define STRING_READ_U_DISK_ERROR "隨身碟讀取失敗" - #define STRING_U_DISK_INSERTED "偵測到隨身碟" - #define STRING_U_DISK_REMOVED "隨身碟已拔出" - #define STRING_ONBOARDSD "主機板插槽的SD卡" - #define STRING_READ_ONBOARDSD_ERROR "主機板插槽的SD卡讀取失敗" - #define STRING_FILAMENT_SENSOR "耗材感應器" - #define STRING_FILAMENT_RUNOUT "沒偵測到耗材" - #define STRING_PREHEAT "預熱" - #define STRING_PREHEAT_BOTH "全部" - #define STRING_IS_PAUSE "列印時無法擠出耗材,要暫停列印嗎?" - #define STRING_AUTO_SHUT_DOWN "自動關機" - #define STRING_UNIFIEDMOVE "運動" - #define STRING_UNIFIEDHEAT "溫度" - #define STRING_COOLDOWN "冷卻" - #define STRING_EMERGENCYSTOP "立刻停止" - #define STRING_TOUCH_TO_EXIT "觸控任意位置退出頁面" - #define STRING_MAINMENU "選單" - #define STRING_WAIT_TEMP_SHUT_DOWN "噴頭降溫中,直到%d ℃時自動關機" // The length of the info line is 24 characters, so the "temperatureof" will automatically be divided into "temperature of..." - #define STRING_FORCE_SHUT_DOWN "強制關機" - #define STRING_SHUTTING_DOWN "關機中" - #define STRING_PARAMETER_SETTING "參數設定" - #define STRING_ON "開啟" - #define STRING_OFF "關閉" - #define STRING_SMART "自動" - #define STRING_TERMINAL_ACK "在G-code終端顯示溫度" - #define STRING_INVERT_XAXIS "X軸反向運轉" - #define STRING_INVERT_YAXIS "Y軸反向運轉" - #define STRING_INVERT_ZAXIS "Z軸反向運轉" - #define STRING_MOVE_SPEED "移動速度(X Y Z)" - #define STRING_KNOB_LED "旋鈕LED顏色" - #define STRING_KNOB_LED_IDLE "旋鈕LED自動睡眠" - #define STRING_M0_PAUSE "M0暫停" - #define STRING_SEND_START_GCODE "執行起始G-code" - #define STRING_SEND_END_GCODE "執行結尾G-code" - #define STRING_SEND_CANCEL_GCODE "中斷執行G-code" - #define STRING_PERSISTENT_STATUS_INFO "頂部溫度訊息" - #define STRING_FILE_LISTMODE "文件預覽列表模式" - #define STRING_CURRENT_SETTING "驅動晶片電流設定 (mA)" - #define STRING_STEPS_SETTING "電機每毫米步數Steps/mm" - #define STRING_MAXFEEDRATE "最大移動速度" - #define STRING_MAXACCELERATION "最大加速度" - #define STRING_ACCELERATION "加速度" - #define STRING_PRINT_ACCELERATION "列印加速度" - #define STRING_RETRACT_ACCELERATION "回抽加速度" - #define STRING_TRAVEL_ACCELERATION "空跑加速度" - #define STRING_JERK "Jerk" - #define STRING_JUNCTION_DEVIATION "Junction Deviation" - #define STRING_BUMP_SENSITIVITY "堵料檢測靈敏度" - #define STRING_FWRETRACT "FW Retraction" - #define STRING_FWRECOVER "FW Retraction Recover" - #define STRING_LIN_ADVANCE "Linear Advance" - #define STRING_RESET_SETTINGS_INFO "所有設定都會恢復預設值,確定嗎?" - #define STRING_RESET_SETTINGS_DONE "重設成功,請重新開機" - #define STRING_INFO "提示" //Info Sign - #define STRING_LCD_BRIGHTNESS "螢幕亮度" - #define STRING_LCD_BRIGHTNESS_DIM "睡眠狀態螢幕亮度" - #define STRING_LCD_DIM_IDLE_TIMER "螢幕進入睡眠時間" - #define STRING_5_SECONDS "5秒." - #define STRING_10_SECONDS "10秒." - #define STRING_30_SECONDS "30秒." - #define STRING_60_SECONDS "1分鐘" - #define STRING_120_SECONDS "2分鐘" - #define STRING_300_SECONDS "5分鐘" - #define STRING_CUSTOM_SECONDS "自訂" - #define STRING_SEQUENTIAL_MODE "Sequential mode" - #define STRING_ST7920_FULLSCREEN "全螢幕Marlin模式" - #define STRING_PLR_EN "断电续打" - #define STRING_SETTING_SAVE "保存设置" - #define STRING_SETTING_RESET "重置设置" - #define STRING_SETTING_RESTORE "保存设置" - #define STRING_EEPROM_SETTINGS "EEPROM" - #define STRING_EEPROM_SAVE_INFO "是否保存打印机设置到EEPROM?" - #define STRING_EEPROM_RESTORE_INFO "是否从EEPROM加载设置?" - #define STRING_EEPROM_RESET_INFO "重置EEPROM到出厂设置?" - #define STRING_RETRACT_FEEDRATE "FW回抽速度" - #define STRING_RETRACT_LENGTH "FW回抽长度" - #define STRING_RETRACT_SWAP_LENGTH "换料时回抽的长度" - #define STRING_RETRACT_Z_LIFT "回抽时Z轴抬升的高度" - #define STRING_RETRACT_AUTO "FW自动回抽" - #define STRING_RECOVER_FEEDRATE "FW挤出速度" - #define STRING_SWAP_RECOVER_FEEDRATE "换料时挤出的速度" - #define STRING_RECOVER_LENGTH "额外挤出的长度" - #define STRING_SWAP_RECOVER_LENGTH "换料时额外挤出的长度" - #define STRING_START_PRINT "是否开始打印:\n %s?" - #define STRING_ACK_NOTIFICATION "ACK 弹窗类型" - #define STRING_LEVELING_EDGE_DISTANCE "手动调平边沿距离" - #define STRING_XY_UNLOCK "解锁XY" - #define STRING_TUNING "调整" - #define STRING_PID "PID" - #define STRING_PID_TITLE "PID自动整定" - #define STRING_PID_START_INFO "开始PID自动整定,需要几分钟来完成,是否继续?" - #define STRING_PID_START_INFO_2 "PID 正在自动整定中!" - #define STRING_PID_START_INFO_3 "不要操作触控屏直到整定完成!" - #define STRING_TUNE_EXTRUDER "Tune steps" - #define STRING_TUNE_EXT_EXTRUDE_100 "挤出100mm" - #define STRING_TUNE_EXT_TEMP "Extruder tuning | Heat" - #define STRING_TUNE_EXT_TEMPLOW "Desired temperature too low!\nMinimum temperature: %d C" - #define STRING_TUNE_EXT_DESIREDVAL "Temperature is not yet at the desired value" - #define STRING_TUNE_EXT_MARK120MM "Mark 120 mm on your fillament\nPress '%s' when ready\nMeasure remaining length\nafter extruding" - #define STRING_TUNE_EXT_HEATOFF "Turn the heater off?" - #define STRING_TUNE_EXT_ADJ_ESTEPS "Adjust E-Steps" - #define STRING_TUNE_EXT_ESTEPS_SAVED "New E-steps saved!\nDon't forget to\nsave it in EEPROM\nNew value: %0.2f" - #define STRING_TUNE_EXT_MEASURED "Length remaining:" - #define STRING_TUNE_EXT_OLD_ESTEP "Old e-steps: %0.2f" - #define STRING_TUNE_EXT_NEW_ESTEP "New e-steps: %0.2f" - #define STRING_CONNECTION_SETTINGS "连接" - #define STRING_OFFSET_TOOL "Offset 2nd Nozzle" - #define STRING_HYBRID_THRESHOLD "TMC HybridThreshold" - #define STRING_NOTIFICATIONS "Notifications" - #define STRING_MESH_EDITOR "Mesh edit" - #define STRING_MESH_TUNER "Mesh tuner" - #define STRING_CASE_LIGHT "Case light" +#define STRING_LANGUAGE "正體中文" +#define STRING_HEAT "加熱" +#define STRING_MOVE "移動" +#define STRING_HOME "回原點" +#define STRING_DISABLE_STEPPERS "解鎖電機" +#define STRING_PRINT "列印" +#define STRING_EXTRUDE "擠出" +#define STRING_FAN "風扇" +#define STRING_SETTINGS "設定" +#define STRING_SCREEN_SETTINGS "螢幕設定" +#define STRING_MACHINE_SETTINGS "機器設定" +#define STRING_FEATURE_SETTINGS "功能設定" +#define STRING_SOUND "聲音" +#define STRING_TOUCH_SOUND "按鈕聲音" +#define STRING_TOAST_SOUND "Toast 提示聲音" +#define STRING_ALERT_SOUND "彈窗和提示聲音" +#define STRING_PREHEATDONE_SOUND "Preheat done notification" +#define STRING_SHUT_DOWN "關閉電源" +#define STRING_RGB_SETTINGS "燈光顏色" +#define STRING_RGB_OFF "關閉燈光" +#define STRING_TERMINAL "終端" +#define STRING_CUSTOM "自定義" +#define STRING_LEVELING "調平" +#define STRING_POINT_1 "第一點" +#define STRING_POINT_2 "第二點" +#define STRING_POINT_3 "第三點" +#define STRING_POINT_4 "第四點" +#define STRING_POINT_5 "第五點" +#define STRING_BED_LEVELING "Bed Level" +#define STRING_BL_COMPLETE "平臺調平完成!" +#define STRING_BL_SMART_FILL "部分點未探測,已被自動填充,需要手動保存!" +#define STRING_BL_ENABLE "BL:已開啟" +#define STRING_BL_DISABLE "BL:已關閉" +#define STRING_ABL "自動調平" +#define STRING_BBL "BBL" +#define STRING_UBL "UBL" +#define STRING_MBL "MBL" +#define STRING_MBL_SETTINGS "Mesh Bed Leveling" +#define STRING_ABL_SETTINGS "Auto Bed Leveling" +#define STRING_ABL_SETTINGS_BBL "Bilinear Bed Leveling" +#define STRING_ABL_SETTINGS_UBL "Unified Bed Leveling" +#define STRING_ABL_SETTINGS_UBL_SAVE "Save to slot" +#define STRING_ABL_SETTINGS_UBL_LOAD "Load from slot" +#define STRING_ABL_SLOT0 "Slot 0" +#define STRING_ABL_SLOT1 "Slot 1" +#define STRING_ABL_SLOT2 "Slot 2" +#define STRING_ABL_SLOT3 "Slot 3" +#define STRING_ABL_SLOT_EEPROM "Remember slot for next\nreboot? (Save EEPROM)" +#define STRING_ABL_Z "Z Fade" +#define STRING_BLTOUCH "BLTouch " +#define STRING_BLTOUCH_TEST "BLTouch檢測" +#define STRING_BLTOUCH_DEPLOY "探針彈出" +#define STRING_BLTOUCH_STOW "探針收回" +#define STRING_BLTOUCH_REPEAT "精度測試" +#define STRING_Z_OFFSET "Z軸偏移" +#define STRING_PROBE_OFFSET "探針偏移" +#define STRING_HOME_OFFSET "Home Offset" +#define STRING_CONFIRMATION "Are you sure?" +#define STRING_DOWN "降低" +#define STRING_UP "抬升" +#define STRING_SAVE "儲存設定" +#define STRING_RESTORE "恢復" +#define STRING_RESET "重設" +#define STRING_DEFAULT "默認" +#define STRING_CLEAR "Clear" +#define STRING_NEXT "下一個" +#define STRING_DISTANCE "距離" +#define STRING_INVALID_VALUE "沒有有效的條件!" +#define STRING_TIMEOUT_REACHED "已超時!" +#define STRING_PROCESS_RUNNING "正在運行,請稍後" +#define STRING_PROCESS_COMPLETED "處理已完成!" +#define STRING_PROCESS_ABORTED "處理已被中斷!" +#define STRING_INC "增加" +#define STRING_DEC "減少" +#define STRING_NOZZLE "噴頭" +#define STRING_BED "熱床" +#define STRING_CHAMBER "機殼" +#define STRING_START "開始" +#define STRING_STOP "停止" +#define STRING_BACK "返回" +#define STRING_PAGE_UP "上一頁" +#define STRING_PAGE_DOWN "下一頁" +#define STRING_PAUSE "暫停" +#define STRING_RESUME "繼續" +#define STRING_LOAD "進料" +#define STRING_UNLOAD "退料" +#define STRING_SLOW_SPEED "慢速" +#define STRING_NORMAL_SPEED "常速" +#define STRING_FAST_SPEED "快速" +#define STRING_FAN_FULL_SPEED "全速" +#define STRING_FAN_HALF_SPEED "半速" +#define STRING_ROTATE_UI "顯示方向" +#define STRING_TOUCHSCREEN_ADJUST "觸控校正" +#define STRING_MORE "更多" +#define STRING_SCREEN_INFO "關於" +#define STRING_STATUS "狀態" +#define STRING_SIMULATOR_BG_COLOR "Marlin模式背景顏色" +#define STRING_SIMULATOR_FONT_COLOR "Marlin模式字體顏色" +#define STRING_WHITE "白" +#define STRING_BLACK "黑" +#define STRING_BLUE "藍" +#define STRING_RED "紅" +#define STRING_GREEN "綠" +#define STRING_CYAN "青" +#define STRING_YELLOW "黃" +#define STRING_BROWN "棕" +#define STRING_GRAY "灰" +#define STRING_ORANGE "橘" +#define STRING_INDIGO "靛藍" +#define STRING_VIOLET "藍紫" +#define STRING_MAGENTA "桃紅" +#define STRING_PURPLE "紫" +#define STRING_LIME "萊姆" +#define STRING_DARKBLUE "暗藍" +#define STRING_DARKGREEN "暗綠" +#define STRING_DARKGRAY "深灰" +#define STRING_DISCONNECT "中斷連線" +#define STRING_BAUDRATE "串列傳輸速率" +#define STRING_PERCENTAGE "百分比" +#define STRING_BABYSTEP "Z軸微調" +#define STRING_PERCENTAGE_SPEED "速度百分比" +#define STRING_PERCENTAGE_FLOW "流量百分比" +#define STRING_VALUE_ZERO "歸零" +#define STRING_1_DEGREE "1℃" +#define STRING_5_DEGREE "5℃" +#define STRING_10_DEGREE "10℃" +#define STRING_X_INC "X+" +#define STRING_Y_INC "Y+" +#define STRING_Z_INC "Z+" +#define STRING_X_DEC "X-" +#define STRING_Y_DEC "Y-" +#define STRING_Z_DEC "Z-" +#define STRING_X "X" +#define STRING_Y "Y" +#define STRING_Z "Z" +#define STRING_001_MM "0.01mm" +#define STRING_01_MM "0.1mm" +#define STRING_1_MM "1mm" +#define STRING_5_MM "5mm" +#define STRING_10_MM "10mm" +#define STRING_100_MM "100mm" +#define STRING_200_MM "200mm" +#define STRING_1_PERCENT "1%" +#define STRING_5_PERCENT "5%" +#define STRING_10_PERCENT "10%" +#define STRING_PERCENT_VALUE "%d%%" +#define STRING_READY "已準備好" +#define STRING_BUSY "系統繁忙請稍等" +#define STRING_UNCONNECTED "尚未連線到主機板" +#define STRING_DISCONNECT_INFO "電腦控制模式" +#define STRING_LOADING "讀取中" +#define STRING_POWER_FAILED "要繼續列印嗎?" //Question Sign +#define STRING_CONTINUE "繼續" +#define STRING_CANCEL "取消" //Cancel Sign +#define STRING_ADJUST_TITLE "觸控校正" +#define STRING_ADJUST_INFO "點擊紅點" +#define STRING_ADJUST_OK "校正成功" +#define STRING_ADJUST_FAILED "校正失敗" +#define STRING_WARNING "警告" //Exclamation Sign +#define STRING_STOP_PRINT "要停止列印嗎?" +#define STRING_CONFIRM "確定" //Confirm Sign +#define STRING_TFTSD "SD卡" +#define STRING_READ_TFTSD_ERROR "SD卡讀取失敗" +#define STRING_TFTSD_INSERTED "偵測到SD卡" +#define STRING_TFTSD_REMOVED "SD卡已拔出" +#define STRING_U_DISK "隨身碟" +#define STRING_READ_U_DISK_ERROR "隨身碟讀取失敗" +#define STRING_U_DISK_INSERTED "偵測到隨身碟" +#define STRING_U_DISK_REMOVED "隨身碟已拔出" +#define STRING_ONBOARDSD "主機板插槽的SD卡" +#define STRING_READ_ONBOARDSD_ERROR "主機板插槽的SD卡讀取失敗" +#define STRING_FILAMENT_SENSOR "耗材感應器" +#define STRING_FILAMENT_RUNOUT "沒偵測到耗材" +#define STRING_PREHEAT "預熱" +#define STRING_PREHEAT_BOTH "全部" +#define STRING_IS_PAUSE "列印時無法擠出耗材,要暫停列印嗎?" +#define STRING_AUTO_SHUT_DOWN "自動關機" +#define STRING_UNIFIEDMOVE "運動" +#define STRING_UNIFIEDHEAT "溫度" +#define STRING_COOLDOWN "冷卻" +#define STRING_EMERGENCYSTOP "立刻停止" +#define STRING_TOUCH_TO_EXIT "觸控任意位置退出頁面" +#define STRING_MAINMENU "選單" +#define STRING_WAIT_TEMP_SHUT_DOWN "噴頭降溫中,直到%d ℃時自動關機" // The length of the info line is 24 characters, so the "temperatureof" will automatically be divided into "temperature of..." +#define STRING_FORCE_SHUT_DOWN "強制關機" +#define STRING_SHUTTING_DOWN "關機中" +#define STRING_PARAMETER_SETTING "參數設定" +#define STRING_ON "開啟" +#define STRING_OFF "關閉" +#define STRING_SMART "自動" +#define STRING_TERMINAL_ACK "在G-code終端顯示溫度" +#define STRING_INVERT_XAXIS "X軸反向運轉" +#define STRING_INVERT_YAXIS "Y軸反向運轉" +#define STRING_INVERT_ZAXIS "Z軸反向運轉" +#define STRING_MOVE_SPEED "移動速度(X Y Z)" +#define STRING_KNOB_LED "旋鈕LED顏色" +#define STRING_KNOB_LED_IDLE "旋鈕LED自動睡眠" +#define STRING_M0_PAUSE "M0暫停" +#define STRING_SEND_START_GCODE "執行起始G-code" +#define STRING_SEND_END_GCODE "執行結尾G-code" +#define STRING_SEND_CANCEL_GCODE "中斷執行G-code" +#define STRING_PERSISTENT_STATUS_INFO "頂部溫度訊息" +#define STRING_FILE_LISTMODE "文件預覽列表模式" +#define STRING_CURRENT_SETTING "驅動晶片電流設定 (mA)" +#define STRING_STEPS_SETTING "電機每毫米步數Steps/mm" +#define STRING_MAXFEEDRATE "最大移動速度" +#define STRING_MAXACCELERATION "最大加速度" +#define STRING_ACCELERATION "加速度" +#define STRING_PRINT_ACCELERATION "列印加速度" +#define STRING_RETRACT_ACCELERATION "回抽加速度" +#define STRING_TRAVEL_ACCELERATION "空跑加速度" +#define STRING_JERK "Jerk" +#define STRING_JUNCTION_DEVIATION "Junction Deviation" +#define STRING_BUMP_SENSITIVITY "堵料檢測靈敏度" +#define STRING_FWRETRACT "FW Retraction" +#define STRING_FWRECOVER "FW Retraction Recover" +#define STRING_LIN_ADVANCE "Linear Advance" +#define STRING_RESET_SETTINGS_INFO "所有設定都會恢復預設值,確定嗎?" +#define STRING_RESET_SETTINGS_DONE "重設成功,請重新開機" +#define STRING_INFO "提示" //Info Sign +#define STRING_LCD_BRIGHTNESS "螢幕亮度" +#define STRING_LCD_BRIGHTNESS_DIM "睡眠狀態螢幕亮度" +#define STRING_LCD_DIM_IDLE_TIMER "螢幕進入睡眠時間" +#define STRING_5_SECONDS "5秒." +#define STRING_10_SECONDS "10秒." +#define STRING_30_SECONDS "30秒." +#define STRING_60_SECONDS "1分鐘" +#define STRING_120_SECONDS "2分鐘" +#define STRING_300_SECONDS "5分鐘" +#define STRING_CUSTOM_SECONDS "自訂" +#define STRING_SEQUENTIAL_MODE "Sequential mode" +#define STRING_ST7920_FULLSCREEN "全螢幕Marlin模式" +#define STRING_PLR_EN "断电续打" +#define STRING_SETTING_SAVE "保存设置" +#define STRING_SETTING_RESET "重置设置" +#define STRING_SETTING_RESTORE "保存设置" +#define STRING_EEPROM_SETTINGS "EEPROM" +#define STRING_EEPROM_SAVE_INFO "是否保存打印机设置到EEPROM?" +#define STRING_EEPROM_RESTORE_INFO "是否从EEPROM加载设置?" +#define STRING_EEPROM_RESET_INFO "重置EEPROM到出厂设置?" +#define STRING_RETRACT_FEEDRATE "FW回抽速度" +#define STRING_RETRACT_LENGTH "FW回抽长度" +#define STRING_RETRACT_SWAP_LENGTH "换料时回抽的长度" +#define STRING_RETRACT_Z_LIFT "回抽时Z轴抬升的高度" +#define STRING_RETRACT_AUTO "FW自动回抽" +#define STRING_RECOVER_FEEDRATE "FW挤出速度" +#define STRING_SWAP_RECOVER_FEEDRATE "换料时挤出的速度" +#define STRING_RECOVER_LENGTH "额外挤出的长度" +#define STRING_SWAP_RECOVER_LENGTH "换料时额外挤出的长度" +#define STRING_START_PRINT "是否开始打印:\n %s?" +#define STRING_ACK_NOTIFICATION "ACK 弹窗类型" +#define STRING_LEVELING_EDGE_DISTANCE "手动调平边沿距离" +#define STRING_XY_UNLOCK "解锁XY" +#define STRING_TUNING "调整" +#define STRING_PID "PID" +#define STRING_PID_TITLE "PID自动整定" +#define STRING_PID_START_INFO "开始PID自动整定,需要几分钟来完成,是否继续?" +#define STRING_PID_START_INFO_2 "PID 正在自动整定中!" +#define STRING_PID_START_INFO_3 "不要操作触控屏直到整定完成!" +#define STRING_TUNE_EXTRUDER "Tune steps" +#define STRING_TUNE_EXT_EXTRUDE_100 "挤出100mm" +#define STRING_TUNE_EXT_TEMP "Extruder tuning | Heat" +#define STRING_TUNE_EXT_TEMPLOW "Desired temperature too low!\nMinimum temperature: %d C" +#define STRING_TUNE_EXT_DESIREDVAL "Temperature is not yet at the desired value" +#define STRING_TUNE_EXT_MARK120MM "Mark 120 mm on your fillament\nPress '%s' when ready\nMeasure remaining length\nafter extruding" +#define STRING_TUNE_EXT_HEATOFF "Turn the heater off?" +#define STRING_TUNE_EXT_ADJ_ESTEPS "Adjust E-Steps" +#define STRING_TUNE_EXT_ESTEPS_SAVED "New E-steps saved!\nDon't forget to\nsave it in EEPROM\nNew value: %0.2f" +#define STRING_TUNE_EXT_MEASURED "Length remaining:" +#define STRING_TUNE_EXT_OLD_ESTEP "Old e-steps: %0.2f" +#define STRING_TUNE_EXT_NEW_ESTEP "New e-steps: %0.2f" +#define STRING_CONNECTION_SETTINGS "连接" +#define STRING_OFFSET_TOOL "Offset 2nd Nozzle" +#define STRING_HYBRID_THRESHOLD "TMC HybridThreshold" +#define STRING_NOTIFICATIONS "Notifications" +#define STRING_MESH_EDITOR "Mesh edit" +#define STRING_MESH_TUNER "Mesh tuner" +#define STRING_CASE_LIGHT "Case light" diff --git a/TFT/src/User/API/Language/language_tr.h b/TFT/src/User/API/Language/language_tr.h index 0ea6f747c5..c48ced57e0 100644 --- a/TFT/src/User/API/Language/language_tr.h +++ b/TFT/src/User/API/Language/language_tr.h @@ -1,279 +1,280 @@ #pragma once - #define STRING_LANGUAGE "Türkçe" - #define STRING_HEAT "Isıt" - #define STRING_MOVE "Hareket" - #define STRING_HOME "Sıfırla" - #define STRING_DISABLE_STEPPERS "Disarm All" - #define STRING_PRINT "Yazdır" - #define STRING_EXTRUDE "Filament" - #define STRING_FAN "Fan" - #define STRING_SETTINGS "Ayarlar" - #define STRING_SCREEN_SETTINGS "Ekran" - #define STRING_MACHINE_SETTINGS "Makine" - #define STRING_FEATURE_SETTINGS "Özellik" - #define STRING_SOUND "Sound" - #define STRING_TOUCH_SOUND "Touch sounds" - #define STRING_TOAST_SOUND "Toast Notifications" - #define STRING_ALERT_SOUND "Popups and Alerts" - #define STRING_SHUT_DOWN "Kapat" - #define STRING_RGB_SETTINGS "LED Rengi" - #define STRING_RGB_OFF "LED'i Kapat" - #define STRING_TERMINAL "Terminal" - #define STRING_CUSTOM "Diğer" - #define STRING_LEVELING "Kalibrasyon" - #define STRING_POINT_1 "1.Nokta" - #define STRING_POINT_2 "2.Nokta" - #define STRING_POINT_3 "3.Nokta" - #define STRING_POINT_4 "4.Nokta" - #define STRING_POINT_5 "5.Nokta" - #define STRING_BED_LEVELING "Bed Level" - #define STRING_BL_COMPLETE "Bed Leveling Complete" - #define STRING_BL_SMART_FILL "Missing probe points\nhave been smart filled.\n \nNote: remember to save!" - #define STRING_BL_ENABLE "BL: on" - #define STRING_BL_DISABLE "BL: off" - #define STRING_ABL "ABL" - #define STRING_BBL "BBL" - #define STRING_UBL "UBL" - #define STRING_MBL "MBL" - #define STRING_MBL_SETTINGS "Mesh Bed Leveling" - #define STRING_ABL_SETTINGS "Auto Bed Leveling" - #define STRING_ABL_SETTINGS_BBL "Bilinear Bed Leveling" - #define STRING_ABL_SETTINGS_UBL "Unified Bed Leveling" - #define STRING_ABL_SETTINGS_UBL_SAVE "Save to slot" - #define STRING_ABL_SETTINGS_UBL_LOAD "Load from slot" - #define STRING_ABL_SLOT0 "Slot 0" - #define STRING_ABL_SLOT1 "Slot 1" - #define STRING_ABL_SLOT2 "Slot 2" - #define STRING_ABL_SLOT3 "Slot 3" - #define STRING_ABL_SLOT_EEPROM "Remember slot for next\nreboot? (Save EEPROM)" - #define STRING_ABL_Z "Z Fade" - #define STRING_BLTOUCH "BLTouch" - #define STRING_BLTOUCH_TEST "Test" - #define STRING_BLTOUCH_DEPLOY "Deploy" - #define STRING_BLTOUCH_STOW "Stow" - #define STRING_BLTOUCH_REPEAT "Repeat" - #define STRING_Z_OFFSET "Z Offset" - #define STRING_PROBE_OFFSET "Probe Offset" - #define STRING_HOME_OFFSET "Home Offset" - #define STRING_CONFIRMATION "Are you sure?" - #define STRING_DOWN "Down" - #define STRING_UP "Up" - #define STRING_SAVE "Kaydet" - #define STRING_RESTORE "Restore" - #define STRING_RESET "Sıfırla" - #define STRING_DEFAULT "Default" - #define STRING_CLEAR "Clear" - #define STRING_NEXT "Next" - #define STRING_DISTANCE "Distance" - #define STRING_INVALID_VALUE "Invalid value(s)" - #define STRING_TIMEOUT_REACHED "Timeout reached!" - #define STRING_PROCESS_RUNNING "Process already running!" - #define STRING_PROCESS_COMPLETED "Process completed!" - #define STRING_PROCESS_ABORTED "Process aborted!" - #define STRING_INC "Arttır" - #define STRING_DEC "Azalt" - #define STRING_NOZZLE "Nozül" - #define STRING_BED "Tabla" - #define STRING_CHAMBER "Chamber" - #define STRING_START "Start" - #define STRING_STOP "Durdur" - #define STRING_BACK "Geri" - #define STRING_PAGE_UP "Yukarı" - #define STRING_PAGE_DOWN "Aşağı" - #define STRING_PAUSE "Duraklat" - #define STRING_RESUME "Devam" - #define STRING_LOAD "Yükle" - #define STRING_UNLOAD "Çıkar" - #define STRING_SLOW_SPEED "Yavaş" - #define STRING_NORMAL_SPEED "Normal" - #define STRING_FAST_SPEED "Hızlı" - #define STRING_FAN_FULL_SPEED "Tam" - #define STRING_FAN_HALF_SPEED "Yarım" - #define STRING_ROTATE_UI "Döndür" - #define STRING_TOUCHSCREEN_ADJUST "Kalibre" - #define STRING_MORE "Daha" - #define STRING_SCREEN_INFO "Bilgi" - #define STRING_STATUS "Bilgi" - #define STRING_SIMULATOR_BG_COLOR "Marlin simulator background color" - #define STRING_SIMULATOR_FONT_COLOR "Marlin simulator font color" - #define STRING_WHITE "Beyaz" - #define STRING_BLACK "Siyah" - #define STRING_BLUE "Mavi" - #define STRING_RED "Kırmızı" - #define STRING_GREEN "Yeşil" - #define STRING_CYAN "Camgöbeği" - #define STRING_YELLOW "Sarı" - #define STRING_BROWN "Kahverengi" - #define STRING_GRAY "Gri" - #define STRING_ORANGE "Turuncu" - #define STRING_INDIGO "Çivit Mavisi" - #define STRING_VIOLET "Menekşe" - #define STRING_MAGENTA "Eflatun" - #define STRING_PURPLE "Mor" - #define STRING_LIME "Çim Rengi" - #define STRING_DARKBLUE "Koyu Mavi" - #define STRING_DARKGREEN "Koyu Yeşil" - #define STRING_DARKGRAY "Koyu Gri" - #define STRING_DISCONNECT "Bağlt. Kes" - #define STRING_BAUDRATE "BaudRate" - #define STRING_PERCENTAGE "Yüzde" - #define STRING_BABYSTEP "BabyStep" - #define STRING_PERCENTAGE_SPEED "Hız" - #define STRING_PERCENTAGE_FLOW "Akış" - #define STRING_VALUE_ZERO "Sıfır" - #define STRING_1_DEGREE "1°C" - #define STRING_5_DEGREE "5°C" - #define STRING_10_DEGREE "10°C" - #define STRING_X_INC "X+" - #define STRING_Y_INC "Y+" - #define STRING_Z_INC "Z+" - #define STRING_X_DEC "X-" - #define STRING_Y_DEC "Y-" - #define STRING_Z_DEC "Z-" - #define STRING_X "X" - #define STRING_Y "Y" - #define STRING_Z "Z" - #define STRING_001_MM "0.01mm" - #define STRING_01_MM "0.1mm" - #define STRING_1_MM "1mm" - #define STRING_5_MM "5mm" - #define STRING_10_MM "10mm" - #define STRING_100_MM "100mm" - #define STRING_200_MM "200mm" - #define STRING_1_PERCENT "1%" - #define STRING_5_PERCENT "5%" - #define STRING_10_PERCENT "10%" - #define STRING_PERCENT_VALUE "%d%" - #define STRING_READY "Hazır" - #define STRING_BUSY "İşlem devam ediyor, lütfen bekleyiniz..." - #define STRING_UNCONNECTED "Yazıcı bağlı değil!" - #define STRING_DISCONNECT_INFO "Artık yazıcıyı\nbilgisayarınızdan kontrol\nedebilirsiniz!" - #define STRING_LOADING "Yükleniyor..." - #define STRING_POWER_FAILED "Yazdırmaya devam edilsin mi?" //Question Sign - #define STRING_CONTINUE "Devam et" - #define STRING_CANCEL "\u088F İptal" //Cancel Sign - #define STRING_ADJUST_TITLE "Dokunmatik Ekran Kalibrasyonu" - #define STRING_ADJUST_INFO "Lütfen kırmızı noktaya\ntıklayın" - #define STRING_ADJUST_OK "Kalibrasyon başarılı." - #define STRING_ADJUST_FAILED "Kalibrasyon başarısız,\nlütfen tekrar deneyiniz." - #define STRING_WARNING "Uyarı" //Exclamation Sign - #define STRING_STOP_PRINT "Baskı durdurulsun mu?" - #define STRING_CONFIRM "\u088E Tamam" //Confirm Sign - #define STRING_TFTSD "SD Kart" - #define STRING_READ_TFTSD_ERROR "SD kart okunamadı!" - #define STRING_TFTSD_INSERTED "SD Kart Takıldı!" - #define STRING_TFTSD_REMOVED "SD Kart Çıkarıldı!" - #define STRING_U_DISK "USB Disk" - #define STRING_READ_U_DISK_ERROR "USB disk okunamadı!" - #define STRING_U_DISK_INSERTED "USB Disk Takıldı!" - #define STRING_U_DISK_REMOVED "USB Disk Çıkarıldı!" - #define STRING_ONBOARDSD "Dahili SD" - #define STRING_READ_ONBOARDSD_ERROR "Dahili SD Okunamadı!" - #define STRING_FILAMENT_SENSOR "Filament sensörü" - #define STRING_FILAMENT_RUNOUT "Filament Bitti!" - #define STRING_PREHEAT "Ön Isıtma" - #define STRING_PREHEAT_BOTH "Birlikte" - #define STRING_IS_PAUSE "Ekstrüde edilemiyor\nyazdırırken,\nNbaskı duraklatılsın mı?" - #define STRING_AUTO_SHUT_DOWN "Auto Power" - #define STRING_UNIFIEDMOVE "Hareket" - #define STRING_UNIFIEDHEAT "Isıtma/Fan" - #define STRING_COOLDOWN "Soğutma" - #define STRING_EMERGENCYSTOP "AcilDurdur" - #define STRING_TOUCH_TO_EXIT "Çıkmak için herhangi bir yere dokunun" - #define STRING_MAINMENU "Menü" - #define STRING_WAIT_TEMP_SHUT_DOWN "Wait for the hotend\ntemperature to be\nlower than %d℃" // The length of the info line is 24 characters, so the "temperatureof" will automatically be divided into "temperature of..." - #define STRING_FORCE_SHUT_DOWN "Zorlamak" - #define STRING_SHUTTING_DOWN "Kapatılıyor..." - #define STRING_PARAMETER_SETTING "Parametre Ayarları" - #define STRING_ON "Açık" - #define STRING_OFF "Kapalı" - #define STRING_SMART "SMART" - #define STRING_TERMINAL_ACK "Show ACK in Terminal" - #define STRING_INVERT_XAXIS "X Eksenini Tersine Çevir" - #define STRING_INVERT_YAXIS "Y Eksenini Tersine Çevir" - #define STRING_INVERT_ZAXIS "Z Eksenini Tersine Çevir" - #define STRING_MOVE_SPEED "Hareket Hızı(X Y Z)" - #define STRING_KNOB_LED "Döner Düğme LED" - #define STRING_KNOB_LED_IDLE "Rotary Knob LED idle" - #define STRING_M0_PAUSE "Paused by M0 command" - #define STRING_SEND_START_GCODE "Start Gcode before print" - #define STRING_SEND_END_GCODE "End Gcode after print" - #define STRING_SEND_CANCEL_GCODE "Gcode'u iptal et" - #define STRING_PERSISTENT_STATUS_INFO "Dosyaları Liste Şeklinde" - #define STRING_FILE_LISTMODE "Dosya Görüntüleyici Liste Modu" - #define STRING_CURRENT_SETTING "Sürücü Akımı (mA)" - #define STRING_STEPS_SETTING "MM başına adım sayısı" - #define STRING_MAXFEEDRATE "Maks. İlerleme Hızı" - #define STRING_MAXACCELERATION "Maks. İvmelenme" - #define STRING_ACCELERATION "İvmelenme" - #define STRING_PRINT_ACCELERATION "Baskı İvmelenmesi" - #define STRING_RETRACT_ACCELERATION "Geriçekme İvmelenmesi" - #define STRING_TRAVEL_ACCELERATION "Gezinti İvmelenmesi" - #define STRING_JERK "Jerk" - #define STRING_JUNCTION_DEVIATION "Junction Deviation" - #define STRING_BUMP_SENSITIVITY "TMC çarpma hassasiyeti" - #define STRING_FWRETRACT "FW Retraction" - #define STRING_FWRECOVER "FW Retraction Recover" - #define STRING_LIN_ADVANCE "Linear Advance" - #define STRING_RESET_SETTINGS_INFO "Tüm ayarlar varsayılana\nsıfırlanacak değerler.\nDevam edilsin mi?" - #define STRING_RESET_SETTINGS_DONE "Tüm ayarları başarıyla\nsıfırlama tamamlandı. Tam\nolarak etkili olması için\nlütfen cihazı yeniden\nbaşlatın." - #define STRING_INFO "Bilgi" //Info Sign - #define STRING_LCD_BRIGHTNESS "Ekran Parlaklığı" - #define STRING_LCD_BRIGHTNESS_DIM "Ekran Parlaklığı Kısılma Oranı" - #define STRING_LCD_DIM_IDLE_TIMER "Ekran Parlaklığı Kısılma Süresi" - #define STRING_5_SECONDS "5 Sn." - #define STRING_10_SECONDS "10 Sn." - #define STRING_30_SECONDS "30 Sn." - #define STRING_60_SECONDS "1 Dak." - #define STRING_120_SECONDS "2 Dak." - #define STRING_300_SECONDS "5 Dak." - #define STRING_CUSTOM_SECONDS "Kişisel" - #define STRING_SEQUENTIAL_MODE "Sequential mode" - #define STRING_ST7920_FULLSCREEN "Marlin mode in fullscreen" - #define STRING_PLR_EN "Power loss recovery" - #define STRING_SETTING_SAVE "Save settings" - #define STRING_SETTING_RESET "Reset default settings" - #define STRING_SETTING_RESTORE "Restore settings" - #define STRING_EEPROM_SETTINGS "EEPROM" - #define STRING_EEPROM_SAVE_INFO "Save printer settings\nto EEPROM?" - #define STRING_EEPROM_RESTORE_INFO "Reload settings from\nEEPROM?" - #define STRING_EEPROM_RESET_INFO "Reset EEPROM to stock printer settings?" - #define STRING_RETRACT_FEEDRATE "Retract feedrate" - #define STRING_RETRACT_LENGTH "Retract length" - #define STRING_RETRACT_SWAP_LENGTH "Retract swap length" - #define STRING_RETRACT_Z_LIFT "Z lift on retraction" - #define STRING_RETRACT_AUTO "Auto Firmware Retract" - #define STRING_RECOVER_FEEDRATE "Recover feedrate" - #define STRING_SWAP_RECOVER_FEEDRATE "Swap recover feedrate" - #define STRING_RECOVER_LENGTH "Extra recover length" - #define STRING_SWAP_RECOVER_LENGTH "Extra recover swap length" - #define STRING_START_PRINT "Start Printing:\n %s?" - #define STRING_ACK_NOTIFICATION "ACK notification style" - #define STRING_LEVELING_EDGE_DISTANCE "Bed edge distance" - #define STRING_XY_UNLOCK "Disarm XY" - #define STRING_TUNING "Tuning" - #define STRING_PID "PID" - #define STRING_PID_TITLE "PID autotune" - #define STRING_PID_START_INFO "PID autotune may take\nsome time to complete.\nContinue?" - #define STRING_PID_START_INFO_2 "PID autotune in progress!" - #define STRING_PID_START_INFO_3 "Do not touch the screen until completed (green LED ON)!" - #define STRING_TUNE_EXTRUDER "Tune steps" - #define STRING_TUNE_EXT_EXTRUDE_100 "Ext. 100mm" - #define STRING_TUNE_EXT_TEMP "Extruder tuning | Heat" - #define STRING_TUNE_EXT_TEMPLOW "Desired temperature too low!\nMinimum temperature: %d C" - #define STRING_TUNE_EXT_DESIREDVAL "Temperature is not yet at the desired value" - #define STRING_TUNE_EXT_MARK120MM "Mark 120 mm on your fillament\nPress '%s' when ready\nMeasure remaining length\nafter extruding" - #define STRING_TUNE_EXT_HEATOFF "Turn the heater off?" - #define STRING_TUNE_EXT_ADJ_ESTEPS "Adjust E-Steps" - #define STRING_TUNE_EXT_ESTEPS_SAVED "New E-steps saved!\nDon't forget to\nsave it in EEPROM\nNew value: %0.2f" - #define STRING_TUNE_EXT_MEASURED "Length remaining:" - #define STRING_TUNE_EXT_OLD_ESTEP "Old e-steps: %0.2f" - #define STRING_TUNE_EXT_NEW_ESTEP "New e-steps: %0.2f" - #define STRING_CONNECTION_SETTINGS "Connection" - #define STRING_OFFSET_TOOL "Offset 2nd Nozzle" - #define STRING_HYBRID_THRESHOLD "TMC HybridThreshold" - #define STRING_NOTIFICATIONS "Notifications" - #define STRING_MESH_EDITOR "Mesh edit" - #define STRING_MESH_TUNER "Mesh tuner" - #define STRING_CASE_LIGHT "Case light" +#define STRING_LANGUAGE "Türkçe" +#define STRING_HEAT "Isıt" +#define STRING_MOVE "Hareket" +#define STRING_HOME "Sıfırla" +#define STRING_DISABLE_STEPPERS "Disarm All" +#define STRING_PRINT "Yazdır" +#define STRING_EXTRUDE "Filament" +#define STRING_FAN "Fan" +#define STRING_SETTINGS "Ayarlar" +#define STRING_SCREEN_SETTINGS "Ekran" +#define STRING_MACHINE_SETTINGS "Makine" +#define STRING_FEATURE_SETTINGS "Özellik" +#define STRING_SOUND "Sound" +#define STRING_TOUCH_SOUND "Touch sounds" +#define STRING_TOAST_SOUND "Toast Notifications" +#define STRING_ALERT_SOUND "Popups and Alerts" +#define STRING_PREHEATDONE_SOUND "Preheat done notification" +#define STRING_SHUT_DOWN "Kapat" +#define STRING_RGB_SETTINGS "LED Rengi" +#define STRING_RGB_OFF "LED'i Kapat" +#define STRING_TERMINAL "Terminal" +#define STRING_CUSTOM "Diğer" +#define STRING_LEVELING "Kalibrasyon" +#define STRING_POINT_1 "1.Nokta" +#define STRING_POINT_2 "2.Nokta" +#define STRING_POINT_3 "3.Nokta" +#define STRING_POINT_4 "4.Nokta" +#define STRING_POINT_5 "5.Nokta" +#define STRING_BED_LEVELING "Bed Level" +#define STRING_BL_COMPLETE "Bed Leveling Complete" +#define STRING_BL_SMART_FILL "Missing probe points\nhave been smart filled.\n \nNote: remember to save!" +#define STRING_BL_ENABLE "BL: on" +#define STRING_BL_DISABLE "BL: off" +#define STRING_ABL "ABL" +#define STRING_BBL "BBL" +#define STRING_UBL "UBL" +#define STRING_MBL "MBL" +#define STRING_MBL_SETTINGS "Mesh Bed Leveling" +#define STRING_ABL_SETTINGS "Auto Bed Leveling" +#define STRING_ABL_SETTINGS_BBL "Bilinear Bed Leveling" +#define STRING_ABL_SETTINGS_UBL "Unified Bed Leveling" +#define STRING_ABL_SETTINGS_UBL_SAVE "Save to slot" +#define STRING_ABL_SETTINGS_UBL_LOAD "Load from slot" +#define STRING_ABL_SLOT0 "Slot 0" +#define STRING_ABL_SLOT1 "Slot 1" +#define STRING_ABL_SLOT2 "Slot 2" +#define STRING_ABL_SLOT3 "Slot 3" +#define STRING_ABL_SLOT_EEPROM "Remember slot for next\nreboot? (Save EEPROM)" +#define STRING_ABL_Z "Z Fade" +#define STRING_BLTOUCH "BLTouch" +#define STRING_BLTOUCH_TEST "Test" +#define STRING_BLTOUCH_DEPLOY "Deploy" +#define STRING_BLTOUCH_STOW "Stow" +#define STRING_BLTOUCH_REPEAT "Repeat" +#define STRING_Z_OFFSET "Z Offset" +#define STRING_PROBE_OFFSET "Probe Offset" +#define STRING_HOME_OFFSET "Home Offset" +#define STRING_CONFIRMATION "Are you sure?" +#define STRING_DOWN "Down" +#define STRING_UP "Up" +#define STRING_SAVE "Kaydet" +#define STRING_RESTORE "Restore" +#define STRING_RESET "Sıfırla" +#define STRING_DEFAULT "Default" +#define STRING_CLEAR "Clear" +#define STRING_NEXT "Next" +#define STRING_DISTANCE "Distance" +#define STRING_INVALID_VALUE "Invalid value(s)" +#define STRING_TIMEOUT_REACHED "Timeout reached!" +#define STRING_PROCESS_RUNNING "Process already running!" +#define STRING_PROCESS_COMPLETED "Process completed!" +#define STRING_PROCESS_ABORTED "Process aborted!" +#define STRING_INC "Arttır" +#define STRING_DEC "Azalt" +#define STRING_NOZZLE "Nozül" +#define STRING_BED "Tabla" +#define STRING_CHAMBER "Chamber" +#define STRING_START "Start" +#define STRING_STOP "Durdur" +#define STRING_BACK "Geri" +#define STRING_PAGE_UP "Yukarı" +#define STRING_PAGE_DOWN "Aşağı" +#define STRING_PAUSE "Duraklat" +#define STRING_RESUME "Devam" +#define STRING_LOAD "Yükle" +#define STRING_UNLOAD "Çıkar" +#define STRING_SLOW_SPEED "Yavaş" +#define STRING_NORMAL_SPEED "Normal" +#define STRING_FAST_SPEED "Hızlı" +#define STRING_FAN_FULL_SPEED "Tam" +#define STRING_FAN_HALF_SPEED "Yarım" +#define STRING_ROTATE_UI "Döndür" +#define STRING_TOUCHSCREEN_ADJUST "Kalibre" +#define STRING_MORE "Daha" +#define STRING_SCREEN_INFO "Bilgi" +#define STRING_STATUS "Bilgi" +#define STRING_SIMULATOR_BG_COLOR "Marlin simulator background color" +#define STRING_SIMULATOR_FONT_COLOR "Marlin simulator font color" +#define STRING_WHITE "Beyaz" +#define STRING_BLACK "Siyah" +#define STRING_BLUE "Mavi" +#define STRING_RED "Kırmızı" +#define STRING_GREEN "Yeşil" +#define STRING_CYAN "Camgöbeği" +#define STRING_YELLOW "Sarı" +#define STRING_BROWN "Kahverengi" +#define STRING_GRAY "Gri" +#define STRING_ORANGE "Turuncu" +#define STRING_INDIGO "Çivit Mavisi" +#define STRING_VIOLET "Menekşe" +#define STRING_MAGENTA "Eflatun" +#define STRING_PURPLE "Mor" +#define STRING_LIME "Çim Rengi" +#define STRING_DARKBLUE "Koyu Mavi" +#define STRING_DARKGREEN "Koyu Yeşil" +#define STRING_DARKGRAY "Koyu Gri" +#define STRING_DISCONNECT "Bağlt. Kes" +#define STRING_BAUDRATE "BaudRate" +#define STRING_PERCENTAGE "Yüzde" +#define STRING_BABYSTEP "BabyStep" +#define STRING_PERCENTAGE_SPEED "Hız" +#define STRING_PERCENTAGE_FLOW "Akış" +#define STRING_VALUE_ZERO "Sıfır" +#define STRING_1_DEGREE "1°C" +#define STRING_5_DEGREE "5°C" +#define STRING_10_DEGREE "10°C" +#define STRING_X_INC "X+" +#define STRING_Y_INC "Y+" +#define STRING_Z_INC "Z+" +#define STRING_X_DEC "X-" +#define STRING_Y_DEC "Y-" +#define STRING_Z_DEC "Z-" +#define STRING_X "X" +#define STRING_Y "Y" +#define STRING_Z "Z" +#define STRING_001_MM "0.01mm" +#define STRING_01_MM "0.1mm" +#define STRING_1_MM "1mm" +#define STRING_5_MM "5mm" +#define STRING_10_MM "10mm" +#define STRING_100_MM "100mm" +#define STRING_200_MM "200mm" +#define STRING_1_PERCENT "1%" +#define STRING_5_PERCENT "5%" +#define STRING_10_PERCENT "10%" +#define STRING_PERCENT_VALUE "%d%" +#define STRING_READY "Hazır" +#define STRING_BUSY "İşlem devam ediyor, lütfen bekleyiniz..." +#define STRING_UNCONNECTED "Yazıcı bağlı değil!" +#define STRING_DISCONNECT_INFO "Artık yazıcıyı\nbilgisayarınızdan kontrol\nedebilirsiniz!" +#define STRING_LOADING "Yükleniyor..." +#define STRING_POWER_FAILED "Yazdırmaya devam edilsin mi?" //Question Sign +#define STRING_CONTINUE "Devam et" +#define STRING_CANCEL "\u088F İptal" //Cancel Sign +#define STRING_ADJUST_TITLE "Dokunmatik Ekran Kalibrasyonu" +#define STRING_ADJUST_INFO "Lütfen kırmızı noktaya\ntıklayın" +#define STRING_ADJUST_OK "Kalibrasyon başarılı." +#define STRING_ADJUST_FAILED "Kalibrasyon başarısız,\nlütfen tekrar deneyiniz." +#define STRING_WARNING "Uyarı" //Exclamation Sign +#define STRING_STOP_PRINT "Baskı durdurulsun mu?" +#define STRING_CONFIRM "\u088E Tamam" //Confirm Sign +#define STRING_TFTSD "SD Kart" +#define STRING_READ_TFTSD_ERROR "SD kart okunamadı!" +#define STRING_TFTSD_INSERTED "SD Kart Takıldı!" +#define STRING_TFTSD_REMOVED "SD Kart Çıkarıldı!" +#define STRING_U_DISK "USB Disk" +#define STRING_READ_U_DISK_ERROR "USB disk okunamadı!" +#define STRING_U_DISK_INSERTED "USB Disk Takıldı!" +#define STRING_U_DISK_REMOVED "USB Disk Çıkarıldı!" +#define STRING_ONBOARDSD "Dahili SD" +#define STRING_READ_ONBOARDSD_ERROR "Dahili SD Okunamadı!" +#define STRING_FILAMENT_SENSOR "Filament sensörü" +#define STRING_FILAMENT_RUNOUT "Filament Bitti!" +#define STRING_PREHEAT "Ön Isıtma" +#define STRING_PREHEAT_BOTH "Birlikte" +#define STRING_IS_PAUSE "Ekstrüde edilemiyor\nyazdırırken,\nNbaskı duraklatılsın mı?" +#define STRING_AUTO_SHUT_DOWN "Auto Power" +#define STRING_UNIFIEDMOVE "Hareket" +#define STRING_UNIFIEDHEAT "Isıtma/Fan" +#define STRING_COOLDOWN "Soğutma" +#define STRING_EMERGENCYSTOP "AcilDurdur" +#define STRING_TOUCH_TO_EXIT "Çıkmak için herhangi bir yere dokunun" +#define STRING_MAINMENU "Menü" +#define STRING_WAIT_TEMP_SHUT_DOWN "Wait for the hotend\ntemperature to be\nlower than %d℃" // The length of the info line is 24 characters, so the "temperatureof" will automatically be divided into "temperature of..." +#define STRING_FORCE_SHUT_DOWN "Zorlamak" +#define STRING_SHUTTING_DOWN "Kapatılıyor..." +#define STRING_PARAMETER_SETTING "Parametre Ayarları" +#define STRING_ON "Açık" +#define STRING_OFF "Kapalı" +#define STRING_SMART "SMART" +#define STRING_TERMINAL_ACK "Show ACK in Terminal" +#define STRING_INVERT_XAXIS "X Eksenini Tersine Çevir" +#define STRING_INVERT_YAXIS "Y Eksenini Tersine Çevir" +#define STRING_INVERT_ZAXIS "Z Eksenini Tersine Çevir" +#define STRING_MOVE_SPEED "Hareket Hızı(X Y Z)" +#define STRING_KNOB_LED "Döner Düğme LED" +#define STRING_KNOB_LED_IDLE "Rotary Knob LED idle" +#define STRING_M0_PAUSE "Paused by M0 command" +#define STRING_SEND_START_GCODE "Start Gcode before print" +#define STRING_SEND_END_GCODE "End Gcode after print" +#define STRING_SEND_CANCEL_GCODE "Gcode'u iptal et" +#define STRING_PERSISTENT_STATUS_INFO "Dosyaları Liste Şeklinde" +#define STRING_FILE_LISTMODE "Dosya Görüntüleyici Liste Modu" +#define STRING_CURRENT_SETTING "Sürücü Akımı (mA)" +#define STRING_STEPS_SETTING "MM başına adım sayısı" +#define STRING_MAXFEEDRATE "Maks. İlerleme Hızı" +#define STRING_MAXACCELERATION "Maks. İvmelenme" +#define STRING_ACCELERATION "İvmelenme" +#define STRING_PRINT_ACCELERATION "Baskı İvmelenmesi" +#define STRING_RETRACT_ACCELERATION "Geriçekme İvmelenmesi" +#define STRING_TRAVEL_ACCELERATION "Gezinti İvmelenmesi" +#define STRING_JERK "Jerk" +#define STRING_JUNCTION_DEVIATION "Junction Deviation" +#define STRING_BUMP_SENSITIVITY "TMC çarpma hassasiyeti" +#define STRING_FWRETRACT "FW Retraction" +#define STRING_FWRECOVER "FW Retraction Recover" +#define STRING_LIN_ADVANCE "Linear Advance" +#define STRING_RESET_SETTINGS_INFO "Tüm ayarlar varsayılana\nsıfırlanacak değerler.\nDevam edilsin mi?" +#define STRING_RESET_SETTINGS_DONE "Tüm ayarları başarıyla\nsıfırlama tamamlandı. Tam\nolarak etkili olması için\nlütfen cihazı yeniden\nbaşlatın." +#define STRING_INFO "Bilgi" //Info Sign +#define STRING_LCD_BRIGHTNESS "Ekran Parlaklığı" +#define STRING_LCD_BRIGHTNESS_DIM "Ekran Parlaklığı Kısılma Oranı" +#define STRING_LCD_DIM_IDLE_TIMER "Ekran Parlaklığı Kısılma Süresi" +#define STRING_5_SECONDS "5 Sn." +#define STRING_10_SECONDS "10 Sn." +#define STRING_30_SECONDS "30 Sn." +#define STRING_60_SECONDS "1 Dak." +#define STRING_120_SECONDS "2 Dak." +#define STRING_300_SECONDS "5 Dak." +#define STRING_CUSTOM_SECONDS "Kişisel" +#define STRING_SEQUENTIAL_MODE "Sequential mode" +#define STRING_ST7920_FULLSCREEN "Marlin mode in fullscreen" +#define STRING_PLR_EN "Power loss recovery" +#define STRING_SETTING_SAVE "Save settings" +#define STRING_SETTING_RESET "Reset default settings" +#define STRING_SETTING_RESTORE "Restore settings" +#define STRING_EEPROM_SETTINGS "EEPROM" +#define STRING_EEPROM_SAVE_INFO "Save printer settings\nto EEPROM?" +#define STRING_EEPROM_RESTORE_INFO "Reload settings from\nEEPROM?" +#define STRING_EEPROM_RESET_INFO "Reset EEPROM to stock printer settings?" +#define STRING_RETRACT_FEEDRATE "Retract feedrate" +#define STRING_RETRACT_LENGTH "Retract length" +#define STRING_RETRACT_SWAP_LENGTH "Retract swap length" +#define STRING_RETRACT_Z_LIFT "Z lift on retraction" +#define STRING_RETRACT_AUTO "Auto Firmware Retract" +#define STRING_RECOVER_FEEDRATE "Recover feedrate" +#define STRING_SWAP_RECOVER_FEEDRATE "Swap recover feedrate" +#define STRING_RECOVER_LENGTH "Extra recover length" +#define STRING_SWAP_RECOVER_LENGTH "Extra recover swap length" +#define STRING_START_PRINT "Start Printing:\n %s?" +#define STRING_ACK_NOTIFICATION "ACK notification style" +#define STRING_LEVELING_EDGE_DISTANCE "Bed edge distance" +#define STRING_XY_UNLOCK "Disarm XY" +#define STRING_TUNING "Tuning" +#define STRING_PID "PID" +#define STRING_PID_TITLE "PID autotune" +#define STRING_PID_START_INFO "PID autotune may take\nsome time to complete.\nContinue?" +#define STRING_PID_START_INFO_2 "PID autotune in progress!" +#define STRING_PID_START_INFO_3 "Do not touch the screen until completed (green LED ON)!" +#define STRING_TUNE_EXTRUDER "Tune steps" +#define STRING_TUNE_EXT_EXTRUDE_100 "Ext. 100mm" +#define STRING_TUNE_EXT_TEMP "Extruder tuning | Heat" +#define STRING_TUNE_EXT_TEMPLOW "Desired temperature too low!\nMinimum temperature: %d C" +#define STRING_TUNE_EXT_DESIREDVAL "Temperature is not yet at the desired value" +#define STRING_TUNE_EXT_MARK120MM "Mark 120 mm on your fillament\nPress '%s' when ready\nMeasure remaining length\nafter extruding" +#define STRING_TUNE_EXT_HEATOFF "Turn the heater off?" +#define STRING_TUNE_EXT_ADJ_ESTEPS "Adjust E-Steps" +#define STRING_TUNE_EXT_ESTEPS_SAVED "New E-steps saved!\nDon't forget to\nsave it in EEPROM\nNew value: %0.2f" +#define STRING_TUNE_EXT_MEASURED "Length remaining:" +#define STRING_TUNE_EXT_OLD_ESTEP "Old e-steps: %0.2f" +#define STRING_TUNE_EXT_NEW_ESTEP "New e-steps: %0.2f" +#define STRING_CONNECTION_SETTINGS "Connection" +#define STRING_OFFSET_TOOL "Offset 2nd Nozzle" +#define STRING_HYBRID_THRESHOLD "TMC HybridThreshold" +#define STRING_NOTIFICATIONS "Notifications" +#define STRING_MESH_EDITOR "Mesh edit" +#define STRING_MESH_TUNER "Mesh tuner" +#define STRING_CASE_LIGHT "Case light" diff --git a/TFT/src/User/API/Settings.h b/TFT/src/User/API/Settings.h index 685b0e0233..c7245b83e0 100644 --- a/TFT/src/User/API/Settings.h +++ b/TFT/src/User/API/Settings.h @@ -23,8 +23,8 @@ enum #define CONFIG_SUPPPORT 20200810 #define FONT_FLASH_SIGN 20200908 //(YYYYMMDD) change if fonts require updating -#define CONFIG_FLASH_SIGN 20200908 //(YYYYMMDD) change if any keyword(s) in config.ini is added or removed -#define LANGUAGE_FLASH_SIGN 20201007 //(YYYYMMDD) change if any keyword(s) in language pack is added or removed +#define CONFIG_FLASH_SIGN 20201115 //(YYYYMMDD) change if any keyword(s) in config.ini is added or removed +#define LANGUAGE_FLASH_SIGN 20201115 //(YYYYMMDD) change if any keyword(s) in language pack is added or removed #define ICON_FLASH_SIGN 20201028 //(YYYYMMDD) change if any icon(s) is added or removed #define FONT_CHECK_SIGN (FONT_FLASH_SIGN + WORD_UNICODE) diff --git a/TFT/src/User/Menu/ScreenSettings.c b/TFT/src/User/Menu/ScreenSettings.c index 6f1004961d..566ccedd8f 100644 --- a/TFT/src/User/Menu/ScreenSettings.c +++ b/TFT/src/User/Menu/ScreenSettings.c @@ -248,14 +248,14 @@ void menuSoundSettings(void) LABEL_FEATURE_SETTINGS, // icon ItemType Item Title item value text(only for custom value) { - {ICONCHAR_TOGGLE_ON, LIST_TOGGLE, LABEL_TOUCH_SOUND, LABEL_BACKGROUND}, - {ICONCHAR_TOGGLE_ON, LIST_TOGGLE, LABEL_ALERT_SOUND, LABEL_BACKGROUND}, - {ICONCHAR_TOGGLE_ON, LIST_TOGGLE, LABEL_TOAST_SOUND, LABEL_BACKGROUND}, - {ICONCHAR_TOGGLE_ON, LIST_TOGGLE, LABEL_TOAST_SOUND, LABEL_BACKGROUND}, - {ICONCHAR_BACKGROUND, LIST_LABEL, LABEL_BACKGROUND, LABEL_BACKGROUND}, - {ICONCHAR_BACKGROUND, LIST_LABEL, LABEL_BACKGROUND, LABEL_BACKGROUND}, - {ICONCHAR_BACKGROUND, LIST_LABEL, LABEL_BACKGROUND, LABEL_BACKGROUND}, - {ICONCHAR_BACK, LIST_LABEL, LABEL_BACKGROUND, LABEL_BACKGROUND},} + {ICONCHAR_TOGGLE_ON, LIST_TOGGLE, LABEL_TOUCH_SOUND, LABEL_BACKGROUND}, + {ICONCHAR_TOGGLE_ON, LIST_TOGGLE, LABEL_ALERT_SOUND, LABEL_BACKGROUND}, + {ICONCHAR_TOGGLE_ON, LIST_TOGGLE, LABEL_TOAST_SOUND, LABEL_BACKGROUND}, + {ICONCHAR_TOGGLE_ON, LIST_TOGGLE, LABEL_PREHEATDONE_SOUND, LABEL_BACKGROUND}, + {ICONCHAR_BACKGROUND, LIST_LABEL, LABEL_BACKGROUND, LABEL_BACKGROUND}, + {ICONCHAR_BACKGROUND, LIST_LABEL, LABEL_BACKGROUND, LABEL_BACKGROUND}, + {ICONCHAR_BACKGROUND, LIST_LABEL, LABEL_BACKGROUND, LABEL_BACKGROUND}, + {ICONCHAR_BACK, LIST_LABEL, LABEL_BACKGROUND, LABEL_BACKGROUND},} }; sounditems.items[0].icon = (infoSettings.touchSound == 1) ? ICONCHAR_TOGGLE_ON : ICONCHAR_TOGGLE_OFF; From 878173a44a7f934c733d2659509f48c70f3dc952 Mon Sep 17 00:00:00 2001 From: petervw Date: Sun, 15 Nov 2020 20:38:43 +0100 Subject: [PATCH 17/24] small cleanup --- TFT/src/User/API/menu.c | 185 ++++++++++++++++++++++++---------------- 1 file changed, 110 insertions(+), 75 deletions(-) diff --git a/TFT/src/User/API/menu.c b/TFT/src/User/API/menu.c index f5265c0a66..8f1723c7da 100644 --- a/TFT/src/User/API/menu.c +++ b/TFT/src/User/API/menu.c @@ -33,7 +33,7 @@ const GUI_RECT rect_of_key[MENU_RECT_COUNT] = { }; const GUI_RECT rect_of_keySS[SS_RECT_COUNT] = { -#ifdef TFT70_V3_0 + #ifdef TFT70_V3_0 //5 status icons area {0 * SSICON_WIDTH + 0 * SS_SPACE_X + START_X, 0 * SSICON_HEIGHT + 0 * SPACE_Y + ICON_START_Y, 1 * SSICON_WIDTH + 0 * SS_SPACE_X + START_X, 1 * SSICON_HEIGHT + 0 * SPACE_Y + ICON_START_Y}, {1 * SSICON_WIDTH + 1 * SS_SPACE_X + START_X, 0 * SSICON_HEIGHT + 0 * SPACE_Y + ICON_START_Y, 2 * SSICON_WIDTH + 1 * SS_SPACE_X + START_X, 1 * SSICON_HEIGHT + 0 * SPACE_Y + ICON_START_Y}, @@ -60,7 +60,7 @@ const GUI_RECT rect_of_keySS[SS_RECT_COUNT] = { //infobox area {1 * ICON_WIDTH + 1 * SPACE_X + START_X, 1 * ICON_HEIGHT + 1 * SPACE_Y + ICON_START_Y, 3 * ICON_WIDTH + 2 * SPACE_X + START_X, 2 * ICON_HEIGHT + 1 * SPACE_Y + ICON_START_Y} -#else + #else //8 icons area {0 * ICON_WIDTH + 0 * SPACE_X + START_X, 0 * ICON_HEIGHT + 0 * SPACE_Y + ICON_START_Y, 1 * ICON_WIDTH + 0 * SPACE_X + START_X, 1 * ICON_HEIGHT + 0 * SPACE_Y + ICON_START_Y}, {1 * ICON_WIDTH + 1 * SPACE_X + START_X, 0 * ICON_HEIGHT + 0 * SPACE_Y + ICON_START_Y, 2 * ICON_WIDTH + 1 * SPACE_X + START_X, 1 * ICON_HEIGHT + 0 * SPACE_Y + ICON_START_Y}, @@ -87,7 +87,7 @@ const GUI_RECT rect_of_keySS[SS_RECT_COUNT] = { //infobox area {1 * ICON_WIDTH + 1 * SPACE_X + START_X, 1 * ICON_HEIGHT + 1 * SPACE_Y + ICON_START_Y, 3 * ICON_WIDTH + 2 * SPACE_X + START_X, 2 * ICON_HEIGHT + 1 * SPACE_Y + ICON_START_Y} -#endif + #endif }; const GUI_RECT rect_of_keyListView[ITEM_PER_PAGE + 1] = { @@ -142,9 +142,13 @@ void menuClearGaps(void) GUI_SetBkColor(infoSettings.title_bg_color); if (infoMenu.menu[infoMenu.cur] == menuStatus) + { GUI_ClearPrect(gapsMenu); + } else + { GUI_ClearPrect(gapsSS); + } GUI_SetBkColor(infoSettings.bg_color); @@ -222,11 +226,17 @@ LISTITEMS *getCurListItems(void) uint8_t *labelGetAddress(const LABEL *label) { if (label->index == LABEL_BACKGROUND) + { return NULL; // No content in label + } if (label->index < LABEL_NUM) // Index of language + { return textSelect(label->index); + } else // Address of string + { return label->address; + } } void menuDrawItem(const ITEM *item, uint8_t position) @@ -234,23 +244,33 @@ void menuDrawItem(const ITEM *item, uint8_t position) uint8_t *content = labelGetAddress(&item->label); const GUI_RECT *rect = curRect + position; if (item->icon != ICON_BACKGROUND) + { ICON_ReadDisplay(rect->x0, rect->y0, item->icon); + } else + { GUI_ClearPrect(rect); + } rect = curRect + ITEM_PER_PAGE + position; GUI_ClearPrect(rect); if (content) + { GUI_DispStringInPrect(rect, content); + } } void menuDrawIconOnly(const ITEM *item, uint8_t position) { const GUI_RECT *rect = curRect + position; if (item->icon != ICON_BACKGROUND) + { ICON_ReadDisplay(rect->x0, rect->y0, item->icon); + } else + { GUI_ClearPrect(rect); + } } void menuDrawListItem(const LISTITEM *item, uint8_t position) @@ -303,7 +323,9 @@ void setMenuTypeCustom(void (*redrawCallback)(void)) void menuRedrawCustom() { if (menuType == MENU_TYPE_CUSTOM && curMenuCustom != NULL) + { curMenuCustom(); + } } void reminderSetUnConnected(void) @@ -315,7 +337,9 @@ void reminderSetUnConnected(void) void reminderMessage(int16_t inf, SYS_STATUS status) { if (toastRunning() || menuType == MENU_TYPE_FULLSCREEN) + { return; + } reminder.inf = inf; GUI_SetColor(infoSettings.reminder_color); GUI_SetBkColor(infoSettings.title_bg_color); @@ -329,7 +353,9 @@ void volumeReminderMessage(int16_t inf, SYS_STATUS status) { wakeLCD(); if (toastRunning() || menuType == MENU_TYPE_FULLSCREEN) + { return; + } volumeReminder.inf = inf; GUI_SetColor(infoSettings.sd_reminder_color); GUI_SetBkColor(infoSettings.title_bg_color); @@ -344,7 +370,9 @@ void busyIndicator(SYS_STATUS status) if (status == STATUS_BUSY) { GUI_SetColor(YELLOW); - GUI_FillCircle(busySign.rect.x0, (busySign.rect.y1 - busySign.rect.y0) / 2, (busySign.rect.x1 - busySign.rect.x0) / 2); + GUI_FillCircle(busySign.rect.x0, + (busySign.rect.y1 - busySign.rect.y0) / 2, + (busySign.rect.x1 - busySign.rect.x0) / 2); GUI_SetColor(infoSettings.font_color); } busySign.status = status; @@ -359,18 +387,15 @@ void loopReminderClear(void) return; case STATUS_BUSY: - if (infoCmd.count == CMD_MAX_LIST) - return; + if (infoCmd.count == CMD_MAX_LIST) return; break; case STATUS_UNCONNECT: - if (infoHost.connected == false) - return; + if (infoHost.connected == false) return; break; case STATUS_NORMAL: - if (OS_GetTimeMs() < reminder.time) - return; + if (OS_GetTimeMs() < reminder.time) return; break; default: return; @@ -380,9 +405,13 @@ void loopReminderClear(void) reminder.status = STATUS_IDLE; if (menuType == MENU_TYPE_CUSTOM) + { menuRedrawCustom(); + } else + { menuReDrawCurTitle(); + } } void loopVolumeReminderClear(void) @@ -390,8 +419,7 @@ void loopVolumeReminderClear(void) switch (volumeReminder.status) { case STATUS_NORMAL: - if (OS_GetTimeMs() < volumeReminder.time) - return; + if (OS_GetTimeMs() < volumeReminder.time) return; break; default: return; @@ -401,9 +429,13 @@ void loopVolumeReminderClear(void) volumeReminder.status = STATUS_IDLE; if (menuType == MENU_TYPE_CUSTOM) + { menuRedrawCustom(); + } else + { menuReDrawCurTitle(); + } } void loopBusySignClear(void) @@ -414,8 +446,7 @@ void loopBusySignClear(void) return; case STATUS_BUSY: - if (OS_GetTimeMs() < busySign.time) - return; + if (OS_GetTimeMs() < busySign.time) return; break; } @@ -423,7 +454,9 @@ void loopBusySignClear(void) busySign.status = STATUS_IDLE; if (menuType == MENU_TYPE_CUSTOM) + { menuRedrawCustom(); + } else { GUI_SetColor(infoSettings.title_bg_color); @@ -448,8 +481,7 @@ void notificationDot(void) void menuDrawTitle(const uint8_t *content) //(const MENUITEMS * menuItems) { - if (menuType == MENU_TYPE_FULLSCREEN) - return; + if (menuType == MENU_TYPE_FULLSCREEN) return; if (toastRunning()) { drawToast(true); @@ -464,14 +496,15 @@ void menuDrawTitle(const uint8_t *content) //(const MENUITEMS * menuItems) GUI_DispLenString(10, start_y, content, LCD_WIDTH - 20, true); start_x += GUI_StrPixelWidth(content); if (start_x > LCD_WIDTH - 20) + { start_x = LCD_WIDTH - 20; + } } GUI_ClearRect(start_x, start_y, end_x, start_y + BYTE_HEIGHT); notificationDot(); GUI_SetBkColor(infoSettings.bg_color); - if (reminder.status == STATUS_IDLE) - return; + if (reminder.status == STATUS_IDLE) return; GUI_SetColor(infoSettings.reminder_color); GUI_SetBkColor(infoSettings.title_bg_color); GUI_DispStringInPrect(&reminder.rect, reminder.inf); @@ -482,15 +515,15 @@ void menuReDrawCurTitle(void) { if (menuType == MENU_TYPE_LISTVIEW) { - if (curListItems == NULL) - return; + if (curListItems == NULL) return; if (curListItems->title.index < LABEL_BACKGROUND) + { menuDrawTitle(labelGetAddress(&curListItems->title)); + } } else if (menuType == MENU_TYPE_ICON) { - if (curMenuItems == NULL) - return; + if (curMenuItems == NULL) return; menuDrawTitle(labelGetAddress(&curMenuItems->title)); } else if (menuType == MENU_TYPE_OTHER) @@ -539,7 +572,9 @@ void menuDrawListPage(const LISTITEMS *listItems) { //const GUI_RECT *rect = rect_of_keyListView + i; if (curListItems->items[i].icon != ICONCHAR_BACKGROUND) + { menuDrawListItem(&curListItems->items[i], i); + } rapid_serial_comm() //perform backend printing loop between drawing icons to avoid printer idling } } @@ -703,71 +738,71 @@ void loopBackEnd(void) loopSpeed(); //Speed & flow monitor -#ifdef BUZZER_PIN - loopBuzzer(); -#endif + #ifdef BUZZER_PIN + loopBuzzer(); + #endif if (infoMachineSettings.onboard_sd_support == ENABLED) { loopCheckPrinting(); //Check if there is a SD or USB print running. } -#ifdef U_DISK_SUPPORT - USBH_Process(&USB_OTG_Core, &USB_Host); -#endif + #ifdef U_DISK_SUPPORT + USBH_Process(&USB_OTG_Core, &USB_Host); + #endif -#if LCD_ENCODER_SUPPORT -#if defined(ST7920_SPI) || defined(LCD2004_simulator) - if (infoMenu.menu[infoMenu.cur] != menuMarlinMode) -#endif - { - loopCheckEncoderSteps(); //check change in encoder steps - } -#endif - -#if defined(ST7920_SPI) || defined(LCD2004_simulator) - loopCheckMode(); -#endif + #if LCD_ENCODER_SUPPORT + #if defined(ST7920_SPI) || defined(LCD2004_simulator) + if (infoMenu.menu[infoMenu.cur] != menuMarlinMode) + #endif + { + loopCheckEncoderSteps(); //check change in encoder steps + } + #endif -#ifdef FIL_RUNOUT_PIN - loopBackEndFILRunoutDetect(); -#endif + #if defined(ST7920_SPI) || defined(LCD2004_simulator) + loopCheckMode(); + #endif -#ifdef LCD_LED_PWM_CHANNEL - loopDimTimer(); -#endif + #ifdef FIL_RUNOUT_PIN + loopBackEndFILRunoutDetect(); + #endif -if (infoSettings.sequential_mode) -{ - setSequentialModeColor(); -} + #ifdef LCD_LED_PWM_CHANNEL + loopDimTimer(); + #endif -if (infoSettings.preheatDoneSound) -{ - volatile bool preheatNotification; - if (preheatNotification && heatGetTargetTemp(heatGetCurrentHotend()) == 0 && heatGetTargetTemp(BED)) - { - //No target set. No notification needed - preheatNotification = false; - } - else if (preheatNotification && - heatGetCurrentTemp(heatGetCurrentHotend()) >= heatGetTargetTemp(heatGetCurrentHotend()) && - heatGetCurrentTemp(BED) >= heatGetTargetTemp(BED)) + if (infoSettings.sequential_mode) { - // Preheat finished. Sound the notification - Buzzer_play(sound_preheatDone); - preheatNotification = false; + setSequentialModeColor(); } - else if (infoMenu.menu[infoMenu.cur] == menuPreheat && - (heatGetCurrentTemp(heatGetCurrentHotend()) < heatGetTargetTemp(heatGetCurrentHotend()) - 10 || - heatGetCurrentTemp(BED) < heatGetTargetTemp(BED) - 10 - ) && !preheatNotification) + + if (infoSettings.preheatDoneSound) { - //Set preheatnotification to true when the current temp is smalles then the target - 10C - // From now on it doesn't matter in which menu you are. - preheatNotification = true; + volatile bool preheatNotification; + if (preheatNotification && heatGetTargetTemp(heatGetCurrentHotend()) == 0 && heatGetTargetTemp(BED)) + { + //No target set. No notification needed + preheatNotification = false; + } + else if (preheatNotification && + heatGetCurrentTemp(heatGetCurrentHotend()) >= heatGetTargetTemp(heatGetCurrentHotend()) && + heatGetCurrentTemp(BED) >= heatGetTargetTemp(BED)) + { + // Preheat finished. Sound the notification + Buzzer_play(sound_preheatDone); + preheatNotification = false; + } + else if (infoMenu.menu[infoMenu.cur] == menuPreheat && + (heatGetCurrentTemp(heatGetCurrentHotend()) < heatGetTargetTemp(heatGetCurrentHotend()) - 10 || + heatGetCurrentTemp(BED) < heatGetTargetTemp(BED) - 10 + ) && !preheatNotification) + { + //Set preheatnotification to true when the current temp is smalles then the target - 10C + // From now on it doesn't matter in which menu you are. + preheatNotification = true; + } } -} if (infoMachineSettings.caseLightsBrightness == ENABLED) { @@ -790,9 +825,9 @@ void loopFrontEnd(void) loopTemperatureStatus(); -#ifdef FIL_RUNOUT_PIN - loopFrontEndFILRunoutDetect(); -#endif + #ifdef FIL_RUNOUT_PIN + loopFrontEndFILRunoutDetect(); + #endif loopPopup(); } From 42be971e8ad4a747456430ba55c8f0f72e797492 Mon Sep 17 00:00:00 2001 From: petervw Date: Sun, 15 Nov 2020 21:01:50 +0100 Subject: [PATCH 18/24] Added styleguide to this PR --- .github/pull_request_template.md | 3 + TFT/src/User/API/sequential_mode.c | 122 ++++++++++++++--------------- 2 files changed, 64 insertions(+), 61 deletions(-) diff --git a/.github/pull_request_template.md b/.github/pull_request_template.md index 9298b2b96d..d889e3882a 100755 --- a/.github/pull_request_template.md +++ b/.github/pull_request_template.md @@ -1,3 +1,6 @@ +### Please read the styleguide before posting! + ----> See styleguide.md in the root of this project + ### Requirements * Filling out this template is required. Pull Requests without a clear description may be closed at the maintainers' discretion. diff --git a/TFT/src/User/API/sequential_mode.c b/TFT/src/User/API/sequential_mode.c index 5f1b1a2f1a..00d9db0873 100644 --- a/TFT/src/User/API/sequential_mode.c +++ b/TFT/src/User/API/sequential_mode.c @@ -9,9 +9,9 @@ uint8_t waitForNext = 0; bool heatingDone = false; bool finishedPrint = false; #ifdef LED_COLOR_PIN -#ifdef LCD_LED_PWM_CHANNEL -bool idle_ledmode_previous = false; -#endif + #ifdef LCD_LED_PWM_CHANNEL + bool idle_ledmode_previous = false; + #endif #endif uint16_t coldTemperature = 0; @@ -71,16 +71,16 @@ void setSequentialModeColor(void) if (infoMenu.menu[infoMenu.cur] != menuPrinting) { -#ifdef LED_COLOR_PIN -#ifdef LCD_LED_PWM_CHANNEL - //Make sure that the knob_led_idle is back in business - if (idle_ledmode_previous) - { - idle_ledmode_previous = false; - infoSettings.knob_led_idle = 1; - } -#endif -#endif + #ifdef LED_COLOR_PIN + #ifdef LCD_LED_PWM_CHANNEL + //Make sure that the knob_led_idle is back in business + if (idle_ledmode_previous) + { + idle_ledmode_previous = false; + infoSettings.knob_led_idle = 1; + } + #endif + #endif //Restore colors to default value prevPixelColor = 0; @@ -106,23 +106,23 @@ void setSequentialModeColor(void) return; } -#ifdef LED_COLOR_PIN -#ifdef LCD_LED_PWM_CHANNEL - // set the knob_led_idle temperorly to OFF - if (infoSettings.knob_led_idle && !idle_ledmode_previous) - { - idle_ledmode_previous = true; - infoSettings.knob_led_idle = 0; //Temperory turn off led idle - } -#endif -#endif + #ifdef LED_COLOR_PIN + #ifdef LCD_LED_PWM_CHANNEL + // set the knob_led_idle temperorly to OFF + if (infoSettings.knob_led_idle && !idle_ledmode_previous) + { + idle_ledmode_previous = true; + infoSettings.knob_led_idle = 0; //Temperory turn off led idle + } + #endif + #endif //Set neopixel and ledknob to green storeCmd("M150 R0 U255 B0 P255\n"); -#ifdef LED_COLOR_PIN - WS2812_Send_DAT(LED_GREEN); -#endif + #ifdef LED_COLOR_PIN + WS2812_Send_DAT(LED_GREEN); + #endif finishedPrint = true; return; @@ -144,16 +144,16 @@ void setSequentialModeColor(void) return; //No temperature set "yet". Do nothing. } -#ifdef LED_COLOR_PIN -#ifdef LCD_LED_PWM_CHANNEL - // set the knob_led_idle temperorly to OFF - if (infoSettings.knob_led_idle && !idle_ledmode_previous) - { - idle_ledmode_previous = true; - infoSettings.knob_led_idle = 0; //Temperory turn off led idle - } -#endif -#endif + #ifdef LED_COLOR_PIN + #ifdef LCD_LED_PWM_CHANNEL + // set the knob_led_idle temperorly to OFF + if (infoSettings.knob_led_idle && !idle_ledmode_previous) + { + idle_ledmode_previous = true; + infoSettings.knob_led_idle = 0; //Temperory turn off led idle + } + #endif + #endif //Store current temperature values to reduce cycle time uint16_t hotendCurrentTemp = heatGetCurrentTemp(0); @@ -167,17 +167,17 @@ void setSequentialModeColor(void) //Bed and hotend are on temperature. Set neopixel to white storeCmd("M150 R255 U255 B255 P255\n"); -//Restore the encoder to the previous state -#ifdef LED_COLOR_PIN -#ifdef LCD_LED_PWM_CHANNEL - //Set the knob_led_idle on again - if (idle_ledmode_previous) - { - idle_ledmode_previous = false; - infoSettings.knob_led_idle = 1; - } -#endif -#endif + //Restore the encoder to the previous state + #ifdef LED_COLOR_PIN + #ifdef LCD_LED_PWM_CHANNEL + //Set the knob_led_idle on again + if (idle_ledmode_previous) + { + idle_ledmode_previous = false; + infoSettings.knob_led_idle = 1; + } + #endif + #endif //set the screen to the max brightness //The encoder knob will get it's default color. @@ -218,20 +218,20 @@ void setSequentialModeColor(void) // Set the neopixel color storeCmd("M150 R%i U0 B%i P255\n", newLedValue, 255 - newLedValue); -#ifdef LED_COLOR_PIN - uint32_t newPixelColor = 0; - newPixelColor |= (uint32_t)(newLedValue) << 8; - newPixelColor |= (uint32_t)(255 - newLedValue); - - //WEG - //char tempstr[60]; - //sprintf(tempstr, "NEW %i | R:%i B:%i | LV: %i", newPixelColor, colorRed, colorBlue, newLedValue); - //GUI_DispString(100, 0, (u8 *)tempstr); - //END WEG - - //Color the Knob led when available - WS2812_Send_DAT(newPixelColor); -#endif + #ifdef LED_COLOR_PIN + uint32_t newPixelColor = 0; + newPixelColor |= (uint32_t)(newLedValue) << 8; + newPixelColor |= (uint32_t)(255 - newLedValue); + + //WEG + //char tempstr[60]; + //sprintf(tempstr, "NEW %i | R:%i B:%i | LV: %i", newPixelColor, colorRed, colorBlue, newLedValue); + //GUI_DispString(100, 0, (u8 *)tempstr); + //END WEG + + //Color the Knob led when available + WS2812_Send_DAT(newPixelColor); + #endif prevPixelColor = newLedValue; return; From 0c6f7d376bd911fe7ff0385210302dbec77451d0 Mon Sep 17 00:00:00 2001 From: petervw Date: Sun, 15 Nov 2020 21:06:06 +0100 Subject: [PATCH 19/24] Small fix for current error --- TFT/src/User/API/sequential_mode.c | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/TFT/src/User/API/sequential_mode.c b/TFT/src/User/API/sequential_mode.c index 00d9db0873..40709f1daa 100644 --- a/TFT/src/User/API/sequential_mode.c +++ b/TFT/src/User/API/sequential_mode.c @@ -91,11 +91,14 @@ void setSequentialModeColor(void) //Turn off neopixels and set knob led back to default storeCmd("M150 R0 U0 B0 P0\n"); - //set the screen to the max brightness - //The encoder knob will get it's default color. - lcd_dim.dimmed = true; //Force dimmed mode - wakeLCD(); - + #ifdef LED_COLOR_PIN + #ifdef LCD_LED_PWM_CHANNEL + //set the screen to the max brightness + //The encoder knob will get it's default color. + lcd_dim.dimmed = true; //Force dimmed mode + wakeLCD(); + #endif + #endif return; } From 8e99adec6d7bc97fbe68503e278b251aec182ab3 Mon Sep 17 00:00:00 2001 From: petervw Date: Sun, 15 Nov 2020 21:16:15 +0100 Subject: [PATCH 20/24] Added styleguide for real this time --- TFT/src/User/API/Temperature.c | 6 +++- styleguide.md | 55 ++++++++++++++++++++++++++++++++++ 2 files changed, 60 insertions(+), 1 deletion(-) create mode 100644 styleguide.md diff --git a/TFT/src/User/API/Temperature.c b/TFT/src/User/API/Temperature.c index 94d633997c..b0468f5687 100644 --- a/TFT/src/User/API/Temperature.c +++ b/TFT/src/User/API/Temperature.c @@ -145,7 +145,11 @@ void loopCheckHeater(void) { do { // Send M105 query temperature continuously - if (heat_update_waiting == true) {updateNextHeatCheckTime();break;} + if (heat_update_waiting == true) + { + updateNextHeatCheckTime(); + break; + } if (OS_GetTimeMs() < nextHeatCheckTime) break; if (requestCommandInfoIsRunning()) break; //to avoid colision in Gcode response processing if (storeCmd("M105\n") == false) break; diff --git a/styleguide.md b/styleguide.md new file mode 100644 index 0000000000..5fb88699ac --- /dev/null +++ b/styleguide.md @@ -0,0 +1,55 @@ +### Comments in code +Comments in the code should always be in English. After the comment marks '//' their should be a space. +Example: +``` +//Wrong comment +// Correct comment +``` + +### If else statements +A if else statement should always look like this: +``` +if (statementA == checkup) +{ + //Do something for B +} +else if (statementB == checkup) +{ + //Do something for B +} +else +{ + //Default +} +``` +_Notice the space in between the if and '('_ + +When using a if else statement you should always use the curly braces. Even if it's one line! +Some examples: +``` +if (whattodo == true) return; // This is correct +if (whattodo == true) + return; // This should be with curly braces +if (whattodo == true) +{ + return; //This is correct. +} +``` + +Some more examples +| Wrong | Correct | +|-------|---------| +|`if (checka == true)`|`if (checka == true)`| +|`{ if (checkb == false)`|`{`| +|` doActionA();`|` if (checkb == false)`| +|`}`|` {`| +||` doActionA();`| +||` }`| +||`}`| +|----|----| +|`if(checha) {doA();return;}`|`if(checka)`| +||`{`| +||` doA();`| +||` return;`| +||`}`| +|----|----| From 52ea2660e3760696a2da517ff3002eac781b3daf Mon Sep 17 00:00:00 2001 From: petervw Date: Sun, 15 Nov 2020 21:28:42 +0100 Subject: [PATCH 21/24] small fix for the current error --- .../Language Packs/language_am.ini | 2 +- .../Language Packs/language_ca.ini | 2 +- .../Language Packs/language_cn.ini | 2 +- .../Language Packs/language_cz.ini | 2 +- .../Language Packs/language_de.ini | 2 +- .../Language Packs/language_en.ini | 2 +- .../Language Packs/language_es.ini | 2 +- .../Language Packs/language_fr.ini | 2 +- .../Language Packs/language_gr.ini | 2 +- .../Language Packs/language_hu.ini | 2 +- .../Language Packs/language_it.ini | 2 +- .../Language Packs/language_jp.ini | 2 +- .../Language Packs/language_nl.ini | 2 +- .../Language Packs/language_pl.ini | 2 +- .../Language Packs/language_pt.ini | 2 +- .../Language Packs/language_ru.ini | 2 +- .../Language Packs/language_sk.ini | 2 +- .../Language Packs/language_sl.ini | 2 +- .../Language Packs/language_tc.ini | 2 +- .../Language Packs/language_tr.ini | 2 +- .../Language Packs/language_am.ini | 2 +- .../Language Packs/language_ca.ini | 2 +- .../Language Packs/language_cn.ini | 2 +- .../Language Packs/language_cz.ini | 2 +- .../Language Packs/language_de.ini | 2 +- .../Language Packs/language_en.ini | 2 +- .../Language Packs/language_es.ini | 2 +- .../Language Packs/language_fr.ini | 2 +- .../Language Packs/language_gr.ini | 2 +- .../Language Packs/language_hu.ini | 2 +- .../Language Packs/language_it.ini | 2 +- .../Language Packs/language_jp.ini | 2 +- .../Language Packs/language_nl.ini | 2 +- .../Language Packs/language_pl.ini | 2 +- .../Language Packs/language_pt.ini | 2 +- .../Language Packs/language_ru.ini | 2 +- .../Language Packs/language_sk.ini | 2 +- .../Language Packs/language_sl.ini | 2 +- .../Language Packs/language_tc.ini | 2 +- .../Language Packs/language_tr.ini | 2 +- TFT/src/User/API/Notification.c | 4 ++++ TFT/src/User/API/menu.c | 17 ++++++++++------- platformio.ini | 4 ++-- 43 files changed, 56 insertions(+), 49 deletions(-) diff --git a/Copy to SD Card root directory to update - Unified Menu Material theme/Language Packs/language_am.ini b/Copy to SD Card root directory to update - Unified Menu Material theme/Language Packs/language_am.ini index fe87b32aff..34e23d8397 100644 --- a/Copy to SD Card root directory to update - Unified Menu Material theme/Language Packs/language_am.ini +++ b/Copy to SD Card root directory to update - Unified Menu Material theme/Language Packs/language_am.ini @@ -1,5 +1,5 @@ #### Language Code:AM -## Language Version:20201007 +## Language Version:20201115 ## Maximum byte per keyword is 250 Bytes. ## Escape characters are not supported except newline '\n' diff --git a/Copy to SD Card root directory to update - Unified Menu Material theme/Language Packs/language_ca.ini b/Copy to SD Card root directory to update - Unified Menu Material theme/Language Packs/language_ca.ini index 71fe2071e2..98f8a6f806 100644 --- a/Copy to SD Card root directory to update - Unified Menu Material theme/Language Packs/language_ca.ini +++ b/Copy to SD Card root directory to update - Unified Menu Material theme/Language Packs/language_ca.ini @@ -1,5 +1,5 @@ #### Language Code:CA -## Language Version:20201007 +## Language Version:20201115 ## Maximum byte per keyword is 250 Bytes. ## Escape characters are not supported except newline '\n' diff --git a/Copy to SD Card root directory to update - Unified Menu Material theme/Language Packs/language_cn.ini b/Copy to SD Card root directory to update - Unified Menu Material theme/Language Packs/language_cn.ini index 295273b24e..d512cb0aa1 100644 --- a/Copy to SD Card root directory to update - Unified Menu Material theme/Language Packs/language_cn.ini +++ b/Copy to SD Card root directory to update - Unified Menu Material theme/Language Packs/language_cn.ini @@ -1,5 +1,5 @@ #### Language Code:CN -## Language Version:20201007 +## Language Version:20201115 ## Maximum byte per keyword is 250 Bytes. ## Escape characters are not supported except newline '\n' diff --git a/Copy to SD Card root directory to update - Unified Menu Material theme/Language Packs/language_cz.ini b/Copy to SD Card root directory to update - Unified Menu Material theme/Language Packs/language_cz.ini index 48b56f8ec9..8d730af872 100644 --- a/Copy to SD Card root directory to update - Unified Menu Material theme/Language Packs/language_cz.ini +++ b/Copy to SD Card root directory to update - Unified Menu Material theme/Language Packs/language_cz.ini @@ -1,5 +1,5 @@ #### Language Code:CZ -## Language Version:20201007 +## Language Version:20201115 ## Maximum byte per keyword is 250 Bytes. ## Escape characters are not supported except newline '\n' diff --git a/Copy to SD Card root directory to update - Unified Menu Material theme/Language Packs/language_de.ini b/Copy to SD Card root directory to update - Unified Menu Material theme/Language Packs/language_de.ini index 73a0858db1..ad2a325bba 100644 --- a/Copy to SD Card root directory to update - Unified Menu Material theme/Language Packs/language_de.ini +++ b/Copy to SD Card root directory to update - Unified Menu Material theme/Language Packs/language_de.ini @@ -1,5 +1,5 @@ #### Language Code:DE -## Language Version:20201007 +## Language Version:20201115 ## Maximum byte per keyword is 250 Bytes. ## Escape characters are not supported except newline '\n' diff --git a/Copy to SD Card root directory to update - Unified Menu Material theme/Language Packs/language_en.ini b/Copy to SD Card root directory to update - Unified Menu Material theme/Language Packs/language_en.ini index 2f69de732c..8a67b2b323 100644 --- a/Copy to SD Card root directory to update - Unified Menu Material theme/Language Packs/language_en.ini +++ b/Copy to SD Card root directory to update - Unified Menu Material theme/Language Packs/language_en.ini @@ -1,5 +1,5 @@ #### Language Code:EN -## Language Version:20201007 +## Language Version:20201115 ## Maximum byte per keyword is 250 Bytes. ## Escape characters are not supported except newline '\n' diff --git a/Copy to SD Card root directory to update - Unified Menu Material theme/Language Packs/language_es.ini b/Copy to SD Card root directory to update - Unified Menu Material theme/Language Packs/language_es.ini index b5530f292e..d65729cdbd 100644 --- a/Copy to SD Card root directory to update - Unified Menu Material theme/Language Packs/language_es.ini +++ b/Copy to SD Card root directory to update - Unified Menu Material theme/Language Packs/language_es.ini @@ -1,5 +1,5 @@ #### Language Code:ES -## Language Version:20201007 +## Language Version:20201115 ## Maximum byte per keyword is 250 Bytes. ## Escape characters are not supported except newline '\n' diff --git a/Copy to SD Card root directory to update - Unified Menu Material theme/Language Packs/language_fr.ini b/Copy to SD Card root directory to update - Unified Menu Material theme/Language Packs/language_fr.ini index 981e870dcf..af91b45a01 100644 --- a/Copy to SD Card root directory to update - Unified Menu Material theme/Language Packs/language_fr.ini +++ b/Copy to SD Card root directory to update - Unified Menu Material theme/Language Packs/language_fr.ini @@ -1,5 +1,5 @@ #### Language Code:FR -## Language Version:20201007 +## Language Version:20201115 ## Maximum byte per keyword is 250 Bytes. ## Escape characters are not supported except newline '\n' diff --git a/Copy to SD Card root directory to update - Unified Menu Material theme/Language Packs/language_gr.ini b/Copy to SD Card root directory to update - Unified Menu Material theme/Language Packs/language_gr.ini index 6bf01b2e9c..512cb34510 100644 --- a/Copy to SD Card root directory to update - Unified Menu Material theme/Language Packs/language_gr.ini +++ b/Copy to SD Card root directory to update - Unified Menu Material theme/Language Packs/language_gr.ini @@ -1,5 +1,5 @@ #### Language Code:GR -## Language Version:20201007 +## Language Version:20201115 ## Maximum byte per keyword is 250 Bytes. ## Escape characters are not supported except newline '\n' diff --git a/Copy to SD Card root directory to update - Unified Menu Material theme/Language Packs/language_hu.ini b/Copy to SD Card root directory to update - Unified Menu Material theme/Language Packs/language_hu.ini index ddf22736bf..f245225ca2 100644 --- a/Copy to SD Card root directory to update - Unified Menu Material theme/Language Packs/language_hu.ini +++ b/Copy to SD Card root directory to update - Unified Menu Material theme/Language Packs/language_hu.ini @@ -1,5 +1,5 @@ #### Language Code:HU -## Language Version:20201007 +## Language Version:20201115 ## Maximum byte per keyword is 250 Bytes. ## Escape characters are not supported except newline '\n' diff --git a/Copy to SD Card root directory to update - Unified Menu Material theme/Language Packs/language_it.ini b/Copy to SD Card root directory to update - Unified Menu Material theme/Language Packs/language_it.ini index c60198e92d..b7dd9938c0 100644 --- a/Copy to SD Card root directory to update - Unified Menu Material theme/Language Packs/language_it.ini +++ b/Copy to SD Card root directory to update - Unified Menu Material theme/Language Packs/language_it.ini @@ -1,5 +1,5 @@ #### Language Code:IT -## Language Version:20201007 +## Language Version:20201115 ## Maximum byte per keyword is 250 Bytes. ## Escape characters are not supported except newline '\n' diff --git a/Copy to SD Card root directory to update - Unified Menu Material theme/Language Packs/language_jp.ini b/Copy to SD Card root directory to update - Unified Menu Material theme/Language Packs/language_jp.ini index 3d9c9f79c5..30dfb07ed5 100644 --- a/Copy to SD Card root directory to update - Unified Menu Material theme/Language Packs/language_jp.ini +++ b/Copy to SD Card root directory to update - Unified Menu Material theme/Language Packs/language_jp.ini @@ -1,5 +1,5 @@ #### Language Code:JP -## Language Version:20201007 +## Language Version:20201115 ## Maximum byte per keyword is 250 Bytes. ## Escape characters are not supported except newline '\n' diff --git a/Copy to SD Card root directory to update - Unified Menu Material theme/Language Packs/language_nl.ini b/Copy to SD Card root directory to update - Unified Menu Material theme/Language Packs/language_nl.ini index 6695a9275a..4023940324 100644 --- a/Copy to SD Card root directory to update - Unified Menu Material theme/Language Packs/language_nl.ini +++ b/Copy to SD Card root directory to update - Unified Menu Material theme/Language Packs/language_nl.ini @@ -1,5 +1,5 @@ #### Language Code:NL -## Language Version:20201007 +## Language Version:20201115 ## Maximum byte per keyword is 250 Bytes. ## Escape characters are not supported except newline '\n' diff --git a/Copy to SD Card root directory to update - Unified Menu Material theme/Language Packs/language_pl.ini b/Copy to SD Card root directory to update - Unified Menu Material theme/Language Packs/language_pl.ini index ac63092b10..ba63f8d7b7 100644 --- a/Copy to SD Card root directory to update - Unified Menu Material theme/Language Packs/language_pl.ini +++ b/Copy to SD Card root directory to update - Unified Menu Material theme/Language Packs/language_pl.ini @@ -1,5 +1,5 @@ #### Language Code:PL -## Language Version:20201007 +## Language Version:20201115 ## Maximum byte per keyword is 250 Bytes. ## Escape characters are not supported except newline '\n' diff --git a/Copy to SD Card root directory to update - Unified Menu Material theme/Language Packs/language_pt.ini b/Copy to SD Card root directory to update - Unified Menu Material theme/Language Packs/language_pt.ini index b3d6b07f97..996550f2c4 100644 --- a/Copy to SD Card root directory to update - Unified Menu Material theme/Language Packs/language_pt.ini +++ b/Copy to SD Card root directory to update - Unified Menu Material theme/Language Packs/language_pt.ini @@ -1,5 +1,5 @@ #### Language Code:PT -## Language Version:20201007 +## Language Version:20201115 ## Maximum byte per keyword is 250 Bytes. ## Escape characters are not supported except newline '\n' diff --git a/Copy to SD Card root directory to update - Unified Menu Material theme/Language Packs/language_ru.ini b/Copy to SD Card root directory to update - Unified Menu Material theme/Language Packs/language_ru.ini index 19ca1de7e7..8b1caa40f7 100644 --- a/Copy to SD Card root directory to update - Unified Menu Material theme/Language Packs/language_ru.ini +++ b/Copy to SD Card root directory to update - Unified Menu Material theme/Language Packs/language_ru.ini @@ -1,5 +1,5 @@ #### Language Code:RU -## Language Version:20201007 +## Language Version:20201115 ## Maximum byte per keyword is 250 Bytes. ## Escape characters are not supported except newline '\n' diff --git a/Copy to SD Card root directory to update - Unified Menu Material theme/Language Packs/language_sk.ini b/Copy to SD Card root directory to update - Unified Menu Material theme/Language Packs/language_sk.ini index 93668ab1fa..4a3cb38a32 100644 --- a/Copy to SD Card root directory to update - Unified Menu Material theme/Language Packs/language_sk.ini +++ b/Copy to SD Card root directory to update - Unified Menu Material theme/Language Packs/language_sk.ini @@ -1,5 +1,5 @@ #### Language Code:SK -## Language Version:20201007 +## Language Version:20201115 ## Maximum byte per keyword is 250 Bytes. ## Escape characters are not supported except newline '\n' diff --git a/Copy to SD Card root directory to update - Unified Menu Material theme/Language Packs/language_sl.ini b/Copy to SD Card root directory to update - Unified Menu Material theme/Language Packs/language_sl.ini index ac9fecd8b5..73d4769d21 100644 --- a/Copy to SD Card root directory to update - Unified Menu Material theme/Language Packs/language_sl.ini +++ b/Copy to SD Card root directory to update - Unified Menu Material theme/Language Packs/language_sl.ini @@ -1,5 +1,5 @@ #### Language Code:SL -## Language Version:20201007 +## Language Version:20201115 ## Maximum byte per keyword is 250 Bytes. ## Escape characters are not supported except newline '\n' diff --git a/Copy to SD Card root directory to update - Unified Menu Material theme/Language Packs/language_tc.ini b/Copy to SD Card root directory to update - Unified Menu Material theme/Language Packs/language_tc.ini index 437f453058..48a085fc1b 100644 --- a/Copy to SD Card root directory to update - Unified Menu Material theme/Language Packs/language_tc.ini +++ b/Copy to SD Card root directory to update - Unified Menu Material theme/Language Packs/language_tc.ini @@ -1,5 +1,5 @@ #### Language Code:TC -## Language Version:20201007 +## Language Version:20201115 ## Maximum byte per keyword is 250 Bytes. ## Escape characters are not supported except newline '\n' diff --git a/Copy to SD Card root directory to update - Unified Menu Material theme/Language Packs/language_tr.ini b/Copy to SD Card root directory to update - Unified Menu Material theme/Language Packs/language_tr.ini index a41cd221f1..47c09b0d70 100644 --- a/Copy to SD Card root directory to update - Unified Menu Material theme/Language Packs/language_tr.ini +++ b/Copy to SD Card root directory to update - Unified Menu Material theme/Language Packs/language_tr.ini @@ -1,5 +1,5 @@ #### Language Code:TR -## Language Version:20201007 +## Language Version:20201115 ## Maximum byte per keyword is 250 Bytes. ## Escape characters are not supported except newline '\n' diff --git a/Copy to SD Card root directory to update/Language Packs/language_am.ini b/Copy to SD Card root directory to update/Language Packs/language_am.ini index fe87b32aff..34e23d8397 100644 --- a/Copy to SD Card root directory to update/Language Packs/language_am.ini +++ b/Copy to SD Card root directory to update/Language Packs/language_am.ini @@ -1,5 +1,5 @@ #### Language Code:AM -## Language Version:20201007 +## Language Version:20201115 ## Maximum byte per keyword is 250 Bytes. ## Escape characters are not supported except newline '\n' diff --git a/Copy to SD Card root directory to update/Language Packs/language_ca.ini b/Copy to SD Card root directory to update/Language Packs/language_ca.ini index 71fe2071e2..98f8a6f806 100644 --- a/Copy to SD Card root directory to update/Language Packs/language_ca.ini +++ b/Copy to SD Card root directory to update/Language Packs/language_ca.ini @@ -1,5 +1,5 @@ #### Language Code:CA -## Language Version:20201007 +## Language Version:20201115 ## Maximum byte per keyword is 250 Bytes. ## Escape characters are not supported except newline '\n' diff --git a/Copy to SD Card root directory to update/Language Packs/language_cn.ini b/Copy to SD Card root directory to update/Language Packs/language_cn.ini index 295273b24e..d512cb0aa1 100644 --- a/Copy to SD Card root directory to update/Language Packs/language_cn.ini +++ b/Copy to SD Card root directory to update/Language Packs/language_cn.ini @@ -1,5 +1,5 @@ #### Language Code:CN -## Language Version:20201007 +## Language Version:20201115 ## Maximum byte per keyword is 250 Bytes. ## Escape characters are not supported except newline '\n' diff --git a/Copy to SD Card root directory to update/Language Packs/language_cz.ini b/Copy to SD Card root directory to update/Language Packs/language_cz.ini index 48b56f8ec9..8d730af872 100644 --- a/Copy to SD Card root directory to update/Language Packs/language_cz.ini +++ b/Copy to SD Card root directory to update/Language Packs/language_cz.ini @@ -1,5 +1,5 @@ #### Language Code:CZ -## Language Version:20201007 +## Language Version:20201115 ## Maximum byte per keyword is 250 Bytes. ## Escape characters are not supported except newline '\n' diff --git a/Copy to SD Card root directory to update/Language Packs/language_de.ini b/Copy to SD Card root directory to update/Language Packs/language_de.ini index 73a0858db1..ad2a325bba 100644 --- a/Copy to SD Card root directory to update/Language Packs/language_de.ini +++ b/Copy to SD Card root directory to update/Language Packs/language_de.ini @@ -1,5 +1,5 @@ #### Language Code:DE -## Language Version:20201007 +## Language Version:20201115 ## Maximum byte per keyword is 250 Bytes. ## Escape characters are not supported except newline '\n' diff --git a/Copy to SD Card root directory to update/Language Packs/language_en.ini b/Copy to SD Card root directory to update/Language Packs/language_en.ini index 2f69de732c..8a67b2b323 100644 --- a/Copy to SD Card root directory to update/Language Packs/language_en.ini +++ b/Copy to SD Card root directory to update/Language Packs/language_en.ini @@ -1,5 +1,5 @@ #### Language Code:EN -## Language Version:20201007 +## Language Version:20201115 ## Maximum byte per keyword is 250 Bytes. ## Escape characters are not supported except newline '\n' diff --git a/Copy to SD Card root directory to update/Language Packs/language_es.ini b/Copy to SD Card root directory to update/Language Packs/language_es.ini index b5530f292e..d65729cdbd 100644 --- a/Copy to SD Card root directory to update/Language Packs/language_es.ini +++ b/Copy to SD Card root directory to update/Language Packs/language_es.ini @@ -1,5 +1,5 @@ #### Language Code:ES -## Language Version:20201007 +## Language Version:20201115 ## Maximum byte per keyword is 250 Bytes. ## Escape characters are not supported except newline '\n' diff --git a/Copy to SD Card root directory to update/Language Packs/language_fr.ini b/Copy to SD Card root directory to update/Language Packs/language_fr.ini index 981e870dcf..af91b45a01 100644 --- a/Copy to SD Card root directory to update/Language Packs/language_fr.ini +++ b/Copy to SD Card root directory to update/Language Packs/language_fr.ini @@ -1,5 +1,5 @@ #### Language Code:FR -## Language Version:20201007 +## Language Version:20201115 ## Maximum byte per keyword is 250 Bytes. ## Escape characters are not supported except newline '\n' diff --git a/Copy to SD Card root directory to update/Language Packs/language_gr.ini b/Copy to SD Card root directory to update/Language Packs/language_gr.ini index 6bf01b2e9c..512cb34510 100644 --- a/Copy to SD Card root directory to update/Language Packs/language_gr.ini +++ b/Copy to SD Card root directory to update/Language Packs/language_gr.ini @@ -1,5 +1,5 @@ #### Language Code:GR -## Language Version:20201007 +## Language Version:20201115 ## Maximum byte per keyword is 250 Bytes. ## Escape characters are not supported except newline '\n' diff --git a/Copy to SD Card root directory to update/Language Packs/language_hu.ini b/Copy to SD Card root directory to update/Language Packs/language_hu.ini index ddf22736bf..f245225ca2 100644 --- a/Copy to SD Card root directory to update/Language Packs/language_hu.ini +++ b/Copy to SD Card root directory to update/Language Packs/language_hu.ini @@ -1,5 +1,5 @@ #### Language Code:HU -## Language Version:20201007 +## Language Version:20201115 ## Maximum byte per keyword is 250 Bytes. ## Escape characters are not supported except newline '\n' diff --git a/Copy to SD Card root directory to update/Language Packs/language_it.ini b/Copy to SD Card root directory to update/Language Packs/language_it.ini index c60198e92d..b7dd9938c0 100644 --- a/Copy to SD Card root directory to update/Language Packs/language_it.ini +++ b/Copy to SD Card root directory to update/Language Packs/language_it.ini @@ -1,5 +1,5 @@ #### Language Code:IT -## Language Version:20201007 +## Language Version:20201115 ## Maximum byte per keyword is 250 Bytes. ## Escape characters are not supported except newline '\n' diff --git a/Copy to SD Card root directory to update/Language Packs/language_jp.ini b/Copy to SD Card root directory to update/Language Packs/language_jp.ini index 3d9c9f79c5..30dfb07ed5 100644 --- a/Copy to SD Card root directory to update/Language Packs/language_jp.ini +++ b/Copy to SD Card root directory to update/Language Packs/language_jp.ini @@ -1,5 +1,5 @@ #### Language Code:JP -## Language Version:20201007 +## Language Version:20201115 ## Maximum byte per keyword is 250 Bytes. ## Escape characters are not supported except newline '\n' diff --git a/Copy to SD Card root directory to update/Language Packs/language_nl.ini b/Copy to SD Card root directory to update/Language Packs/language_nl.ini index 6695a9275a..4023940324 100644 --- a/Copy to SD Card root directory to update/Language Packs/language_nl.ini +++ b/Copy to SD Card root directory to update/Language Packs/language_nl.ini @@ -1,5 +1,5 @@ #### Language Code:NL -## Language Version:20201007 +## Language Version:20201115 ## Maximum byte per keyword is 250 Bytes. ## Escape characters are not supported except newline '\n' diff --git a/Copy to SD Card root directory to update/Language Packs/language_pl.ini b/Copy to SD Card root directory to update/Language Packs/language_pl.ini index ac63092b10..ba63f8d7b7 100644 --- a/Copy to SD Card root directory to update/Language Packs/language_pl.ini +++ b/Copy to SD Card root directory to update/Language Packs/language_pl.ini @@ -1,5 +1,5 @@ #### Language Code:PL -## Language Version:20201007 +## Language Version:20201115 ## Maximum byte per keyword is 250 Bytes. ## Escape characters are not supported except newline '\n' diff --git a/Copy to SD Card root directory to update/Language Packs/language_pt.ini b/Copy to SD Card root directory to update/Language Packs/language_pt.ini index b3d6b07f97..996550f2c4 100644 --- a/Copy to SD Card root directory to update/Language Packs/language_pt.ini +++ b/Copy to SD Card root directory to update/Language Packs/language_pt.ini @@ -1,5 +1,5 @@ #### Language Code:PT -## Language Version:20201007 +## Language Version:20201115 ## Maximum byte per keyword is 250 Bytes. ## Escape characters are not supported except newline '\n' diff --git a/Copy to SD Card root directory to update/Language Packs/language_ru.ini b/Copy to SD Card root directory to update/Language Packs/language_ru.ini index 19ca1de7e7..8b1caa40f7 100644 --- a/Copy to SD Card root directory to update/Language Packs/language_ru.ini +++ b/Copy to SD Card root directory to update/Language Packs/language_ru.ini @@ -1,5 +1,5 @@ #### Language Code:RU -## Language Version:20201007 +## Language Version:20201115 ## Maximum byte per keyword is 250 Bytes. ## Escape characters are not supported except newline '\n' diff --git a/Copy to SD Card root directory to update/Language Packs/language_sk.ini b/Copy to SD Card root directory to update/Language Packs/language_sk.ini index 93668ab1fa..4a3cb38a32 100644 --- a/Copy to SD Card root directory to update/Language Packs/language_sk.ini +++ b/Copy to SD Card root directory to update/Language Packs/language_sk.ini @@ -1,5 +1,5 @@ #### Language Code:SK -## Language Version:20201007 +## Language Version:20201115 ## Maximum byte per keyword is 250 Bytes. ## Escape characters are not supported except newline '\n' diff --git a/Copy to SD Card root directory to update/Language Packs/language_sl.ini b/Copy to SD Card root directory to update/Language Packs/language_sl.ini index ac9fecd8b5..73d4769d21 100644 --- a/Copy to SD Card root directory to update/Language Packs/language_sl.ini +++ b/Copy to SD Card root directory to update/Language Packs/language_sl.ini @@ -1,5 +1,5 @@ #### Language Code:SL -## Language Version:20201007 +## Language Version:20201115 ## Maximum byte per keyword is 250 Bytes. ## Escape characters are not supported except newline '\n' diff --git a/Copy to SD Card root directory to update/Language Packs/language_tc.ini b/Copy to SD Card root directory to update/Language Packs/language_tc.ini index 437f453058..48a085fc1b 100644 --- a/Copy to SD Card root directory to update/Language Packs/language_tc.ini +++ b/Copy to SD Card root directory to update/Language Packs/language_tc.ini @@ -1,5 +1,5 @@ #### Language Code:TC -## Language Version:20201007 +## Language Version:20201115 ## Maximum byte per keyword is 250 Bytes. ## Escape characters are not supported except newline '\n' diff --git a/Copy to SD Card root directory to update/Language Packs/language_tr.ini b/Copy to SD Card root directory to update/Language Packs/language_tr.ini index a41cd221f1..47c09b0d70 100644 --- a/Copy to SD Card root directory to update/Language Packs/language_tr.ini +++ b/Copy to SD Card root directory to update/Language Packs/language_tr.ini @@ -1,5 +1,5 @@ #### Language Code:TR -## Language Version:20201007 +## Language Version:20201115 ## Maximum byte per keyword is 250 Bytes. ## Escape characters are not supported except newline '\n' diff --git a/TFT/src/User/API/Notification.c b/TFT/src/User/API/Notification.c index 8214b99c8e..bfda7a8d39 100644 --- a/TFT/src/User/API/Notification.c +++ b/TFT/src/User/API/Notification.c @@ -43,7 +43,9 @@ bool toastAvailable(void) for (int i = 0; i < TOAST_MSG_COUNT; i++) { if (toastlist[i].isNew == true) + { return true; + } } return false; } @@ -82,7 +84,9 @@ void drawToast(bool redraw) } if ( cursound >= 0 && !redraw) + { BUZZER_PLAY(cursound); + } GUI_SetTextMode(GUI_TEXTMODE_TRANS); GUI_FillPrect(&toastIconRect); diff --git a/TFT/src/User/API/menu.c b/TFT/src/User/API/menu.c index 8f1723c7da..930a939d39 100644 --- a/TFT/src/User/API/menu.c +++ b/TFT/src/User/API/menu.c @@ -640,27 +640,30 @@ void showLiveInfo(uint8_t index, const LIVE_INFO *liveicon, const ITEM *item) //When there is a button value, the icon changes color and redraws void itemDrawIconPress(u8 position, u8 is_press) { - if (position > KEY_ICON_7) - return; + if (position > KEY_ICON_7) return; if (menuType == MENU_TYPE_ICON) { - if (curMenuItems == NULL) - return; + if (curMenuItems == NULL) return; if (curMenuItems->items[position].icon == ICON_BACKGROUND) + { return; + } const GUI_RECT *rect = curRect + position; if (is_press) // Turn green when pressed + { ICON_PressedDisplay(rect->x0, rect->y0, curMenuItems->items[position].icon); + } else // Redraw normal icon when released + { ICON_ReadDisplay(rect->x0, rect->y0, curMenuItems->items[position].icon); + } } else if (menuType == MENU_TYPE_LISTVIEW) { //draw rec over list item if pressed - if (curListItems == NULL) - return; + if (curListItems == NULL) return; const GUI_RECT *rect = rect_of_keyListView + position; @@ -790,7 +793,7 @@ void loopBackEnd(void) heatGetCurrentTemp(BED) >= heatGetTargetTemp(BED)) { // Preheat finished. Sound the notification - Buzzer_play(sound_preheatDone); + BUZZER_PLAY(sound_preheatDone); preheatNotification = false; } else if (infoMenu.menu[infoMenu.cur] == menuPreheat && diff --git a/platformio.ini b/platformio.ini index aec965a1bf..79bac9477e 100644 --- a/platformio.ini +++ b/platformio.ini @@ -27,10 +27,10 @@ src_dir = TFT boards_dir = buildroot/boards ;Build only Target - BIGTREE_TFT35_V3_0 -default_envs = BIGTREE_TFT35_E3_V3_0 +;default_envs = BIGTREE_TFT35_E3_V3_0 ;Build all Targets -;default_envs = BIGTREE_TFT35_V1_0, BIGTREE_TFT35_V1_1, BIGTREE_TFT35_V1_2, BIGTREE_TFT35_V2_0, BIGTREE_TFT35_V3_0, BIGTREE_TFT35_E3_V3_0, BIGTREE_TFT43_V3_0, BIGTREE_TFT50_V3_0, BIGTREE_TFT70_V3_0, BIGTREE_TFT28_V1_0, BIGTREE_TFT28_V3_0, BIGTREE_TFT24_V1_1, MKS_32_V1_4, MKS_32_V1_4_NOBL +default_envs = BIGTREE_TFT35_V1_0, BIGTREE_TFT35_V1_1, BIGTREE_TFT35_V1_2, BIGTREE_TFT35_V2_0, BIGTREE_TFT35_V3_0, BIGTREE_TFT35_E3_V3_0, BIGTREE_TFT43_V3_0, BIGTREE_TFT50_V3_0, BIGTREE_TFT70_V3_0, BIGTREE_TFT28_V1_0, BIGTREE_TFT28_V3_0, BIGTREE_TFT24_V1_1, MKS_32_V1_4, MKS_32_V1_4_NOBL [common] default_src_filter = + - - - From 80e11b86ee16eaedeec181786e04c445819eab81 Mon Sep 17 00:00:00 2001 From: petervw Date: Thu, 3 Dec 2020 12:37:15 +0100 Subject: [PATCH 22/24] Commit before merge master --- TFT/src/User/API/menu.c | 17 +++++++--- TFT/src/User/API/sequential_mode.c | 54 ++++++++++++++---------------- platformio.ini | 4 +-- 3 files changed, 41 insertions(+), 34 deletions(-) diff --git a/TFT/src/User/API/menu.c b/TFT/src/User/API/menu.c index 930a939d39..4a651e056a 100644 --- a/TFT/src/User/API/menu.c +++ b/TFT/src/User/API/menu.c @@ -590,10 +590,15 @@ void showLiveInfo(uint8_t index, const LIVE_INFO *liveicon, const ITEM *item) if (liveicon->enabled[i] == true) { if (sizeof(lcd_colors) > liveicon->lines[i].fn_color) + { GUI_SetColor(lcd_colors[liveicon->lines[i].fn_color]); + } - if (liveicon->lines[i].text_mode != GUI_TEXTMODE_TRANS && sizeof(lcd_colors) > liveicon->lines[i].bk_color) + if (liveicon->lines[i].text_mode != GUI_TEXTMODE_TRANS && + sizeof(lcd_colors) > liveicon->lines[i].bk_color) + { GUI_SetBkColor(lcd_colors[liveicon->lines[i].bk_color]); + } GUI_SetTextMode(liveicon->lines[i].text_mode); @@ -698,9 +703,13 @@ KEY_VALUES menuKeyGetValue(void) else if (menuType == MENU_TYPE_OTHER) { if ((KEY_VALUES)KEY_GetValue(1, rect_of_titleBar) == 0) + { tempkey = KEY_TITLEBAR; + } else + { return (KEY_VALUES)KEY_GetValue(curRectCount, curRect); + } } else if (menuType == MENU_TYPE_FULLSCREEN) { @@ -758,9 +767,9 @@ void loopBackEnd(void) #if defined(ST7920_SPI) || defined(LCD2004_simulator) if (infoMenu.menu[infoMenu.cur] != menuMarlinMode) #endif - { - loopCheckEncoderSteps(); //check change in encoder steps - } + { + loopCheckEncoderSteps(); //check change in encoder steps + } #endif #if defined(ST7920_SPI) || defined(LCD2004_simulator) diff --git a/TFT/src/User/API/sequential_mode.c b/TFT/src/User/API/sequential_mode.c index 40709f1daa..f9170bd46e 100644 --- a/TFT/src/User/API/sequential_mode.c +++ b/TFT/src/User/API/sequential_mode.c @@ -27,11 +27,11 @@ void setSequentialModeColor(void) // This means that after 'X' cycles it will be back in this function waitForNext = 200; - //Let's estimate the room temperature + // Let's estimate the room temperature if (coldTemperature == 0) { uint16_t hotendCurrentTemp = heatGetCurrentTemp(0); - uint16_t bedCurrentTemp = heatGetCurrentTemp(BED); + uint16_t bedCurrentTemp = heatGetCurrentTemp(BED); uint8_t divider = 0; if (hotendCurrentTemp < MAXCOLD_TEMP) { @@ -58,22 +58,19 @@ void setSequentialModeColor(void) // Not printing/ // Check if the previous color has been set. // If not, return to reduce cycletime - if (prevPixelColor == 0) - { - return; - } + if (prevPixelColor == 0) return; // There was a previous color. // Set every led to the correct color. - //Reset flag heating done + // Reset flag heating done heatingDone = false; if (infoMenu.menu[infoMenu.cur] != menuPrinting) { #ifdef LED_COLOR_PIN #ifdef LCD_LED_PWM_CHANNEL - //Make sure that the knob_led_idle is back in business + // Make sure that the knob_led_idle is back in business if (idle_ledmode_previous) { idle_ledmode_previous = false; @@ -82,29 +79,30 @@ void setSequentialModeColor(void) #endif #endif - //Restore colors to default value + // Restore colors to default value prevPixelColor = 0; - //Reset print fineshed bool + // Reset print fineshed bool finishedPrint = false; - //Turn off neopixels and set knob led back to default + // Turn off neopixels and set knob led back to default storeCmd("M150 R0 U0 B0 P0\n"); #ifdef LED_COLOR_PIN #ifdef LCD_LED_PWM_CHANNEL - //set the screen to the max brightness - //The encoder knob will get it's default color. - lcd_dim.dimmed = true; //Force dimmed mode + // set the screen to the max brightness + // The encoder knob will get it's default color. + lcd_dim.dimmed = true; // Force dimmed mode wakeLCD(); #endif #endif return; } + if (finishedPrint) { - // Print is already marked as ready. + // Check if print is already marked as ready. // No need to change the LED's again return; } @@ -120,7 +118,7 @@ void setSequentialModeColor(void) #endif #endif - //Set neopixel and ledknob to green + // Set neopixel and ledknob to green storeCmd("M150 R0 U255 B0 P255\n"); #ifdef LED_COLOR_PIN @@ -135,10 +133,10 @@ void setSequentialModeColor(void) if (heatingDone) { - return; //Go back when preheating is finished + return; // Go back when preheating is finished } - //Store current target temperature values to reduce cycle time + // Store current target temperature values to reduce cycle time uint16_t hotendTargetTemp = heatGetTargetTemp(0); uint16_t bedTargetTemp = heatGetTargetTemp(BED); @@ -158,22 +156,22 @@ void setSequentialModeColor(void) #endif #endif - //Store current temperature values to reduce cycle time + // Store current temperature values to reduce cycle time uint16_t hotendCurrentTemp = heatGetCurrentTemp(0); uint16_t bedCurrentTemp = heatGetCurrentTemp(BED); - //Check if the temperature already reached it's target temperature + // Check if the temperature already reached it's target temperature if (hotendTargetTemp > 0 && bedTargetTemp > 0 && hotendCurrentTemp >= hotendTargetTemp - 5 && bedCurrentTemp >= bedTargetTemp - 5) { - //Bed and hotend are on temperature. Set neopixel to white + // Bed and hotend are on temperature. Set neopixel to white storeCmd("M150 R255 U255 B255 P255\n"); - //Restore the encoder to the previous state + // Restore the encoder to the previous state #ifdef LED_COLOR_PIN #ifdef LCD_LED_PWM_CHANNEL - //Set the knob_led_idle on again + // Set the knob_led_idle on again if (idle_ledmode_previous) { idle_ledmode_previous = false; @@ -182,11 +180,11 @@ void setSequentialModeColor(void) #endif #endif - //set the screen to the max brightness - //The encoder knob will get it's default color. + // set the screen to the max brightness + // The encoder knob will get it's default color. wakeLCD(); - //Set the flag heating done to true + // Set the flag heating done to true heatingDone = true; return; } @@ -195,7 +193,7 @@ void setSequentialModeColor(void) if (hotendTargetTemp > 0 && bedTargetTemp > 0 && bedCurrentTemp >= bedTargetTemp - 5) { - //Only use total temperature when hotend and bed heat up at the same time + // Only use total temperature when hotend and bed heat up at the same time uint16_t totalTemperature = hotendTargetTemp + bedTargetTemp; newLedValue = map(hotendCurrentTemp + bedCurrentTemp, coldTemperature, totalTemperature, 0, 255); } @@ -232,7 +230,7 @@ void setSequentialModeColor(void) //GUI_DispString(100, 0, (u8 *)tempstr); //END WEG - //Color the Knob led when available + // Color the Knob led when available WS2812_Send_DAT(newPixelColor); #endif diff --git a/platformio.ini b/platformio.ini index 79bac9477e..aec965a1bf 100644 --- a/platformio.ini +++ b/platformio.ini @@ -27,10 +27,10 @@ src_dir = TFT boards_dir = buildroot/boards ;Build only Target - BIGTREE_TFT35_V3_0 -;default_envs = BIGTREE_TFT35_E3_V3_0 +default_envs = BIGTREE_TFT35_E3_V3_0 ;Build all Targets -default_envs = BIGTREE_TFT35_V1_0, BIGTREE_TFT35_V1_1, BIGTREE_TFT35_V1_2, BIGTREE_TFT35_V2_0, BIGTREE_TFT35_V3_0, BIGTREE_TFT35_E3_V3_0, BIGTREE_TFT43_V3_0, BIGTREE_TFT50_V3_0, BIGTREE_TFT70_V3_0, BIGTREE_TFT28_V1_0, BIGTREE_TFT28_V3_0, BIGTREE_TFT24_V1_1, MKS_32_V1_4, MKS_32_V1_4_NOBL +;default_envs = BIGTREE_TFT35_V1_0, BIGTREE_TFT35_V1_1, BIGTREE_TFT35_V1_2, BIGTREE_TFT35_V2_0, BIGTREE_TFT35_V3_0, BIGTREE_TFT35_E3_V3_0, BIGTREE_TFT43_V3_0, BIGTREE_TFT50_V3_0, BIGTREE_TFT70_V3_0, BIGTREE_TFT28_V1_0, BIGTREE_TFT28_V3_0, BIGTREE_TFT24_V1_1, MKS_32_V1_4, MKS_32_V1_4_NOBL [common] default_src_filter = + - - - From 2d18fc385b7e6f60e4263fc3460bd5d068e26659 Mon Sep 17 00:00:00 2001 From: petervw Date: Thu, 3 Dec 2020 12:56:03 +0100 Subject: [PATCH 23/24] Added some files that were lost :-P --- .../Language Packs/language_du.ini | 287 ++++++++++++++++++ TFT/src/User/API/event_led_mode.c | 240 +++++++++++++++ TFT/src/User/API/event_led_mode.h | 11 + 3 files changed, 538 insertions(+) create mode 100644 Copy to SD Card root directory to update/Language Packs/language_du.ini create mode 100644 TFT/src/User/API/event_led_mode.c create mode 100644 TFT/src/User/API/event_led_mode.h diff --git a/Copy to SD Card root directory to update/Language Packs/language_du.ini b/Copy to SD Card root directory to update/Language Packs/language_du.ini new file mode 100644 index 0000000000..6951df141d --- /dev/null +++ b/Copy to SD Card root directory to update/Language Packs/language_du.ini @@ -0,0 +1,287 @@ +#### Language Code:DU +## Language Version:20201115 +## Maximum byte per keyword is 250 Bytes. +## Escape characters are not supported except newline '\n' + +label_language:Dutch +label_heat:Verwarm +label_move:Verplaats +label_home:Thuis +label_disable_steppers:Disarm All +label_print:Print +label_extrude:Extrudeer +label_fan:Ventilator +label_settings:Instellingen +label_screen_settings:Scherm +label_machine_settings:Machine +label_feature_settings:Kenmerk +label_sound:Sound +label_touch_sound:Touch sounds +label_toast_sound:Toast Notifications +label_alert_sound:Popups and Alerts +label_shut_down:Uitschakelen +label_rgb_settings:LED Kleur +label_rgb_off:LED Uit +label_terminal:Terminal +label_custom:Aangepast +label_leveling:Nivelleren +label_point_1:Punt 1 +label_point_2:Punt 2 +label_point_3:Punt 3 +label_point_4:Punt 4 +label_point_5:Punt 5 +label_bed_leveling:Bed Level +label_bl_complete:Bed Leveling voltooid +label_bl_smart_fill:Missende probe punten\nzijn slim opgevuld.\n \nNote: Vergeet niet op te slaan! +label_bl_enable:BL: aan +label_bl_disable:BL: uit +label_abl:ABL +label_bbl:BBL +label_ubl:UBL +label_mbl:MBL +label_mbl_settings:Mesh Bed Leveling +label_abl_settings:Auto Bed Leveling +label_abl_settings_bbl:Bilinear Bed Leveling +label_abl_settings_ubl:Unified Bed Leveling +label_abl_settings_ubl_save:Sla op naar sleuf +label_abl_settings_ubl_load:Laad van sleuf +label_abl_slot0:Sleuf 0 +label_abl_slot1:Sleuf 1 +label_abl_slot2:Sleuf 2 +label_abl_slot3:Sleuf 3 +label_abl_slot_eeprom:Onthoud sleuf voor\nvolgende reboot?\n(sla op in EEPROM) +label_abl_z:Z vervagen +label_bltouch:BLTouch +label_bltouch_test:Test +label_bltouch_deploy:Gebruiken +label_bltouch_stow:Inzetten +label_bltouch_repeat:Herhaal +label_z_offset:Z Offset +label_probe_offset:Probe Offset +label_home_offset:Home Offset +label_confirmation:Weet u het zeker? +label_down:Omlaag +label_up:Omhoog +label_save:Bewaren +label_restore:Herstellen +label_reset:Reset +label_default:Standaard +label_clear:Clear +label_next:Volgende +label_distance:Afstand +label_invalid_value:Geen correcte waarde/s voorzien! +label_timeout_reached:Time-out bereikt! +label_process_running:Process bezig! +label_process_completed:Process voltooid! +label_process_aborted:Process geannuleerd! +label_inc:Verhogen +label_dec:Verlagen +label_nozzle:Spuitneus +label_bed:Verwarmd bed +label_chamber:Kamer +label_start:Start +label_stop:Stop +label_back:Terug +label_page_up:Blz omhoog +label_page_down:Blz omlaag +label_pause:Pauze +label_resume:Hervatten +label_load:Laden +label_unload:Lossen +label_load_unload:Load/Unload +label_load_unload_short:(Un)Load +label_slow_speed:Traag +label_normal_speed:Normaal +label_fast_speed:Snel +label_fan_full_speed:Volledig +label_fan_half_speed:Half +label_rotate_ui:Draai UI +label_touchscreen_adjust:TSC Aanpassen +label_more:Meer +label_screen_info:Info +label_status:Status +label_simulator_bg_color:Marlin simulator achtergrond kleur +label_simulator_font_color:Marlin simulator tekst kleur +label_white:Wit +label_black:Zwart +label_blue:Blauw +label_red:Rood +label_green:Groen +label_cyan:Cyaan +label_yellow:Geel +label_brown:Bruin +label_gray:Grijs +label_orange:Oranje +label_indigo:Indigo +label_violet:Violet +label_magenta:Magenta +label_purple:Purple +label_lime:Lime +label_darkblue:DarkBlue +label_darkgreen:DarkGreen +label_darkgray:DarkGray +label_disconnect:Loskoppelen +label_baudrate:Baudsnelheid +label_percentage:Percentage +label_babystep:BabyStap +label_percentage_speed:Snelheid +label_percentage_flow:Stromen +label_value_zero:Zero +label_1_degree:1℃ +label_5_degree:5℃ +label_10_degree:10℃ +label_x_inc:X+ +label_y_inc:Y+ +label_z_inc:Z+ +label_x_dec:X- +label_y_dec:Y- +label_z_dec:Z- +label_x:X +label_y:Y +label_z:Z +label_001_mm:0.01mm +label_01_mm:0.1mm +label_1_mm:1mm +label_5_mm:5mm +label_10_mm:10mm +label_100_mm:100mm +label_200_mm:200mm +label_1_percent:1% +label_5_percent:5% +label_10_percent:10% +label_percent_value:%d%% +label_ready:Gereed +label_busy:In verwerking ,wacht aub... +label_unconnected:Geen printer gekoppeld! +label_disconnect_info:De printer kan nu door de computer bestuurd worden! +label_loading:Opladen... +label_power_failed:Verder met printen? +label_continue:Verder +label_cancel:Afbreken +label_adjust_title:Touch Screen Calibratie +label_adjust_info:Klik op de rode punt +label_adjust_ok:Calibratie Gelukt +label_adjust_failed:Calibratie Mislukt, Probeer Opnieuw aub +label_warning:Waarschuwing +label_stop_print:Stop afdruk? +label_confirm:Bevestig +label_tftsd:TFT SD +label_read_tftsd_error:TFT SD leesfout! +label_tftsd_inserted:Kaart geplaatst! +label_tftsd_removed:Kaart verwijdert! +label_u_disk:U Disk +label_read_u_disk_error:U Disk Leesfout! +label_u_disk_inserted:U Disk geplaatst! +label_u_disk_removed:U Disk verwijdert! +label_onboardsd:OnboardSD +label_read_onboardsd_error:Onboard SD-kaart leesfout! +label_filament_sensor:Filament sensor +label_filament_runout:filament op! +label_preheat:Voorverwarmen +label_preheat_both:Beide +label_is_pause:Kan niet extruderen\ntijdens printen,\nPauzeer printen? +label_auto_shut_down:Auto Power +label_unifiedmove:Beweging +label_unifiedheat:Verwarm/Ventilator +label_cooldown:Afkoelen +label_emergencystop:NOODSTOP +label_touch_to_exit:Aanraken om te verlaten +label_mainmenu:Menu +label_wait_temp_shut_down:Wacht tot de temperatuur\nvan de spuitkop\nlager dan %d℃ is +label_force_shut_down:Forceer Afsluiten +label_shutting_down:Afsluiten... +label_parameter_setting:Parameter +label_on:AAN +label_off:UIT +label_smart:SLIM +label_terminal_ack:Laat ACK in Terminal zien +label_invert_xaxis:Inverteer X Axis +label_invert_yaxis:Inverteer Y Axis +label_invert_zaxis:Inverteer Z Axis +label_move_speed:Bewegingssnelheid(X Y Z) +label_knob_led:Draaiknop LED +label_knob_led_idle:Draaiknop LED inactief +label_m0_pause:Gepauseerd door M0 commando +label_send_start_gcode:Start Gcode before print +label_send_end_gcode:End Gcode after print +label_send_cancel_gcode:Cancel Gcode +label_persistent_status_info:Aanhoudende statusinfo +label_file_listmode:Files viewer List Mode +label_current_setting:Driver stroom (mA) +label_steps_setting:Stappen permm +label_maxfeedrate:Max Feed Rate +label_maxacceleration:Max Acceleratie +label_acceleration:Acceleratie +label_print_acceleration:Afdruk Acceleratie +label_retract_acceleration:Retract Acceleratie +label_travel_acceleration:Travel Acceleratie +label_jerk:Jerk +label_junction_deviation:Junction Deviation +label_bump_sensitivity:TMC bump sensitiviteit +label_fwretract:FW Retraction +label_fwrecover:FW Retraction Recover +label_lin_advance:Linear Advance +label_reset_settings_info:Reset alle instellingen \naar de standaard waardes? +label_reset_settings_done:Reset van alle instellingen\nis succesvol gelukt.\nHerstart alstublieft het apparaat. +label_info:Info +label_lcd_brightness:LCD Brightness +label_lcd_brightness_dim:LCD Brightness dim +label_lcd_dim_idle_timer:LCD dim idle timer +label_5_seconds:5 Sec. +label_10_seconds:10 Sec. +label_30_seconds:30 Sec. +label_60_seconds:1 Min. +label_120_seconds:2 Min. +label_300_seconds:5 Min. +label_custom_seconds:Custom +label_st7920_fullscreen:Marlin mode in fullscreen +label_plr_en:Power loss recovery +label_setting_save:Save settings +label_setting_reset:Reset instellingen +label_setting_restore:Herstel instellingen +label_eeprom_settings:EEPROM +label_eeprom_save_info:Sla printer instellingen\nop naar EEPROM? +label_eeprom_restore_info:Herlaad instellingen van \nde EEPROM? +label_eeprom_reset_info:Reset EEPROM naar de standaard printer instellingen? +label_retract_feedrate:Retract feedrate +label_retract_length:Retract length +label_retract_swap_length:Retract swap length +label_retract_z_lift:Z lift on retraction +label_retract_auto:Auto Firmware Retract +label_recover_feedrate:Recover feedrate +label_swap_recover_feedrate:Swap recover feedrate +label_recover_length:Extra recover length +label_swap_recover_length:Extra recover swap length +label_start_print:Start afdruk:\n %s? +label_ack_notification:ACK notification style +label_leveling_edge_distance:Bed edge distance +label_xy_unlock:Ontgrendel XY +label_tuning:Tuning +label_pid:PID +label_pid_title:PID autotune +label_pid_start_info:PID autotune zal starten.\nDit kan een paar minuten duren.\nDoorgaan? +label_pid_start_info_2:PID autotune is bezig! +label_pid_start_info_3:Raak het scherm NIET aan totdat deze klaar is (groene LED aan)! +label_tune_extruder:Tune steps +label_tune_ext_extrude_100:Ext. 100mm +label_tune_ext_temp:Extruder tuning | Heat +label_tune_ext_templow:Desired temperature too low!\nMinimum temperature: %d C +label_tune_ext_desiredval:Temperature is not yet at the desired value +label_tune_ext_mark120mm:Mark 120 mm on your fillament\nPress '%s' when ready\nMeasure remaining length\nafter extruding +label_tune_ext_heatoff:Turn the heater off? +label_tune_ext_adj_esteps:Adjust E-Steps +label_tune_ext_esteps_saved:New E-steps saved!\nDon't forget to\nsave it in EEPROM\nNew value: %0.2f +label_tune_ext_measured:Length remaining: +label_tune_ext_old_estep:Old e-steps: %0.2f +label_tune_ext_new_estep:New e-steps: %0.2f +label_connection_settings:Connecties +label_offset_tool:Offset 2nd Nozzle +label_hybrid_threshold:TMC HybridThreshold +label_notifications:Notifications +label_mesh_editor:Mesh edit +label_mesh_tuner:Mesh tuner +label_case_light:Case light +label_load_started:Filament load in progress.\nNo further actions possible\nuntil it's done.\nPlease stand by. +label_unload_started:Filament unload in progress.\nNo further actions possible\nuntil it's done.\nPlease stand by. +label_heaters_on:Some heaters are still ON.\nDo you want to stop them? + diff --git a/TFT/src/User/API/event_led_mode.c b/TFT/src/User/API/event_led_mode.c new file mode 100644 index 0000000000..e717161b67 --- /dev/null +++ b/TFT/src/User/API/event_led_mode.c @@ -0,0 +1,240 @@ +#include "event_led_mode.h" +#include "includes.h" + +#define MAXCOLD_TEMP 50 +#define DEFAULT_COLDTEMP 25 + +uint8_t prevPixelColor = 0; +uint8_t waitForNext = 0; +bool heatingDone = false; +bool finishedPrint = false; +#ifdef LED_COLOR_PIN + #ifdef LCD_LED_PWM_CHANNEL + bool idle_ledmode_previous = false; + #endif +#endif +uint16_t coldTemperature = 0; + +void setEventLedModeColor (void) +{ + if (waitForNext > 0) + { + waitForNext--; + return; + } + // Set the waitForNext to a certain number to prevent that this function is + // executes a lot + // This means that after 'X' cycles it will be back in this function + waitForNext = 200; + + // Let's estimate the room temperature + if (coldTemperature == 0) + { + uint16_t hotendCurrentTemp = heatGetCurrentTemp(0); + uint16_t bedCurrentTemp = heatGetCurrentTemp(BED); + uint8_t divider = 0; + if (hotendCurrentTemp < MAXCOLD_TEMP) + { + coldTemperature = hotendCurrentTemp; + divider++; + } + if (bedCurrentTemp < MAXCOLD_TEMP) + { + coldTemperature = bedCurrentTemp; + divider++; + } + if (coldTemperature == 0) + { + coldTemperature = DEFAULT_COLDTEMP; + } + else + { + coldTemperature = coldTemperature / divider; + } + } + + if (!isPrinting()) + { + // Not printing/ + // Check if the previous color has been set. + // If not, return to reduce cycletime + if (prevPixelColor == 0) return; + + // There was a previous color. + // Set every led to the correct color. + + // Reset flag heating done + heatingDone = false; + + if (infoMenu.menu[infoMenu.cur] != menuPrinting) + { + #ifdef LED_COLOR_PIN + #ifdef LCD_LED_PWM_CHANNEL + // Make sure that the knob_led_idle is back in business + if (idle_ledmode_previous) + { + idle_ledmode_previous = false; + infoSettings.knob_led_idle = 1; + } + #endif + #endif + + // Restore colors to default value + prevPixelColor = 0; + + // Reset print fineshed bool + finishedPrint = false; + + // Turn off neopixels and set knob led back to default + storeCmd("M150 R0 U0 B0 P0\n"); + + #ifdef LED_COLOR_PIN + #ifdef LCD_LED_PWM_CHANNEL + // set the screen to the max brightness + // The encoder knob will get it's default color. + lcd_dim.dimmed = true; // Force dimmed mode + wakeLCD(); + #endif + #endif + return; + } + + + if (finishedPrint) + { + // Check if print is already marked as ready. + // No need to change the LED's again + return; + } + + #ifdef LED_COLOR_PIN + #ifdef LCD_LED_PWM_CHANNEL + // set the knob_led_idle temperorly to OFF + if (infoSettings.knob_led_idle && !idle_ledmode_previous) + { + idle_ledmode_previous = true; + infoSettings.knob_led_idle = 0; //Temperory turn off led idle + } + #endif + #endif + + // Set neopixel and ledknob to green + storeCmd("M150 R0 U255 B0 P255\n"); + + #ifdef LED_COLOR_PIN + WS2812_Send_DAT(LED_GREEN); + #endif + + finishedPrint = true; + return; + } + else + { + + if (heatingDone) + { + return; // Go back when preheating is finished + } + + // Store current target temperature values to reduce cycle time + uint16_t hotendTargetTemp = heatGetTargetTemp(0); + uint16_t bedTargetTemp = heatGetTargetTemp(BED); + + if (hotendTargetTemp == 0 && bedTargetTemp == 0) + { + return; //No temperature set "yet". Do nothing. + } + + #ifdef LED_COLOR_PIN + #ifdef LCD_LED_PWM_CHANNEL + // set the knob_led_idle temperorly to OFF + if (infoSettings.knob_led_idle && !idle_ledmode_previous) + { + idle_ledmode_previous = true; + infoSettings.knob_led_idle = 0; //Temperory turn off led idle + } + #endif + #endif + + // Store current temperature values to reduce cycle time + uint16_t hotendCurrentTemp = heatGetCurrentTemp(0); + uint16_t bedCurrentTemp = heatGetCurrentTemp(BED); + + // Check if the temperature already reached it's target temperature + if (hotendTargetTemp > 0 && bedTargetTemp > 0 && + hotendCurrentTemp >= hotendTargetTemp - 5 && + bedCurrentTemp >= bedTargetTemp - 5) + { + // Bed and hotend are on temperature. Set neopixel to white + storeCmd("M150 R255 U255 B255 P255\n"); + + // Restore the encoder to the previous state + #ifdef LED_COLOR_PIN + #ifdef LCD_LED_PWM_CHANNEL + // Set the knob_led_idle on again + if (idle_ledmode_previous) + { + idle_ledmode_previous = false; + infoSettings.knob_led_idle = 1; + } + #endif + #endif + + // set the screen to the max brightness + // The encoder knob will get it's default color. + wakeLCD(); + + // Set the flag heating done to true + heatingDone = true; + return; + } + + uint8_t newLedValue = 0; + if (hotendTargetTemp > 0 && bedTargetTemp > 0 && + bedCurrentTemp >= bedTargetTemp - 5) + { + // Only use total temperature when hotend and bed heat up at the same time + uint16_t totalTemperature = hotendTargetTemp + bedTargetTemp; + newLedValue = map(hotendCurrentTemp + bedCurrentTemp, coldTemperature, totalTemperature, 0, 255); + } + else + { + if (hotendTargetTemp == 0) + { + newLedValue = map(bedCurrentTemp, coldTemperature, bedTargetTemp, 0, 125); + } + else + { + newLedValue = map(hotendCurrentTemp, coldTemperature, hotendTargetTemp, 125, 255); + } + } + + if (!(newLedValue > prevPixelColor)) + { + // Previous led value is the same as the current one. + // Rest of the code is not needed to execute. + return; + } + + // Set the neopixel color + storeCmd("M150 R%i U0 B%i P255\n", newLedValue, 255 - newLedValue); + + #ifdef LED_COLOR_PIN + uint32_t newPixelColor = 0; + newPixelColor |= (uint32_t)(newLedValue) << 8; + newPixelColor |= (uint32_t)(255 - newLedValue); + + //WEG + //char tempstr[60]; + //sprintf(tempstr, "NEW %i | R:%i B:%i | LV: %i", newPixelColor, colorRed, colorBlue, newLedValue); + //GUI_DispString(100, 0, (u8 *)tempstr); + //END WEG + + // Color the Knob led when available + WS2812_Send_DAT(newPixelColor); + #endif + + prevPixelColor = newLedValue; + return; + } +} diff --git a/TFT/src/User/API/event_led_mode.h b/TFT/src/User/API/event_led_mode.h new file mode 100644 index 0000000000..245dfc73af --- /dev/null +++ b/TFT/src/User/API/event_led_mode.h @@ -0,0 +1,11 @@ +#pragma once + +#ifdef __cplusplus +extern "C" { +#endif + +void setEventLedModeColor(void); + +#ifdef __cplusplus +} +#endif From 70dcb75686ce0080bc5b4984aa98171f7bac5558 Mon Sep 17 00:00:00 2001 From: petervw Date: Thu, 3 Dec 2020 13:49:48 +0100 Subject: [PATCH 24/24] Fixed some merge conflicts. Still need to do for alle the languages --- .../BIGTREE_TFT35_V3.0_E3.26.x.bin | Bin 176180 -> 177304 bytes .../Language Packs/language_en.ini | 276 ----------------- TFT/src/User/API/Language/Language.c | 7 +- TFT/src/User/API/Language/Language.inc | 2 +- TFT/src/User/API/Language/language_am.h | 2 +- TFT/src/User/API/Language/language_ca.h | 2 +- TFT/src/User/API/Language/language_cn.h | 2 +- TFT/src/User/API/Language/language_cz.h | 2 +- TFT/src/User/API/Language/language_de.h | 2 +- TFT/src/User/API/Language/language_en.h | 293 +----------------- TFT/src/User/API/Language/language_es.h | 2 +- TFT/src/User/API/Language/language_fr.h | 2 +- TFT/src/User/API/Language/language_gr.h | 2 +- TFT/src/User/API/Language/language_hu.h | 2 +- TFT/src/User/API/Language/language_it.h | 2 +- TFT/src/User/API/Language/language_jp.h | 2 +- TFT/src/User/API/Language/language_keywords.h | 2 +- TFT/src/User/API/Language/language_nl.h | 2 +- TFT/src/User/API/Language/language_pl.h | 2 +- TFT/src/User/API/Language/language_pt.h | 2 +- TFT/src/User/API/Language/language_ru.h | 2 +- TFT/src/User/API/Language/language_sk.h | 2 +- TFT/src/User/API/Language/language_sl.h | 2 +- TFT/src/User/API/Language/language_tc.h | 2 +- TFT/src/User/API/Language/language_tr.h | 2 +- TFT/src/User/API/SpeedControl.c | 17 +- TFT/src/User/API/Temperature.c | 32 +- TFT/src/User/API/config.c | 2 +- TFT/src/User/API/config.h | 2 +- TFT/src/User/API/config.inc | 2 +- TFT/src/User/API/event_led_mode.h | 2 +- TFT/src/User/API/parseACK.c | 10 +- TFT/src/User/Menu/Fan.c | 9 +- TFT/src/User/Menu/FeatureSettings.c | 8 +- TFT/src/User/Menu/Heat.c | 9 +- TFT/src/User/Menu/PrintingMenu.c | 23 +- 36 files changed, 64 insertions(+), 670 deletions(-) diff --git a/Copy to SD Card root directory to update/BIGTREE_TFT35_V3.0_E3.26.x.bin b/Copy to SD Card root directory to update/BIGTREE_TFT35_V3.0_E3.26.x.bin index 9ddd951f23cdc3e345a8ba273b7b77f39e0aff85..45cc7bbfd0ff035b9693c1186f9e00a6de681f31 100644 GIT binary patch delta 66288 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 ZxUZm(Qbuh*IqNv@!Tv7PPp#Aj{U6ncB=!IR delta 65562 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 Yja^g0aR72$ei@fxPYd;sZCbzo1(HpYw*UYD diff --git a/Copy to SD Card root directory to update/Language Packs/language_en.ini b/Copy to SD Card root directory to update/Language Packs/language_en.ini index bdb730c78b..a19d590938 100755 --- a/Copy to SD Card root directory to update/Language Packs/language_en.ini +++ b/Copy to SD Card root directory to update/Language Packs/language_en.ini @@ -25,283 +25,7 @@ label_rgb_settings:LED Color label_rgb_off:LED Off label_terminal:Terminal label_custom:Custom -label_leveling:Leveling -label_point_1:Point 1 -label_point_2:Point 2 -label_point_3:Point 3 -label_point_4:Point 4 -label_point_5:Point 5 -label_bed_leveling:Bed Level -label_bl_complete:Bed Leveling Complete -label_bl_smart_fill:Missing probe points\nhave been smart filled.\n \nNote: remember to save! -label_bl_enable:BL: on -label_bl_disable:BL: off -label_abl:ABL -label_bbl:BBL -label_ubl:UBL -label_mbl:MBL -label_mbl_settings:Mesh Bed Leveling -label_abl_settings:Auto Bed Leveling -label_abl_settings_bbl:Bilinear Bed Leveling -label_abl_settings_ubl:Unified Bed Leveling -label_abl_settings_ubl_save:Save to slot -label_abl_settings_ubl_load:Load from slot -label_abl_slot0:Slot 0 -label_abl_slot1:Slot 1 -label_abl_slot2:Slot 2 -label_abl_slot3:Slot 3 -label_abl_slot_eeprom:Remember slot for next\nreboot? (Save EEPROM) -label_abl_z:Z Fade -label_bltouch:BLTouch -label_bltouch_test:Test -label_bltouch_deploy:Deploy -label_bltouch_stow:Stow -label_bltouch_repeat:Repeat -label_z_offset:Z Offset -label_probe_offset:Probe Offset -label_home_offset:Home Offset -label_confirmation:Are you sure? -label_down:Down -label_up:Up -label_save:Save -label_restore:Restore -label_reset:Reset -label_default:Default -label_clear:Clear -label_next:Next -label_distance:Distance -label_invalid_value:Invalid value(s) -label_timeout_reached:Timeout reached! -label_process_running:Process already running! -label_process_completed:Process completed! -label_process_aborted:Process aborted! -label_inc:Increase -label_dec:Decrease -label_nozzle:Nozzle -label_bed:Hotbed -label_chamber:Chamber -label_start:Start -label_stop:Stop -label_back:Back -label_page_up:Page up -label_page_down:Page down -label_pause:Pause -label_resume:Resume -label_load:Load -label_unload:Unload -label_slow_speed:Slow -label_normal_speed:Normal -label_fast_speed:Fast -label_fan_full_speed:Full -label_fan_half_speed:Half -label_rotate_ui:Rotate UI -label_touchscreen_adjust:TSC Adjust -label_more:More -label_screen_info:Info -label_status:Info -label_simulator_bg_color:Marlin simulator background color -label_simulator_font_color:Marlin simulator font color -label_white:White -label_black:Black -label_blue:Blue -label_red:Red -label_green:Green -label_cyan:Cyan -label_yellow:Yellow -label_brown:Brown -label_gray:Gray -label_orange:Orange -label_indigo:Indigo -label_violet:Violet -label_magenta:Magenta -label_purple:Purple -label_lime:Lime -label_darkblue:DarkBlue -label_darkgreen:DarkGreen -label_darkgray:DarkGray -label_disconnect:Disconnect -label_baudrate:BaudRate -label_percentage:Percentage -label_babystep:BabyStep -label_percentage_speed:Speed -label_percentage_flow:Flow -label_value_zero:Zero -label_1_degree:1℃ -label_5_degree:5℃ -label_10_degree:10℃ -label_x_inc:X+ -label_y_inc:Y+ -label_z_inc:Z+ -label_x_dec:X- -label_y_dec:Y- -label_z_dec:Z- -label_x:X -label_y:Y -label_z:Z -label_001_mm:0.01mm -label_01_mm:0.1mm -label_1_mm:1mm -label_5_mm:5mm -label_10_mm:10mm -label_100_mm:100mm -label_200_mm:200mm -label_1_percent:1% -label_5_percent:5% -label_10_percent:10% -label_percent_value:%d%% -label_ready:Ready -label_busy:Busy processing, please wait... -label_unconnected:No printer attached! -label_disconnect_info:Now you can control the printer by your computer! -label_loading:Loading... -label_power_failed:Continue printing? -label_continue:Continue -label_cancel:Cancel -label_adjust_title:Touch Screen Calibration -label_adjust_info:Please click on the red dot -label_adjust_ok:Adjustment Success -label_adjust_failed:Adjustment failed, Please Try Again -label_warning:Warning -label_stop_print:Stop printing? -label_confirm:OK -label_tftsd:TFT SD -label_read_tftsd_error:Read TFT SD card error! -label_tftsd_inserted:Card inserted! -label_tftsd_removed:Card removed! -label_u_disk:U Disk -label_read_u_disk_error:Read U Disk error! -label_u_disk_inserted:U Disk inserted! -label_u_disk_removed:U Disk removed! -label_onboardsd:OnboardSD -label_read_onboardsd_error:Read Onboard SD card error! -label_filament_sensor:Filament sensor -label_filament_runout:filament runout! -label_preheat:Preheat -label_preheat_both:Both -label_is_pause:Unable to extrude when\nprinting.\nPause printing? -label_auto_shut_down:Auto Power -label_unifiedmove:Movement -label_unifiedheat:Heat/Fan -label_cooldown:Cool Down -label_emergencystop:EM. STOP -label_touch_to_exit:Touch anywhere to exit -label_mainmenu:Menu -label_wait_temp_shut_down:Wait for the hotend\ntemperature to be\nlower than %d ℃ -label_force_shut_down:Force -label_shutting_down:Shutting down... -label_parameter_setting:Parameter Settings -label_on:ON -label_off:OFF -label_smart:SMART -label_terminal_ack:Show ACK in Terminal -label_invert_xaxis:Invert X Axis -label_invert_yaxis:Invert Y Axis -label_invert_zaxis:Invert Z Axis -label_move_speed:Move speed(X Y Z) -label_knob_led:Rotary Knob LED -label_knob_led_idle:Rotary Knob LED idle -label_m0_pause:Paused by M0 command -label_send_start_gcode:Start Gcode before print -label_send_end_gcode:End Gcode after print -label_send_cancel_gcode:Cancel Gcode -label_persistent_status_info:Persistent Status Info -label_file_listmode:Files viewer List Mode -label_current_setting:Driver Current (mA) -label_steps_setting:Steps per mm -label_maxfeedrate:Max Feed Rate -label_maxacceleration:Max Acceleration -label_acceleration:Acceleration -label_print_acceleration:Print Acceleration -label_retract_acceleration:Retract Acceleration -label_travel_acceleration:Travel Acceleration -label_jerk:Jerk -label_junction_deviation:Junction Deviation -label_bump_sensitivity:TMC bump sensitivity -label_fwretract:FW Retraction -label_fwrecover:FW Retraction Recover -label_lin_advance:Linear Advance -label_reset_settings_info:Reset all settings to\ndefault values? -label_reset_settings_done:Reset all settings\nsuccessful.\nplease restart the device. -label_info:Info -label_lcd_brightness:LCD Brightness -label_lcd_brightness_dim:LCD Brightness dim -label_lcd_dim_idle_timer:LCD dim idle timer -label_5_seconds:5 Sec. -label_10_seconds:10 Sec. -label_30_seconds:30 Sec. -label_60_seconds:1 Min. -label_120_seconds:2 Min. -label_300_seconds:5 Min. -label_custom_seconds:Custom label_event_led_mode:Event led mode -label_st7920_fullscreen:Marlin mode in fullscreen -label_plr_en:Power loss recovery -label_setting_save:Save settings -label_setting_reset:Reset default settings -label_setting_restore:Restore settings -label_eeprom_settings:EEPROM -label_eeprom_save_info:Save printer settings\nto EEPROM? -label_eeprom_restore_info:Reload settings from\nEEPROM? -label_eeprom_reset_info:Reset EEPROM to stock printer settings? -label_retract_feedrate:Retract feedrate -label_retract_length:Retract length -label_retract_swap_length:Retract swap length -label_retract_z_lift:Z lift on retraction -label_retract_auto:Auto Firmware Retract -label_recover_feedrate:Recover feedrate -label_swap_recover_feedrate:Swap recover feedrate -label_recover_length:Extra recover length -label_swap_recover_length:Extra recover swap length -label_start_print:Start Printing:\n %s? -label_ack_notification:ACK notification style -label_leveling_edge_distance:Bed edge distance -label_xy_unlock:Disarm XY -label_tuning:Tuning -label_pid:PID -label_pid_title:PID autotune -label_pid_start_info:PID autotune may take\nsome time to complete.\nContinue? -label_pid_start_info_2:PID autotune in progress! -label_pid_start_info_3:Do not touch the screen until completed (green LED ON)! -label_tune_extruder:Tune steps -label_tune_ext_extrude_100:Ext. 100mm -label_tune_ext_temp:Extruder tuning | Heat -label_tune_ext_templow:Desired temperature too low!\nMinimum temperature: %d C -label_tune_ext_desiredval:Temperature is not yet at the desired value -label_tune_ext_mark120mm:Mark 120 mm on your fillament\nPress '%s' when ready\nMeasure remaining length\nafter extruding -label_tune_ext_heatoff:Turn the heater off? -label_tune_ext_adj_esteps:Adjust E-Steps -label_tune_ext_esteps_saved:New E-steps saved!\nDon't forget to\nsave it in EEPROM\nNew value: %0.2f -label_tune_ext_measured:Length remaining: -label_tune_ext_old_estep:Old e-steps: %0.2f -label_tune_ext_new_estep:New e-steps: %0.2f -label_connection_settings:Connection -label_offset_tool:Offset 2nd Nozzle -label_hybrid_threshold:TMC HybridThreshold -label_notifications:Notifications -label_mesh_editor:Mesh edit -label_mesh_tuner:Mesh tuner -label_case_light:Case light -label_language:English -label_heat:Heat -label_move:Move -label_home:Home -label_disable_steppers:Disarm All -label_print:Print -label_extrude:Extrude -label_fan:Fan -label_settings:Settings -label_screen_settings:Screen -label_machine_settings:Machine -label_feature_settings:Feature -label_sound:Sound -label_touch_sound:Touch sounds -label_toast_sound:Toast Notifications -label_alert_sound:Popups and Alerts -label_shut_down:Shut Down -label_rgb_settings:LED Color -label_rgb_off:LED Off -label_terminal:Terminal -label_custom:Custom label_leveling:Leveling label_point_1:Point 1 label_point_2:Point 2 diff --git a/TFT/src/User/API/Language/Language.c b/TFT/src/User/API/Language/Language.c index a6181e3795..4a198b63ad 100644 --- a/TFT/src/User/API/Language/Language.c +++ b/TFT/src/User/API/Language/Language.c @@ -52,7 +52,8 @@ // u8 tempLabelString[MAX_LANG_LABEL_LENGTH]; -const char *const default_pack[LABEL_NUM] = { +const char *const default_pack[LABEL_NUM] = +{ #define X_WORD(NAME) STRING_##NAME , #include "Language.inc" #undef X_WORD @@ -91,8 +92,12 @@ bool loadLabelText(uint8_t* buf, uint16_t index) { if (index >= LABEL_NUM) return false; if (infoSettings.language == LANG_FLASH) + { W25Qxx_ReadBuffer(buf, getLabelFlashAddr(index), MAX_LANG_LABEL_LENGTH); + } else + { memcpy(buf, textSelect(index), sizeof(tempLabelString)); + } return true; } diff --git a/TFT/src/User/API/Language/Language.inc b/TFT/src/User/API/Language/Language.inc index 9141e605e4..c3b230943e 100644 --- a/TFT/src/User/API/Language/Language.inc +++ b/TFT/src/User/API/Language/Language.inc @@ -230,7 +230,7 @@ X_WORD (60_SECONDS) X_WORD (120_SECONDS) X_WORD (300_SECONDS) X_WORD (CUSTOM_SECONDS) -X_WORD (SEQUENTIAL_MODE) +X_WORD (EVENT_LED_MODE) X_WORD (ST7920_FULLSCREEN) X_WORD (PLR_EN) X_WORD (SETTING_SAVE) diff --git a/TFT/src/User/API/Language/language_am.h b/TFT/src/User/API/Language/language_am.h index 0c8c137988..cd9638d735 100644 --- a/TFT/src/User/API/Language/language_am.h +++ b/TFT/src/User/API/Language/language_am.h @@ -231,7 +231,7 @@ #define STRING_120_SECONDS "2 Min." #define STRING_300_SECONDS "5 Min." #define STRING_CUSTOM_SECONDS "Custom" -#define STRING_SEQUENTIAL_MODE "Event led mode" +#define STRING_EVENT_LED_MODE "Event led mode" #define STRING_ST7920_FULLSCREEN "Marlin mode in fullscreen" #define STRING_PLR_EN "Power loss recovery" #define STRING_SETTING_SAVE "Save settings" diff --git a/TFT/src/User/API/Language/language_ca.h b/TFT/src/User/API/Language/language_ca.h index d81e93e1d0..1fe9ac62d1 100644 --- a/TFT/src/User/API/Language/language_ca.h +++ b/TFT/src/User/API/Language/language_ca.h @@ -231,7 +231,7 @@ #define STRING_120_SECONDS "2 Min." #define STRING_300_SECONDS "5 Min." #define STRING_CUSTOM_SECONDS "Personalitzat" -#define STRING_SEQUENTIAL_MODE "Event led mode" +#define STRING_EVENT_LED_MODE "Event led mode" #define STRING_ST7920_FULLSCREEN "Mode Marlin a pantalla completa" #define STRING_PLR_EN "Recuperació de pèrdua d’energia" #define STRING_SETTING_SAVE "Save settings" diff --git a/TFT/src/User/API/Language/language_cn.h b/TFT/src/User/API/Language/language_cn.h index 0c13e409d3..de628a41ed 100644 --- a/TFT/src/User/API/Language/language_cn.h +++ b/TFT/src/User/API/Language/language_cn.h @@ -231,7 +231,7 @@ #define STRING_120_SECONDS "2分钟" #define STRING_300_SECONDS "5分钟" #define STRING_CUSTOM_SECONDS "自定义" -#define STRING_SEQUENTIAL_MODE "Event led mode" +#define STRING_EVENT_LED_MODE "Event led mode" #define STRING_ST7920_FULLSCREEN "全屏显示Marlin模式" #define STRING_PLR_EN "断电续打" #define STRING_SETTING_SAVE "保存设置" diff --git a/TFT/src/User/API/Language/language_cz.h b/TFT/src/User/API/Language/language_cz.h index 649df44244..8dcfea54bb 100644 --- a/TFT/src/User/API/Language/language_cz.h +++ b/TFT/src/User/API/Language/language_cz.h @@ -231,7 +231,7 @@ #define STRING_120_SECONDS "2 min." #define STRING_300_SECONDS "5 min." #define STRING_CUSTOM_SECONDS "Vlastní" -#define STRING_SEQUENTIAL_MODE "Event led mode" +#define STRING_EVENT_LED_MODE "Event led mode" #define STRING_ST7920_FULLSCREEN "Celoobrazovkový režim Marlin" #define STRING_PLR_EN "Obnova po ztrátě napájení" #define STRING_SETTING_SAVE "Uložení nastavení" diff --git a/TFT/src/User/API/Language/language_de.h b/TFT/src/User/API/Language/language_de.h index 11ba5539ae..418eea9736 100644 --- a/TFT/src/User/API/Language/language_de.h +++ b/TFT/src/User/API/Language/language_de.h @@ -231,7 +231,7 @@ #define STRING_120_SECONDS "2 Min." #define STRING_300_SECONDS "5 Min." #define STRING_CUSTOM_SECONDS "Benutz." -#define STRING_SEQUENTIAL_MODE "Event led mode" +#define STRING_EVENT_LED_MODE "Event led mode" #define STRING_ST7920_FULLSCREEN "Marlin Modus im Vollbild" #define STRING_PLR_EN "Wiederherstellung nach Stromausfall" #define STRING_SETTING_SAVE "Einstellungen speichern" diff --git a/TFT/src/User/API/Language/language_en.h b/TFT/src/User/API/Language/language_en.h index a73d94f8a4..220860d4f7 100644 --- a/TFT/src/User/API/Language/language_en.h +++ b/TFT/src/User/API/Language/language_en.h @@ -1,6 +1,5 @@ #pragma once -<<<<<<< HEAD #define STRING_LANGUAGE "English" #define STRING_HEAT "Heat" #define STRING_MOVE "Move" @@ -23,6 +22,7 @@ #define STRING_RGB_OFF "LED Off" #define STRING_TERMINAL "Terminal" #define STRING_CUSTOM "Custom" +#define STRING_EVENT_LED_MODE "Event led mode" #define STRING_LEVELING "Leveling" #define STRING_POINT_1 "Point 1" #define STRING_POINT_2 "Point 2" @@ -87,6 +87,8 @@ #define STRING_RESUME "Resume" #define STRING_LOAD "Load" #define STRING_UNLOAD "Unload" +#define STRING_LOAD_UNLOAD "Load/Unload" +#define STRING_LOAD_UNLOAD_SHORT "(Un)Load" #define STRING_SLOW_SPEED "Slow" #define STRING_NORMAL_SPEED "Normal" #define STRING_FAST_SPEED "Fast" @@ -231,7 +233,6 @@ #define STRING_120_SECONDS "2 Min." #define STRING_300_SECONDS "5 Min." #define STRING_CUSTOM_SECONDS "Custom" -#define STRING_SEQUENTIAL_MODE "Event led mode" #define STRING_ST7920_FULLSCREEN "Marlin mode in fullscreen" #define STRING_PLR_EN "Power loss recovery" #define STRING_SETTING_SAVE "Save settings" @@ -279,288 +280,6 @@ #define STRING_MESH_EDITOR "Mesh edit" #define STRING_MESH_TUNER "Mesh tuner" #define STRING_CASE_LIGHT "Case light" -======= - #define STRING_LANGUAGE "English" - #define STRING_HEAT "Heat" - #define STRING_MOVE "Move" - #define STRING_HOME "Home" - #define STRING_DISABLE_STEPPERS "Disarm All" - #define STRING_PRINT "Print" - #define STRING_EXTRUDE "Extrude" - #define STRING_FAN "Fan" - #define STRING_SETTINGS "Settings" - #define STRING_SCREEN_SETTINGS "Screen" - #define STRING_MACHINE_SETTINGS "Machine" - #define STRING_FEATURE_SETTINGS "Feature" - #define STRING_SOUND "Sound" - #define STRING_TOUCH_SOUND "Touch sounds" - #define STRING_TOAST_SOUND "Toast Notifications" - #define STRING_ALERT_SOUND "Popups and Alerts" - #define STRING_SHUT_DOWN "Shut Down" - #define STRING_RGB_SETTINGS "LED Color" - #define STRING_RGB_OFF "LED Off" - #define STRING_TERMINAL "Terminal" - #define STRING_CUSTOM "Custom" - #define STRING_LEVELING "Leveling" - #define STRING_POINT_1 "Point 1" - #define STRING_POINT_2 "Point 2" - #define STRING_POINT_3 "Point 3" - #define STRING_POINT_4 "Point 4" - #define STRING_POINT_5 "Point 5" - #define STRING_BED_LEVELING "Bed Level" - #define STRING_BL_COMPLETE "Bed Leveling Complete" - #define STRING_BL_SMART_FILL "Missing probe points\nhave been smart filled.\n \nNote: remember to save!" - #define STRING_BL_ENABLE "BL: on" - #define STRING_BL_DISABLE "BL: off" - #define STRING_ABL "ABL" - #define STRING_BBL "BBL" - #define STRING_UBL "UBL" - #define STRING_MBL "MBL" - #define STRING_MBL_SETTINGS "Mesh Bed Leveling" - #define STRING_ABL_SETTINGS "Auto Bed Leveling" - #define STRING_ABL_SETTINGS_BBL "Bilinear Bed Leveling" - #define STRING_ABL_SETTINGS_UBL "Unified Bed Leveling" - #define STRING_ABL_SETTINGS_UBL_SAVE "Save to slot" - #define STRING_ABL_SETTINGS_UBL_LOAD "Load from slot" - #define STRING_ABL_SLOT0 "Slot 0" - #define STRING_ABL_SLOT1 "Slot 1" - #define STRING_ABL_SLOT2 "Slot 2" - #define STRING_ABL_SLOT3 "Slot 3" - #define STRING_ABL_SLOT_EEPROM "Remember slot for next\nreboot? (Save EEPROM)" - #define STRING_ABL_Z "Z Fade" - #define STRING_BLTOUCH "BLTouch" - #define STRING_BLTOUCH_TEST "Test" - #define STRING_BLTOUCH_DEPLOY "Deploy" - #define STRING_BLTOUCH_STOW "Stow" - #define STRING_BLTOUCH_REPEAT "Repeat" - #define STRING_Z_OFFSET "Z Offset" - #define STRING_PROBE_OFFSET "Probe Offset" - #define STRING_HOME_OFFSET "Home Offset" - #define STRING_CONFIRMATION "Are you sure?" - #define STRING_DOWN "Down" - #define STRING_UP "Up" - #define STRING_SAVE "Save" - #define STRING_RESTORE "Restore" - #define STRING_RESET "Reset" - #define STRING_DEFAULT "Default" - #define STRING_CLEAR "Clear" - #define STRING_NEXT "Next" - #define STRING_DISTANCE "Distance" - #define STRING_INVALID_VALUE "Invalid value(s)" - #define STRING_TIMEOUT_REACHED "Timeout reached!" - #define STRING_PROCESS_RUNNING "Process already running!" - #define STRING_PROCESS_COMPLETED "Process completed!" - #define STRING_PROCESS_ABORTED "Process aborted!" - #define STRING_INC "Increase" - #define STRING_DEC "Decrease" - #define STRING_NOZZLE "Nozzle" - #define STRING_BED "Hotbed" - #define STRING_CHAMBER "Chamber" - #define STRING_START "Start" - #define STRING_STOP "Stop" - #define STRING_BACK "Back" - #define STRING_PAGE_UP "Page up" - #define STRING_PAGE_DOWN "Page down" - #define STRING_PAUSE "Pause" - #define STRING_RESUME "Resume" - #define STRING_LOAD "Load" - #define STRING_UNLOAD "Unload" - #define STRING_LOAD_UNLOAD "Load/Unload" - #define STRING_LOAD_UNLOAD_SHORT "(Un)Load" - #define STRING_SLOW_SPEED "Slow" - #define STRING_NORMAL_SPEED "Normal" - #define STRING_FAST_SPEED "Fast" - #define STRING_FAN_FULL_SPEED "Full" - #define STRING_FAN_HALF_SPEED "Half" - #define STRING_ROTATE_UI "Rotate UI" - #define STRING_TOUCHSCREEN_ADJUST "TSC Adjust" - #define STRING_MORE "More" - #define STRING_SCREEN_INFO "Info" - #define STRING_STATUS "Info" - #define STRING_SIMULATOR_BG_COLOR "Marlin simulator background color" - #define STRING_SIMULATOR_FONT_COLOR "Marlin simulator font color" - #define STRING_WHITE "White" - #define STRING_BLACK "Black" - #define STRING_BLUE "Blue" - #define STRING_RED "Red" - #define STRING_GREEN "Green" - #define STRING_CYAN "Cyan" - #define STRING_YELLOW "Yellow" - #define STRING_BROWN "Brown" - #define STRING_GRAY "Gray" - #define STRING_ORANGE "Orange" - #define STRING_INDIGO "Indigo" - #define STRING_VIOLET "Violet" - #define STRING_MAGENTA "Magenta" - #define STRING_PURPLE "Purple" - #define STRING_LIME "Lime" - #define STRING_DARKBLUE "DarkBlue" - #define STRING_DARKGREEN "DarkGreen" - #define STRING_DARKGRAY "DarkGray" - #define STRING_DISCONNECT "Disconnect" - #define STRING_BAUDRATE "BaudRate" - #define STRING_PERCENTAGE "Percentage" - #define STRING_BABYSTEP "BabyStep" - #define STRING_PERCENTAGE_SPEED "Speed" - #define STRING_PERCENTAGE_FLOW "Flow" - #define STRING_VALUE_ZERO "Zero" - #define STRING_1_DEGREE "1℃" - #define STRING_5_DEGREE "5℃" - #define STRING_10_DEGREE "10℃" - #define STRING_X_INC "X+" - #define STRING_Y_INC "Y+" - #define STRING_Z_INC "Z+" - #define STRING_X_DEC "X-" - #define STRING_Y_DEC "Y-" - #define STRING_Z_DEC "Z-" - #define STRING_X "X" - #define STRING_Y "Y" - #define STRING_Z "Z" - #define STRING_001_MM "0.01mm" - #define STRING_01_MM "0.1mm" - #define STRING_1_MM "1mm" - #define STRING_5_MM "5mm" - #define STRING_10_MM "10mm" - #define STRING_100_MM "100mm" - #define STRING_200_MM "200mm" - #define STRING_1_PERCENT "1%" - #define STRING_5_PERCENT "5%" - #define STRING_10_PERCENT "10%" - #define STRING_PERCENT_VALUE "%d%%" - #define STRING_READY "Ready" - #define STRING_BUSY "Busy processing, please wait..." - #define STRING_UNCONNECTED "No printer attached!" - #define STRING_DISCONNECT_INFO "Now you can control the printer by your computer!" - #define STRING_LOADING "Loading..." - #define STRING_POWER_FAILED "Continue printing?" //Question Sign - #define STRING_CONTINUE "Continue" - #define STRING_CANCEL "\u088F Cancel" //Cancel Sign - #define STRING_ADJUST_TITLE "Touch Screen Calibration" - #define STRING_ADJUST_INFO "Please click on the red dot" - #define STRING_ADJUST_OK "Adjustment Success" - #define STRING_ADJUST_FAILED "Adjustment failed, Please Try Again" - #define STRING_WARNING "Warning" //Exclamation Sign - #define STRING_STOP_PRINT "Stop printing?" - #define STRING_CONFIRM "\u088E OK" //Confirm Sign - #define STRING_TFTSD "TFT SD" - #define STRING_READ_TFTSD_ERROR "Read TFT SD card error!" - #define STRING_TFTSD_INSERTED "Card inserted!" - #define STRING_TFTSD_REMOVED "Card removed!" - #define STRING_U_DISK "U Disk" - #define STRING_READ_U_DISK_ERROR "Read U Disk error!" - #define STRING_U_DISK_INSERTED "U Disk inserted!" - #define STRING_U_DISK_REMOVED "U Disk removed!" - #define STRING_ONBOARDSD "OnboardSD" - #define STRING_READ_ONBOARDSD_ERROR "Read Onboard SD card error!" - #define STRING_FILAMENT_SENSOR "Filament sensor" - #define STRING_FILAMENT_RUNOUT "filament runout!" - #define STRING_PREHEAT "Preheat" - #define STRING_PREHEAT_BOTH "Both" - #define STRING_IS_PAUSE "Unable to extrude when\nprinting.\nPause printing?" - #define STRING_AUTO_SHUT_DOWN "Auto Power" - #define STRING_UNIFIEDMOVE "Movement" - #define STRING_UNIFIEDHEAT "Heat/Fan" - #define STRING_COOLDOWN "Cool Down" - #define STRING_EMERGENCYSTOP "EM. STOP" - #define STRING_TOUCH_TO_EXIT "Touch anywhere to exit" - #define STRING_MAINMENU "Menu" - #define STRING_WAIT_TEMP_SHUT_DOWN "Wait for the hotend\ntemperature to be\nlower than %d ℃" - #define STRING_FORCE_SHUT_DOWN "Force" - #define STRING_SHUTTING_DOWN "Shutting down..." - #define STRING_PARAMETER_SETTING "Parameter Settings" - #define STRING_ON "ON" - #define STRING_OFF "OFF" - #define STRING_SMART "SMART" - #define STRING_TERMINAL_ACK "Show ACK in Terminal" - #define STRING_INVERT_XAXIS "Invert X Axis" - #define STRING_INVERT_YAXIS "Invert Y Axis" - #define STRING_INVERT_ZAXIS "Invert Z Axis" - #define STRING_MOVE_SPEED "Move speed(X Y Z)" - #define STRING_KNOB_LED "Rotary Knob LED" - #define STRING_KNOB_LED_IDLE "Rotary Knob LED idle" - #define STRING_M0_PAUSE "Paused by M0 command" - #define STRING_SEND_START_GCODE "Start Gcode before print" - #define STRING_SEND_END_GCODE "End Gcode after print" - #define STRING_SEND_CANCEL_GCODE "Cancel Gcode" - #define STRING_PERSISTENT_STATUS_INFO "Persistent Status Info" - #define STRING_FILE_LISTMODE "Files viewer List Mode" - #define STRING_CURRENT_SETTING "Driver Current (mA)" - #define STRING_STEPS_SETTING "Steps per mm" - #define STRING_MAXFEEDRATE "Max Feed Rate" - #define STRING_MAXACCELERATION "Max Acceleration" - #define STRING_ACCELERATION "Acceleration" - #define STRING_PRINT_ACCELERATION "Print Acceleration" - #define STRING_RETRACT_ACCELERATION "Retract Acceleration" - #define STRING_TRAVEL_ACCELERATION "Travel Acceleration" - #define STRING_JERK "Jerk" - #define STRING_JUNCTION_DEVIATION "Junction Deviation" - #define STRING_BUMP_SENSITIVITY "TMC bump sensitivity" - #define STRING_FWRETRACT "FW Retraction" - #define STRING_FWRECOVER "FW Retraction Recover" - #define STRING_LIN_ADVANCE "Linear Advance" - #define STRING_RESET_SETTINGS_INFO "Reset all settings to\ndefault values?" - #define STRING_RESET_SETTINGS_DONE "Reset all settings\nsuccessful.\nplease restart the device." - #define STRING_INFO "Info" //Info Sign - #define STRING_LCD_BRIGHTNESS "LCD Brightness" - #define STRING_LCD_BRIGHTNESS_DIM "LCD Brightness dim" - #define STRING_LCD_DIM_IDLE_TIMER "LCD dim idle timer" - #define STRING_5_SECONDS "5 Sec." - #define STRING_10_SECONDS "10 Sec." - #define STRING_30_SECONDS "30 Sec." - #define STRING_60_SECONDS "1 Min." - #define STRING_120_SECONDS "2 Min." - #define STRING_300_SECONDS "5 Min." - #define STRING_CUSTOM_SECONDS "Custom" - #define STRING_ST7920_FULLSCREEN "Marlin mode in fullscreen" - #define STRING_PLR_EN "Power loss recovery" - #define STRING_SETTING_SAVE "Save settings" - #define STRING_SETTING_RESET "Reset default settings" - #define STRING_SETTING_RESTORE "Restore settings" - #define STRING_EEPROM_SETTINGS "EEPROM" - #define STRING_EEPROM_SAVE_INFO "Save printer settings\nto EEPROM?" - #define STRING_EEPROM_RESTORE_INFO "Reload settings from\nEEPROM?" - #define STRING_EEPROM_RESET_INFO "Reset EEPROM to stock printer settings?" - #define STRING_RETRACT_FEEDRATE "Retract feedrate" - #define STRING_RETRACT_LENGTH "Retract length" - #define STRING_RETRACT_SWAP_LENGTH "Retract swap length" - #define STRING_RETRACT_Z_LIFT "Z lift on retraction" - #define STRING_RETRACT_AUTO "Auto Firmware Retract" - #define STRING_RECOVER_FEEDRATE "Recover feedrate" - #define STRING_SWAP_RECOVER_FEEDRATE "Swap recover feedrate" - #define STRING_RECOVER_LENGTH "Extra recover length" - #define STRING_SWAP_RECOVER_LENGTH "Extra recover swap length" - #define STRING_START_PRINT "Start Printing:\n %s?" - #define STRING_ACK_NOTIFICATION "ACK notification style" - #define STRING_LEVELING_EDGE_DISTANCE "Bed edge distance" - #define STRING_XY_UNLOCK "Disarm XY" - #define STRING_TUNING "Tuning" - #define STRING_PID "PID" - #define STRING_PID_TITLE "PID autotune" - #define STRING_PID_START_INFO "PID autotune may take\nsome time to complete.\nContinue?" - #define STRING_PID_START_INFO_2 "PID autotune in progress!" - #define STRING_PID_START_INFO_3 "Do not touch the screen until completed (green LED ON)!" - #define STRING_TUNE_EXTRUDER "Tune steps" - #define STRING_TUNE_EXT_EXTRUDE_100 "Ext. 100mm" - #define STRING_TUNE_EXT_TEMP "Extruder tuning | Heat" - #define STRING_TUNE_EXT_TEMPLOW "Desired temperature too low!\nMinimum temperature: %d C" - #define STRING_TUNE_EXT_DESIREDVAL "Temperature is not yet at the desired value" - #define STRING_TUNE_EXT_MARK120MM "Mark 120 mm on your fillament\nPress '%s' when ready\nMeasure remaining length\nafter extruding" - #define STRING_TUNE_EXT_HEATOFF "Turn the heater off?" - #define STRING_TUNE_EXT_ADJ_ESTEPS "Adjust E-Steps" - #define STRING_TUNE_EXT_ESTEPS_SAVED "New E-steps saved!\nDon't forget to\nsave it in EEPROM\nNew value: %0.2f" - #define STRING_TUNE_EXT_MEASURED "Length remaining:" - #define STRING_TUNE_EXT_OLD_ESTEP "Old e-steps: %0.2f" - #define STRING_TUNE_EXT_NEW_ESTEP "New e-steps: %0.2f" - #define STRING_CONNECTION_SETTINGS "Connection" - #define STRING_OFFSET_TOOL "Offset 2nd Nozzle" - #define STRING_HYBRID_THRESHOLD "TMC HybridThreshold" - #define STRING_NOTIFICATIONS "Notifications" - #define STRING_MESH_EDITOR "Mesh edit" - #define STRING_MESH_TUNER "Mesh tuner" - #define STRING_CASE_LIGHT "Case light" - #define STRING_LOAD_STARTED "Filament load in progress.\nNo further actions possible\nuntil it's done.\nPlease stand by." - #define STRING_UNLOAD_STARTED "Filament unload in progress.\nNo further actions possible\nuntil it's done.\nPlease stand by." - #define STRING_HEATERS_ON "Some heaters are still ON.\nDo you want to stop them?" - -#endif ->>>>>>> upstream/master +#define STRING_LOAD_STARTED "Filament load in progress.\nNo further actions possible\nuntil it's done.\nPlease stand by." +#define STRING_UNLOAD_STARTED "Filament unload in progress.\nNo further actions possible\nuntil it's done.\nPlease stand by." +#define STRING_HEATERS_ON "Some heaters are still ON.\nDo you want to stop them?" diff --git a/TFT/src/User/API/Language/language_es.h b/TFT/src/User/API/Language/language_es.h index 1581c764b5..9a047719bf 100644 --- a/TFT/src/User/API/Language/language_es.h +++ b/TFT/src/User/API/Language/language_es.h @@ -231,7 +231,7 @@ #define STRING_120_SECONDS "2 Min." #define STRING_300_SECONDS "5 Min." #define STRING_CUSTOM_SECONDS "Custom" -#define STRING_SEQUENTIAL_MODE "Event led mode" +#define STRING_EVENT_LED_MODE "Event led mode" #define STRING_ST7920_FULLSCREEN "Marlin mode in fullscreen" #define STRING_PLR_EN "Power loss recovery" #define STRING_SETTING_SAVE "Save settings" diff --git a/TFT/src/User/API/Language/language_fr.h b/TFT/src/User/API/Language/language_fr.h index 96158abbfd..3f298327b9 100644 --- a/TFT/src/User/API/Language/language_fr.h +++ b/TFT/src/User/API/Language/language_fr.h @@ -231,7 +231,7 @@ #define STRING_120_SECONDS "2 Min." #define STRING_300_SECONDS "5 Min." #define STRING_CUSTOM_SECONDS "Custom" -#define STRING_SEQUENTIAL_MODE "Event led mode" +#define STRING_EVENT_LED_MODE "Event led mode" #define STRING_ST7920_FULLSCREEN "Mode Marlin plein écran" #define STRING_PLR_EN "Reprise après coupure" #define STRING_SETTING_SAVE "Sauvegarder les paramètres" diff --git a/TFT/src/User/API/Language/language_gr.h b/TFT/src/User/API/Language/language_gr.h index 947e1037d5..a7bc44f8b0 100644 --- a/TFT/src/User/API/Language/language_gr.h +++ b/TFT/src/User/API/Language/language_gr.h @@ -231,7 +231,7 @@ #define STRING_120_SECONDS "2 Λεπτά" #define STRING_300_SECONDS "5 Λεπτά" #define STRING_CUSTOM_SECONDS "Τροποποιημένες ρυθμίσεις" -#define STRING_SEQUENTIAL_MODE "Event led mode" +#define STRING_EVENT_LED_MODE "Event led mode" #define STRING_ST7920_FULLSCREEN "Λειτουργία Marlin σε πλήρη οθόνη" #define STRING_PLR_EN "Power loss recovery" #define STRING_SETTING_SAVE "Save settings" diff --git a/TFT/src/User/API/Language/language_hu.h b/TFT/src/User/API/Language/language_hu.h index 806bd1c36f..cac99fb018 100644 --- a/TFT/src/User/API/Language/language_hu.h +++ b/TFT/src/User/API/Language/language_hu.h @@ -231,7 +231,7 @@ #define STRING_120_SECONDS "2 Perc." #define STRING_300_SECONDS "5 Perc." #define STRING_CUSTOM_SECONDS "Egyedi" -#define STRING_SEQUENTIAL_MODE "Event led mode" +#define STRING_EVENT_LED_MODE "Event led mode" #define STRING_ST7920_FULLSCREEN "Nagyképernyős Marlin mód" #define STRING_PLR_EN "Áramkiesés helyreálítása" #define STRING_SETTING_SAVE "Beállítások mentése" diff --git a/TFT/src/User/API/Language/language_it.h b/TFT/src/User/API/Language/language_it.h index 1a35d0ce5f..ccdead6d02 100644 --- a/TFT/src/User/API/Language/language_it.h +++ b/TFT/src/User/API/Language/language_it.h @@ -231,7 +231,7 @@ #define STRING_120_SECONDS "2 Min." #define STRING_300_SECONDS "5 Min." #define STRING_CUSTOM_SECONDS "Custom" -#define STRING_SEQUENTIAL_MODE "Event led mode" +#define STRING_EVENT_LED_MODE "Event led mode" #define STRING_ST7920_FULLSCREEN "Marlin mode schermo pieno" #define STRING_PLR_EN "Recupero mancanza corrente" #define STRING_SETTING_SAVE "Salva le impostazioni" diff --git a/TFT/src/User/API/Language/language_jp.h b/TFT/src/User/API/Language/language_jp.h index bafa46cfe3..d61d679197 100644 --- a/TFT/src/User/API/Language/language_jp.h +++ b/TFT/src/User/API/Language/language_jp.h @@ -231,7 +231,7 @@ #define STRING_120_SECONDS "2 Min." #define STRING_300_SECONDS "5 Min." #define STRING_CUSTOM_SECONDS "カスタム" -#define STRING_SEQUENTIAL_MODE "Event led mode" +#define STRING_EVENT_LED_MODE "Event led mode" #define STRING_ST7920_FULLSCREEN "フルスクリーンでマーリンモード" #define STRING_PLR_EN "Power loss recovery" #define STRING_SETTING_SAVE "Save settings" diff --git a/TFT/src/User/API/Language/language_keywords.h b/TFT/src/User/API/Language/language_keywords.h index a884a3af1c..b3606c6cad 100644 --- a/TFT/src/User/API/Language/language_keywords.h +++ b/TFT/src/User/API/Language/language_keywords.h @@ -239,7 +239,7 @@ extern "C" { #define LANG_KEY_120_SECONDS "label_120_seconds:" #define LANG_KEY_300_SECONDS "label_300_seconds:" #define LANG_KEY_CUSTOM_SECONDS "label_custom_seconds:" -#define LANG_KEY_SEQUENTIAL_MODE "label_event_led_mode:" +#define LANG_KEY_EVENT_LED_MODE "label_event_led_mode:" #define LANG_KEY_ST7920_FULLSCREEN "label_st7920_fullscreen:" #define LANG_KEY_PLR_EN "label_plr_en:" #define LANG_KEY_SETTING_SAVE "label_setting_save:" diff --git a/TFT/src/User/API/Language/language_nl.h b/TFT/src/User/API/Language/language_nl.h index 1e3b80e9bb..2d66a8c7fb 100644 --- a/TFT/src/User/API/Language/language_nl.h +++ b/TFT/src/User/API/Language/language_nl.h @@ -230,7 +230,7 @@ #define STRING_120_SECONDS "2 Min." #define STRING_300_SECONDS "5 Min." #define STRING_CUSTOM_SECONDS "Custom" -#define STRING_SEQUENTIAL_MODE "Event led mode" +#define STRING_EVENT_LED_MODE "Event led mode" #define STRING_ST7920_FULLSCREEN "Marlin mode in fullscreen" #define STRING_PLR_EN "Power loss recovery" #define STRING_SETTING_SAVE "Save settings" diff --git a/TFT/src/User/API/Language/language_pl.h b/TFT/src/User/API/Language/language_pl.h index b8815086c7..1dd43c9269 100644 --- a/TFT/src/User/API/Language/language_pl.h +++ b/TFT/src/User/API/Language/language_pl.h @@ -231,7 +231,7 @@ #define STRING_120_SECONDS "2 Min." #define STRING_300_SECONDS "5 Min." #define STRING_CUSTOM_SECONDS "Custom" -#define STRING_SEQUENTIAL_MODE "Event led mode" +#define STRING_EVENT_LED_MODE "Event led mode" #define STRING_ST7920_FULLSCREEN "Marlin mode in fullscreen" #define STRING_PLR_EN "Power loss recovery" #define STRING_SETTING_SAVE "Save settings" diff --git a/TFT/src/User/API/Language/language_pt.h b/TFT/src/User/API/Language/language_pt.h index 7307737303..f16a3a01af 100644 --- a/TFT/src/User/API/Language/language_pt.h +++ b/TFT/src/User/API/Language/language_pt.h @@ -231,7 +231,7 @@ #define STRING_120_SECONDS "2 Min." #define STRING_300_SECONDS "5 Min." #define STRING_CUSTOM_SECONDS "Custom" -#define STRING_SEQUENTIAL_MODE "Event led mode" +#define STRING_EVENT_LED_MODE "Event led mode" #define STRING_ST7920_FULLSCREEN "Marlin mode in fullscreen" #define STRING_PLR_EN "Power loss recovery" #define STRING_SETTING_SAVE "Save settings" diff --git a/TFT/src/User/API/Language/language_ru.h b/TFT/src/User/API/Language/language_ru.h index 185c77458c..def5ffc811 100644 --- a/TFT/src/User/API/Language/language_ru.h +++ b/TFT/src/User/API/Language/language_ru.h @@ -231,7 +231,7 @@ #define STRING_120_SECONDS "2 мин." #define STRING_300_SECONDS "5 мин." #define STRING_CUSTOM_SECONDS "Своё" -#define STRING_SEQUENTIAL_MODE "Event led mode" +#define STRING_EVENT_LED_MODE "Event led mode" #define STRING_ST7920_FULLSCREEN "Marlin на весь экран" #define STRING_PLR_EN "Работа после потери питания" #define STRING_SETTING_SAVE "Сохранить настройки" diff --git a/TFT/src/User/API/Language/language_sk.h b/TFT/src/User/API/Language/language_sk.h index 5ffc532def..b383e2c27a 100644 --- a/TFT/src/User/API/Language/language_sk.h +++ b/TFT/src/User/API/Language/language_sk.h @@ -231,7 +231,7 @@ #define STRING_120_SECONDS "2 Min." #define STRING_300_SECONDS "5 Min." #define STRING_CUSTOM_SECONDS "Custom" -#define STRING_SEQUENTIAL_MODE "Event led mode" +#define STRING_EVENT_LED_MODE "Event led mode" #define STRING_ST7920_FULLSCREEN "Marlin mode in fullscreen" #define STRING_PLR_EN "Power loss recovery" #define STRING_SETTING_SAVE "Save settings" diff --git a/TFT/src/User/API/Language/language_sl.h b/TFT/src/User/API/Language/language_sl.h index 2f8d82ef11..21b686aeb7 100644 --- a/TFT/src/User/API/Language/language_sl.h +++ b/TFT/src/User/API/Language/language_sl.h @@ -231,7 +231,7 @@ #define STRING_120_SECONDS "2 min." #define STRING_300_SECONDS "5 min." #define STRING_CUSTOM_SECONDS "Po meri" -#define STRING_SEQUENTIAL_MODE "Event led mode" +#define STRING_EVENT_LED_MODE "Event led mode" #define STRING_ST7920_FULLSCREEN "Marlin čez cel zaslon" #define STRING_PLR_EN "Power loss recovery" #define STRING_SETTING_SAVE "Save settings" diff --git a/TFT/src/User/API/Language/language_tc.h b/TFT/src/User/API/Language/language_tc.h index 53ff3f3797..b09fa914cb 100644 --- a/TFT/src/User/API/Language/language_tc.h +++ b/TFT/src/User/API/Language/language_tc.h @@ -231,7 +231,7 @@ #define STRING_120_SECONDS "2分鐘" #define STRING_300_SECONDS "5分鐘" #define STRING_CUSTOM_SECONDS "自訂" -#define STRING_SEQUENTIAL_MODE "Event led mode" +#define STRING_EVENT_LED_MODE "Event led mode" #define STRING_ST7920_FULLSCREEN "全螢幕Marlin模式" #define STRING_PLR_EN "断电续打" #define STRING_SETTING_SAVE "保存设置" diff --git a/TFT/src/User/API/Language/language_tr.h b/TFT/src/User/API/Language/language_tr.h index c3f6944729..caeea42687 100644 --- a/TFT/src/User/API/Language/language_tr.h +++ b/TFT/src/User/API/Language/language_tr.h @@ -231,7 +231,7 @@ #define STRING_120_SECONDS "2 Dak." #define STRING_300_SECONDS "5 Dak." #define STRING_CUSTOM_SECONDS "Kişisel" -#define STRING_SEQUENTIAL_MODE "Event led mode" +#define STRING_EVENT_LED_MODE "Event led mode" #define STRING_ST7920_FULLSCREEN "Marlin mode in fullscreen" #define STRING_PLR_EN "Power loss recovery" #define STRING_SETTING_SAVE "Save settings" diff --git a/TFT/src/User/API/SpeedControl.c b/TFT/src/User/API/SpeedControl.c index 4ac0715982..a71e00c790 100644 --- a/TFT/src/User/API/SpeedControl.c +++ b/TFT/src/User/API/SpeedControl.c @@ -53,24 +53,17 @@ bool SpeedChanged(u8 i) void loopSpeed(void) { - for(u8 i = 0; i < SPEED_NUM;i++) -<<<<<<< HEAD - if (curPercent[i] != percent[i]) + for (u8 i = 0; i < SPEED_NUM;i++) + if ((curPercent[i] != percent[i]) && (OS_GetTimeMs() > nextSpeedTime)) { - curPercent[i] = percent[i]; - if (send_waiting[i] != true) -======= - if((curPercent[i] != percent[i]) && (OS_GetTimeMs() > nextSpeedTime)) - { - if(send_waiting[i] == false) ->>>>>>> upstream/master + if (send_waiting[i] == false) { send_waiting[i] = true; const char *speedCmd[SPEED_NUM] = {"M220","M221"}; send_waiting[i] = storeCmd("%s S%d\n",speedCmd[i], percent[i]); } - if (send_waiting[i] == true) curPercent[i] = percent[i]; - nextSpeedTime = OS_GetTimeMs() + nextSpeedWait; // avoid rapid fire, clogging the queue + if (send_waiting[i] == true) curPercent[i] = percent[i]; + nextSpeedTime = OS_GetTimeMs() + nextSpeedWait; // avoid rapid fire, clogging the queue } } diff --git a/TFT/src/User/API/Temperature.c b/TFT/src/User/API/Temperature.c index 1f31bd0faf..f84a822f25 100644 --- a/TFT/src/User/API/Temperature.c +++ b/TFT/src/User/API/Temperature.c @@ -65,12 +65,8 @@ bool heatHasWaiting(void) void heatSetIsWaiting(uint8_t tool, HEATER_WAIT isWaiting) { heater.T[tool].waiting = isWaiting; -<<<<<<< HEAD - if (isWaiting != WAIT_NONE) // wait heating now, query more frequently -======= - if(isWaiting != WAIT_NONE) // wait heating now, query more frequently ->>>>>>> upstream/master + if (isWaiting != WAIT_NONE) // wait heating now, query more frequently { heatSetUpdateSeconds(TEMPERATURE_QUERY_FAST_SECONDS); } @@ -167,26 +163,15 @@ void updateNextHeatCheckTime(void) void loopCheckHeater(void) { -<<<<<<< HEAD - do - { // Send M105 query temperature continuously - if (heat_update_waiting == true) - { - updateNextHeatCheckTime(); - break; - } - if (OS_GetTimeMs() < nextHeatCheckTime) break; - if (requestCommandInfoIsRunning()) break; //to avoid colision in Gcode response processing - if (storeCmd("M105\n") == false) break; - updateNextHeatCheckTime(); - heat_update_waiting = true; - }while(0); -======= if (!infoMachineSettings.autoReportTemp) // TFT need not M105 to query the temperature, but uses M155 to automatically report if motherboard supports AUTO_REPORT_TEMPERATURESS feature { do { // Send M105 query temperature continuously - if (heat_update_waiting == true) {updateNextHeatCheckTime();break;} + if (heat_update_waiting == true) + { + updateNextHeatCheckTime(); + break; + } if (OS_GetTimeMs() < nextHeatCheckTime) break; if (requestCommandInfoIsRunning()) break; // To avoid colision in Gcode response processing if (storeCmd("M105\n") == false) break; @@ -194,7 +179,6 @@ void loopCheckHeater(void) heat_update_waiting = true; }while(0); } ->>>>>>> upstream/master // Query the heater that needs to wait for the temperature to rise, whether it reaches the set temperature for (uint8_t i=0; i< MAX_HEATER_COUNT; i++) @@ -211,11 +195,7 @@ void loopCheckHeater(void) if (heatHasWaiting()) continue; if (infoMenu.menu[infoMenu.cur] == menuHeat) break; -<<<<<<< HEAD - heat_update_time = TEMPERATURE_QUERY_SLOW_DURATION; -======= heatSetUpdateSeconds(TEMPERATURE_QUERY_SLOW_SECONDS); ->>>>>>> upstream/master } for (uint8_t i = 0; i < MAX_HEATER_COUNT; i++) // If the target temperature changes, send a Gcode to set the motherboard diff --git a/TFT/src/User/API/config.c b/TFT/src/User/API/config.c index 6b319d8f41..20aee173ac 100644 --- a/TFT/src/User/API/config.c +++ b/TFT/src/User/API/config.c @@ -1214,7 +1214,7 @@ void parseConfigKey(u16 index) break; #endif - case C_INDEX_SEQUENTIAL_MODE: + case C_INDEX_EVENT_LED_MODE: if (inLimit(config_int(), 0, 1)) { infoSettings.event_led_mode = config_int(); diff --git a/TFT/src/User/API/config.h b/TFT/src/User/API/config.h index 32216950ea..7b8c95a033 100644 --- a/TFT/src/User/API/config.h +++ b/TFT/src/User/API/config.h @@ -109,7 +109,7 @@ extern "C" { #define CONFIG_BRIGHTNESS "lcd_brightness:" #define CONFIG_BRIGHTNESS_IDLE "lcd_idle_brightness:" #define CONFIG_BRIGHTNESS_IDLE_DELAY "lcd_idle_delay:" -#define CONFIG_SEQUENTIAL_MODE "event_led_mode:" +#define CONFIG_EVENT_LED_MODE "event_led_mode:" //-----------------------------Custom G-Code Commands (up to 15 custom G-code) #define CONFIG_CUSTOM_LABEL_1 "custom_label_1:" diff --git a/TFT/src/User/API/config.inc b/TFT/src/User/API/config.inc index 84d1c88624..099d346fa8 100644 --- a/TFT/src/User/API/config.inc +++ b/TFT/src/User/API/config.inc @@ -99,7 +99,7 @@ X_CONFIG(KNOB_LED_IDLE) X_CONFIG(BRIGHTNESS) X_CONFIG(BRIGHTNESS_IDLE) X_CONFIG(BRIGHTNESS_IDLE_DELAY) -X_CONFIG(SEQUENTIAL_MODE) +X_CONFIG(EVENT_LED_MODE) //-----------------------------CustomG-Code Commands upto 15 custom G-code X_CONFIG(CUSTOM_LABEL_1) X_CONFIG(CUSTOM_LABEL_2) diff --git a/TFT/src/User/API/event_led_mode.h b/TFT/src/User/API/event_led_mode.h index 245dfc73af..3ef6694e66 100644 --- a/TFT/src/User/API/event_led_mode.h +++ b/TFT/src/User/API/event_led_mode.h @@ -4,7 +4,7 @@ extern "C" { #endif -void setEventLedModeColor(void); +void setEventLedModeColor (void); #ifdef __cplusplus } diff --git a/TFT/src/User/API/parseACK.c b/TFT/src/User/API/parseACK.c index 6e47d2b2be..6eb57303e8 100644 --- a/TFT/src/User/API/parseACK.c +++ b/TFT/src/User/API/parseACK.c @@ -450,13 +450,9 @@ void parseACK(void) setDualStepperStatus(E_STEPPER, true); } //parse and store Max Feed Rate values -<<<<<<< HEAD - else if (ack_seen("M203 X")) - { -======= - else if(ack_seen("M203 X")){ ->>>>>>> upstream/master - setParameter(P_MAX_FEED_RATE, X_STEPPER, ack_value()); + else if(ack_seen("M203 X")) + { + setParameter(P_MAX_FEED_RATE, X_STEPPER, ack_value()); if (ack_seen("Y")) setParameter(P_MAX_FEED_RATE, Y_STEPPER, ack_value()); if (ack_seen("Z")) setParameter(P_MAX_FEED_RATE, Z_STEPPER, ack_value()); if (ack_seen("E")) setParameter(P_MAX_FEED_RATE, E_STEPPER, ack_value()); diff --git a/TFT/src/User/Menu/Fan.c b/TFT/src/User/Menu/Fan.c index ee183c5283..cbdd6ac56f 100644 --- a/TFT/src/User/Menu/Fan.c +++ b/TFT/src/User/Menu/Fan.c @@ -19,15 +19,14 @@ void fanSpeedReDraw(bool skip_header) GUI_DispString(exhibitRect.x0, exhibitRect.y0, (u8 *)tempstr); } -<<<<<<< HEAD - if (infoSettings.fan_percentage == 1) - sprintf(tempstr, " %d%% ", fanGetSpeedPercent(curIndex)); -======= if(infoSettings.fan_percentage == 1) + { sprintf(tempstr, " %d%% ", fanGetDesiredPercent(curIndex)); ->>>>>>> upstream/master + } else + { sprintf(tempstr, " %d ", (int)fanGetDesiredSpeed(curIndex)); + } setLargeFont(true); GUI_DispStringInPrect(&exhibitRect, (u8 *)tempstr); diff --git a/TFT/src/User/Menu/FeatureSettings.c b/TFT/src/User/Menu/FeatureSettings.c index e6864e9a66..cc0a5ca27d 100644 --- a/TFT/src/User/Menu/FeatureSettings.c +++ b/TFT/src/User/Menu/FeatureSettings.c @@ -83,7 +83,7 @@ typedef enum SKEY_LCD_BRIGTHNESS_DIM, SKEY_LCD_DIM_IDLE_TIMER, #endif - SKEY_SEQUENTIAL_MODE, + SKEY_EVENT_LED_MODE, #ifdef ST7920_SPI SKEY_ST7920_FULLSCREEN, #endif @@ -127,7 +127,7 @@ LISTITEM settingPage[SKEY_COUNT] = { {ICONCHAR_BLANK, LIST_CUSTOMVALUE, LABEL_LCD_BRIGHTNESS_DIM, LABEL_DYNAMIC}, {ICONCHAR_BLANK, LIST_CUSTOMVALUE, LABEL_LCD_DIM_IDLE_TIMER, LABEL_DYNAMIC}, #endif - {ICONCHAR_BLANK, LIST_TOGGLE, LABEL_SEQUENTIAL_MODE, LABEL_BACKGROUND}, + {ICONCHAR_BLANK, LIST_TOGGLE, LABEL_EVENT_LED_MODE, LABEL_BACKGROUND}, #ifdef ST7920_SPI {ICONCHAR_BLANK, LIST_TOGGLE, LABEL_ST7920_FULLSCREEN, LABEL_OFF}, #endif @@ -272,7 +272,7 @@ void updateFeatureSettings(uint8_t key_val) #endif //LCD_LED_PWM_CHANNEL - case SKEY_SEQUENTIAL_MODE: + case SKEY_EVENT_LED_MODE: infoSettings.event_led_mode = (infoSettings.event_led_mode + 1) % TOGGLE_NUM; settingPage[item_index].icon = toggleitem[infoSettings.event_led_mode]; break; @@ -399,7 +399,7 @@ void loadFeatureSettings() break; #endif //LCD_LED_PWM_CHANNEL - case SKEY_SEQUENTIAL_MODE: + case SKEY_EVENT_LED_MODE: settingPage[item_index].icon = toggleitem[infoSettings.event_led_mode]; break; diff --git a/TFT/src/User/Menu/Heat.c b/TFT/src/User/Menu/Heat.c index 07acaa032d..85582eeade 100644 --- a/TFT/src/User/Menu/Heat.c +++ b/TFT/src/User/Menu/Heat.c @@ -163,13 +163,8 @@ void menuHeat(void) } // Set slow update time if not waiting for target temperature -<<<<<<< HEAD - if (heatHasWaiting() == false) - { - heatSetUpdateTime(TEMPERATURE_QUERY_SLOW_DURATION); - } -======= if(heatHasWaiting() == false) + { heatSetUpdateSeconds(TEMPERATURE_QUERY_SLOW_SECONDS); ->>>>>>> upstream/master + } } diff --git a/TFT/src/User/Menu/PrintingMenu.c b/TFT/src/User/Menu/PrintingMenu.c index 20acb2c732..b9d7a731ab 100644 --- a/TFT/src/User/Menu/PrintingMenu.c +++ b/TFT/src/User/Menu/PrintingMenu.c @@ -94,11 +94,7 @@ void menuBeforePrinting(void) if (infoMachineSettings.autoReportSDStatus ==1) { -<<<<<<< HEAD - request_M27(infoSettings.m27_refresh_time*1000); //Check if there is a SD or USB print running. -======= request_M27(infoSettings.m27_refresh_time); //Check if there is a SD or USB print running. ->>>>>>> upstream/master } else { @@ -198,11 +194,7 @@ void reDrawSpeed(int icon_pos) sprintf(tempstr, "%d%%", speedGetPercent(c_speedID) ); -<<<<<<< HEAD if (c_speedID == 0) -======= - if(c_speedID == 0) ->>>>>>> upstream/master { ICON_ReadDisplay(printinfo_points[icon_pos].x,printinfo_points[icon_pos].y,ICON_PRINTING_SPEED); } @@ -395,25 +387,15 @@ void menuPrinting(void) } //Z_AXIS coordinate -<<<<<<< HEAD - if (curLayer != coordinateGetAxisTarget(Z_AXIS)) - { - curLayer = coordinateGetAxisTarget(Z_AXIS); -======= - if(curLayer != (infoFile.source == BOARD_SD) ? coordinateGetAxisActual(Z_AXIS) : coordinateGetAxisTarget(Z_AXIS)) + if (curLayer != (infoFile.source == BOARD_SD) ? coordinateGetAxisActual(Z_AXIS) : coordinateGetAxisTarget(Z_AXIS)) { curLayer = (infoFile.source == BOARD_SD) ? coordinateGetAxisActual(Z_AXIS) : coordinateGetAxisTarget(Z_AXIS); ->>>>>>> upstream/master rapid_serial_loop(); //perform backend printing loop before drawing to avoid printer idling reDrawLayer(Z_ICON_POS); } //check change in speed or flow -<<<<<<< HEAD if (curspeed[c_speedID] != speedGetPercent(c_speedID)) -======= - if(curspeed[c_speedID] != speedGetPercent(c_speedID)) ->>>>>>> upstream/master { curspeed[c_speedID] = speedGetPercent(c_speedID); rapid_serial_loop(); //perform backend printing loop before drawing to avoid printer idling @@ -464,7 +446,8 @@ void menuPrinting(void) } break; - default :break; + default : + break; } loopProcess(); }