Stream class

Ciao a tutti,
vi chiedo un aiuto nel comprendere come utilizzare la classe in oggetto :slight_smile:
più nello specifico, quando altre librerie si aspettano un oggetto "stream", come dovrei creare una mia libreria di comunicazione per funzionare? è "sufficiente" che la mia libreria implementi gli stessi metodi di stream? oppure cos'altro? (la mia libreria, come da altro post poco sotto, è quella di funzionamento di una UART su i2c - SC16IS750)

grazie mille
ciao

ciao...sinceramente non ho capito se vuoi passare un oggetto stream ad una tua classe o se vuoi creare una classe che estende la stream...questa seconda, secondo me, non ha tanto senso...

Credo tu abbia già delle funzioni per leggere e scrivere sul device, ecco con la stream devi implementare solo le funzioni virtual, cioè,

public:
    virtual int available() = 0;
    virtual int read() = 0;
    virtual int peek() = 0;

Prendi come riferimento la classe HardwareSerial.h

class HardwareSerial : public Stream
{

Eredita Stream ed implementa available, read e peek. Nota che HardwareSerial usa un ring buffer.

Ciao.

ah-ah
grazie mille
ce l'ho fatta
Orso, in realtà volevo fare proprio quella cosa senza senso
Mauro, grazie mille.
L'unica cosa su cui mi sono un po' schiantato è la write, perchè da alcune parti write scrive un carattere, da altre scrive un buffer di dimensione nota (e passata)
ma l'ho sistemato e incredibilmente funziona tutto
grazie ancora