From 259794c0bebd38b31c00268b6720aa8c241fd239 Mon Sep 17 00:00:00 2001 From: Scott Lahteine Date: Tue, 26 Apr 2016 22:25:50 -0700 Subject: [PATCH] Make DISPLAY_CHARSET_HD44780 a single setting --- Marlin/Configuration.h | 42 ++++++++++--------- Marlin/SanityCheck.h | 4 +- Marlin/dogm_lcd_implementation.h | 9 ++-- .../Felix/Configuration.h | 42 ++++++++++--------- .../Felix/Configuration_DUAL.h | 42 ++++++++++--------- .../Hephestos/Configuration.h | 42 ++++++++++--------- .../Hephestos_2/Configuration.h | 42 ++++++++++--------- .../K8200/Configuration.h | 42 ++++++++++--------- .../RepRapWorld/Megatronics/Configuration.h | 42 ++++++++++--------- .../RigidBot/Configuration.h | 42 ++++++++++--------- .../SCARA/Configuration.h | 42 ++++++++++--------- .../TAZ4/Configuration.h | 42 ++++++++++--------- .../WITBOX/Configuration.h | 42 ++++++++++--------- .../adafruit/ST7565/Configuration.h | 42 ++++++++++--------- .../delta/biv2.5/Configuration.h | 42 ++++++++++--------- .../delta/generic/Configuration.h | 42 ++++++++++--------- .../delta/kossel_mini/Configuration.h | 42 ++++++++++--------- .../delta/kossel_pro/Configuration.h | 42 ++++++++++--------- .../delta/kossel_xl/Configuration.h | 42 ++++++++++--------- .../makibox/Configuration.h | 42 ++++++++++--------- .../tvrrug/Round2/Configuration.h | 42 ++++++++++--------- Marlin/language.h | 8 ++-- Marlin/utf_mapper.h | 26 ++++++------ 23 files changed, 461 insertions(+), 384 deletions(-) diff --git a/Marlin/Configuration.h b/Marlin/Configuration.h index edbeb44ab7..9ecfad283c 100644 --- a/Marlin/Configuration.h +++ b/Marlin/Configuration.h @@ -773,25 +773,29 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l // #define LANGUAGE_INCLUDE GENERATE_LANGUAGE_INCLUDE(en) -// -// LCD CHARACTER SET -// -// Choose ONE of the following charset options. This selection depends on -// your physical hardware, so it must match your character-based LCD. -// -// Note: This option is NOT applicable to graphical displays. -// -// To find out what type of display you have: -// - Compile and upload with the language (above) set to 'test' -// - Click the controller to view the LCD menu -// -// The LCD will display two lines from the upper half of the character set. -// -// See also https://github.com/MarlinFirmware/Marlin/wiki/LCD-Language -// -#define DISPLAY_CHARSET_HD44780_JAPAN // this is the most common hardware -//#define DISPLAY_CHARSET_HD44780_WESTERN -//#define DISPLAY_CHARSET_HD44780_CYRILLIC +/** + * LCD Character Set + * + * Note: This option is NOT applicable to Graphical Displays. + * + * All character-based LCD's provide ASCII plus one of these + * language extensions: + * + * - JAPANESE ... the most common + * - WESTERN ... with more accented characters + * - CYRILLIC ... for the Russian language + * + * To determine the language extension installed on your controller: + * + * - Compile and upload with LCD_LANGUAGE set to 'test' + * - Click the controller to view the LCD menu + * - The LCD will display Japanese, Western, or Cyrillic text + * + * See https://github.com/MarlinFirmware/Marlin/wiki/LCD-Language + * + * :['JAPANESE','WESTERN','CYRILLIC'] + */ +#define DISPLAY_CHARSET_HD44780 JAPANESE // // LCD TYPE diff --git a/Marlin/SanityCheck.h b/Marlin/SanityCheck.h index 89b77578a7..9f918781ea 100644 --- a/Marlin/SanityCheck.h +++ b/Marlin/SanityCheck.h @@ -172,8 +172,8 @@ /** * Required LCD language */ -#if DISABLED(DOGLCD) && ENABLED(ULTRA_LCD) && DISABLED(DISPLAY_CHARSET_HD44780_JAPAN) && DISABLED(DISPLAY_CHARSET_HD44780_WESTERN) && DISABLED(DISPLAY_CHARSET_HD44780_CYRILLIC) - #error You must enable either DISPLAY_CHARSET_HD44780_JAPAN or DISPLAY_CHARSET_HD44780_WESTERN or DISPLAY_CHARSET_HD44780_CYRILLIC for your LCD controller. +#if DISABLED(DOGLCD) && ENABLED(ULTRA_LCD) && !defined(DISPLAY_CHARSET_HD44780) + #error You must set DISPLAY_CHARSET_HD44780 to JAPANESE, WESTERN or CYRILLIC for your LCD controller. #endif /** diff --git a/Marlin/dogm_lcd_implementation.h b/Marlin/dogm_lcd_implementation.h index 0ecbbcbab0..3af19e15d4 100644 --- a/Marlin/dogm_lcd_implementation.h +++ b/Marlin/dogm_lcd_implementation.h @@ -37,7 +37,8 @@ #define DOGM_LCD_IMPLEMENTATION_H /** - * Implementation of the LCD display routines for a DOGM128 graphic display. These are common LCD 128x64 pixel graphic displays. + * Implementation of the LCD display routines for a DOGM128 graphic display. + * These are common LCD 128x64 pixel graphic displays. */ #if ENABLED(ULTIPANEL) @@ -91,13 +92,13 @@ #define FONT_MENU_NAME ISO10646_1_5x7 #endif #else // SIMULATE_ROMFONT - #if ENABLED(DISPLAY_CHARSET_HD44780_JAPAN) + #if DISPLAY_CHARSET_HD44780 == JAPANESE #include "dogm_font_data_HD44780_J.h" #define FONT_MENU_NAME HD44780_J_5x7 - #elif ENABLED(DISPLAY_CHARSET_HD44780_WESTERN) + #elif DISPLAY_CHARSET_HD44780 == WESTERN #include "dogm_font_data_HD44780_W.h" #define FONT_MENU_NAME HD44780_W_5x7 - #elif ENABLED(DISPLAY_CHARSET_HD44780_CYRILLIC) + #elif DISPLAY_CHARSET_HD44780 == CYRILLIC #include "dogm_font_data_HD44780_C.h" #define FONT_MENU_NAME HD44780_C_5x7 #else // fall-back diff --git a/Marlin/example_configurations/Felix/Configuration.h b/Marlin/example_configurations/Felix/Configuration.h index 1cdefc2bcf..7c23be9b8e 100644 --- a/Marlin/example_configurations/Felix/Configuration.h +++ b/Marlin/example_configurations/Felix/Configuration.h @@ -755,25 +755,29 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l // //#define LANGUAGE_INCLUDE GENERATE_LANGUAGE_INCLUDE(en) -// -// LCD CHARACTER SET -// -// Choose ONE of the following charset options. This selection depends on -// your physical hardware, so it must match your character-based LCD. -// -// Note: This option is NOT applicable to graphical displays. -// -// To find out what type of display you have: -// - Compile and upload with the language (above) set to 'test' -// - Click the controller to view the LCD menu -// -// The LCD will display two lines from the upper half of the character set. -// -// See also https://github.com/MarlinFirmware/Marlin/wiki/LCD-Language -// -#define DISPLAY_CHARSET_HD44780_JAPAN // this is the most common hardware -//#define DISPLAY_CHARSET_HD44780_WESTERN -//#define DISPLAY_CHARSET_HD44780_CYRILLIC +/** + * LCD Character Set + * + * Note: This option is NOT applicable to Graphical Displays. + * + * All character-based LCD's provide ASCII plus one of these + * language extensions: + * + * - JAPANESE ... the most common + * - WESTERN ... with more accented characters + * - CYRILLIC ... for the Russian language + * + * To determine the language extension installed on your controller: + * + * - Compile and upload with LCD_LANGUAGE set to 'test' + * - Click the controller to view the LCD menu + * - The LCD will display Japanese, Western, or Cyrillic text + * + * See https://github.com/MarlinFirmware/Marlin/wiki/LCD-Language + * + * :['JAPANESE','WESTERN','CYRILLIC'] + */ +#define DISPLAY_CHARSET_HD44780 JAPANESE // // LCD TYPE diff --git a/Marlin/example_configurations/Felix/Configuration_DUAL.h b/Marlin/example_configurations/Felix/Configuration_DUAL.h index 3707f72a4c..3da920c125 100644 --- a/Marlin/example_configurations/Felix/Configuration_DUAL.h +++ b/Marlin/example_configurations/Felix/Configuration_DUAL.h @@ -752,25 +752,29 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l // //#define LANGUAGE_INCLUDE GENERATE_LANGUAGE_INCLUDE(en) -// -// LCD CHARACTER SET -// -// Choose ONE of the following charset options. This selection depends on -// your physical hardware, so it must match your character-based LCD. -// -// Note: This option is NOT applicable to graphical displays. -// -// To find out what type of display you have: -// - Compile and upload with the language (above) set to 'test' -// - Click the controller to view the LCD menu -// -// The LCD will display two lines from the upper half of the character set. -// -// See also https://github.com/MarlinFirmware/Marlin/wiki/LCD-Language -// -#define DISPLAY_CHARSET_HD44780_JAPAN // this is the most common hardware -//#define DISPLAY_CHARSET_HD44780_WESTERN -//#define DISPLAY_CHARSET_HD44780_CYRILLIC +/** + * LCD Character Set + * + * Note: This option is NOT applicable to Graphical Displays. + * + * All character-based LCD's provide ASCII plus one of these + * language extensions: + * + * - JAPANESE ... the most common + * - WESTERN ... with more accented characters + * - CYRILLIC ... for the Russian language + * + * To determine the language extension installed on your controller: + * + * - Compile and upload with LCD_LANGUAGE set to 'test' + * - Click the controller to view the LCD menu + * - The LCD will display Japanese, Western, or Cyrillic text + * + * See https://github.com/MarlinFirmware/Marlin/wiki/LCD-Language + * + * :['JAPANESE','WESTERN','CYRILLIC'] + */ +#define DISPLAY_CHARSET_HD44780 JAPANESE // // LCD TYPE diff --git a/Marlin/example_configurations/Hephestos/Configuration.h b/Marlin/example_configurations/Hephestos/Configuration.h index 395bb8e761..cd666eb501 100644 --- a/Marlin/example_configurations/Hephestos/Configuration.h +++ b/Marlin/example_configurations/Hephestos/Configuration.h @@ -764,25 +764,29 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = true; // set to true to invert the lo // //#define LANGUAGE_INCLUDE GENERATE_LANGUAGE_INCLUDE(en) -// -// LCD CHARACTER SET -// -// Choose ONE of the following charset options. This selection depends on -// your physical hardware, so it must match your character-based LCD. -// -// Note: This option is NOT applicable to graphical displays. -// -// To find out what type of display you have: -// - Compile and upload with the language (above) set to 'test' -// - Click the controller to view the LCD menu -// -// The LCD will display two lines from the upper half of the character set. -// -// See also https://github.com/MarlinFirmware/Marlin/wiki/LCD-Language -// -#define DISPLAY_CHARSET_HD44780_JAPAN // this is the most common hardware -//#define DISPLAY_CHARSET_HD44780_WESTERN -//#define DISPLAY_CHARSET_HD44780_CYRILLIC +/** + * LCD Character Set + * + * Note: This option is NOT applicable to Graphical Displays. + * + * All character-based LCD's provide ASCII plus one of these + * language extensions: + * + * - JAPANESE ... the most common + * - WESTERN ... with more accented characters + * - CYRILLIC ... for the Russian language + * + * To determine the language extension installed on your controller: + * + * - Compile and upload with LCD_LANGUAGE set to 'test' + * - Click the controller to view the LCD menu + * - The LCD will display Japanese, Western, or Cyrillic text + * + * See https://github.com/MarlinFirmware/Marlin/wiki/LCD-Language + * + * :['JAPANESE','WESTERN','CYRILLIC'] + */ +#define DISPLAY_CHARSET_HD44780 JAPANESE // // LCD TYPE diff --git a/Marlin/example_configurations/Hephestos_2/Configuration.h b/Marlin/example_configurations/Hephestos_2/Configuration.h index 0dbb1d7633..0490108940 100644 --- a/Marlin/example_configurations/Hephestos_2/Configuration.h +++ b/Marlin/example_configurations/Hephestos_2/Configuration.h @@ -766,25 +766,29 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l // #define LANGUAGE_INCLUDE GENERATE_LANGUAGE_INCLUDE(en) -// -// LCD CHARACTER SET -// -// Choose ONE of the following charset options. This selection depends on -// your physical hardware, so it must match your character-based LCD. -// -// Note: This option is NOT applicable to graphical displays. -// -// To find out what type of display you have: -// - Compile and upload with the language (above) set to 'test' -// - Click the controller to view the LCD menu -// -// The LCD will display two lines from the upper half of the character set. -// -// See also https://github.com/MarlinFirmware/Marlin/wiki/LCD-Language -// -#define DISPLAY_CHARSET_HD44780_JAPAN // this is the most common hardware -//#define DISPLAY_CHARSET_HD44780_WESTERN -//#define DISPLAY_CHARSET_HD44780_CYRILLIC +/** + * LCD Character Set + * + * Note: This option is NOT applicable to Graphical Displays. + * + * All character-based LCD's provide ASCII plus one of these + * language extensions: + * + * - JAPANESE ... the most common + * - WESTERN ... with more accented characters + * - CYRILLIC ... for the Russian language + * + * To determine the language extension installed on your controller: + * + * - Compile and upload with LCD_LANGUAGE set to 'test' + * - Click the controller to view the LCD menu + * - The LCD will display Japanese, Western, or Cyrillic text + * + * See https://github.com/MarlinFirmware/Marlin/wiki/LCD-Language + * + * :['JAPANESE','WESTERN','CYRILLIC'] + */ +#define DISPLAY_CHARSET_HD44780 JAPANESE // // LCD TYPE diff --git a/Marlin/example_configurations/K8200/Configuration.h b/Marlin/example_configurations/K8200/Configuration.h index 0d43cd2c3f..f276919254 100644 --- a/Marlin/example_configurations/K8200/Configuration.h +++ b/Marlin/example_configurations/K8200/Configuration.h @@ -789,25 +789,29 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l // #define LANGUAGE_INCLUDE GENERATE_LANGUAGE_INCLUDE(en) -// -// LCD CHARACTER SET -// -// Choose ONE of the following charset options. This selection depends on -// your physical hardware, so it must match your character-based LCD. -// -// Note: This option is NOT applicable to graphical displays. -// -// To find out what type of display you have: -// - Compile and upload with the language (above) set to 'test' -// - Click the controller to view the LCD menu -// -// The LCD will display two lines from the upper half of the character set. -// -// See also https://github.com/MarlinFirmware/Marlin/wiki/LCD-Language -// -#define DISPLAY_CHARSET_HD44780_JAPAN // K8200: for Display VM8201 -//#define DISPLAY_CHARSET_HD44780_WESTERN -//#define DISPLAY_CHARSET_HD44780_CYRILLIC +/** + * LCD Character Set + * + * Note: This option is NOT applicable to Graphical Displays. + * + * All character-based LCD's provide ASCII plus one of these + * language extensions: + * + * - JAPANESE ... the most common + * - WESTERN ... with more accented characters + * - CYRILLIC ... for the Russian language + * + * To determine the language extension installed on your controller: + * + * - Compile and upload with LCD_LANGUAGE set to 'test' + * - Click the controller to view the LCD menu + * - The LCD will display Japanese, Western, or Cyrillic text + * + * See https://github.com/MarlinFirmware/Marlin/wiki/LCD-Language + * + * :['JAPANESE','WESTERN','CYRILLIC'] + */ +#define DISPLAY_CHARSET_HD44780 JAPANESE // K8200: for Display VM8201 // // LCD TYPE diff --git a/Marlin/example_configurations/RepRapWorld/Megatronics/Configuration.h b/Marlin/example_configurations/RepRapWorld/Megatronics/Configuration.h index 3f6208345c..b86d79efa7 100644 --- a/Marlin/example_configurations/RepRapWorld/Megatronics/Configuration.h +++ b/Marlin/example_configurations/RepRapWorld/Megatronics/Configuration.h @@ -772,25 +772,29 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l // #define LANGUAGE_INCLUDE GENERATE_LANGUAGE_INCLUDE(en) -// -// LCD CHARACTER SET -// -// Choose ONE of the following charset options. This selection depends on -// your physical hardware, so it must match your character-based LCD. -// -// Note: This option is NOT applicable to graphical displays. -// -// To find out what type of display you have: -// - Compile and upload with the language (above) set to 'test' -// - Click the controller to view the LCD menu -// -// The LCD will display two lines from the upper half of the character set. -// -// See also https://github.com/MarlinFirmware/Marlin/wiki/LCD-Language -// -#define DISPLAY_CHARSET_HD44780_JAPAN // this is the most common hardware -//#define DISPLAY_CHARSET_HD44780_WESTERN -//#define DISPLAY_CHARSET_HD44780_CYRILLIC +/** + * LCD Character Set + * + * Note: This option is NOT applicable to Graphical Displays. + * + * All character-based LCD's provide ASCII plus one of these + * language extensions: + * + * - JAPANESE ... the most common + * - WESTERN ... with more accented characters + * - CYRILLIC ... for the Russian language + * + * To determine the language extension installed on your controller: + * + * - Compile and upload with LCD_LANGUAGE set to 'test' + * - Click the controller to view the LCD menu + * - The LCD will display Japanese, Western, or Cyrillic text + * + * See https://github.com/MarlinFirmware/Marlin/wiki/LCD-Language + * + * :['JAPANESE','WESTERN','CYRILLIC'] + */ +#define DISPLAY_CHARSET_HD44780 JAPANESE // // LCD TYPE diff --git a/Marlin/example_configurations/RigidBot/Configuration.h b/Marlin/example_configurations/RigidBot/Configuration.h index 82b66ef9d1..7e56111574 100644 --- a/Marlin/example_configurations/RigidBot/Configuration.h +++ b/Marlin/example_configurations/RigidBot/Configuration.h @@ -767,25 +767,29 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l // #define LANGUAGE_INCLUDE GENERATE_LANGUAGE_INCLUDE(en) -// -// LCD CHARACTER SET -// -// Choose ONE of the following charset options. This selection depends on -// your physical hardware, so it must match your character-based LCD. -// -// Note: This option is NOT applicable to graphical displays. -// -// To find out what type of display you have: -// - Compile and upload with the language (above) set to 'test' -// - Click the controller to view the LCD menu -// -// The LCD will display two lines from the upper half of the character set. -// -// See also https://github.com/MarlinFirmware/Marlin/wiki/LCD-Language -// -#define DISPLAY_CHARSET_HD44780_JAPAN // this is the most common hardware -//#define DISPLAY_CHARSET_HD44780_WESTERN -//#define DISPLAY_CHARSET_HD44780_CYRILLIC +/** + * LCD Character Set + * + * Note: This option is NOT applicable to Graphical Displays. + * + * All character-based LCD's provide ASCII plus one of these + * language extensions: + * + * - JAPANESE ... the most common + * - WESTERN ... with more accented characters + * - CYRILLIC ... for the Russian language + * + * To determine the language extension installed on your controller: + * + * - Compile and upload with LCD_LANGUAGE set to 'test' + * - Click the controller to view the LCD menu + * - The LCD will display Japanese, Western, or Cyrillic text + * + * See https://github.com/MarlinFirmware/Marlin/wiki/LCD-Language + * + * :['JAPANESE','WESTERN','CYRILLIC'] + */ +#define DISPLAY_CHARSET_HD44780 JAPANESE // // LCD TYPE diff --git a/Marlin/example_configurations/SCARA/Configuration.h b/Marlin/example_configurations/SCARA/Configuration.h index 808bf7e62f..e74071d79c 100644 --- a/Marlin/example_configurations/SCARA/Configuration.h +++ b/Marlin/example_configurations/SCARA/Configuration.h @@ -780,25 +780,29 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l // //#define LANGUAGE_INCLUDE GENERATE_LANGUAGE_INCLUDE(en) -// -// LCD CHARACTER SET -// -// Choose ONE of the following charset options. This selection depends on -// your physical hardware, so it must match your character-based LCD. -// -// Note: This option is NOT applicable to graphical displays. -// -// To find out what type of display you have: -// - Compile and upload with the language (above) set to 'test' -// - Click the controller to view the LCD menu -// -// The LCD will display two lines from the upper half of the character set. -// -// See also https://github.com/MarlinFirmware/Marlin/wiki/LCD-Language -// -#define DISPLAY_CHARSET_HD44780_JAPAN // this is the most common hardware -//#define DISPLAY_CHARSET_HD44780_WESTERN -//#define DISPLAY_CHARSET_HD44780_CYRILLIC +/** + * LCD Character Set + * + * Note: This option is NOT applicable to Graphical Displays. + * + * All character-based LCD's provide ASCII plus one of these + * language extensions: + * + * - JAPANESE ... the most common + * - WESTERN ... with more accented characters + * - CYRILLIC ... for the Russian language + * + * To determine the language extension installed on your controller: + * + * - Compile and upload with LCD_LANGUAGE set to 'test' + * - Click the controller to view the LCD menu + * - The LCD will display Japanese, Western, or Cyrillic text + * + * See https://github.com/MarlinFirmware/Marlin/wiki/LCD-Language + * + * :['JAPANESE','WESTERN','CYRILLIC'] + */ +#define DISPLAY_CHARSET_HD44780 JAPANESE // // LCD TYPE diff --git a/Marlin/example_configurations/TAZ4/Configuration.h b/Marlin/example_configurations/TAZ4/Configuration.h index 6c8165ea0e..8b91f45815 100644 --- a/Marlin/example_configurations/TAZ4/Configuration.h +++ b/Marlin/example_configurations/TAZ4/Configuration.h @@ -793,25 +793,29 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l // #define LANGUAGE_INCLUDE GENERATE_LANGUAGE_INCLUDE(en) -// -// LCD CHARACTER SET -// -// Choose ONE of the following charset options. This selection depends on -// your physical hardware, so it must match your character-based LCD. -// -// Note: This option is NOT applicable to graphical displays. -// -// To find out what type of display you have: -// - Compile and upload with the language (above) set to 'test' -// - Click the controller to view the LCD menu -// -// The LCD will display two lines from the upper half of the character set. -// -// See also https://github.com/MarlinFirmware/Marlin/wiki/LCD-Language -// -#define DISPLAY_CHARSET_HD44780_JAPAN // this is the most common hardware -//#define DISPLAY_CHARSET_HD44780_WESTERN -//#define DISPLAY_CHARSET_HD44780_CYRILLIC +/** + * LCD Character Set + * + * Note: This option is NOT applicable to Graphical Displays. + * + * All character-based LCD's provide ASCII plus one of these + * language extensions: + * + * - JAPANESE ... the most common + * - WESTERN ... with more accented characters + * - CYRILLIC ... for the Russian language + * + * To determine the language extension installed on your controller: + * + * - Compile and upload with LCD_LANGUAGE set to 'test' + * - Click the controller to view the LCD menu + * - The LCD will display Japanese, Western, or Cyrillic text + * + * See https://github.com/MarlinFirmware/Marlin/wiki/LCD-Language + * + * :['JAPANESE','WESTERN','CYRILLIC'] + */ +#define DISPLAY_CHARSET_HD44780 JAPANESE // // LCD TYPE diff --git a/Marlin/example_configurations/WITBOX/Configuration.h b/Marlin/example_configurations/WITBOX/Configuration.h index 434143e38f..7e64c38483 100644 --- a/Marlin/example_configurations/WITBOX/Configuration.h +++ b/Marlin/example_configurations/WITBOX/Configuration.h @@ -764,25 +764,29 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = true; // set to true to invert the lo // //#define LANGUAGE_INCLUDE GENERATE_LANGUAGE_INCLUDE(en) -// -// LCD CHARACTER SET -// -// Choose ONE of the following charset options. This selection depends on -// your physical hardware, so it must match your character-based LCD. -// -// Note: This option is NOT applicable to graphical displays. -// -// To find out what type of display you have: -// - Compile and upload with the language (above) set to 'test' -// - Click the controller to view the LCD menu -// -// The LCD will display two lines from the upper half of the character set. -// -// See also https://github.com/MarlinFirmware/Marlin/wiki/LCD-Language -// -#define DISPLAY_CHARSET_HD44780_JAPAN // this is the most common hardware -//#define DISPLAY_CHARSET_HD44780_WESTERN -//#define DISPLAY_CHARSET_HD44780_CYRILLIC +/** + * LCD Character Set + * + * Note: This option is NOT applicable to Graphical Displays. + * + * All character-based LCD's provide ASCII plus one of these + * language extensions: + * + * - JAPANESE ... the most common + * - WESTERN ... with more accented characters + * - CYRILLIC ... for the Russian language + * + * To determine the language extension installed on your controller: + * + * - Compile and upload with LCD_LANGUAGE set to 'test' + * - Click the controller to view the LCD menu + * - The LCD will display Japanese, Western, or Cyrillic text + * + * See https://github.com/MarlinFirmware/Marlin/wiki/LCD-Language + * + * :['JAPANESE','WESTERN','CYRILLIC'] + */ +#define DISPLAY_CHARSET_HD44780 JAPANESE // // LCD TYPE diff --git a/Marlin/example_configurations/adafruit/ST7565/Configuration.h b/Marlin/example_configurations/adafruit/ST7565/Configuration.h index f941bb0d1c..90a7026962 100644 --- a/Marlin/example_configurations/adafruit/ST7565/Configuration.h +++ b/Marlin/example_configurations/adafruit/ST7565/Configuration.h @@ -772,25 +772,29 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l // #define LANGUAGE_INCLUDE GENERATE_LANGUAGE_INCLUDE(en) -// -// LCD CHARACTER SET -// -// Choose ONE of the following charset options. This selection depends on -// your physical hardware, so it must match your character-based LCD. -// -// Note: This option is NOT applicable to graphical displays. -// -// To find out what type of display you have: -// - Compile and upload with the language (above) set to 'test' -// - Click the controller to view the LCD menu -// -// The LCD will display two lines from the upper half of the character set. -// -// See also https://github.com/MarlinFirmware/Marlin/wiki/LCD-Language -// -#define DISPLAY_CHARSET_HD44780_JAPAN // this is the most common hardware -//#define DISPLAY_CHARSET_HD44780_WESTERN -//#define DISPLAY_CHARSET_HD44780_CYRILLIC +/** + * LCD Character Set + * + * Note: This option is NOT applicable to Graphical Displays. + * + * All character-based LCD's provide ASCII plus one of these + * language extensions: + * + * - JAPANESE ... the most common + * - WESTERN ... with more accented characters + * - CYRILLIC ... for the Russian language + * + * To determine the language extension installed on your controller: + * + * - Compile and upload with LCD_LANGUAGE set to 'test' + * - Click the controller to view the LCD menu + * - The LCD will display Japanese, Western, or Cyrillic text + * + * See https://github.com/MarlinFirmware/Marlin/wiki/LCD-Language + * + * :['JAPANESE','WESTERN','CYRILLIC'] + */ +#define DISPLAY_CHARSET_HD44780 JAPANESE // // LCD TYPE diff --git a/Marlin/example_configurations/delta/biv2.5/Configuration.h b/Marlin/example_configurations/delta/biv2.5/Configuration.h index 40d6e9af80..fd1d0ca7f9 100644 --- a/Marlin/example_configurations/delta/biv2.5/Configuration.h +++ b/Marlin/example_configurations/delta/biv2.5/Configuration.h @@ -901,25 +901,29 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = true; // set to true to invert the lo // #define LANGUAGE_INCLUDE GENERATE_LANGUAGE_INCLUDE(en) -// -// LCD CHARACTER SET -// -// Choose ONE of the following charset options. This selection depends on -// your physical hardware, so it must match your character-based LCD. -// -// Note: This option is NOT applicable to graphical displays. -// -// To find out what type of display you have: -// - Compile and upload with the language (above) set to 'test' -// - Click the controller to view the LCD menu -// -// The LCD will display two lines from the upper half of the character set. -// -// See also https://github.com/MarlinFirmware/Marlin/wiki/LCD-Language -// -#define DISPLAY_CHARSET_HD44780_JAPAN // this is the most common hardware -//#define DISPLAY_CHARSET_HD44780_WESTERN -//#define DISPLAY_CHARSET_HD44780_CYRILLIC +/** + * LCD Character Set + * + * Note: This option is NOT applicable to Graphical Displays. + * + * All character-based LCD's provide ASCII plus one of these + * language extensions: + * + * - JAPANESE ... the most common + * - WESTERN ... with more accented characters + * - CYRILLIC ... for the Russian language + * + * To determine the language extension installed on your controller: + * + * - Compile and upload with LCD_LANGUAGE set to 'test' + * - Click the controller to view the LCD menu + * - The LCD will display Japanese, Western, or Cyrillic text + * + * See https://github.com/MarlinFirmware/Marlin/wiki/LCD-Language + * + * :['JAPANESE','WESTERN','CYRILLIC'] + */ +#define DISPLAY_CHARSET_HD44780 JAPANESE // // LCD TYPE diff --git a/Marlin/example_configurations/delta/generic/Configuration.h b/Marlin/example_configurations/delta/generic/Configuration.h index c492573f5a..de116a9477 100644 --- a/Marlin/example_configurations/delta/generic/Configuration.h +++ b/Marlin/example_configurations/delta/generic/Configuration.h @@ -901,25 +901,29 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = true; // set to true to invert the lo // #define LANGUAGE_INCLUDE GENERATE_LANGUAGE_INCLUDE(en) -// -// LCD CHARACTER SET -// -// Choose ONE of the following charset options. This selection depends on -// your physical hardware, so it must match your character-based LCD. -// -// Note: This option is NOT applicable to graphical displays. -// -// To find out what type of display you have: -// - Compile and upload with the language (above) set to 'test' -// - Click the controller to view the LCD menu -// -// The LCD will display two lines from the upper half of the character set. -// -// See also https://github.com/MarlinFirmware/Marlin/wiki/LCD-Language -// -#define DISPLAY_CHARSET_HD44780_JAPAN // this is the most common hardware -//#define DISPLAY_CHARSET_HD44780_WESTERN -//#define DISPLAY_CHARSET_HD44780_CYRILLIC +/** + * LCD Character Set + * + * Note: This option is NOT applicable to Graphical Displays. + * + * All character-based LCD's provide ASCII plus one of these + * language extensions: + * + * - JAPANESE ... the most common + * - WESTERN ... with more accented characters + * - CYRILLIC ... for the Russian language + * + * To determine the language extension installed on your controller: + * + * - Compile and upload with LCD_LANGUAGE set to 'test' + * - Click the controller to view the LCD menu + * - The LCD will display Japanese, Western, or Cyrillic text + * + * See https://github.com/MarlinFirmware/Marlin/wiki/LCD-Language + * + * :['JAPANESE','WESTERN','CYRILLIC'] + */ +#define DISPLAY_CHARSET_HD44780 JAPANESE // // LCD TYPE diff --git a/Marlin/example_configurations/delta/kossel_mini/Configuration.h b/Marlin/example_configurations/delta/kossel_mini/Configuration.h index e77eb33795..bb9cce1bbc 100644 --- a/Marlin/example_configurations/delta/kossel_mini/Configuration.h +++ b/Marlin/example_configurations/delta/kossel_mini/Configuration.h @@ -905,25 +905,29 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l // #define LANGUAGE_INCLUDE GENERATE_LANGUAGE_INCLUDE(en) -// -// LCD CHARACTER SET -// -// Choose ONE of the following charset options. This selection depends on -// your physical hardware, so it must match your character-based LCD. -// -// Note: This option is NOT applicable to graphical displays. -// -// To find out what type of display you have: -// - Compile and upload with the language (above) set to 'test' -// - Click the controller to view the LCD menu -// -// The LCD will display two lines from the upper half of the character set. -// -// See also https://github.com/MarlinFirmware/Marlin/wiki/LCD-Language -// -#define DISPLAY_CHARSET_HD44780_JAPAN // this is the most common hardware -//#define DISPLAY_CHARSET_HD44780_WESTERN -//#define DISPLAY_CHARSET_HD44780_CYRILLIC +/** + * LCD Character Set + * + * Note: This option is NOT applicable to Graphical Displays. + * + * All character-based LCD's provide ASCII plus one of these + * language extensions: + * + * - JAPANESE ... the most common + * - WESTERN ... with more accented characters + * - CYRILLIC ... for the Russian language + * + * To determine the language extension installed on your controller: + * + * - Compile and upload with LCD_LANGUAGE set to 'test' + * - Click the controller to view the LCD menu + * - The LCD will display Japanese, Western, or Cyrillic text + * + * See https://github.com/MarlinFirmware/Marlin/wiki/LCD-Language + * + * :['JAPANESE','WESTERN','CYRILLIC'] + */ +#define DISPLAY_CHARSET_HD44780 JAPANESE // // LCD TYPE diff --git a/Marlin/example_configurations/delta/kossel_pro/Configuration.h b/Marlin/example_configurations/delta/kossel_pro/Configuration.h index b5c9c76c6f..4df6821927 100644 --- a/Marlin/example_configurations/delta/kossel_pro/Configuration.h +++ b/Marlin/example_configurations/delta/kossel_pro/Configuration.h @@ -898,25 +898,29 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l // #define LANGUAGE_INCLUDE GENERATE_LANGUAGE_INCLUDE(en) -// -// LCD CHARACTER SET -// -// Choose ONE of the following charset options. This selection depends on -// your physical hardware, so it must match your character-based LCD. -// -// Note: This option is NOT applicable to graphical displays. -// -// To find out what type of display you have: -// - Compile and upload with the language (above) set to 'test' -// - Click the controller to view the LCD menu -// -// The LCD will display two lines from the upper half of the character set. -// -// See also https://github.com/MarlinFirmware/Marlin/wiki/LCD-Language -// -#define DISPLAY_CHARSET_HD44780_JAPAN // this is the most common hardware -//#define DISPLAY_CHARSET_HD44780_WESTERN -//#define DISPLAY_CHARSET_HD44780_CYRILLIC +/** + * LCD Character Set + * + * Note: This option is NOT applicable to Graphical Displays. + * + * All character-based LCD's provide ASCII plus one of these + * language extensions: + * + * - JAPANESE ... the most common + * - WESTERN ... with more accented characters + * - CYRILLIC ... for the Russian language + * + * To determine the language extension installed on your controller: + * + * - Compile and upload with LCD_LANGUAGE set to 'test' + * - Click the controller to view the LCD menu + * - The LCD will display Japanese, Western, or Cyrillic text + * + * See https://github.com/MarlinFirmware/Marlin/wiki/LCD-Language + * + * :['JAPANESE','WESTERN','CYRILLIC'] + */ +#define DISPLAY_CHARSET_HD44780 JAPANESE // // LCD TYPE diff --git a/Marlin/example_configurations/delta/kossel_xl/Configuration.h b/Marlin/example_configurations/delta/kossel_xl/Configuration.h index 943443fb4a..276a194d72 100644 --- a/Marlin/example_configurations/delta/kossel_xl/Configuration.h +++ b/Marlin/example_configurations/delta/kossel_xl/Configuration.h @@ -906,25 +906,29 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l // #define LANGUAGE_INCLUDE GENERATE_LANGUAGE_INCLUDE(en) -// -// LCD CHARACTER SET -// -// Choose ONE of the following charset options. This selection depends on -// your physical hardware, so it must match your character-based LCD. -// -// Note: This option is NOT applicable to graphical displays. -// -// To find out what type of display you have: -// - Compile and upload with the language (above) set to 'test' -// - Click the controller to view the LCD menu -// -// The LCD will display two lines from the upper half of the character set. -// -// See also https://github.com/MarlinFirmware/Marlin/wiki/LCD-Language -// -#define DISPLAY_CHARSET_HD44780_JAPAN // this is the most common hardware -//#define DISPLAY_CHARSET_HD44780_WESTERN -//#define DISPLAY_CHARSET_HD44780_CYRILLIC +/** + * LCD Character Set + * + * Note: This option is NOT applicable to Graphical Displays. + * + * All character-based LCD's provide ASCII plus one of these + * language extensions: + * + * - JAPANESE ... the most common + * - WESTERN ... with more accented characters + * - CYRILLIC ... for the Russian language + * + * To determine the language extension installed on your controller: + * + * - Compile and upload with LCD_LANGUAGE set to 'test' + * - Click the controller to view the LCD menu + * - The LCD will display Japanese, Western, or Cyrillic text + * + * See https://github.com/MarlinFirmware/Marlin/wiki/LCD-Language + * + * :['JAPANESE','WESTERN','CYRILLIC'] + */ +#define DISPLAY_CHARSET_HD44780 JAPANESE // // LCD TYPE diff --git a/Marlin/example_configurations/makibox/Configuration.h b/Marlin/example_configurations/makibox/Configuration.h index 2b414100f5..de0dc03a72 100644 --- a/Marlin/example_configurations/makibox/Configuration.h +++ b/Marlin/example_configurations/makibox/Configuration.h @@ -775,25 +775,29 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l // //#define LANGUAGE_INCLUDE GENERATE_LANGUAGE_INCLUDE(en) -// -// LCD CHARACTER SET -// -// Choose ONE of the following charset options. This selection depends on -// your physical hardware, so it must match your character-based LCD. -// -// Note: This option is NOT applicable to graphical displays. -// -// To find out what type of display you have: -// - Compile and upload with the language (above) set to 'test' -// - Click the controller to view the LCD menu -// -// The LCD will display two lines from the upper half of the character set. -// -// See also https://github.com/MarlinFirmware/Marlin/wiki/LCD-Language -// -#define DISPLAY_CHARSET_HD44780_JAPAN // this is the most common hardware -//#define DISPLAY_CHARSET_HD44780_WESTERN -//#define DISPLAY_CHARSET_HD44780_CYRILLIC +/** + * LCD Character Set + * + * Note: This option is NOT applicable to Graphical Displays. + * + * All character-based LCD's provide ASCII plus one of these + * language extensions: + * + * - JAPANESE ... the most common + * - WESTERN ... with more accented characters + * - CYRILLIC ... for the Russian language + * + * To determine the language extension installed on your controller: + * + * - Compile and upload with LCD_LANGUAGE set to 'test' + * - Click the controller to view the LCD menu + * - The LCD will display Japanese, Western, or Cyrillic text + * + * See https://github.com/MarlinFirmware/Marlin/wiki/LCD-Language + * + * :['JAPANESE','WESTERN','CYRILLIC'] + */ +#define DISPLAY_CHARSET_HD44780 JAPANESE // // LCD TYPE diff --git a/Marlin/example_configurations/tvrrug/Round2/Configuration.h b/Marlin/example_configurations/tvrrug/Round2/Configuration.h index 59cfe714d5..d9cd68d7bc 100644 --- a/Marlin/example_configurations/tvrrug/Round2/Configuration.h +++ b/Marlin/example_configurations/tvrrug/Round2/Configuration.h @@ -766,25 +766,29 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = true; // set to true to invert the lo // //#define LANGUAGE_INCLUDE GENERATE_LANGUAGE_INCLUDE(en) -// -// LCD CHARACTER SET -// -// Choose ONE of the following charset options. This selection depends on -// your physical hardware, so it must match your character-based LCD. -// -// Note: This option is NOT applicable to graphical displays. -// -// To find out what type of display you have: -// - Compile and upload with the language (above) set to 'test' -// - Click the controller to view the LCD menu -// -// The LCD will display two lines from the upper half of the character set. -// -// See also https://github.com/MarlinFirmware/Marlin/wiki/LCD-Language -// -#define DISPLAY_CHARSET_HD44780_JAPAN // this is the most common hardware -//#define DISPLAY_CHARSET_HD44780_WESTERN -//#define DISPLAY_CHARSET_HD44780_CYRILLIC +/** + * LCD Character Set + * + * Note: This option is NOT applicable to Graphical Displays. + * + * All character-based LCD's provide ASCII plus one of these + * language extensions: + * + * - JAPANESE ... the most common + * - WESTERN ... with more accented characters + * - CYRILLIC ... for the Russian language + * + * To determine the language extension installed on your controller: + * + * - Compile and upload with LCD_LANGUAGE set to 'test' + * - Click the controller to view the LCD menu + * - The LCD will display Japanese, Western, or Cyrillic text + * + * See https://github.com/MarlinFirmware/Marlin/wiki/LCD-Language + * + * :['JAPANESE','WESTERN','CYRILLIC'] + */ +#define DISPLAY_CHARSET_HD44780 JAPANESE // // LCD TYPE diff --git a/Marlin/language.h b/Marlin/language.h index e9a30a2d7d..a88aacace9 100644 --- a/Marlin/language.h +++ b/Marlin/language.h @@ -27,6 +27,10 @@ #define GENERATE_LANGUAGE_INCLUDE(M) STRINGIFY_(language_##M.h) +// For character-based LCD controllers (DISPLAY_CHARSET_HD44780) +#define JAPANESE 1 +#define WESTERN 2 +#define CYRILLIC 3 // NOTE: IF YOU CHANGE LANGUAGE FILES OR MERGE A FILE WITH CHANGES // @@ -232,10 +236,6 @@ // LCD Menu Messages -#if DISABLED(DISPLAY_CHARSET_HD44780_JAPAN) && DISABLED(DISPLAY_CHARSET_HD44780_WESTERN) && DISABLED(DISPLAY_CHARSET_HD44780_CYRILLIC) - #define DISPLAY_CHARSET_HD44780_JAPAN -#endif - #include LANGUAGE_INCLUDE #include "language_en.h" diff --git a/Marlin/utf_mapper.h b/Marlin/utf_mapper.h index 26e97772bf..22d5d406ce 100644 --- a/Marlin/utf_mapper.h +++ b/Marlin/utf_mapper.h @@ -40,7 +40,7 @@ #define MAPPER_ONE_TO_ONE #endif #else // SIMULATE_ROMFONT - #if ENABLED(DISPLAY_CHARSET_HD44780_JAPAN) + #if DISPLAY_CHARSET_HD44780 == JAPANESE #if ENABLED(MAPPER_C2C3) const PROGMEM uint8_t utf_recode[] = { // 0 1 2 3 4 5 6 7 8 9 a b c d e f This is fair for symbols @@ -77,7 +77,7 @@ #error( "Cyrillic on a japanese dsplay makes no sense. There are no matching symbols."); #endif - #elif ENABLED(DISPLAY_CHARSET_HD44780_WESTERN) + #elif DISPLAY_CHARSET_HD44780 == WESTERN #if ENABLED(MAPPER_C2C3) const PROGMEM uint8_t utf_recode[] = { // 0 1 2 3 4 5 6 7 8 9 a b c d e f This is relative complete. @@ -111,28 +111,28 @@ #error( "Katakana on a western display makes no sense. There are no matching symbols." ); #endif - #elif ENABLED(DISPLAY_CHARSET_HD44780_CYRILLIC) + #elif DISPLAY_CHARSET_HD44780 == CYRILLIC #if ENABLED(MAPPER_D0D1) #define MAPPER_D0D1_MOD // it is a Russian alphabet translation // except 0401 --> 0xa2 = Ё, 0451 --> 0xb5 = ё const PROGMEM uint8_t utf_recode[] = { 0x41,0xa0,0x42,0xa1,0xe0,0x45,0xa3,0xa4, // unicode U+0400 to U+047f - // A Б->Ё B Г Д E Ж З // 0 Ѐ Ё Ђ Ѓ Є Ѕ І Ї + // A Б->Ё B Г Д E Ж З // 0 Ѐ Ё Ђ Ѓ Є Ѕ І Ї 0xa5,0xa6,0x4b,0xa7,0x4d,0x48,0x4f,0xa8, // Ј Љ Њ Ћ Ќ Ѝ Ў Џ - // И Й K Л M H O П // 1 А Б В Г Д Е Ж З + // И Й K Л M H O П // 1 А Б В Г Д Е Ж З 0x50,0x43,0x54,0xa9,0xaa,0x58,0xe1,0xab, // И Й К Л М Н О П - // P C T У Ф X Ч ч // 2 Р С Т У Ф Х Г Ч + // P C T У Ф X Ч ч // 2 Р С Т У Ф Х Г Ч 0xac,0xe2,0xad,0xae,0x62,0xaf,0xb0,0xb1, // Ш Щ Ъ Ы Ь Э Ю Я - // Ш Щ Ъ Ы b Э Ю Я // 3 а б в г д е ж з + // Ш Щ Ъ Ы b Э Ю Я // 3 а б в г д е ж з 0x61,0xb2,0xb3,0xb4,0xe3,0x65,0xb6,0xb7, // и й к л м н о п - // a б->ё в г д e ж з // 4 р с т у ф х ц ч + // a б->ё в г д e ж з // 4 р с т у ф х ц ч 0xb8,0xb9,0xba,0xbb,0xbc,0xbd,0x6f,0xbe, // ш щ ъ ы ь э ю я - // и й к л м н o п // 5 ѐ ё ђ ѓ є ѕ і ї + // и й к л м н o п // 5 ѐ ё ђ ѓ є ѕ і ї 0x70,0x63,0xbf,0x79,0xe4,0x78,0xe5,0xc0, // ј љ њ ћ ќ ѝ ў џ - // p c т y ф x ц ч // 6 Ѡ ѡ Ѣ ѣ Ѥ ѥ Ѧ ѧ + // p c т y ф x ц ч // 6 Ѡ ѡ Ѣ ѣ Ѥ ѥ Ѧ ѧ 0xc1,0xe6,0xc2,0xc3,0xc4,0xc5,0xc6,0xc7 // Ѫ ѩ Ѫ ѫ Ѭ ѭ Ѯ ѯ - // ш щ ъ ы ь э ю я // 7 Ѱ ѱ Ѳ ѳ Ѵ ѵ Ѷ ѷ + // ш щ ъ ы ь э ю я // 7 Ѱ ѱ Ѳ ѳ Ѵ ѵ Ѷ ѷ }; // ѻ ѹ Ѻ ѻ Ѽ ѽ Ѿ ѿ #elif ENABLED(MAPPER_C2C3) #error( "Western languages on a cyrillic display makes no sense. There are no matching symbols." ); @@ -140,8 +140,8 @@ #error( "Katakana on a cyrillic display makes no sense. There are no matching symbols." ); #endif #else - #error("Something went wrong in the selection of DISPLAY_CHARSET_HD44780's"); - #endif // DISPLAY_CHARSET_HD44780_CYRILLIC + #error("Something went wrong in the setting of DISPLAY_CHARSET_HD44780"); + #endif // DISPLAY_CHARSET_HD44780 #endif // SIMULATE_ROMFONT #if ENABLED(MAPPER_NON)