trabalho final
Dependencies: X_NUCLEO_IKS01A1-f255a2c75ecb mbed-rtos mbed
userMethods.cpp@37:886dcde018ad, 2016-05-18 (annotated)
- Committer:
- Jacinta
- Date:
- Wed May 18 11:40:30 2016 +0000
- Revision:
- 37:886dcde018ad
- Parent:
- 36:0e30191d7db6
commited revision
Who changed what in which revision?
User | Revision | Line number | New 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 | 36:0e30191d7db6 | 8 | //FIFO buffer |
Jacinta | 35:34bbca276f99 | 9 | vector<log_data> * logVector; |
Jacinta | 7:ed4a10ebe720 | 10 | int * UserMethods::n; |
Jacinta | 15:a72b66e1f473 | 11 | ExpansionBoard * UserMethods::e; |
Jacinta | 21:849e5636076e | 12 | bool UserMethods::flag; |
Jacinta | 35:34bbca276f99 | 13 | Mail<log_data, QUEUESIZE> * logMail; |
Jacinta | 0:1eaebb55408a | 14 | |
nlsantos | 25:2197b8bb930c | 15 | // Method that processes the ReadAll command |
Jacinta | 21:849e5636076e | 16 | void UserMethods::readAllData(const void*) |
Jacinta | 21:849e5636076e | 17 | { |
Jacinta | 37:886dcde018ad | 18 | printf("Chegei"); |
Jacinta | 35:34bbca276f99 | 19 | vector<log_data> vector = *logVector; |
Jacinta | 21:849e5636076e | 20 | |
Jacinta | 35:34bbca276f99 | 21 | if(flag) printf("Entered in readAllData"); |
nlsantos | 33:2ee6fbdad7b4 | 22 | |
Jacinta | 2:0b8065489409 | 23 | char buffer[32]; |
Jacinta | 21:849e5636076e | 24 | |
Jacinta | 2:0b8065489409 | 25 | //.csv header |
Jacinta | 35:34bbca276f99 | 26 | if(flag) printf("Sample_Date,HTS221_Temp,LPS25H_Press,HTS221_Hum\n\r"); |
Jacinta | 35:34bbca276f99 | 27 | |
Jacinta | 7:ed4a10ebe720 | 28 | for(int i = 0; i < vector.size(); i++) |
Jacinta | 2:0b8065489409 | 29 | //TODO Add time here and read n |
Jacinta | 2:0b8065489409 | 30 | //.csv friendly format for logging |
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)); |
Jacinta | 37:886dcde018ad | 33 | |
Jacinta | 37:886dcde018ad | 34 | Thread::wait(1000); |
Jacinta | 0:1eaebb55408a | 35 | } |
Jacinta | 0:1eaebb55408a | 36 | |
nlsantos | 25:2197b8bb930c | 37 | // Method to proccess Read <n> command |
Jacinta | 21:849e5636076e | 38 | void UserMethods::readNData(const void*) |
Jacinta | 21:849e5636076e | 39 | { |
Jacinta | 35:34bbca276f99 | 40 | vector<log_data> vector = *logVector; |
Jacinta | 7:ed4a10ebe720 | 41 | int num = *n; |
Jacinta | 21:849e5636076e | 42 | |
Jacinta | 35:34bbca276f99 | 43 | if(flag) printf("Sample_Date,HTS221_Temp,LPS25H_Press,HTS221_Hum\n\r"); |
Jacinta | 35:34bbca276f99 | 44 | |
Jacinta | 2:0b8065489409 | 45 | char buffer[32]; |
Jacinta | 7:ed4a10ebe720 | 46 | for(int i = vector.size()-num-1; i < vector.size(); i++) |
Jacinta | 7:ed4a10ebe720 | 47 | printf("%s,%7s°C,%smbar,%s%%\n\r", ctime(&vector[i].date), ExpansionBoard::printDouble(buffer, vector[i].tempCelsius, 2), |
Jacinta | 21:849e5636076e | 48 | ExpansionBoard::printDouble(buffer, vector[i].pressure, 2), ExpansionBoard::printDouble(buffer, vector[i].humidity, 2)); |
Jacinta | 0:1eaebb55408a | 49 | } |
Jacinta | 0:1eaebb55408a | 50 | |
nlsantos | 25:2197b8bb930c | 51 | // Method that proccesses the DeleteAll command |
Jacinta | 21:849e5636076e | 52 | int UserMethods::deleteAllData(const void*) |
Jacinta | 35:34bbca276f99 | 53 | { |
Jacinta | 35:34bbca276f99 | 54 | vector<log_data> vector = *logVector; |
Jacinta | 35:34bbca276f99 | 55 | Mail<log_data, QUEUESIZE> mail = *logMail; |
Jacinta | 15:a72b66e1f473 | 56 | int num = vector.size(); |
Jacinta | 15:a72b66e1f473 | 57 | ExpansionBoard sensor = *e; |
Jacinta | 21:849e5636076e | 58 | |
Jacinta | 21:849e5636076e | 59 | for(int i = 0; i < vector.size(); i++) { |
Jacinta | 35:34bbca276f99 | 60 | osEvent evt = mail.get(); |
Jacinta | 15:a72b66e1f473 | 61 | if (evt.status == osEventMail) { |
Jacinta | 21:849e5636076e | 62 | log_data *log = (log_data*)evt.value.p; |
Jacinta | 35:34bbca276f99 | 63 | mail.free(log); |
Jacinta | 15:a72b66e1f473 | 64 | } |
Jacinta | 15:a72b66e1f473 | 65 | } |
Jacinta | 21:849e5636076e | 66 | |
Jacinta | 21:849e5636076e | 67 | vector.clear(); |
Jacinta | 21:849e5636076e | 68 | |
Jacinta | 35:34bbca276f99 | 69 | return num; |
Jacinta | 15:a72b66e1f473 | 70 | } |
Jacinta | 15:a72b66e1f473 | 71 | |
nlsantos | 25:2197b8bb930c | 72 | // Method thar proccesses the Read<n> command |
Jacinta | 21:849e5636076e | 73 | int UserMethods::deleteNData(const void*) |
Jacinta | 31:8bbdfea60151 | 74 | {/* |
Jacinta | 21:849e5636076e | 75 | vector<log_data> vector = *v; |
Jacinta | 21:849e5636076e | 76 | int num = (int)vector.size(); |
Jacinta | 15:a72b66e1f473 | 77 | int nOfRecords = *n; |
Jacinta | 15:a72b66e1f473 | 78 | ExpansionBoard sensor = *e; |
Jacinta | 21:849e5636076e | 79 | |
Jacinta | 21:849e5636076e | 80 | if(nOfRecords >= num) { |
Jacinta | 15:a72b66e1f473 | 81 | //nOfRecords = UserMethods::deleteAllData; |
Jacinta | 15:a72b66e1f473 | 82 | return nOfRecords; |
Jacinta | 21:849e5636076e | 83 | } else { |
Jacinta | 21:849e5636076e | 84 | for(int i = 0; i < nOfRecords; i++) { |
Jacinta | 15:a72b66e1f473 | 85 | osEvent evt = sensor.mail_box.get(); |
Jacinta | 15:a72b66e1f473 | 86 | if (evt.status == osEventMail) { |
Jacinta | 21:849e5636076e | 87 | log_data *log = (log_data*)evt.value.p; |
Jacinta | 21:849e5636076e | 88 | sensor.mail_box.free(log); |
Jacinta | 21:849e5636076e | 89 | } |
Jacinta | 21:849e5636076e | 90 | } |
Jacinta | 15:a72b66e1f473 | 91 | //Erases the first n elements |
Jacinta | 21:849e5636076e | 92 | //vector.erase(v.begin(), v.begin() + nOfRecords); |
Jacinta | 15:a72b66e1f473 | 93 | } |
Jacinta | 21:849e5636076e | 94 | |
Jacinta | 15:a72b66e1f473 | 95 | return nOfRecords; |
Jacinta | 31:8bbdfea60151 | 96 | */ |
Jacinta | 31:8bbdfea60151 | 97 | return 0; |
Jacinta | 15:a72b66e1f473 | 98 | } |
Jacinta | 15:a72b66e1f473 | 99 | |
nlsantos | 25:2197b8bb930c | 100 | // Constructor of the class |
Jacinta | 35:34bbca276f99 | 101 | UserMethods::UserMethods(vector<log_data> vector, int num, ExpansionBoard sensor, bool lFlag, Mail<log_data, QUEUESIZE> mail) |
Jacinta | 21:849e5636076e | 102 | { |
Jacinta | 35:34bbca276f99 | 103 | logVector = &vector; |
Jacinta | 7:ed4a10ebe720 | 104 | n = # |
Jacinta | 15:a72b66e1f473 | 105 | e = &sensor; |
Jacinta | 20:014a808b3ea2 | 106 | flag = &lFlag; |
Jacinta | 7:ed4a10ebe720 | 107 | } |