a

Dependencies:   mbed mbed-rtos

Committer:
alexpirciu
Date:
Thu Mar 28 07:44:42 2019 +0000
Revision:
1:ceee5a608e7c
assa

Who changed what in which revision?

UserRevisionLine numberNew 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