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.