1 #ifndef CARMA_MONITOR_MONITORPOINTAVERAGET_H
2 #define CARMA_MONITOR_MONITORPOINTAVERAGET_H
70 class MonitorPointAverageBase {
78 int getNumTotalSamples( )
const;
85 void setNumTotalSamples(
int nTotalSamples );
92 void incrementNumTotalSamples(
int nTotalSamples = 1 );
99 int getNumValidSamples( )
const;
106 void setNumValidSamples(
int nValidSamples );
113 void incrementNumValidSamples(
int nValidSamples = 1 );
144 ushort getDbBlanking( )
const;
146 ushort getDbValidity( )
const;
148 void writeAvePropsToFile( FILE * f )
const;
150 void writeAvePropsToBuf(
char * c )
const;
157 void resetAveProperties( );
161 MonitorPointAverageBase( );
163 ~MonitorPointAverageBase( );
168 static ushort gBfToDbTable_[ MonitorPoint::MAX_BLANKING_FLAGGING ];
169 static ushort gValToDbTable_[ MonitorPoint::MAX_VALIDITY ];
171 static char gBfToDbFileTable_[ MonitorPoint::MAX_BLANKING_FLAGGING ][4];
172 static char gValToDbFileTable_[ MonitorPoint::MAX_VALIDITY ][4];
189 template <
typename U >
284 carma::monitor::MonitorPointAverageBase::MonitorPointAverageBase( )
286 resetAveProperties();
291 carma::monitor::MonitorPointAverageBase::~MonitorPointAverageBase( )
297 carma::monitor::MonitorPointAverageBase::resetAveProperties( )
299 properties_.nTotalSamples = 0;
300 properties_.nValidSamples = 0;
301 properties_.validity = MonitorPoint::INVALID_NO_DATA;
302 properties_.blanking = MonitorPoint::UNDETERMINED;
307 carma::monitor::MonitorPointAverageBase::getNumTotalSamples( )
const
309 return properties_.nTotalSamples;
314 carma::monitor::MonitorPointAverageBase::setNumTotalSamples(
315 const int nTotalSamples )
317 properties_.nTotalSamples = nTotalSamples;
322 carma::monitor::MonitorPointAverageBase::incrementNumTotalSamples(
323 const int nTotalSamples )
325 properties_.nTotalSamples += nTotalSamples;
331 carma::monitor::MonitorPointAverageBase::getNumValidSamples( )
const
333 return properties_.nValidSamples;
338 carma::monitor::MonitorPointAverageBase::setNumValidSamples(
339 const int nValidSamples )
341 properties_.nValidSamples = nValidSamples;
346 carma::monitor::MonitorPointAverageBase::incrementNumValidSamples(
347 const int nValidSamples )
349 properties_.nValidSamples += nValidSamples;
354 carma::monitor::MonitorPointAverageBase::getValidity( )
const
356 return properties_.validity;
361 carma::monitor::MonitorPointAverageBase::setValidity(
362 const enum MonitorPoint::VALIDITY validity )
364 properties_.validity = validity;
370 carma::monitor::MonitorPointAverageBase::getBlanking( )
const
372 return properties_.blanking;
377 carma::monitor::MonitorPointAverageBase::setBlanking(
378 const enum MonitorPoint::BLANKING_FLAGGING blanking )
380 properties_.blanking = blanking;
385 carma::monitor::MonitorPointAverageBase::getDbBlanking( )
const
387 const int bf = properties_.blanking;
389 if ( (bf >= 0) && (bf < MonitorPoint::MAX_BLANKING_FLAGGING) )
390 return gBfToDbTable_[ bf ];
392 return gBfToDbTable_[ MonitorPoint::UNDETERMINED ];
397 carma::monitor::MonitorPointAverageBase::getDbValidity( )
const
399 const int val = properties_.validity;
401 if ( (val >= 0) && (val < MonitorPoint::MAX_VALIDITY) )
402 return gValToDbTable_[ val ];
404 return gValToDbTable_[ MonitorPoint::INVALID_NO_DATA ];
409 carma::monitor::MonitorPointAverageBase::writeAvePropsToFile( FILE * f )
const
412 const int bf = properties_.blanking;
415 if ( (bf >= 0) && (bf < MonitorPoint::MAX_BLANKING_FLAGGING) )
416 sBf = gBfToDbFileTable_[ bf ];
418 sBf = gBfToDbFileTable_[ MonitorPoint::UNDETERMINED ];
424 const int val = properties_.validity;
427 if ( (val >= 0) && (val < MonitorPoint::MAX_VALIDITY) )
428 sVal = gValToDbFileTable_[ val ];
430 sVal = gValToDbFileTable_[ MonitorPoint::INVALID_NO_DATA ];
438 carma::monitor::MonitorPointAverageBase::writeAvePropsToBuf(
char * c )
const
441 const int bf = properties_.blanking;
444 if ( (bf >= 0) && (bf < MonitorPoint::MAX_BLANKING_FLAGGING) )
445 sBf = gBfToDbFileTable_[ bf ];
447 sBf = gBfToDbFileTable_[ MonitorPoint::UNDETERMINED ];
455 const int val = properties_.validity;
458 if ( (val >= 0) && (val < MonitorPoint::MAX_VALIDITY) )
459 sVal = gValToDbFileTable_[ val ];
461 sVal = gValToDbFileTable_[ MonitorPoint::INVALID_NO_DATA ];
472 template<
typename U >
475 const U & initialValue,
478 accumulator_( initialValue ),
485 template<
typename U >
492 template<
typename U >
496 return accumulator_ ;
500 template<
typename U >
504 accumulator_ = value;
507 template<
typename U >
511 accumulator_ += value;
515 template<
typename U >
523 template<
typename U >
531 template<
typename U >
539 template<
typename U >
568 accumulator_( false ),
721 MonitorPointAverageT( ) :
732 MonitorPointAverageT( ) :
743 MonitorPointAverageT( ) :
VALIDITY
Validity states of the data value.
MonitorPointAverageT()
Default constructor - sets all values to zero using template specialization to do it appropriately...
Abstract base class for all monitor points.
void setMinValue(const U &value)
Set minimum across all accumulated samples.
BLANKING_FLAGGING
Blanking/flagging status of the data.
Structure keeps track of sample properties of a monitor point for the purposes of calculating various...
U getMinValue() const
Get minimum value across all accumulated samples.
int nValidSamples
of samples not marked invalid in some fashion
enum MonitorPoint::VALIDITY validity
Cumulative validity for all valid samples.
U getMaxValue() const
Get maximum of sample values.
void setAccumulator(const U &value)
Set cumulative value of samples.
void setMaxValue(const U &value)
Set maximum sample value.
void incrementAccumulator(const U &value)
Increment cumulative value of samples.
enum MonitorPoint::BLANKING_FLAGGING blanking
Cumulative blanking for all valid samples.
Template for collecting data for computing average associated with one monitor point.
~MonitorPointAverageT()
Destructor - Doesnt do anything by default as the compiler takes care of deleting component members...
U getAccumulator() const
Get cumulative value of samples.
type definitions for monitor system
int nTotalSamples
total # of samples associated with a monitor point - half of sampling frequency for that monitor poin...