[Tinyos-contrib-commits] CVS: tinyos-1.x/contrib/harvard/spaulding/src/sampling MercurySampling.h, 1.1.1.1, 1.2 SamplingMsg.h, 1.2, 1.3

Konrad Lorincz konradlorincz at users.sourceforge.net
Wed Dec 19 17:29:36 PST 2007


Update of /cvsroot/tinyos/tinyos-1.x/contrib/harvard/spaulding/src/sampling
In directory sc8-pr-cvs10.sourceforge.net:/tmp/cvs-serv12615/sampling

Modified Files:
	MercurySampling.h SamplingMsg.h 
Log Message:
Added support for sampling multiple motes at different frequencies

Index: MercurySampling.h
===================================================================
RCS file: /cvsroot/tinyos/tinyos-1.x/contrib/harvard/spaulding/src/sampling/MercurySampling.h,v
retrieving revision 1.1.1.1
retrieving revision 1.2
diff -C2 -d -r1.1.1.1 -r1.2
*** MercurySampling.h	22 Aug 2007 00:43:54 -0000	1.1.1.1
--- MercurySampling.h	20 Dec 2007 01:29:34 -0000	1.2
***************
*** 32,103 ****
  #include "MultiChanSampling.h" 
  
! // Old Mercury board
! // enum {
! //     MERCURY_CHAN_ACCX = 2,
! // #ifdef PLATFORM_TELOSB
! //     MERCURY_CHAN_ACCY = 6,
! //     MERCURY_CHAN_ACCZ = 7,
! // #else  // assume TelosA
! //     MERCURY_CHAN_ACCY = 4,
! //     MERCURY_CHAN_ACCZ = 5,
! // #endif
! //     MERCURY_CHAN_GYROXY = 1,
! //     MERCURY_CHAN_INVALID = 255,
! // };
! // New Mercury board (Todd's design)
! 
  #ifdef PLATFORM_SHIMMER
! enum {
!     MERCURY_CHAN_ACCX = 5,
!     MERCURY_CHAN_ACCY = 4,
!     MERCURY_CHAN_ACCZ = 3,
!     MERCURY_CHAN_GYROX = 1,
!     MERCURY_CHAN_GYROY = 6,
!     MERCURY_CHAN_GYROZ = 2,
!     MERCURY_CHAN_INVALID = 255,
! };
  #else  // Assume TelosB
! enum {
!     MERCURY_CHAN_ACCX = 0,
!     MERCURY_CHAN_ACCY = 1,
!     MERCURY_CHAN_ACCZ = 2,
!     MERCURY_CHAN_GYROX = 6,
!     MERCURY_CHAN_GYROY = 3,
!     MERCURY_CHAN_GYROZ = 7,
!     MERCURY_CHAN_INVALID = 255,
! };
  #endif
  
- enum {MERCURY_NBR_CHANS = 6};
- channelID_t MERCURY_CHANS[MERCURY_NBR_CHANS] = {MERCURY_CHAN_ACCX,
-                                                 MERCURY_CHAN_ACCY,
-                                                 MERCURY_CHAN_ACCZ,
-                                                 MERCURY_CHAN_GYROX,
-                                                 MERCURY_CHAN_GYROY,
-                                                 MERCURY_CHAN_GYROZ};
-                                
- /*enum {MERCURY_NBR_CHANS = 2};
- channelID_t MERCURY_CHANS[MERCURY_NBR_CHANS] = {MERCURY_CHAN_ACCX,
-                                                 MERCURY_CHAN_ACCY};
- */
- enum {MERCURY_SAMPLING_RATE = 100};  // in Hz
- 
- 
- 
- 
- inline void MercurySampling_encodeChanID(sample_t* samplePtr, channelID_t chanID)
- {
-     *samplePtr |= (chanID << 12);
- }
  
! inline channelID_t MercurySampling_decodeChanID(sample_t* samplePtr)
! {
!     return ((*samplePtr) >> 12);
! }
! 
! inline sample_t MercurySampling_decodeSample(sample_t* samplePtr)
! {
!     return ((*samplePtr) & 0x0fff);
! }
  
  
--- 32,75 ----
  #include "MultiChanSampling.h" 
  
! // (1) - Pin mappings
  #ifdef PLATFORM_SHIMMER
!   enum {
!       MERCURY_CHAN_ACCX = 5,
!       MERCURY_CHAN_ACCY = 4,
!       MERCURY_CHAN_ACCZ = 3,
!       MERCURY_CHAN_GYROX = 1,
!       MERCURY_CHAN_GYROY = 6,
!       MERCURY_CHAN_GYROZ = 2,
!       MERCURY_CHAN_EMG = 5,
!       MERCURY_CHAN_INVALID = 255,
!   };
  #else  // Assume TelosB
!   enum {
!       MERCURY_CHAN_ACCX = 0,
!       MERCURY_CHAN_ACCY = 1,
!       MERCURY_CHAN_ACCZ = 2,
!       MERCURY_CHAN_GYROX = 6,
!       MERCURY_CHAN_GYROY = 3,
!       MERCURY_CHAN_GYROZ = 7,
!       MERCURY_CHAN_INVALID = 255,
!   };
  #endif
  
  
! // (2) - Type of sampling sensors
! #ifdef SAMPLING_PLATFORM_EMG
!   enum {MERCURY_SAMPLING_RATE = 1024};  // in Hz
!   enum {MERCURY_NBR_CHANS = 1};
!   channelID_t MERCURY_CHANS[MERCURY_NBR_CHANS] = {MERCURY_CHAN_EMG};
! #else  // assumie ACC and Gyro
!   enum {MERCURY_SAMPLING_RATE = 100};  // in Hz
!   enum {MERCURY_NBR_CHANS = 6};
!   channelID_t MERCURY_CHANS[MERCURY_NBR_CHANS] = {MERCURY_CHAN_ACCX,
!                                                   MERCURY_CHAN_ACCY,
!                                                   MERCURY_CHAN_ACCZ,
!                                                   MERCURY_CHAN_GYROX,
!                                                   MERCURY_CHAN_GYROY,
!                                                   MERCURY_CHAN_GYROZ};
! #endif
  
  

Index: SamplingMsg.h
===================================================================
RCS file: /cvsroot/tinyos/tinyos-1.x/contrib/harvard/spaulding/src/sampling/SamplingMsg.h,v
retrieving revision 1.2
retrieving revision 1.3
diff -C2 -d -r1.2 -r1.3
*** SamplingMsg.h	17 Dec 2007 20:47:41 -0000	1.2
--- SamplingMsg.h	20 Dec 2007 01:29:34 -0000	1.3
***************
*** 38,42 ****
  enum { AM_SAMPLINGMSG = 19 };
  // WARNING: Make sure the size corresponds to how the SamplingMsg struct is defined! 
! #define SAMPLINGMSG_MAX_SAMPLES  ((TOSH_DATA_LENGTH - 2 - 2 -sizeof(uint32_t) - 2) / sizeof(sample_t))
  
  
--- 38,42 ----
  enum { AM_SAMPLINGMSG = 19 };
  // WARNING: Make sure the size corresponds to how the SamplingMsg struct is defined! 
! #define SAMPLINGMSG_MAX_SAMPLES  ((TOSH_DATA_LENGTH - 2*sizeof(uint16_t) - sizeof(uint32_t) - 2*sizeof(uint16_t) - sizeof(channelID_t)*MCS_MAX_NBR_CHANNELS_SAMPLED) / sizeof(sample_t))
  
  
***************
*** 48,51 ****
--- 48,53 ----
      uint32_t timeStamp;         // of the 1st sample
      uint16_t nbrSamples;        // in this message (nbrSamples <= SAMPLINGMSG_MAX_SAMPLES)
+     uint16_t samplingRate;
+     channelID_t channelIDs[MCS_MAX_NBR_CHANNELS_SAMPLED];
      sample_t samples[SAMPLINGMSG_MAX_SAMPLES];
  } SamplingMsg;



More information about the Tinyos-contrib-commits mailing list