From 1c0837d14187f6ed7f1866b304fa5df3b05d16a6 Mon Sep 17 00:00:00 2001 From: mmaroti Date: Mon, 16 Jun 2008 19:47:13 +0000 Subject: [PATCH] LPL: move to per packet sleep interval --- tos/chips/rf230/RF230Packet.h | 8 ++++++-- tos/chips/rf230/RF230PacketP.nc | 28 ++++++++++++---------------- 2 files changed, 18 insertions(+), 18 deletions(-) diff --git a/tos/chips/rf230/RF230Packet.h b/tos/chips/rf230/RF230Packet.h index 7d952fe1..f12e3e5b 100644 --- a/tos/chips/rf230/RF230Packet.h +++ b/tos/chips/rf230/RF230Packet.h @@ -38,6 +38,9 @@ typedef struct rf230packet_metadata_t uint8_t flags; uint8_t lqi; uint8_t power; // shared between TXPOWER and RSSI +#ifdef LOW_POWER_LISTENING + uint16_t lpl_sleepint; +#endif uint32_t timestamp; } rf230packet_metadata_t; @@ -45,9 +48,10 @@ enum rf230packet_metadata_flags { RF230PACKET_WAS_ACKED = 0x01, // PacketAcknowledgements RF230PACKET_TIMESTAMP = 0x02, // PacketTimeStamp - RF230PACKET_TXPOWER = 0x04, // PacketTransmitPower - RF230PACKET_RSSI = 0x08, // PacketRSSI + RF230PACKET_TXPOWER = 0x04, // PacketTransmitPower + RF230PACKET_RSSI = 0x08, // PacketRSSI RF230PACKET_TIMESYNC = 0x10, // PacketTimeSync (update timesync_footer) + RF230PACKET_LPL_SLEEPINT = 0x20, // LowPowerListening RF230PACKET_CLEAR_METADATA = 0x00, }; diff --git a/tos/chips/rf230/RF230PacketP.nc b/tos/chips/rf230/RF230PacketP.nc index d2f2c150..646cf122 100644 --- a/tos/chips/rf230/RF230PacketP.nc +++ b/tos/chips/rf230/RF230PacketP.nc @@ -265,37 +265,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 } } -- 2.39.2