73 #ifndef NIDAS_DYNLD_ISFF_WISARDMOTE_H
74 #define NIDAS_DYNLD_ISFF_WISARDMOTE_H
90 namespace nidas {
namespace dynld {
namespace isff {
92 using namespace nidas::core;
132 bool process(
const Sample* insamp,
133 std::list<const Sample*>& results)
throw();
151 (
const char *cp,
const char *eos,
152 unsigned int nfields,
166 void createSampleTags(
const SampleTag* stag,
const std::vector<int>& motes,std::list<SampleTag*>& newtags)
173 void addImpliedSampleTags(
const std::vector<int>& motes);
182 void checkLessUsedSensors(
void);
199 const char *checkEOM(
const char *cp,
206 const char *checkCRC(
const char *cp,
213 bool readHead(
const char *&cp,
const char *eom,
dsm_time_t ttag,
220 int readMoteId(
const char* &cp,
const char*eos);
228 const char* unpackPicTime(
const char *,
const char *,
232 const char* unpackUint16(
const char *,
const char *,
236 const char* unpackInt16(
const char *,
const char *,
240 const char* unpackUint32(
const char *,
const char *,
244 const char* unpackInt32(
const char *,
const char *,
248 const char* unpackAccumSec(
const char *,
const char *,
252 const char* unpack100thSec(
const char *,
const char *,
256 const char* unpack10thSec(
const char *,
const char *,
260 const char* unpackPicTimeFields(
const char *,
const char *,
264 const char* unpackTRH(
const char *,
const char *,
268 const char* unpackTsoil(
const char *,
const char *,
272 const char* unpackGsoil(
const char *,
const char *,
276 const char* unpackQsoil(
const char *,
const char *,
280 const char* unpackTP01(
const char *,
const char *,
284 const char* unpackStatus(
const char *,
const char *,
288 const char* unpackXbee(
const char *,
const char *,
292 const char* unpackPower(
const char *,
const char *,
296 const char* unpackRnet(
const char *,
const char *,
300 const char* unpackRsw(
const char *,
const char *,
304 const char* unpackRlw(
const char *,
const char *,
308 const char* unpackRlwKZ(
const char *,
const char *,
312 const char* unpackCNR2(
const char *,
const char *,
316 const char* unpackNR01(
const char *,
const char *,
320 const char* unpackRsw2(
const char *,
const char *,
344 static std::map<int, std::pair<unpack_t,unsigned int> >
_unpackMap;
348 static void initFuncMap();
388 static const unsigned int NTSOILS = 4;
395 float tempLast[NTSOILS];
399 for (
unsigned int i = 0; i <
sizeof(tempLast)/
sizeof(tempLast[0]); i++) {
std::map< int, std::map< int, unsigned int > > _numBadSensorTypes
For each mote id, the number of unrecognized sensor types.
Definition: WisardMote.h:378
static const nidas::util::EndianConverter * fromLittle
Definition: WisardMote.h:156
std::map< int, std::map< int, unsigned int > > _noSampleTags
Definition: WisardMote.h:382
const char * units
Definition: WisardMote.h:97
int lastst
Definition: WisardMote.h:120
static bool _functionsMapped
Definition: WisardMote.h:339
Support for a sensor that is sending packets on a TCP socket, a UDP socket, a Bluetooth RF Comm socke...
Definition: SerialSensor.h:64
long long dsm_time_t
Posix time in microseconds, the number of non-leap microseconds since 1970 Jan 1 00:00 UTC...
Definition: Sample.h:61
std::set< int > _nowarnSensorTypes
Definition: WisardMote.h:386
const float floatNAN
Value of a float NAN for general use.
Definition: Sample.cc:31
static std::map< int, std::pair< unpack_t, unsigned int > > _unpackMap
Mapping between sensor type and function which parses the data.
Definition: WisardMote.h:344
std::map< int, unsigned int > _badCRCsByMoteId
Definition: WisardMote.h:371
Definition: WisardMote.h:111
static std::map< dsm_sample_id_t, WisardMote * > _processorSensors
Because the Wisard mote data has internal identifiers, more than one WisardMote can be declared with ...
Definition: WisardMote.h:335
int firstst
firstst and lastst are the range of sensor types containing the list of variables.
Definition: WisardMote.h:119
Virtual base class declaring methods for converting numeric values between little-endian and big-endi...
Definition: EndianConverter.h:304
Definition: WisardMote.h:113
Definition: WisardMote.h:111
std::map< dsm_sample_id_t, TsoilData > _tsoilData
Definition: WisardMote.h:404
std::map< int, unsigned int > _unconfiguredMotes
Definition: WisardMote.h:380
std::map< int, int > _tdiffByMoteId
Definition: WisardMote.h:373
Definition: WisardMote.h:392
Interface to a data sample.
Definition: Sample.h:189
Definition: WisardMote.h:111
static std::map< int, std::string > _typeNames
Definition: WisardMote.h:346
TsoilData()
Definition: WisardMote.h:397
WISARD_SAMPLE_TYPE
WST_IMPLIED: create sample tags for these sensor types, even if they aren't found in the XML...
Definition: WisardMote.h:111
const char * plotrange
Definition: WisardMote.h:99
Class describing a group of variables that are sampled and handled together.
Definition: SampleTag.h:87
WisardMote * _processorSensor
Pointer to the WisardMote that does the processing for the samples with this sensor id...
Definition: WisardMote.h:362
Definition: WisardMote.h:111
std::map< int, std::map< int, int > > _sensorSerialNumbersByMoteIdAndType
Sensor serial numbers, from message.
Definition: WisardMote.h:367
std::set< int > _ignoredSensorTypes
Definition: WisardMote.h:384
Definition: WisardMote.h:125
const char * longname
Definition: WisardMote.h:98
std::map< int, int > _sequenceNumbersByMoteId
Definition: WisardMote.h:369
Definition: WisardMote.h:94
std::map< dsm_sample_id_t, SampleTag * > _sampleTagsById
The processed sample tags for each id.
Definition: WisardMote.h:354
const char * name
Definition: WisardMote.h:96
Definition: InvalidParameterException.h:35