]> oss.titaniummirror.com Git - tinyos-2.x.git/commitdiff
LPL: move to per packet sleep interval
authormmaroti <mmaroti>
Mon, 16 Jun 2008 19:47:13 +0000 (19:47 +0000)
committermmaroti <mmaroti>
Mon, 16 Jun 2008 19:47:13 +0000 (19:47 +0000)
tos/chips/rf230/RF230Packet.h
tos/chips/rf230/RF230PacketP.nc

index 7d952fe13c55941ad5af9ea602727621c207f408..f12e3e5bf965c816fcb9bb5d0b712959906a63b1 100644 (file)
@@ -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,
 };
index d2f2c150af9d5580b2e3f9e4ad975bd22c91f388..646cf122c779dc6c293800d38dd62473a3319a8d 100644 (file)
@@ -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
        }
 }