Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // ------------------------------------------------------------------------------------------------------------ //
- // --- M A X L E D L I B R A R Y B Y T O M A S Z M A J C H E R --- //
- // ------------------------------------------------------------------------------------------------------------ //
- //
- // by Tomasz Majcher (TLG) Trans Line Group, Lubin POLSKA
- // NIP: 692-201-09-78
- // TEL: 667-08-21-21
- // mail: transline.majcher@gmail.com
- //
- // Trans Line Group Tomasz Majcher
- // * usługi transportowe (wywrotki, silosy)
- // * sprzedaw kruszyw (piasek, żwir, pospółka, grysy, tłuczeń, mieszanki, żużel, kryszywa)
- // * kruszywa naturalne : kwarc, granit, bazalt
- // * automatyka przemysłowa i domowa
- // * serwis pojazdów ciężarowych i naczep
- //
- // Biblioteka jest na licencji FreeWare. Można używać, nie wolna ingerować w jaki sposób w kod.
- // Dopuszcza się tylko modyfikacji lub usunięcie kodów ósemkowych polskich ogonków i emotek.
- //
- // ------------------------------------------------------------------------------------------------------------ //
- //
- // do poprawnego wyświetlania niezbędna jest przerobiona przez moją córke biblioteka czcionek z ogonkami
- // i różnymi innymi emotkami... biblioteka niestety nie jest za darmo, bo nie :-) także rozwiązania są trzy
- //
- // * kupić bibliotekę ( 29.99 zł + VAT )
- // * zastąpić wszystkie kody ósemkowe na zwykle znaki
- // * napisać swoją bibliotekę z ogonkami i emotkami
- //
- //
- // ------------------------------------------------------------------------------------------------------------ //
- // --- HISTORIA WERSJI ---------------------------------------------------------------------------------------- //
- // ------------------------------------------------------------------------------------------------------------ //
- //
- // MAX v0.18 BETA - dodano : WeatherTranslator2PL() ->>> metoda prywatna klasy MAX
- // MAX v0.17 BETA - dodano : ShowMsg2Left(char * msg) ->>> medota publiczna klasy MAX
- // MAX v0.16 BETA - dodano : ShowRandomEffect(char *msg) ---> metoda prywatna klasy MAX
- // MAX v0.15 BETA - dodano : ShowRandomSprite(char *msg) ---> metoda prywatna klasy MAX
- // MAX v0.14 BETA - dodano : losowe wyświetlanie napisów MSG z losowymi Efektami lub losowymi animacjami
- // MAX v0.13 BETA - dodano : losowe sprite (RANDOM SIZE)
- // MAX v0.12 BETA - dodano : losowe efekty (RANDOM SIZE)
- // MAX v0.11 BETA - dodano : obsługa Weather Description
- // MAX v0.10 BETA - dodano : przysłowia dnia tygodnia
- // MAX v0.09 BETA - dodano : przysłowia miesiąca
- // MAX v0.08 BETA - dodano : polskie miesiące
- // MAX v0.07 BETA - budowa polskich ogonków (NOT FREE !!!)
- // MAX v0.06 BETA - budowa metody wyświetlającej demo
- // MAX v0.05 BETA - budowa metody tworzącej bufory
- // MAX v0.04 BETA - import effect
- // MAX v0.03 BETA - import sprite
- // MAX v0.02 BETA - budowa klasy
- // MAX v0.01 BETA - pomysł :-)
- //
- // ------------------------------------------------------------------------------------------------------------ //
- // --- DOŁĄCZONE NAGŁÓWKI BIBLIOTEK --------------------------------------------------------------------------- //
- // ------------------------------------------------------------------------------------------------------------ //
- extern ESP32Time rtc;
- extern bool F_Przekaznik;
- extern bool F_BigClock;
- extern bool F_MaxDemo;
- typedef byte BAJT;
- // ------------------------------------------------------------------------------------------------------------- //
- // 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;
- const uint8_t W_PMAN1 = 8;
- static const uint8_t pacman1[F_PMAN1 * W_PMAN1] PROGMEM =
- {
- 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;
- const uint8_t W_PMAN2 = 18;
- static const uint8_t pacman2[F_PMAN2 * W_PMAN2] PROGMEM =
- {
- 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 }
- };
- // ------------------------------------------------------------------------------------------------------------- //
- // --- P R Z Y S Ł O W I A D O M I E S I Ę C Y --- //
- // ------------------------------------------------------------------------------------------------------------- //
- const char MIESIAC_00 [] = "Error";
- const char MIESIAC_01 [] = "Stycze\250";
- const char MIESIAC_02 [] = "Luty";
- const char MIESIAC_03 [] = "Marzec";
- const char MIESIAC_04 [] = "Kwiecie\250";
- const char MIESIAC_05 [] = "Maj";
- const char MIESIAC_06 [] = "Czerwiec";
- const char MIESIAC_07 [] = "Lipiec";
- const char MIESIAC_08 [] = "Sierpie\250";
- const char MIESIAC_09 [] = "Wrzesie\250";
- const char MIESIAC_10 [] = "Pazdziernik";
- const char MIESIAC_11 [] = "Listopad";
- const char MIESIAC_12 [] = "Grudzie\250";
- const char* const MIESIAC [] = {
- MIESIAC_00,
- MIESIAC_01, MIESIAC_02, MIESIAC_03, MIESIAC_04, MIESIAC_05, MIESIAC_06,
- MIESIAC_07, MIESIAC_08, MIESIAC_09, MIESIAC_10, MIESIAC_11, MIESIAC_12
- };
- // ------------------------------------------------------------------------------------------------------------- //
- // --- P R Z Y S Ł O W I A D O D N I A T Y G O D N I A --- //
- // ------------------------------------------------------------------------------------------------------------- //
- // ósemkowo 232 to ć
- // ósemkowo 243 to ś
- // ósemkowo 244 to ó
- // ósemkowo 245 to ę
- // ósemkowo 246 to ż
- // ósemkowo 247 to ł
- // ósemkowo 250 to ń
- // ósemkowo 251 to ź
- // ósemkowo 252 to ą
- const char DZIEN_00 [] = "Dla pracy sa zwyk\247e dzionki, a niedziela dla ma\247\246onki";
- const char DZIEN_01 [] = "Kto w poniedzia\247ek przepr\244\246nuje, we wtorek nie b\245dzie mia\247 co je\243\232";
- const char DZIEN_02 [] = "Cz\247owiek jest jak wtorek : dzi\243 jest, jutro go nie ma";
- const char DZIEN_03 [] = "Wtorek \243rod\245 wzi\252\247 pod brod\245, chod\246my sitkiem czerpa\232 wod\245";
- const char DZIEN_04 [] = "Dzi\243 musi by\232 czwartek. Nigdy nie mog\247em si\245 po\247apa\232, o co chodzi w czwartki";
- const char DZIEN_05 [] = "Tyle na \243wiecie porz\252dku, \246e sobota po pi\252tku";
- const char DZIEN_06 [] = "Kto w sobot\245 pierze, ten si\245 w niedziel\245 nie ubierze";
- const char * const PRZYSLOWIE_DNIA [] = { DZIEN_00, DZIEN_01, DZIEN_02, DZIEN_03, DZIEN_04, DZIEN_05, DZIEN_06 };
- // ------------------------------------------------------------------------------------------------------------- //
- // --- P R Z Y S Ł O W I A D O M I E S I Ę C Y --- //
- // ------------------------------------------------------------------------------------------------------------- //
- // ósemkowo 242 to ć
- // ósemkowo 243 to ś
- // ósemkowo 244 to ó
- // ósemkowo 245 to ę
- // ósemkowo 246 to ż
- // ósemkowo 247 to ł
- // ósemkowo 250 to ń
- // ósemkowo 251 to ź
- // ósemkowo 252 to ą
- const char PRZYSLOWIA_00 [] = "Siala baba mak nie wiedziala jak";
- const char PRZYSLOWIA_01 [] = "Gdy stycze\250 z mg\247\252 chodzi, mokr\252 i wczesn\252 wiosn\252 si\245 zrodzi";
- const char PRZYSLOWIA_02 [] = "Idzie luty, podkuj buty";
- const char PRZYSLOWIA_03 [] = "W marcu jak w garncu";
- const char PRZYSLOWIA_04 [] = "Kwiecie\250 plecie\250, bo przeplata, troch\245 zimy, troch\245 lata";
- const char PRZYSLOWIA_05 [] = "W majuuu jak w rajuuu";
- const char PRZYSLOWIA_06 [] = "Czerwiec na maju zwykle si\245 wzoruje, jego pluchy, pogody, cz\245sto na\243laduje";
- const char PRZYSLOWIA_07 [] = "W lipcu upa\247y, stycze\250 mro\251ny ca\247y";
- const char PRZYSLOWIA_08 [] = "Czego sierpie\250 nie dowarzy, wrzesie\250 tego nie doparzy";
- const char PRZYSLOWIA_09 [] = "Jaki pierwszy wrzesie\250, taka b\245dzie jesie\250";
- const char PRZYSLOWIA_10 [] = "Gdy pa\251dziernik mro\251ny, to nie b\245dzie stycze\250 gro\251ny";
- const char PRZYSLOWIA_11 [] = "Deszcz z pocz\252tkiem listopada, mrozy w styczniu zapowiada";
- const char PRZYSLOWIA_12 [] = "Je\243li w grudniu cz\2450to dmucha, to w marcu i kwietniu plucha";
- const char* const PRZYSLOWIA [] =
- {
- PRZYSLOWIA_00,
- PRZYSLOWIA_01, PRZYSLOWIA_02, PRZYSLOWIA_03, PRZYSLOWIA_04, PRZYSLOWIA_05, PRZYSLOWIA_06,
- PRZYSLOWIA_07, PRZYSLOWIA_08, PRZYSLOWIA_09, PRZYSLOWIA_10, PRZYSLOWIA_11, PRZYSLOWIA_12
- };
- // ------------------------------------------------------------------------------------------------------------- //
- // --- T E K S T Y P O D A N I M A C J Ę --- //
- // ------------------------------------------------------------------------------------------------------------- //
- const char MSG_00 [] = "I \240 ESP32";
- const char MSG_01 [] = "M A R C I N";
- const char MSG_02 [] = "T O M E K";
- const char MSG_03 [] = "S Y L W I A" ;
- const char MSG_04 [] = "W I K T O R I A";
- const char MSG_05 [] = "OPEL ASTRA";
- const char MSG_06 [] = "I \240 TOYOTA";
- const char MSG_07 [] = "I \237 OPEL";
- const char MSG_08 [] = "I \237 TOYOTA";
- const char MSG_09 [] = "MAN TGS 440";
- const char MSG_10 [] = "BOOM";
- const char MSG_11 [] = "T R U C K E R";
- const char MSG_12 [] = "D I A B L O";
- const char MSG_13 [] = "I Love You";
- const char MSG_14 [] = "Hello TOMEK";
- const char MSG_15 [] = "Hello SYLVIA";
- const char MSG_16 [] = "HELLO WIKI";
- const char MSG_17 [] = "HELLO MARCIN";
- const char MSG_18 [] = "I \240 C++";
- const char MSG_19 [] = "I \240 ESP32";
- const char MSG_20 [] = "I \236 SYLVIA";
- const char MSG_21 [] = "I \240 C++";
- const char MSG_22 [] = "I \236 TOYOTA";
- const char MSG_23 [] = "I \240 WIKI";
- 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,
- MSG_12, MSG_13, MSG_14, MSG_15, MSG_16, MSG_17,
- MSG_18, MSG_19, MSG_20, MSG_21, MSG_22, MSG_23
- };
- // ------------------------------------------------------------------------------------------------------------- //
- // --- K A T A L O G C Y F R --- //
- // ------------------------------------------------------------------------------------------------------------- //
- // DUŻE CYFRY 0 1 2 3 4 5 6 7 8 9
- const char * DuzeCyfry[10] = { "\27", "\1", "\2", "\3", "\4", "\5", "\6", "\7", "\10", "\11" };
- // NORMALNE CYFRY 0 1 2 3 4 5 6 7 8 9
- const char * NormalneCyfry[10] = { "\60", "\61", "\62", "\63", "\64", "\65", "\66", "\67", "\70", "\71" };
- // MAŁE CYFRY 0 1 2 3 4 5 6 7 8 9
- const char * MaleCyfry[10] = { "\12", "\13", "\14", "\15", "\16", "\17", "\20", "\21", "\22", "\23" };
- // ------------------------------------------------------------------------------------------------------------- //
- // --- K L A S A M A X --- //
- // ------------------------------------------------------------------------------------------------------------- //
- //
- class MAX
- {
- private: // metody i zmienne prywatne
- // -------------------------------------------------------------------------------------------- //
- MD_Parola &P; // pseudo obiekt
- uint8_t SpriteSize = 0; // rozmiar tablicy z duszkami
- uint8_t EffectSize = 0; // rozmiar tablicy z efektami
- uint8_t MsgSize = 0; // rozmiar tablicy z napisami MSG
- // ******************************************************************************************** //
- // *** B U F O R Y T E K S T O W E D O W Y Ś W I E T L E N I A ************************** //
- // ******************************************************************************************** //
- char BOpisPogody[100]; // bufor : krótki opis podody
- char BTemperatura[50]; // bufor : temperatura w st.C
- char BWilgotnosc[50]; // bufor : wilgotność w % RH
- char BIndexUV[50]; // bufor : UV
- char BWidzialnosc[50]; // bufor : widzialność w km
- char BZachmurzenie[50]; // bufor : zachmurzenie w %
- char BOpady[50]; // bufor : opady deszczu w mm
- char BCisnienie[50]; // bufor : cisnienie atmosferyczne w mPA
- char BWiatr[50]; // bufor : prędkość wiatru w km/h
- char BWiatrPorywy[50]; // bufor : porywy wiatru w km/h
- char BWiatrKierunek[50]; // bufor : kierunek wiatru (kompas)
- char BCzasLokalny[50]; // bufor : czas lokalny z serwera
- char BWschodSlonca[50]; // bufor : wschód słońca
- char BZachodSlonca[50]; // bufor : zachód słońca
- char BWschodKsiezyca[50]; // bufor : wschód księżyca
- char BZachodKsiezyca[50]; // bufor : zachód księżyca
- char BFazaKsiezyca[60]; // bufor : faza księżyca
- char BTlenekWegla[50]; // bufor : tlenek węgla
- char BOzon[50]; // bufor : ozon
- char BDwutlenekAzotu[50]; // bufor : dwutlenek azotu
- char BDwutlenekSiarki[50]; // bufor : dwutlenek siarki
- char BPylyPM25[50]; // bufor : pyły PM25
- char BPylyPM10[50]; // bufor : pyły PM10
- char BData[50]; // bufor : data format: dd miesiac rrrr
- char BCzas[50]; // bufor : czas format: gg : mm
- char BPrzyslowiaM[100]; // bufor : przysłowie dla miesiąca
- char BPrzyslowiaD[100]; // bufor : przysłowie dla dnia
- char BFreeRam[50]; // bufor : wolna pamięć RAM
- char BFreqCpu[50]; // bufor : prędkość CPU
- char BOpis[50]; // bufor : miasto/kraj
- char BPrzekaznik[50]; // bufor : przekaznik
- // ******************************************************************************************** //
- // *** M E T O D Y P R Y W A T N E K L A S Y M A X ************************************** //
- // ******************************************************************************************** //
- void ShowRandomMsg(); // wyświetla losowy napis MSG
- void ShowRandomSprite(char *msg); // wyświetla losowy SPRITE
- void ShowRandomEffect(char *msg); // wyświetla losowy EFFKT
- void Scroll2Right(char *msg); // wyświetl napis -> scroll w prawo
- void Scroll2Left(char *msg); // wyświetl napis -> scroll w lewo
- void TimeUpdate(); // aktualizuj czas
- void FreeRam(); // wolna pamięć RAM
- void FreqCpu(); // prędkośc CPU
- void WeatherTranslate2PL(); // translator EN/PL dla macierzy MAX
- public: // metody i zmienne publiczne
- // -------------------------------------------------------------------------------------------- //
- MAX(MD_Parola & adrP) : P ( adrP ) { } // konstruktor domyślny
- void Setup(); // Setup klasy MAX
- void ShowBigClock(); // pokaz zegar
- void PrepareBufor(); // przygotuj bufory do wyświetlenia
- void ShowTest();
- void ShowMsg2Left(char *msg); // pokaż scroll w lewo (msg)
- };
- //
- // ------------------------------------------------------------------------------------------------------------- //
- // --- M E T O D Y P R Y W A T N E --- //
- // ------------------------------------------------------------------------------------------------------------- //
- // --- Wysietla wiadomosc z losowym SPRITE --- //
- // ------------------------------------------------------------------------------------------------------------- //
- //
- void MAX::ShowRandomSprite(char *msg)
- {
- if(P.displayAnimate())
- {
- BAJT curEFX = random(0, SpriteSize - 1);
- P.setSpriteData(sprite[curEFX].data,sprite[curEFX].width,sprite[curEFX].frames, sprite[curEFX].data,sprite[curEFX].width,sprite[curEFX].frames);
- P.displayText(msg, PA_CENTER, 20, 100, PA_SPRITE, PA_SPRITE);
- }
- }
- //
- // ------------------------------------------------------------------------------------------------------------- //
- // --- M E T O D Y P R Y W A T N E --- //
- // ------------------------------------------------------------------------------------------------------------- //
- // --- Przygotuj bufory do wyświetlenia --- //
- // ------------------------------------------------------------------------------------------------------------- //
- //
- void MAX::WeatherTranslate2PL()
- {
- String bufor;
- // ósemkowo 242 to ć
- // ósemkowo 243 to ś
- // ósemkowo 244 to ó
- // ósemkowo 245 to ę
- // ósemkowo 246 to ż
- // ósemkowo 247 to ł
- // ósemkowo 250 to ń
- // ósemkowo 251 to ź
- // ósemkowo 252 to ą
- if ( pogoda.kondycja == "Sunny" ) bufor = "S\247onecznie";
- else if ( pogoda.kondycja == "Partly cloudy" ) bufor = "Cz\245\243ciowe zachmurzenie";
- else if ( pogoda.kondycja == "Cloudy" ) bufor = "Pochmurnie";
- else if ( pogoda.kondycja == "Overcast" ) bufor = "Pos\245pnie";
- else if ( pogoda.kondycja == "Mist" ) bufor = "Zamglenie";
- else if ( pogoda.kondycja == "Patchy rain possible" ) bufor = "Mo\246liwy przelotny deszcz";
- else if ( pogoda.kondycja == "Patchy snow possible" ) bufor = "Mo\246liwe nieregularne opady \243niegu";
- else if ( pogoda.kondycja == "Patchy sleet possible" ) bufor = "Mo\246liwe niejednolite opady \243niegu";
- else if ( pogoda.kondycja == "Patchy freezing drizzle possible" ) bufor = "Mo\246liwa nieregularna marzn\252ca m\246awka";
- else if ( pogoda.kondycja == "Thundery outbreaks possible" ) bufor = "Mo\246liwe wybuchy piorun\244w";
- else if ( pogoda.kondycja == "Blowing snow" ) bufor = "\243nie\246yca";
- else if ( pogoda.kondycja == "Blizzard" ) bufor = "Burza \243nie\246na";
- else if ( pogoda.kondycja == "Fog" ) bufor = "Mg\247a";
- else if ( pogoda.kondycja == "Freezing fog" ) bufor = "Marzn\252ca mg\247a";
- else if ( pogoda.kondycja == "Patchy light drizzle" ) bufor = "Nieregularna lekka m\246awka";
- else if ( pogoda.kondycja == "Light drizzle" ) bufor = "Lekka m\246awka";
- else if ( pogoda.kondycja == "Freezing drizzle" ) bufor = "Marzn\252ca m\246awka";
- else if ( pogoda.kondycja == "Heavy freezing drizzle" ) bufor = "Silna marzn\252ca m\246awka";
- else if ( pogoda.kondycja == "Patchy light rain" ) bufor = "Niejednolity, lekki deszcz";
- else if ( pogoda.kondycja == "Light rain" ) bufor = "Lekki deszcz";
- else if ( pogoda.kondycja == "Moderate rain at times" ) bufor = "Czasami umiarkowany deszcz";
- else if ( pogoda.kondycja == "Moderate rain" ) bufor = "Umiarkowany deszcz";
- else if ( pogoda.kondycja == "Heavy rain at times" ) bufor = "Czasami ulewny deszcz";
- else if ( pogoda.kondycja == "Heavy rain" ) bufor = "Ulewa";
- else if ( pogoda.kondycja == "Light freezing rain" ) bufor = "Lekki marzn\252cy deszcz";
- else if ( pogoda.kondycja == "Moderate or heavy freezing rain" ) bufor = "Umiarkowany lub silny marzn\252cy deszcz";
- else if ( pogoda.kondycja == "Light sleet" ) bufor = "Lekki deszcz ze \243niegiem";
- else if ( pogoda.kondycja == "Moderate or heavy sleet" ) bufor = "Umiarkowany lub obfity deszcz ze \243niegiem";
- else if ( pogoda.kondycja == "Patchy light snow" ) bufor = "Niejednolity, lekki \243nieg";
- else if ( pogoda.kondycja == "Light snow" ) bufor = "Lekkie opady \243niegu";
- else if ( pogoda.kondycja == "Patchy moderate snow" ) bufor = "Puszysty, umiarkowany \243nieg";
- else if ( pogoda.kondycja == "Moderate snow" ) bufor = "\243rednie opady \243niegu";
- else if ( pogoda.kondycja == "Patchy heavy snow" ) bufor = "Niejednolity, ci\245\246ki \243nieg";
- else if ( pogoda.kondycja == "Heavy snow" ) bufor = "Du\246e opady \243niegu";
- else if ( pogoda.kondycja == "Ice pellets" ) bufor = "Granulki lodu";
- else if ( pogoda.kondycja == "Light rain shower" ) bufor = "Lekki deszczyk";
- else if ( pogoda.kondycja == "Moderate or heavy rain shower" ) bufor = "Umiarkowany lub ulewny deszcz";
- else if ( pogoda.kondycja == "Torrential rain shower" ) bufor = "Ulewny deszcz";
- else if ( pogoda.kondycja == "Light sleet showers" ) bufor = "Lekkie opady deszczu ze \243niegiem";
- else if ( pogoda.kondycja == "Moderate or heavy sleet showers" ) bufor = "Umiarkowane lub obfite opady deszczu ze \243niegiem";
- else if ( pogoda.kondycja == "Light snow showers" ) bufor = "Lekkie opady \243niegu";
- else if ( pogoda.kondycja == "Moderate or heavy snow showers" ) bufor = "Umiarkowane lub obfite przelotne opady \243niegu";
- else if ( pogoda.kondycja == "Light showers of ice pellets" ) bufor = "Lekkie opady granulatu lodu";
- else if ( pogoda.kondycja == "Moderate or heavy showers of ice pellets" ) bufor = "Umiarkowane lub obfite opady granulatu lodu";
- else if ( pogoda.kondycja == "Patchy light rain with thunder" ) bufor = "Nieregularny, lekki deszcz z grzmotami";
- else if ( pogoda.kondycja == "Moderate or heavy rain with thunder" ) bufor = "Umiarkowany lub ulewny deszcz z grzmotami";
- else if ( pogoda.kondycja == "Moderate or heavy snow with thunder" ) bufor = "Umiarkowany lub ci\245\246ki \243nieg z grzmotami";
- else bufor = pogoda.kondycja; // nie zdefiniowane skopiuj
- // --- OPIS POGODY SKOPIUJ ---------------------------------------------------- //
- strcpy ( BOpisPogody, "Dzi\243 : " ); // Skopiuj do BOpisPogody
- strcat ( BOpisPogody, bufor.c_str() ); // Dodaj do BOpisPogody
- // --- OPIS POGODY GOTOWY ----------------------------------------------------- //
- }
- //
- // ------------------------------------------------------------------------------------------------------------- //
- // --- M E T O D Y P R Y W A T N E --- //
- // ------------------------------------------------------------------------------------------------------------- //
- // --- Wysietla wiadomosc z losowym EFFECTEM --- //
- // ------------------------------------------------------------------------------------------------------------- //
- //
- void MAX::ShowRandomEffect(char *msg)
- {
- if (P.displayAnimate())
- {
- BAJT curEFX = random(0, EffectSize - 1);
- P.displayText(msg, PA_CENTER, efekt[curEFX].speed, efekt[curEFX].pause, efekt[curEFX].effect, efekt[curEFX].effect);
- }
- }
- //
- // ------------------------------------------------------------------------------------------------------------- //
- // --- M E T O D Y P R Y W A T N E --- //
- // ------------------------------------------------------------------------------------------------------------- //
- // --- Wyswietl losowy MSG z losowym efektem SPRITE lub EFFECT --- //
- // ------------------------------------------------------------------------------------------------------------- //
- //
- void MAX::ShowRandomMsg()
- {
- if (P.displayAnimate())
- {
- BAJT randFX = ( random(0, 100) ) % 2;
- BAJT msg = ( random(0, MsgSize) );
- if( randFX )
- {
- BAJT curEFX = random(0, SpriteSize - 1);
- P.setSpriteData(sprite[curEFX].data,sprite[curEFX].width,sprite[curEFX].frames, sprite[curEFX].data,sprite[curEFX].width,sprite[curEFX].frames);
- P.displayText(MSG[msg], PA_CENTER, 20, 100, PA_SPRITE, PA_SPRITE);
- }
- else
- {
- BAJT curEFX = random(0, EffectSize - 1);
- P.displayText(MSG[msg], PA_CENTER, efekt[curEFX].speed, efekt[curEFX].pause, efekt[curEFX].effect, efekt[curEFX].effect);
- }
- }
- }
- //
- // ------------------------------------------------------------------------------------------------------------- //
- // --- M E T O D Y P R Y W A T N E --- //
- // ------------------------------------------------------------------------------------------------------------- //
- // --- Wyswietl scroll w prawo --- //
- // ------------------------------------------------------------------------------------------------------------- //
- //
- void MAX::Scroll2Right(char *msg)
- {
- if(P.displayAnimate())
- {
- P.displayText(msg, PA_RIGHT, 20, 0, PA_SCROLL_RIGHT, PA_SCROLL_RIGHT);
- }
- }
- //
- // ------------------------------------------------------------------------------------------------------------- //
- // --- M E T O D Y P R Y W A T N E --- //
- // ------------------------------------------------------------------------------------------------------------- //
- // --- Wyswietl scroll w lewo --- //
- // ------------------------------------------------------------------------------------------------------------- //
- //
- void MAX::Scroll2Left(char *msg)
- {
- if(P.displayAnimate())
- {
- P.displayText(msg, PA_LEFT, 20, 0, PA_SCROLL_LEFT, PA_SCROLL_LEFT);
- }
- }
- //
- // ------------------------------------------------------------------------------------------------------------- //
- // --- M E T O D Y P R Y W A T N E --- //
- // ------------------------------------------------------------------------------------------------------------- //
- // --- A k t u a l i z a c j a C z a s u --- //
- // ------------------------------------------------------------------------------------------------------------- //
- //
- void MAX::TimeUpdate() // ntp jest aktualizowane co minutę, także wykorzystujemy zegar wewnętrzny ESP32-RTC
- {
- strcpy ( BCzas, "Godzina " );
- if (rtc.getHour(true) < 10) strcat ( BCzas, "0" );
- strcat ( BCzas, String(rtc.getHour(true)).c_str() );
- strcat ( BCzas, ":" );
- if (rtc.getMinute() < 10) strcat ( BCzas, "0" );
- strcat ( BCzas, String(rtc.getMinute()).c_str() );
- }
- //
- // ------------------------------------------------------------------------------------------------------------- //
- // --- M E T O D Y P R Y W A T N E --- //
- // ------------------------------------------------------------------------------------------------------------- //
- // --- I L E W O L N E G O R A M U --- //
- // ------------------------------------------------------------------------------------------------------------- //
- //
- void MAX::FreeRam()
- {
- // ósemkowo 242 to ć
- // ósemkowo 243 to ś
- // ósemkowo 244 to ó
- // ósemkowo 245 to ę
- // ósemkowo 246 to ż
- // ósemkowo 247 to ł
- // ósemkowo 250 to ń
- // ósemkowo 251 to ź
- // ósemkowo 252 to ą
- char bufor[10];
- strcpy ( BFreeRam, "Free RAM " );
- sprintf ( bufor, "%d", ESP.getFreeHeap() / 1000 ); // pokaż w kiloBajtach (to nie Arduino)
- strcat ( BFreeRam, bufor );
- strcat ( BFreeRam, " kBajt\244w" );
- }
- //
- // ------------------------------------------------------------------------------------------------------------- //
- // --- M E T O D Y P R Y W A T N E --- //
- // ------------------------------------------------------------------------------------------------------------- //
- // --- P R Ę D K O Ś C C P U --- //
- // ------------------------------------------------------------------------------------------------------------- //
- //
- void MAX::FreqCpu()
- {
- // ósemkowo 242 to ć
- // ósemkowo 243 to ś
- // ósemkowo 244 to ó
- // ósemkowo 245 to ę
- // ósemkowo 246 to ż
- // ósemkowo 247 to ł
- // ósemkowo 250 to ń
- // ósemkowo 251 to ź
- // ósemkowo 252 to ą
- char bufor[10];
- strcpy ( BFreqCpu, "Pr\245dko\243\242 CPU " );
- sprintf ( bufor, "%d", ESP.getCpuFreqMHz() );
- strcat ( BFreqCpu, bufor );
- strcat ( BFreqCpu, " Mhz" );
- }
- //
- // ------------------------------------------------------------------------------------------------------------- //
- // --- M E T O D Y P U B L I C Z N E --- //
- // ------------------------------------------------------------------------------------------------------------- //
- // --- S E T U P --- //
- // ------------------------------------------------------------------------------------------------------------- //
- void MAX::Setup()
- {
- SpriteSize = ARRAY_SIZE ( sprite );
- EffectSize = ARRAY_SIZE ( efekt );
- MsgSize = ARRAY_SIZE ( MSG );
- for (BAJT i = 0; i < EffectSize; i++ )
- {
- efekt[i].speed *= P.getSpeed();
- efekt[i].pause *= 500;
- }
- }
- // ------------------------------------------------------------------------------------------------------------- //
- // --- M E T O D Y P U B L I C Z N E --- //
- // ------------------------------------------------------------------------------------------------------------- //
- // --- P O K A Z D U Ż Y Z E G A R --- //
- // ------------------------------------------------------------------------------------------------------------- //
- void MAX::ShowBigClock()
- {
- char TimeBufor[20] = " TOMEK "; // bufor do przechowywania czasu
- strcpy(TimeBufor, DuzeCyfry[rtc.getHour(true) / 10]);
- strcat(TimeBufor, DuzeCyfry[rtc.getHour(true) % 10]);
- if(rtc.getSecond() % 2) strcat(TimeBufor, "\24");
- else strcat(TimeBufor, "\26");
- strcat(TimeBufor, DuzeCyfry[rtc.getMinute() / 10]);
- strcat(TimeBufor, DuzeCyfry[rtc.getMinute() % 10]);
- strcat(TimeBufor, "\25");
- strcat(TimeBufor, DuzeCyfry[rtc.getSecond() / 10]);
- strcat(TimeBufor, DuzeCyfry[rtc.getSecond() % 10]);
- if ( P.displayAnimate() )
- {
- P.displayText(TimeBufor, PA_CENTER, 0, 1000, PA_PRINT, PA_PRINT);
- }
- }
- //
- // ------------------------------------------------------------------------------------------------------------- //
- // --- M E T O D Y P U B L I C Z N E --- //
- // ------------------------------------------------------------------------------------------------------------- //
- // --- Przygotuj bufory do wyświetlenia --- //
- // ------------------------------------------------------------------------------------------------------------- //
- //
- void MAX::PrepareBufor()
- {
- char bufor[20];
- String buforek = ""; // śmieszny buforek :-)
- WeatherTranslate2PL(); // przygotuj bufor z polskim opisem pogody z ogonkami pod matrycę MAX
- // --- TEMPERATURA ---------------------------------------------------- //
- strcpy ( BTemperatura, "Temperatura : " );
- sprintf ( bufor, "%2.2f", pogoda.temperatura_C );
- strcat ( BTemperatura, bufor );
- strcat ( BTemperatura, " " );
- strcat ( BTemperatura, "\44" );
- strcat ( BTemperatura, "C" );
- // --- WILGOTNOŚĆ ----------------------------------------------------- //
- strcpy ( BWilgotnosc, "Wilgotno\243\242 Powietrza : " );
- sprintf ( bufor, "%d", pogoda.wilgotnosc);
- strcat ( BWilgotnosc, bufor );
- strcat ( BWilgotnosc, " %RH" );
- // --- INDEX UV ------------------------------------------------------- //
- strcpy ( BIndexUV, "Index UV : " );
- sprintf ( bufor, "%d", pogoda.index_uv );
- strcat ( BIndexUV, bufor );
- // --- WIDZIALNOŚĆ ---------------------------------------------------- //
- strcpy ( BWidzialnosc, "Widzialno\243\242 : " );
- sprintf ( bufor, "%d", pogoda.widzialnosc );
- strcat ( BWidzialnosc, bufor );
- strcat ( BWidzialnosc, " km" );
- // --- ZACHMURZENIE --------------------------------------------------- //
- strcpy ( BZachmurzenie, "Zachmurzenie : " );
- sprintf ( bufor, "%d", pogoda.zachmurzenie );
- strcat ( BZachmurzenie, bufor );
- strcat ( BZachmurzenie, " % chmur" );
- // --- OPADY --------------------------------------------------------- //
- strcpy ( BOpady, "Opady : " );
- sprintf ( bufor, "%2.2f", pogoda.opady );
- strcat ( BOpady, bufor );
- strcat ( BOpady, " mm" );
- // --- CISNIENIE ------------------------------------------------------ //
- strcpy ( BCisnienie, "Ci\243nienie Atmosferyczne : " );
- sprintf ( bufor, "%d", pogoda.cisnienie );
- strcat ( BCisnienie, bufor );
- strcat ( BCisnienie, " mPA" );
- // --- PRĘDKOŚC WIATRU ------------------------------------------------ //
- strcpy ( BWiatr, "Pr\245dko\243\242 Wiatru : " );
- sprintf ( bufor, "%2.2f", pogoda.predkosc_wiatru_kph );
- strcat ( BWiatr, bufor );
- strcat ( BWiatr, " km/h" );
- // --- KIERUNEK WIATRU ------------------------------------------------ //
- strcpy ( BWiatrKierunek, "Kierunek Wiatru : " );
- strcat ( BWiatrKierunek, pogoda.kierunek_wiatru_kompas.c_str() );
- // --- PORYWY WIATRU -------------------------------------------------- //
- strcpy ( BWiatrPorywy, "Porywy Wiatru : " );
- sprintf ( bufor, "%2.2f", pogoda.podmuchy_wiatru );
- strcat ( BWiatrPorywy, bufor );
- strcat ( BWiatrPorywy, " km/h" );
- // --- PORYWY WIATRU -------------------------------------------------- //
- strcpy ( BOpis, pogoda.miejscowosc.c_str() );
- strcat ( BOpis, ", " );
- strcat ( BOpis, pogoda.kraj.c_str() );
- // --- CZAS LOKALNY --------------------------------------------------- //
- strcpy ( BCzasLokalny, "Czas lokalny : ");
- strcat ( BCzasLokalny, pogoda.czas_lokalny.c_str() );
- // --- WSCHÓD SŁOŃCA -------------------------------------------------- //
- strcpy ( BWschodSlonca, "Wsch\244d S\247o\250ca : " );
- strcat ( BWschodSlonca, astronomia.wschod_slonca.c_str() );
- // --- ZACHÓD SŁOŃCA -------------------------------------------------- //
- strcpy ( BZachodSlonca, "Zach\244d S\247o\250ca : " );
- strcat ( BZachodSlonca, astronomia.zachod_slonca.c_str() );
- // --- WSCHOD KSIĘŻYCA ------------------------------------------------ //
- strcpy ( BWschodKsiezyca, "Wsch\244d Ksi\245\246yca : " );
- strcat ( BWschodKsiezyca, astronomia.wschod_ksiezyca.c_str() );
- // --- ZACHÓD KSIĘŻYCA ------------------------------------------------ //
- strcpy ( BZachodKsiezyca, "Zach\244d Ksi\245\246yca : " );
- strcat ( BZachodKsiezyca, astronomia.zachod_ksiezyca.c_str() );
- // --- FAZA KSIĘŻYCA -------------------------------------------------- //
- strcpy ( BZachodKsiezyca, "Faza Ksi\245\246yca : " );
- if (astronomia.faza_ksiezyca == "Waxing Crescent")
- {
- buforek = "Sierp przybywaj\252cy";
- }
- else
- if (astronomia.faza_ksiezyca == "New Moon")
- {
- buforek = "N\244w";
- }
- else
- if (astronomia.faza_ksiezyca == "First Quarter")
- {
- buforek = "Pierwszy kwarta\247";
- }
- else
- if (astronomia.faza_ksiezyca == "Waxing Gibbous")
- {
- buforek = "Przybywaj\252cy Ksi\245\246yc";
- }
- else
- if (astronomia.faza_ksiezyca == "Full Moon")
- {
- buforek = "Pe\247nia ksi\245\246yca";
- }
- else
- if (astronomia.faza_ksiezyca == "Waning Gibbous")
- {
- buforek = "Ubywaj\252cy Ksi\245\246yc";
- }
- else
- if (astronomia.faza_ksiezyca == "Last Quarter")
- {
- buforek = "Ostatni kwarta\247";
- }
- else
- if (astronomia.faza_ksiezyca == "Waning Crescent")
- {
- buforek = "Powi\245kszaj\252cy si\245 Ksi\245\246yc";
- }
- strcat ( BZachodKsiezyca, buforek.c_str() );
- // --- TLENEK WĘGLA --------------------------------------------------- //
- strcpy ( BTlenekWegla, "Tlenek W\245gla : " );
- dtostrf ( powietrze.co, 8, 8, bufor );
- strcat ( BTlenekWegla, bufor );
- strcat ( BTlenekWegla, " ug/m3" );
- // --- TLENEK WĘGLA --------------------------------------------------- //
- strcpy ( BOzon, "Ozon : " );
- dtostrf ( powietrze.o3, 8, 8, bufor );
- strcat ( BOzon, bufor );
- strcat ( BOzon, " ug/m3" );
- // --- DWUTLENEK AZOTU ------------------------------------------------ //
- strcpy ( BDwutlenekAzotu, "Dwutlenek Azotu : " );
- dtostrf ( powietrze.no2, 8, 8, bufor );
- strcat ( BDwutlenekAzotu, bufor );
- strcat ( BDwutlenekAzotu, " ug/m3" );
- // --- DWUTLENEK SIARKI ------------------------------------------------ //
- strcpy ( BDwutlenekSiarki, "Dwutlenek Siarki : " );
- dtostrf ( powietrze.so2, 8, 8, bufor );
- strcat ( BDwutlenekSiarki, bufor );
- strcat ( BDwutlenekSiarki, " ug/m3" );
- // --- AEROZOLOE I PYŁY PM25 ------------------------------------------- //
- strcpy ( BPylyPM25, "Aerozole i py\247y PM2,5 : " );
- dtostrf ( powietrze.pm25, 8, 8, bufor );
- strcat ( BPylyPM25, bufor );
- strcat ( BPylyPM25, " um" );
- // --- AEROZOLOE I PYŁY PM10 ------------------------------------------- //
- strcpy ( BPylyPM10, "Aerozole i py\247y PM10 : " );
- dtostrf ( powietrze.pm10, 8, 8, bufor );
- strcat ( BPylyPM10, bufor );
- strcat ( BPylyPM10, " um" );
- // --- DATA DŁUGA ----------------------------------------------------- //
- strcpy ( BData, String(zegar.DzienMiesiaca).c_str() );
- strcat ( BData, " " );
- strcat ( BData, MIESIAC[zegar.DzienMiesiaca] );
- strcat ( BData, " " );
- strcat ( BData, String(zegar.Rok).c_str() );
- // --- PRZYSLOWIA MIESIACA -------------------------------------------- //
- strcpy ( BPrzyslowiaM, PRZYSLOWIA[zegar.Miesiac] );
- // --- PRZYSLOWIA DNIA ------------------------------------------------ //
- strcpy ( BPrzyslowiaD, PRZYSLOWIE_DNIA[zegar.DzienTygodnia] );
- }
- //
- // ------------------------------------------------------------------------------------------------------------- //
- // --- M E T O D Y P U B L I C Z N E --- //
- // ------------------------------------------------------------------------------------------------------------- //
- // --- T E S T --- //
- // ------------------------------------------------------------------------------------------------------------- //
- //
- void MAX::ShowTest()
- {
- static BAJT przelacznik = 0;
- if (F_Przekaznik) // jeśli flaga przekaźnika jest TRUE
- {
- strcpy ( BPrzekaznik, RelayInfo.c_str() );
- przelacznik = 101;
- }
- if(P.displayAnimate())
- {
- switch ( przelacznik )
- {
- case 0 : Scroll2Left(BData); przelacznik ++ ; break;
- case 1 : TimeUpdate(); // buduj bufor z aktualnym czasem
- Scroll2Left(BCzas); przelacznik ++ ; break;
- case 2 : ShowRandomMsg(); przelacznik ++ ; break;
- case 3 : Scroll2Left(BOpisPogody); przelacznik ++ ; break;
- case 4 : Scroll2Left(BWilgotnosc); przelacznik ++ ; break;
- case 5 : ShowRandomMsg(); przelacznik ++ ; break;
- case 6 : Scroll2Left(BIndexUV); przelacznik ++ ; break;
- case 7 : Scroll2Left(BWidzialnosc); przelacznik ++ ; break;
- case 8 : Scroll2Left(BZachmurzenie); przelacznik ++ ; break;
- case 9 : Scroll2Left(BOpady); przelacznik ++ ; break;
- case 10 : ShowRandomMsg(); przelacznik ++ ; break;
- case 11 : Scroll2Left(BCisnienie); przelacznik ++ ; break;
- case 12 : Scroll2Left(BWiatr); przelacznik ++ ; break;
- case 13 : Scroll2Left(BWiatrPorywy); przelacznik ++ ; break;
- case 14 : Scroll2Left(BWiatrKierunek); przelacznik ++ ; break;
- case 15 : ShowRandomMsg(); przelacznik ++ ; break;
- case 16 : przelacznik ++ ; break;
- case 17 : przelacznik ++ ; break;
- case 18 : przelacznik ++ ; break;
- case 19 : przelacznik ++ ; break;
- case 20 : przelacznik ++ ; break;
- case 21 : przelacznik ++ ; break;
- case 22 : przelacznik ++ ; break;
- case 23 : przelacznik ++ ; break;
- case 24 : przelacznik ++ ; break;
- case 25 : Scroll2Left(BData); przelacznik ++ ; break;
- case 26 : TimeUpdate(); // buduj bufor z aktualnym czasem
- Scroll2Left(BCzas); przelacznik ++ ; break;
- case 27 : Scroll2Left(BCzasLokalny); przelacznik ++ ; break;
- case 28 : ShowRandomMsg(); przelacznik ++ ; break;
- case 29 : Scroll2Left(BWschodSlonca); przelacznik ++ ; break;
- case 30 : Scroll2Left(BZachodSlonca); przelacznik ++ ; break;
- case 31 : Scroll2Left(BWschodKsiezyca); przelacznik ++ ; break;
- case 32 : Scroll2Left(BZachodKsiezyca); przelacznik ++ ; break;
- case 33 : ShowRandomMsg(); przelacznik ++ ; break;
- case 34 : Scroll2Left(BFazaKsiezyca); przelacznik ++ ; break;
- case 35 : ShowRandomMsg(); przelacznik ++ ; break;
- case 36 : przelacznik ++ ; break;
- case 37 : przelacznik ++ ; break;
- case 38 : przelacznik ++ ; break;
- case 39 : przelacznik ++ ; break;
- case 40 : Scroll2Left(BOpisPogody); przelacznik ++ ; break;
- case 41 : przelacznik ++ ; break;
- case 42 : przelacznik ++ ; break;
- case 43 : przelacznik ++ ; break;
- case 44 : przelacznik ++ ; break;
- case 45 : TimeUpdate(); // buduj bufor z aktualnym czasem
- Scroll2Left(BCzas); przelacznik ++ ; break;
- case 46 : Scroll2Left(BData); przelacznik ++ ; break;
- case 47 : ShowRandomMsg(); przelacznik ++ ; break;
- case 48 : Scroll2Left(BTlenekWegla); przelacznik ++ ; break;
- case 49 : Scroll2Left(BOzon); przelacznik ++ ; break;
- case 50 : Scroll2Left(BDwutlenekAzotu); przelacznik ++ ; break;
- case 51 : Scroll2Left(BDwutlenekSiarki); przelacznik ++ ; break;
- case 52 : Scroll2Left(BPylyPM25); przelacznik ++ ; break;
- case 53 : Scroll2Left(BPylyPM10); przelacznik ++ ; break;
- case 54 : TimeUpdate(); // buduj bufor z aktualnym czasem
- Scroll2Left(BCzas); przelacznik ++ ; break;
- case 55 : Scroll2Left(BData); przelacznik ++ ; break;
- case 56 : ShowRandomMsg(); przelacznik ++ ; break;
- case 57 : przelacznik ++ ; break;
- case 58 : przelacznik ++ ; break;
- case 59 : przelacznik ++ ; break;
- case 60 : Scroll2Left(BPrzyslowiaM); przelacznik ++ ; break;
- case 61 : Scroll2Left(BPrzyslowiaD); przelacznik ++ ; break;
- case 62 : Scroll2Left(BOpisPogody); przelacznik ++ ; break;
- case 63 : FreeRam(); // buduj bufor tekstowy o ilości wolnej pamięci RAM
- Scroll2Left(BFreeRam); przelacznik ++ ; break;
- case 64 : FreqCpu(); // buduj bufor tekstowy o prędkości procesora
- Scroll2Left(BFreqCpu); przelacznik ++ ; break;
- case 65 : ShowRandomMsg(); przelacznik ++ ; break;
- case 66 : przelacznik ++ ; break;
- case 67 : Scroll2Left(BOpis); przelacznik ++ ; break;
- case 68 : przelacznik ++ ; break;
- case 69 : przelacznik ++ ; break;
- case 70 : przelacznik ++ ; break;
- case 71 : przelacznik ++ ; break;
- case 72 : przelacznik ++ ; break;
- case 73 : przelacznik ++ ; break;
- case 74 : przelacznik ++ ; break;
- case 75 : ShowRandomSprite("ESP32"); przelacznik ++ ; break;
- case 76 : ShowRandomEffect("ESP32"); przelacznik ++ ; break;
- case 77 : przelacznik ++ ; break;
- case 78 : przelacznik ++ ; break;
- case 79 : przelacznik ++ ; break;
- case 80 : przelacznik ++ ; break;
- case 81 : przelacznik ++ ; break;
- case 82 : przelacznik ++ ; break;
- case 83 : przelacznik ++ ; break;
- case 84 : przelacznik ++ ; break;
- case 85 : przelacznik ++ ; break;
- case 86 : przelacznik ++ ; break;
- case 87 : przelacznik ++ ; break;
- case 88 : przelacznik ++ ; break;
- case 89 : przelacznik ++ ; break;
- case 90 : przelacznik ++ ; break;
- case 91 : przelacznik ++ ; break;
- case 92 : przelacznik ++ ; break;
- case 93 : przelacznik ++ ; break;
- case 94 : przelacznik ++ ; break;
- case 95 : przelacznik ++ ; break;
- case 96 : przelacznik ++ ; break;
- case 97 : przelacznik ++ ; break;
- case 98 : przelacznik ++ ; break;
- case 99 : przelacznik ++ ; break;
- case 100 : ShowRandomSprite("ESP32"); przelacznik =0 ; break; // nie idź dalej, reszta warunków dla zdarzeń
- case 101 : Scroll2Left(BPrzekaznik);
- F_Przekaznik = false;
- F_MaxDemo = true;
- przelacznik = 0; break;
- default : przelacznik = 0; break;
- }
- }
- }
- //
- // ------------------------------------------------------------------------------------------------------------- //
- // --- M E T O D Y P U B L I C Z N E --- //
- // ------------------------------------------------------------------------------------------------------------- //
- // --- Pokaz wiadomość - scroll w lewo --- //
- // ------------------------------------------------------------------------------------------------------------- //
- //
- void MAX::ShowMsg2Left(char * msg)
- {
- Scroll2Left(msg);
- }
Add Comment
Please, Sign In to add comment