-/*----------------- Headers and Metadata -----------------*/
-
- async command flags_metadata_t* PacketFlagsMetadata.get(message_t* msg)
- {
- return &(getMeta(msg)->flags);
- }
-
- async command rf212_metadata_t* PacketRF212Metadata.get(message_t* msg)
- {
- return &(getMeta(msg)->rf212);
- }
-
- async command timestamp_metadata_t* PacketTimeStampMetadata.get(message_t* msg)
- {
- return &(getMeta(msg)->timestamp);
- }
-
-#ifdef PACKET_LINK
- async command link_metadata_t* PacketLinkMetadata.get(message_t* msg)
- {
- return &(getMeta(msg)->link);
- }
-#endif
-
-/*----------------- Packet -----------------*/
-
- enum
- {
- PACKET_LENGTH_INCREASE =
- sizeof(rf212packet_header_t) - 1 // the 8-bit length field is not counted
- + sizeof(ieee154_footer_t), // the CRC is not stored in memory
- };
-
- command void Packet.clear(message_t* msg)
- {
- signal PacketFlagsMetadata.clear(msg);
- signal PacketRF212Metadata.clear(msg);
- signal PacketTimeStampMetadata.clear(msg);
-#ifdef LOW_POWER_LISTENING
- signal LowPowerListeningConfig.clear(msg);
-#endif
-#ifdef PACKET_LINK
- signal PacketLinkMetadata.clear(msg);
-#endif
- call IEEE154MessageLayer.createDataFrame(msg);
- }
-
- command void Packet.setPayloadLength(message_t* msg, uint8_t len)
- {
- call IEEE154MessageLayer.setLength(msg, len + PACKET_LENGTH_INCREASE);
- }
-
- command uint8_t Packet.payloadLength(message_t* msg)
- {
- return call IEEE154MessageLayer.getLength(msg) - PACKET_LENGTH_INCREASE;
- }
-
- command uint8_t Packet.maxPayloadLength()
- {
- return TOSH_DATA_LENGTH;
- }
-
- command void* Packet.getPayload(message_t* msg, uint8_t len)
- {
- if( len > TOSH_DATA_LENGTH )
- return NULL;
-
- return msg->data;
- }