Alex Pirciu
/
BFMC
a
Embed:
(wiki syntax)
Show/hide line numbers
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
Generated on Tue Jul 12 2022 22:40:50 by 1.7.2