MasterComunicationHandler - GregoSwe/pluviometroI2c GitHub Wiki
#Indice
MasterComunicationHandler - MCH
Componente software dedicato alla comunicazione I2C con la scheda Master attraverso un protocollo di istruzioni che prevedono prima la ricezione di un byte con il quale viene deciso il tipo di azione da effettuare e il caricamento in RAM delle varie variabili da inviare e poi su richiesta della scheda Master, i valori precedentemente richiesti vengono inviati. Ogni allocazione di memoria nello HEAP viene liberato al momento opportuno.
Questo componente software utilizza i metodi pubblici di MemoryHandler
MCH Attributi
Pubblici:
Privati:
private:
byte requestType;
AbstractAction* action;
unsigned int buffer;
unsigned int MAXRAM;
MCH Descrizione degli attributi
Pubblici:
Privati:
byte requestType-> byte che identifica il tipo di azione che deve essere preparata da MasterComunicationHandler, di default è settata a 255 che identifica la mancanza di azioni da effettuare. Questo valore è stato scelto appositamente poiché se ci sono problemi di comunicazione I2C spesso vengono inviati bit a 1, così nel caso di un problema di comunicazione non verrà preparata alcun tipo di azione;AbstractAction* action-> puntatore alla classe astratta che permette di creare un oggetto di tipo Action utilizzato per le comunicazioni con la scheda Master;unsigned int buffer-> intero utilizzato per sapere a che punto la comunicazione a blocchi con il master è arrivata;unsigned int MAXRAM-> itero che rappresenta la massima capacità di RAM dedicata dalla scheda slave per l'invio di un blocco di byte alla scheda Master.
MCH Metodi
Pubblici:
public:
MasterComunicationHandlerClass();
void selectAction(byte _actionType);
void prepareAction();
void executeAction();
Privati:
private:
void sendBytes(byte* _bytes,int _howMany);
void sendInteger(int _integer);
MCH Descrizione dei metodi
Pubblici
-
####
MasterComunicationHandlerClass()torna suCostruttore della classe
- Variabili direttamente modificate:
action;requestType;buffer;MAXRAM.
- Variabili direttamente modificate:
-
####
void selectAction(byte _actionType)torna suMetodo che imposta il tipo di azione che deve essere programmata
- Parametri:
byte _actionType: byte che rappresenta il tipo di azione che deve essere programmata.
- Parametri:
-
####
void prepareAction()torna suMetodo che controlla il valore di requestType e crea l'oggetto Action adeguato, così caricando in memoria le informazioni necessarie per rispondere alla richiesta effettuata dal Master. Prima di creare una nuova Action si assicura di eliminare quella precedente.
- Metodi usati:
MemoryHandler.newTimestamp();MemoryHandler.memoryUsed();MemoryHandler.getNewTimestamp();MemoryHandler.getMemoryUsed();MemoryHandler.eraseMemory();sendBytes(byte *_bytes, int _howMany);sendInteger(int _integer);
- Variabili direttamente modificate:
action.
- Metodi usati:
-
####
void executeAction()torna suMetodo che esegue il corpo dell'azione preparata in precedenza
Privati:
-
####
void sendBytes(byte* _bytes,int _howMany)torna suMetodo che invia tramite protocollo I2C un array di byte.
- Parametri:
byte* _bytes: byte da inviare tramite protocollo I2C;int _howMany: intero che rappresenta il numero di byte che si desidera inviare.
- Parametri:
-
####
void sendInteger(int _integer)torna suMetodo che invia tramite protocollo I2C un intero.
- Parametri:
int _integer: intero da inviare tramite protocollo I2C.
- Parametri: