MovingAverage template
Fork of MoyenneMobile by
Revision 1:b310d132db09, committed 2014-07-07
- Comitter:
- fblanc
- Date:
- Mon Jul 07 12:27:57 2014 +0000
- Parent:
- 0:226202c7ea37
- Child:
- 2:da07a13d617f
- Commit message:
- ok MovingAverage
Changed in this revision
MovingAverage.cpp | Show annotated file Show diff for this revision Revisions of this file |
MovingAverage.h | Show annotated file Show diff for this revision Revisions of this file |
--- a/MovingAverage.cpp Sun Apr 14 01:02:39 2013 +0000 +++ b/MovingAverage.cpp Mon Jul 07 12:27:57 2014 +0000 @@ -23,29 +23,3 @@ Temp_next = Temp_next&0x07; }*/ #include "MovingAverage.h" - -template<class T> -MovingAverage<T>::MovingAverage(unsigned char maxLength, T defaultValue){ - MaxLength = maxLength; - - AverageFilter = new T[MaxLength]; - - for(int i = 0; i<MaxLength;i++) - { - AverageFilter[i] = defaultValue; - } - Average = defaultValue; -} - -template<class T> -T MovingAverage<T>::GetAverage(){ - return Average; -} -template<class T> -void MovingAverage<T>::Insert(T value){ - - Average = Average - AverageFilter[NextElement]/MaxLength + value/MaxLength; - FiltreMobile[NextElement++] = value; - - NextElement = NextElement&MaxLength; -} \ No newline at end of file
--- a/MovingAverage.h Sun Apr 14 01:02:39 2013 +0000 +++ b/MovingAverage.h Mon Jul 07 12:27:57 2014 +0000 @@ -5,7 +5,7 @@ class MovingAverage { private: - T AverageFilter[]; + T* Element; T Average; unsigned char NextElement; @@ -13,7 +13,35 @@ public: MovingAverage(unsigned char maxLength, T defaultValue); T GetAverage(); + void Insert(T value); }; +template<class T> +MovingAverage<T>::MovingAverage(unsigned char maxLength, T defaultValue){ + MaxLength = maxLength; + + Element = new T[MaxLength]; + + for(int i = 0; i<MaxLength;i++) + { + Element[i] = defaultValue; + } + Average = defaultValue; +} + +template<class T> +T MovingAverage<T>::GetAverage(){ + return Average; +} + + +template<class T> +void MovingAverage<T>::Insert(T value){ + Average = value/MaxLength + Average - Element[++NextElement]/MaxLength; + Element[NextElement] = value; + if(NextElement>=(MaxLength-1)) + NextElement=0; + +} #endif \ No newline at end of file