trabalho final

Dependencies:   X_NUCLEO_IKS01A1-f255a2c75ecb mbed-rtos mbed

Committer:
nlsantos
Date:
Wed May 18 03:11:38 2016 +0000
Revision:
34:0d51133891d0
Parent:
33:2ee6fbdad7b4
jkkjl

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
nlsantos 25:2197b8bb930c 8 // FIFO buffer
Jacinta 7:ed4a10ebe720 9 vector<log_data> * UserMethods::v;
Jacinta 7:ed4a10ebe720 10 int * UserMethods::n;
Jacinta 15:a72b66e1f473 11 ExpansionBoard * UserMethods::e;
Jacinta 21:849e5636076e 12 bool UserMethods::flag;
Jacinta 0:1eaebb55408a 13
nlsantos 25:2197b8bb930c 14 // Method that processes the ReadAll command
Jacinta 21:849e5636076e 15 void UserMethods::readAllData(const void*)
Jacinta 21:849e5636076e 16 {
nlsantos 34:0d51133891d0 17 /* vector<log_data> vector = *v;
Jacinta 21:849e5636076e 18
Jacinta 21:849e5636076e 19 if(flag) {
Jacinta 21:849e5636076e 20 printf("Entered in readAllData");
Jacinta 21:849e5636076e 21 }
nlsantos 33:2ee6fbdad7b4 22
Jacinta 2:0b8065489409 23 char buffer[32];
Jacinta 21:849e5636076e 24
Jacinta 2:0b8065489409 25 //.csv header
Jacinta 21:849e5636076e 26 if(flag) {
Jacinta 21:849e5636076e 27 printf("Sample_Date,HTS221_Temp,LPS25H_Press,HTS221_Hum\n\r");
Jacinta 21:849e5636076e 28 }
Jacinta 7:ed4a10ebe720 29 for(int i = 0; i < vector.size(); i++)
nlsantos 34:0d51133891d0 30
Jacinta 7:ed4a10ebe720 31 printf("%s,%7s°C,%smbar,%s%%\n\r", ctime(&vector[i].date), ExpansionBoard::printDouble(buffer, vector[i].tempCelsius, 2),
Jacinta 21:849e5636076e 32 ExpansionBoard::printDouble(buffer, vector[i].pressure, 2), ExpansionBoard::printDouble(buffer, vector[i].humidity, 2));
nlsantos 34:0d51133891d0 33 */}
Jacinta 0:1eaebb55408a 34
nlsantos 25:2197b8bb930c 35 // Method to proccess Read <n> command
Jacinta 21:849e5636076e 36 void UserMethods::readNData(const void*)
Jacinta 21:849e5636076e 37 {
Jacinta 7:ed4a10ebe720 38 vector<log_data> vector = *v;
Jacinta 7:ed4a10ebe720 39 int num = *n;
Jacinta 21:849e5636076e 40
Jacinta 2:0b8065489409 41 //Serial pc(USBTX, USBRX);
Jacinta 2:0b8065489409 42 //pc.baud(115200);
Jacinta 21:849e5636076e 43 if(flag) {
Jacinta 21:849e5636076e 44 printf("Sample_Date,HTS221_Temp,LPS25H_Press,HTS221_Hum\n\r");
Jacinta 21:849e5636076e 45 }
Jacinta 2:0b8065489409 46 char buffer[32];
Jacinta 7:ed4a10ebe720 47 for(int i = vector.size()-num-1; i < vector.size(); i++)
Jacinta 7:ed4a10ebe720 48 printf("%s,%7s°C,%smbar,%s%%\n\r", ctime(&vector[i].date), ExpansionBoard::printDouble(buffer, vector[i].tempCelsius, 2),
Jacinta 21:849e5636076e 49 ExpansionBoard::printDouble(buffer, vector[i].pressure, 2), ExpansionBoard::printDouble(buffer, vector[i].humidity, 2));
Jacinta 0:1eaebb55408a 50 }
Jacinta 0:1eaebb55408a 51
nlsantos 25:2197b8bb930c 52
nlsantos 25:2197b8bb930c 53 // Method that proccesses the DeleteAll command
Jacinta 21:849e5636076e 54 int UserMethods::deleteAllData(const void*)
Jacinta 31:8bbdfea60151 55 {/*
Jacinta 21:849e5636076e 56 vector<log_data> vector = *v;
Jacinta 15:a72b66e1f473 57 int num = vector.size();
Jacinta 15:a72b66e1f473 58 ExpansionBoard sensor = *e;
Jacinta 21:849e5636076e 59
Jacinta 21:849e5636076e 60 for(int i = 0; i < vector.size(); i++) {
Jacinta 15:a72b66e1f473 61 osEvent evt = sensor.mail_box.get();
Jacinta 15:a72b66e1f473 62 if (evt.status == osEventMail) {
Jacinta 21:849e5636076e 63 log_data *log = (log_data*)evt.value.p;
Jacinta 21:849e5636076e 64 sensor.mail_box.free(log);
Jacinta 15:a72b66e1f473 65 }
Jacinta 15:a72b66e1f473 66 }
Jacinta 21:849e5636076e 67
Jacinta 21:849e5636076e 68 vector.clear();
Jacinta 21:849e5636076e 69
Jacinta 31:8bbdfea60151 70 return num;*/
Jacinta 31:8bbdfea60151 71 return 0;
Jacinta 15:a72b66e1f473 72 }
Jacinta 15:a72b66e1f473 73
nlsantos 25:2197b8bb930c 74 // Method thar proccesses the Read<n> command
Jacinta 21:849e5636076e 75 int UserMethods::deleteNData(const void*)
Jacinta 31:8bbdfea60151 76 {/*
Jacinta 21:849e5636076e 77 vector<log_data> vector = *v;
Jacinta 21:849e5636076e 78 int num = (int)vector.size();
Jacinta 15:a72b66e1f473 79 int nOfRecords = *n;
Jacinta 15:a72b66e1f473 80 ExpansionBoard sensor = *e;
Jacinta 21:849e5636076e 81
Jacinta 21:849e5636076e 82 if(nOfRecords >= num) {
Jacinta 15:a72b66e1f473 83 //nOfRecords = UserMethods::deleteAllData;
Jacinta 15:a72b66e1f473 84 return nOfRecords;
Jacinta 21:849e5636076e 85 } else {
Jacinta 21:849e5636076e 86 for(int i = 0; i < nOfRecords; i++) {
Jacinta 15:a72b66e1f473 87 osEvent evt = sensor.mail_box.get();
Jacinta 15:a72b66e1f473 88 if (evt.status == osEventMail) {
Jacinta 21:849e5636076e 89 log_data *log = (log_data*)evt.value.p;
Jacinta 21:849e5636076e 90 sensor.mail_box.free(log);
Jacinta 21:849e5636076e 91 }
Jacinta 21:849e5636076e 92 }
Jacinta 15:a72b66e1f473 93 //Erases the first n elements
Jacinta 21:849e5636076e 94 //vector.erase(v.begin(), v.begin() + nOfRecords);
Jacinta 15:a72b66e1f473 95 }
Jacinta 21:849e5636076e 96
Jacinta 15:a72b66e1f473 97 return nOfRecords;
Jacinta 31:8bbdfea60151 98 */
Jacinta 31:8bbdfea60151 99 return 0;
Jacinta 15:a72b66e1f473 100 }
Jacinta 15:a72b66e1f473 101
nlsantos 25:2197b8bb930c 102 // Constructor of the class
Jacinta 31:8bbdfea60151 103 UserMethods::UserMethods(int num, ExpansionBoard sensor, bool lFlag)
Jacinta 21:849e5636076e 104 {
Jacinta 32:e4cd87b7064c 105 v = &sensor.v;
Jacinta 7:ed4a10ebe720 106 n = &num;
Jacinta 15:a72b66e1f473 107 e = &sensor;
Jacinta 20:014a808b3ea2 108 flag = &lFlag;
Jacinta 7:ed4a10ebe720 109 }