trabalho final
Dependencies: X_NUCLEO_IKS01A1-f255a2c75ecb mbed-rtos mbed
userMethods.cpp
- Committer:
- Jacinta
- Date:
- 2016-05-18
- Revision:
- 37:886dcde018ad
- Parent:
- 36:0e30191d7db6
File content as of revision 37:886dcde018ad:
#include "userMethods.h"
#include "sensor.h"
#include <cstring>
#include <ctime>
#include <stdexcept>
#include <vector>
//FIFO buffer
vector<log_data> * logVector;
int * UserMethods::n;
ExpansionBoard * UserMethods::e;
bool UserMethods::flag;
Mail<log_data, QUEUESIZE> * logMail;
// Method that processes the ReadAll command
void UserMethods::readAllData(const void*)
{
printf("Chegei");
vector<log_data> vector = *logVector;
if(flag) printf("Entered in readAllData");
char buffer[32];
//.csv header
if(flag) printf("Sample_Date,HTS221_Temp,LPS25H_Press,HTS221_Hum\n\r");
for(int i = 0; i < vector.size(); i++)
//TODO Add time here and read n
//.csv friendly format for logging
printf("%s,%7s°C,%smbar,%s%%\n\r", ctime(&vector[i].date), ExpansionBoard::printDouble(buffer, vector[i].tempCelsius, 2),
ExpansionBoard::printDouble(buffer, vector[i].pressure, 2), ExpansionBoard::printDouble(buffer, vector[i].humidity, 2));
Thread::wait(1000);
}
// Method to proccess Read <n> command
void UserMethods::readNData(const void*)
{
vector<log_data> vector = *logVector;
int num = *n;
if(flag) printf("Sample_Date,HTS221_Temp,LPS25H_Press,HTS221_Hum\n\r");
char buffer[32];
for(int i = vector.size()-num-1; i < vector.size(); i++)
printf("%s,%7s°C,%smbar,%s%%\n\r", ctime(&vector[i].date), ExpansionBoard::printDouble(buffer, vector[i].tempCelsius, 2),
ExpansionBoard::printDouble(buffer, vector[i].pressure, 2), ExpansionBoard::printDouble(buffer, vector[i].humidity, 2));
}
// Method that proccesses the DeleteAll command
int UserMethods::deleteAllData(const void*)
{
vector<log_data> vector = *logVector;
Mail<log_data, QUEUESIZE> mail = *logMail;
int num = vector.size();
ExpansionBoard sensor = *e;
for(int i = 0; i < vector.size(); i++) {
osEvent evt = mail.get();
if (evt.status == osEventMail) {
log_data *log = (log_data*)evt.value.p;
mail.free(log);
}
}
vector.clear();
return num;
}
// Method thar proccesses the Read<n> command
int UserMethods::deleteNData(const void*)
{/*
vector<log_data> vector = *v;
int num = (int)vector.size();
int nOfRecords = *n;
ExpansionBoard sensor = *e;
if(nOfRecords >= num) {
//nOfRecords = UserMethods::deleteAllData;
return nOfRecords;
} else {
for(int i = 0; i < nOfRecords; i++) {
osEvent evt = sensor.mail_box.get();
if (evt.status == osEventMail) {
log_data *log = (log_data*)evt.value.p;
sensor.mail_box.free(log);
}
}
//Erases the first n elements
//vector.erase(v.begin(), v.begin() + nOfRecords);
}
return nOfRecords;
*/
return 0;
}
// Constructor of the class
UserMethods::UserMethods(vector<log_data> vector, int num, ExpansionBoard sensor, bool lFlag, Mail<log_data, QUEUESIZE> mail)
{
logVector = &vector;
n = #
e = &sensor;
flag = &lFlag;
}