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
frederic blanc
