init

Dependencies:   MPU6050 PinDetect circular_buffer

Committer:
OsmanKameric
Date:
Tue Nov 07 16:35:14 2017 +0000
Revision:
0:b416214256cd
FIRST

Who changed what in which revision?

UserRevisionLine numberNew contents of line
OsmanKameric 0:b416214256cd 1
OsmanKameric 0:b416214256cd 2 #include <stdio.h>
OsmanKameric 0:b416214256cd 3
OsmanKameric 0:b416214256cd 4
OsmanKameric 0:b416214256cd 5 #include "log.h"
OsmanKameric 0:b416214256cd 6 #include "DataLogger.h"
OsmanKameric 0:b416214256cd 7
OsmanKameric 0:b416214256cd 8 using namespace std;
OsmanKameric 0:b416214256cd 9
OsmanKameric 0:b416214256cd 10
OsmanKameric 0:b416214256cd 11
OsmanKameric 0:b416214256cd 12 template<class T>
OsmanKameric 0:b416214256cd 13 void DataLogger<T>::savelog(T templog)
OsmanKameric 0:b416214256cd 14 {
OsmanKameric 0:b416214256cd 15 Log nule(0,0,0,0);
OsmanKameric 0:b416214256cd 16 uint16_t del=position();
OsmanKameric 0:b416214256cd 17
OsmanKameric 0:b416214256cd 18 if (_index < (DATASIZE - 1)) {
OsmanKameric 0:b416214256cd 19 _index++;
OsmanKameric 0:b416214256cd 20 _datalist[_index] = templog;
OsmanKameric 0:b416214256cd 21
OsmanKameric 0:b416214256cd 22 }
OsmanKameric 0:b416214256cd 23 else {
OsmanKameric 0:b416214256cd 24 _index = DATASIZE-del;
OsmanKameric 0:b416214256cd 25
OsmanKameric 0:b416214256cd 26 for (int k = 0; k<(DATASIZE-del) && _index!=-1; k++)
OsmanKameric 0:b416214256cd 27 _datalist[k]=_datalist[del+k];
OsmanKameric 0:b416214256cd 28
OsmanKameric 0:b416214256cd 29 for (int k = 0; k<DATASIZE; k++){
OsmanKameric 0:b416214256cd 30 if(k>=(DATASIZE-del))
OsmanKameric 0:b416214256cd 31 _datalist[k]=nule;
OsmanKameric 0:b416214256cd 32 }
OsmanKameric 0:b416214256cd 33
OsmanKameric 0:b416214256cd 34 _datalist[DATASIZE-del]=templog;
OsmanKameric 0:b416214256cd 35
OsmanKameric 0:b416214256cd 36 }
OsmanKameric 0:b416214256cd 37
OsmanKameric 0:b416214256cd 38 }
OsmanKameric 0:b416214256cd 39
OsmanKameric 0:b416214256cd 40 template<class T>
OsmanKameric 0:b416214256cd 41 void DataLogger<T>::print()
OsmanKameric 0:b416214256cd 42 {
OsmanKameric 0:b416214256cd 43 //Log *p;
OsmanKameric 0:b416214256cd 44 //p=getfirst();
OsmanKameric 0:b416214256cd 45 //cout<<"dirst"<<(*p).getTime()<<endl;
OsmanKameric 0:b416214256cd 46
OsmanKameric 0:b416214256cd 47 printf("\nPrint\n");
OsmanKameric 0:b416214256cd 48 for (int i = 0; i < DATASIZE; i++) {
OsmanKameric 0:b416214256cd 49 printf("Date %d ", _datalist[i].getDate());
OsmanKameric 0:b416214256cd 50 printf("Time %d ", _datalist[i].getTime());
OsmanKameric 0:b416214256cd 51 printf("Fsm %d ", _datalist[i].getFsmtype());
OsmanKameric 0:b416214256cd 52 printf("Event %d\n", _datalist[i].getEvent());
OsmanKameric 0:b416214256cd 53
OsmanKameric 0:b416214256cd 54 }
OsmanKameric 0:b416214256cd 55 }
OsmanKameric 0:b416214256cd 56
OsmanKameric 0:b416214256cd 57 template<class T>
OsmanKameric 0:b416214256cd 58 uint8_t DataLogger<T>::position()
OsmanKameric 0:b416214256cd 59 {
OsmanKameric 0:b416214256cd 60 int k=0;
OsmanKameric 0:b416214256cd 61 int datum=_datalist[0].getDate();
OsmanKameric 0:b416214256cd 62 for (int i = 0; i < DATASIZE; i++) {
OsmanKameric 0:b416214256cd 63 if(_datalist[i].getDate()==datum)
OsmanKameric 0:b416214256cd 64 k++;
OsmanKameric 0:b416214256cd 65 }
OsmanKameric 0:b416214256cd 66 return k;
OsmanKameric 0:b416214256cd 67 }
OsmanKameric 0:b416214256cd 68
OsmanKameric 0:b416214256cd 69
OsmanKameric 0:b416214256cd 70
OsmanKameric 0:b416214256cd 71
OsmanKameric 0:b416214256cd 72 template<class T>
OsmanKameric 0:b416214256cd 73 uint16_t DataLogger<T>::getsize()
OsmanKameric 0:b416214256cd 74 {
OsmanKameric 0:b416214256cd 75
OsmanKameric 0:b416214256cd 76 return sizeof(_datalist) / 4;
OsmanKameric 0:b416214256cd 77 }
OsmanKameric 0:b416214256cd 78
OsmanKameric 0:b416214256cd 79 template<class T>
OsmanKameric 0:b416214256cd 80 T* DataLogger<T>::getfirst(){
OsmanKameric 0:b416214256cd 81
OsmanKameric 0:b416214256cd 82 return _datalist;
OsmanKameric 0:b416214256cd 83
OsmanKameric 0:b416214256cd 84 }
OsmanKameric 0:b416214256cd 85
OsmanKameric 0:b416214256cd 86 template<class T>
OsmanKameric 0:b416214256cd 87 T* DataLogger<T>::getlast(){
OsmanKameric 0:b416214256cd 88 int i=0;
OsmanKameric 0:b416214256cd 89 for(i;i<DATASIZE;i++){
OsmanKameric 0:b416214256cd 90 if(_datalist[i].getDate()==0)
OsmanKameric 0:b416214256cd 91 break;
OsmanKameric 0:b416214256cd 92
OsmanKameric 0:b416214256cd 93 }
OsmanKameric 0:b416214256cd 94 return (_datalist+i-1);
OsmanKameric 0:b416214256cd 95 }
OsmanKameric 0:b416214256cd 96
OsmanKameric 0:b416214256cd 97 template<class T>
OsmanKameric 0:b416214256cd 98 uint16_t DataLogger<T>::getnumberOfDays(){
OsmanKameric 0:b416214256cd 99 uint16_t countDays=1;
OsmanKameric 0:b416214256cd 100 Log *p1=getfirst();
OsmanKameric 0:b416214256cd 101 Log *p2;
OsmanKameric 0:b416214256cd 102 p2=getLastStop();
OsmanKameric 0:b416214256cd 103 uint16_t currentDate=(*p1).getDate();
OsmanKameric 0:b416214256cd 104
OsmanKameric 0:b416214256cd 105 if((*p2).getDate()==currentDate && (*p2).getDate()!=0)
OsmanKameric 0:b416214256cd 106 countDays;
OsmanKameric 0:b416214256cd 107
OsmanKameric 0:b416214256cd 108 // cout<<"last stop "<<(*p1).getTime()<<endl;
OsmanKameric 0:b416214256cd 109
OsmanKameric 0:b416214256cd 110
OsmanKameric 0:b416214256cd 111 while(p1!=p2){
OsmanKameric 0:b416214256cd 112 // cout<<"d "<<(*p1).getDate()<<endl;
OsmanKameric 0:b416214256cd 113 if((*p1).getDate() != currentDate){
OsmanKameric 0:b416214256cd 114 countDays++;
OsmanKameric 0:b416214256cd 115 currentDate=(*p1).getDate();
OsmanKameric 0:b416214256cd 116 }
OsmanKameric 0:b416214256cd 117 p1++;
OsmanKameric 0:b416214256cd 118 }
OsmanKameric 0:b416214256cd 119
OsmanKameric 0:b416214256cd 120 // for(int i=0;i<DATASIZE;i++){
OsmanKameric 0:b416214256cd 121 // if(_datalist[i].getDate() != _datalist[i+1].getDate())
OsmanKameric 0:b416214256cd 122 // countDays++;
OsmanKameric 0:b416214256cd 123
OsmanKameric 0:b416214256cd 124 // }
OsmanKameric 0:b416214256cd 125 // cout<<"dani "<<countDays<<endl;
OsmanKameric 0:b416214256cd 126
OsmanKameric 0:b416214256cd 127 return countDays;
OsmanKameric 0:b416214256cd 128 }
OsmanKameric 0:b416214256cd 129
OsmanKameric 0:b416214256cd 130
OsmanKameric 0:b416214256cd 131 template<class T>
OsmanKameric 0:b416214256cd 132 T* DataLogger<T>::getLastStop(){
OsmanKameric 0:b416214256cd 133
OsmanKameric 0:b416214256cd 134 //cout<<"getlaststop"<<endl;
OsmanKameric 0:b416214256cd 135
OsmanKameric 0:b416214256cd 136 int i=DATASIZE-1;
OsmanKameric 0:b416214256cd 137
OsmanKameric 0:b416214256cd 138 for(i; i>=0; i--)
OsmanKameric 0:b416214256cd 139 if (_datalist[i].getDate()!=0 && _datalist[i].getEvent()==0)
OsmanKameric 0:b416214256cd 140 {
OsmanKameric 0:b416214256cd 141 //cout<<"i "<<i<<" "<<_datalist[i].getTime()<<"Event "<<_datalist[i].getEvent()<<endl;
OsmanKameric 0:b416214256cd 142 break;
OsmanKameric 0:b416214256cd 143
OsmanKameric 0:b416214256cd 144 }
OsmanKameric 0:b416214256cd 145
OsmanKameric 0:b416214256cd 146 return (_datalist+i);
OsmanKameric 0:b416214256cd 147 }
OsmanKameric 0:b416214256cd 148
OsmanKameric 0:b416214256cd 149
OsmanKameric 0:b416214256cd 150
OsmanKameric 0:b416214256cd 151
OsmanKameric 0:b416214256cd 152
OsmanKameric 0:b416214256cd 153 template class DataLogger<Log>;
OsmanKameric 0:b416214256cd 154
OsmanKameric 0:b416214256cd 155