]> oss.titaniummirror.com Git - tinyos-2.x.git/commitdiff
reverted devdj commit that broke building for mica2dot
authorbeutel <beutel>
Mon, 1 Sep 2008 08:26:45 +0000 (08:26 +0000)
committerbeutel <beutel>
Mon, 1 Sep 2008 08:26:45 +0000 (08:26 +0000)
tos/chips/cc1000/CC1000ActiveMessageC.nc
tos/chips/cc1000/CC1000CsmaRadioC.nc
tos/chips/cc1000/CC1000Msg.h
tos/chips/cc1000/CC1000SendReceiveP.nc

index 7c888373899c7b1bc24e080721f949bfe99c7050..d35c243d6667a10f0f13d52f6962438b7f6aecbb 100644 (file)
@@ -1,3 +1,5 @@
+// $Id$
+
 /*
  * "Copyright (c) 2004-2005 The Regents of the University  of California.  
  * All rights reserved.
@@ -36,7 +38,7 @@
  * addr and group).
  * 
  * @author Philip Levis
- * @author Marco Langerwisch (Packet timestamping)
+ * @date June 19 2005
  */
 
 configuration CC1000ActiveMessageC {
@@ -49,10 +51,6 @@ configuration CC1000ActiveMessageC {
     interface Packet;
     interface PacketAcknowledgements;
     interface LinkPacketMetadata;
-
-    interface PacketTimeStamp<T32khz, uint32_t> as PacketTimeStamp32khz;
-    interface PacketTimeStamp<TMilli, uint32_t> as PacketTimeStampMilli;
-    interface PacketTimeSyncOffset;
   }
 }
 implementation {
@@ -75,7 +73,4 @@ implementation {
   AM.amAddress -> Address;
   AM.Packet     -> Radio;
   
-  PacketTimeStamp32khz = Radio;
-  PacketTimeStampMilli = Radio;
-  PacketTimeSyncOffset = Radio;
 }
index a04333660cf7f9073c4a0bb6fe26bcc3a9a5b74c..faa5d80e2dcd928dbcb8df5c830e59d5353d2472 100644 (file)
@@ -1,4 +1,4 @@
-/*
+/* $Id$
  * "Copyright (c) 2000-2005 The Regents of the University  of California.  
  * All rights reserved.
  *
@@ -44,7 +44,6 @@
  *
  * @author Joe Polastre
  * @author David Gay
- * @author Marco Langerwisch (Packet timestamping)
  */
 
 #include "CC1000Const.h"
@@ -56,17 +55,14 @@ configuration CC1000CsmaRadioC {
     interface Send;
     interface Receive;
 
-    interface Packet;
+    interface Packet;    
     interface CsmaControl;
     interface CsmaBackoff;
+    interface RadioTimeStamping;
     interface PacketAcknowledgements;
     interface LinkPacketMetadata;
-
+    
     interface LowPowerListening;
-
-    interface PacketTimeStamp<T32khz, uint32_t> as PacketTimeStamp32khz;
-    interface PacketTimeStamp<TMilli, uint32_t> as PacketTimeStampMilli;
-    interface PacketTimeSyncOffset;
   }
 }
 implementation {
@@ -90,9 +86,10 @@ implementation {
   CsmaControl = Csma;
   CsmaBackoff = Csma;
   LowPowerListening = Csma;
+  RadioTimeStamping = SendReceive;
   PacketAcknowledgements = SendReceive;
   LinkPacketMetadata = SendReceive;
-
+  
   Csma.CC1000Control -> Control;
   Csma.Random -> RandomC;
   Csma.CC1000Squelch -> Squelch;
@@ -106,7 +103,7 @@ implementation {
   SendReceive.amAddress -> ActiveMessageAddressC;
   SendReceive.RssiRx -> Rssi.Rssi[unique(UQ_CC1000_RSSI)];
   SendReceive.CC1000Squelch -> Squelch;
-
+  
   Csma.RssiNoiseFloor -> Rssi.Rssi[unique(UQ_CC1000_RSSI)];
   Csma.RssiCheckChannel -> Rssi.Rssi[unique(UQ_CC1000_RSSI)];
   Csma.RssiPulseCheck -> Rssi.Rssi[unique(UQ_CC1000_RSSI)];
@@ -117,16 +114,4 @@ implementation {
   Rssi.Resource -> Hpl;
   Control.CC -> Hpl;
   Control.BusyWait -> BusyWaitMicroC;
-
-  PacketTimeStamp32khz = SendReceive;
-  PacketTimeStampMilli = SendReceive;
-  PacketTimeSyncOffset = SendReceive;
-
-  components Counter32khz32C, new CounterToLocalTimeC(T32khz);
-  CounterToLocalTimeC.Counter -> Counter32khz32C;
-  SendReceive.LocalTime32khz -> CounterToLocalTimeC;
-
-  //DummyTimer is introduced to compile apps that use no timers
-  components HilTimerMilliC, new TimerMilliC() as DummyTimer;
-  SendReceive.LocalTimeMilli -> HilTimerMilliC;
 }
index c106b7a090a1df93c2bfc87ee94420e2b30f8410..a2df2697cc2e260f32fc007fec02cfce3b9011c8 100644 (file)
@@ -29,15 +29,9 @@ typedef enum {
 typedef nx_struct CC1KMetadata {
   nx_int16_t strength_or_preamble; /* negative when used for preamble length */
   nx_uint8_t metadataBits;
-  nx_bool timesync;
-  nx_uint32_t timestamp;
+  nx_uint16_t time;
   nx_uint8_t sendSecurityMode;
   nx_uint8_t receiveSecurityMode;  
 } cc1000_metadata_t;
 
-enum
-{
-  CC1000_INVALID_TIMESTAMP  = 0x80000000L,
-};
-
 #endif
index 61186cb644dd6cf70e7a339e8cbee65cffe18629..24781e4f088f9b99205533e00d74d15e664b286d 100644 (file)
@@ -1,3 +1,5 @@
+// $Id$
+
 /*
  * "Copyright (c) 2000-2005 The Regents of the University  of California.  
  * All rights reserved.
@@ -30,7 +32,6 @@
 #include "crc.h"
 #include "CC1000Const.h"
 #include "Timer.h"
-#include "CC1000TimeSyncMessage.h"
 
 /**
  * A rewrite of the low-power-listening CC1000 radio stack.
@@ -49,7 +50,6 @@
  * @author Jaein Jeong
  * @author Joe Polastre
  * @author David Gay
- * @author Marco Langerwisch (Packet timestamping)
  */
   
 module CC1000SendReceiveP @safe() {
@@ -58,14 +58,11 @@ module CC1000SendReceiveP @safe() {
     interface StdControl;
     interface Send;
     interface Receive;
+    interface RadioTimeStamping;
     interface Packet;
     interface ByteRadio;
     interface PacketAcknowledgements;
     interface LinkPacketMetadata;
-
-    interface PacketTimeStamp<T32khz, uint32_t> as PacketTimeStamp32khz;
-    interface PacketTimeStamp<TMilli, uint32_t> as PacketTimeStampMilli;
-    interface PacketTimeSyncOffset;
   }
   uses {
     //interface PowerManagement;
@@ -74,21 +71,10 @@ module CC1000SendReceiveP @safe() {
     interface CC1000Squelch;
     interface ReadNow<uint16_t> as RssiRx;
     async command am_addr_t amAddress();
-
-    interface LocalTime<T32khz> as LocalTime32khz;
-    interface LocalTime<TMilli> as LocalTimeMilli;
   }
 }
 implementation 
 {
-#ifdef PLATFORM_MICA2
-  // estimated calibration, 19.2 Kbps data, Manchester Encoding, time in jiffies (32768 Hz)
-  static const int8_t BIT_CORRECTION[8] = { 27, 28, 30, 32, 34, 36, 38, 40 };
-#else
-  // other platforms not calibrated yet
-  static const uint8_t BIT_CORRECTION[8] = { 0, 0, 0, 0, 0, 0, 0, 0 };
-#endif
-
   enum {
     OFF_STATE,
 
@@ -271,14 +257,10 @@ implementation
          return FAIL;
        else {
          cc1000_header_t *header = getHeader(msg);
-          cc1000_metadata_t *metadata = getMetadata(msg);
 
          f.txBusy = TRUE;
          header->length = len;
          txBufPtr = msg;
-
-          metadata->timesync = FALSE;
-          metadata->timestamp = CC1000_INVALID_TIMESTAMP;
        }
       }
     signal ByteRadio.rts(msg);
@@ -317,23 +299,12 @@ implementation
     sendNextByte();
     nextTxByte = SYNC_BYTE2;
     enterTxDataState();
+    signal RadioTimeStamping.transmittedSFD(0, txBufPtr); 
   }
 
   void txData() {
     cc1000_header_t *txHeader = getHeader(txBufPtr);
     sendNextByte();
-
-    if (nextTxByte == SYNC_BYTE2) {
-      // SYNC_WORD has just been sent
-      uint32_t time32khz = call LocalTime32khz.get();
-      call PacketTimeStamp32khz.set(txBufPtr, time32khz);
-
-      if (call PacketTimeSyncOffset.isSet(txBufPtr)) {
-        timesync_radio_t *timesync = (timesync_radio_t*)((void*)txBufPtr + call PacketTimeSyncOffset.get(txBufPtr));
-        // set timesync event time as the offset between the event time and the SFD interrupt time (TEP 133)
-        *timesync  -= time32khz;
-      }
-    }
     
     if (count < txHeader->length + sizeof(message_header_t))
       {
@@ -474,12 +445,9 @@ implementation
     else if (count <= 6)
       {
        // TODO: Modify to be tolerant of bad bits in the preamble...
-        uint32_t time;
        uint16_t tmp;
        uint8_t i;
 
-        time = call LocalTime32khz.get();
-
        // bit shift the data in with previous sample to find sync
        tmp = rxShiftBuf;
        rxShiftBuf = rxShiftBuf << 8 | in;
@@ -496,10 +464,7 @@ implementation
                enterRxState();
                signal ByteRadio.rx();
                f.rxBitOffset = 7 - i;
-                // correct receive time according to bit offset and set timestamp
-                time -= BIT_CORRECTION[f.rxBitOffset];
-                call PacketTimeStamp32khz.set(rxBufPtr, time);
-
+               signal RadioTimeStamping.receivedSFD(0);
                call RssiRx.read();
              }
          }
@@ -712,71 +677,9 @@ implementation
   async command bool LinkPacketMetadata.highChannelQuality(message_t* msg) {
     return getMetadata(msg)->metadataBits & CC1000_WHITE_BIT;
   }
-
-  /***************** PacketTimeStamp32khz Commands ****************/
-  async command bool PacketTimeStamp32khz.isValid(message_t* msg)
-  {
-    return (getMetadata(msg)->timestamp != CC1000_INVALID_TIMESTAMP);
-  }
-
-  async command uint32_t PacketTimeStamp32khz.timestamp(message_t* msg)
-  {
-    return getMetadata(msg)->timestamp;
-  }
-
-  async command void PacketTimeStamp32khz.clear(message_t* msg)
-  {
-    getMetadata(msg)->timesync = FALSE;
-    getMetadata(msg)->timestamp = CC1000_INVALID_TIMESTAMP;
-  }
-
-  async command void PacketTimeStamp32khz.set(message_t* msg, uint32_t value)
-  {
-    getMetadata(msg)->timestamp = value;
-  }
-
-  /***************** PacketTimeStampMilli Commands ****************/
-  // over the air value is always T32khz
-  async command bool PacketTimeStampMilli.isValid(message_t* msg)
-  {
-    return call PacketTimeStamp32khz.isValid(msg);
-  }
-
-  async command uint32_t PacketTimeStampMilli.timestamp(message_t* msg)
-  {
-    int32_t offset = call PacketTimeStamp32khz.timestamp(msg) - call LocalTime32khz.get();
-    return (offset >> 5) + call LocalTimeMilli.get();
-  }
-
-  async command void PacketTimeStampMilli.clear(message_t* msg)
-  {
-    call PacketTimeStamp32khz.clear(msg);
-  }
-
-  async command void PacketTimeStampMilli.set(message_t* msg, uint32_t value)
-  {
-    int32_t offset = (value - call LocalTimeMilli.get()) << 5;
-    call PacketTimeStamp32khz.set(msg, offset + call LocalTime32khz.get());
-  }
-
-  /*----------------- PacketTimeSyncOffset -----------------*/
-  async command bool PacketTimeSyncOffset.isSet(message_t* msg)
-  {
-    return getMetadata(msg)->timesync;
-  }
-
-  async command uint8_t PacketTimeSyncOffset.get(message_t* msg)
-  {
-    return sizeof(cc1000_header_t) + getHeader(msg)->length - sizeof(timesync_radio_t);
-  }
-
-  async command void PacketTimeSyncOffset.set(message_t* msg)
-  {
-    getMetadata(msg)->timesync = TRUE;
-  }
-
-  async command void PacketTimeSyncOffset.cancel(message_t* msg)
-  {
-    getMetadata(msg)->timesync = FALSE;
-  }
+  
+  // Default events for radio send/receive coordinators do nothing.
+  // Be very careful using these, or you'll break the stack.
+  default async event void RadioTimeStamping.transmittedSFD(uint16_t time, message_t *msgBuff) { }
+  default async event void RadioTimeStamping.receivedSFD(uint16_t time) { }
 }