-
Notifications
You must be signed in to change notification settings - Fork 8
/
Copy pathMeasurement.hpp
50 lines (43 loc) · 1.61 KB
/
Measurement.hpp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
#ifndef __LIBSPEEDWIRE_MEASUREMENT_HPP__
#define __LIBSPEEDWIRE_MEASUREMENT_HPP__
#include <string>
#include <MeasurementType.hpp>
#include <MeasurementValues.hpp>
namespace libspeedwire {
/**
* Class holding measurement values together with their corresponding measurement type definition.
*/
class Measurement {
public:
MeasurementType measurementType;
MeasurementValues measurementValues;
Wire wire;
std::string description;
/**
* Constructor.
* @param mType measurement type
* @param wire_ measurement wire
*/
Measurement(const MeasurementType& mType, const Wire& mWire) :
measurementType(mType),
measurementValues(0),
wire(mWire),
description(mType.getFullName(mWire)) {
}
/**
* Add a new measurement value.
* @param value the measurement value
* @param time the measurement time
*/
void addMeasurement(const int32_t raw_value, const uint32_t time) {
measurementValues.addMeasurement((double)raw_value / (double)measurementType.divisor, time);
}
void addMeasurement(const uint32_t raw_value, const uint32_t time) {
measurementValues.addMeasurement((double)raw_value / (double)measurementType.divisor, time);
}
void addMeasurement(const uint64_t raw_value, const uint32_t time) {
measurementValues.addMeasurement((double)raw_value / (double)measurementType.divisor, time);
}
};
} // namespace libspeedwire
#endif