[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