PowerTGS440

max.h v0.18

Apr 24th, 2021
197
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 74.88 KB | None | 0 0
  1. // ------------------------------------------------------------------------------------------------------------ //
  2. // ---          M A X L E D   L I B R A R Y    B Y    T O M A S Z   M A J C H E R                           --- //
  3. // ------------------------------------------------------------------------------------------------------------ //
  4. //
  5. //  by Tomasz Majcher (TLG) Trans Line Group, Lubin POLSKA
  6. //  NIP:    692-201-09-78
  7. //  TEL:    667-08-21-21
  8. //  mail:   transline.majcher@gmail.com
  9. //
  10. //  Trans Line Group Tomasz Majcher
  11. //  * usługi transportowe (wywrotki, silosy)
  12. //  * sprzedaw kruszyw (piasek, żwir, pospółka, grysy, tłuczeń, mieszanki, żużel, kryszywa)
  13. //  * kruszywa naturalne : kwarc, granit, bazalt
  14. //  * automatyka przemysłowa i domowa
  15. //  * serwis pojazdów ciężarowych i naczep
  16. //
  17. //  Biblioteka jest na licencji FreeWare. Można używać, nie wolna ingerować w jaki sposób w kod.
  18. //  Dopuszcza się tylko modyfikacji lub usunięcie kodów ósemkowych polskich ogonków i emotek.
  19. //
  20. // ------------------------------------------------------------------------------------------------------------ //
  21. //
  22. //  do poprawnego wyświetlania niezbędna jest przerobiona przez moją córke biblioteka czcionek z ogonkami
  23. //  i różnymi innymi emotkami... biblioteka niestety nie jest za darmo, bo nie :-) także rozwiązania są trzy
  24. //
  25. //  * kupić bibliotekę ( 29.99 zł + VAT )
  26. //  * zastąpić wszystkie kody ósemkowe na zwykle znaki
  27. //  * napisać swoją bibliotekę z ogonkami i emotkami
  28. //
  29. //
  30. // ------------------------------------------------------------------------------------------------------------ //
  31. // --- HISTORIA WERSJI ---------------------------------------------------------------------------------------- //
  32. // ------------------------------------------------------------------------------------------------------------ //
  33. //
  34. //  MAX v0.18 BETA    -   dodano : WeatherTranslator2PL()   ->>> metoda prywatna klasy MAX
  35. //  MAX v0.17 BETA    -   dodano : ShowMsg2Left(char * msg) ->>> medota publiczna klasy MAX
  36. //  MAX v0.16 BETA    -   dodano : ShowRandomEffect(char *msg) ---> metoda prywatna klasy MAX
  37. //  MAX v0.15 BETA    -   dodano : ShowRandomSprite(char *msg) ---> metoda prywatna klasy MAX
  38. //  MAX v0.14 BETA    -   dodano : losowe wyświetlanie napisów MSG z losowymi Efektami lub losowymi animacjami
  39. //  MAX v0.13 BETA    -   dodano : losowe sprite (RANDOM SIZE)
  40. //  MAX v0.12 BETA    -   dodano : losowe efekty (RANDOM SIZE)
  41. //  MAX v0.11 BETA    -   dodano : obsługa Weather Description
  42. //  MAX v0.10 BETA    -   dodano : przysłowia dnia tygodnia
  43. //  MAX v0.09 BETA    -   dodano : przysłowia miesiąca
  44. //  MAX v0.08 BETA    -   dodano : polskie miesiące
  45. //  MAX v0.07 BETA    -   budowa polskich ogonków (NOT FREE !!!)
  46. //  MAX v0.06 BETA    -   budowa metody wyświetlającej demo
  47. //  MAX v0.05 BETA    -   budowa metody tworzącej bufory
  48. //  MAX v0.04 BETA    -   import effect
  49. //  MAX v0.03 BETA    -   import sprite
  50. //  MAX v0.02 BETA    -   budowa klasy
  51. //  MAX v0.01 BETA    -   pomysł :-)
  52. //
  53. // ------------------------------------------------------------------------------------------------------------ //
  54. // --- DOŁĄCZONE NAGŁÓWKI BIBLIOTEK --------------------------------------------------------------------------- //
  55. // ------------------------------------------------------------------------------------------------------------ //
  56.  
  57. extern ESP32Time rtc;
  58. extern bool F_Przekaznik;
  59. extern bool F_BigClock;
  60. extern bool F_MaxDemo;
  61. typedef byte BAJT;
  62.  
  63.  
  64. // ------------------------------------------------------------------------------------------------------------- //
  65. // S P R I T E   D E F I N I T I O N --------------------------------------------------------------------------- //
  66. // ------------------------------------------------------------------------------------------------------------- //
  67. // P A C M A N   D E F I N I T I O N --------------------------------------------------------------------------- //
  68. // ------------------------------------------------------------------------------------------------------------- //
  69.  
  70. const uint8_t F_PMAN1 = 6;                                                      
  71. const uint8_t W_PMAN1 = 8;                                                      
  72. static const uint8_t pacman1[F_PMAN1 * W_PMAN1] PROGMEM =                        
  73. {
  74.   0x00, 0x81, 0xc3, 0xe7, 0xff, 0x7e, 0x7e, 0x3c,
  75.   0x00, 0x42, 0xe7, 0xe7, 0xff, 0xff, 0x7e, 0x3c,
  76.   0x24, 0x66, 0xe7, 0xff, 0xff, 0xff, 0x7e, 0x3c,
  77.   0x3c, 0x7e, 0xff, 0xff, 0xff, 0xff, 0x7e, 0x3c,
  78.   0x24, 0x66, 0xe7, 0xff, 0xff, 0xff, 0x7e, 0x3c,
  79.   0x00, 0x42, 0xe7, 0xe7, 0xff, 0xff, 0x7e, 0x3c,
  80. };
  81. // 293756 / 28612
  82. // ------------------------------------------------------------------------------------------------------------- //
  83. // S P R I T E   :   W A V E   /   W O R M   D E F I N I T I O N ----------------------------------------------- //
  84. // ------------------------------------------------------------------------------------------------------------- //
  85.  
  86. const uint8_t F_WAVE = 14;
  87. const uint8_t W_WAVE = 14;
  88. static const uint8_t wave [F_WAVE * W_WAVE] PROGMEM =  
  89. {
  90.   0x08, 0x04, 0x02, 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80, 0x40, 0x20, 0x10,
  91.   0x10, 0x08, 0x04, 0x02, 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80, 0x40, 0x20,
  92.   0x20, 0x10, 0x08, 0x04, 0x02, 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80, 0x40,
  93.   0x40, 0x20, 0x10, 0x08, 0x04, 0x02, 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80,
  94.   0x80, 0x40, 0x20, 0x10, 0x08, 0x04, 0x02, 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40,
  95.   0x40, 0x80, 0x40, 0x20, 0x10, 0x08, 0x04, 0x02, 0x01, 0x02, 0x04, 0x08, 0x10, 0x20,
  96.   0x20, 0x40, 0x80, 0x40, 0x20, 0x10, 0x08, 0x04, 0x02, 0x01, 0x02, 0x04, 0x08, 0x10,
  97.   0x10, 0x20, 0x40, 0x80, 0x40, 0x20, 0x10, 0x08, 0x04, 0x02, 0x01, 0x02, 0x04, 0x08,
  98.   0x08, 0x10, 0x20, 0x40, 0x80, 0x40, 0x20, 0x10, 0x08, 0x04, 0x02, 0x01, 0x02, 0x04,
  99.   0x04, 0x08, 0x10, 0x20, 0x40, 0x80, 0x40, 0x20, 0x10, 0x08, 0x04, 0x02, 0x01, 0x02,
  100.   0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80, 0x40, 0x20, 0x10, 0x08, 0x04, 0x02, 0x01,
  101.   0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80, 0x40, 0x20, 0x10, 0x08, 0x04, 0x02,
  102.   0x02, 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80, 0x40, 0x20, 0x10, 0x08, 0x04,
  103.   0x04, 0x02, 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80, 0x40, 0x20, 0x10, 0x08,
  104. };
  105.  
  106. // ------------------------------------------------------------------------------------------------------------- //
  107. // S P R I T E   :   G H O S T   D E F I N I T I O N ----------------------------------------------------------- //
  108. // ------------------------------------------------------------------------------------------------------------- //
  109.  
  110. const uint8_t F_PMAN2 = 6;                                                        
  111. const uint8_t W_PMAN2 = 18;                                                      
  112. static const uint8_t pacman2[F_PMAN2 * W_PMAN2] PROGMEM =                        
  113. {
  114.   0x00, 0x81, 0xc3, 0xe7, 0xff, 0x7e, 0x7e, 0x3c, 0x00, 0x00, 0x00, 0xfe, 0x7b, 0xf3, 0x7f, 0xfb, 0x73, 0xfe,
  115.   0x00, 0x42, 0xe7, 0xe7, 0xff, 0xff, 0x7e, 0x3c, 0x00, 0x00, 0x00, 0xfe, 0x7b, 0xf3, 0x7f, 0xfb, 0x73, 0xfe,
  116.   0x24, 0x66, 0xe7, 0xff, 0xff, 0xff, 0x7e, 0x3c, 0x00, 0x00, 0x00, 0xfe, 0x7b, 0xf3, 0x7f, 0xfb, 0x73, 0xfe,
  117.   0x3c, 0x7e, 0xff, 0xff, 0xff, 0xff, 0x7e, 0x3c, 0x00, 0x00, 0x00, 0xfe, 0x73, 0xfb, 0x7f, 0xf3, 0x7b, 0xfe,
  118.   0x24, 0x66, 0xe7, 0xff, 0xff, 0xff, 0x7e, 0x3c, 0x00, 0x00, 0x00, 0xfe, 0x73, 0xfb, 0x7f, 0xf3, 0x7b, 0xfe,
  119.   0x00, 0x42, 0xe7, 0xe7, 0xff, 0xff, 0x7e, 0x3c, 0x00, 0x00, 0x00, 0xfe, 0x73, 0xfb, 0x7f, 0xf3, 0x7b, 0xfe,
  120. };                                                                                                                  
  121.  
  122. // ------------------------------------------------------------------------------------------------------------- //
  123. // S P R I T E   :   R O L L I N G    1    S Q U A R E     D E F I N I T I O N --------------------------------- //
  124. // ------------------------------------------------------------------------------------------------------------- //
  125.  
  126. const uint8_t F_ROLL1 = 4;
  127. const uint8_t W_ROLL1 = 8;
  128. static const uint8_t roll1[F_ROLL1 * W_ROLL1] PROGMEM =  
  129. {
  130.   0xff, 0x8f, 0x8f, 0x8f, 0x81, 0x81, 0x81, 0xff,
  131.   0xff, 0xf1, 0xf1, 0xf1, 0x81, 0x81, 0x81, 0xff,
  132.   0xff, 0x81, 0x81, 0x81, 0xf1, 0xf1, 0xf1, 0xff,
  133.   0xff, 0x81, 0x81, 0x81, 0x8f, 0x8f, 0x8f, 0xff,
  134. };
  135.  
  136. // ------------------------------------------------------------------------------------------------------------- //
  137. // S P R I T E   :   R O L L I N G   2   O C T A G O N     D E F I N I T I O N --------------------------------- //
  138. // ------------------------------------------------------------------------------------------------------------- //
  139.  
  140. const uint8_t F_ROLL2 = 4;
  141. const uint8_t W_ROLL2 = 8;
  142. static const uint8_t roll2 [F_ROLL2 * W_ROLL2] PROGMEM =  
  143. {
  144.   0x3c, 0x4e, 0x8f, 0x8f, 0x81, 0x81, 0x42, 0x3c,
  145.   0x3c, 0x72, 0xf1, 0xf1, 0x81, 0x81, 0x42, 0x3c,
  146.   0x3c, 0x42, 0x81, 0x81, 0xf1, 0xf1, 0x72, 0x3c,
  147.   0x3c, 0x42, 0x81, 0x81, 0x8f, 0x8f, 0x4e, 0x3c,
  148. };
  149.  
  150. // ------------------------------------------------------------------------------------------------------------- //
  151. // S P R I T E   :   S P A C E D    L I N E S      D E F I N I T I O N ----------------------------------------- //
  152. // ------------------------------------------------------------------------------------------------------------- //
  153.  
  154. const uint8_t F_LINES = 3;
  155. const uint8_t W_LINES = 8;
  156. static const uint8_t lines [F_LINES * W_LINES] PROGMEM =
  157. {
  158.   0xff, 0xff, 0xff, 0x00, 0x00, 0xff, 0x00, 0x00,
  159.   0xff, 0xff, 0x00, 0xff, 0x00, 0x00, 0xff, 0x00,
  160.   0xff, 0xff, 0x00, 0x00, 0xff, 0x00, 0x00, 0xff,
  161. };
  162.  
  163. // ------------------------------------------------------------------------------------------------------------- //
  164. // S P R I T E   :   A R R O W     F A D I N G      D E F I N I T I O N ---------------------------------------- //
  165. // ------------------------------------------------------------------------------------------------------------- //
  166.  
  167. const uint8_t F_ARROW1 = 3;
  168. const uint8_t W_ARROW1 = 10;
  169. static const uint8_t arrow1 [F_ARROW1 * W_ARROW1] PROGMEM =  
  170. {
  171.   0x18, 0x3c, 0x7e, 0xff, 0x7e, 0x00, 0x00, 0x3c, 0x00, 0x00,
  172.   0x18, 0x3c, 0x7e, 0xff, 0x00, 0x7e, 0x00, 0x00, 0x18, 0x00,
  173.   0x18, 0x3c, 0x7e, 0xff, 0x00, 0x00, 0x3c, 0x00, 0x00, 0x18,
  174. };
  175.  
  176. // ------------------------------------------------------------------------------------------------------------- //
  177. // S P R I T E   :   A R R O W    F A D I N G    O U T S I D E       D E F I N I T I O N ----------------------- //
  178. // ------------------------------------------------------------------------------------------------------------- //
  179.  
  180. const uint8_t F_ARROW2 = 3;
  181. const uint8_t W_ARROW2 = 9;
  182. static const uint8_t arrow2 [F_ARROW2 * W_ARROW2] PROGMEM =  
  183. {
  184.   0x18, 0x3c, 0x7e, 0xe7, 0x00, 0x00, 0xc3, 0x00, 0x00,
  185.   0x18, 0x3c, 0x7e, 0xe7, 0xe7, 0x00, 0x00, 0x81, 0x00,
  186.   0x18, 0x3c, 0x7e, 0xe7, 0x00, 0xc3, 0x00, 0x00, 0x81,
  187. };
  188.  
  189. // ------------------------------------------------------------------------------------------------------------- //
  190. // S P R I T E   :   Ż A G L Ó W K A    S H I P       D E F I N I T I O N -------------------------------------- //
  191. // ------------------------------------------------------------------------------------------------------------- //
  192.  
  193. const uint8_t F_SAILBOAT = 1;
  194. const uint8_t W_SAILBOAT = 11;
  195. static const uint8_t sailboat[F_SAILBOAT * W_SAILBOAT]  PROGMEM =  
  196. {
  197.   0x10, 0x30, 0x58, 0x94, 0x92, 0x9f, 0x92, 0x94, 0x98, 0x50, 0x30,
  198. };
  199.  
  200. // ------------------------------------------------------------------------------------------------------------- //
  201. // S P R I T E   :   T I T A N I C    S T E A M       D E F I N I T I O N -------------------------------------- //
  202. // ------------------------------------------------------------------------------------------------------------- //
  203.  
  204. const uint8_t F_STEAMBOAT = 2;
  205. const uint8_t W_STEAMBOAT = 11;
  206. const uint8_t steamboat[F_STEAMBOAT * W_STEAMBOAT]  PROGMEM =
  207. {
  208.   0x10, 0x30, 0x50, 0x9c, 0x9e, 0x90, 0x91, 0x9c, 0x9d, 0x90, 0x71,
  209.   0x10, 0x30, 0x50, 0x9c, 0x9c, 0x91, 0x90, 0x9d, 0x9e, 0x91, 0x70,
  210. };
  211.  
  212. // ------------------------------------------------------------------------------------------------------------- //
  213. // S P R I T E   :   H E A R T       D E F I N I T I O N ------------------------------------------------------- //
  214. // ------------------------------------------------------------------------------------------------------------- //
  215.  
  216. const uint8_t F_HEART = 5;
  217. const uint8_t W_HEART = 9;
  218. static const uint8_t heart[F_HEART * W_HEART]  PROGMEM =  
  219. {
  220.   0x0e, 0x11, 0x21, 0x42, 0x84, 0x42, 0x21, 0x11, 0x0e,
  221.   0x0e, 0x1f, 0x33, 0x66, 0xcc, 0x66, 0x33, 0x1f, 0x0e,
  222.   0x0e, 0x1f, 0x3f, 0x7e, 0xfc, 0x7e, 0x3f, 0x1f, 0x0e,
  223.   0x0e, 0x1f, 0x33, 0x66, 0xcc, 0x66, 0x33, 0x1f, 0x0e,
  224.   0x0e, 0x11, 0x21, 0x42, 0x84, 0x42, 0x21, 0x11, 0x0e,
  225. };
  226.  
  227. // ------------------------------------------------------------------------------------------------------------- //
  228. // S P R I T E   :   N A J E Ż D Z C A   Z   K O S M O S U       D E F I N I T I O N --------------------------- //
  229. // ------------------------------------------------------------------------------------------------------------- //
  230.  
  231. const uint8_t F_INVADER = 2;
  232. const uint8_t W_INVADER = 10;
  233. static const uint8_t invader[F_INVADER * W_INVADER]  PROGMEM =  
  234. {
  235.   0x0e, 0x98, 0x7d, 0x36, 0x3c, 0x3c, 0x36, 0x7d, 0x98, 0x0e,
  236.   0x70, 0x18, 0x7d, 0xb6, 0x3c, 0x3c, 0xb6, 0x7d, 0x18, 0x70,
  237. };
  238.  
  239. // ------------------------------------------------------------------------------------------------------------- //
  240. // S P R I T E   :   R A K I E T A   Z   K O S M O S U       D E F I N I T I O N ------------------------------- //
  241. // ------------------------------------------------------------------------------------------------------------- //
  242.  
  243. const uint8_t F_ROCKET = 2;
  244. const uint8_t W_ROCKET = 11;
  245. static const uint8_t rocket[F_ROCKET * W_ROCKET]  PROGMEM =  
  246. {
  247.   0x18, 0x24, 0x42, 0x81, 0x99, 0x18, 0x99, 0x18, 0xa5, 0x5a, 0x81,
  248.   0x18, 0x24, 0x42, 0x81, 0x18, 0x99, 0x18, 0x99, 0x24, 0x42, 0x99,
  249. };
  250.  
  251. // ------------------------------------------------------------------------------------------------------------- //
  252. // S P R I T E   :   F I R E B A L L       D E F I N I T I O N ------------------------------------------------- //
  253. // ------------------------------------------------------------------------------------------------------------- //
  254.  
  255. const uint8_t F_FBALL = 2;
  256. const uint8_t W_FBALL = 11;
  257. static const uint8_t fireball[F_FBALL * W_FBALL] PROGMEM =  
  258. {
  259.   0x7e, 0xab, 0x54, 0x28, 0x52, 0x24, 0x40, 0x18, 0x04, 0x10, 0x08,
  260.   0x7e, 0xd5, 0x2a, 0x14, 0x24, 0x0a, 0x30, 0x04, 0x28, 0x08, 0x10,
  261. };
  262.  
  263. // ------------------------------------------------------------------------------------------------------------- //
  264. // S P R I T E   :   C H E V R O N       D E F I N I T I O N --------------------------------------------------- //
  265. // ------------------------------------------------------------------------------------------------------------- //
  266.  
  267. const uint8_t F_CHEVRON = 1;
  268. const uint8_t W_CHEVRON = 9;
  269. static const uint8_t chevron[F_CHEVRON * W_CHEVRON] PROGMEM =  
  270. {
  271.   0x18, 0x3c, 0x66, 0xc3, 0x99, 0x3c, 0x66, 0xc3, 0x81,
  272. };
  273.  
  274. // ------------------------------------------------------------------------------------------------------------- //
  275. // S P R I T E   :   I D Ą C Y   L U D Z I K       D E F I N I T I O N ----------------------------------------- //
  276. // ------------------------------------------------------------------------------------------------------------- //
  277.  
  278. const uint8_t F_WALKER = 5;
  279. const uint8_t W_WALKER = 7;
  280. static const uint8_t walker[F_WALKER * W_WALKER]  PROGMEM =  
  281. {
  282.     0x00, 0x48, 0x77, 0x1f, 0x1c, 0x94, 0x68,
  283.     0x00, 0x90, 0xee, 0x3e, 0x38, 0x28, 0xd0,
  284.     0x00, 0x00, 0xae, 0xfe, 0x38, 0x28, 0x40,
  285.     0x00, 0x00, 0x2e, 0xbe, 0xf8, 0x00, 0x00,
  286.     0x00, 0x10, 0x6e, 0x3e, 0xb8, 0xe8, 0x00,
  287. };
  288.  
  289. // ------------------------------------------------------------------------------------------------------------- //
  290. // S P R I T E   :   S T R U K T U R A   A N I M A C J I   d l a    D U S Z K Ó W ------------------------------ //
  291. // ------------------------------------------------------------------------------------------------------------- //
  292.  
  293. struct Sprite
  294. {
  295.   const uint8_t *data;
  296.   uint8_t width;
  297.   uint8_t frames;
  298. };
  299.  
  300. Sprite sprite[] = {
  301.                   { walker, W_WALKER, F_WALKER },
  302.                   { invader, W_INVADER, F_INVADER },
  303.                   { chevron, W_CHEVRON, F_CHEVRON },
  304.                   { heart, W_HEART, F_HEART },
  305.                   { arrow1, W_ARROW1, F_ARROW1 },
  306.                   { steamboat, W_STEAMBOAT, F_STEAMBOAT },
  307.                   { fireball, W_FBALL, F_FBALL },
  308.                   { rocket, W_ROCKET, F_ROCKET },
  309.                   { roll2, W_ROLL2, F_ROLL2 },
  310.                   { pacman2, W_PMAN2, F_PMAN2 },
  311.                   { lines, W_LINES, F_LINES },
  312.                   { roll1, W_ROLL1, F_ROLL1 },
  313.                   { sailboat, W_SAILBOAT, F_SAILBOAT },
  314.                   { arrow2, W_ARROW2, F_ARROW2 },
  315.                   { wave, W_WAVE, F_WAVE },
  316.                   { pacman1, W_PMAN1, F_PMAN1 }
  317.                   };
  318.                  
  319. // ------------------------------------------------------------------------------------------------------------- //
  320. // ---   K A T A L O G   E F E K T Ó W                                                                       --- //
  321. // ------------------------------------------------------------------------------------------------------------- //
  322.  
  323. struct Effect
  324.         {              
  325.           textEffect_t  effect;                                          
  326.           uint16_t      speed;                                            
  327.           uint16_t      pause;                                            
  328.         }                                                                  
  329.                                                                                                                            
  330.         efekt [] =  
  331.                {
  332.                { PA_PRINT, 1, 1 },
  333.                { PA_SCROLL_UP, 5, 1 },
  334.                { PA_SCROLL_DOWN, 5, 1 },
  335.                { PA_SCROLL_LEFT, 5, 1 },
  336.                { PA_SCROLL_RIGHT,  5, 1 },
  337.                { PA_SPRITE, 5, 1 },
  338.                { PA_SLICE,  1, 1 },
  339.                { PA_MESH, 20, 1 },
  340.                { PA_FADE, 20, 1 },
  341.                { PA_DISSOLVE, 7, 1 },
  342.                { PA_BLINDS, 7, 1 },
  343.                { PA_RANDOM, 3, 1 },
  344.                { PA_WIPE, 5, 1 },
  345.                { PA_WIPE_CURSOR, 4, 1 },
  346.                { PA_SCAN_HORIZ, 4, 1 },
  347.                { PA_SCAN_HORIZX, 4, 1 },
  348.                { PA_SCAN_VERT, 3, 1 },
  349.                { PA_SCAN_VERTX, 3, 1 },
  350.                { PA_OPENING, 3, 1 },
  351.                { PA_OPENING_CURSOR, 4, 1 },
  352.                { PA_CLOSING, 3, 1 },
  353.                { PA_CLOSING_CURSOR, 4, 1 },
  354.                { PA_SCROLL_UP_LEFT, 7, 1 },
  355.                { PA_SCROLL_UP_RIGHT, 7, 1 },
  356.                { PA_SCROLL_DOWN_LEFT, 7, 1 },
  357.                { PA_SCROLL_DOWN_RIGHT, 7, 1 },
  358.                { PA_GROW_UP, 7, 1 },
  359.                { PA_GROW_DOWN, 7, 1 }
  360.                };
  361.  
  362.  
  363. // ------------------------------------------------------------------------------------------------------------- //
  364. // ---   P R Z Y S Ł O W I A   D O   M I E S I Ę C Y                                                         --- //
  365. // ------------------------------------------------------------------------------------------------------------- //
  366.  
  367. const char MIESIAC_00 [] = "Error";                                                                            
  368. const char MIESIAC_01 [] = "Stycze\250";                                                                          
  369. const char MIESIAC_02 [] = "Luty";                                                                            
  370. const char MIESIAC_03 [] = "Marzec";                                                                          
  371. const char MIESIAC_04 [] = "Kwiecie\250";                                                                        
  372. const char MIESIAC_05 [] = "Maj";                                                                              
  373. const char MIESIAC_06 [] = "Czerwiec";                                                                        
  374. const char MIESIAC_07 [] = "Lipiec";                                                                          
  375. const char MIESIAC_08 [] = "Sierpie\250";                                                                        
  376. const char MIESIAC_09 [] = "Wrzesie\250";                                                                        
  377. const char MIESIAC_10 [] = "Pazdziernik";                                                                      
  378. const char MIESIAC_11 [] = "Listopad";
  379. const char MIESIAC_12 [] = "Grudzie\250";
  380.  
  381. const char* const MIESIAC []  = {                                                                        
  382.                                 MIESIAC_00,
  383.                                 MIESIAC_01, MIESIAC_02, MIESIAC_03, MIESIAC_04, MIESIAC_05, MIESIAC_06,
  384.                                 MIESIAC_07, MIESIAC_08, MIESIAC_09, MIESIAC_10, MIESIAC_11, MIESIAC_12
  385.                               };  
  386.  
  387. // ------------------------------------------------------------------------------------------------------------- //
  388. // ---   P R Z Y S Ł O W I A   D O   D N I A   T Y G O D N I A                                               --- //
  389. // ------------------------------------------------------------------------------------------------------------- //
  390.  
  391.  
  392. // ósemkowo 232 to ć  
  393. // ósemkowo 243 to ś                  
  394. // ósemkowo 244 to ó                  
  395. // ósemkowo 245 to ę                                                    
  396. // ósemkowo 246 to ż                                                    
  397. // ósemkowo 247 to ł                                                    
  398. // ósemkowo 250 to ń                                                    
  399. // ósemkowo 251 to ź                                                    
  400. // ósemkowo 252 to ą
  401.                                                                                                                  
  402. const char DZIEN_00 [] = "Dla pracy sa zwyk\247e dzionki, a niedziela dla ma\247\246onki";                            
  403. const char DZIEN_01 [] = "Kto w poniedzia\247ek przepr\244\246nuje, we wtorek nie b\245dzie mia\247 co je\243\232";                
  404. const char DZIEN_02 [] = "Cz\247owiek jest jak wtorek : dzi\243 jest, jutro go nie ma";                              
  405. const char DZIEN_03 [] = "Wtorek \243rod\245 wzi\252\247 pod brod\245, chod\246my sitkiem czerpa\232 wod\245";                        
  406. const char DZIEN_04 [] = "Dzi\243 musi by\232 czwartek. Nigdy nie mog\247em si\245 po\247apa\232, o co chodzi w czwartki";      
  407. const char DZIEN_05 [] = "Tyle na \243wiecie porz\252dku, \246e sobota po pi\252tku";                                    
  408. const char DZIEN_06 [] = "Kto w sobot\245 pierze, ten si\245 w niedziel\245 nie ubierze";                              
  409.                                                                                                                  
  410. const char * const PRZYSLOWIE_DNIA [] = { DZIEN_00, DZIEN_01, DZIEN_02, DZIEN_03, DZIEN_04, DZIEN_05, DZIEN_06 };
  411.  
  412. // ------------------------------------------------------------------------------------------------------------- //
  413. // ---   P R Z Y S Ł O W I A   D O   M I E S I Ę C Y                                                         --- //
  414. // ------------------------------------------------------------------------------------------------------------- //
  415.  
  416. // ósemkowo 242 to ć  
  417. // ósemkowo 243 to ś                  
  418. // ósemkowo 244 to ó                  
  419. // ósemkowo 245 to ę                                                    
  420. // ósemkowo 246 to ż                                                    
  421. // ósemkowo 247 to ł                                                    
  422. // ósemkowo 250 to ń                                                    
  423. // ósemkowo 251 to ź                                                    
  424. // ósemkowo 252 to ą                                                    
  425.  
  426. const char PRZYSLOWIA_00 [] = "Siala baba mak nie wiedziala jak";              
  427. const char PRZYSLOWIA_01 [] = "Gdy stycze\250 z mg\247\252 chodzi, mokr\252 i wczesn\252 wiosn\252 si\245 zrodzi";                      
  428. const char PRZYSLOWIA_02 [] = "Idzie luty, podkuj buty";                                                          
  429. const char PRZYSLOWIA_03 [] = "W marcu jak w garncu";                                                              
  430. const char PRZYSLOWIA_04 [] = "Kwiecie\250 plecie\250, bo przeplata, troch\245 zimy, troch\245 lata";                          
  431. const char PRZYSLOWIA_05 [] = "W majuuu jak w rajuuu";                                                            
  432. const char PRZYSLOWIA_06 [] = "Czerwiec na maju zwykle si\245 wzoruje, jego pluchy, pogody, cz\245sto na\243laduje";        
  433. const char PRZYSLOWIA_07 [] = "W lipcu upa\247y, stycze\250 mro\251ny ca\247y";                                                
  434. const char PRZYSLOWIA_08 [] = "Czego sierpie\250 nie dowarzy, wrzesie\250 tego nie doparzy";                            
  435. const char PRZYSLOWIA_09 [] = "Jaki pierwszy wrzesie\250, taka b\245dzie jesie\250";                                        
  436. const char PRZYSLOWIA_10 [] = "Gdy pa\251dziernik mro\251ny, to nie b\245dzie stycze\250 gro\251ny";                              
  437. const char PRZYSLOWIA_11 [] = "Deszcz z pocz\252tkiem listopada, mrozy w styczniu zapowiada";                        
  438. const char PRZYSLOWIA_12 [] = "Je\243li w grudniu cz\2450to dmucha, to w marcu i kwietniu plucha";                      
  439.  
  440. const char* const PRZYSLOWIA [] =
  441.                                 {
  442.                                  PRZYSLOWIA_00,
  443.                                  PRZYSLOWIA_01, PRZYSLOWIA_02, PRZYSLOWIA_03, PRZYSLOWIA_04, PRZYSLOWIA_05, PRZYSLOWIA_06,
  444.                                  PRZYSLOWIA_07, PRZYSLOWIA_08, PRZYSLOWIA_09, PRZYSLOWIA_10, PRZYSLOWIA_11, PRZYSLOWIA_12
  445.                                 };    
  446.  
  447.  
  448. // ------------------------------------------------------------------------------------------------------------- //
  449. // ---   T E K S T Y   P O D   A N I M A C J Ę                                                               --- //
  450. // ------------------------------------------------------------------------------------------------------------- //
  451.  
  452. const char MSG_00 [] = "I \240 ESP32";
  453. const char MSG_01 [] = "M A R C I N";
  454. const char MSG_02 [] = "T O M E K";
  455. const char MSG_03 [] = "S Y L W I A" ;
  456. const char MSG_04 [] = "W I K T O R I A";
  457. const char MSG_05 [] = "OPEL ASTRA";
  458. const char MSG_06 [] = "I \240 TOYOTA";
  459. const char MSG_07 [] = "I \237 OPEL";
  460. const char MSG_08 [] = "I \237 TOYOTA";
  461. const char MSG_09 [] = "MAN TGS 440";
  462. const char MSG_10 [] = "BOOM";
  463. const char MSG_11 [] = "T R U C K E R";
  464. const char MSG_12 [] = "D I A B L O";
  465. const char MSG_13 [] = "I Love You";
  466. const char MSG_14 [] = "Hello TOMEK";
  467. const char MSG_15 [] = "Hello SYLVIA";
  468. const char MSG_16 [] = "HELLO WIKI";
  469. const char MSG_17 [] = "HELLO MARCIN";
  470. const char MSG_18 [] = "I \240 C++";
  471. const char MSG_19 [] = "I \240 ESP32";
  472. const char MSG_20 [] = "I \236 SYLVIA";
  473. const char MSG_21 [] = "I \240 C++";
  474. const char MSG_22 [] = "I \236 TOYOTA";
  475. const char MSG_23 [] = "I \240 WIKI";
  476.  
  477. const char * const MSG []  =
  478.                             {
  479.                             MSG_00, MSG_01, MSG_02, MSG_03, MSG_04, MSG_05,
  480.                             MSG_06, MSG_07, MSG_08, MSG_09, MSG_10, MSG_11,
  481.                             MSG_12, MSG_13, MSG_14, MSG_15, MSG_16, MSG_17,
  482.                             MSG_18, MSG_19, MSG_20, MSG_21, MSG_22, MSG_23                        
  483.                             };                                    
  484.  
  485. // ------------------------------------------------------------------------------------------------------------- //
  486. // ---   K A T A L O G   C Y F R                                                                             --- //
  487. // ------------------------------------------------------------------------------------------------------------- //
  488.  
  489. //   DUŻE CYFRY                      0     1     2     3     4     5     6     7      8      9            
  490. const char * DuzeCyfry[10]     = { "\27", "\1", "\2", "\3", "\4", "\5", "\6", "\7", "\10", "\11" };  
  491.  
  492. //   NORMALNE CYFRY                  0      1      2      3      4      5      6      7      8      9            
  493. const char * NormalneCyfry[10] = { "\60", "\61", "\62", "\63", "\64", "\65", "\66", "\67", "\70", "\71" };  
  494.                                                                                                
  495. //   MAŁE CYFRY                     0      1      2      3      4      5      6      7      8      9  
  496. const char * MaleCyfry[10]    = { "\12", "\13", "\14", "\15", "\16", "\17", "\20", "\21", "\22", "\23" };  
  497.  
  498. // ------------------------------------------------------------------------------------------------------------- //
  499. // ---   K L A S A   M A X                                                                                   --- //
  500. // ------------------------------------------------------------------------------------------------------------- //
  501. //
  502.  
  503. class MAX
  504. {
  505.     private:                                                        // metody i zmienne prywatne
  506.         // -------------------------------------------------------------------------------------------- //
  507.        
  508.         MD_Parola &P;                                               // pseudo obiekt
  509.        
  510.         uint8_t SpriteSize = 0;                                     // rozmiar tablicy z duszkami        
  511.         uint8_t EffectSize = 0;                                     // rozmiar tablicy z efektami
  512.         uint8_t MsgSize = 0;                                        // rozmiar tablicy z napisami MSG
  513.  
  514.         // ******************************************************************************************** //
  515.         // *** B U F O R Y   T E K S T O W E   D O   W Y Ś W I E T L E N I A ************************** //
  516.         // ******************************************************************************************** //
  517.  
  518.         char  BOpisPogody[100];                                     // bufor  : krótki opis podody
  519.         char  BTemperatura[50];                                     // bufor  : temperatura w st.C
  520.         char  BWilgotnosc[50];                                      // bufor  : wilgotność w % RH
  521.         char  BIndexUV[50];                                         // bufor  : UV
  522.         char  BWidzialnosc[50];                                     // bufor  : widzialność w km
  523.         char  BZachmurzenie[50];                                    // bufor  : zachmurzenie w %
  524.         char  BOpady[50];                                           // bufor  : opady deszczu w mm
  525.         char  BCisnienie[50];                                       // bufor  : cisnienie atmosferyczne w mPA
  526.         char  BWiatr[50];                                           // bufor  : prędkość wiatru w km/h
  527.         char  BWiatrPorywy[50];                                     // bufor  : porywy wiatru w km/h
  528.         char  BWiatrKierunek[50];                                   // bufor  : kierunek wiatru (kompas)
  529.         char  BCzasLokalny[50];                                     // bufor  : czas lokalny z serwera
  530.         char  BWschodSlonca[50];                                    // bufor  : wschód słońca
  531.         char  BZachodSlonca[50];                                    // bufor  : zachód słońca
  532.         char  BWschodKsiezyca[50];                                  // bufor  : wschód księżyca
  533.         char  BZachodKsiezyca[50];                                  // bufor  : zachód księżyca
  534.         char  BFazaKsiezyca[60];                                    // bufor  : faza księżyca
  535.         char  BTlenekWegla[50];                                     // bufor  : tlenek węgla
  536.         char  BOzon[50];                                            // bufor  : ozon
  537.         char  BDwutlenekAzotu[50];                                  // bufor  : dwutlenek azotu
  538.         char  BDwutlenekSiarki[50];                                 // bufor  : dwutlenek siarki
  539.         char  BPylyPM25[50];                                        // bufor  : pyły PM25
  540.         char  BPylyPM10[50];                                        // bufor  : pyły PM10
  541.         char  BData[50];                                            // bufor  : data format: dd miesiac rrrr
  542.         char  BCzas[50];                                            // bufor  : czas format: gg : mm
  543.         char  BPrzyslowiaM[100];                                    // bufor  : przysłowie dla miesiąca
  544.         char  BPrzyslowiaD[100];                                    // bufor  : przysłowie dla dnia        
  545.         char  BFreeRam[50];                                         // bufor  : wolna pamięć RAM
  546.         char  BFreqCpu[50];                                         // bufor  : prędkość CPU
  547.         char  BOpis[50];                                            // bufor  : miasto/kraj
  548.         char  BPrzekaznik[50];                                      // bufor  : przekaznik
  549.  
  550.         // ******************************************************************************************** //
  551.         // *** M E T O D Y   P R Y W A T N E   K L A S Y   M A X ************************************** //
  552.         // ******************************************************************************************** //
  553.        
  554.         void ShowRandomMsg();                                       // wyświetla losowy napis MSG
  555.         void ShowRandomSprite(char *msg);                           // wyświetla losowy SPRITE
  556.         void ShowRandomEffect(char *msg);                           // wyświetla losowy EFFKT
  557.         void Scroll2Right(char *msg);                               // wyświetl napis -> scroll w prawo
  558.         void Scroll2Left(char *msg);                                // wyświetl napis -> scroll w lewo
  559.         void TimeUpdate();                                          // aktualizuj czas
  560.         void FreeRam();                                             // wolna pamięć RAM
  561.         void FreqCpu();                                             // prędkośc CPU
  562.         void WeatherTranslate2PL();                                 // translator EN/PL dla macierzy MAX
  563.  
  564.     public:                                                         // metody i zmienne publiczne
  565.         // -------------------------------------------------------------------------------------------- //
  566.        
  567.         MAX(MD_Parola & adrP) : P ( adrP ) { }                      // konstruktor domyślny
  568.         void Setup();                                               // Setup klasy MAX
  569.         void ShowBigClock();                                        // pokaz zegar
  570.         void PrepareBufor();                                        // przygotuj bufory do wyświetlenia
  571.         void ShowTest();
  572.         void ShowMsg2Left(char *msg);                               // pokaż scroll w lewo (msg)
  573. };
  574.  
  575. //
  576. // ------------------------------------------------------------------------------------------------------------- //
  577. // ---   M E T O D Y   P R Y W A T N E                                                                       --- //
  578. // ------------------------------------------------------------------------------------------------------------- //
  579. // ---   Wysietla wiadomosc z losowym SPRITE                                                                 --- //
  580. // ------------------------------------------------------------------------------------------------------------- //
  581. //
  582.  
  583. void MAX::ShowRandomSprite(char *msg)
  584. {
  585.     if(P.displayAnimate())                                                                        
  586.     {                                                                            
  587.        BAJT curEFX = random(0, SpriteSize - 1);                                                                              
  588.        P.setSpriteData(sprite[curEFX].data,sprite[curEFX].width,sprite[curEFX].frames, sprite[curEFX].data,sprite[curEFX].width,sprite[curEFX].frames);                                                                                                      
  589.        P.displayText(msg, PA_CENTER, 20, 100, PA_SPRITE, PA_SPRITE);                                                                                                                                    
  590.     }    
  591. }
  592.  
  593. //
  594. // ------------------------------------------------------------------------------------------------------------- //
  595. // ---   M E T O D Y   P R Y W A T N E                                                                       --- //
  596. // ------------------------------------------------------------------------------------------------------------- //
  597. // ---   Przygotuj bufory do wyświetlenia                                                                    --- //
  598. // ------------------------------------------------------------------------------------------------------------- //
  599. //
  600.  
  601. void MAX::WeatherTranslate2PL()
  602. {
  603.     String bufor;
  604.  
  605.     // ósemkowo 242 to ć
  606.     // ósemkowo 243 to ś
  607.     // ósemkowo 244 to ó
  608.     // ósemkowo 245 to ę
  609.     // ósemkowo 246 to ż
  610.     // ósemkowo 247 to ł
  611.     // ósemkowo 250 to ń
  612.     // ósemkowo 251 to ź
  613.     // ósemkowo 252 to ą
  614.  
  615.     if ( pogoda.kondycja == "Sunny" )                                         bufor = "S\247onecznie";
  616.     else if ( pogoda.kondycja == "Partly cloudy" )                            bufor = "Cz\245\243ciowe zachmurzenie";
  617.     else if ( pogoda.kondycja == "Cloudy" )                                   bufor = "Pochmurnie";
  618.     else if ( pogoda.kondycja == "Overcast" )                                 bufor = "Pos\245pnie";
  619.     else if ( pogoda.kondycja == "Mist" )                                     bufor = "Zamglenie";
  620.     else if ( pogoda.kondycja == "Patchy rain possible" )                     bufor = "Mo\246liwy przelotny deszcz";
  621.     else if ( pogoda.kondycja == "Patchy snow possible" )                     bufor = "Mo\246liwe nieregularne opady \243niegu";
  622.     else if ( pogoda.kondycja == "Patchy sleet possible" )                    bufor = "Mo\246liwe niejednolite opady \243niegu";
  623.     else if ( pogoda.kondycja == "Patchy freezing drizzle possible" )         bufor = "Mo\246liwa nieregularna marzn\252ca m\246awka";
  624.     else if ( pogoda.kondycja == "Thundery outbreaks possible" )              bufor = "Mo\246liwe wybuchy piorun\244w";
  625.     else if ( pogoda.kondycja == "Blowing snow" )                             bufor = "\243nie\246yca";
  626.     else if ( pogoda.kondycja == "Blizzard" )                                 bufor = "Burza \243nie\246na";
  627.     else if ( pogoda.kondycja == "Fog" )                                      bufor = "Mg\247a";
  628.     else if ( pogoda.kondycja == "Freezing fog" )                             bufor = "Marzn\252ca mg\247a";
  629.     else if ( pogoda.kondycja == "Patchy light drizzle" )                     bufor = "Nieregularna lekka m\246awka";
  630.     else if ( pogoda.kondycja == "Light drizzle" )                            bufor = "Lekka m\246awka";
  631.     else if ( pogoda.kondycja == "Freezing drizzle" )                         bufor = "Marzn\252ca m\246awka";
  632.     else if ( pogoda.kondycja == "Heavy freezing drizzle" )                   bufor = "Silna marzn\252ca m\246awka";
  633.     else if ( pogoda.kondycja == "Patchy light rain" )                        bufor = "Niejednolity, lekki deszcz";
  634.     else if ( pogoda.kondycja == "Light rain" )                               bufor = "Lekki deszcz";
  635.     else if ( pogoda.kondycja == "Moderate rain at times" )                   bufor = "Czasami umiarkowany deszcz";
  636.     else if ( pogoda.kondycja == "Moderate rain" )                            bufor = "Umiarkowany deszcz";
  637.     else if ( pogoda.kondycja == "Heavy rain at times" )                      bufor = "Czasami ulewny deszcz";
  638.     else if ( pogoda.kondycja == "Heavy rain" )                               bufor = "Ulewa";
  639.     else if ( pogoda.kondycja == "Light freezing rain" )                      bufor = "Lekki marzn\252cy deszcz";
  640.     else if ( pogoda.kondycja == "Moderate or heavy freezing rain" )          bufor = "Umiarkowany lub silny marzn\252cy deszcz";
  641.     else if ( pogoda.kondycja == "Light sleet" )                              bufor = "Lekki deszcz ze \243niegiem";
  642.     else if ( pogoda.kondycja == "Moderate or heavy sleet" )                  bufor = "Umiarkowany lub obfity deszcz ze \243niegiem";
  643.     else if ( pogoda.kondycja == "Patchy light snow" )                        bufor = "Niejednolity, lekki \243nieg";
  644.     else if ( pogoda.kondycja == "Light snow" )                               bufor = "Lekkie opady \243niegu";
  645.     else if ( pogoda.kondycja == "Patchy moderate snow" )                     bufor = "Puszysty, umiarkowany \243nieg";
  646.     else if ( pogoda.kondycja == "Moderate snow" )                            bufor = "\243rednie opady \243niegu";
  647.     else if ( pogoda.kondycja == "Patchy heavy snow" )                        bufor = "Niejednolity, ci\245\246ki \243nieg";
  648.     else if ( pogoda.kondycja == "Heavy snow" )                               bufor = "Du\246e opady \243niegu";
  649.     else if ( pogoda.kondycja == "Ice pellets" )                              bufor = "Granulki lodu";
  650.     else if ( pogoda.kondycja == "Light rain shower" )                        bufor = "Lekki deszczyk";
  651.     else if ( pogoda.kondycja == "Moderate or heavy rain shower" )            bufor = "Umiarkowany lub ulewny deszcz";
  652.     else if ( pogoda.kondycja == "Torrential rain shower" )                   bufor = "Ulewny deszcz";
  653.     else if ( pogoda.kondycja == "Light sleet showers" )                      bufor = "Lekkie opady deszczu ze \243niegiem";
  654.     else if ( pogoda.kondycja == "Moderate or heavy sleet showers" )          bufor = "Umiarkowane lub obfite opady deszczu ze \243niegiem";
  655.     else if ( pogoda.kondycja == "Light snow showers" )                       bufor = "Lekkie opady \243niegu";
  656.     else if ( pogoda.kondycja == "Moderate or heavy snow showers" )           bufor = "Umiarkowane lub obfite przelotne opady \243niegu";
  657.     else if ( pogoda.kondycja == "Light showers of ice pellets" )             bufor = "Lekkie opady granulatu lodu";
  658.     else if ( pogoda.kondycja == "Moderate or heavy showers of ice pellets" ) bufor = "Umiarkowane lub obfite opady granulatu lodu";
  659.     else if ( pogoda.kondycja == "Patchy light rain with thunder" )           bufor = "Nieregularny, lekki deszcz z grzmotami";
  660.     else if ( pogoda.kondycja == "Moderate or heavy rain with thunder" )      bufor = "Umiarkowany lub ulewny deszcz z grzmotami";
  661.     else if ( pogoda.kondycja == "Moderate or heavy snow with thunder" )      bufor = "Umiarkowany lub ci\245\246ki \243nieg z grzmotami";
  662.            
  663.     else bufor = pogoda.kondycja;   // nie zdefiniowane skopiuj
  664.  
  665.     // --- OPIS POGODY SKOPIUJ ---------------------------------------------------- //
  666.  
  667.     strcpy ( BOpisPogody, "Dzi\243 : " );     // Skopiuj do BOpisPogody
  668.     strcat ( BOpisPogody, bufor.c_str() );    // Dodaj do BOpisPogody
  669.  
  670.     // --- OPIS POGODY GOTOWY ----------------------------------------------------- //
  671. }
  672.  
  673. //
  674. // ------------------------------------------------------------------------------------------------------------- //
  675. // ---   M E T O D Y   P R Y W A T N E                                                                       --- //
  676. // ------------------------------------------------------------------------------------------------------------- //
  677. // ---   Wysietla wiadomosc z losowym EFFECTEM                                                               --- //
  678. // ------------------------------------------------------------------------------------------------------------- //
  679. //
  680.  
  681. void MAX::ShowRandomEffect(char *msg)
  682. {
  683.     if (P.displayAnimate())                                                                        
  684.     {                                                                            
  685.         BAJT curEFX = random(0, EffectSize - 1);                                                  
  686.         P.displayText(msg, PA_CENTER, efekt[curEFX].speed,  efekt[curEFX].pause, efekt[curEFX].effect, efekt[curEFX].effect);                                                                                                                                
  687.     }    
  688. }
  689.  
  690. //
  691. // ------------------------------------------------------------------------------------------------------------- //
  692. // ---   M E T O D Y   P R Y W A T N E                                                                       --- //
  693. // ------------------------------------------------------------------------------------------------------------- //
  694. // ---   Wyswietl losowy MSG z losowym efektem SPRITE lub EFFECT                                             --- //
  695. // ------------------------------------------------------------------------------------------------------------- //
  696. //
  697.  
  698. void MAX::ShowRandomMsg()
  699. {
  700.     if (P.displayAnimate())                                                                        
  701.     {                                                                                              
  702.         BAJT randFX = ( random(0, 100) ) % 2;  
  703.         BAJT msg = ( random(0, MsgSize) );  
  704.                                                                                                  
  705.         if( randFX )
  706.         {                                                                                              
  707.             BAJT curEFX = random(0, SpriteSize - 1);                                                                              
  708.             P.setSpriteData(sprite[curEFX].data,sprite[curEFX].width,sprite[curEFX].frames, sprite[curEFX].data,sprite[curEFX].width,sprite[curEFX].frames);                                                                                                      
  709.             P.displayText(MSG[msg], PA_CENTER, 20, 100, PA_SPRITE, PA_SPRITE);                        
  710.          }                                                                                                
  711.          else                                                                
  712.          {                                                                  
  713.             BAJT curEFX = random(0, EffectSize - 1);                                                  
  714.             P.displayText(MSG[msg], PA_CENTER, efekt[curEFX].speed,  efekt[curEFX].pause, efekt[curEFX].effect, efekt[curEFX].effect);              
  715.          }                                                                                                        
  716.       }              
  717. }
  718.  
  719. //
  720. // ------------------------------------------------------------------------------------------------------------- //
  721. // ---   M E T O D Y   P R Y W A T N E                                                                       --- //
  722. // ------------------------------------------------------------------------------------------------------------- //
  723. // ---   Wyswietl scroll w prawo                                                                             --- //
  724. // ------------------------------------------------------------------------------------------------------------- //
  725. //
  726.  
  727. void MAX::Scroll2Right(char *msg)
  728. {
  729.     if(P.displayAnimate())
  730.     {
  731.         P.displayText(msg, PA_RIGHT, 20, 0, PA_SCROLL_RIGHT, PA_SCROLL_RIGHT);
  732.     }
  733. }
  734.  
  735. //
  736. // ------------------------------------------------------------------------------------------------------------- //
  737. // ---   M E T O D Y   P R Y W A T N E                                                                       --- //
  738. // ------------------------------------------------------------------------------------------------------------- //
  739. // ---   Wyswietl scroll w lewo                                                                              --- //
  740. // ------------------------------------------------------------------------------------------------------------- //
  741. //
  742.  
  743. void MAX::Scroll2Left(char *msg)
  744. {
  745.     if(P.displayAnimate())
  746.     {
  747.         P.displayText(msg, PA_LEFT, 20, 0, PA_SCROLL_LEFT, PA_SCROLL_LEFT);
  748.     }
  749. }
  750.  
  751. //
  752. // ------------------------------------------------------------------------------------------------------------- //
  753. // ---   M E T O D Y   P R Y W A T N E                                                                       --- //
  754. // ------------------------------------------------------------------------------------------------------------- //
  755. // ---   A k t u a l i z a c j a   C z a s u                                                                 --- //
  756. // ------------------------------------------------------------------------------------------------------------- //
  757. //
  758.  
  759. void MAX::TimeUpdate()        // ntp jest aktualizowane co minutę, także wykorzystujemy zegar wewnętrzny ESP32-RTC
  760. {
  761.     strcpy  ( BCzas, "Godzina " );
  762.     if (rtc.getHour(true) < 10) strcat ( BCzas, "0" );    
  763.     strcat  ( BCzas, String(rtc.getHour(true)).c_str() );
  764.     strcat  ( BCzas, ":" );
  765.     if (rtc.getMinute() < 10) strcat ( BCzas, "0" );    
  766.     strcat  ( BCzas, String(rtc.getMinute()).c_str() );
  767. }
  768.  
  769. //
  770. // ------------------------------------------------------------------------------------------------------------- //
  771. // ---   M E T O D Y   P R Y W A T N E                                                                       --- //
  772. // ------------------------------------------------------------------------------------------------------------- //
  773. // ---   I L E   W O L N E G O   R A M U                                                                     --- //
  774. // ------------------------------------------------------------------------------------------------------------- //
  775. //
  776.  
  777. void MAX::FreeRam()
  778. {
  779.     // ósemkowo 242 to ć  
  780.     // ósemkowo 243 to ś                  
  781.     // ósemkowo 244 to ó                  
  782.     // ósemkowo 245 to ę                                                    
  783.     // ósemkowo 246 to ż                                                    
  784.     // ósemkowo 247 to ł                                                    
  785.     // ósemkowo 250 to ń                                                    
  786.     // ósemkowo 251 to ź                                                    
  787.     // ósemkowo 252 to ą    
  788.    
  789.     char bufor[10];
  790.     strcpy  ( BFreeRam, "Free RAM " );
  791.     sprintf ( bufor, "%d", ESP.getFreeHeap() / 1000 );      // pokaż w kiloBajtach (to nie Arduino)
  792.     strcat  ( BFreeRam, bufor );
  793.     strcat  ( BFreeRam, " kBajt\244w" );    
  794. }
  795.  
  796. //
  797. // ------------------------------------------------------------------------------------------------------------- //
  798. // ---   M E T O D Y   P R Y W A T N E                                                                       --- //
  799. // ------------------------------------------------------------------------------------------------------------- //
  800. // ---   P R Ę D K O Ś C   C P U                                                                             --- //
  801. // ------------------------------------------------------------------------------------------------------------- //
  802. //
  803.  
  804. void MAX::FreqCpu()
  805. {
  806.     // ósemkowo 242 to ć  
  807.     // ósemkowo 243 to ś                  
  808.     // ósemkowo 244 to ó                  
  809.     // ósemkowo 245 to ę                                                    
  810.     // ósemkowo 246 to ż                                                    
  811.     // ósemkowo 247 to ł                                                    
  812.     // ósemkowo 250 to ń                                                    
  813.     // ósemkowo 251 to ź                                                    
  814.     // ósemkowo 252 to ą    
  815.    
  816.     char bufor[10];
  817.     strcpy  ( BFreqCpu, "Pr\245dko\243\242 CPU " );
  818.     sprintf ( bufor, "%d", ESP.getCpuFreqMHz() );
  819.     strcat  ( BFreqCpu, bufor );
  820.     strcat  ( BFreqCpu, " Mhz" );    
  821. }
  822.  
  823. //
  824. // ------------------------------------------------------------------------------------------------------------- //
  825. // ---   M E T O D Y   P U B L I C Z N E                                                                     --- //
  826. // ------------------------------------------------------------------------------------------------------------- //
  827. // ---   S E T U P                                                                                           --- //
  828. // ------------------------------------------------------------------------------------------------------------- //
  829.  
  830. void MAX::Setup()
  831. {
  832.     SpriteSize    =   ARRAY_SIZE ( sprite );    
  833.     EffectSize    =   ARRAY_SIZE ( efekt  );
  834.     MsgSize       =   ARRAY_SIZE ( MSG );
  835.  
  836.     for (BAJT i = 0; i < EffectSize; i++ )                                          
  837.     {                                                                              
  838.         efekt[i].speed *= P.getSpeed();                                            
  839.         efekt[i].pause *= 500;                                                      
  840.     }  
  841. }
  842.  
  843. // ------------------------------------------------------------------------------------------------------------- //
  844. // ---   M E T O D Y   P U B L I C Z N E                                                                     --- //
  845. // ------------------------------------------------------------------------------------------------------------- //
  846. // ---   P O K A Z   D U Ż Y   Z E G A R                                                                     --- //
  847. // ------------------------------------------------------------------------------------------------------------- //
  848.  
  849. void MAX::ShowBigClock()
  850. {
  851.     char TimeBufor[20] = " TOMEK ";                         // bufor do przechowywania czasu          
  852.                                                                                                      
  853.     strcpy(TimeBufor, DuzeCyfry[rtc.getHour(true) / 10]);                                                      
  854.     strcat(TimeBufor, DuzeCyfry[rtc.getHour(true) % 10]);                                                  
  855.                                                                                                      
  856.     if(rtc.getSecond() % 2)  strcat(TimeBufor, "\24");                                                  
  857.     else                     strcat(TimeBufor, "\26");                                                  
  858.                                                                                                      
  859.     strcat(TimeBufor, DuzeCyfry[rtc.getMinute() / 10]);                                                  
  860.     strcat(TimeBufor, DuzeCyfry[rtc.getMinute() % 10]);                                                  
  861.                                                                                                      
  862.     strcat(TimeBufor, "\25");                                                                        
  863.                                                                                                      
  864.     strcat(TimeBufor, DuzeCyfry[rtc.getSecond() / 10]);                                                  
  865.     strcat(TimeBufor, DuzeCyfry[rtc.getSecond() % 10]);                                                  
  866.  
  867.     if ( P.displayAnimate() )
  868.     {
  869.         P.displayText(TimeBufor, PA_CENTER, 0, 1000, PA_PRINT, PA_PRINT);                              
  870.     }
  871.    
  872. }
  873.  
  874. //
  875. // ------------------------------------------------------------------------------------------------------------- //
  876. // ---   M E T O D Y   P U B L I C Z N E                                                                     --- //
  877. // ------------------------------------------------------------------------------------------------------------- //
  878. // ---   Przygotuj bufory do wyświetlenia                                                                    --- //
  879. // ------------------------------------------------------------------------------------------------------------- //
  880. //
  881.  
  882. void MAX::PrepareBufor()
  883. {    
  884.     char bufor[20];    
  885.     String buforek = "";         // śmieszny buforek :-)  
  886.  
  887.     WeatherTranslate2PL();       // przygotuj bufor z polskim opisem pogody z ogonkami pod matrycę MAX
  888.    
  889.     // --- TEMPERATURA ---------------------------------------------------- //
  890.     strcpy  ( BTemperatura, "Temperatura : " );
  891.     sprintf ( bufor, "%2.2f", pogoda.temperatura_C );
  892.     strcat  ( BTemperatura, bufor );
  893.     strcat  ( BTemperatura, " " );
  894.     strcat  ( BTemperatura, "\44" );
  895.     strcat  ( BTemperatura, "C" );
  896.  
  897.     // --- WILGOTNOŚĆ ----------------------------------------------------- //
  898.  
  899.     strcpy  ( BWilgotnosc, "Wilgotno\243\242 Powietrza : " );    
  900.     sprintf ( bufor, "%d", pogoda.wilgotnosc);
  901.     strcat  ( BWilgotnosc, bufor );
  902.     strcat  ( BWilgotnosc, " %RH" );
  903.  
  904.     // --- INDEX UV ------------------------------------------------------- //
  905.  
  906.     strcpy  ( BIndexUV, "Index UV : " );
  907.     sprintf ( bufor, "%d", pogoda.index_uv );
  908.     strcat  ( BIndexUV, bufor );
  909.  
  910.     // --- WIDZIALNOŚĆ ---------------------------------------------------- //
  911.  
  912.     strcpy  ( BWidzialnosc, "Widzialno\243\242 : " );
  913.     sprintf ( bufor, "%d", pogoda.widzialnosc );
  914.     strcat  ( BWidzialnosc, bufor );
  915.     strcat  ( BWidzialnosc, " km" );
  916.  
  917.     // --- ZACHMURZENIE --------------------------------------------------- //
  918.  
  919.     strcpy  ( BZachmurzenie, "Zachmurzenie : " );
  920.     sprintf ( bufor, "%d", pogoda.zachmurzenie );
  921.     strcat  ( BZachmurzenie, bufor );
  922.     strcat  ( BZachmurzenie, " % chmur" );
  923.    
  924.     // --- OPADY --------------------------------------------------------- //
  925.  
  926.     strcpy  ( BOpady, "Opady : " );
  927.     sprintf ( bufor, "%2.2f", pogoda.opady );
  928.     strcat  ( BOpady, bufor );
  929.     strcat  ( BOpady, " mm" );
  930.  
  931.     // --- CISNIENIE ------------------------------------------------------ //
  932.  
  933.     strcpy  ( BCisnienie, "Ci\243nienie Atmosferyczne : " );
  934.     sprintf ( bufor, "%d", pogoda.cisnienie );
  935.     strcat  ( BCisnienie, bufor );
  936.     strcat  ( BCisnienie, " mPA" );
  937.  
  938.     // --- PRĘDKOŚC WIATRU ------------------------------------------------ //
  939.  
  940.     strcpy  ( BWiatr, "Pr\245dko\243\242 Wiatru : " );
  941.     sprintf ( bufor, "%2.2f", pogoda.predkosc_wiatru_kph );
  942.     strcat  ( BWiatr, bufor );
  943.     strcat  ( BWiatr, " km/h" );
  944.  
  945.     // --- KIERUNEK WIATRU ------------------------------------------------ //
  946.  
  947.     strcpy  ( BWiatrKierunek, "Kierunek Wiatru : " );
  948.     strcat  ( BWiatrKierunek, pogoda.kierunek_wiatru_kompas.c_str() );    
  949.  
  950.     // --- PORYWY WIATRU -------------------------------------------------- //
  951.  
  952.     strcpy  ( BWiatrPorywy, "Porywy Wiatru : " );
  953.     sprintf ( bufor, "%2.2f", pogoda.podmuchy_wiatru );
  954.     strcat  ( BWiatrPorywy, bufor );
  955.     strcat  ( BWiatrPorywy, " km/h" );
  956.  
  957.     // --- PORYWY WIATRU -------------------------------------------------- //
  958.  
  959.     strcpy  ( BOpis, pogoda.miejscowosc.c_str() );
  960.     strcat  ( BOpis, ", " );
  961.     strcat  ( BOpis, pogoda.kraj.c_str() );    
  962.  
  963.     // --- CZAS LOKALNY --------------------------------------------------- //
  964.  
  965.     strcpy  ( BCzasLokalny, "Czas lokalny : ");    
  966.     strcat  ( BCzasLokalny, pogoda.czas_lokalny.c_str() );  
  967.  
  968.     // --- WSCHÓD SŁOŃCA -------------------------------------------------- //
  969.  
  970.     strcpy ( BWschodSlonca, "Wsch\244d S\247o\250ca : " );
  971.     strcat ( BWschodSlonca, astronomia.wschod_slonca.c_str() );
  972.  
  973.     // --- ZACHÓD SŁOŃCA -------------------------------------------------- //
  974.  
  975.     strcpy ( BZachodSlonca, "Zach\244d S\247o\250ca : " );
  976.     strcat ( BZachodSlonca, astronomia.zachod_slonca.c_str() );
  977.  
  978.     // --- WSCHOD KSIĘŻYCA ------------------------------------------------ //
  979.  
  980.     strcpy ( BWschodKsiezyca, "Wsch\244d Ksi\245\246yca : " );
  981.     strcat ( BWschodKsiezyca, astronomia.wschod_ksiezyca.c_str() );
  982.  
  983.     // --- ZACHÓD KSIĘŻYCA ------------------------------------------------ //
  984.  
  985.     strcpy ( BZachodKsiezyca, "Zach\244d Ksi\245\246yca : " );
  986.     strcat ( BZachodKsiezyca, astronomia.zachod_ksiezyca.c_str() );
  987.  
  988.     // --- FAZA KSIĘŻYCA -------------------------------------------------- //
  989.  
  990.     strcpy ( BZachodKsiezyca, "Faza Ksi\245\246yca : " );
  991.  
  992.     if (astronomia.faza_ksiezyca == "Waxing Crescent")
  993.     {
  994.         buforek = "Sierp przybywaj\252cy";    
  995.     }
  996.     else
  997.     if (astronomia.faza_ksiezyca == "New Moon")
  998.     {
  999.         buforek = "N\244w";
  1000.     }
  1001.     else
  1002.     if (astronomia.faza_ksiezyca == "First Quarter")
  1003.     {
  1004.         buforek = "Pierwszy kwarta\247";
  1005.     }
  1006.     else
  1007.     if (astronomia.faza_ksiezyca == "Waxing Gibbous")
  1008.     {
  1009.         buforek = "Przybywaj\252cy Ksi\245\246yc";
  1010.     }
  1011.     else
  1012.     if (astronomia.faza_ksiezyca == "Full Moon")
  1013.     {
  1014.         buforek = "Pe\247nia ksi\245\246yca";
  1015.     }
  1016.     else
  1017.     if (astronomia.faza_ksiezyca == "Waning Gibbous")
  1018.     {
  1019.         buforek = "Ubywaj\252cy Ksi\245\246yc";
  1020.     }
  1021.     else    
  1022.     if (astronomia.faza_ksiezyca == "Last Quarter")
  1023.     {
  1024.         buforek = "Ostatni kwarta\247";
  1025.     }
  1026.     else    
  1027.     if (astronomia.faza_ksiezyca == "Waning Crescent")
  1028.     {
  1029.         buforek = "Powi\245kszaj\252cy si\245 Ksi\245\246yc";
  1030.     }
  1031.    
  1032.     strcat ( BZachodKsiezyca, buforek.c_str() );
  1033.  
  1034.     // --- TLENEK WĘGLA --------------------------------------------------- //
  1035.  
  1036.     strcpy  ( BTlenekWegla, "Tlenek W\245gla : " );    
  1037.     dtostrf ( powietrze.co, 8, 8, bufor );    
  1038.     strcat  ( BTlenekWegla, bufor );  
  1039.     strcat  ( BTlenekWegla, " ug/m3" );
  1040.    
  1041.     // --- TLENEK WĘGLA --------------------------------------------------- //
  1042.  
  1043.     strcpy  ( BOzon, "Ozon : " );
  1044.     dtostrf ( powietrze.o3, 8, 8, bufor );
  1045.     strcat  ( BOzon, bufor );
  1046.     strcat  ( BOzon, " ug/m3" );
  1047.  
  1048.     // --- DWUTLENEK AZOTU ------------------------------------------------ //
  1049.  
  1050.     strcpy  ( BDwutlenekAzotu, "Dwutlenek Azotu : " );
  1051.     dtostrf ( powietrze.no2, 8, 8, bufor );      
  1052.     strcat  ( BDwutlenekAzotu, bufor );
  1053.     strcat  ( BDwutlenekAzotu, " ug/m3" );
  1054.  
  1055.     // --- DWUTLENEK SIARKI ------------------------------------------------ //
  1056.  
  1057.     strcpy  ( BDwutlenekSiarki, "Dwutlenek Siarki : " );
  1058.     dtostrf ( powietrze.so2, 8, 8, bufor );      
  1059.     strcat  ( BDwutlenekSiarki, bufor );
  1060.     strcat  ( BDwutlenekSiarki, " ug/m3" );
  1061.  
  1062.     // --- AEROZOLOE I PYŁY PM25 ------------------------------------------- //
  1063.  
  1064.     strcpy  ( BPylyPM25, "Aerozole i py\247y PM2,5 : " );
  1065.     dtostrf ( powietrze.pm25, 8, 8, bufor );      
  1066.     strcat  ( BPylyPM25, bufor );
  1067.     strcat  ( BPylyPM25, " um" );
  1068.  
  1069.     // --- AEROZOLOE I PYŁY PM10 ------------------------------------------- //
  1070.  
  1071.     strcpy  ( BPylyPM10, "Aerozole i py\247y PM10 : " );
  1072.     dtostrf ( powietrze.pm10, 8, 8, bufor );      
  1073.     strcat  ( BPylyPM10, bufor );
  1074.     strcat  ( BPylyPM10, " um" );
  1075.  
  1076.     // --- DATA DŁUGA ----------------------------------------------------- //
  1077.  
  1078.     strcpy  ( BData, String(zegar.DzienMiesiaca).c_str() );
  1079.     strcat  ( BData, " " );
  1080.     strcat  ( BData, MIESIAC[zegar.DzienMiesiaca] );
  1081.     strcat  ( BData, " " );
  1082.     strcat  ( BData, String(zegar.Rok).c_str() );    
  1083.  
  1084.     // --- PRZYSLOWIA MIESIACA -------------------------------------------- //
  1085.  
  1086.     strcpy  ( BPrzyslowiaM, PRZYSLOWIA[zegar.Miesiac] );
  1087.  
  1088.     // --- PRZYSLOWIA DNIA ------------------------------------------------ //
  1089.  
  1090.     strcpy  ( BPrzyslowiaD, PRZYSLOWIE_DNIA[zegar.DzienTygodnia] );
  1091. }
  1092.  
  1093. //
  1094. // ------------------------------------------------------------------------------------------------------------- //
  1095. // ---   M E T O D Y   P U B L I C Z N E                                                                     --- //
  1096. // ------------------------------------------------------------------------------------------------------------- //
  1097. // ---   T E S T                                                                                             --- //
  1098. // ------------------------------------------------------------------------------------------------------------- //
  1099. //
  1100.  
  1101. void MAX::ShowTest()
  1102. {
  1103.     static BAJT przelacznik = 0;
  1104.    
  1105.     if (F_Przekaznik)     // jeśli flaga przekaźnika jest TRUE
  1106.     {
  1107.         strcpy ( BPrzekaznik, RelayInfo.c_str() );
  1108.         przelacznik = 101;
  1109.     }
  1110.    
  1111.    
  1112.     if(P.displayAnimate())    
  1113.     {
  1114.      
  1115.        switch ( przelacznik )                                                                      
  1116.        {                            
  1117.           case  0   :   Scroll2Left(BData);             przelacznik ++ ;   break;                                                              
  1118.           case  1   :   TimeUpdate();                   // buduj bufor z aktualnym czasem
  1119.                         Scroll2Left(BCzas);             przelacznik ++ ;   break;
  1120.           case  2   :   ShowRandomMsg();                przelacznik ++ ;   break;                                  
  1121.           case  3   :   Scroll2Left(BOpisPogody);       przelacznik ++ ;   break;                                                                                    
  1122.           case  4   :   Scroll2Left(BWilgotnosc);       przelacznik ++ ;   break;          
  1123.           case  5  :    ShowRandomMsg();                przelacznik ++ ;   break;          
  1124.           case  6   :   Scroll2Left(BIndexUV);          przelacznik ++ ;   break;
  1125.           case  7   :   Scroll2Left(BWidzialnosc);      przelacznik ++ ;   break;
  1126.           case  8   :   Scroll2Left(BZachmurzenie);     przelacznik ++ ;   break;
  1127.           case  9   :   Scroll2Left(BOpady);            przelacznik ++ ;   break;
  1128.           case  10  :   ShowRandomMsg();                przelacznik ++ ;   break;          
  1129.           case  11  :   Scroll2Left(BCisnienie);        przelacznik ++ ;   break;
  1130.           case  12  :   Scroll2Left(BWiatr);            przelacznik ++ ;   break;
  1131.           case  13  :   Scroll2Left(BWiatrPorywy);      przelacznik ++ ;   break;          
  1132.           case  14  :   Scroll2Left(BWiatrKierunek);    przelacznik ++ ;   break;          
  1133.           case  15  :   ShowRandomMsg();                przelacznik ++ ;   break;          
  1134.           case  16  :                                   przelacznik ++ ;   break;          
  1135.           case  17  :                                   przelacznik ++ ;   break;
  1136.           case  18  :                                   przelacznik ++ ;   break;
  1137.           case  19  :                                   przelacznik ++ ;   break;
  1138.           case  20  :                                   przelacznik ++ ;   break;
  1139.           case  21  :                                   przelacznik ++ ;   break;
  1140.           case  22  :                                   przelacznik ++ ;   break;
  1141.           case  23  :                                   przelacznik ++ ;   break;
  1142.           case  24  :                                   przelacznik ++ ;   break;          
  1143.           case  25  :   Scroll2Left(BData);             przelacznik ++ ;   break;                                                                                      
  1144.           case  26  :   TimeUpdate();                   // buduj bufor z aktualnym czasem
  1145.                         Scroll2Left(BCzas);             przelacznik ++ ;   break;          
  1146.           case  27  :   Scroll2Left(BCzasLokalny);      przelacznik ++ ;   break;
  1147.           case  28  :   ShowRandomMsg();                przelacznik ++ ;   break;          
  1148.           case  29  :   Scroll2Left(BWschodSlonca);     przelacznik ++ ;   break;
  1149.           case  30  :   Scroll2Left(BZachodSlonca);     przelacznik ++ ;   break;
  1150.           case  31  :   Scroll2Left(BWschodKsiezyca);   przelacznik ++ ;   break;
  1151.           case  32  :   Scroll2Left(BZachodKsiezyca);   przelacznik ++ ;   break;
  1152.           case  33  :   ShowRandomMsg();                przelacznik ++ ;   break;          
  1153.           case  34  :   Scroll2Left(BFazaKsiezyca);     przelacznik ++ ;   break;                        
  1154.           case  35  :   ShowRandomMsg();                przelacznik ++ ;   break;
  1155.           case  36  :                                   przelacznik ++ ;   break;
  1156.           case  37  :                                   przelacznik ++ ;   break;
  1157.           case  38  :                                   przelacznik ++ ;   break;
  1158.           case  39  :                                   przelacznik ++ ;   break;
  1159.           case  40  :   Scroll2Left(BOpisPogody);       przelacznik ++ ;   break;
  1160.           case  41  :                                   przelacznik ++ ;   break;
  1161.           case  42  :                                   przelacznik ++ ;   break;
  1162.           case  43  :                                   przelacznik ++ ;   break;
  1163.           case  44  :                                   przelacznik ++ ;   break;                        
  1164.           case  45  :   TimeUpdate();                   // buduj bufor z aktualnym czasem
  1165.                         Scroll2Left(BCzas);             przelacznik ++ ;   break;          
  1166.           case  46  :   Scroll2Left(BData);             przelacznik ++ ;   break;          
  1167.           case  47  :   ShowRandomMsg();                przelacznik ++ ;   break;          
  1168.           case  48  :   Scroll2Left(BTlenekWegla);      przelacznik ++ ;   break;
  1169.           case  49  :   Scroll2Left(BOzon);             przelacznik ++ ;   break;
  1170.           case  50  :   Scroll2Left(BDwutlenekAzotu);   przelacznik ++ ;   break;
  1171.           case  51  :   Scroll2Left(BDwutlenekSiarki);  przelacznik ++ ;   break;
  1172.           case  52  :   Scroll2Left(BPylyPM25);         przelacznik ++ ;   break;
  1173.           case  53  :   Scroll2Left(BPylyPM10);         przelacznik ++ ;   break;
  1174.           case  54  :   TimeUpdate();                   // buduj bufor z aktualnym czasem
  1175.                         Scroll2Left(BCzas);             przelacznik ++ ;   break;          
  1176.           case  55  :   Scroll2Left(BData);             przelacznik ++ ;   break;
  1177.           case  56  :   ShowRandomMsg();                przelacznik ++ ;   break;
  1178.           case  57  :                                   przelacznik ++ ;   break;
  1179.           case  58  :                                   przelacznik ++ ;   break;
  1180.           case  59  :                                   przelacznik ++ ;   break;
  1181.           case  60  :   Scroll2Left(BPrzyslowiaM);      przelacznik ++ ;   break;
  1182.           case  61  :   Scroll2Left(BPrzyslowiaD);      przelacznik ++ ;   break;
  1183.           case  62  :   Scroll2Left(BOpisPogody);       przelacznik ++ ;   break;
  1184.           case  63  :   FreeRam();                      // buduj bufor tekstowy o ilości wolnej pamięci RAM
  1185.                         Scroll2Left(BFreeRam);          przelacznik ++ ;   break;                        
  1186.           case  64  :   FreqCpu();                      // buduj bufor tekstowy o prędkości procesora
  1187.                         Scroll2Left(BFreqCpu);          przelacznik ++ ;   break;
  1188.           case  65  :   ShowRandomMsg();                przelacznik ++ ;   break;          
  1189.           case  66  :                                   przelacznik ++ ;   break;          
  1190.           case  67  :   Scroll2Left(BOpis);             przelacznik ++ ;   break;          
  1191.           case  68  :                                   przelacznik ++ ;   break;          
  1192.           case  69  :                                   przelacznik ++ ;   break;          
  1193.           case  70  :                                   przelacznik ++ ;   break;          
  1194.           case  71  :                                   przelacznik ++ ;   break;          
  1195.           case  72  :                                   przelacznik ++ ;   break;          
  1196.           case  73  :                                   przelacznik ++ ;   break;          
  1197.           case  74  :                                   przelacznik ++ ;   break;          
  1198.           case  75  :  ShowRandomSprite("ESP32");       przelacznik ++ ;   break;          
  1199.           case  76  :  ShowRandomEffect("ESP32");       przelacznik ++ ;   break;          
  1200.           case  77  :                                   przelacznik ++ ;   break;          
  1201.           case  78  :                                   przelacznik ++ ;   break;          
  1202.           case  79  :                                   przelacznik ++ ;   break;          
  1203.           case  80  :                                   przelacznik ++ ;   break;          
  1204.           case  81  :                                   przelacznik ++ ;   break;          
  1205.           case  82  :                                   przelacznik ++ ;   break;          
  1206.           case  83  :                                   przelacznik ++ ;   break;          
  1207.           case  84  :                                   przelacznik ++ ;   break;          
  1208.           case  85  :                                   przelacznik ++ ;   break;          
  1209.           case  86  :                                   przelacznik ++ ;   break;          
  1210.           case  87  :                                   przelacznik ++ ;   break;          
  1211.           case  88  :                                   przelacznik ++ ;   break;          
  1212.           case  89  :                                   przelacznik ++ ;   break;          
  1213.           case  90  :                                   przelacznik ++ ;   break;          
  1214.           case  91  :                                   przelacznik ++ ;   break;          
  1215.           case  92  :                                   przelacznik ++ ;   break;          
  1216.           case  93  :                                   przelacznik ++ ;   break;          
  1217.           case  94  :                                   przelacznik ++ ;   break;          
  1218.           case  95  :                                   przelacznik ++ ;   break;          
  1219.           case  96  :                                   przelacznik ++ ;   break;          
  1220.           case  97  :                                   przelacznik ++ ;   break;          
  1221.           case  98  :                                   przelacznik ++ ;   break;          
  1222.           case  99  :                                   przelacznik ++ ;   break;                  
  1223.           case  100 :   ShowRandomSprite("ESP32");      przelacznik =0 ;   break;     // nie idź dalej, reszta warunków dla zdarzeń        
  1224.                    
  1225.           case  101 :   Scroll2Left(BPrzekaznik);      
  1226.                         F_Przekaznik = false;          
  1227.                         F_MaxDemo = true;              
  1228.                         przelacznik = 0;                                   break;
  1229.           default   :                                   przelacznik = 0;   break;                                        
  1230.       }          
  1231.     }
  1232. }
  1233.  
  1234. //
  1235. // ------------------------------------------------------------------------------------------------------------- //
  1236. // ---   M E T O D Y   P U B L I C Z N E                                                                     --- //
  1237. // ------------------------------------------------------------------------------------------------------------- //
  1238. // ---   Pokaz wiadomość - scroll w lewo                                                                     --- //
  1239. // ------------------------------------------------------------------------------------------------------------- //
  1240. //
  1241.  
  1242. void MAX::ShowMsg2Left(char * msg)
  1243. {
  1244.     Scroll2Left(msg);
  1245. }
  1246.  
Add Comment
Please, Sign In to add comment