PowerTGS440

Untitled

Mar 23rd, 2021 (edited)
228
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 160.23 KB | None | 0 0
  1. // ------------------------------------------------------------------------------------------------------------- //
  2. // file : matryca.h //
  3. // version : 0.040 BETA - PRO //
  4. // //
  5. // autor : Tomasz Majcher (TRANSLINE GROUP) //
  6. // //
  7. // licencja: FREEWARE //
  8. // //
  9. // //
  10. // ------------------------------------------------------------------------------------------------------------- //
  11. // //
  12. // T R A N S L I N E L U B I N T o m a s z M a j c h e r //
  13. // //
  14. // ------------------------------------------------------------------------------------------------------------- //
  15. // //
  16. // Ciężki i specjalistyczny transport drogowy rzeczy (silosy, wywrotki - alumuldy) //
  17. // //
  18. // Logistyka i sprzedaż kruszyw : bazalt, granit, pospółki żwirowe, żwir, piasek //
  19. // //
  20. // Serwis pojazdów ciężarowych i naczep //
  21. // //
  22. // Automatyka przemysłowa, programowania urządzeń przemysłowych, oprogramowanie przemysłowe //
  23. // //
  24. // ------------------------------------------------------------------------------------------------------------- //
  25. // --- class Matryca --- version. ESP --- //
  26. // ------------------------------------------------------------------------------------------------------------- //
  27. // //
  28. // klasa zbudowana dla urządzeń ESP2886 i ESP32 //
  29. // build start : 13.02.2021 //
  30. // licencja : NOT FOR SALE !!! FOR HOME USE ONLY !!! //
  31. //
  32. // ------------------------------------------------------------------------------------------------------------- //
  33. // --- H I S T O R Y L O G --- //
  34. // ------------------------------------------------------------------------------------------------------------- //
  35. // //
  36. // v0.040 - Weekend (14.03.2021) --- dodano : obsługa [ MEM PROG 342304 / MEM RAM 40488 ] //
  37. // v0.039 - Friday Tab (14.03.2021) --- dodano : FRIDAY_MSG [ MEM PROG 342176 / MEM RAM 40456 ] //
  38. // v0.038 - Thursday Tab (14.03.2021) --- dodano : THURSDAY_MSG [ MEM PROG 341188 / MEM RAM 39548 ] //
  39. // v0.037 - Wednesday Tab (14.03.2021) --- dodano : WEDNESDAY_MSG [ MEM PROG 340180 / MEM RAM 38636 ]//
  40. // v0.036 - Tuesday Tab (14.03.2021) --- dodano : TUESDAY_MSG [ MEM PROG 339224 / MEM RAM 37736 ] //
  41. // v0.035 - Monday Tab (14.03.2021) --- dodano : MONDAY_MSG [ MEM PROG 338216 / MEM RAM 36824 ] //
  42. // v0.034 - Fast Build (14.03.2021) --- dodano : ShowDayMsg() //
  43. // v0.033 - Fast Build (14.03.2021) --- dodano : Day_MSG_Set(); --- PRIVATE ----------------- //
  44. // v0.032 - Saturday Day (14.03.2021) --- dodano : RandomDemo v2 //
  45. // v0.031 - Saturday Time (14.03.2021) --- dodano : ShowSaturdayMsg(); //
  46. // v0.030 - Sunday Time (14.03.2021) --- dodano : ShowSundayMsg(); //
  47. // v0.029 - Time To School (14.03.2021) --- dodano : ShowLesson(const char *przedmiot); //
  48. // v0.028 - BIG REBUILD v3 (13.03.2021) --- nowe cyfry (DUŻE, NORMALNE, MAŁE) //
  49. // v0.027 - BIG REBUILD v2 (13.03.2021) --- przebudowa klasy //
  50. // v0.026 - BIG REBUILD v1 (12.03.2021) --- przebudowa klasy //
  51. // v0.025 - EXTENDER SHOW --- dodano : Time_EXMSG_Show() --- metoda prywatna --- //
  52. // v0.024 - EXTENDED MESSAGE :-) --- dodano : tablica wiadomosci czasowych (time message) --- //
  53. // v0.023 - MEM --- dodano : ShomMem(); --- metoda publiczna --- //
  54. // v0.022 - CPU --- dodano : ShowCpu(); --- metoda publiczna --- //
  55. // v0.021 - weather update no. 4 --- dodano : ShowVisibility(); --- metoda publiczna --- //
  56. // v0.020 - weather update no. 3 --- dodano : ShowClouds(); --- metoda publiczna --- //
  57. // v0.019 - weather update no. 2 --- dodano : ShowSunset(); --- metoda publiczna --- //
  58. // v0.018 - weather update no. 1 --- dodano : ShowSunrise(); --- metoda publiczna --- //
  59. // v0.017 - monday afrernoon no. 5 --- dodano : ShowWind(); --- metoda publiczna --- //
  60. // v0.016 - monday afternoon no. 4 --- dodano : ShowHumidity(); --- metoda publiczna --- //
  61. // v0.015 - monday afternoon no. 3 --- dodano : ShowPressure(); --- metoda publiczna --- //
  62. // v0.014 - monday afternoon no. 2 --- dodano : ShowTemperature(); --- metoda publiczna --- //
  63. // v0.013 - monday afternoon no. 1 --- dodano : Time2Char(,,,) --- metoda publiczna --- //
  64. // v0.012 - monday morning no. 5 --- dodano : ShowShortTime(); --- metoda publiczna --- //
  65. // v0.011 - monday morning no. 4 --- dodano : Time2Char(,,); --- metoda publiczna --- //
  66. // v0.010 - monday morning no. 3 --- dodano : Date2Char(,,,); --- metoda publiczna --- //
  67. // v0.009 - monday morning no. 2 --- dodano : ShowShortDate(); --- metoda publiczna --- //
  68. // v0.008 - monday morning no. 1 --- dodano : ShowLongDate(); --- metoda publiczna --- //
  69. // v0.007 - frosty Sunday no. 7 --- dodano : Generator liczb losowych ESP8266TrueRandom --- //
  70. // v0.006 - frosty Sunday no. 6 --- dodano : RandomDemo(); --- metoda publiczna --- //
  71. // v0.005 - frosty Sunday no. 5 --- dodano : EffectDemo(); --- metoda publiczna --- //
  72. // v0.004 - frosty Sunday no. 4 --- dodano : SpriteDemo(); --- metoda publiczna --- //
  73. // v0.003 - frosty Sunday no. 3 --- IMPORT : EFFECT --- //
  74. // v0.002 - frosty Sunday no. 2 --- IMPORT : SPRITE --- //
  75. // v0.001 - frosty Sunday no. 1 --- dodano : Matryca Class --- klasa główna --- //
  76. // ------------------------------------------------------------------------------------------------------------- //
  77. // --- I N C L U D E --- //
  78. // ------------------------------------------------------------------------------------------------------------- //
  79.  
  80. #include <ESP8266WiFi.h>
  81. #include <Arduino.h>
  82. #include <MD_Parola.h>
  83. #include <MD_MAX72xx.h>
  84. #include "ESP8266TrueRandom.h"
  85.  
  86. // ------------------------------------------------------------------------------------------------------------- //
  87. // --- D E F I N E --- //
  88. // ------------------------------------------------------------------------------------------------------------- //
  89.  
  90. #define TRUE 1
  91. #define FALSE 0
  92. #define TERMINAL 1 // 0 - wyłącz SERIAL, 1 - włącz SERIAL
  93. #define USBSPEED 57600 // 57600 - prędkość Terminala szeregowego
  94. #define DEBUG_LEV_1 TRUE // deklaracja i definicja DEBUG'era Level 1
  95. #define DEBUG_LEV_2 TRUE // deklaracja i definicja DEBUG'era Level 2
  96.  
  97. //
  98. // ------------------------------------------------------------------------------------------------------------- //
  99. // --- D E F I N E --- jeśli LANGUAGE jest 0 to język Polski, jeśli LANGUAGE jest 1 to język ANGIELSKI --- //
  100. // ------------------------------------------------------------------------------------------------------------- // <--- L A N G U A G E
  101.  
  102. #define LANGUAGE 0 // jeśli LANGUAGE jest zdefiniowane jako 0
  103. // to kolejne warunki dla makra przestawiają
  104. #if LANGUAGE // język ma Polski (wybrane zmienne i stałe)
  105. #define POLISH 0 //
  106. #define ENGLISH 1 // jeśli LANGUAGE jest zdefiniowane jako 1
  107. #else // to kolejne warunki dla makra przestawiają
  108. #define POLISH 1 // język na angielski (jak wyżej)
  109. #define ENGLISH 0 //
  110. #endif
  111.  
  112. extern Tools tools;
  113.  
  114. // ------------------------------------------------------------------------------------------------------------- //
  115. // M E S S E G E D E F I N I T I O N ------------------------------------------------------------------------- //
  116. // ------------------------------------------------------------------------------------------------------------- //
  117. // Moje napisy do wyświetlenia --------------------------------------------------------------------------------- //
  118. // ------------------------------------------------------------------------------------------------------------- //
  119.  
  120. const char MSG_00 [] = "ESP8266";
  121. const char MSG_01 [] = "M A R C I N";
  122. const char MSG_02 [] = "MARCIN SCP!";
  123. const char MSG_03 [] = "S C P" ;
  124. const char MSG_04 [] = "ESP32";
  125. const char MSG_05 [] = "T O M E K";
  126. const char MSG_06 [] = "S Y L W I A";
  127. const char MSG_07 [] = "HELLO MARCIN";
  128. const char MSG_08 [] = "Wiktoria";
  129. const char MSG_09 [] = "MINECRAFT";
  130. const char MSG_10 [] = "C++ CODE";
  131. const char MSG_11 [] = "W I K I";
  132. const char MSG_12 [] = "D I A B L O";
  133. const char MSG_13 [] = "I Love You";
  134. const char MSG_14 [] = "HELLO TOMEK";
  135. const char MSG_15 [] = "Go Marcin !";
  136. const char MSG_16 [] = "I'm a Coder";
  137. const char MSG_17 [] = "You Win";
  138. const char MSG_18 [] = "Booom !!!";
  139. const char MSG_19 [] = "ESP Rulez";
  140. const char MSG_20 [] = "CPU 160Mhz";
  141. const char MSG_21 [] = "Multi-Task";
  142. const char MSG_22 [] = "Multi-Core";
  143. const char MSG_23 [] = "I Love You";
  144.  
  145. const char * const MSG [] =
  146. {
  147. MSG_00, MSG_01, MSG_02, MSG_03, MSG_04, MSG_05,
  148. MSG_06, MSG_07, MSG_08, MSG_09, MSG_10, MSG_11,
  149. MSG_12, MSG_13, MSG_14, MSG_15, MSG_16, MSG_17,
  150. MSG_18, MSG_19, MSG_20, MSG_21, MSG_22, MSG_23
  151. };
  152.  
  153. // ------------------------------------------------------------------------------------------------------------- //
  154. // S P R I T E D E F I N I T I O N --------------------------------------------------------------------------- //
  155. // ------------------------------------------------------------------------------------------------------------- //
  156. // P A C M A N D E F I N I T I O N --------------------------------------------------------------------------- //
  157. // ------------------------------------------------------------------------------------------------------------- //
  158.  
  159. const uint8_t F_PMAN1 = 6;
  160. const uint8_t W_PMAN1 = 8;
  161. static const uint8_t pacman1[F_PMAN1 * W_PMAN1] PROGMEM =
  162. {
  163. 0x00, 0x81, 0xc3, 0xe7, 0xff, 0x7e, 0x7e, 0x3c,
  164. 0x00, 0x42, 0xe7, 0xe7, 0xff, 0xff, 0x7e, 0x3c,
  165. 0x24, 0x66, 0xe7, 0xff, 0xff, 0xff, 0x7e, 0x3c,
  166. 0x3c, 0x7e, 0xff, 0xff, 0xff, 0xff, 0x7e, 0x3c,
  167. 0x24, 0x66, 0xe7, 0xff, 0xff, 0xff, 0x7e, 0x3c,
  168. 0x00, 0x42, 0xe7, 0xe7, 0xff, 0xff, 0x7e, 0x3c,
  169. };
  170. // 293756 / 28612
  171. // ------------------------------------------------------------------------------------------------------------- //
  172. // S P R I T E : W A V E / W O R M D E F I N I T I O N ----------------------------------------------- //
  173. // ------------------------------------------------------------------------------------------------------------- //
  174.  
  175. const uint8_t F_WAVE = 14;
  176. const uint8_t W_WAVE = 14;
  177. static const uint8_t wave [F_WAVE * W_WAVE] PROGMEM =
  178. {
  179. 0x08, 0x04, 0x02, 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80, 0x40, 0x20, 0x10,
  180. 0x10, 0x08, 0x04, 0x02, 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80, 0x40, 0x20,
  181. 0x20, 0x10, 0x08, 0x04, 0x02, 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80, 0x40,
  182. 0x40, 0x20, 0x10, 0x08, 0x04, 0x02, 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80,
  183. 0x80, 0x40, 0x20, 0x10, 0x08, 0x04, 0x02, 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40,
  184. 0x40, 0x80, 0x40, 0x20, 0x10, 0x08, 0x04, 0x02, 0x01, 0x02, 0x04, 0x08, 0x10, 0x20,
  185. 0x20, 0x40, 0x80, 0x40, 0x20, 0x10, 0x08, 0x04, 0x02, 0x01, 0x02, 0x04, 0x08, 0x10,
  186. 0x10, 0x20, 0x40, 0x80, 0x40, 0x20, 0x10, 0x08, 0x04, 0x02, 0x01, 0x02, 0x04, 0x08,
  187. 0x08, 0x10, 0x20, 0x40, 0x80, 0x40, 0x20, 0x10, 0x08, 0x04, 0x02, 0x01, 0x02, 0x04,
  188. 0x04, 0x08, 0x10, 0x20, 0x40, 0x80, 0x40, 0x20, 0x10, 0x08, 0x04, 0x02, 0x01, 0x02,
  189. 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80, 0x40, 0x20, 0x10, 0x08, 0x04, 0x02, 0x01,
  190. 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80, 0x40, 0x20, 0x10, 0x08, 0x04, 0x02,
  191. 0x02, 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80, 0x40, 0x20, 0x10, 0x08, 0x04,
  192. 0x04, 0x02, 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80, 0x40, 0x20, 0x10, 0x08,
  193. };
  194.  
  195. // ------------------------------------------------------------------------------------------------------------- //
  196. // S P R I T E : G H O S T D E F I N I T I O N ----------------------------------------------------------- //
  197. // ------------------------------------------------------------------------------------------------------------- //
  198.  
  199. const uint8_t F_PMAN2 = 6;
  200. const uint8_t W_PMAN2 = 18;
  201. static const uint8_t pacman2[F_PMAN2 * W_PMAN2] PROGMEM =
  202. {
  203. 0x00, 0x81, 0xc3, 0xe7, 0xff, 0x7e, 0x7e, 0x3c, 0x00, 0x00, 0x00, 0xfe, 0x7b, 0xf3, 0x7f, 0xfb, 0x73, 0xfe,
  204. 0x00, 0x42, 0xe7, 0xe7, 0xff, 0xff, 0x7e, 0x3c, 0x00, 0x00, 0x00, 0xfe, 0x7b, 0xf3, 0x7f, 0xfb, 0x73, 0xfe,
  205. 0x24, 0x66, 0xe7, 0xff, 0xff, 0xff, 0x7e, 0x3c, 0x00, 0x00, 0x00, 0xfe, 0x7b, 0xf3, 0x7f, 0xfb, 0x73, 0xfe,
  206. 0x3c, 0x7e, 0xff, 0xff, 0xff, 0xff, 0x7e, 0x3c, 0x00, 0x00, 0x00, 0xfe, 0x73, 0xfb, 0x7f, 0xf3, 0x7b, 0xfe,
  207. 0x24, 0x66, 0xe7, 0xff, 0xff, 0xff, 0x7e, 0x3c, 0x00, 0x00, 0x00, 0xfe, 0x73, 0xfb, 0x7f, 0xf3, 0x7b, 0xfe,
  208. 0x00, 0x42, 0xe7, 0xe7, 0xff, 0xff, 0x7e, 0x3c, 0x00, 0x00, 0x00, 0xfe, 0x73, 0xfb, 0x7f, 0xf3, 0x7b, 0xfe,
  209. };
  210.  
  211. // ------------------------------------------------------------------------------------------------------------- //
  212. // 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 --------------------------------- //
  213. // ------------------------------------------------------------------------------------------------------------- //
  214.  
  215. const uint8_t F_ROLL1 = 4;
  216. const uint8_t W_ROLL1 = 8;
  217. static const uint8_t roll1[F_ROLL1 * W_ROLL1] PROGMEM =
  218. {
  219. 0xff, 0x8f, 0x8f, 0x8f, 0x81, 0x81, 0x81, 0xff,
  220. 0xff, 0xf1, 0xf1, 0xf1, 0x81, 0x81, 0x81, 0xff,
  221. 0xff, 0x81, 0x81, 0x81, 0xf1, 0xf1, 0xf1, 0xff,
  222. 0xff, 0x81, 0x81, 0x81, 0x8f, 0x8f, 0x8f, 0xff,
  223. };
  224.  
  225. // ------------------------------------------------------------------------------------------------------------- //
  226. // 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 --------------------------------- //
  227. // ------------------------------------------------------------------------------------------------------------- //
  228.  
  229. const uint8_t F_ROLL2 = 4;
  230. const uint8_t W_ROLL2 = 8;
  231. static const uint8_t roll2 [F_ROLL2 * W_ROLL2] PROGMEM =
  232. {
  233. 0x3c, 0x4e, 0x8f, 0x8f, 0x81, 0x81, 0x42, 0x3c,
  234. 0x3c, 0x72, 0xf1, 0xf1, 0x81, 0x81, 0x42, 0x3c,
  235. 0x3c, 0x42, 0x81, 0x81, 0xf1, 0xf1, 0x72, 0x3c,
  236. 0x3c, 0x42, 0x81, 0x81, 0x8f, 0x8f, 0x4e, 0x3c,
  237. };
  238.  
  239. // ------------------------------------------------------------------------------------------------------------- //
  240. // 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 ----------------------------------------- //
  241. // ------------------------------------------------------------------------------------------------------------- //
  242.  
  243. const uint8_t F_LINES = 3;
  244. const uint8_t W_LINES = 8;
  245. static const uint8_t lines [F_LINES * W_LINES] PROGMEM =
  246. {
  247. 0xff, 0xff, 0xff, 0x00, 0x00, 0xff, 0x00, 0x00,
  248. 0xff, 0xff, 0x00, 0xff, 0x00, 0x00, 0xff, 0x00,
  249. 0xff, 0xff, 0x00, 0x00, 0xff, 0x00, 0x00, 0xff,
  250. };
  251.  
  252. // ------------------------------------------------------------------------------------------------------------- //
  253. // 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 ---------------------------------------- //
  254. // ------------------------------------------------------------------------------------------------------------- //
  255.  
  256. const uint8_t F_ARROW1 = 3;
  257. const uint8_t W_ARROW1 = 10;
  258. static const uint8_t arrow1 [F_ARROW1 * W_ARROW1] PROGMEM =
  259. {
  260. 0x18, 0x3c, 0x7e, 0xff, 0x7e, 0x00, 0x00, 0x3c, 0x00, 0x00,
  261. 0x18, 0x3c, 0x7e, 0xff, 0x00, 0x7e, 0x00, 0x00, 0x18, 0x00,
  262. 0x18, 0x3c, 0x7e, 0xff, 0x00, 0x00, 0x3c, 0x00, 0x00, 0x18,
  263. };
  264.  
  265. // ------------------------------------------------------------------------------------------------------------- //
  266. // 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 ----------------------- //
  267. // ------------------------------------------------------------------------------------------------------------- //
  268.  
  269. const uint8_t F_ARROW2 = 3;
  270. const uint8_t W_ARROW2 = 9;
  271. static const uint8_t arrow2 [F_ARROW2 * W_ARROW2] PROGMEM =
  272. {
  273. 0x18, 0x3c, 0x7e, 0xe7, 0x00, 0x00, 0xc3, 0x00, 0x00,
  274. 0x18, 0x3c, 0x7e, 0xe7, 0xe7, 0x00, 0x00, 0x81, 0x00,
  275. 0x18, 0x3c, 0x7e, 0xe7, 0x00, 0xc3, 0x00, 0x00, 0x81,
  276. };
  277.  
  278. // ------------------------------------------------------------------------------------------------------------- //
  279. // 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 -------------------------------------- //
  280. // ------------------------------------------------------------------------------------------------------------- //
  281.  
  282. const uint8_t F_SAILBOAT = 1;
  283. const uint8_t W_SAILBOAT = 11;
  284. static const uint8_t sailboat[F_SAILBOAT * W_SAILBOAT] PROGMEM =
  285. {
  286. 0x10, 0x30, 0x58, 0x94, 0x92, 0x9f, 0x92, 0x94, 0x98, 0x50, 0x30,
  287. };
  288.  
  289. // ------------------------------------------------------------------------------------------------------------- //
  290. // 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 -------------------------------------- //
  291. // ------------------------------------------------------------------------------------------------------------- //
  292.  
  293. const uint8_t F_STEAMBOAT = 2;
  294. const uint8_t W_STEAMBOAT = 11;
  295. const uint8_t steamboat[F_STEAMBOAT * W_STEAMBOAT] PROGMEM =
  296. {
  297. 0x10, 0x30, 0x50, 0x9c, 0x9e, 0x90, 0x91, 0x9c, 0x9d, 0x90, 0x71,
  298. 0x10, 0x30, 0x50, 0x9c, 0x9c, 0x91, 0x90, 0x9d, 0x9e, 0x91, 0x70,
  299. };
  300.  
  301. // ------------------------------------------------------------------------------------------------------------- //
  302. // S P R I T E : H E A R T D E F I N I T I O N ------------------------------------------------------- //
  303. // ------------------------------------------------------------------------------------------------------------- //
  304.  
  305. const uint8_t F_HEART = 5;
  306. const uint8_t W_HEART = 9;
  307. static const uint8_t heart[F_HEART * W_HEART] PROGMEM =
  308. {
  309. 0x0e, 0x11, 0x21, 0x42, 0x84, 0x42, 0x21, 0x11, 0x0e,
  310. 0x0e, 0x1f, 0x33, 0x66, 0xcc, 0x66, 0x33, 0x1f, 0x0e,
  311. 0x0e, 0x1f, 0x3f, 0x7e, 0xfc, 0x7e, 0x3f, 0x1f, 0x0e,
  312. 0x0e, 0x1f, 0x33, 0x66, 0xcc, 0x66, 0x33, 0x1f, 0x0e,
  313. 0x0e, 0x11, 0x21, 0x42, 0x84, 0x42, 0x21, 0x11, 0x0e,
  314. };
  315.  
  316. // ------------------------------------------------------------------------------------------------------------- //
  317. // 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 --------------------------- //
  318. // ------------------------------------------------------------------------------------------------------------- //
  319.  
  320. const uint8_t F_INVADER = 2;
  321. const uint8_t W_INVADER = 10;
  322. static const uint8_t invader[F_INVADER * W_INVADER] PROGMEM =
  323. {
  324. 0x0e, 0x98, 0x7d, 0x36, 0x3c, 0x3c, 0x36, 0x7d, 0x98, 0x0e,
  325. 0x70, 0x18, 0x7d, 0xb6, 0x3c, 0x3c, 0xb6, 0x7d, 0x18, 0x70,
  326. };
  327.  
  328. // ------------------------------------------------------------------------------------------------------------- //
  329. // 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 ------------------------------- //
  330. // ------------------------------------------------------------------------------------------------------------- //
  331.  
  332. const uint8_t F_ROCKET = 2;
  333. const uint8_t W_ROCKET = 11;
  334. static const uint8_t rocket[F_ROCKET * W_ROCKET] PROGMEM =
  335. {
  336. 0x18, 0x24, 0x42, 0x81, 0x99, 0x18, 0x99, 0x18, 0xa5, 0x5a, 0x81,
  337. 0x18, 0x24, 0x42, 0x81, 0x18, 0x99, 0x18, 0x99, 0x24, 0x42, 0x99,
  338. };
  339.  
  340. // ------------------------------------------------------------------------------------------------------------- //
  341. // S P R I T E : F I R E B A L L D E F I N I T I O N ------------------------------------------------- //
  342. // ------------------------------------------------------------------------------------------------------------- //
  343.  
  344. const uint8_t F_FBALL = 2;
  345. const uint8_t W_FBALL = 11;
  346. static const uint8_t fireball[F_FBALL * W_FBALL] PROGMEM =
  347. {
  348. 0x7e, 0xab, 0x54, 0x28, 0x52, 0x24, 0x40, 0x18, 0x04, 0x10, 0x08,
  349. 0x7e, 0xd5, 0x2a, 0x14, 0x24, 0x0a, 0x30, 0x04, 0x28, 0x08, 0x10,
  350. };
  351.  
  352. // ------------------------------------------------------------------------------------------------------------- //
  353. // S P R I T E : C H E V R O N D E F I N I T I O N --------------------------------------------------- //
  354. // ------------------------------------------------------------------------------------------------------------- //
  355.  
  356. const uint8_t F_CHEVRON = 1;
  357. const uint8_t W_CHEVRON = 9;
  358. static const uint8_t chevron[F_CHEVRON * W_CHEVRON] PROGMEM =
  359. {
  360. 0x18, 0x3c, 0x66, 0xc3, 0x99, 0x3c, 0x66, 0xc3, 0x81,
  361. };
  362.  
  363. // ------------------------------------------------------------------------------------------------------------- //
  364. // 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 ----------------------------------------- //
  365. // ------------------------------------------------------------------------------------------------------------- //
  366.  
  367. const uint8_t F_WALKER = 5;
  368. const uint8_t W_WALKER = 7;
  369. static const uint8_t walker[F_WALKER * W_WALKER] PROGMEM =
  370. {
  371. 0x00, 0x48, 0x77, 0x1f, 0x1c, 0x94, 0x68,
  372. 0x00, 0x90, 0xee, 0x3e, 0x38, 0x28, 0xd0,
  373. 0x00, 0x00, 0xae, 0xfe, 0x38, 0x28, 0x40,
  374. 0x00, 0x00, 0x2e, 0xbe, 0xf8, 0x00, 0x00,
  375. 0x00, 0x10, 0x6e, 0x3e, 0xb8, 0xe8, 0x00,
  376. };
  377.  
  378. // ------------------------------------------------------------------------------------------------------------- //
  379. // 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 ------------------------------ //
  380. // ------------------------------------------------------------------------------------------------------------- //
  381.  
  382. struct Sprite
  383. {
  384. const uint8_t *data;
  385. uint8_t width;
  386. uint8_t frames;
  387. };
  388.  
  389. Sprite sprite[] = {
  390. { walker, W_WALKER, F_WALKER },
  391. { invader, W_INVADER, F_INVADER },
  392. { chevron, W_CHEVRON, F_CHEVRON },
  393. { heart, W_HEART, F_HEART },
  394. { arrow1, W_ARROW1, F_ARROW1 },
  395. { steamboat, W_STEAMBOAT, F_STEAMBOAT },
  396. { fireball, W_FBALL, F_FBALL },
  397. { rocket, W_ROCKET, F_ROCKET },
  398. { roll2, W_ROLL2, F_ROLL2 },
  399. { pacman2, W_PMAN2, F_PMAN2 },
  400. { lines, W_LINES, F_LINES },
  401. { roll1, W_ROLL1, F_ROLL1 },
  402. { sailboat, W_SAILBOAT, F_SAILBOAT },
  403. { arrow2, W_ARROW2, F_ARROW2 },
  404. { wave, W_WAVE, F_WAVE },
  405. { pacman1, W_PMAN1, F_PMAN1 }
  406. };
  407.  
  408. // ------------------------------------------------------------------------------------------------------------- //
  409. // --- K A T A L O G E F E K T Ó W --- //
  410. // ------------------------------------------------------------------------------------------------------------- //
  411.  
  412. struct Effect
  413. {
  414. textEffect_t effect;
  415. uint16_t speed;
  416. uint16_t pause;
  417. }
  418.  
  419. efekt [] =
  420. {
  421. { PA_PRINT, 1, 1 },
  422. { PA_SCROLL_UP, 5, 1 },
  423. { PA_SCROLL_DOWN, 5, 1 },
  424. { PA_SCROLL_LEFT, 5, 1 },
  425. { PA_SCROLL_RIGHT, 5, 1 },
  426. { PA_SPRITE, 5, 1 },
  427. { PA_SLICE, 1, 1 },
  428. { PA_MESH, 20, 1 },
  429. { PA_FADE, 20, 1 },
  430. { PA_DISSOLVE, 7, 1 },
  431. { PA_BLINDS, 7, 1 },
  432. { PA_RANDOM, 3, 1 },
  433. { PA_WIPE, 5, 1 },
  434. { PA_WIPE_CURSOR, 4, 1 },
  435. { PA_SCAN_HORIZ, 4, 1 },
  436. { PA_SCAN_HORIZX, 4, 1 },
  437. { PA_SCAN_VERT, 3, 1 },
  438. { PA_SCAN_VERTX, 3, 1 },
  439. { PA_OPENING, 3, 1 },
  440. { PA_OPENING_CURSOR, 4, 1 },
  441. { PA_CLOSING, 3, 1 },
  442. { PA_CLOSING_CURSOR, 4, 1 },
  443. { PA_SCROLL_UP_LEFT, 7, 1 },
  444. { PA_SCROLL_UP_RIGHT, 7, 1 },
  445. { PA_SCROLL_DOWN_LEFT, 7, 1 },
  446. { PA_SCROLL_DOWN_RIGHT, 7, 1 },
  447. { PA_GROW_UP, 7, 1 },
  448. { PA_GROW_DOWN, 7, 1 }
  449. };
  450.  
  451. // ------------------------------------------------------------------------------------------------------------- //
  452. // ALL MATRIX DAY to PROGMEM MEMORY !!! ------------------------------------------------------------------------ //
  453. // ------------------------------------------------------------------------------------------------------------- //
  454. // jeśli POLISH jest true / if POLISH is true ------------------------------------------------------------------ //
  455.  
  456. #if POLISH
  457. const char DAY_00 [] = "Niedziela";
  458. const char DAY_01 [] = "Poniedzialek";
  459. const char DAY_02 [] = "Wtorek";
  460. const char DAY_03 [] = "Sroda";
  461. const char DAY_04 [] = "Czwartek";
  462. const char DAY_05 [] = "Piatek";
  463. const char DAY_06 [] = "Sobota";
  464. const char DAY_07 [] = "Data: ";
  465. #endif
  466. // ------------------------------------------------------------------------------------------------------------- //
  467. #if ENGLISH
  468. const char DAY_00 [] = "Sunday";
  469. const char DAY_01 [] = "Monday";
  470. const char DAY_02 [] = "Tuesday";
  471. const char DAY_03 [] = "Wednesday";
  472. const char DAY_04 [] = "Thursday";
  473. const char DAY_05 [] = "Friday";
  474. const char DAY_06 [] = "Saturday";
  475. const char DAY_07 [] = "Date: ";
  476. #endif
  477.  
  478. const char * DAY [] =
  479. {
  480. DAY_00, DAY_01, DAY_02, DAY_03, DAY_04, DAY_05,
  481. DAY_06, DAY_07
  482. };
  483.  
  484. // ------------------------------------------------------------------------------------------------------------- //
  485. // M O N T H / M I E S I Ą C E //
  486. // ------------------------------------------------------------------------------------------------------------- //
  487.  
  488. #if POLISH
  489. const char MONTH_00 [] = "Error"; //
  490. const char MONTH_01 [] = "Styczen"; //
  491. const char MONTH_02 [] = "Luty"; //
  492. const char MONTH_03 [] = "Marzec"; //
  493. const char MONTH_04 [] = "Kwiecien"; //
  494. const char MONTH_05 [] = "Maj"; //
  495. const char MONTH_06 [] = "Czerwiec"; //
  496. const char MONTH_07 [] = "Lipiec"; //
  497. const char MONTH_08 [] = "Sierpien"; //
  498. const char MONTH_09 [] = "Wrzesien"; //
  499. const char MONTH_10 [] = "Pazdziernik"; //
  500. const char MONTH_11 [] = "Listopad"; //
  501. const char MONTH_12 [] = "Grudzien"; //
  502. #endif
  503.  
  504. // --- ENGLISH MONTH is LANGUAGE is true --- angielskie miesiące jeśli makro LANGUAGE jest TRUE ---------------- //
  505. //
  506. #if ENGLISH
  507. const char MONTH_00 [] = "No Month"; // 0 = no month --- //
  508. const char MONTH_01 [] = "January"; // 1 = january --- //
  509. const char MONTH_02 [] = "February"; // 2 = february --- //
  510. const char MONTH_03 [] = "March"; // 3 = march --- //
  511. const char MONTH_04 [] = "April"; // 4 = april --- //
  512. const char MONTH_05 [] = "May"; // 5 = may --- //
  513. const char MONTH_06 [] = "June"; // 6 = june --- //
  514. const char MONTH_07 [] = "July"; // 7 = july --- //
  515. const char MONTH_08 [] = "August"; // 8 = august --- //
  516. const char MONTH_09 [] = "September"; // 9 = september --- //
  517. const char MONTH_10 [] = "October"; // 10= october --- //
  518. const char MONTH_11 [] = "November"; // 11= november --- //
  519. const char MONTH_12 [] = "December"; // 12= december --- //
  520. #endif
  521.  
  522. const char* const MONTH [] = {
  523. MONTH_00, MONTH_01, MONTH_02, MONTH_03, MONTH_04, MONTH_05, MONTH_06,
  524. MONTH_07, MONTH_08, MONTH_09, MONTH_10, MONTH_11, MONTH_12
  525. };
  526.  
  527. // ------------------------------------------------------------------------------------------------------------- //
  528. // S M I E S Z N E T E K S T Y N A P O N I E D Z I A L E K USED [ MEM PROG 336980 / MEM RAM 35796 ] //
  529. // USED [ MEM PROG 336976 / MEM RAM 35808 ] //
  530. // ------------------------------------------------------------------------------------------------------------- //
  531.  
  532. const char MONDAY_MSG_00 [] = "Mozg to nie brwi, jak nie masz to nie narysujesz";
  533. const char MONDAY_MSG_01 [] = "Zamkneli wszystkie tereny zielone, zostala tylko Biedronka, Zabka i Stokrotka";
  534. const char MONDAY_MSG_02 [] = "To ja sobie tu zaczekam, az zmadrzejesz";
  535. const char MONDAY_MSG_03 [] = "Naprawde moge czegos chciec";
  536. const char MONDAY_MSG_04 [] = "Jestes super, tak ty, nie rozgladaj sie";
  537. const char MONDAY_MSG_05 [] = "Bycie madrym jest nie smieszne";
  538. const char MONDAY_MSG_06 [] = "Wszystko na co mam ochote, jest niemoralne, nielegalne albo powoduje tycie";
  539. const char MONDAY_MSG_07 [] = "Dzem dobry";
  540. const char MONDAY_MSG_08 [] = "Plan na dzis, kombinowac by sil starczylo do piatku";
  541. const char MONDAY_MSG_09 [] = "Kto sie kawa z rana poi, temu badyl ciagle stoi";
  542. const char MONDAY_MSG_10 [] = "Ochoto co robienia czegos co ma sens przybywaj";
  543. const char MONDAY_MSG_11 [] = "ABC Absolutny Brak Checi";
  544. const char MONDAY_MSG_12 [] = "Zara szlak mnie trafi";
  545. const char MONDAY_MSG_13 [] = "Nie lubie poniedzialkow";
  546. const char MONDAY_MSG_14 [] = "Czy moge zaczas jeszcze raz bo jakos mi nie wyszlo";
  547. const char MONDAY_MSG_15 [] = "Jestem ESP, twoje cyfrowe zwierzatka";
  548. const char MONDAY_MSG_16 [] = "Cwicze, bo lubie jesc";
  549. const char MONDAY_MSG_17 [] = "Poniedzialek pokonac trudno, ale starac sie trzeba";
  550. const char MONDAY_MSG_18 [] = "Dom jest tam, gdzie mozna wszystko po swojemu";
  551. const char MONDAY_MSG_19 [] = "Badz jak golab, sraj na wszystko";
  552.  
  553. const char* const MONDAY_MSG [] = {
  554. MONDAY_MSG_00,MONDAY_MSG_01,MONDAY_MSG_02,MONDAY_MSG_03,MONDAY_MSG_04,
  555. MONDAY_MSG_05,MONDAY_MSG_06,MONDAY_MSG_07,MONDAY_MSG_08,MONDAY_MSG_09,
  556. MONDAY_MSG_10,MONDAY_MSG_11,MONDAY_MSG_12,MONDAY_MSG_13,MONDAY_MSG_14,
  557. MONDAY_MSG_15,MONDAY_MSG_16,MONDAY_MSG_17,MONDAY_MSG_18,MONDAY_MSG_19,
  558. };
  559.  
  560. // ------------------------------------------------------------------------------------------------------------- //
  561. // S M I E S Z N E T E K S T Y N A W T O R E K USED [ MEM PROG 338216 / MEM RAM 36824 ] //
  562. // USED [ MEM PROG 339224 / MEM RAM 37736 ] //
  563. // ------------------------------------------------------------------------------------------------------------- //
  564.  
  565. const char TUESDAY_MSG_00 [] = "Mozg to nie brwi, jak nie masz to nie narysujesz";
  566. const char TUESDAY_MSG_01 [] = "Zamkneli wszystkie tereny zielone, zostala tylko Biedronka, Zabka i Stokrotka";
  567. const char TUESDAY_MSG_02 [] = "To ja sobie tu zaczekam, az zmadrzejesz";
  568. const char TUESDAY_MSG_03 [] = "Naprawde moge czegos chciec";
  569. const char TUESDAY_MSG_04 [] = "Jestes super, tak ty, nie rozgladaj sie";
  570. const char TUESDAY_MSG_05 [] = "Bycie madrym jest nie smieszne";
  571. const char TUESDAY_MSG_06 [] = "Wszystko na co mam ochote, jest niemoralne, nielegalne albo powoduje tycie";
  572. const char TUESDAY_MSG_07 [] = "Dzem dobry";
  573. const char TUESDAY_MSG_08 [] = "Plan na dzis, kombinowac by sil starczylo do piatku";
  574. const char TUESDAY_MSG_09 [] = "Kto sie kawa z rana poi, temu badyl ciagle stoi";
  575. const char TUESDAY_MSG_10 [] = "Ochoto co robienia czegos co ma sens przybywaj";
  576. const char TUESDAY_MSG_11 [] = "ABC Absolutny Brak Checi";
  577. const char TUESDAY_MSG_12 [] = "Zara szlak mnie trafi";
  578. const char TUESDAY_MSG_13 [] = "Nie lubie poniedzialkow";
  579. const char TUESDAY_MSG_14 [] = "Czy moge zaczas jeszcze raz bo jakos mi nie wyszlo";
  580. const char TUESDAY_MSG_15 [] = "Jestem ESP, twoje cyfrowe zwierzatka";
  581. const char TUESDAY_MSG_16 [] = "Cwicze, bo lubie jesc";
  582. const char TUESDAY_MSG_17 [] = "Poniedzialek pokonac trudno, ale starac sie trzeba";
  583. const char TUESDAY_MSG_18 [] = "Dom jest tam, gdzie mozna wszystko po swojemu";
  584. const char TUESDAY_MSG_19 [] = "Badz jak golab, sraj na wszystko";
  585.  
  586. const char* const TUESDAY_MSG [] = {
  587. TUESDAY_MSG_00,TUESDAY_MSG_01,TUESDAY_MSG_02,TUESDAY_MSG_03,TUESDAY_MSG_04,
  588. TUESDAY_MSG_05,TUESDAY_MSG_06,TUESDAY_MSG_07,TUESDAY_MSG_08,TUESDAY_MSG_09,
  589. TUESDAY_MSG_10,TUESDAY_MSG_11,TUESDAY_MSG_12,TUESDAY_MSG_13,TUESDAY_MSG_14,
  590. TUESDAY_MSG_15,TUESDAY_MSG_16,TUESDAY_MSG_17,TUESDAY_MSG_18,TUESDAY_MSG_19,
  591. };
  592.  
  593. // ------------------------------------------------------------------------------------------------------------- //
  594. // S M I E S Z N E T E K S T Y N A Ś R O D Ę USED [ MEM PROG 339224 / MEM RAM 37738 ] //
  595. // USED [ MEM PROG 340180 / MEM RAM 38636 ] //
  596. // ------------------------------------------------------------------------------------------------------------- //
  597.  
  598. const char WEDNESDAY_MSG_00 [] = "Mozg to nie brwi, jak nie masz to nie narysujesz";
  599. const char WEDNESDAY_MSG_01 [] = "Zamkneli wszystkie tereny zielone, zostala tylko Biedronka, Zabka i Stokrotka";
  600. const char WEDNESDAY_MSG_02 [] = "To ja sobie tu zaczekam, az zmadrzejesz";
  601. const char WEDNESDAY_MSG_03 [] = "Naprawde moge czegos chciec";
  602. const char WEDNESDAY_MSG_04 [] = "Jestes super, tak ty, nie rozgladaj sie";
  603. const char WEDNESDAY_MSG_05 [] = "Bycie madrym jest nie smieszne";
  604. const char WEDNESDAY_MSG_06 [] = "Wszystko na co mam ochote, jest niemoralne, nielegalne albo powoduje tycie";
  605. const char WEDNESDAY_MSG_07 [] = "Dzem dobry";
  606. const char WEDNESDAY_MSG_08 [] = "Plan na dzis, kombinowac by sil starczylo do piatku";
  607. const char WEDNESDAY_MSG_09 [] = "Kto sie kawa z rana poi, temu badyl ciagle stoi";
  608. const char WEDNESDAY_MSG_10 [] = "Ochoto co robienia czegos co ma sens przybywaj";
  609. const char WEDNESDAY_MSG_11 [] = "ABC Absolutny Brak Checi";
  610. const char WEDNESDAY_MSG_12 [] = "Zara szlak mnie trafi";
  611. const char WEDNESDAY_MSG_13 [] = "Nie lubie poniedzialkow";
  612. const char WEDNESDAY_MSG_14 [] = "Czy moge zaczas jeszcze raz bo jakos mi nie wyszlo";
  613. const char WEDNESDAY_MSG_15 [] = "Jestem ESP, twoje cyfrowe zwierzatka";
  614. const char WEDNESDAY_MSG_16 [] = "Cwicze, bo lubie jesc";
  615. const char WEDNESDAY_MSG_17 [] = "Poniedzialek pokonac trudno, ale starac sie trzeba";
  616. const char WEDNESDAY_MSG_18 [] = "Dom jest tam, gdzie mozna wszystko po swojemu";
  617. const char WEDNESDAY_MSG_19 [] = "Badz jak golab, sraj na wszystko";
  618.  
  619. const char* const WEDNESDAY_MSG [] = {
  620. WEDNESDAY_MSG_00,WEDNESDAY_MSG_01,WEDNESDAY_MSG_02,WEDNESDAY_MSG_03,WEDNESDAY_MSG_04,
  621. WEDNESDAY_MSG_05,WEDNESDAY_MSG_06,WEDNESDAY_MSG_07,WEDNESDAY_MSG_08,WEDNESDAY_MSG_09,
  622. WEDNESDAY_MSG_10,WEDNESDAY_MSG_11,WEDNESDAY_MSG_12,WEDNESDAY_MSG_13,WEDNESDAY_MSG_14,
  623. WEDNESDAY_MSG_15,WEDNESDAY_MSG_16,WEDNESDAY_MSG_17,WEDNESDAY_MSG_18,WEDNESDAY_MSG_19,
  624. };
  625. // ------------------------------------------------------------------------------------------------------------- //
  626. // S M I E S Z N E T E K S T Y N A C Z W A R T E K USED [ MEM PROG 340180 / MEM RAM 38636 ] //
  627. // USED [ MEM PROG 341188 / MEM RAM 39548 ] //
  628. // ------------------------------------------------------------------------------------------------------------- //
  629.  
  630. const char THURSDAY_MSG_00 [] = "Mozg to nie brwi, jak nie masz to nie narysujesz";
  631. const char THURSDAY_MSG_01 [] = "Zamkneli wszystkie tereny zielone, zostala tylko Biedronka, Zabka i Stokrotka";
  632. const char THURSDAY_MSG_02 [] = "To ja sobie tu zaczekam, az zmadrzejesz";
  633. const char THURSDAY_MSG_03 [] = "Naprawde moge czegos chciec";
  634. const char THURSDAY_MSG_04 [] = "Jestes super, tak ty, nie rozgladaj sie";
  635. const char THURSDAY_MSG_05 [] = "Bycie madrym jest nie smieszne";
  636. const char THURSDAY_MSG_06 [] = "Wszystko na co mam ochote, jest niemoralne, nielegalne albo powoduje tycie";
  637. const char THURSDAY_MSG_07 [] = "Dzem dobry";
  638. const char THURSDAY_MSG_08 [] = "Plan na dzis, kombinowac by sil starczylo do piatku";
  639. const char THURSDAY_MSG_09 [] = "Kto sie kawa z rana poi, temu badyl ciagle stoi";
  640. const char THURSDAY_MSG_10 [] = "Ochoto co robienia czegos co ma sens przybywaj";
  641. const char THURSDAY_MSG_11 [] = "ABC Absolutny Brak Checi";
  642. const char THURSDAY_MSG_12 [] = "Zara szlak mnie trafi";
  643. const char THURSDAY_MSG_13 [] = "Nie lubie poniedzialkow";
  644. const char THURSDAY_MSG_14 [] = "Czy moge zaczas jeszcze raz bo jakos mi nie wyszlo";
  645. const char THURSDAY_MSG_15 [] = "Jestem ESP, twoje cyfrowe zwierzatka";
  646. const char THURSDAY_MSG_16 [] = "Cwicze, bo lubie jesc";
  647. const char THURSDAY_MSG_17 [] = "Poniedzialek pokonac trudno, ale starac sie trzeba";
  648. const char THURSDAY_MSG_18 [] = "Dom jest tam, gdzie mozna wszystko po swojemu";
  649. const char THURSDAY_MSG_19 [] = "Badz jak golab, sraj na wszystko";
  650.  
  651. const char* const THURSDAY_MSG [] = {
  652. THURSDAY_MSG_00,THURSDAY_MSG_01,THURSDAY_MSG_02,THURSDAY_MSG_03,THURSDAY_MSG_04,
  653. THURSDAY_MSG_05,THURSDAY_MSG_06,THURSDAY_MSG_07,THURSDAY_MSG_08,THURSDAY_MSG_09,
  654. THURSDAY_MSG_10,THURSDAY_MSG_11,THURSDAY_MSG_12,THURSDAY_MSG_13,THURSDAY_MSG_14,
  655. THURSDAY_MSG_15,THURSDAY_MSG_16,THURSDAY_MSG_17,THURSDAY_MSG_18,THURSDAY_MSG_19,
  656. };
  657.  
  658. // ------------------------------------------------------------------------------------------------------------- //
  659. // S M I E S Z N E T E K S T Y N A P I Ą T E K USED [ MEM PROG 341188 / MEM RAM 39548 ] //
  660. // USED [ MEM PROG 342176 / MEM RAM 40456 ] //
  661. // ------------------------------------------------------------------------------------------------------------- //
  662.  
  663. const char FRIDAY_MSG_00 [] = "Mozg to nie brwi, jak nie masz to nie narysujesz";
  664. const char FRIDAY_MSG_01 [] = "Zamkneli wszystkie tereny zielone, zostala tylko Biedronka, Zabka i Stokrotka";
  665. const char FRIDAY_MSG_02 [] = "To ja sobie tu zaczekam, az zmadrzejesz";
  666. const char FRIDAY_MSG_03 [] = "Naprawde moge czegos chciec";
  667. const char FRIDAY_MSG_04 [] = "Jestes super, tak ty, nie rozgladaj sie";
  668. const char FRIDAY_MSG_05 [] = "Bycie madrym jest nie smieszne";
  669. const char FRIDAY_MSG_06 [] = "Wszystko na co mam ochote, jest niemoralne, nielegalne albo powoduje tycie";
  670. const char FRIDAY_MSG_07 [] = "Dzem dobry";
  671. const char FRIDAY_MSG_08 [] = "Plan na dzis, kombinowac by sil starczylo do piatku";
  672. const char FRIDAY_MSG_09 [] = "Kto sie kawa z rana poi, temu badyl ciagle stoi";
  673. const char FRIDAY_MSG_10 [] = "Ochoto co robienia czegos co ma sens przybywaj";
  674. const char FRIDAY_MSG_11 [] = "ABC Absolutny Brak Checi";
  675. const char FRIDAY_MSG_12 [] = "Zara szlak mnie trafi";
  676. const char FRIDAY_MSG_13 [] = "Nie lubie poniedzialkow";
  677. const char FRIDAY_MSG_14 [] = "Czy moge zaczas jeszcze raz bo jakos mi nie wyszlo";
  678. const char FRIDAY_MSG_15 [] = "Jestem ESP, twoje cyfrowe zwierzatka";
  679. const char FRIDAY_MSG_16 [] = "Cwicze, bo lubie jesc";
  680. const char FRIDAY_MSG_17 [] = "Poniedzialek pokonac trudno, ale starac sie trzeba";
  681. const char FRIDAY_MSG_18 [] = "Dom jest tam, gdzie mozna wszystko po swojemu";
  682. const char FRIDAY_MSG_19 [] = "Badz jak golab, sraj na wszystko";
  683.  
  684. const char* const FRIDAY_MSG [] = {
  685. FRIDAY_MSG_00,FRIDAY_MSG_01,FRIDAY_MSG_02,FRIDAY_MSG_03,FRIDAY_MSG_04,
  686. FRIDAY_MSG_05,FRIDAY_MSG_06,FRIDAY_MSG_07,FRIDAY_MSG_08,FRIDAY_MSG_09,
  687. FRIDAY_MSG_10,FRIDAY_MSG_11,FRIDAY_MSG_12,FRIDAY_MSG_13,FRIDAY_MSG_14,
  688. FRIDAY_MSG_15,FRIDAY_MSG_16,FRIDAY_MSG_17,FRIDAY_MSG_18,FRIDAY_MSG_19,
  689. };
  690.  
  691. // ------------------------------------------------------------------------------------------------------------- //
  692. // O K A Z J O N A L N E K O M U N I K A T Y // <--- OTHER MSG Monday-Friday
  693. // ------------------------------------------------------------------------------------------------------------- // <--- można modyfikować tylko
  694.  
  695. const char EX_MSG_00 [] = "Jest srodek nocy"; // time : 0 - 1
  696. const char EX_MSG_01 [] = "tu CPU: wszyscy spia, ja sie nudze"; // time : 1 - 2
  697. const char EX_MSG_02 [] = "Ktos tu nie spi? Ja, CPU!"; // time : 2 - 3
  698. const char EX_MSG_03 [] = "Ktos sie zaraz obudzi! BOSS"; // time : 3 - 4
  699. const char EX_MSG_04 [] = "tu CPU : czas na relax :-)"; // time : 4 - 5
  700. const char EX_MSG_05 [] = "Pobudka ! Ruszac dupeczki!"; // time : 5 - 6
  701. const char EX_MSG_06 [] = "Szczotka, kubek, ciepla woda"; // time : 6 - 7
  702. const char EX_MSG_07 [] = "Wyspani? Ruchy ruchy, sniadanko i wypad"; // time : 7 - 8
  703. const char EX_MSG_08 [] = "Kto tu jest? slysze kogos"; // time : 8 - 9
  704. const char EX_MSG_09 [] = "Tylko ja, kroliki i rybka"; // time : 9 - 10
  705. const char EX_MSG_10 [] = "tu CPU: nudy, nie ma nikogo"; // time : 10 - 11
  706. const char EX_MSG_11 [] = "jeszcze chwile i poludnie"; // time : 11 - 12
  707. const char EX_MSG_12 [] = "tu CPU: tesknie i czekam"; // time : 12 - 13
  708. const char EX_MSG_13 [] = "nie ma nie ma wody na pustyni"; // time : 13 - 14
  709. const char EX_MSG_14 [] = "nie ma to jak w domu :-)"; // time : 14 - 15
  710. const char EX_MSG_15 [] = "obiadek czas zjesc!"; // time : 15 - 16
  711. const char EX_MSG_16 [] = "ale w kolo jest wesolo"; // time : 16 - 17
  712. const char EX_MSG_17 [] = "kto dolki kopie ten sam w nie wpada"; // time : 17 - 18
  713. const char EX_MSG_18 [] = "czas na podwieczorek!"; // time : 18 - 19
  714. const char EX_MSG_19 [] = "co powiecie na herbatke?"; // time : 19 - 20
  715. const char EX_MSG_20 [] = "moze jakis film obejrzymy?"; // time : 20 - 21
  716. const char EX_MSG_21 [] = "Marcin i Wiki, wiecie ktora godzina?"; // time : 21 - 22
  717. const char EX_MSG_22 [] = "Bylo fajnie, ale pora spac"; // time : 22 - 23
  718. const char EX_MSG_23 [] = "tu CPU: pora na backupy"; // time : 23 - 24
  719.  
  720. // --- NIE MODYFIKOWAC WSKAZNIKOW DO TABLICY EX_MSG !!! -------------------------------------------------------- //
  721. // --- AUTOMAT ------------------------------------------------------------------------------------------------- // <--- WEX_MSG CONST TAB !!!
  722.  
  723. const char* const WEX_MSG [] = {
  724. EX_MSG_00,EX_MSG_01,EX_MSG_02,EX_MSG_03,EX_MSG_04,EX_MSG_05,EX_MSG_06,EX_MSG_07,
  725. EX_MSG_08,EX_MSG_09,EX_MSG_10,EX_MSG_11,EX_MSG_12,EX_MSG_13,EX_MSG_14,EX_MSG_15,
  726. EX_MSG_16,EX_MSG_17,EX_MSG_18,EX_MSG_19,EX_MSG_20,EX_MSG_21,EX_MSG_22,EX_MSG_23,
  727. };
  728.  
  729. // ------------------------------------------------------------------------------------------------------------- //
  730. // O K A Z J O N A L N E K O M U N I K A T Y W S O B O T E // <--- MESSG for SATURDAY
  731. // FOR SATURDAY MESSAGES :-) change only mssg, don't touch structure !!! //
  732. // ------------------------------------------------------------------------------------------------------------- //
  733.  
  734. const char ST_MSG_00 [] = "Jest srodek nocy"; // time : 0 - 1
  735. const char ST_MSG_01 [] = "Widze ciemnosc, widze ciemnosc"; // time : 1 - 2
  736. const char ST_MSG_02 [] = "Don't worry, by HAPPY"; // time : 2 - 3
  737. const char ST_MSG_03 [] = "Mozg to nie brwi, jak nie masz nie narysujesz"; // time : 3 - 4
  738. const char ST_MSG_04 [] = "Kocham moje lozko, a ono kocha mnie"; // time : 4 - 5
  739. const char ST_MSG_05 [] = "I Bog powiedzia, niech beda dane"; // time : 5 - 6
  740. const char ST_MSG_06 [] = "Niechaj sie stanie jasnosc"; // time : 6 - 7
  741. const char ST_MSG_07 [] = "Komenda nieznana :-)"; // time : 7 - 8
  742. const char ST_MSG_08 [] = "Milej soboty"; // time : 8 - 9
  743. const char ST_MSG_09 [] = "Kto rano wstaje ten sie w lustrze nie poznaje"; // time : 9 - 10
  744. const char ST_MSG_10 [] = "Wszystko co dobre sie dopiero zaczyna"; // time : 10 - 11
  745. const char ST_MSG_11 [] = "jeszcze chwile i poludnie"; // time : 11 - 12
  746. const char ST_MSG_12 [] = "Najczesciej spotykanym ssakiem gorskim jest goral"; // time : 12 - 13
  747. const char ST_MSG_13 [] = "Krolik sklada sie z glowy, brzuszka i kozuszka"; // time : 13 - 14
  748. const char ST_MSG_14 [] = "Pingwiny nie moga latac, bo nie maja smigiel"; // time : 14 - 15
  749. const char ST_MSG_15 [] = "Znanym drapieznikiem lesnym jest drapichrust."; // time : 15 - 16
  750. const char ST_MSG_16 [] = "ale w kolo jest wesolo"; // time : 16 - 17
  751. const char ST_MSG_17 [] = "kto dolki kopie ten sam w nie wpada"; // time : 17 - 18
  752. const char ST_MSG_18 [] = "czas na podwieczorek!"; // time : 18 - 19
  753. const char ST_MSG_19 [] = "co powiecie na herbatke?"; // time : 19 - 20
  754. const char ST_MSG_20 [] = "moze jakis film obejrzymy?"; // time : 20 - 21
  755. const char ST_MSG_21 [] = "Sobota jeszcze sie nie skonczyla"; // time : 21 - 22
  756. const char ST_MSG_22 [] = "Mozesz dzis posiedziec dluzej"; // time : 22 - 23
  757. const char ST_MSG_23 [] = "Slodkich snow"; // time : 23 - 24
  758.  
  759. // --------------------------------------------------------------------------------- by my wife, Sylvia -------- //
  760. // --- NIE MODYFIKOWAC WSKAZNIKOW DO TABLICY ST_MSG !!! -------------------------------------------------------- //
  761. // --- AUTOMAT --- DON'T TOUCH --------------------------------------------------------------------------------- // <--- SATURDAY_MSG CONST TAB !!! DON'T TOUCH !!!
  762.  
  763. const char* const SATURDAY_MSG [] =
  764. {
  765. ST_MSG_00,ST_MSG_01,ST_MSG_02,ST_MSG_03,ST_MSG_04,ST_MSG_05,ST_MSG_06,ST_MSG_07,
  766. ST_MSG_08,ST_MSG_09,ST_MSG_10,ST_MSG_11,ST_MSG_12,ST_MSG_13,ST_MSG_14,ST_MSG_15,
  767. ST_MSG_16,ST_MSG_17,ST_MSG_18,ST_MSG_19,ST_MSG_20,ST_MSG_21,ST_MSG_22,ST_MSG_23,
  768. };
  769.  
  770. // ------------------------------------------------------------------------------------------------------------- //
  771. // O K A Z J O N A L N E K O M U N I K A T Y W N I E D Z I L E // <--- MESSG for SUNDAY
  772. // FOR SUNDAY MESSAGES :-) change only mssg, don't touch structure !!! //
  773. // ------------------------------------------------------------------------------------------------------------- //
  774.  
  775. const char SU_MSG_00 [] = "Jest Niedziela"; // time : 0 - 1
  776. const char SU_MSG_01 [] = "Boom. Niedziela."; // time : 1 - 2
  777. const char SU_MSG_02 [] = "Ktos tu nie spi? Ja, CPU!"; // time : 2 - 3
  778. const char SU_MSG_03 [] = "Kto przytuli kroliczka"; // time : 3 - 4
  779. const char SU_MSG_04 [] = "tu CPU : czas na relax :-)"; // time : 4 - 5
  780. const char SU_MSG_05 [] = "Plan na dzis: wstac, przezyc, isc spac"; // time : 5 - 6
  781. const char SU_MSG_06 [] = "Piekna niedziela sie zapowiada"; // time : 6 - 7
  782. const char SU_MSG_07 [] = "Milej niedzieli zyczy ESP32"; // time : 7 - 8
  783. const char SU_MSG_08 [] = "Badz jak zuk, ciesz sie z byle gowna"; // time : 8 - 9
  784. const char SU_MSG_09 [] = "Przytul sie do misia"; // time : 9 - 10
  785. const char SU_MSG_10 [] = "Zero smutkow, zero zlosci, relaksik po calosci"; // time : 10 - 11
  786. const char SU_MSG_11 [] = "jeszcze chwile i poludnie"; // time : 11 - 12
  787. const char SU_MSG_12 [] = "Jesli nie robisz tego co lubisz tracisz czas"; // time : 12 - 13
  788. const char SU_MSG_13 [] = "nie ma nie ma wody na pustyni"; // time : 13 - 14
  789. const char SU_MSG_14 [] = "nie ma to jak w domu :-)"; // time : 14 - 15
  790. const char SU_MSG_15 [] = "W niedziele rosolek"; // time : 15 - 16
  791. const char SU_MSG_16 [] = "ale w kolo jest wesolo"; // time : 16 - 17
  792. const char SU_MSG_17 [] = "kto dolki kopie ten sam w nie wpada"; // time : 17 - 18
  793. const char SU_MSG_18 [] = "czas na przekaske!"; // time : 18 - 19
  794. const char SU_MSG_19 [] = "Jutro od rana poniedzialkowa kaszana"; // time : 19 - 20
  795. const char SU_MSG_20 [] = "Jutro poniedzialek, a bylo tak pieknie"; // time : 20 - 21
  796. const char SU_MSG_21 [] = "Marcin i Wiki"; // time : 21 - 22
  797. const char SU_MSG_22 [] = "Bylo fajnie, ale pora spac"; // time : 22 - 23
  798. const char SU_MSG_23 [] = "tu CPU: pora na backupy"; // time : 23 - 24
  799.  
  800. // --------------------------------------------------------------------------------- by my wife, Sylvia -------- //
  801. // --- NIE MODYFIKOWAC WSKAZNIKOW DO TABLICY ST_MSG !!! -------------------------------------------------------- //
  802. // --- AUTOMAT --- DON'T TOUCH --------------------------------------------------------------------------------- // <--- SUNDAY_MSG CONST TAB !!! DON'T TOUCH !!!
  803.  
  804. const char* const SUNDAY_MSG [] =
  805. {
  806. SU_MSG_00,SU_MSG_01,SU_MSG_02,SU_MSG_03,SU_MSG_04,SU_MSG_05,SU_MSG_06,SU_MSG_07,
  807. SU_MSG_08,SU_MSG_09,SU_MSG_10,SU_MSG_11,SU_MSG_12,SU_MSG_13,SU_MSG_14,SU_MSG_15,
  808. SU_MSG_16,SU_MSG_17,SU_MSG_18,SU_MSG_19,SU_MSG_20,SU_MSG_21,SU_MSG_22,SU_MSG_23,
  809. };
  810.  
  811. // ------------------------------------------------------------------------------------------------------------- //
  812. // P R Z Y S Ł O W I A D O M I E S I Ę C Y // <--- przysłowia miesięcy
  813. // ------------------------------------------------------------------------------------------------------------- //
  814.  
  815. const char PROVERBS_00 [] = "Siala baba mak nie wiedziala jak";
  816. const char PROVERBS_01 [] = "Gdy styczen z mgla chodzi, mokra i wczesna wiosna sie zrodzi";
  817. const char PROVERBS_02 [] = "Idzie luty, podkuj buty";
  818. const char PROVERBS_03 [] = "W marcu jak w garncu";
  819. const char PROVERBS_04 [] = "Kwiecien plecien, bo przeplata, troche zimy, troche lata";
  820. const char PROVERBS_05 [] = "W majuuu jak w rajuuu";
  821. const char PROVERBS_06 [] = "Czerwiec na maju zwykle się wzoruje, jego pluchy, pogody, często nasladuje";
  822. const char PROVERBS_07 [] = "W lipcu upaly, styczen mrozny cały";
  823. const char PROVERBS_08 [] = "Czego sierpien nie dowarzy, wrzesies tego nie doparzy";
  824. const char PROVERBS_09 [] = "Jaki pierwszy wrzesien, taka będzie jesien";
  825. const char PROVERBS_10 [] = "Gdy pazdziernik mrozny, to nie będzie styczen grozny";
  826. const char PROVERBS_11 [] = "Deszcz z poczatkiem listopada, mrozy w styczniu zapowiada";
  827. const char PROVERBS_12 [] = "Jesli w grudniu czesto dmucha, to w marcu i kwietniu plucha";
  828.  
  829. // --- AUTOMAT ------------------------------------------------------------------------------------------------- //
  830. // --- don't change --- nie zmieniaj --- [] table --- const char * --- size 13 --------------------------------- // <--- table of polish month proverbs
  831. // --- AUTOMAT ------------------------------------------------------------------------------------------------- //
  832.  
  833. const char* const PRZYSLOWIA [] =
  834. {
  835. PROVERBS_00,
  836. PROVERBS_01, PROVERBS_02, PROVERBS_03, PROVERBS_04, PROVERBS_05, PROVERBS_06,
  837. PROVERBS_07, PROVERBS_08, PROVERBS_09, PROVERBS_10, PROVERBS_11, PROVERBS_12
  838. };
  839. // --------------------------------------------------------------------------------- by my wife, Sylvia -------- //
  840. // ------------------------------------------------------------------------------------------------------------- // <--- przysłowia dnia tygodnia :)
  841.  
  842. const char D_PROVBS_00 [] = "Dla pracy sa zwykle dzionki, a niedziela dla malzonki";
  843. const char D_PROVBS_01 [] = "Kto w poniedzialek przeproznuje, we wtorek nie bedzie mial co jesc";
  844. const char D_PROVBS_02 [] = "Czlowiek jest jak wtorek: dzis jest, jutro go nie ma";
  845. const char D_PROVBS_03 [] = "Wtorek srode wział pod brode, chodzmy sitkiem czerpac wode";
  846. const char D_PROVBS_04 [] = "Dzis musi byc czwartek. Nigdy nie moglem się połapac, o co chodzi w czwartki";
  847. const char D_PROVBS_05 [] = "Tyle na swiecie porzadku, ze sobota po piatku";
  848. const char D_PROVBS_06 [] = "Kto w sobote pierze, ten sie w niedzielę nie ubierze";
  849.  
  850. const char * const SLOWO_DNIA [] =
  851. {
  852. D_PROVBS_00, D_PROVBS_01, D_PROVBS_02, D_PROVBS_03,
  853. D_PROVBS_04, D_PROVBS_05, D_PROVBS_06
  854. };
  855. // --------------------------------------------------------------------------------- by my wife, Sylvia -------- //
  856.  
  857. // DUŻE CYFRY 0 1 2 3 4 5 6 7 8 9
  858. const char * DuzeCyfry[10] = { "\27", "\1", "\2", "\3", "\4", "\5", "\6", "\7", "\10", "\11" };
  859.  
  860. // NORMALNE CYFRY 0 1 2 3 4 5 6 7 8 9
  861. const char * NormalneCyfry[10] = { "\60", "\61", "\62", "\63", "\64", "\65", "\66", "\67", "\70", "\71" };
  862.  
  863. // MAŁE CYFRY 0 1 2 3 4 5 6 7 8 9
  864. const char * MaleCyfry[10] = { "\12", "\13", "\14", "\15", "\16", "\17", "\20", "\21", "\22", "\23" };
  865.  
  866. // ------------------------------------------------------------------------------------------------------------- //
  867. // --- klasa Matryca --- //
  868. // ------------------------------------------------------------------------------------------------------------- //
  869.  
  870. class Matryca
  871. {
  872. // -------------------------------------- // ------------------------------------------------- //
  873. // --- zmienne i funkcje prywatne ------- // //
  874. // -------------------------------------- // ------------------------------------------------- //
  875.  
  876. private:
  877.  
  878. // -------------------------------------- // ------------------------------------------------- //
  879. // --- adres obiektu MD_Parola ---------- // //
  880. // -------------------------------------- // ------------------------------------------------- //
  881.  
  882. MD_Parola &P;
  883.  
  884. // -------------------------------------- // ------------------------------------------------- //
  885. // --- zmienne prywatne klasy Matryca --- // P R I V A T E V A R I A B L E --- //
  886. // -------------------------------------- // ------------------------------------------------- //
  887.  
  888. uint8_t SpriteSize = 0; // rozmiar tablicy z duszkami
  889. uint8_t EffectSize = 0; // rozmiar tablicy z efektami
  890. uint8_t MaxMsgSize = 0; // rozmiar tablicy z wiadomosciami
  891. uint8_t MaxDaySize = 0; // rozmiar tablicy z dniami tygodnia
  892. uint8_t MaxMonthSize = 0; // rozmiar tablicy z miesiacami
  893. uint8_t ExMsgSize = 0; // rozmiar tablicy EX_MSG (poniedziałek-piątek)
  894. uint8_t SundayMsgSize = 0; // rozmiar tablicy SUNDAY_MSG
  895. uint8_t SaturdayMsgSize = 0; // rozmiar tablicy SATURDAY_MSG
  896. uint8_t MondayMsgSize = 0; // rozmiar tablicy MONDAY_MSG
  897. uint8_t TuesdayMsgSize = 0; // rozmiar tablicy TUESDAY_MSG
  898. uint8_t WednesdayMsgSize = 0; // rozmiar tablicy WEDNESDAY_MSG
  899. uint8_t ThursdayMsgSize = 0; // rozmiar tablicy THURSDAY_MSG
  900. uint8_t FridayMsgSize = 0; // rozmiar tablicy FRIDAY_MSG
  901.  
  902. char LongDate[50]; // bufor : długa data
  903. char ShortDate[50]; // bufor : krótka data
  904. char ShortTime[20]; // bufor : krotki czas
  905. char Temperatura[30]; // bufor : temperatura st.C
  906. char Cisnienie[30]; // bufor : cisnienie hPa
  907. char Wilgotnosc[30]; // bufor : wilgotnosc %HG
  908. char Wiatr[30]; // bufor : predkosc wiatru km/h
  909. char Widocznosc[30]; // bufor : widocznosc [m]
  910. char Zachmurzenie[30]; // bufor : zachmurzenie [ % ]
  911. char WschodSlonca[30]; // bufor : wschód słońca (godzina,minuta)
  912. char ZachodSlonca[30]; // bufor : zachód słońca (godzina,minuta)
  913. char CpuFreqMHz[20]; // bufor : CPU freq MHz
  914. char FreeMemory[20]; // bufor : wolna pamieć
  915. char TotalRAM [20]; // bufor : pamięć RAM całkowita
  916. char SketchSIZE[20]; // bufor : rozmiar Sketch'a
  917. char FreeSIZE[20]; // bufor : wolna pamięć Sketch'a
  918.  
  919. char TIME_MSG_Buffor[50]; // bufor : dla Time_Work/Free_EXMSG_Set();
  920. uint8_t F_mem_godzina = 0; // dodano F_ niech będzie jako flaga mem time
  921. uint8_t F_now_godzina = 0; // dodano F_ niech będzie jako flaga now time
  922.  
  923. char MonthProverbsBuffor[100]; // bufor : dla PRZYSLOWIE [] MIESIACA
  924. uint8_t F_mem_miesiac = 0; // dodano F_ niech będzie jako flaga mem month
  925. uint8_t F_now_miesiac = 0; // dodano F_ niech będzie jako flaga now month
  926.  
  927. char DayProverbsBuffor[100]; // bufor : dla PRZYSLOWIE [] DNIA
  928. uint8_t F_mem_dzien = 0; // dodano do F_ niech bedzie jako flaga mem day
  929. uint8_t F_now_dzien = 0; // dodano do F_ niech będzie jako flaga now day
  930.  
  931. char DayMsgBuffor[100]; // bufor : powiedzonko na dzień
  932.  
  933. // ------------------------------------------------------------------------------------------- //
  934. // --- PRIVATE METHOD --- METODY PRYWATNE --- DEKLARACJE ------------------------------------- //
  935. // ------------------------------------------------------------------------------------------- //
  936.  
  937. void Time_Work_EXMSG_Set(); // ustaw wiadomosc wg. czasu w dni powszednie
  938. void Time_Free_EXMSG_Set(); // ustaw wiadomosc wg. czasu w dni wolne
  939. void Time_EXMSG_Show(); // wyswietl jako scrool (private method only)
  940. void Month_Proverbs_Set(); // skopiuj przyslowie do bufora MonthProverbsBuffor
  941. void Month_Proverbs_Show(); // wyświetl jako scrool (private method only)
  942. void Day_Proverbs_Set(); // skopiuj słowo dnia do bufora DayProverbsBuffor
  943. void Day_Proverbs_Show(); // wyświetl jako scrool (private method only)
  944. void Day_MSG_Set(); // ustaw powiedzonko do wyswietlenia
  945.  
  946. public:
  947.  
  948. // ------------------------------------------------------------------------------ //
  949. // --- konstruktor -------------------------------------------------------------- //
  950. // ------------------------------------------------------------------------------ //
  951.  
  952. Matryca(MD_Parola & adrP) : P ( adrP ) { }
  953.  
  954. // ------------------------------------------------------------------------------ //
  955. // --- setup -------------------------------------------------------------------- //
  956. // ------------------------------------------------------------------------------ //
  957.  
  958. void Setup()
  959. {
  960. // zapisz do zmiennych max. rozmiar tablicy
  961. // --------------------------------------------------------------------------- //
  962.  
  963. SpriteSize = ARRAY_SIZE ( sprite ); // ustal rozmiar tablicy sprite
  964. EffectSize = ARRAY_SIZE ( efekt ); // ustal rozmiar tablicy effect
  965. MaxMsgSize = ARRAY_SIZE ( MSG ); // ustal rozmiar tablicy MSG
  966. MaxDaySize = ARRAY_SIZE ( DAY ); // ustal rozmiar tablicy DAY
  967. MaxMonthSize = ARRAY_SIZE ( MONTH ); // ustal rozmiar tablicy MONTH
  968. ExMsgSize = ARRAY_SIZE ( WEX_MSG ); // ustal rozmiar tablicy EX_MSG
  969. SundayMsgSize = ARRAY_SIZE ( SUNDAY_MSG ); // ustal rozmiar tablicy SUNDAY MSG
  970. SaturdayMsgSize = ARRAY_SIZE ( SATURDAY_MSG ); // ustal rozmiar tablicy SATURDAY MSG
  971. MaxDaySize = ARRAY_SIZE ( DAY ); // ustal rozmiar tablicy DAY
  972. MaxMonthSize = ARRAY_SIZE ( MONTH ); // ustal rozmiar tablicy MONTH
  973. MondayMsgSize = ARRAY_SIZE ( MONDAY_MSG ); // ustal rozmiar tablicy MONDAY
  974. TuesdayMsgSize = ARRAY_SIZE ( TUESDAY_MSG ); // ustal rozmiar tablicy TUESDAY
  975. WednesdayMsgSize = ARRAY_SIZE ( WEDNESDAY_MSG ); // ustal rozmiar tablicy WEDNESDAY
  976. ThursdayMsgSize = ARRAY_SIZE ( THURSDAY_MSG ); // ustal rozmiar tablicy THURSDAY
  977. FridayMsgSize = ARRAY_SIZE ( FRIDAY_MSG ); // ustal rozmiar tablocy FRIDAY
  978.  
  979. // --------------------------------------------------------------------------- //
  980. for (uint8_t i=0; i<EffectSize; i++)
  981. {
  982. efekt[i].speed *= P.getSpeed();
  983. efekt[i].pause *= 500;
  984. }
  985.  
  986. // --------------------------------------------------------------------------- //
  987. // jeśli TERMINAL włączony
  988.  
  989. #if TERMINAL
  990. tools.PokazWiadomosc("MATRYCA", "SETUP");
  991. tools.PokazWiadomosc("MATRYCA", "SPRITE TAB SIZE", String(SpriteSize).c_str());
  992. tools.PokazWiadomosc("MATRYCA", "EFFECT TAB SIZE", String(EffectSize).c_str());
  993. tools.PokazWiadomosc("MATRYCA", "MAX DAY TAB SIZE", String(MaxDaySize).c_str());
  994. tools.PokazWiadomosc("MATRYCA", "MAX MONTH TAB SIZE", String(MaxMonthSize).c_str());
  995. tools.PokazWiadomosc("MATRYCA", "MAX MSG TAB SIZE", String(MaxMsgSize).c_str());
  996. tools.PokazWiadomosc("MATRYCA", "MONDAY TAB SIZE", String(MondayMsgSize).c_str());
  997. tools.PokazWiadomosc("MATRYCA", "TUESDAY TAB SIZE", String(TuesdayMsgSize).c_str());
  998. tools.PokazWiadomosc("MATRYCA", "WEDNESDAY TAB SIZE", String(WednesdayMsgSize).c_str());
  999. tools.PokazWiadomosc("MATRYCA", "THURSDAY TAB SIZE", String(ThursdayMsgSize).c_str());
  1000. tools.PokazWiadomosc("MATRYCA", "FRIDAY TAB SIZE", String(FridayMsgSize).c_str());
  1001. tools.PokazWiadomosc("MATRYCA", "SATURDAY TAB SIZE", String(SaturdayMsgSize).c_str());
  1002. tools.PokazWiadomosc("MATRYCA", "SUNDAY TAB SIZE", String(SundayMsgSize).c_str());
  1003. #endif
  1004. }
  1005.  
  1006. // ------------------------------------------------------------------------------------------- //
  1007. // --- PUBLIC METHOD --- METODY PUBLICZNE --- DEKLARACJE ------------------------------------- //
  1008. // ------------------------------------------------------------------------------------------- //
  1009.  
  1010.  
  1011. // ------------------------------------------------------------------------------------------- //
  1012. // --- M E T O D Y P U B L I C Z N E E N G I N E v0.01 --- //
  1013. // ------------------------------------------------------------------------------------------- //
  1014.  
  1015. void SpriteDemo(); // demo z duszkami
  1016. void EffectDemo(); // demo z efektami
  1017. void RandomDemo(); // demo : duszki lub efekty
  1018. void ShowLongDate(); // wyswietl dluga date
  1019. void ShowShortDate(); // wyswietl krotka date
  1020. void ShowShortTime(); // pokaz czas - wersja Short
  1021. void ShowTemperature(); // pokaz temperature
  1022. void ShowPressure(); // pokaz cisnienie
  1023. void ShowHumidity(); // pokaz wilgotnosc
  1024. void ShowWind(); // pokaz wiatr
  1025. void ShowSunrise(); // pokaz wschod slonca
  1026. void ShowSunset(); // pokaz zachod slonca
  1027. void ShowClouds(); // pokaz zachmurzenie
  1028. void ShowVisibility(); // pokaz widocznosc
  1029.  
  1030. // ------------------------------------------------------------------------------------------- //
  1031. // --- M E T O D Y P U B L I C Z N E E N G I N E v0.02 --- //
  1032. // ------------------------------------------------------------------------------------------- //
  1033.  
  1034. void Dane2Bufor(); // BUDUJ BUFORY POGOWE
  1035. void Czas2Bufor(); // BUDUJ BUFORY CZASU
  1036. void Data2Bufor(); // BUDUJ BUFORY DATY
  1037. void System2Bufor(); // BUDUJ BUFORY SYSTEMOWE
  1038. void PokazCzas_Typ1(); // duży zegar !!!
  1039. void PokazCzas_Typ2(); // normalny zegar !!!
  1040. void WyswietlPogode(); // wyświetl pogodę !!!
  1041. void WyswietlSystem(); // wyświetl gadżety !!!
  1042. void ShowCpu(); // pokaz predkosc cpu
  1043. void ShowFreeMemory(); // pokaz wolna pamiec
  1044. void ShowSketchSize();
  1045. void ShowFreeSketchSize();
  1046. void ShowFlashChipSize();
  1047. void ShowLesson(const char *przedmiot); // wyświetl 0min przed e-lekcją
  1048. void ShowReminderLesson(const char *przedmiot); // wyswietl 5min przed e-lekcją
  1049. void ShowSundayMsg(); // losowe wiadomosci w niedziele
  1050. void ShowSaturdayMsg(); // losowe wiadomosci w sobote
  1051. void ShowDayMsg(); // losowe wiadomosci w dni robocze
  1052. };
  1053.  
  1054. // --------------------------------------------------------------------------------------------------- //
  1055. // //
  1056. // M E T O D Y P R Y W A T N E //
  1057. // E N G I N E V 0 0 1 //
  1058. // //
  1059. // --------------------------------------------------------------------------------------------------- //
  1060. // --- load to buffor: TIME_MSG_Buffor[50] -> message from WEX_MSG[ExMsgSize] --- //
  1061. // --------------------------------------------------------------------------------------------------- //
  1062.  
  1063. void Matryca::Time_Work_EXMSG_Set()
  1064. {
  1065. if( F_now_godzina != F_mem_godzina ) // optymalizacja, buforuj gdy ma sens
  1066. { // bo jesli nie zmienila sie godzina
  1067. strcpy( TIME_MSG_Buffor, WEX_MSG[ F_now_godzina ] ); // to zawartosc tresci bufora się nie
  1068. F_mem_godzina = F_now_godzina; // zmienia, przypisz czas by fakowac
  1069. }
  1070. }
  1071.  
  1072. // --------------------------------------------------------------------------------------------------- //
  1073. // JAKO PRYWATNA !!! nie dostępna z zewnątrz klasy !!! tylko z RandomDEMO !!! --- //
  1074. // --------------------------------------------------------------------------------------------------- //
  1075.  
  1076. void Matryca::Time_EXMSG_Show()
  1077. {
  1078. Time_Work_EXMSG_Set(); // sprawdz bufor czy aktualny
  1079.  
  1080. if(P.displayAnimate())
  1081. {
  1082. P.displayText(TIME_MSG_Buffor, PA_CENTER, 20, 0, efekt[3].effect, efekt[3].effect);
  1083.  
  1084. #if TERMINAL
  1085. tools.PokazWiadomosc("MATRYCA","Time EXMSG", TIME_MSG_Buffor);
  1086. #endif
  1087. }
  1088. }
  1089.  
  1090. // --------------------------------------------------------------------------------------------------- //
  1091. // JAKO PRYWATNA METODA !!! nie dostępna z zewnątrz klasy !!! tylko z RandomDEMO --- // <--- set Month Provebs and copy 2 Buffor
  1092. // --------------------------------------------------------------------------------------------------- //
  1093. void Matryca::Month_Proverbs_Set()
  1094. {
  1095. if( F_now_miesiac != F_mem_miesiac ) // optymalizacja, buforuj gdy ma sens
  1096. { // bo jesli nie zmienil sie miesiac
  1097. strcpy( MonthProverbsBuffor, PRZYSLOWIA[ F_now_miesiac ] );
  1098. F_mem_miesiac = F_now_miesiac;
  1099. }
  1100. }
  1101. // --------------------------------------------------------------------------------------------------- //
  1102. // JAKO PRYWATNA !!! Nie dostępna z zewnątrz klasy !!! tylko z RandomDemo !!! // <--- Show Month Provebs (P R I V A T E O N L Y)
  1103. // --------------------------------------------------------------------------------------------------- //
  1104. void Matryca::Month_Proverbs_Show()
  1105. {
  1106. Month_Proverbs_Set(); // sprawdz bufor czy aktualny
  1107.  
  1108. if(P.displayAnimate())
  1109. {
  1110. P.displayText(MonthProverbsBuffor, PA_CENTER, 20, 0, efekt[3].effect, efekt[3].effect);
  1111. #if TERMINAL
  1112. Serial.printf("class Matryca -> PROVERBS_SHOW -> Wyswietlam : %s\n", MonthProverbsBuffor);
  1113. #endif
  1114. }
  1115. }
  1116.  
  1117. // --------------------------------------------------------------------------------------------------- //
  1118. // JAKO PRYWATNA METODA !!! nie dostępna z zewnątrz klasy !!! ustal dzien tygodnia i kopiuj do BUFF // <--- set Day Provebs and copy 2 Buffor
  1119. // --------------------------------------------------------------------------------------------------- //
  1120. void Matryca::Day_Proverbs_Set()
  1121. {
  1122. if ( F_now_dzien != F_mem_dzien ) // optymalizacja, buforuj gdy ma sens
  1123. {
  1124. strcpy( DayProverbsBuffor, SLOWO_DNIA[ F_now_dzien ] );
  1125. F_mem_dzien = F_now_dzien;
  1126. }
  1127. }
  1128.  
  1129. // --------------------------------------------------------------------------------------------------- //
  1130. // JAKO PRYWATNA METOFA!!! Nie dostępna z zewnątrz klasy !!! tylko z RandomDEMO !!! // <--- Show Day Proverbs (PRIVATE ONLY)
  1131. // --------------------------------------------------------------------------------------------------- //
  1132. void Matryca::Day_Proverbs_Show()
  1133. {
  1134. Day_Proverbs_Set(); // sprawdz bufor czy aktualny (PRIV)
  1135.  
  1136. if(P.displayAnimate())
  1137. {
  1138. P.displayText(DayProverbsBuffor, PA_CENTER, 20, 0, efekt[3].effect, efekt[3].effect);
  1139. #if TERMINAL
  1140. Serial.printf("class Matryca -> DAY_PROV_SHOW -> Wyswietlam : %s\n", DayProverbsBuffor);
  1141. #endif
  1142. }
  1143. }
  1144.  
  1145. // --------------------------------------------------------------------------------------------------- //
  1146. // JAKO PRYWATNA METODA !!! wylosuj i wrzuc do bufora jakies powiedzonko //
  1147. // --------------------------------------------------------------------------------------------------- //
  1148.  
  1149. void Matryca::Day_MSG_Set()
  1150. {
  1151. uint8_t curMSG;
  1152.  
  1153. switch (czas.DzienTygodnia)
  1154. {
  1155. case 0 : curMSG = ESP8266TrueRandom.random(0, SundayMsgSize - 1); // wylosuj NIEDZIELA
  1156. strcpy( DayMsgBuffor, SUNDAY_MSG[ curMSG ]); // skopiuj do bufora
  1157. break; // przerwij
  1158.  
  1159. case 1 : curMSG = ESP8266TrueRandom.random(0, MondayMsgSize - 1); // wylosuj PONIEDZIALEK
  1160. strcpy( DayMsgBuffor, MONDAY_MSG[ curMSG ] ); // skopiuj do bufora
  1161. break; // przerwij
  1162.  
  1163. case 2 : curMSG = ESP8266TrueRandom.random(0, TuesdayMsgSize - 1); // wylosuj WTOREK
  1164. strcpy( DayMsgBuffor, TUESDAY_MSG[ curMSG ]); // skopiuj do bufora
  1165. break; // przerwij
  1166.  
  1167. case 3 : curMSG = ESP8266TrueRandom.random(0, WednesdayMsgSize - 1); // wylosuj ŚRODA
  1168. strcpy( DayMsgBuffor, WEDNESDAY_MSG[ curMSG ]); // skopiuj do bufora
  1169. break; // przerwij
  1170.  
  1171. case 4 : curMSG = ESP8266TrueRandom.random(0, ThursdayMsgSize - 1 ); // wylosuj CZWARTEK
  1172. strcpy( DayMsgBuffor, THURSDAY_MSG[ curMSG ]); // skopiuj do bufora
  1173. break; // przerwij
  1174.  
  1175. case 5 : curMSG = ESP8266TrueRandom.random(0, FridayMsgSize - 1 ); // wylosuj PIĄTEK
  1176. strcpy( DayMsgBuffor, FRIDAY_MSG[ curMSG ]); // skopiuj do bufora
  1177. break; // przerwij
  1178.  
  1179. case 6 : curMSG = ESP8266TrueRandom.random(0, SaturdayMsgSize - 1); // wylosuj SOBOTA
  1180. strcpy( DayMsgBuffor, SATURDAY_MSG [ curMSG ]); // skopiuj do bufora
  1181. break; // przerwij
  1182.  
  1183. default : break;
  1184. }
  1185. }
  1186.  
  1187. // --------------------------------------------------------------------------------------------------- //
  1188. // --- PUBLIC METHOD --- METODY PUBLICZNE ------------------------------------------------------------ //
  1189. // --------------------------------------------------------------------------------------------------- //
  1190. //
  1191. // void Matryca::SpriteDemo(); // demo z duszkami, napisy z listy MSG[]
  1192. // void Matryca::EffectDemo(); // demo z efektami, napisy z listy MSG[]
  1193. // void Matryca::RandomDemo(); // demo losowe (duszki, efekty)
  1194. // void Matryca::ShowLongDate(); // pokazuje długą datę - scroll w lewo
  1195. // void Matryca::ShowShortDate(); // pokazuje krótką datę - scroll w prawo
  1196. // void Matryca::ShowShortTime(); // pokazuje czas - efekt losowy
  1197. // void Matryca::Date2Char(); // buduje bufor char ShortDate i LongDate
  1198. // void Matryca::Time2Char(); // buduje bufor char ShortTime
  1199. // void Matryca::Temp2Char(); // buduje bufory char: temp, wilg, cisn, wiatr
  1200. // void Matryca::ShowTemperature(); // pokaz temperature st.C - scroll w lewo
  1201. // void Matryca::ShowPressure(); // poaz cisnienie atmosferyczne - scrool w lewo
  1202. // void Matryca::ShowHumidity(); // pokaz wilgotnosc powietrza - scrool w lewo
  1203. // void Matryca::ShowWind(); // pokaz predkosc wiatru -scrool w lewo
  1204. // void Matryca::ShowSunrise(); // pokaz o ktorej wschod slonca
  1205. // void Matryca::ShowSunset(); // pokaz o ktorej zachod slonca
  1206. // void Matryca::ShowClouds(); // pokaz zachmurzenie nieba
  1207. // void Matryca::ShowVisibility() // pokaz widzialność [ km ]
  1208. // void Matryca::Dane2Bufor(); // buduje bufory pogodowe
  1209. // void Matryca::PokazCzas_Typ1(); // pokazuje wielki zegar
  1210. // void Matryca:;PokazCzas_Typ2(); // pokazuje normalny zegar
  1211. // void Matryca::WyswietlPogode(); // wyświetla pogodę
  1212. // void Matryca::ShowFreeMemory(); // pokaz wolną pamięć RAM
  1213. // void Matryca::ShowCpu(); // pokaz prędkość procesora [ MHz ]
  1214. // void Matryca::ShowSketchSize(); // pokaz rozmiar sketch'a
  1215. // void Matryca::ShowFreeSketchSize(); // pokaz wolny rozmiar dla sketch'a
  1216. // void Matryca::ShowFlashChipSize(); // pokaz wolna pamiec Flash Chip
  1217. // void Matryca::ShowLesson(const char *przedmiot); // jaka lekcja się zaczęła
  1218. // void Matryca::ShowReminderLesson(const char *przedmiot); // 5 min przed lekcją przypomnij
  1219. // void Matryca::void ShowSundayMsg() // losowe napisy w niedzielę
  1220. // void Matryca::void ShowSaturdayMsg() // losowe napisy w sobotę
  1221. // void Matryca::void ShowDayMsg() // losowe napisy od Poniedzialku do Piatku
  1222. // //
  1223. // --------------------------------------------------------------------------------------------------- //
  1224. //
  1225. //
  1226. //
  1227. //
  1228. //
  1229. // --------------------------------------------------------------------------------------------------- //
  1230. // --- ShowDayMsg - wyświetla informacje losowe w poniedzialek, wtorek, sroda, czwartek, piatek --- //
  1231. // --------------------------------------------------------------------------------------------------- //
  1232.  
  1233. void Matryca::ShowDayMsg()
  1234. {
  1235. if(P.displayAnimate())
  1236. {
  1237. Day_MSG_Set(); // wylosuj wiadomosc do wyświetlenia
  1238.  
  1239. P.displayText(DayMsgBuffor, PA_CENTER, 20, 0, PA_SCROLL_LEFT, PA_SCROLL_LEFT);
  1240.  
  1241. #if TERMINAL
  1242. tools.PokazWiadomosc("MATRYCA","ShowDayMsg", DayMsgBuffor);
  1243. #endif
  1244. }
  1245. }
  1246.  
  1247. // --------------------------------------------------------------------------------------------------- //
  1248. // --- ShowSaturdayMsg - wyświetla informacje losowe w sobotę
  1249. // --------------------------------------------------------------------------------------------------- //
  1250.  
  1251. void Matryca::ShowSaturdayMsg()
  1252. {
  1253. if(P.displayAnimate())
  1254. {
  1255. uint8_t curMSG = ESP8266TrueRandom.random(0, SaturdayMsgSize - 1); // wylosuj napis
  1256. P.displayText(SATURDAY_MSG[curMSG], PA_CENTER, 20, 0, PA_SCROLL_LEFT, PA_SCROLL_LEFT);
  1257.  
  1258. #if TERMINAL
  1259. tools.PokazWiadomosc("MATRYCA","ShowSundayMsg", SATURDAY_MSG[curMSG]);
  1260. #endif
  1261. }
  1262. }
  1263.  
  1264. // --------------------------------------------------------------------------------------------------- //
  1265. // --- ShowSundayMsg - wyświetla informacje losowe w niedzielę
  1266. // --------------------------------------------------------------------------------------------------- //
  1267.  
  1268. void Matryca::ShowSundayMsg()
  1269. {
  1270. if(P.displayAnimate())
  1271. {
  1272. uint8_t curMSG = ESP8266TrueRandom.random(0, SundayMsgSize - 1); // wylosuj napis z SUNDAY_MSG
  1273. P.displayText(SUNDAY_MSG[curMSG], PA_CENTER, 20, 0, PA_SCROLL_LEFT, PA_SCROLL_LEFT);
  1274.  
  1275. #if TERMINAL
  1276. tools.PokazWiadomosc("MATRYCA","ShowSundayMsg", SUNDAY_MSG[curMSG]);
  1277. #endif
  1278. }
  1279. }
  1280.  
  1281. // --------------------------------------------------------------------------------------------------- //
  1282. // --- ShowLesson - wyświetla informacje o zaczynajacej się e-lekcji
  1283. // --------------------------------------------------------------------------------------------------- //
  1284.  
  1285. void Matryca::ShowLesson(const char *przedmiot)
  1286. {
  1287. uint8_t curEFX = ESP8266TrueRandom.random(0, EffectSize - 1); // wylosuj efekt
  1288.  
  1289. if(P.displayAnimate())
  1290. {
  1291. P.displayText(przedmiot, PA_CENTER, efekt[curEFX].speed, efekt[curEFX].pause,
  1292. efekt[curEFX].effect, efekt[curEFX].effect);
  1293.  
  1294. #if TERMINAL
  1295. tools.PokazWiadomosc("MATRYCA","ShowLesson", przedmiot);
  1296. #endif
  1297. }
  1298. }
  1299.  
  1300. // --------------------------------------------------------------------------------------------------- //
  1301. // --- ShowReminderLesson - wyświetla informacje o zaczynajacej się e-lekcji (5min przed)
  1302. // --------------------------------------------------------------------------------------------------- //
  1303.  
  1304. void Matryca::ShowReminderLesson(const char *przedmiot)
  1305. {
  1306. if(P.displayAnimate())
  1307. P.displayText(przedmiot, PA_CENTER, 20, 0, PA_SCROLL_LEFT, PA_SCROLL_LEFT);
  1308.  
  1309. // --------------------------------------------------------------------------------------------- //
  1310.  
  1311.  
  1312. #if TERMINAL
  1313. tools.PokazWiadomosc("MATRYCA","Flash SIZE", TotalRAM);
  1314. #endif
  1315. }
  1316. // --------------------------------------------------------------------------------------------------- //
  1317. // --- Demo z duszkami - wykorzystuje napisy z tablicy MSG ------------------------------------------- //
  1318. // --------------------------------------------------------------------------------------------------- //
  1319.  
  1320. void Matryca::SpriteDemo()
  1321. {
  1322. if (P.displayAnimate())
  1323. {
  1324. uint8_t curEFX = ESP8266TrueRandom.random(0, SpriteSize - 1); // wylosuj duszka
  1325. uint8_t curMSG = ESP8266TrueRandom.random(0, MaxMsgSize - 1); // wylosuj napis
  1326.  
  1327. P.setSpriteData(sprite[curEFX].data,sprite[curEFX].width,sprite[curEFX].frames, // wejście duszka
  1328. sprite[curEFX].data,sprite[curEFX].width,sprite[curEFX].frames); // wyjście duszka
  1329.  
  1330. P.displayText(MSG[curMSG], PA_CENTER, 20, 100, PA_SPRITE, PA_SPRITE);
  1331.  
  1332. #if TERMINAL
  1333. tools.PokazWiadomosc("MATRYCA","SPRITE DEMO", MSG[curMSG]);
  1334. #endif
  1335. }
  1336. }
  1337.  
  1338. // --------------------------------------------------------------------------------------------------- //
  1339. // --- Demo z efektami - wykorzystuje napisy z tablicy MSG ------------------------------------------- //
  1340. // --------------------------------------------------------------------------------------------------- //
  1341.  
  1342. void Matryca::EffectDemo()
  1343. {
  1344. if(P.displayAnimate())
  1345. {
  1346. uint8_t curEFX = ESP8266TrueRandom.random(0, EffectSize - 1); // wylosuj efekt
  1347. uint8_t curMSG = ESP8266TrueRandom.random(0, MaxMsgSize - 1); // wylosuj napis
  1348.  
  1349. P.displayText(MSG[curMSG], PA_CENTER, efekt[curEFX].speed, efekt[curEFX].pause,
  1350. efekt[curEFX].effect, efekt[curEFX].effect);
  1351. #if TERMINAL
  1352. tools.PokazWiadomosc("MATRYCA","EFFECT DEMO", MSG[curMSG]);
  1353. #endif
  1354. }
  1355. }
  1356.  
  1357. // --------------------------------------------------------------------------------------------------- //
  1358. // D E M O R A N D O M - S P R I T E O R E F F E C T //
  1359. // --------------------------------------------------------------------------------------------------- //
  1360.  
  1361. void Matryca::RandomDemo()
  1362. {
  1363. if(P.displayAnimate())
  1364. {
  1365. switch ( ESP8266TrueRandom.random(0,20) ) // wylosuj demo
  1366. {
  1367. case 0 : EffectDemo(); break;
  1368. case 1 : SpriteDemo(); break;
  1369. case 2 : ShowLongDate(); break;
  1370. case 3 : Month_Proverbs_Show(); break;
  1371. case 4 : ShowShortTime(); break;
  1372. case 5 : ShowTemperature(); break;
  1373. case 6 : ShowPressure(); break;
  1374. case 7 : Time_EXMSG_Show(); break; // private method only
  1375. case 8 : ShowWind(); break;
  1376. case 9 : ShowSunrise(); break;
  1377. case 10 : ShowSunset(); break;
  1378. case 11 : ShowClouds(); break;
  1379. case 12 : ShowVisibility(); break;
  1380. case 13 : Time_EXMSG_Show(); break; // private method only
  1381. case 14 : ShowHumidity(); break;
  1382. case 15 : SpriteDemo(); break; // repeat --- 50% to random
  1383. case 16 : EffectDemo(); break; // repeat --- 50% to random
  1384. case 17 : Month_Proverbs_Show(); break;
  1385. case 18 : Day_Proverbs_Show(); break;
  1386. case 19 : ShowShortDate(); break;
  1387. default : break;
  1388. } // end switch
  1389. } // end if
  1390. }
  1391.  
  1392. // --------------------------------------------------------------------------------------------------- //
  1393. // SYSTEM 2 BUFOR //
  1394. // --------------------------------------------------------------------------------------------------- //
  1395.  
  1396. void Matryca::System2Bufor()
  1397. {
  1398. String bMEM = "FREE RAM: " + String(ESP.getFreeHeap()) + "kB";
  1399. int str_len = bMEM.length() + 1;
  1400. bMEM.toCharArray(FreeMemory, str_len) ;
  1401.  
  1402. bMEM = "TOTAL RAM: " + String(ESP.getFlashChipSize()/1000) + "kB";
  1403. str_len = bMEM.length() + 1;
  1404. bMEM.toCharArray(TotalRAM, str_len);
  1405.  
  1406. bMEM = "SKETCH SIZE: " + String(ESP.getSketchSize()/1000) + "kB";
  1407. str_len = bMEM.length() + 1;
  1408. bMEM.toCharArray(SketchSIZE, str_len);
  1409.  
  1410. bMEM = "FREE SIZE: " + String(ESP.getFreeSketchSpace()/1000) + "kB";
  1411. str_len = bMEM.length() + 1;
  1412. bMEM.toCharArray(FreeSIZE, str_len);
  1413.  
  1414. String bCPU = "CPU: " + String(ESP.getCpuFreqMHz()) + " MHz";
  1415. str_len = bCPU.length() + 1;
  1416. bCPU.toCharArray(CpuFreqMHz, str_len) ;
  1417.  
  1418. #if TERMINAL
  1419. tools.PokazWiadomosc("MATRYCA","System2Bufor", "Bufory systemowe zbudowane");
  1420. #endif
  1421. }
  1422.  
  1423. // =================================================================================================== //
  1424. // === WYSWIETL DANE SYSTEMOWE ======================================================================= //
  1425. // =================================================================================================== //
  1426.  
  1427. void Matryca::WyswietlSystem()
  1428. {
  1429. static byte przelacznik = 0;
  1430.  
  1431. if(P.displayAnimate())
  1432. {
  1433. switch ( przelacznik )
  1434. {
  1435. case 0 : ShowFreeMemory(); przelacznik ++; break;
  1436. case 1 : ShowCpu(); przelacznik ++; break;
  1437. case 2 : ShowSketchSize(); przelacznik ++; break;
  1438. case 3 : ShowFreeSketchSize(); przelacznik ++; break;
  1439. case 4 : ShowFlashChipSize(); przelacznik ++; break;
  1440. case 5 : ShowLongDate(); przelacznik ++; break;
  1441. case 6 : ShowShortTime(); przelacznik =0; break;
  1442. default : przelacznik =0; break;
  1443. }
  1444. }
  1445. }
  1446.  
  1447. // --------------------------------------------------------------------------------------------------- //
  1448. // S H O W M E M O R Y //
  1449. // --------------------------------------------------------------------------------------------------- //
  1450.  
  1451. void Matryca::ShowCpu()
  1452. {
  1453. if(P.displayAnimate())
  1454. {
  1455. uint8_t curEFX = ESP8266TrueRandom.random(0, EffectSize - 1);
  1456.  
  1457. P.displayText(CpuFreqMHz, PA_CENTER, efekt[curEFX].speed, efekt[curEFX].pause,
  1458. efekt[curEFX].effect, efekt[curEFX].effect);
  1459. }
  1460.  
  1461. // --------------------------------------------------------------------------------------------- //
  1462.  
  1463. #if TERMINAL
  1464. tools.PokazWiadomosc("MATRYCA","Show CPU", CpuFreqMHz);
  1465. #endif
  1466. }
  1467.  
  1468. // --------------------------------------------------------------------------------------------------- //
  1469. // --- S H O W F L A S H C H I P S I Z E ------------------------------------------------------- //
  1470. // --------------------------------------------------------------------------------------------------- //
  1471.  
  1472. void Matryca::ShowFlashChipSize()
  1473. {
  1474. if(P.displayAnimate())
  1475. P.displayText(TotalRAM, PA_CENTER, 20, 0, PA_SCROLL_LEFT, PA_SCROLL_LEFT);
  1476.  
  1477. // --------------------------------------------------------------------------------------------- //
  1478.  
  1479.  
  1480. #if TERMINAL
  1481. tools.PokazWiadomosc("MATRYCA","Flash SIZE", TotalRAM);
  1482. #endif
  1483. }
  1484.  
  1485. // --------------------------------------------------------------------------------------------------- //
  1486. // --- S H O W S K E T C H S I Z E --------------------------------------------------------------- //
  1487. // --------------------------------------------------------------------------------------------------- //
  1488.  
  1489. void Matryca::ShowSketchSize()
  1490. {
  1491. if(P.displayAnimate())
  1492. P.displayText(SketchSIZE, PA_CENTER, 20, 0, PA_SCROLL_LEFT, PA_SCROLL_LEFT);
  1493.  
  1494. // --------------------------------------------------------------------------------------------- //
  1495.  
  1496. #if TERMINAL
  1497. tools.PokazWiadomosc("MATRYCA","Sketch SIZE", SketchSIZE);
  1498. #endif
  1499. }
  1500.  
  1501. // --------------------------------------------------------------------------------------------------- //
  1502. // --- S H O W S K E T C H S I Z E --------------------------------------------------------------- //
  1503. // --------------------------------------------------------------------------------------------------- //
  1504.  
  1505. void Matryca::ShowFreeSketchSize()
  1506. {
  1507. if(P.displayAnimate())
  1508. P.displayText(FreeSIZE, PA_CENTER, 20, 0, PA_SCROLL_LEFT, PA_SCROLL_LEFT);
  1509.  
  1510. // --------------------------------------------------------------------------------------------- //
  1511.  
  1512. #if TERMINAL
  1513. tools.PokazWiadomosc("MATRYCA","Free SIZE", FreeSIZE);
  1514. #endif
  1515. }
  1516.  
  1517. // --------------------------------------------------------------------------------------------------- //
  1518. // S H O W M E M // <--- S H O W M E M
  1519. // --------------------------------------------------------------------------------------------------- //
  1520.  
  1521. void Matryca::ShowFreeMemory()
  1522. {
  1523. if(P.displayAnimate())
  1524. P.displayText(FreeMemory, PA_CENTER, 20, 0, PA_SCROLL_LEFT, PA_SCROLL_LEFT);
  1525.  
  1526. // --------------------------------------------------------------------------------------------- //
  1527.  
  1528. #if TERMINAL
  1529. tools.PokazWiadomosc("MATRYCA","Free SIZE", FreeMemory);
  1530. #endif
  1531. }
  1532.  
  1533. // --------------------------------------------------------------------------------------------------- //
  1534. // S H O W L O N G D A T E // <--- SHOW LONG DATE
  1535. // --------------------------------------------------------------------------------------------------- //
  1536.  
  1537. void Matryca::ShowLongDate()
  1538. {
  1539. if(P.displayAnimate())
  1540. {
  1541. P.displayText(LongDate, PA_CENTER, 20, 0, efekt[3].effect, efekt[3].effect);
  1542.  
  1543. #if TERMINAL
  1544. tools.PokazWiadomosc("MATRYCA","Show Long Date", LongDate);
  1545. #endif
  1546. }
  1547. }
  1548.  
  1549. // --------------------------------------------------------------------------------------------------- //
  1550. // S H O W S H O R T D A T E // <--- SHOW SHORT DATE
  1551. // --------------------------------------------------------------------------------------------------- //
  1552.  
  1553. void Matryca::ShowShortDate()
  1554. {
  1555. if(P.displayAnimate())
  1556. {
  1557. P.displayText(ShortDate, PA_CENTER, 20, 0, efekt[3].effect, efekt[3].effect);
  1558.  
  1559. #if TERMINAL
  1560. tools.PokazWiadomosc("MATRYCA","Show Short Date", ShortDate);
  1561. #endif
  1562. }
  1563. }
  1564.  
  1565. // --------------------------------------------------------------------------------------------------- //
  1566. // S H O W S H O R T T I M E // <--- SHOW SHORT TIME
  1567. // --------------------------------------------------------------------------------------------------- //
  1568.  
  1569. void Matryca::ShowShortTime()
  1570. {
  1571. if(P.displayAnimate())
  1572. {
  1573. uint8_t curEFX = ESP8266TrueRandom.random(0, EffectSize - 1); // wylosuj efekt
  1574.  
  1575. P.displayText(ShortTime, PA_CENTER, efekt[curEFX].speed, efekt[curEFX].pause,
  1576. efekt[curEFX].effect, efekt[curEFX].effect);
  1577. #if TERMINAL
  1578. tools.PokazWiadomosc("MATRYCA","Show Short Time", ShortTime);
  1579. #endif
  1580. }
  1581. }
  1582.  
  1583. // --------------------------------------------------------------------------------------------------- //
  1584. // D A T A 2 B U F O R --- buduje bufory: ShortDate, LongDate --- data z serwera NTP // <--- Data do Bufora
  1585. // --------------------------------------------------------------------------------------------------- //
  1586.  
  1587. void Matryca::Data2Bufor()
  1588. {
  1589. // przygotuj długą datę do wyświetlenia i zapisz ją w buforze char LongDate
  1590. String ldate = String(DAY[czas.DzienTygodnia]) + " " + String(czas.DzienMiesiaca) + " "
  1591. + String(MONTH[czas.Miesiac]) + " " + String(czas.Rok);
  1592.  
  1593. int str_len = ldate.length() + 1; // oblicz dlugosc STRING ldate
  1594. ldate.toCharArray(LongDate, str_len) ; // kopiuj STRING do CHAR
  1595.  
  1596. // przygotuj krótką datę do wyświetlenia i zapisz ją w buforze char ShortDate
  1597.  
  1598. String sdate = String(czas.DzienMiesiaca) + " " + String(MONTH[czas.Miesiac]) + " " + String(czas.Rok);
  1599. czas.SformatowanaData = sdate;
  1600.  
  1601. str_len = sdate.length() + 1;
  1602. sdate.toCharArray(ShortDate, str_len);
  1603.  
  1604. #if TERMINAL
  1605. tools.PokazWiadomosc("MATRYCA","Data2Bufor", "Bufory daty zbudowane");
  1606. #endif
  1607. }
  1608.  
  1609. // --------------------------------------------------------------------------------------------------- //
  1610. // T I M E 2 B U F O R --- buduje bufory: ShortTime --- czas z serwera NTP // <- Czas do BUFORA
  1611. // --------------------------------------------------------------------------------------------------- //
  1612.  
  1613. void Matryca::Czas2Bufor()
  1614. {
  1615. // przygotuj krótki czas do wyświetlenia i zapisz ją w buforze char ShortTime
  1616. czas.SformatowanyCzas ="";
  1617.  
  1618. if(czas.Godzina < 10) czas.SformatowanyCzas += "0"; czas.SformatowanyCzas += String(czas.Godzina) + ":";
  1619. if(czas.Minuta < 10) czas.SformatowanyCzas += "0"; czas.SformatowanyCzas += String(czas.Minuta) + ":";
  1620. if(czas.Sekunda < 10) czas.SformatowanyCzas += "0"; czas.SformatowanyCzas += String(czas.Sekunda);
  1621.  
  1622. int str_len = czas.SformatowanyCzas.length() + 1;
  1623. czas.SformatowanyCzas.toCharArray(ShortTime, str_len);
  1624.  
  1625.  
  1626. #if TERMINAL
  1627. tools.PokazWiadomosc("MATRYCA","Czas2Bufor", "Bufory czasu zbudowane");
  1628. #endif
  1629.  
  1630. F_now_godzina = czas.Godzina; // wykorzystane przez Time_EXMSG !!!
  1631. }
  1632.  
  1633. // =================================================================================================== //
  1634. // === Pokazuje Czas - typ 1 (HH : MM . SS) ========================================================== // <- Pokaz Czas (duzy zegar)
  1635. // =================================================================================================== //
  1636.  
  1637. void Matryca :: PokazCzas_Typ1()
  1638. {
  1639. char TimeBufor[20] = " TOMEK "; // bufor do przechowywania czasu
  1640.  
  1641. strcpy(TimeBufor, DuzeCyfry[czas.Godzina / 10]);
  1642. strcat(TimeBufor, DuzeCyfry[czas.Godzina % 10]);
  1643.  
  1644. if(czas.Sekunda % 2) strcat(TimeBufor, "\24");
  1645. else strcat(TimeBufor, "\26");
  1646.  
  1647. strcat(TimeBufor, DuzeCyfry[czas.Minuta / 10]);
  1648. strcat(TimeBufor, DuzeCyfry[czas.Minuta % 10]);
  1649.  
  1650. strcat(TimeBufor, "\25");
  1651.  
  1652. strcat(TimeBufor, DuzeCyfry[czas.Sekunda / 10]);
  1653. strcat(TimeBufor, DuzeCyfry[czas.Sekunda % 10]);
  1654.  
  1655. P.displayText(TimeBufor, PA_LEFT, 50, 1000, PA_PRINT, PA_SCROLL_UP);
  1656. P.displayAnimate();
  1657. }
  1658.  
  1659. // =================================================================================================== //
  1660. // === Pokazuje Czas - typ 2 (HH : MM . SS) ========================================================== // <- Pokaz Czas (Normalny zegar)
  1661. // =================================================================================================== //
  1662.  
  1663. void Matryca :: PokazCzas_Typ2()
  1664. {
  1665. char TimeBufor[20] = ""; // bufor do przechowywania czasu
  1666.  
  1667. strcpy(TimeBufor, NormalneCyfry[czas.Godzina / 10]);
  1668. strcpy(TimeBufor, "ą");
  1669. strcat(TimeBufor, NormalneCyfry[czas.Godzina % 10]);
  1670.  
  1671. if(czas.Sekunda % 2) strcat(TimeBufor, "\310"); // octal 310 - mały dwukropek
  1672. else strcat(TimeBufor, "\311"); // octal 311 - mała spacja
  1673.  
  1674. strcat(TimeBufor, NormalneCyfry[czas.Minuta / 10]);
  1675. strcat(TimeBufor, NormalneCyfry[czas.Minuta % 10]);
  1676.  
  1677. strcat(TimeBufor, "\312"); // octal 312 - mała kropka
  1678.  
  1679. strcat(TimeBufor, MaleCyfry[czas.Sekunda / 10]);
  1680. strcat(TimeBufor, MaleCyfry[czas.Sekunda % 10]);
  1681.  
  1682. P.displayText(TimeBufor, PA_CENTER, 50, 1000, PA_PRINT, PA_SCROLL_UP);
  1683. P.displayAnimate();
  1684. }
  1685.  
  1686. // --------------------------------------------------------------------------------------------------- //
  1687. // W E A T H E R --- buduje bufory: Zachmurzenie, Widzialnosc, WschodSlonca, ZachodSłonca ----------- // <--- POGODA do Bufora
  1688. // --------------------------------------------------------------------------------------------------- //
  1689.  
  1690. void Matryca::Dane2Bufor()
  1691. {
  1692. String sBufor = "";
  1693. int str_len = 0;
  1694.  
  1695. // przygotuj bufory pogodowe -------------------------------------- //
  1696.  
  1697. // ---------------------------------------------------------------- //
  1698. // Z A C H M U R Z E N I E ---------------------------------------- //
  1699.  
  1700. sBufor = "Cloudy: " + String(pogoda.zachmurzenie) + " %";
  1701. str_len = sBufor.length() + 1;
  1702. sBufor.toCharArray(Zachmurzenie, str_len);
  1703.  
  1704. // ---------------------------------------------------------------- //
  1705. // W I D Z I A L N O Ś Ć ------------------------------------------ //
  1706.  
  1707. sBufor = "";
  1708. sBufor = "visibility: " + String(pogoda.widzialnosc/1000) + "km";
  1709. str_len = sBufor.length() + 1;
  1710. sBufor.toCharArray(Widocznosc, str_len);
  1711.  
  1712. // ---------------------------------------------------------------- //
  1713. // W S C H O D S L O N C A -------------------------------------- //
  1714.  
  1715. sBufor ="";
  1716. sBufor = "Sunrise " + String(czas.wschod_slonca);
  1717. str_len = sBufor.length() + 1;
  1718. sBufor.toCharArray(WschodSlonca, str_len);
  1719.  
  1720. // ---------------------------------------------------------------- //
  1721. // Z A C H O D S L O N C A -------------------------------------- //
  1722.  
  1723. sBufor ="";
  1724. sBufor = "Sunset " + String(czas.zachod_slonca);
  1725. str_len = sBufor.length() + 1;
  1726. sBufor.toCharArray(ZachodSlonca, str_len);
  1727.  
  1728. // ---------------------------------------------------------------- //
  1729. // --- temperatura do bufora Temperatura -------------------------- //
  1730.  
  1731. sBufor = "Temp. " + String(pogoda.temperatura) + " C";
  1732. str_len = sBufor.length() + 1;
  1733. sBufor.toCharArray(Temperatura, str_len);
  1734.  
  1735. // ---------------------------------------------------------------- //
  1736. // --- cisnienie do bufora Cisnienie ------------------------------ //
  1737.  
  1738. sBufor = "Cisnienie : " + String(pogoda.cisnienie) + " hPa";
  1739. str_len = sBufor.length() + 1;
  1740. sBufor.toCharArray(Cisnienie, str_len);
  1741.  
  1742. // ---------------------------------------------------------------- //
  1743. // --- wilgotnosc do bufora Wilgornosc ---------------------------- //
  1744.  
  1745. sBufor = "Wilgotnosc : " + String(pogoda.wilgotnosc) + " % ";
  1746. str_len = sBufor.length() + 1;
  1747. sBufor.toCharArray(Wilgotnosc, str_len);
  1748.  
  1749. // ---------------------------------------------------------------- //
  1750. // --- predkosc wiatru do bufora Wiatr ---------------------------- //
  1751.  
  1752. sBufor = "Wind: " + String(pogoda.wiatr) + " km/h ";
  1753. str_len = sBufor.length() + 1;
  1754. sBufor.toCharArray(Wiatr, str_len);
  1755. }
  1756.  
  1757. // =================================================================================================== //
  1758. // === Pokazuje Pogode =============================================================================== // <- Wyswietl Pogodę
  1759. // =================================================================================================== //
  1760.  
  1761. void Matryca::WyswietlPogode()
  1762. {
  1763. static byte przelacznik = 0; // przełącznik dla switch case
  1764.  
  1765. if(P.displayAnimate())
  1766. {
  1767. switch ( przelacznik )
  1768. {
  1769. case 0 : ShowTemperature(); przelacznik ++; break;
  1770. case 1 : ShowPressure(); przelacznik ++; break;
  1771. case 2 : ShowWind(); przelacznik ++; break;
  1772. case 3 : ShowSunrise(); przelacznik ++; break;
  1773. case 4 : ShowSunset(); przelacznik ++; break;
  1774. case 5 : ShowClouds(); przelacznik ++; break;
  1775. case 6 : ShowVisibility(); przelacznik ++; break;
  1776. case 7 : ShowHumidity(); przelacznik = 0; break;
  1777. default : przelacznik = 0; break;
  1778. }
  1779. }
  1780. }
  1781.  
  1782. // --------------------------------------------------------------------------------------------------- //
  1783. // S H O W T E M P E R A T U R E // <--- SHOW TEMPERATURE
  1784. // --------------------------------------------------------------------------------------------------- //
  1785.  
  1786. void Matryca::ShowTemperature()
  1787. {
  1788. if(P.displayAnimate())
  1789. {
  1790. uint8_t randFX = ( ESP8266TrueRandom.random(0, 100) ) % 2; // losuj: duszek lub efekt
  1791.  
  1792. if( randFX )
  1793. {
  1794. uint8_t curEFX = ESP8266TrueRandom.random(0, SpriteSize - 1);
  1795.  
  1796. P.setSpriteData(sprite[curEFX].data,sprite[curEFX].width,sprite[curEFX].frames,
  1797. sprite[curEFX].data,sprite[curEFX].width,sprite[curEFX].frames);
  1798.  
  1799. P.displayText(Temperatura, PA_CENTER, 20, 100, PA_SPRITE, PA_SPRITE);
  1800. }
  1801. else
  1802. {
  1803. uint8_t curEFX = ESP8266TrueRandom.random(0, EffectSize - 1);
  1804.  
  1805. P.displayText(Temperatura, PA_CENTER, efekt[curEFX].speed, efekt[curEFX].pause,
  1806. efekt[curEFX].effect, efekt[curEFX].effect);
  1807. }
  1808.  
  1809. // ---------------------------------------------------------------------------- //
  1810.  
  1811. #if TERMINAL
  1812. tools.PokazWiadomosc("MATRYCA","Show Temperature", Temperatura);
  1813. #endif
  1814. }
  1815. }
  1816.  
  1817. // --------------------------------------------------------------------------------------------------- //
  1818. // S H O W P R E S S U R E // <--- SHOW PRESSURE
  1819. // --------------------------------------------------------------------------------------------------- //
  1820.  
  1821. void Matryca::ShowPressure()
  1822. {
  1823. if(P.displayAnimate())
  1824. {
  1825. P.displayText(Cisnienie, PA_CENTER, 20, 0, efekt[3].effect, efekt[3].effect);
  1826.  
  1827. #if TERMINAL
  1828. tools.PokazWiadomosc("MATRYCA","Show Pressure", Cisnienie);
  1829. #endif
  1830. }
  1831. }
  1832.  
  1833. // --------------------------------------------------------------------------------------------------- //
  1834. // S H O W H U M I D I T Y // <--- SHOW HUMIDITY
  1835. // --------------------------------------------------------------------------------------------------- //
  1836.  
  1837. void Matryca::ShowHumidity()
  1838. {
  1839. if(P.displayAnimate())
  1840. {
  1841. P.displayText(Wilgotnosc, PA_CENTER, 20, 0, efekt[3].effect, efekt[3].effect);
  1842.  
  1843. #if TERMINAL
  1844. tools.PokazWiadomosc("MATRYCA","Show Humidity", Wilgotnosc);
  1845. #endif
  1846. }
  1847. }
  1848.  
  1849. // --------------------------------------------------------------------------------------------------- //
  1850. // S H O W W I N D // <--- SHOW WIND
  1851. // --------------------------------------------------------------------------------------------------- //
  1852.  
  1853. void Matryca::ShowWind()
  1854. {
  1855. if(P.displayAnimate())
  1856. {
  1857. uint8_t randFX = ( ESP8266TrueRandom.random(0, 100) ) % 2; // losuj: duszek lub efekt
  1858.  
  1859. if( randFX ) // jeśli 1 to duszek
  1860. {
  1861. uint8_t curEFX = ESP8266TrueRandom.random(0, SpriteSize - 1); // wylosuj duszka
  1862.  
  1863. P.setSpriteData(sprite[curEFX].data,sprite[curEFX].width,sprite[curEFX].frames,
  1864. sprite[curEFX].data,sprite[curEFX].width,sprite[curEFX].frames);
  1865.  
  1866. P.displayText(Wiatr, PA_CENTER, 20, 100, PA_SPRITE, PA_SPRITE);
  1867. }
  1868. else
  1869. {
  1870. uint8_t curEFX = ESP8266TrueRandom.random(0, EffectSize - 1);
  1871.  
  1872. P.displayText(Wiatr, PA_CENTER, efekt[curEFX].speed, efekt[curEFX].pause,
  1873. efekt[curEFX].effect, efekt[curEFX].effect);
  1874. }
  1875.  
  1876. #if TERMINAL
  1877. tools.PokazWiadomosc("MATRYCA","Show Wind", Wiatr);
  1878. #endif
  1879. }
  1880. }
  1881.  
  1882. // --------------------------------------------------------------------------------------------------- //
  1883. // S H O W S U N R I S E // <--- SHOW SUNRISE
  1884. // --------------------------------------------------------------------------------------------------- //
  1885.  
  1886. void Matryca::ShowSunrise()
  1887. {
  1888. if(P.displayAnimate())
  1889. {
  1890. uint8_t randFX = ( ESP8266TrueRandom.random(0, 100) ) % 2; // losuj: duszek lub efekt
  1891.  
  1892. if( randFX ) // jeśli 1 to duszek
  1893. {
  1894. uint8_t curEFX = ESP8266TrueRandom.random(0, SpriteSize - 1); // wylosuj duszka
  1895.  
  1896. P.setSpriteData(sprite[curEFX].data,sprite[curEFX].width,sprite[curEFX].frames,
  1897. sprite[curEFX].data,sprite[curEFX].width,sprite[curEFX].frames);
  1898.  
  1899. P.displayText(WschodSlonca, PA_CENTER, 20, 100, PA_SPRITE, PA_SPRITE);
  1900. }
  1901. else // jeśli 0 to efekt
  1902. {
  1903. uint8_t curEFX = ESP8266TrueRandom.random(0, EffectSize - 1); // wylosuj efekt
  1904.  
  1905. P.displayText(WschodSlonca, PA_CENTER, efekt[curEFX].speed, efekt[curEFX].pause,
  1906. efekt[curEFX].effect, efekt[curEFX].effect);
  1907. }
  1908.  
  1909. // ----------------------------------------------------------------------------------------- //
  1910.  
  1911. #if TERMINAL
  1912. tools.PokazWiadomosc("MATRYCA","Show Sunrise", WschodSlonca);
  1913. #endif
  1914. }
  1915. }
  1916.  
  1917. // --------------------------------------------------------------------------------------------------- //
  1918. // S H O W S U N S E T // <--- SHOW SUNSET
  1919. // --------------------------------------------------------------------------------------------------- //
  1920. void Matryca::ShowSunset()
  1921. {
  1922. if(P.displayAnimate())
  1923. {
  1924. uint8_t randFX = ( ESP8266TrueRandom.random(0, 100) ) % 2; // losuj: duszek lub efekt
  1925.  
  1926. if( randFX ) // jeśli 1 to duszek
  1927. {
  1928. uint8_t curEFX = ESP8266TrueRandom.random(0, SpriteSize - 1); // wylosuj duszka
  1929.  
  1930. P.setSpriteData(sprite[curEFX].data,sprite[curEFX].width,sprite[curEFX].frames,
  1931. sprite[curEFX].data,sprite[curEFX].width,sprite[curEFX].frames);
  1932.  
  1933. P.displayText(ZachodSlonca, PA_CENTER, 20, 100, PA_SPRITE, PA_SPRITE);
  1934. }
  1935. else
  1936. {
  1937. uint8_t curEFX = ESP8266TrueRandom.random(0, EffectSize - 1);
  1938.  
  1939. P.displayText(ZachodSlonca, PA_CENTER, efekt[curEFX].speed, efekt[curEFX].pause,
  1940. efekt[curEFX].effect, efekt[curEFX].effect);
  1941. }
  1942.  
  1943. // --------------------------------------------------------------------------------------------- //
  1944.  
  1945. #if TERMINAL
  1946. tools.PokazWiadomosc("MATRYCA","Show Sunset", ZachodSlonca);
  1947. #endif
  1948. }
  1949. }
  1950.  
  1951. // --------------------------------------------------------------------------------------------------- //
  1952. // S H O W C L O U D S // <--- SHOW CLOUDS
  1953. // --------------------------------------------------------------------------------------------------- //
  1954.  
  1955. void Matryca::ShowClouds()
  1956. {
  1957. if(P.displayAnimate())
  1958. {
  1959. uint8_t randFX = ( ESP8266TrueRandom.random(0, 100) ) % 2; // losuj: duszek lub efekt
  1960.  
  1961. if( randFX ) // jeśli 1 to duszek
  1962. {
  1963. uint8_t curEFX = ESP8266TrueRandom.random(0, SpriteSize - 1); // wylosuj duszka
  1964.  
  1965. P.setSpriteData(sprite[curEFX].data,sprite[curEFX].width,sprite[curEFX].frames,
  1966. sprite[curEFX].data,sprite[curEFX].width,sprite[curEFX].frames);
  1967.  
  1968. P.displayText(Zachmurzenie, PA_CENTER, 20, 100, PA_SPRITE, PA_SPRITE);
  1969. }
  1970. else // jeśli 0 to efekt
  1971. {
  1972. uint8_t curEFX = ESP8266TrueRandom.random(0, EffectSize - 1); // wylosuj efekt
  1973.  
  1974. P.displayText(Zachmurzenie, PA_CENTER, efekt[curEFX].speed, efekt[curEFX].pause,
  1975. efekt[curEFX].effect, efekt[curEFX].effect);
  1976. }
  1977.  
  1978. // ----------------------------------------------------------------------------------------- //
  1979.  
  1980. #if TERMINAL
  1981. tools.PokazWiadomosc("MATRYCA","Show Cloud", Zachmurzenie);
  1982. #endif
  1983. }
  1984. }
  1985.  
  1986. // --------------------------------------------------------------------------------------------------- //
  1987. // S H O W V I S I B I L I T Y // <--- SHOW VISIBILITY
  1988. // --------------------------------------------------------------------------------------------------- //
  1989.  
  1990. void Matryca::ShowVisibility()
  1991. {
  1992. if(P.displayAnimate())
  1993. {
  1994. uint8_t randFX = ( ESP8266TrueRandom.random(0, 100) ) % 2; // losuj: duszek lub efekt
  1995.  
  1996. if( randFX ) // jeśli 1 to duszek
  1997. {
  1998. uint8_t curEFX = ESP8266TrueRandom.random(0, SpriteSize - 1); // wylosuj duszka
  1999.  
  2000. P.setSpriteData(sprite[curEFX].data,sprite[curEFX].width,sprite[curEFX].frames,
  2001. sprite[curEFX].data,sprite[curEFX].width,sprite[curEFX].frames);
  2002.  
  2003. P.displayText(Widocznosc, PA_CENTER, 20, 100, PA_SPRITE, PA_SPRITE);
  2004. }
  2005. else // jeśli 0 to efekt
  2006. {
  2007. uint8_t curEFX = ESP8266TrueRandom.random(0, EffectSize - 1); // wylosuj efekt
  2008.  
  2009. P.displayText(Widocznosc, PA_CENTER, efekt[curEFX].speed, efekt[curEFX].pause,
  2010. efekt[curEFX].effect, efekt[curEFX].effect);
  2011. }
  2012.  
  2013. // --------------------------------------------------------------------------------------------- //
  2014.  
  2015. #if TERMINAL
  2016. tools.PokazWiadomosc("MATRYCA","Show Visibility", Widocznosc);
  2017. #endif
  2018. }
  2019. }
  2020.  
  2021. // --------------------------------------------------------------------------------------------------- //
  2022.  
Add Comment
Please, Sign In to add comment