Alex Pirciu
/
BFMC
a
Embed:
(wiki syntax)
Show/hide line numbers
drivertask.hpp
00001 #ifndef DRIVER_TASK_H 00002 #define DRIVER_TASK_H 00003 00004 #include <TaskManager.h> 00005 #include <DistanceDriver.h> 00006 #include <filter.h> 00007 00008 00009 00010 00011 template<class T> 00012 class CDriverTask: public task::CTask 00013 { 00014 public: 00015 using FilterFunc=filter::CFilterFunction<T>; 00016 CDriverTask( uint32_t f_period 00017 ,PinName f_pin 00018 ,FilterFunc& f_filter 00019 ,Serial& f_serial) 00020 :CTask(f_period) 00021 ,m_filter(f_filter) 00022 ,m_distanceDriver(f_pin) 00023 ,m_val_brut(0.0) 00024 ,m_val_filtrat(0.0) 00025 ,m_serial(f_serial) 00026 ,idx(0) 00027 { 00028 } 00029 00030 T getDistanceFiltered(){ 00031 return m_val_filtrat; 00032 } 00033 00034 T getDistanceMeasured(){ 00035 return m_val_brut; 00036 } 00037 00038 00039 00040 private: 00041 virtual void _run(){ 00042 m_val_brut=m_distanceDriver.ReadDistance(); 00043 m_val_filtrat=m_filter(m_val_brut); 00044 } 00045 00046 FilterFunc& m_filter; 00047 DistanceDriver m_distanceDriver; 00048 T m_val_brut; 00049 T m_val_filtrat; 00050 Serial& m_serial; 00051 int idx; 00052 }; 00053 #endif
Generated on Tue Jul 12 2022 22:40:50 by 1.7.2