4 #ifndef _3ESPACKETREADER_H_ 5 #define _3ESPACKETREADER_H_ 9 #include "3espacketstream.h" 36 uint16_t bytesAvailable()
const;
48 size_t readElement(uint8_t *bytes,
size_t elementSize);
66 size_t readArray(uint8_t *bytes,
size_t elementSize,
size_t elementCount);
78 size_t readRaw(uint8_t *bytes,
size_t byteCount);
85 size_t readElement(T &element);
88 size_t readArray(T *elements,
size_t elementCount);
96 return _packet.payloadSize - _payloadPosition;
102 return readElement(reinterpret_cast<uint8_t *>(&element),
sizeof(T));
105 template <
typename T>
108 return readArray(reinterpret_cast<uint8_t *>(elements),
sizeof(T), elementCount);
111 template <
typename T>
114 int read = readElement(val);
115 _status |= !(read ==
sizeof(T)) * Fail;
120 #endif // _3ESPACKETREADER_H_ Definition: 3esbounds.h:13
A utility class used for managing read/write operations to a PacketHeader payload.
Definition: 3espacketstream.h:19
size_t readArray(uint8_t *bytes, size_t elementSize, size_t elementCount)
Reads an array of data items from the current position.
uint16_t bytesAvailable() const
Returns the number of bytes available for writing in the payload.
Definition: 3espacketreader.h:94
size_t readElement(uint8_t *bytes, size_t elementSize)
Reads a single data element from the current position.
uint16_t CrcType
Defies the packet CRC type.
Definition: 3espacketstream.h:23
A utility class for dealing with reading packets.
Definition: 3espacketreader.h:18