trabalho final
Dependencies: X_NUCLEO_IKS01A1-f255a2c75ecb mbed-rtos mbed
userMethods.cpp@25:2197b8bb930c, 2016-05-17 (annotated)
- Committer:
- nlsantos
- Date:
- Tue May 17 21:59:20 2016 +0000
- Revision:
- 25:2197b8bb930c
- Parent:
- 21:849e5636076e
- Child:
- 30:b1d50b25d87e
- Child:
- 31:8bbdfea60151
COMMENTS COMPLETED
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 | |
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 | { |
Jacinta | 7:ed4a10ebe720 | 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 | } |
Jacinta | 2:0b8065489409 | 22 | //TODO Serial not working |
Jacinta | 2:0b8065489409 | 23 | //Serial pc(USBTX, USBRX); |
Jacinta | 2:0b8065489409 | 24 | //pc.baud(115200); //For fast sampling rates |
Jacinta | 2:0b8065489409 | 25 | char buffer[32]; |
Jacinta | 21:849e5636076e | 26 | |
Jacinta | 2:0b8065489409 | 27 | //.csv header |
Jacinta | 21:849e5636076e | 28 | if(flag) { |
Jacinta | 21:849e5636076e | 29 | printf("Sample_Date,HTS221_Temp,LPS25H_Press,HTS221_Hum\n\r"); |
Jacinta | 21:849e5636076e | 30 | } |
Jacinta | 7:ed4a10ebe720 | 31 | for(int i = 0; i < vector.size(); i++) |
Jacinta | 2:0b8065489409 | 32 | //TODO Add time here and read n |
Jacinta | 2:0b8065489409 | 33 | //.csv friendly format for logging |
Jacinta | 7:ed4a10ebe720 | 34 | printf("%s,%7s°C,%smbar,%s%%\n\r", ctime(&vector[i].date), ExpansionBoard::printDouble(buffer, vector[i].tempCelsius, 2), |
Jacinta | 21:849e5636076e | 35 | ExpansionBoard::printDouble(buffer, vector[i].pressure, 2), ExpansionBoard::printDouble(buffer, vector[i].humidity, 2)); |
Jacinta | 0:1eaebb55408a | 36 | } |
Jacinta | 0:1eaebb55408a | 37 | |
nlsantos | 25:2197b8bb930c | 38 | // Method to proccess Read <n> command |
Jacinta | 21:849e5636076e | 39 | void UserMethods::readNData(const void*) |
Jacinta | 21:849e5636076e | 40 | { |
Jacinta | 7:ed4a10ebe720 | 41 | vector<log_data> vector = *v; |
Jacinta | 7:ed4a10ebe720 | 42 | int num = *n; |
Jacinta | 21:849e5636076e | 43 | |
Jacinta | 2:0b8065489409 | 44 | //Serial pc(USBTX, USBRX); |
Jacinta | 2:0b8065489409 | 45 | //pc.baud(115200); |
Jacinta | 21:849e5636076e | 46 | if(flag) { |
Jacinta | 21:849e5636076e | 47 | printf("Sample_Date,HTS221_Temp,LPS25H_Press,HTS221_Hum\n\r"); |
Jacinta | 21:849e5636076e | 48 | } |
Jacinta | 2:0b8065489409 | 49 | char buffer[32]; |
Jacinta | 7:ed4a10ebe720 | 50 | for(int i = vector.size()-num-1; i < vector.size(); i++) |
Jacinta | 7:ed4a10ebe720 | 51 | printf("%s,%7s°C,%smbar,%s%%\n\r", ctime(&vector[i].date), ExpansionBoard::printDouble(buffer, vector[i].tempCelsius, 2), |
Jacinta | 21:849e5636076e | 52 | ExpansionBoard::printDouble(buffer, vector[i].pressure, 2), ExpansionBoard::printDouble(buffer, vector[i].humidity, 2)); |
Jacinta | 0:1eaebb55408a | 53 | } |
Jacinta | 0:1eaebb55408a | 54 | |
nlsantos | 25:2197b8bb930c | 55 | |
nlsantos | 25:2197b8bb930c | 56 | // Method that proccesses the DeleteAll command |
Jacinta | 21:849e5636076e | 57 | int UserMethods::deleteAllData(const void*) |
Jacinta | 21:849e5636076e | 58 | { |
Jacinta | 21:849e5636076e | 59 | vector<log_data> vector = *v; |
Jacinta | 15:a72b66e1f473 | 60 | int num = vector.size(); |
Jacinta | 15:a72b66e1f473 | 61 | ExpansionBoard sensor = *e; |
Jacinta | 21:849e5636076e | 62 | |
Jacinta | 21:849e5636076e | 63 | for(int i = 0; i < vector.size(); i++) { |
Jacinta | 15:a72b66e1f473 | 64 | osEvent evt = sensor.mail_box.get(); |
Jacinta | 15:a72b66e1f473 | 65 | if (evt.status == osEventMail) { |
Jacinta | 21:849e5636076e | 66 | log_data *log = (log_data*)evt.value.p; |
Jacinta | 21:849e5636076e | 67 | sensor.mail_box.free(log); |
Jacinta | 15:a72b66e1f473 | 68 | } |
Jacinta | 15:a72b66e1f473 | 69 | } |
Jacinta | 21:849e5636076e | 70 | |
Jacinta | 21:849e5636076e | 71 | vector.clear(); |
Jacinta | 21:849e5636076e | 72 | |
Jacinta | 15:a72b66e1f473 | 73 | return num; |
Jacinta | 15:a72b66e1f473 | 74 | } |
Jacinta | 15:a72b66e1f473 | 75 | |
nlsantos | 25:2197b8bb930c | 76 | // Method thar proccesses the Read<n> command |
Jacinta | 21:849e5636076e | 77 | int UserMethods::deleteNData(const void*) |
Jacinta | 21:849e5636076e | 78 | { |
Jacinta | 21:849e5636076e | 79 | vector<log_data> vector = *v; |
Jacinta | 21:849e5636076e | 80 | int num = (int)vector.size(); |
Jacinta | 15:a72b66e1f473 | 81 | int nOfRecords = *n; |
Jacinta | 15:a72b66e1f473 | 82 | ExpansionBoard sensor = *e; |
Jacinta | 21:849e5636076e | 83 | |
Jacinta | 21:849e5636076e | 84 | if(nOfRecords >= num) { |
Jacinta | 15:a72b66e1f473 | 85 | //nOfRecords = UserMethods::deleteAllData; |
Jacinta | 15:a72b66e1f473 | 86 | return nOfRecords; |
Jacinta | 21:849e5636076e | 87 | } else { |
Jacinta | 21:849e5636076e | 88 | for(int i = 0; i < nOfRecords; i++) { |
Jacinta | 15:a72b66e1f473 | 89 | osEvent evt = sensor.mail_box.get(); |
Jacinta | 15:a72b66e1f473 | 90 | if (evt.status == osEventMail) { |
Jacinta | 21:849e5636076e | 91 | log_data *log = (log_data*)evt.value.p; |
Jacinta | 21:849e5636076e | 92 | sensor.mail_box.free(log); |
Jacinta | 21:849e5636076e | 93 | } |
Jacinta | 21:849e5636076e | 94 | } |
Jacinta | 15:a72b66e1f473 | 95 | //Erases the first n elements |
Jacinta | 21:849e5636076e | 96 | //vector.erase(v.begin(), v.begin() + nOfRecords); |
Jacinta | 15:a72b66e1f473 | 97 | } |
Jacinta | 21:849e5636076e | 98 | |
Jacinta | 15:a72b66e1f473 | 99 | return nOfRecords; |
Jacinta | 15:a72b66e1f473 | 100 | } |
Jacinta | 15:a72b66e1f473 | 101 | |
nlsantos | 25:2197b8bb930c | 102 | // Constructor of the class |
Jacinta | 21:849e5636076e | 103 | UserMethods::UserMethods(vector<log_data> vector, int num, ExpansionBoard sensor, bool lFlag) |
Jacinta | 21:849e5636076e | 104 | { |
Jacinta | 7:ed4a10ebe720 | 105 | v = &vector; |
Jacinta | 7:ed4a10ebe720 | 106 | n = # |
Jacinta | 15:a72b66e1f473 | 107 | e = &sensor; |
Jacinta | 20:014a808b3ea2 | 108 | flag = &lFlag; |
Jacinta | 7:ed4a10ebe720 | 109 | } |