RadioSvegliaGBE
SerialSender.cpp
Go to the documentation of this file.
1 
11 // Inclusione <automatica> dell'header che si sta implementando
12 #include "SerialSender.h"
13 
14 // Implementazione del metodo 'Init' della categoria 'Init'
15 bool SerialSender::Init(const unsigned int& t_BaudRate)
16 {
17  // Controllo che la classe non sia già stata inizializzata
18  if (!m_hasBeenCalled)
19  {
20  // Inizializzo la comunicazione seriale attraverso il metodo 'begin' di gestione delle porte seriali
21  Serial.begin(t_BaudRate);
22 
23  // Imposto il valore di 'm_BaudRate' al valore del parametro 't_BaudRate'
24  m_BaudRate = t_BaudRate;
25 
26  // Imposto il valore di 'm_buffer' al valore della constexpr '_initvalue'
28 
29  // Avviso che la chiamata al metodo 'Init' è già stata effettuata
30  m_hasBeenCalled = true;
31 
32  return true;
33  }
34  else
35  return false;
36 }
37 
38 // Implementazione del metodo 'send' della categoria 'Metodi'
39 // send (1)
40 bool SerialSender::send(const char* t_toSend)
41 {
42  // Controllo se la classe è già stata inizializzata
43  if (!m_hasBeenCalled)
44  return false;
45 
46  // Salvo nella variabile 'm_buffer' il valore che sto per inviare
47  m_buffer = t_toSend;
48 
49  // Invio i dati contenuti nel parametro 't_toSend' via comunicazione seriale [rx, tx]
50  /*
51  Importante è la presenza della "\nl" 'new line' ad ogni invio di dati.
52  Questo è necessario per la sincronizzazione con il ricevitore. Infatti, esso riceverà i dati come singoli 'char', che poi
53  provvederà a "compattare" in una stringa. L'operazione continuerà proprio fino a quando non verrà spedito come carattere, una 'new line'.
54  */
55  Serial.println(t_toSend);
56 
57  return true;
58 }
59 
60 // Implementazione del metodo 'send' della categoria 'Metodi'
61 // send (2)
62 bool SerialSender::send(String t_toSend)
63 {
64  // Controllo se la classe è già stata inizializzata
65  if (!m_hasBeenCalled)
66  return false;
67 
68  // Salvo nella variabile 'm_buffer' il valore che sto per inviare
69  m_buffer = t_toSend;
70 
71  // Invio i dati contenuti nel parametro 't_toSend' via comunicazione seriale [rx, tx]
72  /*
73  Importante è la presenza della "\nl" 'new line' ad ogni invio di dati.
74  Questo è necessario per la sincronizzazione con il ricevitore. Infatti, esso riceverà i dati come singoli 'char', che poi
75  provvederà a "compattare" in una stringa. L'operazione continuerà proprio fino a quando non verrà spedito come carattere, una 'new line'.
76  */
77  Serial.println(t_toSend);
78 
79  return true;
80 }
81 
82 // Implementazione del metodo 'get_buffer' della categoria 'Metodi'
83 inline String SerialSender::get_buffer()
84 {
85  // Ritorno il valore del buffer 'm_buffer' che per�, a differenza del metodo 'read', non � stato aggiornato.
86  // Contiene quindi il valore dell'ultimo dato inviato.
87 
88  // Controllo se la classe è già stata inizializzata
89  if (!m_hasBeenCalled)
91 
92  return m_buffer;
93 }
94 
95 // Implementazione del metodo 'get_BaudRate' della categoria 'Metodi'
96 inline const unsigned int& SerialSender::get_BaudRate()
97 {
98  // Ritorno il valore di 'm_BaudRate'
99 
100  // Controllo se la classe è già stata inizializzata
101  if (!m_hasBeenCalled)
102  return m_Invalidator_asNumber;
103 
104  return m_BaudRate;
105 }
106 
107 // Implementazione del metodo 'get_Invalidator_asString' della categoria 'getter -> Invalidator'
108 /*La specificazione 'inline' rappresenta una grossa ottimizzazione!!*/
110 {
111  // Ritorno il valore dell'attributo 'm_Invalidator_asString'. Per evitare la copia durante la fase di ritorno, ritorno l'attributo
112  // originale [referenza --> reference '&']. L'attributo è già costante, questo evita modifiche non autorizzate.
113  return m_Invalidator_asString;
114 }
115 
116 // Implementazione del metodo 'get_Invalidator_asNumber' della categoria 'getter -> Invalidator'
117 /*La specificazione 'inline' rappresenta una grossa ottimizzazione!!*/
119 {
120  // Ritorno il valore dell'attributo 'm_Invalidator_asNumber'. Per evitare la copia durante la fase di ritorno, ritorno l'attributo
121  // originale [referenza --> reference '&']. L'attributo è già costante, questo evita modifiche non autorizzate.
122  return m_Invalidator_asNumber;
123 }
124 
126 //////////////////////////////////////////////////////////////////////////
SerialSender::get_buffer
static String get_buffer()
Permette di ottenere il valore del buffer corrente.
Definition: SerialSender.cpp:83
SerialSender::m_hasBeenCalled
static bool m_hasBeenCalled
Definition: SerialSender.h:111
SerialSender::m_BaudRate
static unsigned int m_BaudRate
Definition: SerialSender.h:107
SerialSender::m_Invalidator_asString
static const String m_Invalidator_asString
Definition: SerialSender.h:234
SerialSender::get_BaudRate
static const unsigned int & get_BaudRate()
Permette di ottenere il valore del Baud Rate utilizzato corrente.
Definition: SerialSender.cpp:96
SerialSender::send
static bool send(const char *t_toSend)
Metodo per effettuare la scrittura di dati via comunicazione seriale [rx, tx].
Definition: SerialSender.cpp:40
SerialSender.h
SerialSender__file::_initvalue
static const String _initvalue
Definition: SerialSender.h:43
SerialSender::get_Invalidator_asNumber
static const int & get_Invalidator_asNumber()
Permette di ottenere l'invalidatore della classe --> int.
Definition: SerialSender.cpp:118
SerialSender::get_Invalidator_asString
static const String & get_Invalidator_asString()
Permette di ottenere l'invalidatore della classe --> String.
Definition: SerialSender.cpp:109
SerialSender::m_buffer
static String m_buffer
Definition: SerialSender.h:103
SerialSender::m_Invalidator_asNumber
static const int m_Invalidator_asNumber
Definition: SerialSender.h:240
SerialSender::Init
static bool Init(const unsigned int &t_BaudRate)
Metodo di inizializzazione dei componenti della classe.
Definition: SerialSender.cpp:15