La repository qui presente contiene l'implementazione del progetto per il corso Distributed Measurement and Data Acquisition Systems (a.a 2021/2022) degli studenti D'Arcangelo, De Pinto, Zinfollino e Karpczak del Politecnico di Bari. Il progetto prevede la realizzazione di un sistema di misura della temperatura per poter monitorare e correggere la procedura di cottura della vernice applicata ad alcuni elementi di dimensione e forma differenti: l'obbiettivo finale è quello di costruire il profilo termico del bene realizzato, ovvero il tracciamento di una curva che mostra la termperatura del prodotto durante l'intera fase di cottura. Ciò che segue è una descrizione di ciascuna componente del sistema realizzato.
Il file max31865.ino contiene lo script utilizzato per la richiesta dei dati di misure di temperatura. Esso sfrutta un buffer circolare (implementato tramite CircularBuffer.cpp) per memorizzare le misure con un periodo di campionamento definito dall'utente (ed implementato tramite l'uso di un timer). INSERIRE DETTAGLI IMPLEMENTATIVI
Il file CircularBuffer.cpp contiene l'implementazione della classe CircularBuffer: un buffer circolare usato per memorizzare i dati delle misure prima della trasmissione. Esso ha una lunghezza _length, un contatore _count per indicare il numero di elementi inseriti e due indici: _head che indica l'elemento inserito più di recente e _tail che indica l'elemento inserito meno recentemente.
Il metodo push(element) permette di inserire all'interno del buffer circolare un elemento, l'elemento sarà inserito in "testa" alla struttura dati, il cui puntatore si sposterà (in modo circolre) in avanti per indicare l'elemento inserito più di recente. Se il puntatore _head coincide con _tail quando il numero di elementi inseriti _count è maggiore di 1, vuol dire che i dati che saranno inseriti successivamente sovrascriveranno quelli più vecchi: è perciò necessario spostare in avanti _tail.
Il metodo pop() permette di leggere e rimuovere l'elemento meno recente dal buffer circolare: l'implementazione prevede solo memorizzare il valore meno recente e di spostare _tail in avanti di una posizione.
Il metodo dump() permette di raccogliere fino a 64kB di dati dal buffer, così che possano essere trasmessi sulla porta seriale in seguito ad una richiesta da parte del calcolatore.
Dato che i valori che saranno memorizzati sono sempre unsined 16 bit integers (uint16_t), ogni elemento del buffer avrà dimensione pari a 2B.
ATTENDO FINALIZZAZIONE DELLO SCRIPT
ATTENDO FINALIZZAZIONE DELLO SCRIPT