Alex Pirciu
/
BFMC
a
include/Encoders/encoderfilter.hpp@1:ceee5a608e7c, 2019-03-28 (annotated)
- Committer:
- alexpirciu
- Date:
- Thu Mar 28 07:44:42 2019 +0000
- Revision:
- 1:ceee5a608e7c
assa
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
alexpirciu | 1:ceee5a608e7c | 1 | /** |
alexpirciu | 1:ceee5a608e7c | 2 | ****************************************************************************** |
alexpirciu | 1:ceee5a608e7c | 3 | * @file EncoderFilter.hpp |
alexpirciu | 1:ceee5a608e7c | 4 | * @author RBRO/PJ-IU |
alexpirciu | 1:ceee5a608e7c | 5 | * @version V1.0.0 |
alexpirciu | 1:ceee5a608e7c | 6 | * @date day-month-year |
alexpirciu | 1:ceee5a608e7c | 7 | * @brief This file contains the class declaration for the encoder filter |
alexpirciu | 1:ceee5a608e7c | 8 | * functionality. |
alexpirciu | 1:ceee5a608e7c | 9 | ****************************************************************************** |
alexpirciu | 1:ceee5a608e7c | 10 | */ |
alexpirciu | 1:ceee5a608e7c | 11 | |
alexpirciu | 1:ceee5a608e7c | 12 | /* Include guard */ |
alexpirciu | 1:ceee5a608e7c | 13 | #ifndef ENCODER_FILTER_HPP |
alexpirciu | 1:ceee5a608e7c | 14 | #define ENCODER_FILTER_HPP |
alexpirciu | 1:ceee5a608e7c | 15 | #include <Encoders/encoder.hpp> |
alexpirciu | 1:ceee5a608e7c | 16 | #include <Filter/filter.hpp> |
alexpirciu | 1:ceee5a608e7c | 17 | |
alexpirciu | 1:ceee5a608e7c | 18 | //! CEncoderFilter class. |
alexpirciu | 1:ceee5a608e7c | 19 | /*! |
alexpirciu | 1:ceee5a608e7c | 20 | * It inherits class CEncoder. |
alexpirciu | 1:ceee5a608e7c | 21 | * It is used for obtaining filtered encoder output. |
alexpirciu | 1:ceee5a608e7c | 22 | */ |
alexpirciu | 1:ceee5a608e7c | 23 | class CEncoderFilter:public CEncoder |
alexpirciu | 1:ceee5a608e7c | 24 | { |
alexpirciu | 1:ceee5a608e7c | 25 | /* Filter object */ |
alexpirciu | 1:ceee5a608e7c | 26 | template <class T> |
alexpirciu | 1:ceee5a608e7c | 27 | using CFilterFunction = filter::CFilterFunction<T>; |
alexpirciu | 1:ceee5a608e7c | 28 | public: |
alexpirciu | 1:ceee5a608e7c | 29 | /* Constructor */ |
alexpirciu | 1:ceee5a608e7c | 30 | CEncoderFilter (uint32_t f_period |
alexpirciu | 1:ceee5a608e7c | 31 | ,float f_period_sec |
alexpirciu | 1:ceee5a608e7c | 32 | ,uint32_t f_cpr |
alexpirciu | 1:ceee5a608e7c | 33 | ,PinName f_pinName |
alexpirciu | 1:ceee5a608e7c | 34 | ,CFilterFunction<float>& f_filter); |
alexpirciu | 1:ceee5a608e7c | 35 | |
alexpirciu | 1:ceee5a608e7c | 36 | virtual float getSpeedRps(); |
alexpirciu | 1:ceee5a608e7c | 37 | virtual int16_t getCount() = 0; |
alexpirciu | 1:ceee5a608e7c | 38 | protected: |
alexpirciu | 1:ceee5a608e7c | 39 | /* Run method */ |
alexpirciu | 1:ceee5a608e7c | 40 | virtual void _run(); |
alexpirciu | 1:ceee5a608e7c | 41 | |
alexpirciu | 1:ceee5a608e7c | 42 | private: |
alexpirciu | 1:ceee5a608e7c | 43 | /* Filter member */ |
alexpirciu | 1:ceee5a608e7c | 44 | CFilterFunction<float>& m_filter; |
alexpirciu | 1:ceee5a608e7c | 45 | /* Value of filtered rotations per second */ |
alexpirciu | 1:ceee5a608e7c | 46 | float m_filteredRps; |
alexpirciu | 1:ceee5a608e7c | 47 | }; |
alexpirciu | 1:ceee5a608e7c | 48 | |
alexpirciu | 1:ceee5a608e7c | 49 | #endif |