21 #ifndef MassagePacker_h 22 #define MassagePacker_h 24 #if defined(ARDUINO) && ARDUINO >= 100 30 #ifndef MASSAGE_PACKER_BUFFERSIZE 35 #define MASSAGE_PACKER_BUFFERSIZE 256 62 const uint8_t* buffer()
const {
70 virtual void addByte(uint8_t value) = 0;
73 virtual void addInt(int16_t value) = 0;
76 virtual void addLong(int32_t value) = 0;
79 virtual void addFloat(
float value) = 0;
82 virtual void addString(
const char* value) = 0;
90 stream->write( buffer(),
size() );
148 virtual void streamOneByte(Stream* stream,
const char *address, uint8_t value)
156 virtual void streamOneInt(Stream* stream,
const char *address, int16_t value)
164 virtual void streamOneLong(Stream* stream,
const char *address, int32_t value)
190 bool _store(uint8_t value)
192 if (_messageSize >= MASSAGE_PACKER_BUFFERSIZE)
195 _buffer[_messageSize++] = value;
203 uint8_t _buffer[MASSAGE_PACKER_BUFFERSIZE];
virtual void packOneString(const char *address, const char *value)
Create a packet with a single string value.
Definition: MassagePacker.h:133
virtual void streamEmpty(Stream *stream, const char *address)
Stream a packet with no arguments.
Definition: MassagePacker.h:141
virtual void streamPacket(Stream *stream)
Ends the sending of a message and sends it through a Stream.
Definition: MassagePacker.h:88
size_t size() const
Returns size of buffer.
Definition: MassagePacker.h:57
virtual void packOneLong(const char *address, int32_t value)
Create a packet with a single long value.
Definition: MassagePacker.h:117
virtual void addString(const char *value)=0
Adds a float.
virtual void packOneByte(const char *address, uint8_t value)
Create a packet with a single byte value.
Definition: MassagePacker.h:101
virtual void addLong(int32_t value)=0
Adds a long.
virtual void streamOneLong(Stream *stream, const char *address, int32_t value)
Stream a packet with a single long value.
Definition: MassagePacker.h:164
virtual void streamOneString(Stream *stream, const char *address, const char *s)
Stream a packet with a single string value.
Definition: MassagePacker.h:180
void flush()
Flushes current message in buffer (if any).
Definition: MassagePacker.h:52
virtual void packEmpty(const char *address)
Create a packet with no arguments.
Definition: MassagePacker.h:94
virtual void endPacket()=0
Ends the sending of a message.
MassagePacker()
Constructor.
Definition: MassagePacker.h:44
virtual void beginPacket(const char *address)=0
Begins the sending of a message.
virtual void packOneFloat(const char *address, float value)
Create a packet with a single float value.
Definition: MassagePacker.h:125
virtual void streamOneFloat(Stream *stream, const char *address, float value)
Stream a packet with a single float value.
Definition: MassagePacker.h:172
virtual void addByte(uint8_t value)=0
Adds a byte.
virtual void streamOneByte(Stream *stream, const char *address, uint8_t value)
Stream a packet with a single byte value.
Definition: MassagePacker.h:148
virtual void packOneInt(const char *address, int16_t value)
Create a packet with a single int value.
Definition: MassagePacker.h:109
virtual void addInt(int16_t value)=0
Adds an int.
virtual void addFloat(float value)=0
Adds a float.
virtual void streamOneInt(Stream *stream, const char *address, int16_t value)
Stream a packet with a single int value.
Definition: MassagePacker.h:156
Main MassagePacker abstract class.
Definition: MassagePacker.h:40