Nelson Santos / Mbed 2 deprecated trabalho

Dependencies:   X_NUCLEO_IKS01A1-f255a2c75ecb mbed-rtos mbed

Committer:
Jacinta
Date:
Tue May 17 18:35:34 2016 +0000
Revision:
20:014a808b3ea2
Parent:
15:a72b66e1f473
Child:
21:849e5636076e
....

Who changed what in which revision?

UserRevisionLine numberNew contents of line
Jacinta 0:1eaebb55408a 1 #include "userMethods.h"
Jacinta 0:1eaebb55408a 2 #include "sensor.h"
Jacinta 0:1eaebb55408a 3 #include <cstring>
Jacinta 0:1eaebb55408a 4 #include <ctime>
Jacinta 0:1eaebb55408a 5 #include <stdexcept>
Jacinta 2:0b8065489409 6 #include <vector>
Jacinta 7:ed4a10ebe720 7
Jacinta 7:ed4a10ebe720 8 vector<log_data> * UserMethods::v;
Jacinta 7:ed4a10ebe720 9 int * UserMethods::n;
Jacinta 15:a72b66e1f473 10 ExpansionBoard * UserMethods::e;
Jacinta 0:1eaebb55408a 11
Jacinta 3:1f17245afc88 12 void UserMethods::readAllData(const void*) {
Jacinta 7:ed4a10ebe720 13 vector<log_data> vector = *v;
Jacinta 3:1f17245afc88 14
Jacinta 2:0b8065489409 15 printf("Entered in readAllData");
Jacinta 2:0b8065489409 16 //TODO Serial not working
Jacinta 2:0b8065489409 17 //Serial pc(USBTX, USBRX);
Jacinta 2:0b8065489409 18 //pc.baud(115200); //For fast sampling rates
Jacinta 2:0b8065489409 19 char buffer[32];
Jacinta 2:0b8065489409 20
Jacinta 2:0b8065489409 21 //.csv header
Jacinta 2:0b8065489409 22 printf("Sample_Date,HTS221_Temp,LPS25H_Press,HTS221_Hum\n\r");
Jacinta 7:ed4a10ebe720 23 for(int i = 0; i < vector.size(); i++)
Jacinta 2:0b8065489409 24 //TODO Add time here and read n
Jacinta 2:0b8065489409 25 //.csv friendly format for logging
Jacinta 7:ed4a10ebe720 26 printf("%s,%7s°C,%smbar,%s%%\n\r", ctime(&vector[i].date), ExpansionBoard::printDouble(buffer, vector[i].tempCelsius, 2),
Jacinta 7:ed4a10ebe720 27 ExpansionBoard::printDouble(buffer, vector[i].pressure, 2), ExpansionBoard::printDouble(buffer, vector[i].humidity, 2));
Jacinta 0:1eaebb55408a 28 }
Jacinta 0:1eaebb55408a 29
Jacinta 3:1f17245afc88 30 void UserMethods::readNData(const void*) {
Jacinta 7:ed4a10ebe720 31 vector<log_data> vector = *v;
Jacinta 7:ed4a10ebe720 32 int num = *n;
Jacinta 3:1f17245afc88 33
Jacinta 2:0b8065489409 34 //Serial pc(USBTX, USBRX);
Jacinta 2:0b8065489409 35 //pc.baud(115200);
Jacinta 2:0b8065489409 36 printf("Sample_Date,HTS221_Temp,LPS25H_Press,HTS221_Hum\n\r");
Jacinta 2:0b8065489409 37 char buffer[32];
Jacinta 7:ed4a10ebe720 38 for(int i = vector.size()-num-1; i < vector.size(); i++)
Jacinta 7:ed4a10ebe720 39 printf("%s,%7s°C,%smbar,%s%%\n\r", ctime(&vector[i].date), ExpansionBoard::printDouble(buffer, vector[i].tempCelsius, 2),
Jacinta 7:ed4a10ebe720 40 ExpansionBoard::printDouble(buffer, vector[i].pressure, 2), ExpansionBoard::printDouble(buffer, vector[i].humidity, 2));
Jacinta 0:1eaebb55408a 41 }
Jacinta 0:1eaebb55408a 42
Jacinta 15:a72b66e1f473 43 int UserMethods::deleteAllData(const void*) {
Jacinta 15:a72b66e1f473 44 vector<log_data> vector = *v;
Jacinta 15:a72b66e1f473 45 int num = vector.size();
Jacinta 15:a72b66e1f473 46 ExpansionBoard sensor = *e;
Jacinta 15:a72b66e1f473 47
Jacinta 15:a72b66e1f473 48 for(int i = 0; i < vector.size(); i++){
Jacinta 15:a72b66e1f473 49 osEvent evt = sensor.mail_box.get();
Jacinta 15:a72b66e1f473 50 if (evt.status == osEventMail) {
Jacinta 15:a72b66e1f473 51 log_data *log = (log_data*)evt.value.p;
Jacinta 15:a72b66e1f473 52 sensor.mail_box.free(log);
Jacinta 15:a72b66e1f473 53 }
Jacinta 15:a72b66e1f473 54 }
Jacinta 15:a72b66e1f473 55
Jacinta 15:a72b66e1f473 56 vector.clear();
Jacinta 15:a72b66e1f473 57
Jacinta 15:a72b66e1f473 58 return num;
Jacinta 15:a72b66e1f473 59 }
Jacinta 15:a72b66e1f473 60
Jacinta 15:a72b66e1f473 61 int UserMethods::deleteNData(const void*) {
Jacinta 15:a72b66e1f473 62 vector<log_data> vector = *v;
Jacinta 15:a72b66e1f473 63 int num = (int)vector.size();
Jacinta 15:a72b66e1f473 64 int nOfRecords = *n;
Jacinta 15:a72b66e1f473 65 ExpansionBoard sensor = *e;
Jacinta 15:a72b66e1f473 66
Jacinta 15:a72b66e1f473 67 if(nOfRecords >= num){
Jacinta 15:a72b66e1f473 68 //nOfRecords = UserMethods::deleteAllData;
Jacinta 15:a72b66e1f473 69 return nOfRecords;
Jacinta 15:a72b66e1f473 70 }else{
Jacinta 15:a72b66e1f473 71 for(int i = 0; i < nOfRecords; i++){
Jacinta 15:a72b66e1f473 72 osEvent evt = sensor.mail_box.get();
Jacinta 15:a72b66e1f473 73 if (evt.status == osEventMail) {
Jacinta 15:a72b66e1f473 74 log_data *log = (log_data*)evt.value.p;
Jacinta 15:a72b66e1f473 75 sensor.mail_box.free(log);
Jacinta 15:a72b66e1f473 76 }
Jacinta 15:a72b66e1f473 77 }
Jacinta 15:a72b66e1f473 78 //Erases the first n elements
Jacinta 15:a72b66e1f473 79 //vector.erase(v.begin(), v.begin() + nOfRecords);
Jacinta 15:a72b66e1f473 80 }
Jacinta 15:a72b66e1f473 81
Jacinta 15:a72b66e1f473 82 return nOfRecords;
Jacinta 15:a72b66e1f473 83 }
Jacinta 15:a72b66e1f473 84
Jacinta 7:ed4a10ebe720 85 void UserMethods::logging(const void*) { return; }
Jacinta 7:ed4a10ebe720 86
Jacinta 20:014a808b3ea2 87 UserMethods::UserMethods(vector<log_data> vector, int num, ExpansionBoard sensor, bool lFlag) {
Jacinta 7:ed4a10ebe720 88 v = &vector;
Jacinta 7:ed4a10ebe720 89 n = &num;
Jacinta 15:a72b66e1f473 90 e = &sensor;
Jacinta 20:014a808b3ea2 91 flag = &lFlag;
Jacinta 7:ed4a10ebe720 92 }