Advertisement
PowerTGS440

max.h dla ESP32 v0.14

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