27#include "dsmeLayer/messages/IEEE802154eMACHeader.h"
28#include "interfaces/IDSMEMessage.h"
30#include "mac_services/dataStructures/DSMEMessageElement.h"
49class DSMEMessage :
public IDSMEMessage {
66 void copyTo(DSMEMessageElement *msg);
73 return this->pkt != NULL && this->pkt->size > 0;
81 return startOfFrameDelimiterSymbolCounter;
89 startOfFrameDelimiterSymbolCounter = symbolCounter;
99 uint16_t bytes = macHdr.getSerializationLength()
136 return receivedViaMCPS;
144 this->receivedViaMCPS = receivedViaMCPS;
152 return currentlySending;
160 this->currentlySending = currentlySending;
168 this->retryCounter++;
176 return this->retryCounter;
193 return this->messageRSSI;
212 return (uint8_t *)pkt->data;
256 receivedViaMCPS(false),
257 currentlySending(false),
272 currentlySending =
false;
274 receivedViaMCPS =
false;
283 IEEE802154eMACHeader macHdr;
303 uint32_t startOfFrameDelimiterSymbolCounter;
308 bool receivedViaMCPS;
313 bool currentlySending;
318 uint8_t retryCounter;
326friend class DSMEPlatform;
327friend class DSMEMessageElement;
328friend class DSMEPlatformBase;
329friend class DSMEMessageBuffer;
DSME Message interface implementation for GNRC.
bool hasPayload() override
check whether the message has payload
void increaseRetryCounter() override
increase retry counter for current message
uint8_t getRetryCounter() override
get retry counter
void setCurrentlySending(bool currentlySending) override
indicate that the message is being sent
bool free
whether the message is free
uint8_t getLQI() override
get LQI of the message
void clearMessage()
clear the message
int dropHdr(size_t len)
drop a number of bytes from the header
void copyTo(DSMEMessageElement *msg)
copy payload to DSME Message Element
int8_t getRSSI() override
get RSSI of frame
void setReceivedViaMCPS(bool receivedViaMCPS) override
indicated that message was received via MCPS
int loadBuffer(size_t len)
preallocate buffer with a given length
bool firstTry
whether the message is being sent on the first try
bool getReceivedViaMCPS() override
check whether the message was received via MCPS
void setStartOfFrameDelimiterSymbolCounter(uint32_t symbolCounter) override
set the symbol counter at the end of the SFD
int loadBuffer(iolist_t *pkt)
load a GNRC packet into the internal openDSME message representation
void decapsulateTo(DSMEMessageElement *msg) override
decapsulate header to a message
uint8_t getPayloadLength()
get payload length
uint16_t getTotalSymbols() override
get the total number of symbols in current frame
uint8_t getMPDUSymbols() override
get number of MPDU Symbols
IEEE802154eMACHeader & getHeader() override
get IEEE 802.15.4 header
void dispatchMessage()
dispatch the message to upper layers
iolist_t * getIolPayload()
get the IOLIST representation of the message
uint32_t getStartOfFrameDelimiterSymbolCounter() override
get the symbol counter at the end of the SFD
void prependFrom(DSMEMessageElement *msg) override
prepend a header to current message
bool getCurrentlySending() override
whether the message is being sent
void releaseMessage()
release the message
uint8_t * getPayload()
get buffer associated to the current payload
struct gnrc_pktsnip gnrc_pktsnip_t
Type to represent parts (either headers or payload) of a packet, called snips.
struct iolist iolist_t
iolist forward declaration
iolist scatter / gather IO
Interface definition for the global network buffer.