6 #ifndef CARMA_MONITOR_AVERAGE_ACCUMULATOR_H
7 #define CARMA_MONITOR_AVERAGE_ACCUMULATOR_H
33 typedef TypedAverageAccumulatorT< MonitorPointChar, double > CharAccumulator;
34 typedef TypedAverageAccumulatorT< MonitorPointByte, double > ByteAccumulator;
35 typedef TypedAverageAccumulatorT< MonitorPointShort, double > ShortAccumulator;
36 typedef TypedAverageAccumulatorT< MonitorPointInt, double > IntAccumulator;
37 typedef TypedAverageAccumulatorT< MonitorPointBool, long > BoolAccumulator;
38 typedef TypedAverageAccumulatorT< MonitorPointEnum, int > EnumAccumulator;
39 typedef TypedAverageAccumulatorT< MonitorPointFloat, double > FloatAccumulator;
40 typedef TypedAverageAccumulatorT< MonitorPointDouble, double > DoubleAccumulator;
41 typedef TypedAverageAccumulatorT< MonitorPointComplex, ::std::complex< float > > ComplexAccumulator;
42 typedef TypedAverageAccumulatorT< MonitorPointAbstime, double > AbstimeAccumulator;
43 typedef TypedAverageAccumulatorT< MonitorPointString, ::std::string > StringAccumulator;
44 typedef TypedAverageAccumulatorT< MonitorPointSerialNo, long > SerialNoAccumulator;
48 MONITOR_DB_TYPE_NUMERIC,
49 MONITOR_DB_TYPE_SHORT,
50 MONITOR_DB_TYPE_STRING,
51 MONITOR_DB_TYPE_COMPLEX,
53 MONITOR_DB_TYPE_NUM_TYPES
86 class AverageAccumulator {
90 MonitorSystem& monitorSystem_;
92 CharAccumulator& aveCharAccumulator_;
93 ByteAccumulator& aveByteAccumulator_;
94 ShortAccumulator& aveShortAccumulator_;
95 IntAccumulator& aveIntAccumulator_;
96 BoolAccumulator& aveBoolAccumulator_;
97 EnumAccumulator& aveEnumAccumulator_;
98 FloatAccumulator& aveFloatAccumulator_;
99 DoubleAccumulator& aveDoubleAccumulator_;
100 ComplexAccumulator& aveComplexAccumulator_;
101 AbstimeAccumulator& aveAbstimeAccumulator_;
102 StringAccumulator& aveStringAccumulator_;
103 SerialNoAccumulator& aveSerialNoAccumulator_;
115 AverageAccumulator (MonitorSystem& monitorSystem,
123 ~AverageAccumulator () ;
135 void resetAccumulator () ;
137 void writeLongAveragesToStrings(
long timestamp,
138 std::string & shortString,
139 std::string & numericString,
140 std::string & stringString,
141 std::string & complexString,
142 char * scratchString )
const;
144 void writeInstAveragesToFile(
long frameCount,
148 FILE * complexFile )
const;
150 void writeInstAveragesToFile(
long frameCount,
151 carma::dbms::dbFFIO & shortFile,
152 carma::dbms::dbFFIO & numericFile,
153 carma::dbms::dbFFIO & stringFile,
154 carma::dbms::dbFFIO & complexFile )
const;
156 void dumpInstAveragesToDBFile( DBwriteType dbWriteType,
160 void dumpInstAveragesToDBFile( DBwriteType dbWriteType,
162 carma::dbms::dbFFIO & file )
const;
164 void writeLongAveragesToFile(
long frameCount,
168 FILE * complexFile )
const;
171 void dumpLongAveragesToDBFile( DBwriteType dbWriteType,
172 const char * frameCountText,
ARCHIVE_PRIORITY
Archiving priority.
The monitor system base class.
Class(es) to read & write dbms flat file information in ASCII or binary.