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; }