PowerTGS440

max.h dla ESP32 v0.11

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