commit_cell_locker

Dependencies:   MPU6050_SIM5320_TEST

Fork of KOPIRANO_cell_locker by Suad Suljic

Committer:
suads
Date:
Mon Nov 13 15:48:57 2017 +0000
Revision:
2:aabc92901e25
Parent:
1:75966605a6a3
first commit cell_locker

Who changed what in which revision?

UserRevisionLine numberNew contents of line
suads 1:75966605a6a3 1
suads 1:75966605a6a3 2 #include <stdio.h>
suads 2:aabc92901e25 3 #include <string.h>
suads 2:aabc92901e25 4 #include <stdlib.h>
suads 1:75966605a6a3 5
suads 1:75966605a6a3 6
suads 1:75966605a6a3 7 #include "log.h"
suads 1:75966605a6a3 8 #include "DataLogger.h"
suads 1:75966605a6a3 9
suads 1:75966605a6a3 10 using namespace std;
suads 1:75966605a6a3 11
suads 1:75966605a6a3 12
suads 1:75966605a6a3 13
suads 1:75966605a6a3 14 template<class T>
suads 1:75966605a6a3 15 void DataLogger<T>::savelog(T templog)
suads 1:75966605a6a3 16 {
suads 1:75966605a6a3 17 Log nule(0,0,0,0);
suads 1:75966605a6a3 18 uint16_t del=position();
suads 1:75966605a6a3 19
suads 1:75966605a6a3 20 if (_index < (DATASIZE - 1)) {
suads 1:75966605a6a3 21 _index++;
suads 1:75966605a6a3 22 _datalist[_index] = templog;
suads 1:75966605a6a3 23
suads 1:75966605a6a3 24 }
suads 1:75966605a6a3 25 else {
suads 1:75966605a6a3 26 _index = DATASIZE-del;
suads 1:75966605a6a3 27
suads 1:75966605a6a3 28 for (int k = 0; k<(DATASIZE-del) && _index!=-1; k++)
suads 1:75966605a6a3 29 _datalist[k]=_datalist[del+k];
suads 1:75966605a6a3 30
suads 1:75966605a6a3 31 for (int k = 0; k<DATASIZE; k++){
suads 1:75966605a6a3 32 if(k>=(DATASIZE-del))
suads 1:75966605a6a3 33 _datalist[k]=nule;
suads 1:75966605a6a3 34 }
suads 1:75966605a6a3 35
suads 1:75966605a6a3 36 _datalist[DATASIZE-del]=templog;
suads 1:75966605a6a3 37
suads 1:75966605a6a3 38 }
suads 1:75966605a6a3 39
suads 1:75966605a6a3 40 }
suads 1:75966605a6a3 41
suads 1:75966605a6a3 42 template<class T>
suads 1:75966605a6a3 43 void DataLogger<T>::print()
suads 1:75966605a6a3 44 {
suads 1:75966605a6a3 45 //Log *p;
suads 1:75966605a6a3 46 //p=getfirst();
suads 1:75966605a6a3 47 //cout<<"dirst"<<(*p).getTime()<<endl;
suads 1:75966605a6a3 48
suads 1:75966605a6a3 49 printf("\nPrint\n");
suads 1:75966605a6a3 50 for (int i = 0; i < DATASIZE; i++) {
suads 1:75966605a6a3 51 printf("Date %d ", _datalist[i].getDate());
suads 1:75966605a6a3 52 printf("Time %d ", _datalist[i].getTime());
suads 1:75966605a6a3 53 printf("Fsm %d ", _datalist[i].getFsmtype());
suads 1:75966605a6a3 54 printf("Event %d\n", _datalist[i].getEvent());
suads 1:75966605a6a3 55
suads 1:75966605a6a3 56 }
suads 1:75966605a6a3 57 }
suads 1:75966605a6a3 58
suads 1:75966605a6a3 59 template<class T>
suads 1:75966605a6a3 60 uint8_t DataLogger<T>::position()
suads 1:75966605a6a3 61 {
suads 1:75966605a6a3 62 int k=0;
suads 1:75966605a6a3 63 int datum=_datalist[0].getDate();
suads 1:75966605a6a3 64 for (int i = 0; i < DATASIZE; i++) {
suads 1:75966605a6a3 65 if(_datalist[i].getDate()==datum)
suads 1:75966605a6a3 66 k++;
suads 1:75966605a6a3 67 }
suads 1:75966605a6a3 68 return k;
suads 1:75966605a6a3 69 }
suads 1:75966605a6a3 70
suads 1:75966605a6a3 71
suads 1:75966605a6a3 72
suads 1:75966605a6a3 73
suads 1:75966605a6a3 74 template<class T>
suads 1:75966605a6a3 75 uint16_t DataLogger<T>::getsize()
suads 1:75966605a6a3 76 {
suads 1:75966605a6a3 77
suads 1:75966605a6a3 78 return sizeof(_datalist) / 4;
suads 1:75966605a6a3 79 }
suads 1:75966605a6a3 80
suads 1:75966605a6a3 81 template<class T>
suads 1:75966605a6a3 82 T* DataLogger<T>::getfirst(){
suads 1:75966605a6a3 83
suads 1:75966605a6a3 84 return _datalist;
suads 1:75966605a6a3 85
suads 1:75966605a6a3 86 }
suads 1:75966605a6a3 87
suads 1:75966605a6a3 88 template<class T>
suads 1:75966605a6a3 89 T* DataLogger<T>::getlast(){
suads 1:75966605a6a3 90 int i=0;
suads 1:75966605a6a3 91 for(i;i<DATASIZE;i++){
suads 1:75966605a6a3 92 if(_datalist[i].getDate()==0)
suads 1:75966605a6a3 93 break;
suads 1:75966605a6a3 94
suads 1:75966605a6a3 95 }
suads 1:75966605a6a3 96 return (_datalist+i-1);
suads 1:75966605a6a3 97 }
suads 1:75966605a6a3 98
suads 1:75966605a6a3 99 template<class T>
suads 1:75966605a6a3 100 uint16_t DataLogger<T>::getnumberOfDays(){
suads 1:75966605a6a3 101 uint16_t countDays=1;
suads 1:75966605a6a3 102 Log *p1=getfirst();
suads 1:75966605a6a3 103 Log *p2;
suads 1:75966605a6a3 104 p2=getLastStop();
suads 1:75966605a6a3 105 uint16_t currentDate=(*p1).getDate();
suads 1:75966605a6a3 106
suads 1:75966605a6a3 107 if((*p2).getDate()==currentDate && (*p2).getDate()!=0)
suads 1:75966605a6a3 108 countDays;
suads 1:75966605a6a3 109
suads 1:75966605a6a3 110 // cout<<"last stop "<<(*p1).getTime()<<endl;
suads 1:75966605a6a3 111
suads 1:75966605a6a3 112
suads 1:75966605a6a3 113 while(p1!=p2){
suads 1:75966605a6a3 114 // cout<<"d "<<(*p1).getDate()<<endl;
suads 1:75966605a6a3 115 if((*p1).getDate() != currentDate){
suads 1:75966605a6a3 116 countDays++;
suads 1:75966605a6a3 117 currentDate=(*p1).getDate();
suads 1:75966605a6a3 118 }
suads 1:75966605a6a3 119 p1++;
suads 1:75966605a6a3 120 }
suads 1:75966605a6a3 121
suads 1:75966605a6a3 122 // for(int i=0;i<DATASIZE;i++){
suads 1:75966605a6a3 123 // if(_datalist[i].getDate() != _datalist[i+1].getDate())
suads 1:75966605a6a3 124 // countDays++;
suads 1:75966605a6a3 125
suads 1:75966605a6a3 126 // }
suads 1:75966605a6a3 127 // cout<<"dani "<<countDays<<endl;
suads 1:75966605a6a3 128
suads 1:75966605a6a3 129 return countDays;
suads 1:75966605a6a3 130 }
suads 1:75966605a6a3 131
suads 1:75966605a6a3 132
suads 1:75966605a6a3 133 template<class T>
suads 1:75966605a6a3 134 T* DataLogger<T>::getLastStop(){
suads 1:75966605a6a3 135
suads 1:75966605a6a3 136 //cout<<"getlaststop"<<endl;
suads 1:75966605a6a3 137
suads 1:75966605a6a3 138 int i=DATASIZE-1;
suads 1:75966605a6a3 139
suads 1:75966605a6a3 140 for(i; i>=0; i--)
suads 1:75966605a6a3 141 if (_datalist[i].getDate()!=0 && _datalist[i].getEvent()==0)
suads 1:75966605a6a3 142 {
suads 1:75966605a6a3 143 //cout<<"i "<<i<<" "<<_datalist[i].getTime()<<"Event "<<_datalist[i].getEvent()<<endl;
suads 1:75966605a6a3 144 break;
suads 1:75966605a6a3 145
suads 1:75966605a6a3 146 }
suads 1:75966605a6a3 147
suads 1:75966605a6a3 148 return (_datalist+i);
suads 1:75966605a6a3 149 }
suads 2:aabc92901e25 150 template<class T>
suads 2:aabc92901e25 151 void DataLogger<T>::get(uint16_t &tempDate,uint16_t &tempTime){
suads 2:aabc92901e25 152 char buffer[26];
suads 2:aabc92901e25 153
suads 2:aabc92901e25 154 time_t seconds = time(NULL);
suads 2:aabc92901e25 155 sprintf(buffer,"%s", ctime(&seconds));
suads 2:aabc92901e25 156
suads 2:aabc92901e25 157 printf("|%s|",buffer);
suads 2:aabc92901e25 158 buffer[25]='\0';
suads 2:aabc92901e25 159
suads 2:aabc92901e25 160 char month[2]= {'0','0'};
suads 2:aabc92901e25 161 char hour[2]={'0','0'};
suads 2:aabc92901e25 162 char minute[2]={'0','0'};
suads 2:aabc92901e25 163 char day[2]={'0','0'};
suads 2:aabc92901e25 164
suads 2:aabc92901e25 165 day[0]=buffer[8];
suads 2:aabc92901e25 166 day[1]=buffer[9];
suads 2:aabc92901e25 167 hour[0]=buffer[11];
suads 2:aabc92901e25 168 hour[1]=buffer[12];
suads 2:aabc92901e25 169 minute[0]=buffer[14];
suads 2:aabc92901e25 170 minute[1]=buffer[15];
suads 2:aabc92901e25 171 char *output = NULL;
suads 2:aabc92901e25 172 //output = strstr (buffer,"Mar");
suads 2:aabc92901e25 173 if(strstr (buffer,"Jan"))
suads 2:aabc92901e25 174 month[1]='1';
suads 2:aabc92901e25 175 else if(strstr (buffer,"Feb"))
suads 2:aabc92901e25 176 month[1]='2';
suads 2:aabc92901e25 177 else if(strstr (buffer,"Mar"))
suads 2:aabc92901e25 178 month[1]='3';
suads 2:aabc92901e25 179 else if(strstr (buffer,"Apr"))
suads 2:aabc92901e25 180 month[1]='4';
suads 2:aabc92901e25 181 else if(strstr (buffer,"May"))
suads 2:aabc92901e25 182 month[1]='5';
suads 2:aabc92901e25 183 else if(strstr (buffer,"Jun"))
suads 2:aabc92901e25 184 month[1]='6';
suads 2:aabc92901e25 185 else if(strstr (buffer,"Jul"))
suads 2:aabc92901e25 186 month[1]='7';
suads 2:aabc92901e25 187 else if(strstr (buffer,"Aug"))
suads 2:aabc92901e25 188 month[1]='8';
suads 2:aabc92901e25 189 else if(strstr (buffer,"Sep"))
suads 2:aabc92901e25 190 month[1]='9';
suads 2:aabc92901e25 191 else if(strstr (buffer,"Okt")) {
suads 2:aabc92901e25 192 month[0]='1';
suads 2:aabc92901e25 193 month[1]='0';
suads 2:aabc92901e25 194 } else if(strstr (buffer,"Nov")) {
suads 2:aabc92901e25 195 month[0]='1';
suads 2:aabc92901e25 196 month[1]='1';
suads 2:aabc92901e25 197 } else if(strstr (buffer,"Dec")) {
suads 2:aabc92901e25 198 month[0]='1';
suads 2:aabc92901e25 199 month[1]='2';
suads 2:aabc92901e25 200 }
suads 2:aabc92901e25 201 printf("Datum je |%s|.|%s| |%s|:|%s| \n",day,month,hour,minute);
suads 2:aabc92901e25 202 char tempdate [4];
suads 2:aabc92901e25 203 sprintf(tempdate,"%s%s",month,day);
suads 2:aabc92901e25 204 int i =atoi(tempdate);
suads 2:aabc92901e25 205 tempDate=i;
suads 2:aabc92901e25 206
suads 2:aabc92901e25 207 printf("Datum je |%d|\n",i);
suads 2:aabc92901e25 208
suads 2:aabc92901e25 209 char temptime [4];
suads 2:aabc92901e25 210 sprintf(temptime,"%s%s",hour,minute);
suads 2:aabc92901e25 211 int x=atoi(temptime);
suads 2:aabc92901e25 212 printf("Vrijeme je |%d|\n",x);
suads 2:aabc92901e25 213 tempTime=x;
suads 2:aabc92901e25 214
suads 2:aabc92901e25 215 //wait(1);
suads 2:aabc92901e25 216
suads 2:aabc92901e25 217
suads 2:aabc92901e25 218 }
suads 2:aabc92901e25 219
suads 2:aabc92901e25 220
suads 2:aabc92901e25 221
suads 2:aabc92901e25 222
suads 1:75966605a6a3 223
suads 1:75966605a6a3 224
suads 1:75966605a6a3 225
suads 1:75966605a6a3 226
suads 1:75966605a6a3 227
suads 1:75966605a6a3 228 template class DataLogger<Log>;
suads 1:75966605a6a3 229
suads 1:75966605a6a3 230