Quellcode durchsuchen

Extensible user interface API (#11193)

Marcio Teixeira vor 6 Jahren
Ursprung
Commit
906a24fa81
88 geänderte Dateien mit 1571 neuen und 25 gelöschten Zeilen
  1. 9
    0
      Marlin/Configuration.h
  2. 9
    3
      Marlin/src/Marlin.cpp
  3. 9
    0
      Marlin/src/config/default/Configuration.h
  4. 9
    0
      Marlin/src/config/examples/AlephObjects/TAZ4/Configuration.h
  5. 9
    0
      Marlin/src/config/examples/AliExpress/CL-260/Configuration.h
  6. 9
    0
      Marlin/src/config/examples/Anet/A2/Configuration.h
  7. 9
    0
      Marlin/src/config/examples/Anet/A2plus/Configuration.h
  8. 9
    0
      Marlin/src/config/examples/Anet/A6/Configuration.h
  9. 9
    0
      Marlin/src/config/examples/Anet/A8/Configuration.h
  10. 9
    0
      Marlin/src/config/examples/Azteeg/X5GT/Configuration.h
  11. 9
    0
      Marlin/src/config/examples/BIBO/TouchX/cyclops/Configuration.h
  12. 9
    0
      Marlin/src/config/examples/BIBO/TouchX/default/Configuration.h
  13. 9
    0
      Marlin/src/config/examples/BQ/Hephestos/Configuration.h
  14. 9
    0
      Marlin/src/config/examples/BQ/Hephestos_2/Configuration.h
  15. 9
    0
      Marlin/src/config/examples/BQ/WITBOX/Configuration.h
  16. 9
    0
      Marlin/src/config/examples/Cartesio/Configuration.h
  17. 9
    0
      Marlin/src/config/examples/Creality/CR-10/Configuration.h
  18. 9
    0
      Marlin/src/config/examples/Creality/CR-10S/Configuration.h
  19. 9
    0
      Marlin/src/config/examples/Creality/CR-10mini/Configuration.h
  20. 9
    0
      Marlin/src/config/examples/Creality/CR-8/Configuration.h
  21. 9
    0
      Marlin/src/config/examples/Creality/Ender-2/Configuration.h
  22. 9
    0
      Marlin/src/config/examples/Creality/Ender-3/Configuration.h
  23. 9
    0
      Marlin/src/config/examples/Creality/Ender-4/Configuration.h
  24. 9
    0
      Marlin/src/config/examples/Felix/Configuration.h
  25. 9
    0
      Marlin/src/config/examples/Felix/DUAL/Configuration.h
  26. 9
    0
      Marlin/src/config/examples/FolgerTech/i3-2020/Configuration.h
  27. 9
    0
      Marlin/src/config/examples/Formbot/Raptor/Configuration.h
  28. 9
    0
      Marlin/src/config/examples/Formbot/T_Rex_2+/Configuration.h
  29. 9
    0
      Marlin/src/config/examples/Formbot/T_Rex_3/Configuration.h
  30. 9
    0
      Marlin/src/config/examples/Geeetech/GT2560/Configuration.h
  31. 9
    0
      Marlin/src/config/examples/Geeetech/I3_Pro_X-GT2560/Configuration.h
  32. 9
    0
      Marlin/src/config/examples/Geeetech/MeCreator2/Configuration.h
  33. 9
    0
      Marlin/src/config/examples/Geeetech/Prusa i3 Pro B/bltouch/Configuration.h
  34. 9
    0
      Marlin/src/config/examples/Geeetech/Prusa i3 Pro B/noprobe/Configuration.h
  35. 9
    0
      Marlin/src/config/examples/Geeetech/Prusa i3 Pro C/Configuration.h
  36. 9
    0
      Marlin/src/config/examples/Geeetech/Prusa i3 Pro W/Configuration.h
  37. 9
    0
      Marlin/src/config/examples/Infitary/i3-M508/Configuration.h
  38. 9
    0
      Marlin/src/config/examples/JGAurora/A5/Configuration.h
  39. 9
    0
      Marlin/src/config/examples/MakerParts/Configuration.h
  40. 9
    0
      Marlin/src/config/examples/Malyan/M150/Configuration.h
  41. 9
    0
      Marlin/src/config/examples/Malyan/M200/Configuration.h
  42. 9
    0
      Marlin/src/config/examples/Micromake/C1/basic/Configuration.h
  43. 9
    0
      Marlin/src/config/examples/Micromake/C1/enhanced/Configuration.h
  44. 9
    0
      Marlin/src/config/examples/Mks/Sbase/Configuration.h
  45. 9
    0
      Marlin/src/config/examples/RepRapPro/Huxley/Configuration.h
  46. 9
    0
      Marlin/src/config/examples/RepRapWorld/Megatronics/Configuration.h
  47. 9
    0
      Marlin/src/config/examples/RigidBot/Configuration.h
  48. 9
    0
      Marlin/src/config/examples/SCARA/Configuration.h
  49. 9
    0
      Marlin/src/config/examples/STM32F10/Configuration.h
  50. 9
    0
      Marlin/src/config/examples/STM32F4/Configuration.h
  51. 9
    0
      Marlin/src/config/examples/Sanguinololu/Configuration.h
  52. 9
    0
      Marlin/src/config/examples/TheBorg/Configuration.h
  53. 9
    0
      Marlin/src/config/examples/TinyBoy2/Configuration.h
  54. 9
    0
      Marlin/src/config/examples/Tronxy/X1/Configuration.h
  55. 9
    0
      Marlin/src/config/examples/Tronxy/X3A/Configuration.h
  56. 9
    0
      Marlin/src/config/examples/Tronxy/X5S/Configuration.h
  57. 9
    0
      Marlin/src/config/examples/Tronxy/XY100/Configuration.h
  58. 9
    0
      Marlin/src/config/examples/UltiMachine/Archim2/Configuration.h
  59. 9
    0
      Marlin/src/config/examples/Velleman/K8200/Configuration.h
  60. 9
    0
      Marlin/src/config/examples/Velleman/K8400/Configuration.h
  61. 9
    0
      Marlin/src/config/examples/Velleman/K8400/Dual-head/Configuration.h
  62. 9
    0
      Marlin/src/config/examples/Wanhao/Duplicator 6/Configuration.h
  63. 9
    0
      Marlin/src/config/examples/adafruit/ST7565/Configuration.h
  64. 9
    0
      Marlin/src/config/examples/delta/Anycubic/Kossel/Configuration.h
  65. 9
    0
      Marlin/src/config/examples/delta/FLSUN/auto_calibrate/Configuration.h
  66. 9
    0
      Marlin/src/config/examples/delta/FLSUN/kossel/Configuration.h
  67. 9
    0
      Marlin/src/config/examples/delta/FLSUN/kossel_mini/Configuration.h
  68. 9
    0
      Marlin/src/config/examples/delta/Hatchbox_Alpha/Configuration.h
  69. 9
    0
      Marlin/src/config/examples/delta/generic/Configuration.h
  70. 9
    0
      Marlin/src/config/examples/delta/kossel_mini/Configuration.h
  71. 9
    0
      Marlin/src/config/examples/delta/kossel_pro/Configuration.h
  72. 9
    0
      Marlin/src/config/examples/delta/kossel_xl/Configuration.h
  73. 9
    0
      Marlin/src/config/examples/gCreate/gMax1.5+/Configuration.h
  74. 9
    0
      Marlin/src/config/examples/makibox/Configuration.h
  75. 9
    0
      Marlin/src/config/examples/stm32f103ret6/Configuration.h
  76. 9
    0
      Marlin/src/config/examples/tvrrug/Round2/Configuration.h
  77. 9
    0
      Marlin/src/config/examples/wt150/Configuration.h
  78. 7
    0
      Marlin/src/feature/runout.h
  79. 10
    0
      Marlin/src/gcode/eeprom/M500-M504.cpp
  80. 22
    3
      Marlin/src/gcode/stats/M75-M78.cpp
  81. 1
    1
      Marlin/src/inc/Conditionals_LCD.h
  82. 50
    0
      Marlin/src/lcd/extensible_ui/lib/dummy.cpp
  83. 590
    0
      Marlin/src/lcd/extensible_ui/ui_api.cpp
  84. 164
    0
      Marlin/src/lcd/extensible_ui/ui_api.h
  85. 11
    2
      Marlin/src/lcd/ultralcd.h
  86. 9
    1
      Marlin/src/libs/buzzer.cpp
  87. 1
    1
      Marlin/src/libs/buzzer.h
  88. 13
    14
      Marlin/src/pins/pins_ARCHIM2.h

+ 9
- 0
Marlin/Configuration.h Datei anzeigen

@@ -1839,6 +1839,15 @@
1839 1839
 //
1840 1840
 //#define SILVER_GATE_GLCD_CONTROLLER
1841 1841
 
1842
+//
1843
+// Extensible UI
1844
+//
1845
+// Enable third-party or vendor customized user interfaces that aren't
1846
+// packaged with Marlin. Source code for the user interface will need to
1847
+// be placed in "src/lcd/extensible_ui/lib"
1848
+//
1849
+//#define EXTENSIBLE_UI
1850
+
1842 1851
 //=============================================================================
1843 1852
 //============================  Other Controllers  ============================
1844 1853
 //=============================================================================

+ 9
- 3
Marlin/src/Marlin.cpp Datei anzeigen

@@ -152,6 +152,10 @@
152 152
   #include "feature/controllerfan.h"
153 153
 #endif
154 154
 
155
+#if ENABLED(EXTENSIBLE_UI)
156
+  #include "lcd/extensible_ui/ui_api.h"
157
+#endif
158
+
155 159
 bool Running = true;
156 160
 
157 161
 /**
@@ -609,7 +613,9 @@ void kill(PGM_P lcd_msg) {
609 613
   thermalManager.disable_all_heaters();
610 614
   disable_all_steppers();
611 615
 
612
-  #if ENABLED(ULTRA_LCD)
616
+  #if ENABLED(EXTENSIBLE_UI)
617
+    UI::onPrinterKilled(lcd_msg);
618
+  #elif ENABLED(ULTRA_LCD)
613 619
     kill_screen(lcd_msg);
614 620
   #else
615 621
     UNUSED(lcd_msg);
@@ -958,7 +964,7 @@ void loop() {
958 964
       card.checkautostart();
959 965
     #endif
960 966
 
961
-    #if ENABLED(SDSUPPORT) && ENABLED(ULTIPANEL)
967
+    #if ENABLED(SDSUPPORT) && (ENABLED(ULTIPANEL) || ENABLED(EXTENSIBLE_UI))
962 968
       if (abort_sd_printing) {
963 969
         abort_sd_printing = false;
964 970
         card.stopSDPrint(
@@ -978,7 +984,7 @@ void loop() {
978 984
           card.removeJobRecoveryFile();
979 985
         #endif
980 986
       }
981
-    #endif // SDSUPPORT && ULTIPANEL
987
+    #endif // SDSUPPORT && (ENABLED(ULTIPANEL) || ENABLED(EXTENSIBLE_UI))
982 988
 
983 989
     if (commands_in_queue < BUFSIZE) get_available_commands();
984 990
     advance_command_queue();

+ 9
- 0
Marlin/src/config/default/Configuration.h Datei anzeigen

@@ -1839,6 +1839,15 @@
1839 1839
 //
1840 1840
 //#define SILVER_GATE_GLCD_CONTROLLER
1841 1841
 
1842
+//
1843
+// Extensible UI
1844
+//
1845
+// Enable third-party or vendor customized user interfaces that aren't
1846
+// packaged with Marlin. Source code for the user interface will need to
1847
+// be placed in "src/lcd/extensible_ui/lib"
1848
+//
1849
+//#define EXTENSIBLE_UI
1850
+
1842 1851
 //=============================================================================
1843 1852
 //============================  Other Controllers  ============================
1844 1853
 //=============================================================================

+ 9
- 0
Marlin/src/config/examples/AlephObjects/TAZ4/Configuration.h Datei anzeigen

@@ -1859,6 +1859,15 @@
1859 1859
 //
1860 1860
 //#define SILVER_GATE_GLCD_CONTROLLER
1861 1861
 
1862
+//
1863
+// Extensible UI
1864
+//
1865
+// Enable third-party or vendor customized user interfaces that aren't
1866
+// packaged with Marlin. Source code for the user interface will need to
1867
+// be placed in "src/lcd/extensible_ui/lib"
1868
+//
1869
+//#define EXTENSIBLE_UI
1870
+
1862 1871
 //=============================================================================
1863 1872
 //============================  Other Controllers  ============================
1864 1873
 //=============================================================================

+ 9
- 0
Marlin/src/config/examples/AliExpress/CL-260/Configuration.h Datei anzeigen

@@ -1839,6 +1839,15 @@
1839 1839
 //
1840 1840
 //#define SILVER_GATE_GLCD_CONTROLLER
1841 1841
 
1842
+//
1843
+// Extensible UI
1844
+//
1845
+// Enable third-party or vendor customized user interfaces that aren't
1846
+// packaged with Marlin. Source code for the user interface will need to
1847
+// be placed in "src/lcd/extensible_ui/lib"
1848
+//
1849
+//#define EXTENSIBLE_UI
1850
+
1842 1851
 //=============================================================================
1843 1852
 //============================  Other Controllers  ============================
1844 1853
 //=============================================================================

+ 9
- 0
Marlin/src/config/examples/Anet/A2/Configuration.h Datei anzeigen

@@ -1841,6 +1841,15 @@
1841 1841
 //
1842 1842
 //#define SILVER_GATE_GLCD_CONTROLLER
1843 1843
 
1844
+//
1845
+// Extensible UI
1846
+//
1847
+// Enable third-party or vendor customized user interfaces that aren't
1848
+// packaged with Marlin. Source code for the user interface will need to
1849
+// be placed in "src/lcd/extensible_ui/lib"
1850
+//
1851
+//#define EXTENSIBLE_UI
1852
+
1844 1853
 //=============================================================================
1845 1854
 //============================  Other Controllers  ============================
1846 1855
 //=============================================================================

+ 9
- 0
Marlin/src/config/examples/Anet/A2plus/Configuration.h Datei anzeigen

@@ -1841,6 +1841,15 @@
1841 1841
 //
1842 1842
 //#define SILVER_GATE_GLCD_CONTROLLER
1843 1843
 
1844
+//
1845
+// Extensible UI
1846
+//
1847
+// Enable third-party or vendor customized user interfaces that aren't
1848
+// packaged with Marlin. Source code for the user interface will need to
1849
+// be placed in "src/lcd/extensible_ui/lib"
1850
+//
1851
+//#define EXTENSIBLE_UI
1852
+
1844 1853
 //=============================================================================
1845 1854
 //============================  Other Controllers  ============================
1846 1855
 //=============================================================================

+ 9
- 0
Marlin/src/config/examples/Anet/A6/Configuration.h Datei anzeigen

@@ -1994,6 +1994,15 @@
1994 1994
 //
1995 1995
 //#define SILVER_GATE_GLCD_CONTROLLER
1996 1996
 
1997
+//
1998
+// Extensible UI
1999
+//
2000
+// Enable third-party or vendor customized user interfaces that aren't
2001
+// packaged with Marlin. Source code for the user interface will need to
2002
+// be placed in "src/lcd/extensible_ui/lib"
2003
+//
2004
+//#define EXTENSIBLE_UI
2005
+
1997 2006
 //=============================================================================
1998 2007
 //============================  Other Controllers  ============================
1999 2008
 //=============================================================================

+ 9
- 0
Marlin/src/config/examples/Anet/A8/Configuration.h Datei anzeigen

@@ -1848,6 +1848,15 @@
1848 1848
 //
1849 1849
 //#define SILVER_GATE_GLCD_CONTROLLER
1850 1850
 
1851
+//
1852
+// Extensible UI
1853
+//
1854
+// Enable third-party or vendor customized user interfaces that aren't
1855
+// packaged with Marlin. Source code for the user interface will need to
1856
+// be placed in "src/lcd/extensible_ui/lib"
1857
+//
1858
+//#define EXTENSIBLE_UI
1859
+
1851 1860
 //=============================================================================
1852 1861
 //============================  Other Controllers  ============================
1853 1862
 //=============================================================================

+ 9
- 0
Marlin/src/config/examples/Azteeg/X5GT/Configuration.h Datei anzeigen

@@ -1839,6 +1839,15 @@
1839 1839
 //
1840 1840
 //#define SILVER_GATE_GLCD_CONTROLLER
1841 1841
 
1842
+//
1843
+// Extensible UI
1844
+//
1845
+// Enable third-party or vendor customized user interfaces that aren't
1846
+// packaged with Marlin. Source code for the user interface will need to
1847
+// be placed in "src/lcd/extensible_ui/lib"
1848
+//
1849
+//#define EXTENSIBLE_UI
1850
+
1842 1851
 //=============================================================================
1843 1852
 //============================  Other Controllers  ============================
1844 1853
 //=============================================================================

+ 9
- 0
Marlin/src/config/examples/BIBO/TouchX/cyclops/Configuration.h Datei anzeigen

@@ -1839,6 +1839,15 @@
1839 1839
 //
1840 1840
 //#define SILVER_GATE_GLCD_CONTROLLER
1841 1841
 
1842
+//
1843
+// Extensible UI
1844
+//
1845
+// Enable third-party or vendor customized user interfaces that aren't
1846
+// packaged with Marlin. Source code for the user interface will need to
1847
+// be placed in "src/lcd/extensible_ui/lib"
1848
+//
1849
+//#define EXTENSIBLE_UI
1850
+
1842 1851
 //=============================================================================
1843 1852
 //============================  Other Controllers  ============================
1844 1853
 //=============================================================================

+ 9
- 0
Marlin/src/config/examples/BIBO/TouchX/default/Configuration.h Datei anzeigen

@@ -1839,6 +1839,15 @@
1839 1839
 //
1840 1840
 //#define SILVER_GATE_GLCD_CONTROLLER
1841 1841
 
1842
+//
1843
+// Extensible UI
1844
+//
1845
+// Enable third-party or vendor customized user interfaces that aren't
1846
+// packaged with Marlin. Source code for the user interface will need to
1847
+// be placed in "src/lcd/extensible_ui/lib"
1848
+//
1849
+//#define EXTENSIBLE_UI
1850
+
1842 1851
 //=============================================================================
1843 1852
 //============================  Other Controllers  ============================
1844 1853
 //=============================================================================

+ 9
- 0
Marlin/src/config/examples/BQ/Hephestos/Configuration.h Datei anzeigen

@@ -1827,6 +1827,15 @@
1827 1827
 //
1828 1828
 //#define SILVER_GATE_GLCD_CONTROLLER
1829 1829
 
1830
+//
1831
+// Extensible UI
1832
+//
1833
+// Enable third-party or vendor customized user interfaces that aren't
1834
+// packaged with Marlin. Source code for the user interface will need to
1835
+// be placed in "src/lcd/extensible_ui/lib"
1836
+//
1837
+//#define EXTENSIBLE_UI
1838
+
1830 1839
 //=============================================================================
1831 1840
 //============================  Other Controllers  ============================
1832 1841
 //=============================================================================

+ 9
- 0
Marlin/src/config/examples/BQ/Hephestos_2/Configuration.h Datei anzeigen

@@ -1839,6 +1839,15 @@
1839 1839
 //
1840 1840
 //#define SILVER_GATE_GLCD_CONTROLLER
1841 1841
 
1842
+//
1843
+// Extensible UI
1844
+//
1845
+// Enable third-party or vendor customized user interfaces that aren't
1846
+// packaged with Marlin. Source code for the user interface will need to
1847
+// be placed in "src/lcd/extensible_ui/lib"
1848
+//
1849
+//#define EXTENSIBLE_UI
1850
+
1842 1851
 //=============================================================================
1843 1852
 //============================  Other Controllers  ============================
1844 1853
 //=============================================================================

+ 9
- 0
Marlin/src/config/examples/BQ/WITBOX/Configuration.h Datei anzeigen

@@ -1827,6 +1827,15 @@
1827 1827
 //
1828 1828
 //#define SILVER_GATE_GLCD_CONTROLLER
1829 1829
 
1830
+//
1831
+// Extensible UI
1832
+//
1833
+// Enable third-party or vendor customized user interfaces that aren't
1834
+// packaged with Marlin. Source code for the user interface will need to
1835
+// be placed in "src/lcd/extensible_ui/lib"
1836
+//
1837
+//#define EXTENSIBLE_UI
1838
+
1830 1839
 //=============================================================================
1831 1840
 //============================  Other Controllers  ============================
1832 1841
 //=============================================================================

+ 9
- 0
Marlin/src/config/examples/Cartesio/Configuration.h Datei anzeigen

@@ -1838,6 +1838,15 @@
1838 1838
 //
1839 1839
 //#define SILVER_GATE_GLCD_CONTROLLER
1840 1840
 
1841
+//
1842
+// Extensible UI
1843
+//
1844
+// Enable third-party or vendor customized user interfaces that aren't
1845
+// packaged with Marlin. Source code for the user interface will need to
1846
+// be placed in "src/lcd/extensible_ui/lib"
1847
+//
1848
+//#define EXTENSIBLE_UI
1849
+
1841 1850
 //=============================================================================
1842 1851
 //============================  Other Controllers  ============================
1843 1852
 //=============================================================================

+ 9
- 0
Marlin/src/config/examples/Creality/CR-10/Configuration.h Datei anzeigen

@@ -1849,6 +1849,15 @@
1849 1849
 //
1850 1850
 //#define SILVER_GATE_GLCD_CONTROLLER
1851 1851
 
1852
+//
1853
+// Extensible UI
1854
+//
1855
+// Enable third-party or vendor customized user interfaces that aren't
1856
+// packaged with Marlin. Source code for the user interface will need to
1857
+// be placed in "src/lcd/extensible_ui/lib"
1858
+//
1859
+//#define EXTENSIBLE_UI
1860
+
1852 1861
 //=============================================================================
1853 1862
 //============================  Other Controllers  ============================
1854 1863
 //=============================================================================

+ 9
- 0
Marlin/src/config/examples/Creality/CR-10S/Configuration.h Datei anzeigen

@@ -1844,6 +1844,15 @@
1844 1844
 //
1845 1845
 //#define SILVER_GATE_GLCD_CONTROLLER
1846 1846
 
1847
+//
1848
+// Extensible UI
1849
+//
1850
+// Enable third-party or vendor customized user interfaces that aren't
1851
+// packaged with Marlin. Source code for the user interface will need to
1852
+// be placed in "src/lcd/extensible_ui/lib"
1853
+//
1854
+//#define EXTENSIBLE_UI
1855
+
1847 1856
 //=============================================================================
1848 1857
 //============================  Other Controllers  ============================
1849 1858
 //=============================================================================

+ 9
- 0
Marlin/src/config/examples/Creality/CR-10mini/Configuration.h Datei anzeigen

@@ -1858,6 +1858,15 @@
1858 1858
 //
1859 1859
 //#define SILVER_GATE_GLCD_CONTROLLER
1860 1860
 
1861
+//
1862
+// Extensible UI
1863
+//
1864
+// Enable third-party or vendor customized user interfaces that aren't
1865
+// packaged with Marlin. Source code for the user interface will need to
1866
+// be placed in "src/lcd/extensible_ui/lib"
1867
+//
1868
+//#define EXTENSIBLE_UI
1869
+
1861 1870
 //=============================================================================
1862 1871
 //============================  Other Controllers  ============================
1863 1872
 //=============================================================================

+ 9
- 0
Marlin/src/config/examples/Creality/CR-8/Configuration.h Datei anzeigen

@@ -1849,6 +1849,15 @@
1849 1849
 //
1850 1850
 //#define SILVER_GATE_GLCD_CONTROLLER
1851 1851
 
1852
+//
1853
+// Extensible UI
1854
+//
1855
+// Enable third-party or vendor customized user interfaces that aren't
1856
+// packaged with Marlin. Source code for the user interface will need to
1857
+// be placed in "src/lcd/extensible_ui/lib"
1858
+//
1859
+//#define EXTENSIBLE_UI
1860
+
1852 1861
 //=============================================================================
1853 1862
 //============================  Other Controllers  ============================
1854 1863
 //=============================================================================

+ 9
- 0
Marlin/src/config/examples/Creality/Ender-2/Configuration.h Datei anzeigen

@@ -1843,6 +1843,15 @@
1843 1843
 //
1844 1844
 //#define SILVER_GATE_GLCD_CONTROLLER
1845 1845
 
1846
+//
1847
+// Extensible UI
1848
+//
1849
+// Enable third-party or vendor customized user interfaces that aren't
1850
+// packaged with Marlin. Source code for the user interface will need to
1851
+// be placed in "src/lcd/extensible_ui/lib"
1852
+//
1853
+//#define EXTENSIBLE_UI
1854
+
1846 1855
 //=============================================================================
1847 1856
 //============================  Other Controllers  ============================
1848 1857
 //=============================================================================

+ 9
- 0
Marlin/src/config/examples/Creality/Ender-3/Configuration.h Datei anzeigen

@@ -1843,6 +1843,15 @@
1843 1843
 //
1844 1844
 //#define SILVER_GATE_GLCD_CONTROLLER
1845 1845
 
1846
+//
1847
+// Extensible UI
1848
+//
1849
+// Enable third-party or vendor customized user interfaces that aren't
1850
+// packaged with Marlin. Source code for the user interface will need to
1851
+// be placed in "src/lcd/extensible_ui/lib"
1852
+//
1853
+//#define EXTENSIBLE_UI
1854
+
1846 1855
 //=============================================================================
1847 1856
 //============================  Other Controllers  ============================
1848 1857
 //=============================================================================

+ 9
- 0
Marlin/src/config/examples/Creality/Ender-4/Configuration.h Datei anzeigen

@@ -1849,6 +1849,15 @@
1849 1849
 //
1850 1850
 //#define SILVER_GATE_GLCD_CONTROLLER
1851 1851
 
1852
+//
1853
+// Extensible UI
1854
+//
1855
+// Enable third-party or vendor customized user interfaces that aren't
1856
+// packaged with Marlin. Source code for the user interface will need to
1857
+// be placed in "src/lcd/extensible_ui/lib"
1858
+//
1859
+//#define EXTENSIBLE_UI
1860
+
1852 1861
 //=============================================================================
1853 1862
 //============================  Other Controllers  ============================
1854 1863
 //=============================================================================

+ 9
- 0
Marlin/src/config/examples/Felix/Configuration.h Datei anzeigen

@@ -1821,6 +1821,15 @@
1821 1821
 //
1822 1822
 //#define SILVER_GATE_GLCD_CONTROLLER
1823 1823
 
1824
+//
1825
+// Extensible UI
1826
+//
1827
+// Enable third-party or vendor customized user interfaces that aren't
1828
+// packaged with Marlin. Source code for the user interface will need to
1829
+// be placed in "src/lcd/extensible_ui/lib"
1830
+//
1831
+//#define EXTENSIBLE_UI
1832
+
1824 1833
 //=============================================================================
1825 1834
 //============================  Other Controllers  ============================
1826 1835
 //=============================================================================

+ 9
- 0
Marlin/src/config/examples/Felix/DUAL/Configuration.h Datei anzeigen

@@ -1821,6 +1821,15 @@
1821 1821
 //
1822 1822
 //#define SILVER_GATE_GLCD_CONTROLLER
1823 1823
 
1824
+//
1825
+// Extensible UI
1826
+//
1827
+// Enable third-party or vendor customized user interfaces that aren't
1828
+// packaged with Marlin. Source code for the user interface will need to
1829
+// be placed in "src/lcd/extensible_ui/lib"
1830
+//
1831
+//#define EXTENSIBLE_UI
1832
+
1824 1833
 //=============================================================================
1825 1834
 //============================  Other Controllers  ============================
1826 1835
 //=============================================================================

+ 9
- 0
Marlin/src/config/examples/FolgerTech/i3-2020/Configuration.h Datei anzeigen

@@ -1845,6 +1845,15 @@
1845 1845
 //
1846 1846
 //#define SILVER_GATE_GLCD_CONTROLLER
1847 1847
 
1848
+//
1849
+// Extensible UI
1850
+//
1851
+// Enable third-party or vendor customized user interfaces that aren't
1852
+// packaged with Marlin. Source code for the user interface will need to
1853
+// be placed in "src/lcd/extensible_ui/lib"
1854
+//
1855
+//#define EXTENSIBLE_UI
1856
+
1848 1857
 //=============================================================================
1849 1858
 //============================  Other Controllers  ============================
1850 1859
 //=============================================================================

+ 9
- 0
Marlin/src/config/examples/Formbot/Raptor/Configuration.h Datei anzeigen

@@ -1945,6 +1945,15 @@
1945 1945
 //
1946 1946
 //#define SILVER_GATE_GLCD_CONTROLLER
1947 1947
 
1948
+//
1949
+// Extensible UI
1950
+//
1951
+// Enable third-party or vendor customized user interfaces that aren't
1952
+// packaged with Marlin. Source code for the user interface will need to
1953
+// be placed in "src/lcd/extensible_ui/lib"
1954
+//
1955
+//#define EXTENSIBLE_UI
1956
+
1948 1957
 //=============================================================================
1949 1958
 //============================  Other Controllers  ============================
1950 1959
 //=============================================================================

+ 9
- 0
Marlin/src/config/examples/Formbot/T_Rex_2+/Configuration.h Datei anzeigen

@@ -1886,6 +1886,15 @@
1886 1886
 //
1887 1887
 //#define SILVER_GATE_GLCD_CONTROLLER
1888 1888
 
1889
+//
1890
+// Extensible UI
1891
+//
1892
+// Enable third-party or vendor customized user interfaces that aren't
1893
+// packaged with Marlin. Source code for the user interface will need to
1894
+// be placed in "src/lcd/extensible_ui/lib"
1895
+//
1896
+//#define EXTENSIBLE_UI
1897
+
1889 1898
 //=============================================================================
1890 1899
 //============================  Other Controllers  ============================
1891 1900
 //=============================================================================

+ 9
- 0
Marlin/src/config/examples/Formbot/T_Rex_3/Configuration.h Datei anzeigen

@@ -1872,6 +1872,15 @@
1872 1872
 //
1873 1873
 //#define SILVER_GATE_GLCD_CONTROLLER
1874 1874
 
1875
+//
1876
+// Extensible UI
1877
+//
1878
+// Enable third-party or vendor customized user interfaces that aren't
1879
+// packaged with Marlin. Source code for the user interface will need to
1880
+// be placed in "src/lcd/extensible_ui/lib"
1881
+//
1882
+//#define EXTENSIBLE_UI
1883
+
1875 1884
 //=============================================================================
1876 1885
 //============================  Other Controllers  ============================
1877 1886
 //=============================================================================

+ 9
- 0
Marlin/src/config/examples/Geeetech/GT2560/Configuration.h Datei anzeigen

@@ -1854,6 +1854,15 @@
1854 1854
 //
1855 1855
 //#define SILVER_GATE_GLCD_CONTROLLER
1856 1856
 
1857
+//
1858
+// Extensible UI
1859
+//
1860
+// Enable third-party or vendor customized user interfaces that aren't
1861
+// packaged with Marlin. Source code for the user interface will need to
1862
+// be placed in "src/lcd/extensible_ui/lib"
1863
+//
1864
+//#define EXTENSIBLE_UI
1865
+
1857 1866
 //=============================================================================
1858 1867
 //============================  Other Controllers  ============================
1859 1868
 //=============================================================================

+ 9
- 0
Marlin/src/config/examples/Geeetech/I3_Pro_X-GT2560/Configuration.h Datei anzeigen

@@ -1839,6 +1839,15 @@
1839 1839
 //
1840 1840
 //#define SILVER_GATE_GLCD_CONTROLLER
1841 1841
 
1842
+//
1843
+// Extensible UI
1844
+//
1845
+// Enable third-party or vendor customized user interfaces that aren't
1846
+// packaged with Marlin. Source code for the user interface will need to
1847
+// be placed in "src/lcd/extensible_ui/lib"
1848
+//
1849
+//#define EXTENSIBLE_UI
1850
+
1842 1851
 //=============================================================================
1843 1852
 //============================  Other Controllers  ============================
1844 1853
 //=============================================================================

+ 9
- 0
Marlin/src/config/examples/Geeetech/MeCreator2/Configuration.h Datei anzeigen

@@ -1846,6 +1846,15 @@
1846 1846
 //
1847 1847
 //#define SILVER_GATE_GLCD_CONTROLLER
1848 1848
 
1849
+//
1850
+// Extensible UI
1851
+//
1852
+// Enable third-party or vendor customized user interfaces that aren't
1853
+// packaged with Marlin. Source code for the user interface will need to
1854
+// be placed in "src/lcd/extensible_ui/lib"
1855
+//
1856
+//#define EXTENSIBLE_UI
1857
+
1849 1858
 //=============================================================================
1850 1859
 //============================  Other Controllers  ============================
1851 1860
 //=============================================================================

+ 9
- 0
Marlin/src/config/examples/Geeetech/Prusa i3 Pro B/bltouch/Configuration.h Datei anzeigen

@@ -1855,6 +1855,15 @@
1855 1855
 //
1856 1856
 //#define SILVER_GATE_GLCD_CONTROLLER
1857 1857
 
1858
+//
1859
+// Extensible UI
1860
+//
1861
+// Enable third-party or vendor customized user interfaces that aren't
1862
+// packaged with Marlin. Source code for the user interface will need to
1863
+// be placed in "src/lcd/extensible_ui/lib"
1864
+//
1865
+//#define EXTENSIBLE_UI
1866
+
1858 1867
 //=============================================================================
1859 1868
 //============================  Other Controllers  ============================
1860 1869
 //=============================================================================

+ 9
- 0
Marlin/src/config/examples/Geeetech/Prusa i3 Pro B/noprobe/Configuration.h Datei anzeigen

@@ -1854,6 +1854,15 @@
1854 1854
 //
1855 1855
 //#define SILVER_GATE_GLCD_CONTROLLER
1856 1856
 
1857
+//
1858
+// Extensible UI
1859
+//
1860
+// Enable third-party or vendor customized user interfaces that aren't
1861
+// packaged with Marlin. Source code for the user interface will need to
1862
+// be placed in "src/lcd/extensible_ui/lib"
1863
+//
1864
+//#define EXTENSIBLE_UI
1865
+
1857 1866
 //=============================================================================
1858 1867
 //============================  Other Controllers  ============================
1859 1868
 //=============================================================================

+ 9
- 0
Marlin/src/config/examples/Geeetech/Prusa i3 Pro C/Configuration.h Datei anzeigen

@@ -1839,6 +1839,15 @@
1839 1839
 //
1840 1840
 //#define SILVER_GATE_GLCD_CONTROLLER
1841 1841
 
1842
+//
1843
+// Extensible UI
1844
+//
1845
+// Enable third-party or vendor customized user interfaces that aren't
1846
+// packaged with Marlin. Source code for the user interface will need to
1847
+// be placed in "src/lcd/extensible_ui/lib"
1848
+//
1849
+//#define EXTENSIBLE_UI
1850
+
1842 1851
 //=============================================================================
1843 1852
 //============================  Other Controllers  ============================
1844 1853
 //=============================================================================

+ 9
- 0
Marlin/src/config/examples/Geeetech/Prusa i3 Pro W/Configuration.h Datei anzeigen

@@ -1839,6 +1839,15 @@
1839 1839
 //
1840 1840
 //#define SILVER_GATE_GLCD_CONTROLLER
1841 1841
 
1842
+//
1843
+// Extensible UI
1844
+//
1845
+// Enable third-party or vendor customized user interfaces that aren't
1846
+// packaged with Marlin. Source code for the user interface will need to
1847
+// be placed in "src/lcd/extensible_ui/lib"
1848
+//
1849
+//#define EXTENSIBLE_UI
1850
+
1842 1851
 //=============================================================================
1843 1852
 //============================  Other Controllers  ============================
1844 1853
 //=============================================================================

+ 9
- 0
Marlin/src/config/examples/Infitary/i3-M508/Configuration.h Datei anzeigen

@@ -1843,6 +1843,15 @@
1843 1843
 //
1844 1844
 //#define SILVER_GATE_GLCD_CONTROLLER
1845 1845
 
1846
+//
1847
+// Extensible UI
1848
+//
1849
+// Enable third-party or vendor customized user interfaces that aren't
1850
+// packaged with Marlin. Source code for the user interface will need to
1851
+// be placed in "src/lcd/extensible_ui/lib"
1852
+//
1853
+//#define EXTENSIBLE_UI
1854
+
1846 1855
 //=============================================================================
1847 1856
 //============================  Other Controllers  ============================
1848 1857
 //=============================================================================

+ 9
- 0
Marlin/src/config/examples/JGAurora/A5/Configuration.h Datei anzeigen

@@ -1850,6 +1850,15 @@
1850 1850
 //
1851 1851
 //#define SILVER_GATE_GLCD_CONTROLLER
1852 1852
 
1853
+//
1854
+// Extensible UI
1855
+//
1856
+// Enable third-party or vendor customized user interfaces that aren't
1857
+// packaged with Marlin. Source code for the user interface will need to
1858
+// be placed in "src/lcd/extensible_ui/lib"
1859
+//
1860
+//#define EXTENSIBLE_UI
1861
+
1853 1862
 //=============================================================================
1854 1863
 //============================  Other Controllers  ============================
1855 1864
 //=============================================================================

+ 9
- 0
Marlin/src/config/examples/MakerParts/Configuration.h Datei anzeigen

@@ -1859,6 +1859,15 @@
1859 1859
 //
1860 1860
 //#define SILVER_GATE_GLCD_CONTROLLER
1861 1861
 
1862
+//
1863
+// Extensible UI
1864
+//
1865
+// Enable third-party or vendor customized user interfaces that aren't
1866
+// packaged with Marlin. Source code for the user interface will need to
1867
+// be placed in "src/lcd/extensible_ui/lib"
1868
+//
1869
+//#define EXTENSIBLE_UI
1870
+
1862 1871
 //=============================================================================
1863 1872
 //============================  Other Controllers  ============================
1864 1873
 //=============================================================================

+ 9
- 0
Marlin/src/config/examples/Malyan/M150/Configuration.h Datei anzeigen

@@ -1867,6 +1867,15 @@
1867 1867
 //
1868 1868
 //#define SILVER_GATE_GLCD_CONTROLLER
1869 1869
 
1870
+//
1871
+// Extensible UI
1872
+//
1873
+// Enable third-party or vendor customized user interfaces that aren't
1874
+// packaged with Marlin. Source code for the user interface will need to
1875
+// be placed in "src/lcd/extensible_ui/lib"
1876
+//
1877
+//#define EXTENSIBLE_UI
1878
+
1870 1879
 //=============================================================================
1871 1880
 //============================  Other Controllers  ============================
1872 1881
 //=============================================================================

+ 9
- 0
Marlin/src/config/examples/Malyan/M200/Configuration.h Datei anzeigen

@@ -1838,6 +1838,15 @@
1838 1838
 //
1839 1839
 //#define SILVER_GATE_GLCD_CONTROLLER
1840 1840
 
1841
+//
1842
+// Extensible UI
1843
+//
1844
+// Enable third-party or vendor customized user interfaces that aren't
1845
+// packaged with Marlin. Source code for the user interface will need to
1846
+// be placed in "src/lcd/extensible_ui/lib"
1847
+//
1848
+//#define EXTENSIBLE_UI
1849
+
1841 1850
 //=============================================================================
1842 1851
 //============================  Other Controllers  ============================
1843 1852
 //=============================================================================

+ 9
- 0
Marlin/src/config/examples/Micromake/C1/basic/Configuration.h Datei anzeigen

@@ -1843,6 +1843,15 @@
1843 1843
 //
1844 1844
 //#define SILVER_GATE_GLCD_CONTROLLER
1845 1845
 
1846
+//
1847
+// Extensible UI
1848
+//
1849
+// Enable third-party or vendor customized user interfaces that aren't
1850
+// packaged with Marlin. Source code for the user interface will need to
1851
+// be placed in "src/lcd/extensible_ui/lib"
1852
+//
1853
+//#define EXTENSIBLE_UI
1854
+
1846 1855
 //=============================================================================
1847 1856
 //============================  Other Controllers  ============================
1848 1857
 //=============================================================================

+ 9
- 0
Marlin/src/config/examples/Micromake/C1/enhanced/Configuration.h Datei anzeigen

@@ -1843,6 +1843,15 @@
1843 1843
 //
1844 1844
 //#define SILVER_GATE_GLCD_CONTROLLER
1845 1845
 
1846
+//
1847
+// Extensible UI
1848
+//
1849
+// Enable third-party or vendor customized user interfaces that aren't
1850
+// packaged with Marlin. Source code for the user interface will need to
1851
+// be placed in "src/lcd/extensible_ui/lib"
1852
+//
1853
+//#define EXTENSIBLE_UI
1854
+
1846 1855
 //=============================================================================
1847 1856
 //============================  Other Controllers  ============================
1848 1857
 //=============================================================================

+ 9
- 0
Marlin/src/config/examples/Mks/Sbase/Configuration.h Datei anzeigen

@@ -1839,6 +1839,15 @@
1839 1839
 //
1840 1840
 //#define SILVER_GATE_GLCD_CONTROLLER
1841 1841
 
1842
+//
1843
+// Extensible UI
1844
+//
1845
+// Enable third-party or vendor customized user interfaces that aren't
1846
+// packaged with Marlin. Source code for the user interface will need to
1847
+// be placed in "src/lcd/extensible_ui/lib"
1848
+//
1849
+//#define EXTENSIBLE_UI
1850
+
1842 1851
 //=============================================================================
1843 1852
 //============================  Other Controllers  ============================
1844 1853
 //=============================================================================

+ 9
- 0
Marlin/src/config/examples/RepRapPro/Huxley/Configuration.h Datei anzeigen

@@ -1888,6 +1888,15 @@ Black rubber belt(MXL), 18 - tooth aluminium pulley : 87.489 step per mm (Huxley
1888 1888
 //
1889 1889
 //#define SILVER_GATE_GLCD_CONTROLLER
1890 1890
 
1891
+//
1892
+// Extensible UI
1893
+//
1894
+// Enable third-party or vendor customized user interfaces that aren't
1895
+// packaged with Marlin. Source code for the user interface will need to
1896
+// be placed in "src/lcd/extensible_ui/lib"
1897
+//
1898
+//#define EXTENSIBLE_UI
1899
+
1891 1900
 //=============================================================================
1892 1901
 //============================  Other Controllers  ============================
1893 1902
 //=============================================================================

+ 9
- 0
Marlin/src/config/examples/RepRapWorld/Megatronics/Configuration.h Datei anzeigen

@@ -1839,6 +1839,15 @@
1839 1839
 //
1840 1840
 //#define SILVER_GATE_GLCD_CONTROLLER
1841 1841
 
1842
+//
1843
+// Extensible UI
1844
+//
1845
+// Enable third-party or vendor customized user interfaces that aren't
1846
+// packaged with Marlin. Source code for the user interface will need to
1847
+// be placed in "src/lcd/extensible_ui/lib"
1848
+//
1849
+//#define EXTENSIBLE_UI
1850
+
1842 1851
 //=============================================================================
1843 1852
 //============================  Other Controllers  ============================
1844 1853
 //=============================================================================

+ 9
- 0
Marlin/src/config/examples/RigidBot/Configuration.h Datei anzeigen

@@ -1839,6 +1839,15 @@
1839 1839
 //
1840 1840
 //#define SILVER_GATE_GLCD_CONTROLLER
1841 1841
 
1842
+//
1843
+// Extensible UI
1844
+//
1845
+// Enable third-party or vendor customized user interfaces that aren't
1846
+// packaged with Marlin. Source code for the user interface will need to
1847
+// be placed in "src/lcd/extensible_ui/lib"
1848
+//
1849
+//#define EXTENSIBLE_UI
1850
+
1842 1851
 //=============================================================================
1843 1852
 //============================  Other Controllers  ============================
1844 1853
 //=============================================================================

+ 9
- 0
Marlin/src/config/examples/SCARA/Configuration.h Datei anzeigen

@@ -1852,6 +1852,15 @@
1852 1852
 //
1853 1853
 //#define SILVER_GATE_GLCD_CONTROLLER
1854 1854
 
1855
+//
1856
+// Extensible UI
1857
+//
1858
+// Enable third-party or vendor customized user interfaces that aren't
1859
+// packaged with Marlin. Source code for the user interface will need to
1860
+// be placed in "src/lcd/extensible_ui/lib"
1861
+//
1862
+//#define EXTENSIBLE_UI
1863
+
1855 1864
 //=============================================================================
1856 1865
 //============================  Other Controllers  ============================
1857 1866
 //=============================================================================

+ 9
- 0
Marlin/src/config/examples/STM32F10/Configuration.h Datei anzeigen

@@ -1841,6 +1841,15 @@
1841 1841
 //
1842 1842
 //#define SILVER_GATE_GLCD_CONTROLLER
1843 1843
 
1844
+//
1845
+// Extensible UI
1846
+//
1847
+// Enable third-party or vendor customized user interfaces that aren't
1848
+// packaged with Marlin. Source code for the user interface will need to
1849
+// be placed in "src/lcd/extensible_ui/lib"
1850
+//
1851
+//#define EXTENSIBLE_UI
1852
+
1844 1853
 //=============================================================================
1845 1854
 //============================  Other Controllers  ============================
1846 1855
 //=============================================================================

+ 9
- 0
Marlin/src/config/examples/STM32F4/Configuration.h Datei anzeigen

@@ -1839,6 +1839,15 @@
1839 1839
 //
1840 1840
 //#define SILVER_GATE_GLCD_CONTROLLER
1841 1841
 
1842
+//
1843
+// Extensible UI
1844
+//
1845
+// Enable third-party or vendor customized user interfaces that aren't
1846
+// packaged with Marlin. Source code for the user interface will need to
1847
+// be placed in "src/lcd/extensible_ui/lib"
1848
+//
1849
+//#define EXTENSIBLE_UI
1850
+
1842 1851
 //=============================================================================
1843 1852
 //============================  Other Controllers  ============================
1844 1853
 //=============================================================================

+ 9
- 0
Marlin/src/config/examples/Sanguinololu/Configuration.h Datei anzeigen

@@ -1870,6 +1870,15 @@
1870 1870
 //
1871 1871
 //#define SILVER_GATE_GLCD_CONTROLLER
1872 1872
 
1873
+//
1874
+// Extensible UI
1875
+//
1876
+// Enable third-party or vendor customized user interfaces that aren't
1877
+// packaged with Marlin. Source code for the user interface will need to
1878
+// be placed in "src/lcd/extensible_ui/lib"
1879
+//
1880
+//#define EXTENSIBLE_UI
1881
+
1873 1882
 //=============================================================================
1874 1883
 //============================  Other Controllers  ============================
1875 1884
 //=============================================================================

+ 9
- 0
Marlin/src/config/examples/TheBorg/Configuration.h Datei anzeigen

@@ -1839,6 +1839,15 @@
1839 1839
 //
1840 1840
 //#define SILVER_GATE_GLCD_CONTROLLER
1841 1841
 
1842
+//
1843
+// Extensible UI
1844
+//
1845
+// Enable third-party or vendor customized user interfaces that aren't
1846
+// packaged with Marlin. Source code for the user interface will need to
1847
+// be placed in "src/lcd/extensible_ui/lib"
1848
+//
1849
+//#define EXTENSIBLE_UI
1850
+
1842 1851
 //=============================================================================
1843 1852
 //============================  Other Controllers  ============================
1844 1853
 //=============================================================================

+ 9
- 0
Marlin/src/config/examples/TinyBoy2/Configuration.h Datei anzeigen

@@ -1895,6 +1895,15 @@
1895 1895
 //
1896 1896
 //#define SILVER_GATE_GLCD_CONTROLLER
1897 1897
 
1898
+//
1899
+// Extensible UI
1900
+//
1901
+// Enable third-party or vendor customized user interfaces that aren't
1902
+// packaged with Marlin. Source code for the user interface will need to
1903
+// be placed in "src/lcd/extensible_ui/lib"
1904
+//
1905
+//#define EXTENSIBLE_UI
1906
+
1898 1907
 //=============================================================================
1899 1908
 //============================  Other Controllers  ============================
1900 1909
 //=============================================================================

+ 9
- 0
Marlin/src/config/examples/Tronxy/X1/Configuration.h Datei anzeigen

@@ -1839,6 +1839,15 @@
1839 1839
 //
1840 1840
 //#define SILVER_GATE_GLCD_CONTROLLER
1841 1841
 
1842
+//
1843
+// Extensible UI
1844
+//
1845
+// Enable third-party or vendor customized user interfaces that aren't
1846
+// packaged with Marlin. Source code for the user interface will need to
1847
+// be placed in "src/lcd/extensible_ui/lib"
1848
+//
1849
+//#define EXTENSIBLE_UI
1850
+
1842 1851
 //=============================================================================
1843 1852
 //============================  Other Controllers  ============================
1844 1853
 //=============================================================================

+ 9
- 0
Marlin/src/config/examples/Tronxy/X3A/Configuration.h Datei anzeigen

@@ -1843,6 +1843,15 @@
1843 1843
 //
1844 1844
 //#define SILVER_GATE_GLCD_CONTROLLER
1845 1845
 
1846
+//
1847
+// Extensible UI
1848
+//
1849
+// Enable third-party or vendor customized user interfaces that aren't
1850
+// packaged with Marlin. Source code for the user interface will need to
1851
+// be placed in "src/lcd/extensible_ui/lib"
1852
+//
1853
+//#define EXTENSIBLE_UI
1854
+
1846 1855
 //=============================================================================
1847 1856
 //============================  Other Controllers  ============================
1848 1857
 //=============================================================================

+ 9
- 0
Marlin/src/config/examples/Tronxy/X5S/Configuration.h Datei anzeigen

@@ -1839,6 +1839,15 @@
1839 1839
 //
1840 1840
 //#define SILVER_GATE_GLCD_CONTROLLER
1841 1841
 
1842
+//
1843
+// Extensible UI
1844
+//
1845
+// Enable third-party or vendor customized user interfaces that aren't
1846
+// packaged with Marlin. Source code for the user interface will need to
1847
+// be placed in "src/lcd/extensible_ui/lib"
1848
+//
1849
+//#define EXTENSIBLE_UI
1850
+
1842 1851
 //=============================================================================
1843 1852
 //============================  Other Controllers  ============================
1844 1853
 //=============================================================================

+ 9
- 0
Marlin/src/config/examples/Tronxy/XY100/Configuration.h Datei anzeigen

@@ -1850,6 +1850,15 @@
1850 1850
 //
1851 1851
 //#define SILVER_GATE_GLCD_CONTROLLER
1852 1852
 
1853
+//
1854
+// Extensible UI
1855
+//
1856
+// Enable third-party or vendor customized user interfaces that aren't
1857
+// packaged with Marlin. Source code for the user interface will need to
1858
+// be placed in "src/lcd/extensible_ui/lib"
1859
+//
1860
+//#define EXTENSIBLE_UI
1861
+
1853 1862
 //=============================================================================
1854 1863
 //============================  Other Controllers  ============================
1855 1864
 //=============================================================================

+ 9
- 0
Marlin/src/config/examples/UltiMachine/Archim2/Configuration.h Datei anzeigen

@@ -1839,6 +1839,15 @@
1839 1839
 //
1840 1840
 //#define SILVER_GATE_GLCD_CONTROLLER
1841 1841
 
1842
+//
1843
+// Extensible UI
1844
+//
1845
+// Enable third-party or vendor customized user interfaces that aren't
1846
+// packaged with Marlin. Source code for the user interface will need to
1847
+// be placed in "src/lcd/extensible_ui/lib"
1848
+//
1849
+//#define EXTENSIBLE_UI
1850
+
1842 1851
 //=============================================================================
1843 1852
 //============================  Other Controllers  ============================
1844 1853
 //=============================================================================

+ 9
- 0
Marlin/src/config/examples/Velleman/K8200/Configuration.h Datei anzeigen

@@ -1874,6 +1874,15 @@
1874 1874
 
1875 1875
 #endif // K8200_VM8201
1876 1876
 
1877
+//
1878
+// Extensible UI
1879
+//
1880
+// Enable third-party or vendor customized user interfaces that aren't
1881
+// packaged with Marlin. Source code for the user interface will need to
1882
+// be placed in "src/lcd/extensible_ui/lib"
1883
+//
1884
+//#define EXTENSIBLE_UI
1885
+
1877 1886
 //=============================================================================
1878 1887
 //============================  Other Controllers  ============================
1879 1888
 //=============================================================================

+ 9
- 0
Marlin/src/config/examples/Velleman/K8400/Configuration.h Datei anzeigen

@@ -1839,6 +1839,15 @@
1839 1839
 //
1840 1840
 //#define SILVER_GATE_GLCD_CONTROLLER
1841 1841
 
1842
+//
1843
+// Extensible UI
1844
+//
1845
+// Enable third-party or vendor customized user interfaces that aren't
1846
+// packaged with Marlin. Source code for the user interface will need to
1847
+// be placed in "src/lcd/extensible_ui/lib"
1848
+//
1849
+//#define EXTENSIBLE_UI
1850
+
1842 1851
 //=============================================================================
1843 1852
 //============================  Other Controllers  ============================
1844 1853
 //=============================================================================

+ 9
- 0
Marlin/src/config/examples/Velleman/K8400/Dual-head/Configuration.h Datei anzeigen

@@ -1839,6 +1839,15 @@
1839 1839
 //
1840 1840
 //#define SILVER_GATE_GLCD_CONTROLLER
1841 1841
 
1842
+//
1843
+// Extensible UI
1844
+//
1845
+// Enable third-party or vendor customized user interfaces that aren't
1846
+// packaged with Marlin. Source code for the user interface will need to
1847
+// be placed in "src/lcd/extensible_ui/lib"
1848
+//
1849
+//#define EXTENSIBLE_UI
1850
+
1842 1851
 //=============================================================================
1843 1852
 //============================  Other Controllers  ============================
1844 1853
 //=============================================================================

+ 9
- 0
Marlin/src/config/examples/Wanhao/Duplicator 6/Configuration.h Datei anzeigen

@@ -1852,6 +1852,15 @@
1852 1852
 //
1853 1853
 //#define SILVER_GATE_GLCD_CONTROLLER
1854 1854
 
1855
+//
1856
+// Extensible UI
1857
+//
1858
+// Enable third-party or vendor customized user interfaces that aren't
1859
+// packaged with Marlin. Source code for the user interface will need to
1860
+// be placed in "src/lcd/extensible_ui/lib"
1861
+//
1862
+//#define EXTENSIBLE_UI
1863
+
1855 1864
 //=============================================================================
1856 1865
 //============================  Other Controllers  ============================
1857 1866
 //=============================================================================

+ 9
- 0
Marlin/src/config/examples/adafruit/ST7565/Configuration.h Datei anzeigen

@@ -1839,6 +1839,15 @@
1839 1839
 //
1840 1840
 //#define SILVER_GATE_GLCD_CONTROLLER
1841 1841
 
1842
+//
1843
+// Extensible UI
1844
+//
1845
+// Enable third-party or vendor customized user interfaces that aren't
1846
+// packaged with Marlin. Source code for the user interface will need to
1847
+// be placed in "src/lcd/extensible_ui/lib"
1848
+//
1849
+//#define EXTENSIBLE_UI
1850
+
1842 1851
 //=============================================================================
1843 1852
 //============================  Other Controllers  ============================
1844 1853
 //=============================================================================

+ 9
- 0
Marlin/src/config/examples/delta/Anycubic/Kossel/Configuration.h Datei anzeigen

@@ -2030,6 +2030,15 @@
2030 2030
 //
2031 2031
 //#define SILVER_GATE_GLCD_CONTROLLER
2032 2032
 
2033
+//
2034
+// Extensible UI
2035
+//
2036
+// Enable third-party or vendor customized user interfaces that aren't
2037
+// packaged with Marlin. Source code for the user interface will need to
2038
+// be placed in "src/lcd/extensible_ui/lib"
2039
+//
2040
+//#define EXTENSIBLE_UI
2041
+
2033 2042
 //=============================================================================
2034 2043
 //============================  Other Controllers  ============================
2035 2044
 //=============================================================================

+ 9
- 0
Marlin/src/config/examples/delta/FLSUN/auto_calibrate/Configuration.h Datei anzeigen

@@ -1967,6 +1967,15 @@
1967 1967
 //
1968 1968
 //#define SILVER_GATE_GLCD_CONTROLLER
1969 1969
 
1970
+//
1971
+// Extensible UI
1972
+//
1973
+// Enable third-party or vendor customized user interfaces that aren't
1974
+// packaged with Marlin. Source code for the user interface will need to
1975
+// be placed in "src/lcd/extensible_ui/lib"
1976
+//
1977
+//#define EXTENSIBLE_UI
1978
+
1970 1979
 //=============================================================================
1971 1980
 //============================  Other Controllers  ============================
1972 1981
 //=============================================================================

+ 9
- 0
Marlin/src/config/examples/delta/FLSUN/kossel/Configuration.h Datei anzeigen

@@ -1966,6 +1966,15 @@
1966 1966
 //
1967 1967
 //#define SILVER_GATE_GLCD_CONTROLLER
1968 1968
 
1969
+//
1970
+// Extensible UI
1971
+//
1972
+// Enable third-party or vendor customized user interfaces that aren't
1973
+// packaged with Marlin. Source code for the user interface will need to
1974
+// be placed in "src/lcd/extensible_ui/lib"
1975
+//
1976
+//#define EXTENSIBLE_UI
1977
+
1969 1978
 //=============================================================================
1970 1979
 //============================  Other Controllers  ============================
1971 1980
 //=============================================================================

+ 9
- 0
Marlin/src/config/examples/delta/FLSUN/kossel_mini/Configuration.h Datei anzeigen

@@ -1966,6 +1966,15 @@
1966 1966
 //
1967 1967
 //#define SILVER_GATE_GLCD_CONTROLLER
1968 1968
 
1969
+//
1970
+// Extensible UI
1971
+//
1972
+// Enable third-party or vendor customized user interfaces that aren't
1973
+// packaged with Marlin. Source code for the user interface will need to
1974
+// be placed in "src/lcd/extensible_ui/lib"
1975
+//
1976
+//#define EXTENSIBLE_UI
1977
+
1969 1978
 //=============================================================================
1970 1979
 //============================  Other Controllers  ============================
1971 1980
 //=============================================================================

+ 9
- 0
Marlin/src/config/examples/delta/Hatchbox_Alpha/Configuration.h Datei anzeigen

@@ -1969,6 +1969,15 @@
1969 1969
 //
1970 1970
 //#define SILVER_GATE_GLCD_CONTROLLER
1971 1971
 
1972
+//
1973
+// Extensible UI
1974
+//
1975
+// Enable third-party or vendor customized user interfaces that aren't
1976
+// packaged with Marlin. Source code for the user interface will need to
1977
+// be placed in "src/lcd/extensible_ui/lib"
1978
+//
1979
+//#define EXTENSIBLE_UI
1980
+
1972 1981
 //=============================================================================
1973 1982
 //============================  Other Controllers  ============================
1974 1983
 //=============================================================================

+ 9
- 0
Marlin/src/config/examples/delta/generic/Configuration.h Datei anzeigen

@@ -1954,6 +1954,15 @@
1954 1954
 //
1955 1955
 //#define SILVER_GATE_GLCD_CONTROLLER
1956 1956
 
1957
+//
1958
+// Extensible UI
1959
+//
1960
+// Enable third-party or vendor customized user interfaces that aren't
1961
+// packaged with Marlin. Source code for the user interface will need to
1962
+// be placed in "src/lcd/extensible_ui/lib"
1963
+//
1964
+//#define EXTENSIBLE_UI
1965
+
1957 1966
 //=============================================================================
1958 1967
 //============================  Other Controllers  ============================
1959 1968
 //=============================================================================

+ 9
- 0
Marlin/src/config/examples/delta/kossel_mini/Configuration.h Datei anzeigen

@@ -1956,6 +1956,15 @@
1956 1956
 //
1957 1957
 //#define SILVER_GATE_GLCD_CONTROLLER
1958 1958
 
1959
+//
1960
+// Extensible UI
1961
+//
1962
+// Enable third-party or vendor customized user interfaces that aren't
1963
+// packaged with Marlin. Source code for the user interface will need to
1964
+// be placed in "src/lcd/extensible_ui/lib"
1965
+//
1966
+//#define EXTENSIBLE_UI
1967
+
1959 1968
 //=============================================================================
1960 1969
 //============================  Other Controllers  ============================
1961 1970
 //=============================================================================

+ 9
- 0
Marlin/src/config/examples/delta/kossel_pro/Configuration.h Datei anzeigen

@@ -1957,6 +1957,15 @@
1957 1957
 //
1958 1958
 //#define SILVER_GATE_GLCD_CONTROLLER
1959 1959
 
1960
+//
1961
+// Extensible UI
1962
+//
1963
+// Enable third-party or vendor customized user interfaces that aren't
1964
+// packaged with Marlin. Source code for the user interface will need to
1965
+// be placed in "src/lcd/extensible_ui/lib"
1966
+//
1967
+//#define EXTENSIBLE_UI
1968
+
1960 1969
 //=============================================================================
1961 1970
 //============================  Other Controllers  ============================
1962 1971
 //=============================================================================

+ 9
- 0
Marlin/src/config/examples/delta/kossel_xl/Configuration.h Datei anzeigen

@@ -1957,6 +1957,15 @@
1957 1957
 //
1958 1958
 //#define SILVER_GATE_GLCD_CONTROLLER
1959 1959
 
1960
+//
1961
+// Extensible UI
1962
+//
1963
+// Enable third-party or vendor customized user interfaces that aren't
1964
+// packaged with Marlin. Source code for the user interface will need to
1965
+// be placed in "src/lcd/extensible_ui/lib"
1966
+//
1967
+//#define EXTENSIBLE_UI
1968
+
1960 1969
 //=============================================================================
1961 1970
 //============================  Other Controllers  ============================
1962 1971
 //=============================================================================

+ 9
- 0
Marlin/src/config/examples/gCreate/gMax1.5+/Configuration.h Datei anzeigen

@@ -1853,6 +1853,15 @@
1853 1853
 //
1854 1854
 //#define SILVER_GATE_GLCD_CONTROLLER
1855 1855
 
1856
+//
1857
+// Extensible UI
1858
+//
1859
+// Enable third-party or vendor customized user interfaces that aren't
1860
+// packaged with Marlin. Source code for the user interface will need to
1861
+// be placed in "src/lcd/extensible_ui/lib"
1862
+//
1863
+//#define EXTENSIBLE_UI
1864
+
1856 1865
 //=============================================================================
1857 1866
 //============================  Other Controllers  ============================
1858 1867
 //=============================================================================

+ 9
- 0
Marlin/src/config/examples/makibox/Configuration.h Datei anzeigen

@@ -1842,6 +1842,15 @@
1842 1842
 //
1843 1843
 //#define SILVER_GATE_GLCD_CONTROLLER
1844 1844
 
1845
+//
1846
+// Extensible UI
1847
+//
1848
+// Enable third-party or vendor customized user interfaces that aren't
1849
+// packaged with Marlin. Source code for the user interface will need to
1850
+// be placed in "src/lcd/extensible_ui/lib"
1851
+//
1852
+//#define EXTENSIBLE_UI
1853
+
1845 1854
 //=============================================================================
1846 1855
 //============================  Other Controllers  ============================
1847 1856
 //=============================================================================

+ 9
- 0
Marlin/src/config/examples/stm32f103ret6/Configuration.h Datei anzeigen

@@ -1841,6 +1841,15 @@
1841 1841
 //
1842 1842
 //#define SILVER_GATE_GLCD_CONTROLLER
1843 1843
 
1844
+//
1845
+// Extensible UI
1846
+//
1847
+// Enable third-party or vendor customized user interfaces that aren't
1848
+// packaged with Marlin. Source code for the user interface will need to
1849
+// be placed in "src/lcd/extensible_ui/lib"
1850
+//
1851
+//#define EXTENSIBLE_UI
1852
+
1844 1853
 //=============================================================================
1845 1854
 //============================  Other Controllers  ============================
1846 1855
 //=============================================================================

+ 9
- 0
Marlin/src/config/examples/tvrrug/Round2/Configuration.h Datei anzeigen

@@ -1834,6 +1834,15 @@
1834 1834
 //
1835 1835
 //#define SILVER_GATE_GLCD_CONTROLLER
1836 1836
 
1837
+//
1838
+// Extensible UI
1839
+//
1840
+// Enable third-party or vendor customized user interfaces that aren't
1841
+// packaged with Marlin. Source code for the user interface will need to
1842
+// be placed in "src/lcd/extensible_ui/lib"
1843
+//
1844
+//#define EXTENSIBLE_UI
1845
+
1837 1846
 //=============================================================================
1838 1847
 //============================  Other Controllers  ============================
1839 1848
 //=============================================================================

+ 9
- 0
Marlin/src/config/examples/wt150/Configuration.h Datei anzeigen

@@ -1844,6 +1844,15 @@
1844 1844
 //
1845 1845
 //#define SILVER_GATE_GLCD_CONTROLLER
1846 1846
 
1847
+//
1848
+// Extensible UI
1849
+//
1850
+// Enable third-party or vendor customized user interfaces that aren't
1851
+// packaged with Marlin. Source code for the user interface will need to
1852
+// be placed in "src/lcd/extensible_ui/lib"
1853
+//
1854
+//#define EXTENSIBLE_UI
1855
+
1847 1856
 //=============================================================================
1848 1857
 //============================  Other Controllers  ============================
1849 1858
 //=============================================================================

+ 7
- 0
Marlin/src/feature/runout.h Datei anzeigen

@@ -34,6 +34,10 @@
34 34
 
35 35
 #include "../inc/MarlinConfig.h"
36 36
 
37
+#if ENABLED(EXTENSIBLE_UI)
38
+  #include "../lcd/extensible_ui/ui_api.h"
39
+#endif
40
+
37 41
 #define FIL_RUNOUT_THRESHOLD 5
38 42
 
39 43
 class FilamentRunoutSensor {
@@ -49,6 +53,9 @@ class FilamentRunoutSensor {
49 53
     FORCE_INLINE static void run() {
50 54
       if ((IS_SD_PRINTING || print_job_timer.isRunning()) && check() && !filament_ran_out) {
51 55
         filament_ran_out = true;
56
+        #if ENABLED(EXTENSIBLE_UI)
57
+          UI::onFilamentRunout();
58
+        #endif
52 59
         enqueue_and_echo_commands_P(PSTR(FILAMENT_RUNOUT_SCRIPT));
53 60
         planner.synchronize();
54 61
       }

+ 10
- 0
Marlin/src/gcode/eeprom/M500-M504.cpp Datei anzeigen

@@ -25,6 +25,10 @@
25 25
 #include "../../core/serial.h"
26 26
 #include "../../inc/MarlinConfig.h"
27 27
 
28
+#if ENABLED(EXTENSIBLE_UI)
29
+  #include "../../lcd/extensible_ui/ui_api.h"
30
+#endif
31
+
28 32
 #if NUM_SERIAL > 1
29 33
   #include "../../gcode/queue.h"
30 34
 #endif
@@ -40,6 +44,9 @@
40 44
  */
41 45
 void GcodeSuite::M500() {
42 46
   (void)settings.save(CHAT_PORT);
47
+  #if ENABLED(EXTENSIBLE_UI)
48
+    UI::onStoreSettings();
49
+  #endif
43 50
 }
44 51
 
45 52
 /**
@@ -58,6 +65,9 @@ void GcodeSuite::M501() {
58 65
  */
59 66
 void GcodeSuite::M502() {
60 67
   (void)settings.reset(CHAT_PORT);
68
+  #if ENABLED(EXTENSIBLE_UI)
69
+    UI::onFactoryReset();
70
+  #endif
61 71
 }
62 72
 
63 73
 #if DISABLED(DISABLE_M503)

+ 22
- 3
Marlin/src/gcode/stats/M75-M78.cpp Datei anzeigen

@@ -23,20 +23,39 @@
23 23
 #include "../gcode.h"
24 24
 #include "../../module/printcounter.h"
25 25
 
26
+#if ENABLED(EXTENSIBLE_UI)
27
+  #include "../../lcd/extensible_ui/ui_api.h"
28
+#endif
29
+
26 30
 /**
27 31
  * M75: Start print timer
28 32
  */
29
-void GcodeSuite::M75() { print_job_timer.start(); }
33
+void GcodeSuite::M75() {
34
+  print_job_timer.start();
35
+  #if ENABLED(EXTENSIBLE_UI)
36
+    UI::onPrintTimerStarted();
37
+  #endif
38
+}
30 39
 
31 40
 /**
32 41
  * M76: Pause print timer
33 42
  */
34
-void GcodeSuite::M76() { print_job_timer.pause(); }
43
+void GcodeSuite::M76() {
44
+  print_job_timer.pause();
45
+  #if ENABLED(EXTENSIBLE_UI)
46
+    UI::onPrintTimerPaused();
47
+  #endif
48
+}
35 49
 
36 50
 /**
37 51
  * M77: Stop print timer
38 52
  */
39
-void GcodeSuite::M77() { print_job_timer.stop(); }
53
+void GcodeSuite::M77() {
54
+ print_job_timer.stop();
55
+ #if ENABLED(EXTENSIBLE_UI)
56
+   UI::onPrintTimerStopped();
57
+ #endif
58
+}
40 59
 
41 60
 #if ENABLED(PRINTCOUNTER)
42 61
 

+ 1
- 1
Marlin/src/inc/Conditionals_LCD.h Datei anzeigen

@@ -543,7 +543,7 @@
543 543
 #define HOMING_Z_WITH_PROBE (HAS_BED_PROBE && Z_HOME_DIR < 0 && ENABLED(Z_MIN_PROBE_USES_Z_MIN_ENDSTOP_PIN))
544 544
 
545 545
 #define HAS_SOFTWARE_ENDSTOPS (ENABLED(MIN_SOFTWARE_ENDSTOPS) || ENABLED(MAX_SOFTWARE_ENDSTOPS))
546
-#define HAS_RESUME_CONTINUE (ENABLED(NEWPANEL) || ENABLED(EMERGENCY_PARSER))
546
+#define HAS_RESUME_CONTINUE (ENABLED(EXTENSIBLE_UI) || ENABLED(NEWPANEL) || ENABLED(EMERGENCY_PARSER))
547 547
 #define HAS_COLOR_LEDS (ENABLED(BLINKM) || ENABLED(RGB_LED) || ENABLED(RGBW_LED) || ENABLED(PCA9632) || ENABLED(NEOPIXEL_LED))
548 548
 
549 549
 #define Z_MULTI_STEPPER_DRIVERS (ENABLED(Z_DUAL_STEPPER_DRIVERS) || ENABLED(Z_TRIPLE_STEPPER_DRIVERS))

+ 50
- 0
Marlin/src/lcd/extensible_ui/lib/dummy.cpp Datei anzeigen

@@ -0,0 +1,50 @@
1
+/*************
2
+ * dummy.cpp *
3
+ *************/
4
+
5
+/****************************************************************************
6
+ *   Written By Marcio Teixeira 2018 - Aleph Objects, Inc.                  *
7
+ *                                                                          *
8
+ *   This program is free software: you can redistribute it and/or modify   *
9
+ *   it under the terms of the GNU General Public License as published by   *
10
+ *   the Free Software Foundation, either version 3 of the License, or      *
11
+ *   (at your option) any later version.                                    *
12
+ *                                                                          *
13
+ *   This program is distributed in the hope that it will be useful,        *
14
+ *   but WITHOUT ANY WARRANTY; without even the implied warranty of         *
15
+ *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the          *
16
+ *   GNU General Public License for more details.                           *
17
+ *                                                                          *
18
+ *   To view a copy of the GNU General Public License, go to the following  *
19
+ *   location: <http://www.gnu.org/licenses/>.                              *
20
+ ****************************************************************************/
21
+
22
+#include "../../../inc/MarlinConfigPre.h"
23
+
24
+#if ENABLED(EXTENSIBLE_UI)
25
+
26
+#include "../ui_api.h"
27
+
28
+// To implement a new UI, complete the functions below and
29
+// read or update Marlin's state using the methods in the
30
+// UI methods in "../ui_api.h"
31
+
32
+namespace UI {
33
+  void onStartup() {}
34
+  void onUpdate() {}
35
+  void onPrinterKilled(const char* lcd_msg) {}
36
+  void onMediaInserted();
37
+  void onMediaError();
38
+  void onMediaRemoved();
39
+  void onPlayTone(const uint16_t frequency, const uint16_t duration) {}
40
+  void onPrintTimerStarted() {}
41
+  void onPrintTimerPaused() {}
42
+  void onPrintTimerStopped() {}
43
+  void onFilamentRunout() {}
44
+  void onStatusChanged(const char* lcd_msg) {}
45
+  void onStatusChanged(progmem_str lcd_msg) {}
46
+  void onFactoryReset() {}
47
+  void onStoreSettings() {}
48
+}
49
+
50
+#endif // EXTENSIBLE_UI

+ 590
- 0
Marlin/src/lcd/extensible_ui/ui_api.cpp Datei anzeigen

@@ -0,0 +1,590 @@
1
+/**************
2
+ * ui_api.cpp *
3
+ **************/
4
+
5
+/****************************************************************************
6
+ *   Written By Marcio Teixeira 2018 - Aleph Objects, Inc.                  *
7
+ *                                                                          *
8
+ *   This program is free software: you can redistribute it and/or modify   *
9
+ *   it under the terms of the GNU General Public License as published by   *
10
+ *   the Free Software Foundation, either version 3 of the License, or      *
11
+ *   (at your option) any later version.                                    *
12
+ *                                                                          *
13
+ *   This program is distributed in the hope that it will be useful,        *
14
+ *   but WITHOUT ANY WARRANTY; without even the implied warranty of         *
15
+ *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the          *
16
+ *   GNU General Public License for more details.                           *
17
+ *                                                                          *
18
+ *   To view a copy of the GNU General Public License, go to the following  *
19
+ *   location: <http://www.gnu.org/licenses/>.                              *
20
+ ****************************************************************************/
21
+
22
+#include "../../Marlin.h"
23
+
24
+#if ENABLED(EXTENSIBLE_UI)
25
+
26
+#include "../../gcode/queue.h"
27
+#include "../../module/motion.h"
28
+#include "../../module/planner.h"
29
+#include "../../module/probe.h"
30
+#include "../../module/printcounter.h"
31
+#include "../../module/temperature.h"
32
+#include "../../sd/cardreader.h"
33
+#include "../../libs/duration_t.h"
34
+
35
+#if DO_SWITCH_EXTRUDER || ENABLED(SWITCHING_NOZZLE) || ENABLED(PARKING_EXTRUDER)
36
+  #include "../../module/tool_change.h"
37
+#endif
38
+
39
+#if ENABLED(SDSUPPORT)
40
+  #include "../../feature/emergency_parser.h"
41
+
42
+  bool abort_sd_printing; // =false
43
+#else
44
+  constexpr bool abort_sd_printing = false;
45
+#endif
46
+
47
+#include "ui_api.h"
48
+
49
+#if ENABLED(BACKLASH_GCODE)
50
+  extern float backlash_distance_mm[XYZ], backlash_correction;
51
+  #ifdef BACKLASH_SMOOTHING_MM
52
+    extern float backlash_smoothing_mm;
53
+  #endif
54
+#endif
55
+
56
+inline float clamp(const float value, const float minimum, const float maximum) {
57
+  return MAX(MIN(value, maximum), minimum);
58
+}
59
+
60
+namespace UI {
61
+
62
+  void delay_ms(unsigned long ms) {
63
+    safe_delay(ms);
64
+  }
65
+
66
+  void yield() {
67
+    thermalManager.manage_heater();
68
+  }
69
+
70
+  float getActualTemp_celsius(const uint8_t extruder) {
71
+    return extruder ?
72
+      thermalManager.degHotend(extruder - 1) :
73
+      #if HAS_HEATED_BED
74
+        thermalManager.degBed()
75
+      #else
76
+        0
77
+      #endif
78
+    ;
79
+  }
80
+
81
+  float getTargetTemp_celsius(const uint8_t extruder) {
82
+    return extruder ?
83
+      thermalManager.degTargetHotend(extruder - 1) :
84
+      #if HAS_HEATED_BED
85
+        thermalManager.degTargetBed()
86
+      #else
87
+        0
88
+      #endif
89
+    ;
90
+  }
91
+
92
+  float getFan_percent(const uint8_t fan) { return ((float(fan_speed[fan]) + 1) * 100) / 256; }
93
+
94
+  float getAxisPosition_mm(const axis_t axis) {
95
+    switch (axis) {
96
+      case X: case Y: case Z:
97
+        return current_position[axis];
98
+      case E0: case E1: case E2: case E3: case E4: case E5:
99
+        return current_position[E_AXIS];
100
+      default: return 0;
101
+    }
102
+  }
103
+
104
+  void setAxisPosition_mm(const axis_t axis, float position, float _feedrate_mm_s) {
105
+    #if EXTRUDERS > 1
106
+      const int8_t old_extruder = active_extruder;
107
+    #endif
108
+    switch (axis) {
109
+      case X: case Y: case Z: break;
110
+      case E0: case E1: case E2: case E3: case E4: case E5:
111
+        active_extruder = axis - E0;
112
+        break;
113
+      default: return;
114
+    }
115
+    set_destination_from_current();
116
+    switch (axis) {
117
+      case X: case Y: case Z:
118
+        destination[Z_AXIS] = position;
119
+        break;
120
+      case E0: case E1: case E2: case E3: case E4: case E5:
121
+        destination[E_AXIS] = position;
122
+        break;
123
+    }
124
+
125
+    const float old_feedrate = feedrate_mm_s;
126
+    feedrate_mm_s = _feedrate_mm_s;
127
+    prepare_move_to_destination();
128
+    feedrate_mm_s = old_feedrate;
129
+    #if EXTRUDERS > 1
130
+      active_extruder = old_extruder;
131
+    #endif
132
+  }
133
+
134
+  void setActiveTool(uint8_t extruder, bool no_move) {
135
+    extruder--; // Make zero based
136
+    #if DO_SWITCH_EXTRUDER || ENABLED(SWITCHING_NOZZLE) || ENABLED(PARKING_EXTRUDER)
137
+      if (extruder != active_extruder)
138
+        tool_change(extruder, 0, no_move);
139
+    #endif
140
+    active_extruder = extruder;
141
+  }
142
+
143
+  uint8_t getActiveTool() { return active_extruder + 1; }
144
+
145
+  bool isMoving() { return planner.has_blocks_queued(); }
146
+
147
+  float getAxisSteps_per_mm(const axis_t axis) {
148
+    switch (axis) {
149
+      case X: case Y: case Z:
150
+        return planner.axis_steps_per_mm[axis];
151
+      case E0: case E1: case E2: case E3: case E4: case E5:
152
+        return planner.axis_steps_per_mm[E_AXIS_N(axis - E0)];
153
+      default: return 0;
154
+    }
155
+  }
156
+
157
+  void setAxisSteps_per_mm(const axis_t axis, const float steps_per_mm) {
158
+    switch (axis) {
159
+      case X: case Y: case Z:
160
+        planner.axis_steps_per_mm[axis] = steps_per_mm;
161
+        break;
162
+      case E0: case E1: case E2: case E3: case E4: case E5:
163
+        planner.axis_steps_per_mm[E_AXIS_N(axis - E0)] = steps_per_mm;
164
+        break;
165
+    }
166
+  }
167
+
168
+  float getAxisMaxFeedrate_mm_s(const axis_t axis) {
169
+    switch (axis) {
170
+      case X: case Y: case Z:
171
+        return planner.max_feedrate_mm_s[axis];
172
+      case E0: case E1: case E2: case E3: case E4: case E5:
173
+        return planner.max_feedrate_mm_s[E_AXIS_N(axis - E0)];
174
+      default: return 0;
175
+    }
176
+  }
177
+
178
+  void setAxisMaxFeedrate_mm_s(const axis_t axis, const float max_feedrate_mm_s) {
179
+    switch (axis) {
180
+      case X: case Y: case Z:
181
+        planner.max_feedrate_mm_s[axis] = max_feedrate_mm_s;
182
+        break;
183
+      case E0: case E1: case E2: case E3: case E4: case E5:
184
+        planner.max_feedrate_mm_s[E_AXIS_N(axis - E0)] = max_feedrate_mm_s;
185
+        break;
186
+      default: return;
187
+    }
188
+  }
189
+
190
+  float getAxisMaxAcceleration_mm_s2(const axis_t axis) {
191
+    switch (axis) {
192
+      case X: case Y: case Z:
193
+        return planner.max_acceleration_mm_per_s2[axis];
194
+      case E0: case E1: case E2: case E3: case E4: case E5:
195
+        return planner.max_acceleration_mm_per_s2[E_AXIS_N(axis - E0)];
196
+      default: return 0;
197
+    }
198
+  }
199
+
200
+  void setAxisMaxAcceleration_mm_s2(const axis_t axis, const float max_acceleration_mm_per_s2) {
201
+    switch (axis) {
202
+      case X: case Y: case Z:
203
+        planner.max_acceleration_mm_per_s2[axis] = max_acceleration_mm_per_s2;
204
+        break;
205
+      case E0: case E1: case E2: case E3: case E4: case E5:
206
+        planner.max_acceleration_mm_per_s2[E_AXIS_N(axis - E0)] = max_acceleration_mm_per_s2;
207
+        break;
208
+      default: return;
209
+    }
210
+  }
211
+
212
+  #if ENABLED(LIN_ADVANCE)
213
+    float getLinearAdvance_mm_mm_s(const uint8_t extruder) {
214
+      return (extruder < EXTRUDERS) ? planner.extruder_advance_K[extruder] : 0;
215
+    }
216
+
217
+    void setLinearAdvance_mm_mm_s(const uint8_t extruder, const float k) {
218
+      if (extruder < EXTRUDERS)
219
+        planner.extruder_advance_K[extruder] = clamp(k, 0, 999);
220
+    }
221
+  #endif
222
+
223
+  #if ENABLED(JUNCTION_DEVIATION)
224
+    float getJunctionDeviation_mm() {
225
+      return planner.junction_deviation_mm;
226
+    }
227
+
228
+    void setJunctionDeviation_mm(const float junc_dev) {
229
+      planner.junction_deviation_mm = clamp(junc_dev, 0.01, 0.3);
230
+      planner.recalculate_max_e_jerk();
231
+    }
232
+  #else
233
+    float getAxisMaxJerk_mm_s(const axis_t axis) {
234
+      switch (axis) {
235
+        case X: case Y: case Z:
236
+          return planner.max_jerk[axis];
237
+        case E0: case E1: case E2: case E3: case E4: case E5:
238
+          return planner.max_jerk[E_AXIS];
239
+        default: return 0;
240
+      }
241
+    }
242
+
243
+    void setAxisMaxJerk_mm_s(const axis_t axis, const float max_jerk) {
244
+      switch (axis) {
245
+        case X: case Y: case Z:
246
+          planner.max_jerk[axis] = max_jerk;
247
+          break;
248
+        case E0: case E1: case E2: case E3: case E4: case E5:
249
+          planner.max_jerk[E_AXIS] = max_jerk;
250
+          break;
251
+        default: return;
252
+      }
253
+    }
254
+  #endif
255
+
256
+  float getMinFeedrate_mm_s()                             { return planner.min_feedrate_mm_s; }
257
+  float getMinTravelFeedrate_mm_s()                       { return planner.min_travel_feedrate_mm_s; }
258
+  float getPrintingAcceleration_mm_s2()                   { return planner.acceleration; }
259
+  float getRetractAcceleration_mm_s2()                    { return planner.retract_acceleration; }
260
+  float getTravelAcceleration_mm_s2()                     { return planner.travel_acceleration; }
261
+  void setMinFeedrate_mm_s(const float fr)                { planner.min_feedrate_mm_s = fr; }
262
+  void setMinTravelFeedrate_mm_s(const float fr)          { planner.min_travel_feedrate_mm_s = fr; }
263
+  void setPrintingAcceleration_mm_per_s2(const float acc) { planner.acceleration = acc; }
264
+  void setRetractAcceleration_mm_s2(const float acc)      { planner.retract_acceleration = acc; }
265
+  void setTravelAcceleration_mm_s2(const float acc)       { planner.travel_acceleration = acc; }
266
+
267
+  #if ENABLED(BABYSTEP_ZPROBE_OFFSET)
268
+    float getZOffset_mm() {
269
+      #if ENABLED(BABYSTEP_HOTEND_Z_OFFSET)
270
+        if (active_extruder != 0)
271
+          return hotend_offset[Z_AXIS][active_extruder];
272
+        else
273
+      #endif
274
+          return zprobe_zoffset;
275
+    }
276
+
277
+    void setZOffset_mm(const float zoffset_mm) {
278
+      const float diff = (zoffset_mm - getZOffset_mm()) / planner.steps_to_mm[Z_AXIS];
279
+      incrementZOffset_steps(diff > 0 ? ceil(diff) : floor(diff));
280
+    }
281
+
282
+    void incrementZOffset_steps(int16_t babystep_increment) {
283
+      #if ENABLED(BABYSTEP_HOTEND_Z_OFFSET)
284
+        const bool do_probe = (active_extruder == 0);
285
+      #else
286
+        constexpr bool do_probe = true;
287
+      #endif
288
+      const float diff = planner.steps_to_mm[Z_AXIS] * babystep_increment,
289
+                  new_probe_offset = zprobe_zoffset + diff,
290
+                  new_offs =
291
+                    #if ENABLED(BABYSTEP_HOTEND_Z_OFFSET)
292
+                      do_probe ? new_probe_offset : hotend_offset[Z_AXIS][active_extruder] - diff
293
+                    #else
294
+                      new_probe_offset
295
+                    #endif
296
+                  ;
297
+      if (WITHIN(new_offs, Z_PROBE_OFFSET_RANGE_MIN, Z_PROBE_OFFSET_RANGE_MAX)) {
298
+
299
+        thermalManager.babystep_axis(Z_AXIS, babystep_increment);
300
+
301
+        if (do_probe) zprobe_zoffset = new_offs;
302
+        #if ENABLED(BABYSTEP_HOTEND_Z_OFFSET)
303
+          else hotend_offset[Z_AXIS][active_extruder] = new_offs;
304
+        #endif
305
+      }
306
+    }
307
+  #endif // ENABLED(BABYSTEP_ZPROBE_OFFSET)
308
+
309
+  #if HOTENDS > 1
310
+    float getNozzleOffset_mm(const axis_t axis, uint8_t extruder) {
311
+      if (extruder >= HOTENDS) return 0;
312
+      return hotend_offset[axis][extruder];
313
+    }
314
+
315
+    void setNozzleOffset_mm(const axis_t axis, uint8_t extruder, float offset) {
316
+      if (extruder >= HOTENDS) return;
317
+      hotend_offset[axis][extruder] = offset;
318
+    }
319
+  #endif
320
+
321
+  #if ENABLED(BACKLASH_GCODE)
322
+    float getAxisBacklash_mm(const axis_t axis)       {return backlash_distance_mm[axis];}
323
+    void setAxisBacklash_mm(const axis_t axis, float distance)
324
+                                                      {backlash_distance_mm[axis] = clamp(distance,0,5);}
325
+
326
+    float getBacklashCorrection_percent()             {return backlash_correction*100;}
327
+    void setBacklashCorrection_percent(float percent) {backlash_correction = clamp(percent, 0, 100)/100;}
328
+
329
+    #ifdef BACKLASH_SMOOTHING_MM
330
+      float getBacklashSmoothing_mm()                 {return backlash_smoothing_mm;}
331
+      void setBacklashSmoothing_mm(float distance)    {backlash_smoothing_mm = clamp(distance,0,999);}
332
+    #endif
333
+  #endif
334
+
335
+  uint8_t getProgress_percent() {
336
+    #if ENABLED(SDSUPPORT)
337
+      return card.percentDone();
338
+    #else
339
+      return 0;
340
+    #endif
341
+  }
342
+
343
+  uint32_t getProgress_seconds_elapsed() {
344
+    const duration_t elapsed = print_job_timer.duration();
345
+    return elapsed.value;
346
+  }
347
+
348
+  float getFeedRate_percent() {
349
+    return feedrate_percentage;
350
+  }
351
+
352
+  void enqueueCommands(progmem_str gcode) {
353
+    enqueue_and_echo_commands_P((PGM_P)gcode);
354
+  }
355
+
356
+  bool isAxisPositionKnown(const axis_t axis) {
357
+    switch (axis) {
358
+      case X: case Y: case Z:
359
+        return TEST(axis_known_position, axis);
360
+      default: return true;
361
+    }
362
+  }
363
+
364
+  progmem_str getFirmwareName() {
365
+    return F("Marlin " SHORT_BUILD_VERSION);
366
+  }
367
+
368
+  void setTargetTemp_celsius(const uint8_t extruder, float temp) {
369
+    if (extruder)
370
+      thermalManager.setTargetHotend(clamp(temp,0,500), extruder-1);
371
+    #if HAS_HEATED_BED
372
+      else
373
+        thermalManager.setTargetBed(clamp(temp,0,200));
374
+    #endif
375
+  }
376
+
377
+  void setFan_percent(const uint8_t fan, float percent) {
378
+    if (fan < FAN_COUNT)
379
+      fan_speed[fan] = clamp(round(percent * 255 / 100), 0, 255);
380
+  }
381
+
382
+  void setFeedrate_percent(const float percent) {
383
+    feedrate_percentage = clamp(percent, 10, 500);
384
+  }
385
+
386
+  void printFile(const char *filename) {
387
+    #if ENABLED(SDSUPPORT)
388
+      card.openAndPrintFile(filename);
389
+    #endif
390
+  }
391
+
392
+  bool isPrintingFromMedia() {
393
+    #if ENABLED(SDSUPPORT)
394
+      return card.cardOK && card.isFileOpen() && card.sdprinting;
395
+    #else
396
+      return false;
397
+    #endif
398
+  }
399
+
400
+  bool isPrinting() {
401
+    return (planner.movesplanned() || IS_SD_PRINTING ||
402
+      #if ENABLED(SDSUPPORT)
403
+        (card.cardOK && card.isFileOpen())
404
+      #else
405
+        false
406
+      #endif
407
+    );
408
+  }
409
+
410
+  bool isMediaInserted() {
411
+    #if ENABLED(SDSUPPORT)
412
+      return IS_SD_INSERTED && card.cardOK;
413
+    #else
414
+      return false;
415
+    #endif
416
+  }
417
+
418
+  void pausePrint() {
419
+    #if ENABLED(SDSUPPORT)
420
+      card.pauseSDPrint();
421
+      print_job_timer.pause();
422
+      #if ENABLED(PARK_HEAD_ON_PAUSE)
423
+        enqueue_and_echo_commands_P(PSTR("M125"));
424
+      #endif
425
+      UI::onStatusChanged(PSTR(MSG_PRINT_PAUSED));
426
+    #endif
427
+  }
428
+
429
+  void resumePrint() {
430
+    #if ENABLED(SDSUPPORT)
431
+      #if ENABLED(PARK_HEAD_ON_PAUSE)
432
+        enqueue_and_echo_commands_P(PSTR("M24"));
433
+      #else
434
+        card.startFileprint();
435
+        print_job_timer.start();
436
+      #endif
437
+      UI::onStatusChanged(PSTR(MSG_PRINTING));
438
+    #endif
439
+  }
440
+
441
+  void stopPrint() {
442
+    #if ENABLED(SDSUPPORT)
443
+      wait_for_heatup = wait_for_user = false;
444
+      abort_sd_printing = true;
445
+      UI::onStatusChanged(PSTR(MSG_PRINT_ABORTED));
446
+    #endif
447
+  }
448
+
449
+  FileList::FileList() {
450
+    refresh();
451
+  }
452
+
453
+  void FileList::refresh() {
454
+    num_files = 0xFFFF;
455
+  }
456
+
457
+  bool FileList::seek(uint16_t pos, bool skip_range_check) {
458
+    #if ENABLED(SDSUPPORT)
459
+      if (!skip_range_check && pos > (count() - 1)) return false;
460
+      const uint16_t nr =
461
+        #if ENABLED(SDCARD_RATHERRECENTFIRST) && DISABLED(SDCARD_SORT_ALPHA)
462
+          count() - 1 -
463
+        #endif
464
+      pos;
465
+
466
+      #if ENABLED(SDCARD_SORT_ALPHA)
467
+        card.getfilename_sorted(nr);
468
+      #else
469
+        card.getfilename(nr);
470
+      #endif
471
+      return card.filename && card.filename[0] != '\0';
472
+    #endif
473
+  }
474
+
475
+  const char* FileList::filename() {
476
+    #if ENABLED(SDSUPPORT)
477
+      return (card.longFilename && card.longFilename[0]) ? card.longFilename : card.filename;
478
+    #else
479
+      return "";
480
+    #endif
481
+  }
482
+
483
+  const char* FileList::shortFilename() {
484
+    #if ENABLED(SDSUPPORT)
485
+      return card.filename;
486
+    #else
487
+      return "";
488
+    #endif
489
+  }
490
+
491
+  const char* FileList::longFilename() {
492
+    #if ENABLED(SDSUPPORT)
493
+      return card.longFilename;
494
+    #else
495
+      return "";
496
+    #endif
497
+  }
498
+
499
+  bool FileList::isDir() {
500
+    #if ENABLED(SDSUPPORT)
501
+      return card.filenameIsDir;
502
+    #else
503
+      return false;
504
+    #endif
505
+  }
506
+
507
+  uint16_t FileList::count() {
508
+    #if ENABLED(SDSUPPORT)
509
+      if (num_files == 0xFFFF) num_files = card.get_num_Files();
510
+      return num_files;
511
+    #endif
512
+  }
513
+
514
+  bool FileList::isAtRootDir() {
515
+    #if ENABLED(SDSUPPORT)
516
+      card.getWorkDirName();
517
+      return card.filename[0] == '/';
518
+    #else
519
+      return true;
520
+    #endif
521
+  }
522
+
523
+  void FileList::upDir() {
524
+    #if ENABLED(SDSUPPORT)
525
+      card.updir();
526
+      num_files = 0xFFFF;
527
+    #endif
528
+  }
529
+
530
+  void FileList::changeDir(const char *dirname) {
531
+    #if ENABLED(SDSUPPORT)
532
+      card.chdir(dirname);
533
+      num_files = 0xFFFF;
534
+    #endif
535
+  }
536
+
537
+} // namespace UI
538
+
539
+// At the moment, we piggy-back off the ultralcd calls, but this could be cleaned up in the future
540
+
541
+void lcd_init() {
542
+  #if ENABLED(SDSUPPORT) && PIN_EXISTS(SD_DETECT)
543
+    SET_INPUT_PULLUP(SD_DETECT_PIN);
544
+  #endif
545
+  UI::onStartup();
546
+}
547
+
548
+void lcd_update()                                                                {
549
+  #if ENABLED(SDSUPPORT)
550
+    static bool last_sd_status;
551
+    const bool sd_status = IS_SD_INSERTED;
552
+    if (sd_status != last_sd_status) {
553
+      last_sd_status = sd_status;
554
+      if (sd_status) {
555
+        card.initsd();
556
+        if (card.cardOK)
557
+          UI::onMediaInserted();
558
+        else
559
+          UI::onMediaError();
560
+      }
561
+      else {
562
+        const bool ok = card.cardOK;
563
+        card.release();
564
+        if (ok)
565
+          UI::onMediaRemoved();
566
+      }
567
+    }
568
+  #endif // SDSUPPORT
569
+  UI::onUpdate();
570
+}
571
+
572
+bool lcd_hasstatus()                                                             { return true; }
573
+bool lcd_detected()                                                              { return true; }
574
+void lcd_reset_alert_level()                                                     {}
575
+void lcd_refresh()                                                               {}
576
+void lcd_setstatus(const char * const message, const bool persist /* = false */) { UI::onStatusChanged(message); }
577
+void lcd_setstatusPGM(const char * const message, int8_t level /* = 0 */)        { UI::onStatusChanged((progmem_str)message); }
578
+void lcd_reset_status()                                                          {}
579
+void lcd_setalertstatusPGM(const char * const message)                           { lcd_setstatusPGM(message, 0); }
580
+void lcd_status_printf_P(const uint8_t level, const char * const fmt, ...) {
581
+  char buff[64];
582
+  va_list args;
583
+  va_start(args, fmt);
584
+  vsnprintf_P(buff, sizeof(buff), fmt, args);
585
+  va_end(args);
586
+  buff[63] = '\0';
587
+  UI::onStatusChanged(buff);
588
+}
589
+
590
+#endif // EXTENSIBLE_UI

+ 164
- 0
Marlin/src/lcd/extensible_ui/ui_api.h Datei anzeigen

@@ -0,0 +1,164 @@
1
+/************
2
+ * ui_api.h *
3
+ ************/
4
+
5
+/****************************************************************************
6
+ *   Written By Marcio Teixeira 2018 - Aleph Objects, Inc.                  *
7
+ *                                                                          *
8
+ *   This program is free software: you can redistribute it and/or modify   *
9
+ *   it under the terms of the GNU General Public License as published by   *
10
+ *   the Free Software Foundation, either version 3 of the License, or      *
11
+ *   (at your option) any later version.                                    *
12
+ *                                                                          *
13
+ *   This program is distributed in the hope that it will be useful,        *
14
+ *   but WITHOUT ANY WARRANTY; without even the implied warranty of         *
15
+ *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the          *
16
+ *   GNU General Public License for more details.                           *
17
+ *                                                                          *
18
+ *   To view a copy of the GNU General Public License, go to the following  *
19
+ *   location: <http://www.gnu.org/licenses/>.                              *
20
+ ****************************************************************************/
21
+
22
+#pragma once
23
+
24
+#include "../../inc/MarlinConfig.h"
25
+
26
+typedef const __FlashStringHelper *progmem_str;
27
+
28
+namespace UI {
29
+
30
+  enum axis_t : uint8_t { X, Y, Z, E0, E1, E2, E3, E4, E5 };
31
+
32
+  constexpr uint8_t extruderCount = EXTRUDERS;
33
+  constexpr uint8_t fanCount      = FAN_COUNT;
34
+
35
+  // The following methods should be used by the extension module to
36
+  // query or change Marlin's state.
37
+
38
+  progmem_str getFirmwareName();
39
+
40
+  bool isAxisPositionKnown(const axis_t axis);
41
+  bool isMoving();
42
+
43
+  float getActualTemp_celsius(const uint8_t extruder);
44
+  float getTargetTemp_celsius(const uint8_t extruder);
45
+  float getFan_percent(const uint8_t fan);
46
+  float getAxisPosition_mm(const axis_t axis);
47
+  float getAxisSteps_per_mm(const axis_t axis);
48
+  float getAxisMaxFeedrate_mm_s(const axis_t axis);
49
+  float getAxisMaxAcceleration_mm_s2(const axis_t axis);
50
+  float getMinFeedrate_mm_s();
51
+  float getMinTravelFeedrate_mm_s();
52
+  float getPrintingAcceleration_mm_per_s2();
53
+  float getRetractAcceleration_mm_per_s2();
54
+  float getTravelAcceleration_mm_per_s2();
55
+  float getFeedRate_percent();
56
+  uint8_t getProgress_percent();
57
+  uint32_t getProgress_seconds_elapsed();
58
+
59
+  void setTargetTemp_celsius(const uint8_t extruder, float temp);
60
+  void setFan_percent(const uint8_t fan, const float percent);
61
+  void setAxisPosition_mm(const axis_t axis, float position, float _feedrate_mm_s);
62
+  void setAxisSteps_per_mm(const axis_t axis, const float steps_per_mm);
63
+  void setAxisMaxFeedrate_mm_s(const axis_t axis, const float max_feedrate_mm_s);
64
+  void setAxisMaxAcceleration_mm_s2(const axis_t axis, const float max_acceleration_mm_per_s2);
65
+  void setMinFeedrate_mm_s(const float min_feedrate_mm_s);
66
+  void setMinTravelFeedrate_mm_s(const float min_travel_feedrate_mm_s);
67
+  void setPrintingAcceleration_mm_s2(const float acceleration);
68
+  void setRetractAcceleration_mm_s2(const float retract_acceleration);
69
+  void setTravelAcceleration_mm_s2(const float travel_acceleration);
70
+  void setFeedrate_percent(const float percent);
71
+
72
+  #if ENABLED(LIN_ADVANCE)
73
+    float getLinearAdvance_mm_mm_s(const uint8_t extruder);
74
+    void setLinearAdvance_mm_mm_s(const uint8_t extruder, const float k);
75
+  #endif
76
+
77
+  #if ENABLED(JUNCTION_DEVIATION)
78
+    float getJunctionDeviation_mm();
79
+    void setJunctionDeviation_mm(const float junc_dev);
80
+  #else
81
+    float getAxisMaxJerk_mm_s(const axis_t axis);
82
+    void setAxisMaxJerk_mm_s(const axis_t axis, const float max_jerk);
83
+  #endif
84
+
85
+  void setActiveTool(uint8_t extruder, bool no_move);
86
+  uint8_t getActiveTool();
87
+
88
+  #if HOTENDS > 1
89
+    float getNozzleOffset_mm(const axis_t axis, uint8_t extruder);
90
+    void setNozzleOffset_mm(const axis_t axis, uint8_t extruder, float offset);
91
+  #endif
92
+
93
+  #if ENABLED(BABYSTEP_ZPROBE_OFFSET)
94
+    float getZOffset_mm();
95
+    void setZOffset_mm(const float zoffset_mm);
96
+    void incrementZOffset_steps(const int16_t babystep_increment);
97
+  #endif
98
+
99
+  #if ENABLED(BACKLASH_GCODE)
100
+    float getAxisBacklash_mm(const axis_t axis);
101
+    void setAxisBacklash_mm(const axis_t axis, float distance);
102
+
103
+    float getBacklashCorrection_percent();
104
+    void setBacklashCorrection_percent(float percent);
105
+
106
+    #ifdef BACKLASH_SMOOTHING_MM
107
+      float getBacklashSmoothing_mm();
108
+      void setBacklashSmoothing_mm(float distance);
109
+    #endif
110
+  #endif
111
+
112
+  void delay_ms(unsigned long ms);
113
+  void yield(); // Within lengthy loop, call this periodically
114
+
115
+  void enqueueCommands(progmem_str gcode);
116
+
117
+  void printFile(const char *filename);
118
+  bool isPrintingFromMedia();
119
+  bool isPrinting();
120
+  void stopPrint();
121
+  void pausePrint();
122
+  void resumePrint();
123
+
124
+  bool isMediaInserted();
125
+
126
+  class FileList {
127
+    private:
128
+      uint16_t num_files;
129
+
130
+    public:
131
+      FileList();
132
+      void        refresh();
133
+      bool        seek(uint16_t, bool skip_range_check = false);
134
+
135
+      const char *longFilename();
136
+      const char *shortFilename();
137
+      const char *filename();
138
+      bool        isDir();
139
+
140
+      void        changeDir(const char *dirname);
141
+      void        upDir();
142
+      bool        isAtRootDir();
143
+      uint16_t    count();
144
+  };
145
+
146
+  // The following event handlers are to be declared by the extension
147
+  // module and will be called by Marlin.
148
+
149
+  void onStartup();
150
+  void onUpdate();
151
+  void onMediaInserted();
152
+  void onMediaError();
153
+  void onMediaRemoved();
154
+  void onPlayTone(const uint16_t frequency, const uint16_t duration);
155
+  void onPrinterKilled(const char* msg);
156
+  void onPrintTimerStarted();
157
+  void onPrintTimerPaused();
158
+  void onPrintTimerStopped();
159
+  void onFilamentRunout();
160
+  void onStatusChanged(const char* msg);
161
+  void onStatusChanged(progmem_str msg);
162
+  void onFactoryReset();
163
+  void onStoreSettings();
164
+};

+ 11
- 2
Marlin/src/lcd/ultralcd.h Datei anzeigen

@@ -25,7 +25,7 @@
25 25
 
26 26
 #include "../inc/MarlinConfig.h"
27 27
 
28
-#if ENABLED(ULTRA_LCD) || ENABLED(MALYAN_LCD)
28
+#if ENABLED(ULTRA_LCD) || ENABLED(MALYAN_LCD) || ENABLED(EXTENSIBLE_UI)
29 29
   void lcd_init();
30 30
   bool lcd_detected();
31 31
   void lcd_update();
@@ -208,6 +208,15 @@
208 208
     void wait_for_release();
209 209
   #endif
210 210
 
211
+#elif ENABLED(EXTENSIBLE_UI)
212
+  // These functions are defined elsewhere
213
+  void lcd_setstatus(const char* const message, const bool persist=false);
214
+  void lcd_setstatusPGM(const char* const message, const int8_t level=0);
215
+  void lcd_status_printf_P(const uint8_t level, const char * const fmt, ...);
216
+  void lcd_reset_status();
217
+  void lcd_refresh();
218
+  void lcd_reset_alert_level();
219
+  bool lcd_hasstatus();
211 220
 #else // MALYAN_LCD or no LCD
212 221
 
213 222
   constexpr bool lcd_wait_for_move = false;
@@ -279,7 +288,7 @@
279 288
   void lcd_reselect_last_file();
280 289
 #endif
281 290
 
282
-#if ENABLED(ULTIPANEL) && ENABLED(SDSUPPORT)
291
+#if (ENABLED(EXTENSIBLE_UI) || ENABLED(ULTIPANEL)) && ENABLED(SDSUPPORT)
283 292
   extern bool abort_sd_printing;
284 293
 #else
285 294
   constexpr bool abort_sd_printing = false;

+ 9
- 1
Marlin/src/libs/buzzer.cpp Datei anzeigen

@@ -27,6 +27,10 @@
27 27
 #include "buzzer.h"
28 28
 #include "../module/temperature.h"
29 29
 
30
+#if ENABLED(EXTENSIBLE_UI)
31
+  #include "../lcd/extensible_ui/ui_api.h"
32
+#endif
33
+
30 34
 Buzzer::state_t Buzzer::state;
31 35
 CircularQueue<tone_t, TONE_QUEUE_LENGTH> Buzzer::buffer;
32 36
 Buzzer buzzer;
@@ -58,7 +62,11 @@ void Buzzer::tick() {
58 62
     state.endtime = now + state.tone.duration;
59 63
 
60 64
     if (state.tone.frequency > 0) {
61
-      #if ENABLED(SPEAKER)
65
+      #if ENABLED(EXTENSIBLE_UI)
66
+        CRITICAL_SECTION_START;
67
+        UI::onPlayTone(state.tone.frequency, state.tone.duration);
68
+        CRITICAL_SECTION_END;
69
+      #elif ENABLED(SPEAKER)
62 70
         CRITICAL_SECTION_START;
63 71
         ::tone(BEEPER_PIN, state.tone.frequency, state.tone.duration);
64 72
         CRITICAL_SECTION_END;

+ 1
- 1
Marlin/src/libs/buzzer.h Datei anzeigen

@@ -28,7 +28,7 @@
28 28
 // Make a buzzer and macro
29 29
 #if ENABLED(LCD_USE_I2C_BUZZER)
30 30
   // BUZZ() will be defined in ultralcd.h
31
-#elif PIN_EXISTS(BEEPER)
31
+#elif PIN_EXISTS(BEEPER) || ENABLED(EXTENSIBLE_UI)
32 32
 
33 33
 #include "circularqueue.h"
34 34
 

+ 13
- 14
Marlin/src/pins/pins_ARCHIM2.h Datei anzeigen

@@ -163,22 +163,21 @@
163 163
 //
164 164
 #define SDSS               87   // D87 PA29 CS
165 165
 
166
-//////////////////////////
167
-// LCDs and Controllers //
168
-//////////////////////////
169
-
170
-#if ENABLED(ULTRA_LCD)
171
-  #if ENABLED(NEWPANEL)
172
-    #define BEEPER_PIN     23   // D24 PA15_CTS1
173
-    #define LCD_PINS_RS    17   // D17 PA12_RXD1
174
-    #define LCD_PINS_ENABLE 24  // D23 PA14_RTS1
175
-    #define LCD_PINS_D4    69   // D69 PA0_CANTX0
176
-    #define LCD_PINS_D5    54   // D54 PA16_SCK1
177
-    #define LCD_PINS_D6    68   // D68 PA1_CANRX0
178
-    #define LCD_PINS_D7    34   // D34 PC2_PWML0
166
+//
167
+// LCD / Controller
168
+//
169
+#if ENABLED(ULTRA_LCD) || ENABLED(EXTENSIBLE_UI)
170
+  #define BEEPER_PIN       23   // D24 PA15_CTS1
171
+  #define LCD_PINS_RS      17   // D17 PA12_RXD1
172
+  #define LCD_PINS_ENABLE  24   // D23 PA14_RTS1
173
+  #define LCD_PINS_D4      69   // D69 PA0_CANTX0
174
+  #define LCD_PINS_D5      54   // D54 PA16_SCK1
175
+  #define LCD_PINS_D6      68   // D68 PA1_CANRX0
176
+  #define LCD_PINS_D7      34   // D34 PC2_PWML0
179 177
 
180
-    #define SD_DETECT_PIN   2   // D2  PB25_TIOA0
178
+  #define SD_DETECT_PIN     2   // D2  PB25_TIOA0
181 179
 
180
+  #if ENABLED(NEWPANEL)
182 181
     // Buttons on AUX-2
183 182
     #define BTN_EN1        60   // D60 PA3_TIOB1
184 183
     #define BTN_EN2        13   // D13 PB27_TIOB0

Laden…
Abbrechen
Speichern