a

Dependencies:   mbed mbed-rtos

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers encoderfilter.hpp Source File

encoderfilter.hpp

00001 /**
00002   ******************************************************************************
00003   * @file    EncoderFilter.hpp
00004   * @author  RBRO/PJ-IU
00005   * @version V1.0.0
00006   * @date    day-month-year
00007   * @brief   This file contains the class declaration for the encoder filter
00008   *          functionality.
00009   ******************************************************************************
00010  */
00011 
00012 /* Include guard */
00013 #ifndef ENCODER_FILTER_HPP
00014 #define ENCODER_FILTER_HPP
00015 #include <Encoders/encoder.hpp>
00016 #include <Filter/filter.hpp>
00017 
00018 //!  CEncoderFilter class. 
00019 /*!
00020  * It inherits class CEncoder. 
00021  * It is used for obtaining filtered encoder output.
00022  */
00023 class CEncoderFilter:public CEncoder
00024 {
00025     /* Filter object */
00026     template <class T>
00027     using CFilterFunction = filter::CFilterFunction<T>;
00028     public:
00029         /* Constructor */
00030         CEncoderFilter  (uint32_t                       f_period
00031                         ,float                          f_period_sec
00032                         ,uint32_t                       f_cpr
00033                         ,PinName                        f_pinName
00034                         ,CFilterFunction<float>&        f_filter);
00035         
00036         virtual float getSpeedRps();
00037         virtual int16_t  getCount() = 0;
00038     protected:
00039         /* Run method */
00040         virtual void _run();
00041         
00042     private:
00043         /* Filter member */
00044         CFilterFunction<float>&    m_filter;
00045         /* Value of filtered rotations per second */
00046         float                      m_filteredRps;
00047 };
00048 
00049 #endif