RadioSvegliaGBE
Matrix.h
Go to the documentation of this file.
1 #pragma once
2 
20 #pragma region INCLUSIONS
21 // Libreria per la gestione della matrice utilizzata: Matrice di LED RGB 16x32 Adafruit
22 /*
23 Libreria di autore "Adafruit" per la gestione LowLevel della matrice --> Matrice di LED RGB 16x32 Adafruit
24 Sorgenti necessarie:
25 --- RGB Matrix Panel by Adafruit
26 */
27 #include <RGBmatrixPanel.h>
28 #pragma endregion INCLUSIONS
29 
30 // Namespace di protezione dalle inclusioni multiple con nominazione uguale
31 /*
32 I valori constexpr, come spiegato appena sopra, equivalgono alla direttiva '#define'. Questo pu� creare problemi nel momento in cui un singolo file viene incluso
33 in una gerarchia di molti pi� file, dove si potrebbe riscontrare la presenza di constexpr appartenenti a file diversi ma con gli stessi nomi! Questa ripetitivit� dei nomi deriva
34 dagli standard di nominazione. Per evitare, quindi, conflitti di multipla definizione, andremo ad utilizzare un 'namespace', che, come dice il nome, fornisce uno SPAZIO per i NOMI del nostro
35 file in cui il 'namespace' � stato dichiarato ed implementato.
36 Mantieniamo comunque la specificazione 'static', per evitare errori di linker in caso di inclusioni multiple di questa unit� di traslazione [file].
37 */
46 namespace Matrix__file
47 {
48  // Espressione costante (equivalente della direttiva '#define') per la definizione dei valori 'CLK', 'OE', 'LAT', 'A', 'B', 'C'.
49  // Questi valori sono delle costanti immutabili che rappresentano VALORI DI DEFAULT scelti dal creatore ed implementatore della classe.
50  // L'utilizzo di un metodo di inizializzazione di default 'Init (1)' provocher� l'uso di tali valori.
51  // L'utilizzo, se disponibile, di un metodo di inizializzazione parametrico 'Init (2)' NON provocher� l'utilizzo di tali valori.
52  /*Questi valori risiederanno nel Data Segment*/
53 
54  // Rappresentano i PIN e le IMPOSTAZIONI di comunicazione seriale utilizzati per lo scambio di informazioni tra Arduino e la Matrice
57  static constexpr auto _CLK = 8;
60  static constexpr auto _OE = 9;
63  static constexpr auto _LAT = 10;
66  static constexpr auto _A = A0;
69  static constexpr auto _B = A1;
72  static constexpr auto _C = A2;
73 
74  // Rappresenta lo stato di utilizzo della modalit� "Double Buffering"
75  /*
76  // scrivere subito !!!!!!!!!!!!!!!!!!
77  */
80  static constexpr bool _DOUBLE_BUFFERING = true;
81 
82  // Espressione costante per la definizione del valore 'w' [widht -- larghezza] di una immagine bitmap
86  static constexpr auto _w = 32;
87  // Espressione costante per la definizione del valore 'h' [height -- altezza] di una immagine bitmap
91  static constexpr auto _h = 16;
92 }
93 
101 class Matrix
102 {
103  /*Blocco trivial*/
104  /*
105  Stiamo trattando una classe interamente statica. Per la definizione di staticit�, descritta successivamente, questa classe funger� solamente
106  da "contenitore astratto" per organizzare pi� logicamente i dati. In verit�, tutto risieder� principalmente nel Data Segment, quindi sar�
107  globale, ma statico (anche questo descritto successivamente).
108  Questa staticit� implica la NON necessit� di creare istanze di questa classe, che risulterebbero totalmente inutili dato che tutti gli attributi
109  e i metodi esistono nell'ambito globale.
110  Per evitare, quindi, inutili istanziamenti, verranno bloccati il costruttore trivial (di default generato dal compilatore) e il distruttore, reso
111  inutile dalla non-istanziabilit� della classe stessa.
112  */
113 private:
114  // Blocco attraverso privatizzazione del costruttore trivial
121  Matrix() = default;
122  // Blocco attraverso privatizzazione del distruttore trivial
129  ~Matrix() = default;
130 
131  /*Enumerazioni*/
132  /*
133  Una enumerazione permette una gestione pi� intelligente degli "switcher" forniti all'utente finale.
134  Tramite nomi significativi, si gestiscono gli "switcher" appunto con dei nomi, utilizzati per mascherare i valori di enumerazione meno significativi per l'utente.
135  Anche qua si applica la staticit� descritta successivamente. Una classe di enumarazione � automaticamente statica.
136  */
137 public:
149  {
153  };
154 
162  enum class Color
163  {
164  AQUA, /*0, 255, 255*/
165  BLACK, /*0, 0, 0*/
166  BLUE, /*0, 0, 255*/
167  FUCHSIA, /*255, 0, 255*/
168  GREEN, /*0, 128, 0*/
169  LIME, /*0, 255, 0*/
170  NAVY, /*0, 0, 128*/
171  PURPLE, /*128, 0, 128*/
172  RED, /*255, 0, 0*/
173  TEAL, /*0, 128, 128*/
174  WHITE, /*255, 255, 255*/
175  YELLOW, /*255, 255, 0*/
176  };
177 
178  /*Attributi*/
179 private:
180  // Puntatore alla matrice stessa, rappresentata da un oggetto di classe "RGBmatrixPanel"
181  /*
182  Questa variabile conterr� l'istanza dell'oggetto matrice creata durante l'operazione di inizializzazione.
183  L'oggetto sar� sottoposto ad allocazione dinamica [heap]. Questo per evitare problemi con la deallocazione mirata all'ambito
184  caratteristica della memoria statica [stack]. Una allocazione statica [stack] provocherebbe l'allocazione e successiva deallocazione
185  immediata dell'oggetto esistendo solamente nell'ambito di inizializzazione.
186  Essendo statica, la variabile (puntatore) verr� allocata nel 'Data Segment' (segmento dei dati) ed "esister�" fino a termine
187  del programma stesso. Quindi si tratta di una variabile globale, ma statica. Questo la rende esistente solamente in questa unit�
188  di traslazione (file).
189  */
191  static RGBmatrixPanel* m_Matrix;
192 
193  /*Seguiranno tutti gli attributi che si riferiscono ai PIN e alle IMPOSTAZIONI di comunicazione tra Arduino e Matrice*/
194  // Valore --> CLK
196  static unsigned int m_CLK;
197 
198  // Valore --> OE
200  static unsigned int m_OE;
201 
202  // valore --> LAT
204  static unsigned int m_LAT;
205 
206  // Valore --> A
208  static unsigned int m_A;
209 
210  // Valore --> B
212  static unsigned int m_B;
213 
214  // Valore --> C
216  static unsigned int m_C;
217 
218  // Valore --> DOUBLE_BUFFERING
220  static bool m_DOUBLE_BUFFERING;
221 
222  // Indica se la matrice � stata gi� avviata (con il metodo 'Begin') oppure no
224  static bool m_isStarted;
225 
226  /*Attributi per la definizione del logo originale GBE*/
227  // 'G', 32x16px
229  static const unsigned char G_bitmap[64] PROGMEM =
230  {
231  0x00, 0x00, 0x00, 0x00, 0x7f, 0x80, 0x00, 0x00, 0x7f, 0x80, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00,
232  0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x67, 0x80, 0x00, 0x00,
233  0x67, 0x80, 0x00, 0x00, 0x61, 0x80, 0x00, 0x00, 0x61, 0x80, 0x00, 0x00, 0x61, 0x80, 0x00, 0x00,
234  0x61, 0x80, 0x00, 0x00, 0x7f, 0x80, 0x00, 0x00, 0x7f, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
235  };
236 
237  // 'B', 32x16px
239  static const unsigned char B_bitmap[64] PROGMEM =
240  {
241  0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0xe0, 0x00, 0x00, 0x0f, 0xf0, 0x00, 0x00, 0x0c, 0x30, 0x00,
242  0x00, 0x0c, 0x30, 0x00, 0x00, 0x0c, 0x30, 0x00, 0x00, 0x0c, 0x30, 0x00, 0x00, 0x0f, 0xe0, 0x00,
243  0x00, 0x0f, 0xe0, 0x00, 0x00, 0x0c, 0x30, 0x00, 0x00, 0x0c, 0x30, 0x00, 0x00, 0x0c, 0x30, 0x00,
244  0x00, 0x0c, 0x30, 0x00, 0x00, 0x0f, 0xf0, 0x00, 0x00, 0x0f, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00
245  };
246 
247  // 'E', 32x16px
249  static const unsigned char E_bitmap[64] PROGMEM =
250  {
251  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xfe, 0x00, 0x00, 0x01, 0xfe, 0x00, 0x00, 0x01, 0x80,
252  0x00, 0x00, 0x01, 0x80, 0x00, 0x00, 0x01, 0x80, 0x00, 0x00, 0x01, 0x80, 0x00, 0x00, 0x01, 0xfe,
253  0x00, 0x00, 0x01, 0xfe, 0x00, 0x00, 0x01, 0x80, 0x00, 0x00, 0x01, 0x80, 0x00, 0x00, 0x01, 0x80,
254  0x00, 0x00, 0x01, 0x80, 0x00, 0x00, 0x01, 0xfe, 0x00, 0x00, 0x01, 0xfe, 0x00, 0x00, 0x00, 0x00
255  };
256 
257  // 'wifi', 32x16px
259  static const unsigned char wifi_bitmap[64] PROGMEM =
260  {
261  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0xf0, 0x00, 0x00, 0x10, 0x08, 0x00,
262  0x00, 0x20, 0x04, 0x00, 0x00, 0x40, 0x02, 0x00, 0x00, 0x07, 0xe0, 0x00, 0x00, 0x08, 0x10, 0x00,
263  0x00, 0x10, 0x08, 0x00, 0x00, 0x03, 0xc0, 0x00, 0x00, 0x04, 0x20, 0x00, 0x00, 0x01, 0x80, 0x00,
264  0x00, 0x03, 0xc0, 0x00, 0x00, 0x03, 0xc0, 0x00, 0x00, 0x01, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00
265  };
266 
267  // 'cross', 32x16px
269  static const unsigned char cross_bitmap[64] PROGMEM =
270  {
271  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x88, 0x00, 0x00, 0x00, 0x50, 0x00, 0x00, 0x00, 0x20,
272  0x00, 0x00, 0x00, 0x50, 0x00, 0x00, 0x00, 0x88, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
273  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
274  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
275  };
276 
277  /*Init*/
278 public:
279  // Inizializza la matrice tramite il costruttore della classe "RGBmatrixPanel"
280  /*
281  Questo metodo, fondamentale, "d� vita" alla matrice. Effettua una allocazione (dinamica [heap]) attraverso un costruttore
282  parametrico della classe "RGBmatrixPanel". Questo costruttore richiede 7 parametri. Il loro significato � riportato
283  nel namespace ad inizio file.
284  I parametri, per evitare inutili copie, vengono passati per riferimento [reference --> '&'] (ove possibile).
285  Il metodo ritorna un valore booleano, utilizzato per comunicare eventuali errori durante l'allocazione.
286  Inoltre, prima dell'effettiva allocazione, esegue una deallocazione [delete] se necessaria.
287  Anche qua ritroviamo la specificazione di staticit�. Nel caso di applicazione ad un metodo, dissocia il metodo stesso da qualsiasi possibile istanza
288  della classe. Quindi, il metodo sar� richiamabile come se fosse globale (e statico). Sar� solamente necessario anteporre il nome della classe di
289  appartenenza. Ricordiamo anche che i metodi statici possono operare solo su variabili statiche, che anch'esse, essendo globali (e statiche) sono
290  totalmente dissociate da possibili istanze della classe stessa (da oggetti).
291  */
292 
293  // Init (1) --> default
294  // Utilizzer� i valori forniti dalle espressioni costanti [constexpr] dichiarate all'inizio dell'intestazione
309  static bool Init();
310 
311  // Init (2) --> parametrico
312  // Utilizzer� i valori forniti dalle espressioni costanti [constexpr] dichiarate all'inizio dell'intestazione
313  // Utilizzer� il valore fornito come parametro dall'utente richiamante questo metodo solamente per l'assegnazione del valore all'attributo 'm_DOUBLE_BUFFERING'
331  static bool Init(const bool& t_DOUBLE_BUFFERING);
332 
333  // Init (3) --> parametrico
334  // Utilizzer� i valori forniti dai parametri forniti dall'utente richiamante questo metodo
364  static bool Init(const unsigned int& t_A, const unsigned int& t_B, const unsigned int& t_C,
365  const unsigned int& t_CLK, const unsigned int& t_LAT, const unsigned int& t_OE,
366  const bool& t_DOUBLE_BUFFERING);
367 
368  /*Service Management*/
369 public:
370  // Avvia la matrice
371  /*
372  Il seguente metodo permette di avviare la matrice dopo la sua inizializzazione.
373  Da specificare che l'inizializzazione effttuata nel metodo 'Init' non corrisponde all'avvio della matrice stessa effettuato nel metodo seguente 'Begin'.
374  */
386  static bool Begin();
387 
388  /*LowLevel getters*/
389  /*
390  I seguenti metodi LowLevel sono supposti soprattutto per uso a scopo di debug e management manuale.
391  Forniscono un punto di accesso costante a VALORE MODIFICABILE (quindi dereferenziabile ma non reindirizzabile).
392  In release mode, potrebbe risultare efficace cambiare il contrassegno da 'public' a 'private'.
393  Anche qua, per via della staticit�, viene applicata la gestione analizzata prima.
394  */
395 public:
396  // Ritorna un puntatore a 'm_Matrix'
408  static RGBmatrixPanel* const get_Matrix();
409 
410  // Ritorna un puntatore a 'm_CLK'
422  static unsigned int* const get_CLK();
423 
424  // Ritorna un puntatore a 'm_OE'
436  static unsigned int* const get_OE();
437 
438  // Ritorna un puntatore a 'm_LAT'
450  static unsigned int* const get_LAT();
451 
452  // Ritorna un puntatore a 'm_A'
464  static unsigned int* const get_A();
465 
466  // Ritorna un puntatore a 'm_B'
478  static unsigned int* const get_B();
479 
480  // Ritorna un puntatore a 'm_C'
492  static unsigned int* const get_C();
493 
494  // Ritorna un puntatore a 'm_DOUBLE_BUFFERING'
506  static bool* const get_DOUBLE_BUFFERING();
507 
508  /*LowLevel reallocator*/
509  /*
510  Il seguente metodo � supposto soprattutto per uso a scopo di debug e management manuale.
511  Esegue una riallocazione dell'oggetto sensore costruito con il rispettivo costruttore parametrico (della libreria "DHT") con i valori degli attributi interessati
512  della classe.
513  Inoltre, prima dell'effettiva riallocazione, esegue una deallocazione [delete] se necessaria.
514  Il metodo ritorna un valore booleano, utilizzato per comunicare eventuali errori durante l'allocazione.
515  Anche qua, per via della staticit�, viene applicata la gestione analizzata prima.
516  */
517 public:
518  // Riesegue una operazione di inizializzazione con i valori degli attributi 'm_CLK', 'm_OE', 'm_LAT', 'm_A', 'm_B', 'm_C'.
540  static bool ReInit();
541 
542  /*Risorse Interne*/
543 private:
544  // Determina il colore in base al campo enumerativo indicato
558  static void DefineShades(const Color& t_COLOR, unsigned int& t_RED, unsigned int& t_GREEN, unsigned int& t_BLUE);
559 
560  // Converte da 'String' a 'char*'
572  static char* from_String_to_Char(String& t_toConvert);
573  // Gestisce l'allocazione per il contenitore per la conversione
585  static char* allocate_forConversion(const unsigned int& t_Length);
586  // Gestisce la deallocazione per il contenitore per la conversione
600  static bool deallocate_forConversion(char* t_toDeallocate);
601  // Contenitore
603  static char* m_Container;
604  // Imposta il contenitore
615  static void set_Container(char* t_toSet);
616  // Resetta il contenitore
625  static void reset_Container();
626 
627  /*Metodi*/
628 public:
629  // "Pulisce" lo schermo, eliminando tutto il contenuto in visualizzazione
630  /*
631  Il seguente metodo permette di "pulire" lo schermo da precedenti informazioni scritte.
632  Esso non presenta alcuna specializzazione del comportamento. Sia in 'single-buffer' che in 'double-buffer' il comportamento sarà lo stesso.
633  In 'single-buffer' la "pulizia" avverrà sull'unico buffer disponibile. In 'double-buffer' la "pulizia" avverrà sul 'back-buffer'.
634  Anche qua, per via della staticità, viene applicata la gestione analizzata prima.
635  */
650  static bool Clear(); /*OK*/
651 
652  // Imposta manualemente la posizione del cursore
653  /*
654  Il seguente metodo permette di impostare la posizione del cursore sulla matrice. Questo grazie alla specificazione di due parametri, 't_x' e 't_y', che
655  corrispondono alle coordinate cartesiane del "piano cartesiano della matrice". L'origine è nel punto (0, 0), che si trova "in alto a sinistra" (guardando la matrice di fronte).
656  Esso non presenta alcuna specializzazione del comportamento. Sia in 'single-buffer' che in 'double-buffer' il comportamento sarà lo stesso.
657  In 'single_buffer' il riposizionamento del cursore affligerà l'unico buffer disponibile. In 'double-buffer' affligerà il 'back-buffer'.
658  Anche qua, per via della staticità, viene applicata la gestione analizzata prima.
659  */
675  static bool set_Cursor(const int& t_x, const int& t_y); /*OK*/
676 
677  // Effettua lo swap manuale dei due buffer, solo se è attiva l'opzione 'DOUBLE_BUFFERING'
678  /*
679  Il seguente metodo permette uno swap manuale dei due buffer --> 'front-buffer' e 'back-buffer'.
680  Ovviamente, esso presenta una specializzazione del comportamento. In 'single-buffer' non produrrà alcun risultato. 'In double-buffer' effettuerà lo swap.
681  Esso permette la specificazione della modalità di swap: con 'copia' per permettere la 'modifica incrementale' oppure no.
682  Questo è reso possibile grazie al parametro di tipo enumerativo 't_Switch'.
683  - In caso la 'modifica incrementale' venga permessa, durante lo swap il contenuto del nuovo 'front-buffer' verrà copiato anche nel nuovo 'back-buffer'.
684  - In caso la 'modifica incrementale' non venga permessa, durante lo swap il contenuto del nuovo 'back-buffer' sarà lo stesso del vecchio 'front-buffer' (ormai sovrascritto).
685  Anche qua, per via della staticità, viene applicata la gestione analizzata prima.
686  */
704  static bool SwapBuffers(const IncrementalModifyBuffer& t_Switch); /*OK*/
705 
706  // set_Color (1)
707  // Imposta manualmente il colore delle informazioni che verranno stampate
708  /*
709  Il seguente metodo permette la scelta del colore per la visualizzazione delle informazioni.
710  Esso non presenta alcuna specializzazione del comportamento. Sia in 'single-buffer' che in 'double-buffer' il comportamento sarà lo stesso.
711  In 'single_buffer' la scelta del colore affligerà l'unico buffer disponibile. In 'double-buffer' affligerà il 'back-buffer'.
712  */
729  static bool set_Color(const unsigned int& t_RED, const unsigned int& t_GREEN, const unsigned int& t_BLUE);
730 
731  // set_Color (2)
732  // Imposta manualemente il colore delle informazioni che verranno stampate
733  /*
734  Il seguente metodo permette la scelta del colore per la visualizzazione delle informazioni.
735  Esso non presenta alcuna specializzazione del comportamento. Sia in 'single-buffer' che in 'double-buffer' il comportamento sarà lo stesso.
736  In 'single_buffer' la scelta del colore affligerà l'unico buffer disponibile. In 'double-buffer' affligerà il 'back-buffer'.
737  */
754  static bool set_Color(const Color& t_COLOR);
755 
756  // Imposta la dimensione del testo da visualizzare
757  /*
758  Il seguente metodo permette la scelta della dimensione del testo per la visualizzazione delle infomazioni.
759  Esso non presenta alcuna specializzazione del comportamento. Sia in 'single-buffer' che in 'double-buffer' il comportamento sarà lo stesso.
760  In 'single_buffer' la scelta della dimensione affligerà l'unico buffer disponibile. In 'double-buffer' affligerà il 'back-buffer'.
761  */
777  static bool set_TextSize(const unsigned int& t_Size);
778 
779  // Visualizza manualmente le informazioni sulla matrice
780  // Show (1)
781  /*
782  Il seguente metodo permette di visualizzare le infomazioni desiderate sulla matrice.
783  Esso non presenta alcuna specializzazione del comportamento. Sia in 'single-buffer' che in 'double-buffer' il comportamento sarà lo stesso.
784  In 'single_buffer' la visualizzazione affligerà l'unico buffer disponibile. In 'double-buffer' affligerà il 'back-buffer'.
785  In 'single_buffer' la visualizzazione sarà automatica.
786  In 'double-buffer' sarà necessaria una chiamata ad uno degli overload del metodo 'SwapBuffers'.
787  */
812  static bool Show(const char* t_toShow);
813 
814  // Show (2)
815  /*
816  Il seguente metodo permette di visualizzare le infomazioni desiderate sulla matrice.
817  Esso non presenta alcuna specializzazione del comportamento. Sia in 'single-buffer' che in 'double-buffer' il comportamento sarà lo stesso.
818  In 'single_buffer' la visualizzazione affligerà l'unico buffer disponibile. In 'double-buffer' affligerà il 'back-buffer'.
819  In 'single_buffer' la visualizzazione sarà automatica.
820  In 'double-buffer' sarà necessaria una chiamata ad uno degli overload del metodo 'SwapBuffers'.
821  */
846  static bool Show(String& t_toShow);
847 
851 
852  /*Metodi di Automazione*/
853 public:
854  // Effettua lo swap manuale dei due buffer, solo se è attiva l'opzione 'DOUBLE_BUFFERING'
855  // Non permette la modifica incrementale, ma effettua una "pulizia" automatica sul nuovo 'back_buffer'
856  /*
857  Il seguente metodo permette uno swap manuale dei due buffer --> 'front-buffer' e 'back-buffer'.
858  Ovviamente, esso presenta una specializzazione del comportamento. In 'single-buffer' non produrrà alcun risultato. 'In double-buffer' effettuerà lo swap.
859  La tipologia dello swap effettuato da questo è di tipo 'LOCK_INCREMENTAL_MODIFY'. Questo è causato dall'inutilità di una 'modifica incrementale' data dal fatto che verrà effettuata
860  anche una "pulizia" automatica del buffer.
861  Anche qua, per via della staticità, viene applicata la gestione analizzata prima.
862  */
882  static bool SwapBuffersAutomated();
883 
884  // Visualizza le informazioni sulla matrice
885  // ShowAutomated (1.1)
886  /*
887  Il seguente metodo permette di visualizzare le infomazioni desiderate sulla matrice.
888  Esso presenta una specializzazione del comportamento. Infatti, per automatizzare la visualizzazione delle infomazioni, le procedure da adottare sono diverse
889  in base al parametro 'm_DOUBLE_BUFFERING'.
890 
891  I parametri richiesto sono x:
892  --- t_toShow --> informazioni da visualizzare [const char*]
893  --- t_x, t_y --> posizione del cursore dal punto di inizio per la stesura delle informazioni da visualizzare
894  --- t_Size --> dimensione del testo da visualizzare
895  --- t_RED, t_GREEN, t_BLUE, --> colore del testo da visualizzare
896  --- t_Switch --> indica la modalità del buffer: 'LOCK_INCREMENTAL_MODIFY', ALLOW_INCREMENTAL_MODIFY'
897  */
926  static bool ShowAutomated(const char* t_toShow, const int& t_x, const int& t_y, const unsigned int& t_Size,
927  const unsigned int& t_RED, const unsigned int& t_GREEN, const unsigned int& t_BLUE, const IncrementalModifyBuffer& t_Switch = IncrementalModifyBuffer::INVALID_REFERENCE);
928 
929  // ShowAutomated (1.2)
930  /*
931  Il seguente metodo permette di visualizzare le infomazioni desiderate sulla matrice.
932  Esso presenta una specializzazione del comportamento. Infatti, per automatizzare la visualizzazione delle infomazioni, le procedure da adottare sono diverse
933  in base al parametro 'm_DOUBLE_BUFFERING'.
934 
935  I parametri richiesto sono x:
936  --- t_toShow --> informazioni da visualizzare [const char*]
937  --- t_x, t_y --> posizione del cursore dal punto di inizio per la stesura delle informazioni da visualizzare
938  --- t_Size --> dimensione del testo da visualizzare
939  --- t_COLOR --> colore del testo da visualizzare
940  --- t_Switch --> indica la modalità del buffer: 'LOCK_INCREMENTAL_MODIFY', ALLOW_INCREMENTAL_MODIFY'
941  */
968  static bool ShowAutomated(const char* t_toShow, const int& t_x, const int& t_y, const unsigned int& t_Size, const Color& t_COLOR,
970 
971  // ShowAutomated (2.1)
972  /*
973  Il seguente metodo permette di visualizzare le infomazioni desiderate sulla matrice.
974  Esso presenta una specializzazione del comportamento. Infatti, per automatizzare la visualizzazione delle infomazioni, le procedure da adottare sono diverse
975  in base al parametro 'm_DOUBLE_BUFFERING'.
976 
977  I parametri richiesto sono x:
978  --- t_toShow --> informazioni da visualizzare [String]
979  --- t_x, t_y --> posizione del cursore dal punto di inizio per la stesura delle informazioni da visualizzare
980  --- t_Size --> dimensione del testo da visualizzare
981  --- t_RED, t_GREEN, t_BLUE, --> colore del testo da visualizzare
982  --- t_Switch --> indica la modalità del buffer: 'LOCK_INCREMENTAL_MODIFY', ALLOW_INCREMENTAL_MODIFY'
983  */
1019  static bool ShowAutomated(String& t_toShow, const int& t_x, const int& t_y, const unsigned int& t_Size,
1020  const unsigned int& t_RED, const unsigned int& t_GREEN, const unsigned int& t_BLUE, const IncrementalModifyBuffer& t_Switch = IncrementalModifyBuffer::INVALID_REFERENCE);
1021 
1022  // ShowAutomated (2.2)
1023  /*
1024  Il seguente metodo permette di visualizzare le infomazioni desiderate sulla matrice.
1025  Esso presenta una specializzazione del comportamento. Infatti, per automatizzare la visualizzazione delle infomazioni, le procedure da adottare sono diverse
1026  in base al parametro 'm_DOUBLE_BUFFERING'.
1027 
1028  I parametri richiesto sono x:
1029  --- t_toShow --> informazioni da visualizzare [String]
1030  --- t_x, t_y --> posizione del cursore dal punto di inizio per la stesura delle informazioni da visualizzare
1031  --- t_Size --> dimensione del testo da visualizzare
1032  --- t_COLOR --> colore del testo da visualizzare
1033  --- t_Switch --> indica la modalità del buffer: 'LOCK_INCREMENTAL_MODIFY', ALLOW_INCREMENTAL_MODIFY'
1034  */
1068  static bool ShowAutomated(String& t_toShow, const int& t_x, const int& t_y, const unsigned int& t_Size, const Color& t_COLOR,
1070 
1071  // "Pulisce" lo schermo e visualizza le informazioni sulla matrice
1072  // ClearShowAutomated (1.1)
1073  /*
1074  Il seguente metodo permette di visualizzare le infomazioni desiderate sulla matrice.
1075  Come prima operazione, "pulisce" lo schermo. Poi, visualizza.
1076  Esso presenta una specializzazione del comportamento. Infatti, per automatizzare la visualizzazione delle infomazioni, le procedure da adottare sono diverse
1077  in base al parametro 'm_DOUBLE_BUFFERING'.
1078 
1079  I parametri richiesto sono x:
1080  --- t_toShow --> informazioni da visualizzare [const char*]
1081  --- t_x, t_y --> posizione del cursore dal punto di inizio per la stesura delle informazioni da visualizzare
1082  --- t_Size --> dimensione del testo da visualizzare
1083  --- t_RED, t_GREEN, t_BLUE, --> colore del testo da visualizzare
1084  --- t_Switch --> indica la modalità del buffer: 'LOCK_INCREMENTAL_MODIFY', ALLOW_INCREMENTAL_MODIFY'
1085  */
1115  static bool ClearShowAutomated(const char* t_toShow, const int& t_x, const int& t_y, const unsigned int& t_Size,
1116  const unsigned int& t_RED, const unsigned int& t_GREEN, const unsigned int& t_BLUE, const IncrementalModifyBuffer& t_Switch = IncrementalModifyBuffer::INVALID_REFERENCE);
1117 
1118  // ClearShowAutomated (1.2)
1119  /*
1120  Il seguente metodo permette di visualizzare le infomazioni desiderate sulla matrice.
1121  Come prima operazione, "pulisce" lo schermo. Poi, visualizza.
1122  Esso presenta una specializzazione del comportamento. Infatti, per automatizzare la visualizzazione delle infomazioni, le procedure da adottare sono diverse
1123  in base al parametro 'm_DOUBLE_BUFFERING'.
1124 
1125  I parametri richiesto sono x:
1126  --- t_toShow --> informazioni da visualizzare [const char*]
1127  --- t_x, t_y --> posizione del cursore dal punto di inizio per la stesura delle informazioni da visualizzare
1128  --- t_Size --> dimensione del testo da visualizzare
1129  --- t_COLOR --> colore del testo da visualizzare
1130  --- t_Switch --> indica la modalità del buffer: 'LOCK_INCREMENTAL_MODIFY', ALLOW_INCREMENTAL_MODIFY'
1131  */
1159  static bool ClearShowAutomated(const char* t_toShow, const int& t_x, const int& t_y, const unsigned int& t_Size, const Color& t_COLOR,
1161 
1162  // ClearShowAutomated (2.1)
1163  /*
1164  Il seguente metodo permette di visualizzare le infomazioni desiderate sulla matrice.
1165  Come prima operazione, "pulisce" lo schermo. Poi, visualizza.
1166  Esso presenta una specializzazione del comportamento. Infatti, per automatizzare la visualizzazione delle infomazioni, le procedure da adottare sono diverse
1167  in base al parametro 'm_DOUBLE_BUFFERING'.
1168 
1169  I parametri richiesto sono x:
1170  --- t_toShow --> informazioni da visualizzare [String]
1171  --- t_x, t_y --> posizione del cursore dal punto di inizio per la stesura delle informazioni da visualizzare
1172  --- t_Size --> dimensione del testo da visualizzare
1173  --- t_RED, t_GREEN, t_BLUE, --> colore del testo da visualizzare
1174  --- t_Switch --> indica la modalità del buffer: 'LOCK_INCREMENTAL_MODIFY', ALLOW_INCREMENTAL_MODIFY'
1175  */
1212  static bool ClearShowAutomated(String& t_toShow, const int& t_x, const int& t_y, const unsigned int& t_Size,
1213  const unsigned int& t_RED, const unsigned int& t_GREEN, const unsigned int& t_BLUE, const IncrementalModifyBuffer& t_Switch = IncrementalModifyBuffer::INVALID_REFERENCE);
1214 
1215  // ClearShowAutomated (2.2)
1216  /*
1217  Il seguente metodo permette di visualizzare le infomazioni desiderate sulla matrice.
1218  Come prima operazione, "pulisce" lo schermo. Poi, visualizza.
1219  Esso presenta una specializzazione del comportamento. Infatti, per automatizzare la visualizzazione delle infomazioni, le procedure da adottare sono diverse
1220  in base al parametro 'm_DOUBLE_BUFFERING'.
1221 
1222  I parametri richiesto sono x:
1223  --- t_toShow --> informazioni da visualizzare [String]
1224  --- t_x, t_y --> posizione del cursore dal punto di inizio per la stesura delle informazioni da visualizzare
1225  --- t_Size --> dimensione del testo da visualizzare
1226  --- t_COLOR --> colore del testo da visualizzare
1227  --- t_Switch --> indica la modalità del buffer: 'LOCK_INCREMENTAL_MODIFY', ALLOW_INCREMENTAL_MODIFY'
1228  */
1263  static bool ClearShowAutomated(String& t_toShow, const int& t_x, const int& t_y, const unsigned int& t_Size, const Color& t_COLOR,
1265 
1266  // Visualizza sulla matrice una immagine formato 'bitmap'
1267  // ShowBitmap (1)
1268  /*
1269  Il seguente metodo permette di visualizzare una immagine in formato bitmap (rappresentata da un vettore di caratteri) sulla matrice.
1270  Esso presenta una specializzazione del comportamento. Infatti, per automatizzare la visualizzazione delle infomazioni, le procedure da adottare sono diverse
1271  in base al parametro 'm_DOUBLE_BUFFERING'.
1272 
1273  I parametri richiesti sono 8:
1274  --- t_toShow --> informazioni da visualizzare [vettore di 'const char']
1275  --- t_x, t_y --> posizione del cursore dal punto di inizio per la stesura delle informazioni da visualizzare
1276  --- t_RED, t_GREEN, t_BLUE, --> colore del testo da visualizzare
1277  --- t_Switch --> indica la modalità del buffer: 'LOCK_INCREMENTAL_MODIFY', ALLOW_INCREMENTAL_MODIFY'
1278  --- t_w, t_h --> rispettivamente larghezza e altezza dell'immagine bitmap (di default: 32 x 16)
1279  */
1308  static bool ShowBitmap(const unsigned char* t_toShow, const int& t_x, const int& t_y, const unsigned int& t_RED, const unsigned int& t_GREEN, const unsigned int& t_BLUE,
1309  const IncrementalModifyBuffer& t_Switch = IncrementalModifyBuffer::INVALID_REFERENCE, const unsigned int& t_w = Matrix__file::_w, const unsigned int& t_h = Matrix__file::_h);
1310 
1311  // ShowBitmap (2)
1312  /*
1313  Il seguente metodo permette di visualizzare una immagine in formato bitmap (rappresentata da un vettore di caratteri) sulla matrice.
1314  Esso presenta una specializzazione del comportamento. Infatti, per automatizzare la visualizzazione delle infomazioni, le procedure da adottare sono diverse
1315  in base al parametro 'm_DOUBLE_BUFFERING'.
1316 
1317  I parametri richiesti sono 8:
1318  --- t_toShow --> informazioni da visualizzare [vettore di 'const char']
1319  --- t_x, t_y --> posizione del cursore dal punto di inizio per la stesura delle informazioni da visualizzare
1320  --- t_COLOR --> colore del testo da visualizzare
1321  --- t_Switch --> indica la modalità del buffer: 'LOCK_INCREMENTAL_MODIFY', ALLOW_INCREMENTAL_MODIFY'
1322  --- t_w, t_h --> rispettivamente larghezza e altezza dell'immagine bitmap (di default: 32 x 16)
1323  */
1350  static bool ShowBitmap(const unsigned char* t_toShow, const int& t_x, const int& t_y, const Color& t_COLOR,
1351  const IncrementalModifyBuffer& t_Switch = IncrementalModifyBuffer::INVALID_REFERENCE, const unsigned int& t_w = Matrix__file::_w, const unsigned int& t_h = Matrix__file::_h);
1352 
1353  // "Pulisce" lo schermo visualizze una immagine formato 'bitmap'
1354  // ClearShowBitmap (1)
1355  /*
1356  Il seguente metodo permette di visualizzare una immagine in formato bitmap (rappresentata da un vettore di caratteri) sulla matrice.
1357  Come prima operazione, "pulisce" lo schermo. Poi, visualizza.
1358  Esso presenta una specializzazione del comportamento. Infatti, per automatizzare la visualizzazione delle infomazioni, le procedure da adottare sono diverse
1359  in base al parametro 'm_DOUBLE_BUFFERING'.
1360 
1361  I parametri richiesti sono 8:
1362  --- t_toShow --> informazioni da visualizzare [vettore di 'const char']
1363  --- t_x, t_y --> posizione del cursore dal punto di inizio per la stesura delle informazioni da visualizzare
1364  --- t_RED, t_GREEN, t_BLUE, --> colore del testo da visualizzare
1365  --- t_Switch --> indica la modalità del buffer: 'LOCK_INCREMENTAL_MODIFY', ALLOW_INCREMENTAL_MODIFY'
1366  --- t_w, t_h --> rispettivamente larghezza e altezza dell'immagine bitmap (di default: 32 x 16)
1367  */
1397  static bool ClearShowBitmap(const unsigned char* t_toShow, const int& t_x, const int& t_y, const unsigned int& t_RED, const unsigned int& t_GREEN, const unsigned int& t_BLUE,
1398  const IncrementalModifyBuffer& t_Switch = IncrementalModifyBuffer::INVALID_REFERENCE, const unsigned int& t_w = Matrix__file::_w, const unsigned int& t_h = Matrix__file::_h);
1399 
1400  // ClearShowBitmap (2)
1401  /*
1402  Il seguente metodo permette di visualizzare una immagine in formato bitmap (rappresentata da un vettore di caratteri) sulla matrice.
1403  Come prima operazione, "pulisce" lo schermo. Poi, visualizza.
1404  Esso presenta una specializzazione del comportamento. Infatti, per automatizzare la visualizzazione delle infomazioni, le procedure da adottare sono diverse
1405  in base al parametro 'm_DOUBLE_BUFFERING'.
1406 
1407  I parametri richiesti sono 8:
1408  --- t_toShow --> informazioni da visualizzare [vettore di 'const char']
1409  --- t_x, t_y --> posizione del cursore dal punto di inizio per la stesura delle informazioni da visualizzare
1410  --- t_COLOR --> colore del testo da visualizzare
1411  --- t_Switch --> indica la modalità del buffer: 'LOCK_INCREMENTAL_MODIFY', ALLOW_INCREMENTAL_MODIFY'
1412  --- t_w, t_h --> rispettivamente larghezza e altezza dell'immagine bitmap (di default: 32 x 16)
1413  */
1441  static bool ClearShowBitmap(const unsigned char* t_toShow, const int& t_x, const int& t_y, const Color& t_COLOR,
1442  const IncrementalModifyBuffer& t_Switch = IncrementalModifyBuffer::INVALID_REFERENCE, const unsigned int& t_w = Matrix__file::_w, const unsigned int& t_h = Matrix__file::_h);
1443 
1444  // Visualizza il logo originale GBE
1461  static bool ShowLogo_GBE();
1462 
1463  // Visualizza il lofo del WiFi
1478  static bool ShowLogo_WiFi();
1479 
1480  // Visualizza il logo del WiFi crossed
1496  static bool ShowLogo_CrossedWiFi();
1497 };
1498 
1499 // Dichiarazione delle variabili GLOBALI STATICHE
1500 // Risiederanno nel Data Segment
1501 /*
1502 Essendo statiche in classe, tutti gli attributi non sono altro che variabili GLOBALI STATICHE.
1503 Per questo è richiesta la dichiarazione globale. Non è necessario specificare 'static' essendo già stato specificato nella dichiarazione degli
1504 attributi nella classe stessa.
1505 */
1507 RGBmatrixPanel* Matrix::m_Matrix;
1509 unsigned int Matrix::m_CLK;
1511 unsigned int Matrix::m_OE;
1513 unsigned int Matrix::m_LAT;
1515 unsigned int Matrix::m_A;
1517 unsigned int Matrix::m_B;
1519 unsigned int Matrix::m_C;
1523 bool Matrix::m_isStarted = false;
1525 char* Matrix::m_Container = nullptr;
1527 const unsigned char Matrix::G_bitmap[64];
1529 const unsigned char Matrix::B_bitmap[64];
1531 const unsigned char Matrix::E_bitmap[64];
1533 const unsigned char Matrix::wifi_bitmap[64];
1535 const unsigned char Matrix::cross_bitmap[64];
1536 
Matrix__file::_LAT
static constexpr auto _LAT
Definition: Matrix.h:63
Matrix::set_Color
static bool set_Color(const unsigned int &t_RED, const unsigned int &t_GREEN, const unsigned int &t_BLUE)
Imposta il colore delle informazioni da visualizzare.
Definition: Matrix.cpp:422
Matrix::Show
static bool Show(const char *t_toShow)
Visualizza sullo schermo della matrice l'informazione fornita come parametro.
Definition: Matrix.cpp:488
Matrix::reset_Container
static void reset_Container()
Resetta (assegna il valore di default) al contenitore.
Definition: Matrix.cpp:344
Matrix__file::_h
static constexpr auto _h
Definition: Matrix.h:91
Matrix::Matrix
Matrix()=default
Costruttore di default della classe Matrix.
Matrix::m_Container
static char * m_Container
Definition: Matrix.h:603
Matrix::ReInit
static bool ReInit()
LowLevel reallocator della classe Matrix.
Definition: Matrix.cpp:200
Matrix::Color::BLACK
Matrix::m_B
static unsigned int m_B
Definition: Matrix.h:212
Matrix::ShowLogo_CrossedWiFi
static bool ShowLogo_CrossedWiFi()
Visualizza il logo del WiFi crossed.
Definition: Matrix.cpp:1234
Matrix__file
Spazio dei nomi riferito al file Matrix.h.
Matrix::Color::YELLOW
Matrix::Color::WHITE
Matrix__file::_w
static constexpr auto _w
Definition: Matrix.h:86
Matrix::get_LAT
static unsigned int *const get_LAT()
LowLevel getter per l'attributo m_LAT.
Definition: Matrix.cpp:160
Matrix::Color::BLUE
Matrix::Color::RED
Matrix::Color::TEAL
Matrix::Color::PURPLE
Matrix::IncrementalModifyBuffer::LOCK_INCREMENTAL_MODIFY
Matrix::SwapBuffers
static bool SwapBuffers(const IncrementalModifyBuffer &t_Switch)
Effettua lo swap dei due buffer 'back_buffer', 'front_buffer'.
Definition: Matrix.cpp:389
Matrix::m_isStarted
static bool m_isStarted
Definition: Matrix.h:224
Matrix::Clear
static bool Clear()
"Pulisce" lo schermo della matrice
Definition: Matrix.cpp:350
Matrix::Color::AQUA
Matrix::get_C
static unsigned int *const get_C()
LowLevel getter per l'attributo m_C.
Definition: Matrix.cpp:184
Matrix::Color::GREEN
Matrix::Color::LIME
Matrix::get_B
static unsigned int *const get_B()
LowLevel getter per l'attributo m_B.
Definition: Matrix.cpp:176
Matrix::Color::FUCHSIA
Matrix::deallocate_forConversion
static bool deallocate_forConversion(char *t_toDeallocate)
Gestisce la deallocazione del contenitore per la conversione.
Definition: Matrix.cpp:328
Matrix::Color
Color
Enumerazione per la definizione dei principali colori utilizzabili per la visualizzazione di informaz...
Definition: Matrix.h:162
Matrix::m_Matrix
static RGBmatrixPanel * m_Matrix
Definition: Matrix.h:191
Matrix::m_OE
static unsigned int m_OE
Definition: Matrix.h:200
Matrix::get_CLK
static unsigned int *const get_CLK()
LowLevel getter per l'attributo m_CLK.
Definition: Matrix.cpp:144
Matrix::ShowAutomated
static bool ShowAutomated(const char *t_toShow, const int &t_x, const int &t_y, const unsigned int &t_Size, const unsigned int &t_RED, const unsigned int &t_GREEN, const unsigned int &t_BLUE, const IncrementalModifyBuffer &t_Switch=IncrementalModifyBuffer::INVALID_REFERENCE)
AUTOMATIZZATO: Visualizza sullo schermo della matrice l'informazione fornita come parametro.
Definition: Matrix.cpp:555
Matrix__file::_OE
static constexpr auto _OE
Definition: Matrix.h:60
Matrix::Begin
static bool Begin()
Metodo di avvio della matrice.
Definition: Matrix.cpp:118
Matrix::Init
static bool Init()
Metodo di inizializzazione dei componenti della classe.
Definition: Matrix.cpp:16
Matrix::ClearShowAutomated
static bool ClearShowAutomated(const char *t_toShow, const int &t_x, const int &t_y, const unsigned int &t_Size, const unsigned int &t_RED, const unsigned int &t_GREEN, const unsigned int &t_BLUE, const IncrementalModifyBuffer &t_Switch=IncrementalModifyBuffer::INVALID_REFERENCE)
AUTOMATIZZATO: Visualizza sullo schermo della matrice l'informazione fornita come parametro.
Definition: Matrix.cpp:783
Matrix::SwapBuffersAutomated
static bool SwapBuffersAutomated()
AUTOMATIZZATO: Effettua lo swap dei due buffer 'back_buffer', 'front_buffer'.
Definition: Matrix.cpp:531
Matrix::set_Container
static void set_Container(char *t_toSet)
Assegna un valore (indirizzo di memoria) al contenitore.
Definition: Matrix.cpp:338
Matrix::IncrementalModifyBuffer::ALLOW_INCREMENTAL_MODIFY
Matrix::set_Cursor
static bool set_Cursor(const int &t_x, const int &t_y)
Imposta il cursore alle coordinate specificate.
Definition: Matrix.cpp:370
Matrix::m_LAT
static unsigned int m_LAT
Definition: Matrix.h:204
Matrix::from_String_to_Char
static char * from_String_to_Char(String &t_toConvert)
Converte una stringa 'String' in un vettore di caratteri 'char*'.
Definition: Matrix.cpp:303
Matrix::get_Matrix
static RGBmatrixPanel *const get_Matrix()
LowLevel getter per l'attributo m_Matrix.
Definition: Matrix.cpp:137
Matrix__file::_C
static constexpr auto _C
Definition: Matrix.h:72
Matrix::m_CLK
static unsigned int m_CLK
Definition: Matrix.h:196
Matrix::m_C
static unsigned int m_C
Definition: Matrix.h:216
Matrix::ShowLogo_WiFi
static bool ShowLogo_WiFi()
Visualizza il logo del WiFi.
Definition: Matrix.cpp:1217
Matrix__file::_B
static constexpr auto _B
Definition: Matrix.h:69
Matrix::DefineShades
static void DefineShades(const Color &t_COLOR, unsigned int &t_RED, unsigned int &t_GREEN, unsigned int &t_BLUE)
Determina la composizione RGB in base al campo enumerativo per il colore indicato.
Definition: Matrix.cpp:223
Matrix::ShowLogo_GBE
static bool ShowLogo_GBE()
Visualizza il logo originale della RadioSvegliaGBE.
Definition: Matrix.cpp:1198
Matrix
Classe per la gestione della Matrice di LED RGB 16x32 Adafruit.
Definition: Matrix.h:101
Matrix::ShowBitmap
static bool ShowBitmap(const unsigned char *t_toShow, const int &t_x, const int &t_y, const unsigned int &t_RED, const unsigned int &t_GREEN, const unsigned int &t_BLUE, const IncrementalModifyBuffer &t_Switch=IncrementalModifyBuffer::INVALID_REFERENCE, const unsigned int &t_w=Matrix__file::_w, const unsigned int &t_h=Matrix__file::_h)
AUTOMATIZZATO: Visualizza sullo schermo della matrice l'informazione fornita come parametro --> BITMA...
Definition: Matrix.cpp:1035
Matrix::ClearShowBitmap
static bool ClearShowBitmap(const unsigned char *t_toShow, const int &t_x, const int &t_y, const unsigned int &t_RED, const unsigned int &t_GREEN, const unsigned int &t_BLUE, const IncrementalModifyBuffer &t_Switch=IncrementalModifyBuffer::INVALID_REFERENCE, const unsigned int &t_w=Matrix__file::_w, const unsigned int &t_h=Matrix__file::_h)
AUTOMATIZZATO: Visualizza sullo schermo della matrice l'informazione fornita come parametro --> BITMA...
Definition: Matrix.cpp:1110
Matrix::allocate_forConversion
static char * allocate_forConversion(const unsigned int &t_Length)
Gestisce l'allocazione del contenitore per la conversione.
Definition: Matrix.cpp:319
Matrix__file::_A
static constexpr auto _A
Definition: Matrix.h:66
Matrix::IncrementalModifyBuffer::INVALID_REFERENCE
Matrix__file::_DOUBLE_BUFFERING
static constexpr bool _DOUBLE_BUFFERING
Definition: Matrix.h:80
Matrix::get_OE
static unsigned int *const get_OE()
LowLevel getter per l'attributo m_OE.
Definition: Matrix.cpp:152
Matrix::get_DOUBLE_BUFFERING
static bool *const get_DOUBLE_BUFFERING()
LowLevel getter per l'attributo m_DOUBLE_BUFFERING.
Definition: Matrix.cpp:192
Matrix::~Matrix
~Matrix()=default
Distruttore della classe Matrix.
Matrix::Color::NAVY
Matrix::IncrementalModifyBuffer
IncrementalModifyBuffer
Enumerazione per la definizione degli stati di sovrascrittura o aggiunta durante la visualizzazione d...
Definition: Matrix.h:148
Matrix::get_A
static unsigned int *const get_A()
LowLevel getter per l'attributo m_A.
Definition: Matrix.cpp:168
Matrix__file::_CLK
static constexpr auto _CLK
Definition: Matrix.h:57
Matrix::PROGMEM
static const unsigned char G_bitmap[64] PROGMEM
Definition: Matrix.h:229
Matrix::set_TextSize
static bool set_TextSize(const unsigned int &t_Size)
Imposta la dimensione del testo da visualizzare.
Definition: Matrix.cpp:468
Matrix::m_A
static unsigned int m_A
Definition: Matrix.h:208
Matrix::m_DOUBLE_BUFFERING
static bool m_DOUBLE_BUFFERING
Definition: Matrix.h:220