Go to the documentation of this file.
19 typedef enum: uint8_t {
236 virtual bool SetPayload(
const uint8_t* payload,
const uint16_t payloadLength);
260 void GetPayload(uint8_t* payload, uint16_t& payloadLength)
const;
295 virtual void Clear();
315 inline const uint8_t*
p_ptr()
const{
331 size_t printTo(Print& p)
const override;
342 return sizeof(*this) +
Length();
351 size_t printRaw(
OSTREAM* stream,
void(*CRC_calculation)(uint8_t*,
size_t))
const override;
405 uint8_t raw = val & 0x0F;
406 if (raw < 10)
return '0' + raw;
407 else return 'A' + raw - 10;
413 #endif // !MESH_PACKET_H
bool GetPayload(MeshVariableArray< uint8_t > &payload) const
Copyies payload data.
Definition: meshPacket.h:268
#define IS_VALID_MESH_DEST_ADDRESS(address)
Checks if mesh "destination" address from packet or frame header is valid. Accepted values from 0 to ...
Definition: meshConfig.h:94
uint8_t GetPayloadByteAt(uint16_t index) const
Reads payload byte at specified index.
Definition: meshPacket.cpp:133
size_t sizeOf() const override
Gets size of the whole class in bytes including dynamically allocated part.
Definition: meshPacket.h:341
bool SetPayload(const MeshVariableArray< uint8_t > &va)
Copyies payload data from variable array to current packet payload.
Definition: meshPacket.h:243
static char toHEXChar(OSTREAM &stream, uint8_t val)
Definition: meshPacket.h:404
bool SetArray(const T *newData, const uint16_t newDataLength)
Sets new data to whole and resizes (expand/shrink) it.
Definition: meshVariableArray.h:154
uint16_t Length() const
Length of data.
Definition: meshVariableArray.h:113
Structure, that contains bit flags used for Frame Control in MeshPacket. Size of this structure is al...
Definition: meshPacketFlags.h:25
typedef SPT_NeighborScan
Definition: meshPacket.h:27
virtual void moveFrom(MeshPacket &another)
Copyies data from another packet to current packet and clears data in another packet.
Definition: meshPacket.cpp:206
typedef SPT_Reserved
Definition: meshPacket.h:24
SystemPacketType GetSystemPacketType() const
Gets type of system packet.
Definition: meshPacket.cpp:119
void ClearPayload()
Clears payload data.
Definition: meshPacket.cpp:181
#define IS_VALID_MESH_TO_ADDRESS(address)
Checks if mesh "to" address from packet or frame header is valid. Accepted values from 0 to MAX_MESH_...
Definition: meshConfig.h:106
const T * d_ptr() const
Pointer to data.
Definition: meshVariableArray.h:330
bool ContainsHopCount() const
Check if frame with current control frame has to contain hop count field.
Definition: meshPacketFlags.h:137
typedef SPT_ERROR
Definition: meshPacket.h:33
MeshPacketHeader PacketHeader
Mesh packet header.
Definition: meshPacket.h:192
virtual size_t getRawSize() const override
Calculates size of raw bytes.
Definition: meshPacket.cpp:471
virtual bool HasError() const
Checks if packet is not valid.
Definition: meshPacket.h:362
virtual bool SetPayload(const uint8_t *payload, const uint16_t payloadLength)
Sets payload data.
Definition: meshPacket.cpp:85
uint8_t * Payload
Packet payload.
Definition: meshPacket.h:392
size_t printLine(OSTREAM *stream) const override
Prints this data as row to table.
Definition: meshPacket.cpp:313
bool ContainsFromAddress() const
Check if frame with current control frame has to contain From address field.
Definition: meshPacketFlags.h:144
Definition: meshFrame.h:126
uint8_t operator[](uint16_t i) const
Definition: meshPacket.h:201
size_t printRaw(OSTREAM *stream, void(*CRC_calculation)(uint8_t *, size_t)) const override
Prints current instance into stream in raw bytes.
Definition: meshPacket.cpp:451
This class safetly handles allocation and deallocation of memory. It can be used in conjunction with ...
Definition: meshVariableArray.h:32
virtual void Clear()
Clears all data in packet.
Definition: meshPacket.cpp:190
Class, that stores mesh packet with it's data. The size of this class can be slightly bigger then rea...
Definition: meshPacket.h:158
virtual bool SetPayloadByteAt(uint16_t index, uint8_t value)
Sets payload byte at specified index.
Definition: meshPacket.cpp:141
Interface for converting class or structure instance to raw bytes, which can be sent.
Definition: meshHelper.h:161
bool ResizePayload(uint16_t size, bool doNotCopy=false)
Resizes payload.
Definition: meshPacket.cpp:150
const uint8_t * p_ptr() const
Pointer to payload.
Definition: meshPacket.h:315
virtual bool copyFrom(const MeshPacket &another)
Copyies data from another packet to current packet.
Definition: meshPacket.cpp:196
typedef SPT_NetScan
Definition: meshPacket.h:22
typedef SPT_Disconnect
Definition: meshPacket.h:26
#define OSTREAM
Definition: meshConfig.h:41
bool error
True when packet has error.
Definition: meshPacket.h:402
typedef SPT_DATA
Definition: meshPacket.h:32
bool ContainsDestinationAddress() const
Check if frame with current control frame has to contain Destination address field.
Definition: meshPacketFlags.h:130
Structure that represents physical MAC address used in MeshNEt protocol. MeshMAC address unlike MAC a...
Definition: meshHelper.h:207
bool GetError() const
Checks if error is set by calling SetError()
Definition: meshPacket.h:376
#define IS_VALID_MESH_SRC_ADDRESS(address)
Checks if mesh "source" address from packet or frame header is valid. Accepted values from 0 to MAX_M...
Definition: meshConfig.h:88
#define INVALID_MESH_ADDRESS
Address, that is invalid and cannot be used.
Definition: meshConfig.h:56
static size_t printHex(OSTREAM &stream, uint8_t val)
Definition: meshPacket.cpp:475
MeshPacket & operator=(const MeshPacket &mp)
Copy assignment operator.
Definition: meshPacket.cpp:75
typedef SPT_ERR_ACK
Definition: meshPacket.h:21
size_t printTo(Print &p) const override
Makes this class printable.
Definition: meshPacket.cpp:304
uint16_t Length() const
Length of payload.
Definition: meshPacket.h:197
MeshPacket()
Definition: meshPacket.cpp:56
~MeshPacket()
Destructor.
Definition: meshPacket.cpp:71
typedef SPT_Connect
Definition: meshPacket.h:23
typedef SPT_PathDiscovery
Definition: meshPacket.h:28
void SetError()
Sets that packet is not valid.
Definition: meshPacket.h:369
uint16_t PayloadLength
Packet payload length. Maximum value can be 1023, because only 10 bits are used.
Definition: meshPacket.h:397
MeshVariableArray< uint8_t > TakePayload()
Takes payload data. Payload will be cleared after this operation, because std::move was used....
Definition: meshPacket.cpp:112
bool ContainsToAddress() const
Check if frame with current control frame has to contain To address field.
Definition: meshPacketFlags.h:151
This file contains classes and structures which can be used to handling mesh frames.
typedef SPT_Ping
Definition: meshPacket.h:29
void ClearError()
Sets that packet is valid.
Definition: meshPacket.h:383
void GetPayload(uint8_t *payload, uint16_t &payloadLength) const
Gets payload data.
Definition: meshPacket.cpp:106
#define IS_VALID_MESH_FROM_ADDRESS(address)
Checks if mesh "from" address from packet or frame header is valid. Accepted values from 0 to MAX_MES...
Definition: meshConfig.h:100
size_t printHeader(OSTREAM *stream) const override
Prints header of table.
Definition: meshPacket.cpp:309
size_t prettyPrint(OSTREAM &stream) const
Pretty prints packet to stream.
Definition: meshPacket.cpp:216