|
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. | |
| RangingLockReason< T, R > | lockReason () const |
| Print calibration offset reasoning. | |
| void | resetHoming () |
| Reset for a new homing movement. | |
| std::ostream & | print (std::ostream &os) const |
| Print to stream, for debugging purposes. | |
Friends | |
| class | RangingLockReason< T, R > |
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.
| dueca::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 |
| 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. |
| out_min | Minimum output value |
| out_max | Maximum output value |
| idx | Optional index to be stored with the calibrator |
| range_tolerance | Relative tolerance for the error between the out_min..out_max range and the range detected in homing. |
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.
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