|
DUECA/DUSIME
|
Class that performs calibration and scaling of an incoming integer value from an A/D converter or other input device. More...
#include <InputCalibratorRanging.hxx>
Public Types | |
| typedef T::data_type | data_type |
| Converted datatype. | |
Public Member Functions | |
| InputCalibratorRanging (const R in_min, const R in_max, const T &c, const data_type out_min, const data_type out_max, unsigned int idx=0, const double range_tolerance=0.01) | |
| Constructor. | |
| ~InputCalibratorRanging () | |
| Destructor. | |
| operator double () const | |
| Obtain the converted value. | |
| R | raw () const |
| Obtain the raw integer value. | |
| void | newConversion (const R i) |
| Insert a new converted value into the calibrator. | |
| R | bitDifference (const double r) const |
| Return the difference between the given value and the measured value in bit domain. | |
| unsigned int | index () const |
| The index is a variable for user convenience, e.g. | |
| bool | lockOffset () |
| Determine the calibration offset. | |
| template<typename OS> | |
| OS & | lockReason (OS &os) const |
| Print calibration offset reasoning. | |
| std::ostream & | print (std::ostream &os) const |
| Print to stream, for debugging purposes. | |
Class that performs calibration and scaling of an incoming integer value from an A/D converter or other input device.
It is a templated class, and the template parameter must be a class capable of scaling the incoming values.
| InputCalibratorRanging< T, R >::InputCalibratorRanging | ( | const R | in_min, |
| const R | in_max, | ||
| const T & | c, | ||
| const data_type | out_min, | ||
| const data_type | out_max, | ||
| unsigned int | idx = 0, | ||
| const double | range_tolerance = 0.01 ) |
Constructor.
Takes a converter as argument.
| in_min | Minimum integer value |
| in_max | Maximum integer value |
| out_min | Minimum output value |
| out_max | Maximum output value |
| c | Converter of (template) type T, the operation operator() (const double x) should exist for values between in_min and in_max, and should produce the required converted/scaled value. |
| idx | Optional index to be stored with the calibrator. |
| R InputCalibratorRanging< T, R >::bitDifference | ( | const double | r | ) | const |
Return the difference between the given value and the measured value in bit domain.
| r | Value for comparison |
|
inline |
The index is a variable for user convenience, e.g.
to remember where in an array of raw data the input value is stored.
| bool InputCalibratorRanging< T, R >::lockOffset | ( | ) |
Determine the calibration offset.
Checks found maximum and minimum values, verifies that their range is within the tolerance of expected max and min, and if so locks the offset