commit_cell_locker

Dependencies:   MPU6050_SIM5320_TEST

Fork of KOPIRANO_cell_locker by Suad Suljic

DataLogger/DataLogger.cpp

Committer:
suads
Date:
2017-11-13
Revision:
2:aabc92901e25
Parent:
1:75966605a6a3

File content as of revision 2:aabc92901e25:


#include <stdio.h>
#include <string.h>
#include <stdlib.h>


#include "log.h"
#include "DataLogger.h"

using namespace std;



template<class T>
void DataLogger<T>::savelog(T templog)
{
    Log nule(0,0,0,0);
    uint16_t del=position();

    if (_index < (DATASIZE - 1)) {
        _index++;
        _datalist[_index] = templog;

    }
    else {
        _index = DATASIZE-del;

        for (int k = 0; k<(DATASIZE-del) && _index!=-1; k++)
        _datalist[k]=_datalist[del+k];

        for (int k = 0; k<DATASIZE; k++){
           if(k>=(DATASIZE-del))
             _datalist[k]=nule;
            }

   _datalist[DATASIZE-del]=templog;

}

  }

template<class T>
void DataLogger<T>::print()
{
    //Log *p;
    //p=getfirst();
    //cout<<"dirst"<<(*p).getTime()<<endl;

    printf("\nPrint\n");
    for (int i = 0; i < DATASIZE; i++) {
        printf("Date %d  ", _datalist[i].getDate());
        printf("Time %d  ", _datalist[i].getTime());
        printf("Fsm %d  ", _datalist[i].getFsmtype());
        printf("Event %d\n", _datalist[i].getEvent());

    }
}

template<class T>
uint8_t DataLogger<T>::position()
{
    int k=0;
    int datum=_datalist[0].getDate();
    for (int i = 0; i < DATASIZE; i++) {
        if(_datalist[i].getDate()==datum)
            k++;
    }
    return k;
}




template<class T>
uint16_t DataLogger<T>::getsize()
{

    return sizeof(_datalist) / 4;
}

template<class T>
T* DataLogger<T>::getfirst(){

 return _datalist;

}

template<class T>
T* DataLogger<T>::getlast(){
int i=0;
    for(i;i<DATASIZE;i++){
        if(_datalist[i].getDate()==0)
         break;
        
    }
 return (_datalist+i-1);
}

template<class T>
uint16_t DataLogger<T>::getnumberOfDays(){
    uint16_t countDays=1;
    Log *p1=getfirst();
    Log *p2;
    p2=getLastStop();
    uint16_t currentDate=(*p1).getDate();

    if((*p2).getDate()==currentDate && (*p2).getDate()!=0)
        countDays;

   // cout<<"last stop "<<(*p1).getTime()<<endl;


    while(p1!=p2){
       // cout<<"d "<<(*p1).getDate()<<endl;
        if((*p1).getDate() != currentDate){
         countDays++;
         currentDate=(*p1).getDate();
     }
        p1++;
    }

    // for(int i=0;i<DATASIZE;i++){
    //     if(_datalist[i].getDate() != _datalist[i+1].getDate())
    //      countDays++;
        
    // }
  // cout<<"dani "<<countDays<<endl;

 return countDays;
}


template<class T>
T* DataLogger<T>::getLastStop(){

    //cout<<"getlaststop"<<endl;
    
    int i=DATASIZE-1;

    for(i; i>=0; i--)
    if (_datalist[i].getDate()!=0 && _datalist[i].getEvent()==0)
    {
              //cout<<"i "<<i<<"  "<<_datalist[i].getTime()<<"Event "<<_datalist[i].getEvent()<<endl;
              break;

    }

 return (_datalist+i);
}
template<class T>
void DataLogger<T>::get(uint16_t &tempDate,uint16_t &tempTime){
    char buffer[26];

    time_t seconds = time(NULL);
    sprintf(buffer,"%s", ctime(&seconds));

    printf("|%s|",buffer);
    buffer[25]='\0';

    char month[2]= {'0','0'};
    char hour[2]={'0','0'};
    char minute[2]={'0','0'};
    char day[2]={'0','0'};

    day[0]=buffer[8];
    day[1]=buffer[9];
    hour[0]=buffer[11];
    hour[1]=buffer[12];
    minute[0]=buffer[14];
    minute[1]=buffer[15];
    char *output = NULL;
//output = strstr (buffer,"Mar");
    if(strstr (buffer,"Jan"))
        month[1]='1';
    else if(strstr (buffer,"Feb"))
        month[1]='2';
    else if(strstr (buffer,"Mar"))
        month[1]='3';
    else if(strstr (buffer,"Apr"))
        month[1]='4';
    else if(strstr (buffer,"May"))
        month[1]='5';
    else if(strstr (buffer,"Jun"))
        month[1]='6';
    else if(strstr (buffer,"Jul"))
        month[1]='7';
    else if(strstr (buffer,"Aug"))
        month[1]='8';
    else if(strstr (buffer,"Sep"))
        month[1]='9';
    else if(strstr (buffer,"Okt")) {
        month[0]='1';
        month[1]='0';
    } else if(strstr (buffer,"Nov")) {
        month[0]='1';
        month[1]='1';
    } else if(strstr (buffer,"Dec")) {
        month[0]='1';
        month[1]='2';
    }
    printf("Datum je |%s|.|%s|  |%s|:|%s| \n",day,month,hour,minute);
    char tempdate [4];
    sprintf(tempdate,"%s%s",month,day);
    int i =atoi(tempdate);
    tempDate=i;

    printf("Datum je |%d|\n",i);

    char temptime [4];
    sprintf(temptime,"%s%s",hour,minute);
    int x=atoi(temptime);
    printf("Vrijeme je |%d|\n",x);
    tempTime=x;

//wait(1);
    
    
 }   
 








template class DataLogger<Log>;