X-Git-Url: https://oss.titaniummirror.com/gitweb/?a=blobdiff_plain;f=tos%2Fchips%2Frf230%2FRF230PacketP.nc;h=09b4977742ddd71ab9ac07418c0113af2ae52ba6;hb=adf1de6c009d13b7b52e68535c63b28f59c97400;hp=6bfb2c2d903cde59f684b3ddad7ee526c6f618b6;hpb=963fc08bb8df6e1466480985c8b2dda65283e287;p=tinyos-2.x.git diff --git a/tos/chips/rf230/RF230PacketP.nc b/tos/chips/rf230/RF230PacketP.nc index 6bfb2c2d..09b49777 100644 --- a/tos/chips/rf230/RF230PacketP.nc +++ b/tos/chips/rf230/RF230PacketP.nc @@ -22,6 +22,7 @@ */ #include +#include module RF230PacketP { @@ -54,7 +55,7 @@ implementation { PACKET_LENGTH_INCREASE = sizeof(rf230packet_header_t) - 1 // the 8-bit length field is not counted - + sizeof(ieee154_footer_t), // the CRC is not stored in memory + + sizeof(ieee154_footer_t), // the CRC is not stored in memory }; inline rf230packet_metadata_t* getMeta(message_t* msg) @@ -68,10 +69,6 @@ implementation { call IEEE154Packet.createDataFrame(msg); -#ifdef IEEE154_6LOWPAN - call IEEE154Packet.set6LowPan(msg, TINYOS_6LOWPAN_NETWORK_ID); -#endif - getMeta(msg)->flags = RF230PACKET_CLEAR_METADATA; } @@ -80,13 +77,11 @@ implementation call IEEE154Packet.setLength(msg, len + PACKET_LENGTH_INCREASE); } - // TODO: make Packet.payloadLength async inline command uint8_t Packet.payloadLength(message_t* msg) { return call IEEE154Packet.getLength(msg) - PACKET_LENGTH_INCREASE; } - // TODO: make Packet.maxPayloadLength async inline command uint8_t Packet.maxPayloadLength() { return TOSH_DATA_LENGTH; @@ -250,7 +245,7 @@ implementation async command uint8_t PacketTimeSyncOffset.get(message_t* msg) { - return call IEEE154Packet.getLength(msg) - PACKET_LENGTH_INCREASE - sizeof(timesync_footer_t); + return call IEEE154Packet.getLength(msg) - PACKET_LENGTH_INCREASE - sizeof(timesync_absolute_t); } async command void PacketTimeSyncOffset.clear(message_t* msg) @@ -264,37 +259,33 @@ implementation getMeta(msg)->flags |= RF230PACKET_TIMESYNC; } -/*----------------- Global fields -----------------*/ - - norace uint8_t flags; - enum - { - FLAG_SLEEPINT = 0x01, - }; - - // TODO: Move sleepInterval into the metadata - norace uint16_t sleepInterval; - /*----------------- PacketSleepInterval -----------------*/ async command bool PacketSleepInterval.isSet(message_t* msg) { - return flags & FLAG_SLEEPINT; + return getMeta(msg)->flags & RF230PACKET_LPL_SLEEPINT; } async command uint16_t PacketSleepInterval.get(message_t* msg) { - return sleepInterval; +#ifdef LOW_POWER_LISTENING + return getMeta(msg)->lpl_sleepint; +#else + return 0; +#endif } async command void PacketSleepInterval.clear(message_t* msg) { - flags &= ~FLAG_SLEEPINT; + getMeta(msg)->flags &= ~RF230PACKET_LPL_SLEEPINT; } async command void PacketSleepInterval.set(message_t* msg, uint16_t value) { - flags |= FLAG_SLEEPINT; - sleepInterval = value; + getMeta(msg)->flags |= RF230PACKET_LPL_SLEEPINT; + +#ifdef LOW_POWER_LISTENING + getMeta(msg)->lpl_sleepint = value; +#endif } }