PowerTGS440

max.h dla ESP32 v0.21

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