Skip to content

MasterComunicationHandler

GregoSwe edited this page Dec 23, 2014 · 2 revisions

#Indice

torna su

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;

torna su

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.

torna su

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);

torna su

MCH Descrizione dei metodi

Pubblici

  • ####MasterComunicationHandlerClass() torna su

    Costruttore della classe

    • Variabili direttamente modificate:
      • action;
      • requestType;
      • buffer;
      • MAXRAM.
  • ####void selectAction(byte _actionType) torna su

    Metodo che imposta il tipo di azione che deve essere programmata

    • Parametri:
      • byte _actionType: byte che rappresenta il tipo di azione che deve essere programmata.
  • ####void prepareAction() torna su

    Metodo 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.
  • ####void executeAction() torna su

    Metodo che esegue il corpo dell'azione preparata in precedenza

Privati:

  • ####void sendBytes(byte* _bytes,int _howMany) torna su

    Metodo 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.
  • ####void sendInteger(int _integer) torna su

    Metodo che invia tramite protocollo I2C un intero.

    • Parametri:
      • int _integer: intero da inviare tramite protocollo I2C.