Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // --- File name : matryca.h --- //
- // ------------------------------------------------------------------------------------------------------------------------ //
- // --- class Matryca --- version. ESP --- //
- // ------------------------------------------------------------------------------------------------------------------------ //
- // klasa zbudowana dla urządzeń ESP2886 i ESP32
- // build start : 13.02.2021
- // licencja :
- // e-mail : powerTGS440@gmail.com
- // www : https://arudino-code.blogspot.com/
- // ------------------------------------------------------------------------------------------------------------------------ //
- // --- H I S T O R Y L O G --- //
- // ------------------------------------------------------------------------------------------------------------------------ //
- //
- // v0.017 - monday afrernoon no. 5 --- dodano : ShowWind(); --- metoda publiczna
- // v0.016 - monday afternoon no. 4 --- dodano : ShowHumidity(); --- metoda publiczna
- // v0.015 - monday afternoon no. 3 --- dodano : ShowPressure(); --- metoda publiczna
- // v0.014 - monday afternoon no. 2 --- dodano : ShowTemperature(); --- metoda publiczna
- // v0.013 - monday afternoon no. 1 --- dodano : Time2Char(,,,) --- metoda publiczna
- // v0.012 - monday morning no. 5 --- dodano : ShowShortTime(); --- metoda publiczna
- // v0.011 - monday morning no. 4 --- dodano : Time2Char(,,); --- metoda publiczna
- // v0.010 - monday morning no. 3 --- dodano : Date2Char(,,,); --- metoda publiczna
- // v0.009 - monday morning no. 2 --- dodano : ShowShortDate(); --- metoda publiczna
- // v0.008 - monday morning no. 1 --- dodano : ShowLongDate(); --- metoda publiczna
- // v0.007 - frosty Sunday no. 7 --- dodano : Generator liczb losowych ESP8266TrueRandom
- // v0.006 - frosty Sunday no. 6 --- BUILD : RandomDemo(); --- metoda publiczna
- // v0.005 - frosty Sunday no. 5 --- BUILD : EffectDemo(); --- metoda publiczna
- // v0.004 - frosty Sunday no. 4 --- BUILD : SpriteDemo(); --- metoda publiczna
- // v0.003 - frosty Sunday no. 3 --- IMPORT : EFFECT
- // v0.002 - frosty Sunday no. 2 --- IMPORT : SPRITE
- // v0.001 - frosty Sunday no. 1 --- przebudowa z istniejącej biblioteki matrix.h dla Arduino
- // ------------------------------------------------------------------------------------------------------------------------ //
- // --- I N C L U D E --- //
- // ------------------------------------------------------------------------------------------------------------------------ //
- #include <ESP8266WiFi.h>
- #include <Arduino.h>
- #include <MD_Parola.h>
- #include <MD_MAX72xx.h>
- #include <SPI.h>
- #include "ESP8266TrueRandom.h"
- // ------------------------------------------------------------------------------------------------------------------------ //
- // --- D E F I N E --- //
- // ------------------------------------------------------------------------------------------------------------------------ //
- #define TERMINAL 1 // 0 - wyłącz SERIAL, 1 - włącz SERIAL ---- //
- #define USBSPEED 57600 // 57600 - prędkość Terminala szeregowego - //
- // ------------------------------------------------------------------------------------------------------------------------ //
- // --- D E F I N E --- jeśli LANGUAGE jest 0 to język Polski, jeśli LANGUAGE jest 1 to język ANGIELSKI --- //
- // ------------------------------------------------------------------------------------------------------------------------ //
- #define LANGUAGE 0
- #if LANGUAGE
- #define POLISH 0
- #define ENGLISH 1
- #else
- #define POLISH 1
- #define ENGLISH 0
- #endif
- // ------------------------------------------------------------------------------------------------------------------------ //
- // M E S S E G E D E F I N I T I O N ------------------------------------------------------------------------------------ //
- // ------------------------------------------------------------------------------------------------------------------------ //
- // Moje napisy do wyświetlenia -------------------------------------------------------------------------------------------- //
- // ------------------------------------------------------------------------------------------------------------------------ //
- char MSG_00 [] = "K A B O O M";
- const char MSG_01 [] = "M A R C I N";
- const char MSG_02 [] = "MARCIN SCP!";
- const char MSG_03 [] = "S C P" ;
- const char MSG_04 [] = "GAME OVER";
- const char MSG_05 [] = "P O R T A L";
- const char MSG_06 [] = "KNIGHTS :3";
- const char MSG_07 [] = "HELLO MARCIN";
- const char MSG_08 [] = "I S L A N D";
- const char MSG_09 [] = "MINECRAFT";
- const char MSG_10 [] = "TIME 4 YOU";
- const char MSG_11 [] = "code in c++";
- const char * const MSG [] =
- {
- MSG_00, MSG_01, MSG_02, MSG_03, MSG_04, MSG_05,
- MSG_06, MSG_07, MSG_08, MSG_09, MSG_10, MSG_11
- };
- // ------------------------------------------------------------------------------------------------------------------------ //
- // S P R I T E D E F I N I T I O N -------------------------------------------------------------------------------------- //
- // ------------------------------------------------------------------------------------------------------------------------ //
- // P A C M A N D E F I N I T I O N -------------------------------------------------------------------------------------- //
- // ------------------------------------------------------------------------------------------------------------------------ //
- const uint8_t F_PMAN1 = 6; // rozmiar duszka PACMAN ----------------- //
- const uint8_t W_PMAN1 = 8; // rozmiar duszka PACMAN ----------------- //
- static const uint8_t pacman1[F_PMAN1 * W_PMAN1] PROGMEM = // definicja animacji PACMAN ------------- //
- {
- 0x00, 0x81, 0xc3, 0xe7, 0xff, 0x7e, 0x7e, 0x3c,
- 0x00, 0x42, 0xe7, 0xe7, 0xff, 0xff, 0x7e, 0x3c,
- 0x24, 0x66, 0xe7, 0xff, 0xff, 0xff, 0x7e, 0x3c,
- 0x3c, 0x7e, 0xff, 0xff, 0xff, 0xff, 0x7e, 0x3c,
- 0x24, 0x66, 0xe7, 0xff, 0xff, 0xff, 0x7e, 0x3c,
- 0x00, 0x42, 0xe7, 0xe7, 0xff, 0xff, 0x7e, 0x3c,
- };
- // 293756 / 28612
- // ------------------------------------------------------------------------------------------------------------------------ //
- // S P R I T E : W A V E / W O R M D E F I N I T I O N ---------------------------------------------------------- //
- // ------------------------------------------------------------------------------------------------------------------------ //
- const uint8_t F_WAVE = 14;
- const uint8_t W_WAVE = 14;
- static const uint8_t wave [F_WAVE * W_WAVE] PROGMEM =
- {
- 0x08, 0x04, 0x02, 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80, 0x40, 0x20, 0x10,
- 0x10, 0x08, 0x04, 0x02, 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80, 0x40, 0x20,
- 0x20, 0x10, 0x08, 0x04, 0x02, 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80, 0x40,
- 0x40, 0x20, 0x10, 0x08, 0x04, 0x02, 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80,
- 0x80, 0x40, 0x20, 0x10, 0x08, 0x04, 0x02, 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40,
- 0x40, 0x80, 0x40, 0x20, 0x10, 0x08, 0x04, 0x02, 0x01, 0x02, 0x04, 0x08, 0x10, 0x20,
- 0x20, 0x40, 0x80, 0x40, 0x20, 0x10, 0x08, 0x04, 0x02, 0x01, 0x02, 0x04, 0x08, 0x10,
- 0x10, 0x20, 0x40, 0x80, 0x40, 0x20, 0x10, 0x08, 0x04, 0x02, 0x01, 0x02, 0x04, 0x08,
- 0x08, 0x10, 0x20, 0x40, 0x80, 0x40, 0x20, 0x10, 0x08, 0x04, 0x02, 0x01, 0x02, 0x04,
- 0x04, 0x08, 0x10, 0x20, 0x40, 0x80, 0x40, 0x20, 0x10, 0x08, 0x04, 0x02, 0x01, 0x02,
- 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80, 0x40, 0x20, 0x10, 0x08, 0x04, 0x02, 0x01,
- 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80, 0x40, 0x20, 0x10, 0x08, 0x04, 0x02,
- 0x02, 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80, 0x40, 0x20, 0x10, 0x08, 0x04,
- 0x04, 0x02, 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80, 0x40, 0x20, 0x10, 0x08,
- };
- // ------------------------------------------------------------------------------------------------------------------------ //
- // S P R I T E : G H O S T D E F I N I T I O N ---------------------------------------------------------------------- //
- // ------------------------------------------------------------------------------------------------------------------------ //
- const uint8_t F_PMAN2 = 6; // rozmiar duszka GHOST ----------------- //
- const uint8_t W_PMAN2 = 18; // rozmiar duszka GHOST ----------------- //
- static const uint8_t pacman2[F_PMAN2 * W_PMAN2] PROGMEM = // animacja DUCH goni PACMANA ----------- //
- {
- 0x00, 0x81, 0xc3, 0xe7, 0xff, 0x7e, 0x7e, 0x3c, 0x00, 0x00, 0x00, 0xfe, 0x7b, 0xf3, 0x7f, 0xfb, 0x73, 0xfe,
- 0x00, 0x42, 0xe7, 0xe7, 0xff, 0xff, 0x7e, 0x3c, 0x00, 0x00, 0x00, 0xfe, 0x7b, 0xf3, 0x7f, 0xfb, 0x73, 0xfe,
- 0x24, 0x66, 0xe7, 0xff, 0xff, 0xff, 0x7e, 0x3c, 0x00, 0x00, 0x00, 0xfe, 0x7b, 0xf3, 0x7f, 0xfb, 0x73, 0xfe,
- 0x3c, 0x7e, 0xff, 0xff, 0xff, 0xff, 0x7e, 0x3c, 0x00, 0x00, 0x00, 0xfe, 0x73, 0xfb, 0x7f, 0xf3, 0x7b, 0xfe,
- 0x24, 0x66, 0xe7, 0xff, 0xff, 0xff, 0x7e, 0x3c, 0x00, 0x00, 0x00, 0xfe, 0x73, 0xfb, 0x7f, 0xf3, 0x7b, 0xfe,
- 0x00, 0x42, 0xe7, 0xe7, 0xff, 0xff, 0x7e, 0x3c, 0x00, 0x00, 0x00, 0xfe, 0x73, 0xfb, 0x7f, 0xf3, 0x7b, 0xfe,
- };
- // ------------------------------------------------------------------------------------------------------------------------ //
- // 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 -------------------------------------------- //
- // ------------------------------------------------------------------------------------------------------------------------ //
- const uint8_t F_ROLL1 = 4;
- const uint8_t W_ROLL1 = 8;
- static const uint8_t roll1[F_ROLL1 * W_ROLL1] PROGMEM =
- {
- 0xff, 0x8f, 0x8f, 0x8f, 0x81, 0x81, 0x81, 0xff,
- 0xff, 0xf1, 0xf1, 0xf1, 0x81, 0x81, 0x81, 0xff,
- 0xff, 0x81, 0x81, 0x81, 0xf1, 0xf1, 0xf1, 0xff,
- 0xff, 0x81, 0x81, 0x81, 0x8f, 0x8f, 0x8f, 0xff,
- };
- // ------------------------------------------------------------------------------------------------------------------------ //
- // 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 -------------------------------------------- //
- // ------------------------------------------------------------------------------------------------------------------------ //
- const uint8_t F_ROLL2 = 4;
- const uint8_t W_ROLL2 = 8;
- static const uint8_t roll2 [F_ROLL2 * W_ROLL2] PROGMEM =
- {
- 0x3c, 0x4e, 0x8f, 0x8f, 0x81, 0x81, 0x42, 0x3c,
- 0x3c, 0x72, 0xf1, 0xf1, 0x81, 0x81, 0x42, 0x3c,
- 0x3c, 0x42, 0x81, 0x81, 0xf1, 0xf1, 0x72, 0x3c,
- 0x3c, 0x42, 0x81, 0x81, 0x8f, 0x8f, 0x4e, 0x3c,
- };
- // ------------------------------------------------------------------------------------------------------------------------ //
- // 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 ---------------------------------------------------- //
- // ------------------------------------------------------------------------------------------------------------------------ //
- const uint8_t F_LINES = 3;
- const uint8_t W_LINES = 8;
- static const uint8_t lines [F_LINES * W_LINES] PROGMEM =
- {
- 0xff, 0xff, 0xff, 0x00, 0x00, 0xff, 0x00, 0x00,
- 0xff, 0xff, 0x00, 0xff, 0x00, 0x00, 0xff, 0x00,
- 0xff, 0xff, 0x00, 0x00, 0xff, 0x00, 0x00, 0xff,
- };
- // ------------------------------------------------------------------------------------------------------------------------ //
- // 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 --------------------------------------------------- //
- // ------------------------------------------------------------------------------------------------------------------------ //
- const uint8_t F_ARROW1 = 3;
- const uint8_t W_ARROW1 = 10;
- static const uint8_t arrow1 [F_ARROW1 * W_ARROW1] PROGMEM =
- {
- 0x18, 0x3c, 0x7e, 0xff, 0x7e, 0x00, 0x00, 0x3c, 0x00, 0x00,
- 0x18, 0x3c, 0x7e, 0xff, 0x00, 0x7e, 0x00, 0x00, 0x18, 0x00,
- 0x18, 0x3c, 0x7e, 0xff, 0x00, 0x00, 0x3c, 0x00, 0x00, 0x18,
- };
- // ------------------------------------------------------------------------------------------------------------------------ //
- // 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 ---------------------------------- //
- // ------------------------------------------------------------------------------------------------------------------------ //
- const uint8_t F_ARROW2 = 3;
- const uint8_t W_ARROW2 = 9;
- static const uint8_t arrow2 [F_ARROW2 * W_ARROW2] PROGMEM =
- {
- 0x18, 0x3c, 0x7e, 0xe7, 0x00, 0x00, 0xc3, 0x00, 0x00,
- 0x18, 0x3c, 0x7e, 0xe7, 0xe7, 0x00, 0x00, 0x81, 0x00,
- 0x18, 0x3c, 0x7e, 0xe7, 0x00, 0xc3, 0x00, 0x00, 0x81,
- };
- // ------------------------------------------------------------------------------------------------------------------------ //
- // 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 ------------------------------------------------- //
- // ------------------------------------------------------------------------------------------------------------------------ //
- const uint8_t F_SAILBOAT = 1;
- const uint8_t W_SAILBOAT = 11;
- static const uint8_t sailboat[F_SAILBOAT * W_SAILBOAT] PROGMEM =
- {
- 0x10, 0x30, 0x58, 0x94, 0x92, 0x9f, 0x92, 0x94, 0x98, 0x50, 0x30,
- };
- // ------------------------------------------------------------------------------------------------------------------------ //
- // 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 ------------------------------------------------- //
- // ------------------------------------------------------------------------------------------------------------------------ //
- const uint8_t F_STEAMBOAT = 2;
- const uint8_t W_STEAMBOAT = 11;
- const uint8_t steamboat[F_STEAMBOAT * W_STEAMBOAT] PROGMEM =
- {
- 0x10, 0x30, 0x50, 0x9c, 0x9e, 0x90, 0x91, 0x9c, 0x9d, 0x90, 0x71,
- 0x10, 0x30, 0x50, 0x9c, 0x9c, 0x91, 0x90, 0x9d, 0x9e, 0x91, 0x70,
- };
- // ------------------------------------------------------------------------------------------------------------------------ //
- // S P R I T E : H E A R T D E F I N I T I O N ------------------------------------------------------------------ //
- // ------------------------------------------------------------------------------------------------------------------------ //
- const uint8_t F_HEART = 5;
- const uint8_t W_HEART = 9;
- static const uint8_t heart[F_HEART * W_HEART] PROGMEM =
- {
- 0x0e, 0x11, 0x21, 0x42, 0x84, 0x42, 0x21, 0x11, 0x0e,
- 0x0e, 0x1f, 0x33, 0x66, 0xcc, 0x66, 0x33, 0x1f, 0x0e,
- 0x0e, 0x1f, 0x3f, 0x7e, 0xfc, 0x7e, 0x3f, 0x1f, 0x0e,
- 0x0e, 0x1f, 0x33, 0x66, 0xcc, 0x66, 0x33, 0x1f, 0x0e,
- 0x0e, 0x11, 0x21, 0x42, 0x84, 0x42, 0x21, 0x11, 0x0e,
- };
- // ------------------------------------------------------------------------------------------------------------------------ //
- // 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 -------------------------------------- //
- // ------------------------------------------------------------------------------------------------------------------------ //
- const uint8_t F_INVADER = 2;
- const uint8_t W_INVADER = 10;
- static const uint8_t invader[F_INVADER * W_INVADER] PROGMEM =
- {
- 0x0e, 0x98, 0x7d, 0x36, 0x3c, 0x3c, 0x36, 0x7d, 0x98, 0x0e,
- 0x70, 0x18, 0x7d, 0xb6, 0x3c, 0x3c, 0xb6, 0x7d, 0x18, 0x70,
- };
- // ------------------------------------------------------------------------------------------------------------------------ //
- // 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 ------------------------------------------ //
- // ------------------------------------------------------------------------------------------------------------------------ //
- const uint8_t F_ROCKET = 2;
- const uint8_t W_ROCKET = 11;
- static const uint8_t rocket[F_ROCKET * W_ROCKET] PROGMEM =
- {
- 0x18, 0x24, 0x42, 0x81, 0x99, 0x18, 0x99, 0x18, 0xa5, 0x5a, 0x81,
- 0x18, 0x24, 0x42, 0x81, 0x18, 0x99, 0x18, 0x99, 0x24, 0x42, 0x99,
- };
- // ------------------------------------------------------------------------------------------------------------------------ //
- // S P R I T E : F I R E B A L L D E F I N I T I O N ------------------------------------------------------------ //
- // ------------------------------------------------------------------------------------------------------------------------ //
- const uint8_t F_FBALL = 2;
- const uint8_t W_FBALL = 11;
- static const uint8_t fireball[F_FBALL * W_FBALL] PROGMEM =
- {
- 0x7e, 0xab, 0x54, 0x28, 0x52, 0x24, 0x40, 0x18, 0x04, 0x10, 0x08,
- 0x7e, 0xd5, 0x2a, 0x14, 0x24, 0x0a, 0x30, 0x04, 0x28, 0x08, 0x10,
- };
- // ------------------------------------------------------------------------------------------------------------------------ //
- // S P R I T E : C H E V R O N D E F I N I T I O N -------------------------------------------------------------- //
- // ------------------------------------------------------------------------------------------------------------------------ //
- const uint8_t F_CHEVRON = 1;
- const uint8_t W_CHEVRON = 9;
- static const uint8_t chevron[F_CHEVRON * W_CHEVRON] PROGMEM =
- {
- 0x18, 0x3c, 0x66, 0xc3, 0x99, 0x3c, 0x66, 0xc3, 0x81,
- };
- // ------------------------------------------------------------------------------------------------------------------------ //
- // 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 ---------------------------------------------------- //
- // ------------------------------------------------------------------------------------------------------------------------ //
- const uint8_t F_WALKER = 5;
- const uint8_t W_WALKER = 7;
- static const uint8_t walker[F_WALKER * W_WALKER] PROGMEM =
- {
- 0x00, 0x48, 0x77, 0x1f, 0x1c, 0x94, 0x68,
- 0x00, 0x90, 0xee, 0x3e, 0x38, 0x28, 0xd0,
- 0x00, 0x00, 0xae, 0xfe, 0x38, 0x28, 0x40,
- 0x00, 0x00, 0x2e, 0xbe, 0xf8, 0x00, 0x00,
- 0x00, 0x10, 0x6e, 0x3e, 0xb8, 0xe8, 0x00,
- };
- // ------------------------------------------------------------------------------------------------------------------------ //
- // 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 ----------------------------------------- //
- // ------------------------------------------------------------------------------------------------------------------------ //
- struct Sprite
- {
- const uint8_t *data;
- uint8_t width;
- uint8_t frames;
- };
- Sprite sprite[] = {
- { walker, W_WALKER, F_WALKER },
- { invader, W_INVADER, F_INVADER },
- { chevron, W_CHEVRON, F_CHEVRON },
- { heart, W_HEART, F_HEART },
- { arrow1, W_ARROW1, F_ARROW1 },
- { steamboat, W_STEAMBOAT, F_STEAMBOAT },
- { fireball, W_FBALL, F_FBALL },
- { rocket, W_ROCKET, F_ROCKET },
- { roll2, W_ROLL2, F_ROLL2 },
- { pacman2, W_PMAN2, F_PMAN2 },
- { lines, W_LINES, F_LINES },
- { roll1, W_ROLL1, F_ROLL1 },
- { sailboat, W_SAILBOAT, F_SAILBOAT },
- { arrow2, W_ARROW2, F_ARROW2 },
- { wave, W_WAVE, F_WAVE },
- { pacman1, W_PMAN1, F_PMAN1 }
- };
- // ------------------------------------------------------------------------------------------------------------------------ //
- // --- K A T A L O G E F E K T Ó W --- //
- // ------------------------------------------------------------------------------------------------------------------------ //
- struct Effect
- {
- textEffect_t effect;
- uint16_t speed;
- uint16_t pause;
- }
- efekt [] =
- {
- { PA_PRINT, 1, 1 },
- { PA_SCROLL_UP, 5, 1 },
- { PA_SCROLL_DOWN, 5, 1 },
- { PA_SCROLL_LEFT, 5, 1 },
- { PA_SCROLL_RIGHT, 5, 1 },
- { PA_SPRITE, 5, 1 },
- { PA_SLICE, 1, 1 },
- { PA_MESH, 20, 1 },
- { PA_FADE, 20, 1 },
- { PA_DISSOLVE, 7, 1 },
- { PA_BLINDS, 7, 1 },
- { PA_RANDOM, 3, 1 },
- { PA_WIPE, 5, 1 },
- { PA_WIPE_CURSOR, 4, 1 },
- { PA_SCAN_HORIZ, 4, 1 },
- { PA_SCAN_HORIZX, 4, 1 },
- { PA_SCAN_VERT, 3, 1 },
- { PA_SCAN_VERTX, 3, 1 },
- { PA_OPENING, 3, 1 },
- { PA_OPENING_CURSOR, 4, 1 },
- { PA_CLOSING, 3, 1 },
- { PA_CLOSING_CURSOR, 4, 1 },
- { PA_SCROLL_UP_LEFT, 7, 1 },
- { PA_SCROLL_UP_RIGHT, 7, 1 },
- { PA_SCROLL_DOWN_LEFT, 7, 1 },
- { PA_SCROLL_DOWN_RIGHT, 7, 1 },
- { PA_GROW_UP, 7, 1 },
- { PA_GROW_DOWN, 7, 1 }
- };
- // ------------------------------------------------------------------------------------------------------------------------ //
- // ALL MATRIX DAY to PROGMEM MEMORY !!! ----------------------------------------------------------------------------------- //
- // ------------------------------------------------------------------------------------------------------------------------ //
- // jeśli POLISH jest true / if POLISH is true ----------------------------------------------------------------------------- //
- #if POLISH
- const char DAY_00 [] = "Niedziela";
- const char DAY_01 [] = "Poniedzialek";
- const char DAY_02 [] = "Wtorek";
- const char DAY_03 [] = "Sroda";
- const char DAY_04 [] = "Czwartek";
- const char DAY_05 [] = "Piatek";
- const char DAY_06 [] = "Sobota";
- const char DAY_07 [] = "Data: ";
- #endif
- // jeśli ENGLISH jest true / if ENGLISH is true -------------------------------------------------------------------------- //
- #if ENGLISH
- const char DAY_00 [] = "Sunday";
- const char DAY_01 [] = "Monday";
- const char DAY_02 [] = "Tuesday";
- const char DAY_03 [] = "Wednesday";
- const char DAY_04 [] = "Thursday";
- const char DAY_05 [] = "Friday";
- const char DAY_06 [] = "Saturday";
- const char DAY_07 [] = "Date: ";
- #endif
- const char * DAY [] =
- {
- DAY_00, DAY_01, DAY_02, DAY_03, DAY_04, DAY_05,
- DAY_06, DAY_07
- };
- // jeśli POLISH jest true / if ENGLISH is true --------------------------------------------------------------------------- //
- #if POLISH
- const char MONTH_00 [] = "Error";
- const char MONTH_01 [] = "Styczen";
- const char MONTH_02 [] = "Luty";
- const char MONTH_03 [] = "Marzec";
- const char MONTH_04 [] = "Kwiecien";
- const char MONTH_05 [] = "Maj";
- const char MONTH_06 [] = "Czerwiec";
- const char MONTH_07 [] = "Lipiec";
- const char MONTH_08 [] = "Sierpien";
- const char MONTH_09 [] = "Wrzesien";
- const char MONTH_10 [] = "Pazdziernik";
- const char MONTH_11 [] = "Listopad";
- const char MONTH_12 [] = "Grudzien";
- #endif
- // --- ENGLISH MONTH is LANGUAGE is true --- angielskie miesiące jeśli makro LANGUAGE jest TRUE -------------------------- //
- #if ENGLISH
- const char MONTH_00 [] = "No Month";
- const char MONTH_01 [] = "January";
- const char MONTH_02 [] = "February";
- const char MONTH_03 [] = "March";
- const char MONTH_04 [] = "April";
- const char MONTH_05 [] = "May";
- const char MONTH_06 [] = "June";
- const char MONTH_07 [] = "July";
- const char MONTH_08 [] = "August";
- const char MONTH_09 [] = "September";
- const char MONTH_10 [] = "October";
- const char MONTH_11 [] = "November";
- const char MONTH_12 [] = "December";
- #endif
- const char* const MONTH [] = {
- MONTH_00, MONTH_01, MONTH_02, MONTH_03, MONTH_04, MONTH_05, MONTH_06,
- MONTH_07, MONTH_08, MONTH_09, MONTH_10, MONTH_11, MONTH_12
- };
- // ---------------------------------------------------------------------------------------------------------------- //
- // --- klasa Matryca --- //
- // ---------------------------------------------------------------------------------------------------------------- //
- class Matryca
- {
- // -------------------------------------- //
- // --- zmienne i funkcje prywatne ------- //
- // -------------------------------------- //
- private:
- // -------------------------------------- //
- // --- adres obiektu MD_Parola ---------- //
- // -------------------------------------- //
- MD_Parola &P;
- // -------------------------------------- //
- // --- zmienne prywatne klasy Matryca --- //
- // -------------------------------------- //
- uint8_t SpriteSize = 0; // rozmiar tablicy z duszkami
- uint8_t EffectSize = 0; // rozmiar tablicy z efektami
- uint8_t MaxMsgSize = 0; // rozmiar tablicy z wiadomosciami
- uint8_t MaxDaySize = 0; // rozmiar tablicy z dniami tygodnia
- uint8_t MaxMonthSize = 0; // rozmiar tablicy z miesiacami
- char LongDate[50]; // bufor : długa data
- char ShortDate[50]; // bufor : krótka data
- char ShortTime[20]; // bufor : krotki czas
- char Temperatura[30]; // bufor : temperatura st.C
- char Cisnienie[30]; // bufor : cisnienie hPa
- char Wilgotnosc[30]; // bufor : wilgotnosc %HG
- char Wiatr[30]; // bufor : predkosc wiatru km/h
- // -------------------------------------- //
- // --- zmienne i metody prywatne -------- //
- // -------------------------------------- //
- public:
- // ------------------------------------------------------------------------------ //
- // --- konstruktor -------------------------------------------------------------- //
- // ------------------------------------------------------------------------------ //
- Matryca(MD_Parola & adrP) : P ( adrP ) { }
- // ------------------------------------------------------------------------------ //
- // --- setup -------------------------------------------------------------------- //
- // ------------------------------------------------------------------------------ //
- void Setup()
- {
- // zapisz do zmiennych max. rozmiar tablicy
- // --------------------------------------------------------------------------- //
- SpriteSize = ARRAY_SIZE ( sprite ); // ustal rozmiar tablicy sprite
- EffectSize = ARRAY_SIZE ( efekt ); // ustal rozmiar tablicy effect
- MaxMsgSize = ARRAY_SIZE ( MSG ); // ustal rozmiar tablicy MSG
- MaxDaySize = ARRAY_SIZE ( DAY ); // ustal rozmiar tablicy DAY
- MaxMonthSize = ARRAY_SIZE ( MONTH ); // ustal rozmiar tablicy MONTH
- // --------------------------------------------------------------------------- //
- for (uint8_t i=0; i<EffectSize; i++)
- {
- efekt[i].speed *= P.getSpeed();
- efekt[i].pause *= 500;
- }
- // --------------------------------------------------------------------------- //
- // jeśli TERMINAL włączony
- #if TERMINAL
- Serial.println("SETUP");
- Serial.print("class Matryca -> Setup() -> Rozmiar tablicy /SPRITE/ : ");
- Serial.println( SpriteSize );
- Serial.print("class Matryca -> Setup() -> Rozmiar tablicy/EFFECT/ : ");
- Serial.println( EffectSize );
- Serial.print("class Matryca -> Setup() -> Rozmiar tablicy /DAY/ : ");
- Serial.println( MaxDaySize );
- Serial.print("class Matryca -> Setup() -> Rozmiar tablicy /MONTH/ : ");
- Serial.println( MaxMonthSize );
- Serial.print("class Matryca -> Setup() -> Rozmiar tablicy /MSG/ : ");
- Serial.println( MaxMsgSize );
- #endif
- }
- // ------------------------------------------------------------------------------ //
- // --- PRIVATE METHOD --- METODY PRYWATNE --- DEKLARACJE ------------------------ //
- // ------------------------------------------------------------------------------ //
- // ------------------------------------------------------------------------------ //
- // --- PUBLIC METHOD --- METODY PUBLICZNE --- DEKLARACJE ------------------------ //
- // ------------------------------------------------------------------------------ //
- void SpriteDemo(); // demo z duszkami
- void EffectDemo(); // demo z efektami
- void RandomDemo(); // demo : duszki lub efekty
- void ShowLongDate(); // wyswietl dluga date
- void ShowShortDate(); // wyswietl krotka date
- void ShowShortTime(); // pokaz czas - wersja Short
- void Date2Char(uint8_t day_of_week, uint8_t day, uint8_t month, uint16_t year);
- void Time2Char(uint8_t Godzina, uint8_t Minuta, uint8_t Sekunda);
- void Temp2Char( double temperatura, int cisnienie, int wilgotnosc, int wiatr);
- void ShowTemperature();
- void ShowPressure();
- void ShowHumidity();
- void ShowWind();
- };
- // --------------------------------------------------------------------------------------------------- //
- // --- PRIVATE METHOD --- METODY PRYWATNE ------------------------------------------------------------ //
- // --------------------------------------------------------------------------------------------------- //
- // --------------------------------------------------------------------------------------------------- //
- // --- PUBLIC METHOD --- METODY PUBLICZNE ------------------------------------------------------------ //
- // --------------------------------------------------------------------------------------------------- //
- //
- // void Matryca::SpriteDemo(); // demo z duszkami, napisy z listy MSG[]
- // void Matryca::EffectDemo(); // demo z efektami, napisy z listy MSG[]
- // void Matryca::RandomDemo(); // demo losowe (duszki, efekty)
- // void Matryca::ShowLongDate(); // pokazuje długą datę - scroll w lewo
- // void Matryca::ShowShortDate(); // pokazuje krótką datę - scroll w prawo
- // void Matryca::ShowShortTime(); // pokazuje czas - efekt losowy
- // void Matryca::Date2Char(); // buduje bufor char ShortDate i LongDate
- // void Matryca::Time2Char(); // buduje bufor char ShortTime
- // void Matryca::Temp2Char(); // buduje bufory char: temp, wilg, cisn, wiatr
- // void Matryca::ShowTemperature(); // pokaz temperature st.C - scroll w lewo
- // void Matryca::ShowPressure(); // poaz cisnienie atmosferyczne - scrool w lewo
- // void Matryca::ShowHumidity(); // pokaz wilgotnosc powietrza - scrool w lewo
- // void Matryca::ShowWind(); // pokaz predkosc wiatru -scrool w lewo
- //
- // --------------------------------------------------------------------------------------------------- //
- // --- Demo z duszkami - wykorzystuje napisy z tablicy MSG ------------------------------------------- //
- // --------------------------------------------------------------------------------------------------- //
- void Matryca::SpriteDemo() //
- { //
- if (P.displayAnimate()) //
- { //
- uint8_t curEFX = ESP8266TrueRandom.random(0, SpriteSize - 1); // wylosuj duszka ---------- //
- uint8_t curMSG = ESP8266TrueRandom.random(0, MaxMsgSize - 1); // wylosuj napis ----------- //
- //
- P.setSpriteData(sprite[curEFX].data,sprite[curEFX].width,sprite[curEFX].frames, // wejście duszka
- sprite[curEFX].data,sprite[curEFX].width,sprite[curEFX].frames); // wyjście duszka
- //
- P.displayText(MSG[curMSG], PA_CENTER, 20, 100, PA_SPRITE, PA_SPRITE); //
- //
- #if TERMINAL //
- Serial.print("class Matryca -> SpriteDemo -> Wyswietlam : "); //
- Serial.println(MSG[curMSG]); //
- #endif //
- } //
- } //
- // --------------------------------------------------------------------------------------------------- //
- // --- Demo z efektami - wykorzystuje napisy z tablicy MSG ------------------------------------------- //
- // --------------------------------------------------------------------------------------------------- //
- void Matryca::EffectDemo() //
- { //
- if(P.displayAnimate()) //
- { //
- uint8_t curEFX = ESP8266TrueRandom.random(0, EffectSize - 1); // wylosuj efekt ----------- //
- uint8_t curMSG = ESP8266TrueRandom.random(0, MaxMsgSize - 1); // wylosuj napis ----------- //
- //
- P.displayText(MSG[curMSG], PA_CENTER, efekt[curEFX].speed, efekt[curEFX].pause, //
- efekt[curEFX].effect, efekt[curEFX].effect); //
- #if TERMINAL //
- Serial.print("class Matryca -> EffectDemo -> Wyswietlam : "); //
- Serial.println(MSG[curMSG]); //
- #endif //
- } //
- } //
- // --------------------------------------------------------------------------------------------------- //
- // D E M O R A N D O M - S P R I T E O R E F F E C T //
- // --------------------------------------------------------------------------------------------------- //
- void Matryca::RandomDemo() //
- { //
- switch ( ESP8266TrueRandom.random(0,13) ) // wylosuj demo ------------- //
- { //
- case 0 : EffectDemo(); break; //
- case 1 : SpriteDemo(); break; //
- case 2 : ShowLongDate(); break;
- case 3 : ShowShortDate(); break;
- case 4 : ShowShortTime(); break;
- case 5 : ShowTemperature(); break;
- case 6 : ShowPressure(); break;
- case 7 : ShowHumidity(); break;
- case 8 : ShowWind(); break;
- case 9 : EffectDemo(); break;
- case 10 : SpriteDemo(); break;
- case 11 : ShowWind(); break;
- case 12 : ShowPressure(); break;
- default : break; //
- } //
- } //
- // --------------------------------------------------------------------------------------------------- //
- // S H O W L O N G D A T E //
- // --------------------------------------------------------------------------------------------------- //
- void Matryca::ShowLongDate() //
- { //
- if(P.displayAnimate()) //
- { //
- P.displayText(LongDate, PA_CENTER, 20, 0, efekt[3].effect, efekt[3].effect); //
- #if TERMINAL //
- Serial.print("class Matryca -> ShowLongDate -> Wyswietlam : "); //
- Serial.println(LongDate); //
- #endif //
- } //
- } //
- // --------------------------------------------------------------------------------------------------- //
- // S H O W S H O R T D A T E //
- // --------------------------------------------------------------------------------------------------- //
- void Matryca::ShowShortDate() //
- { //
- if(P.displayAnimate()) //
- { //
- P.displayText(ShortDate, PA_CENTER, 20, 0, efekt[3].effect, efekt[3].effect); //
- #if TERMINAL //
- Serial.print("class Matryca -> ShowShortDate -> Wyswietlam : "); //
- Serial.println(ShortDate); //
- #endif //
- } //
- } //
- // --------------------------------------------------------------------------------------------------- //
- // S H O W S H O R T T I M E //
- // --------------------------------------------------------------------------------------------------- //
- void Matryca::ShowShortTime() //
- { //
- if(P.displayAnimate()) //
- { //
- uint8_t curEFX = ESP8266TrueRandom.random(0, EffectSize - 1); // wylosuj efekt ----------- //
- //
- P.displayText(ShortTime, PA_CENTER, efekt[curEFX].speed, efekt[curEFX].pause, //
- efekt[curEFX].effect, efekt[curEFX].effect); //
- #if TERMINAL //
- Serial.print("class Matryca -> ShowShortTime -> Wyswietlam : "); //
- Serial.println(ShortTime); //
- #endif //
- } //
- } //
- // --------------------------------------------------------------------------------------------------- //
- // D A T E 2 C H A R --- buduje bufory: ShortDate, LongDate --- data z serwera NTP //
- // --------------------------------------------------------------------------------------------------- //
- void Matryca::Date2Char(uint8_t day_of_week, uint8_t day, uint8_t month, uint16_t year) //
- { //
- // przygotuj długą datę do wyświetlenia i zapisz ją w buforze char LongDate //
- String ldate = String(DAY[day_of_week]) + " " + String(day) + " " //
- + String(MONTH[month]) + " " + String(year); //
- //
- int str_len = ldate.length() + 1; // oblicz dlugosc STRING ldate --- //
- ldate.toCharArray(LongDate, str_len) ; // kopiuj STRING do CHAR --------- //
- //
- // przygotuj krótką datę do wyświetlenia i zapisz ją w buforze char ShortDate //
- String sdate = String(day) + " " + String(MONTH[month]) + " " + String(year); //
- str_len = sdate.length() + 1; //
- sdate.toCharArray(ShortDate, str_len); //
- //
- #if TERMINAL //
- Serial.println("class Matryca -> Date2Char -> Zbudowano bufory: LongDate i ShortDate "); //
- #endif //
- } //
- // --------------------------------------------------------------------------------------------------- //
- // T I M E 2 C H A R --- buduje bufory: ShortTime --- czas z serwera NTP //
- // --------------------------------------------------------------------------------------------------- //
- void Matryca::Time2Char(uint8_t Godzina, uint8_t Minuta, uint8_t Sekunda) //
- { //
- // przygotuj krótki czas do wyświetlenia i zapisz ją w buforze char ShortTime //
- String stime = "Czas: "; //
- if(Godzina < 10) stime += "0"; stime += String(Godzina) + ":"; //
- if(Minuta < 10) stime += "0"; stime += String(Minuta); //
- int str_len = stime.length() + 1; //
- stime.toCharArray(ShortTime, str_len); //
- //
- #if TERMINAL //
- Serial.println("class Matryca -> Time2Char -> Zbudowano bufor: ShortTime "); //
- #endif //
- } //
- // --------------------------------------------------------------------------------------------------- //
- void Matryca::Temp2Char
- (double temperatura, int cisnienie, int wilgotnosc, int wiatr)
- {
- String temp;
- int str_len = 0;
- // --- temperatura do bufora Temperatura ------------------------- //
- //temp.clear();
- temp = "Temperatura : " + String(temperatura) + " st.C";
- str_len = temp.length() + 1;
- temp.toCharArray(Temperatura, str_len);
- // --- cisnienie do bufora Cisnienie ----------------------------- //
- temp.clear();
- temp = "Cisnienie : " + String(cisnienie) + " hPa";
- str_len = temp.length() + 1;
- temp.toCharArray(Cisnienie, str_len);
- // --- wilgotnosc do bufora Wilgornosc --------------------------- //
- temp.clear();
- temp = "Wilgotnosc : " + String(wilgotnosc) + " % ";
- str_len = temp.length() + 1;
- temp.toCharArray(Wilgotnosc, str_len);
- // --- predkosc wiatru do bufora Wiatr -------------------------- //
- temp.clear();
- temp = "Predkosc wiatru: " + String(wiatr) + " km/h ";
- str_len = temp.length() + 1;
- temp.toCharArray(Wiatr, str_len);
- // -------------------------------------------------------------- //
- temp.clear();
- #if TERMINAL //
- Serial.println("class Matryca -> Temp2Char -> Zbudowano bufory pogodowe ! "); //
- #endif //
- }
- // --------------------------------------------------------------------------------------------------- //
- // S H O W T E M P E R A T U R E //
- // --------------------------------------------------------------------------------------------------- //
- void Matryca::ShowTemperature() //
- { //
- if(P.displayAnimate()) //
- { //
- P.displayText(Temperatura, PA_CENTER, 20, 0, efekt[3].effect, efekt[3].effect); //
- #if TERMINAL //
- Serial.print("class Matryca -> ShowTemperature -> Wyswietlam : "); //
- Serial.println(Temperatura); //
- #endif //
- } //
- } //
- // --------------------------------------------------------------------------------------------------- //
- // S H O W P R E S S U R E //
- // --------------------------------------------------------------------------------------------------- //
- void Matryca::ShowPressure() //
- { //
- if(P.displayAnimate()) //
- { //
- P.displayText(Cisnienie, PA_CENTER, 20, 0, efekt[3].effect, efekt[3].effect); //
- #if TERMINAL //
- Serial.print("class Matryca -> ShowPressure -> Wyswietlam : "); //
- Serial.println(Cisnienie); //
- #endif //
- } //
- } //
- // --------------------------------------------------------------------------------------------------- //
- // S H O W H U M I D I T Y //
- // --------------------------------------------------------------------------------------------------- //
- void Matryca::ShowHumidity() //
- { //
- if(P.displayAnimate()) //
- { //
- P.displayText(Wilgotnosc, PA_CENTER, 20, 0, efekt[3].effect, efekt[3].effect); //
- #if TERMINAL //
- Serial.print("class Matryca -> ShowHumidity -> Wyswietlam : "); //
- Serial.println(Wilgotnosc); //
- #endif //
- } //
- } //
- // --------------------------------------------------------------------------------------------------- //
- // S H O W W I N D //
- // --------------------------------------------------------------------------------------------------- //
- void Matryca::ShowWind() //
- { //
- if(P.displayAnimate()) //
- { //
- P.displayText(Wiatr, PA_CENTER, 20, 0, efekt[3].effect, efekt[3].effect); //
- #if TERMINAL //
- Serial.print("class Matryca -> ShowHumidity -> Wyswietlam : "); //
- Serial.println(Wiatr); //
- #endif //
- } //
- } //
- // --------------------------------------------------------------------------------------------------- //
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement