trabalho final
Dependencies: X_NUCLEO_IKS01A1-f255a2c75ecb mbed-rtos mbed
userMethods.cpp@21:849e5636076e, 2016-05-17 (annotated)
- Committer:
- Jacinta
- Date:
- Tue May 17 21:19:57 2016 +0000
- Revision:
- 21:849e5636076e
- Parent:
- 20:014a808b3ea2
- Child:
- 25:2197b8bb930c
- Child:
- 26:3aad7d411eb0
Sampling done
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 | 7:ed4a10ebe720 | 8 | vector<log_data> * UserMethods::v; |
Jacinta | 7:ed4a10ebe720 | 9 | int * UserMethods::n; |
Jacinta | 15:a72b66e1f473 | 10 | ExpansionBoard * UserMethods::e; |
Jacinta | 21:849e5636076e | 11 | bool UserMethods::flag; |
Jacinta | 0:1eaebb55408a | 12 | |
Jacinta | 21:849e5636076e | 13 | void UserMethods::readAllData(const void*) |
Jacinta | 21:849e5636076e | 14 | { |
Jacinta | 7:ed4a10ebe720 | 15 | vector<log_data> vector = *v; |
Jacinta | 21:849e5636076e | 16 | |
Jacinta | 21:849e5636076e | 17 | if(flag) { |
Jacinta | 21:849e5636076e | 18 | printf("Entered in readAllData"); |
Jacinta | 21:849e5636076e | 19 | } |
Jacinta | 2:0b8065489409 | 20 | //TODO Serial not working |
Jacinta | 2:0b8065489409 | 21 | //Serial pc(USBTX, USBRX); |
Jacinta | 2:0b8065489409 | 22 | //pc.baud(115200); //For fast sampling rates |
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++) |
Jacinta | 2:0b8065489409 | 30 | //TODO Add time here and read n |
Jacinta | 2:0b8065489409 | 31 | //.csv friendly format for logging |
Jacinta | 7:ed4a10ebe720 | 32 | printf("%s,%7s°C,%smbar,%s%%\n\r", ctime(&vector[i].date), ExpansionBoard::printDouble(buffer, vector[i].tempCelsius, 2), |
Jacinta | 21:849e5636076e | 33 | ExpansionBoard::printDouble(buffer, vector[i].pressure, 2), ExpansionBoard::printDouble(buffer, vector[i].humidity, 2)); |
Jacinta | 0:1eaebb55408a | 34 | } |
Jacinta | 0:1eaebb55408a | 35 | |
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 | |
Jacinta | 21:849e5636076e | 52 | int UserMethods::deleteAllData(const void*) |
Jacinta | 21:849e5636076e | 53 | { |
Jacinta | 21:849e5636076e | 54 | vector<log_data> vector = *v; |
Jacinta | 15:a72b66e1f473 | 55 | int num = vector.size(); |
Jacinta | 15:a72b66e1f473 | 56 | ExpansionBoard sensor = *e; |
Jacinta | 21:849e5636076e | 57 | |
Jacinta | 21:849e5636076e | 58 | for(int i = 0; i < vector.size(); i++) { |
Jacinta | 15:a72b66e1f473 | 59 | osEvent evt = sensor.mail_box.get(); |
Jacinta | 15:a72b66e1f473 | 60 | if (evt.status == osEventMail) { |
Jacinta | 21:849e5636076e | 61 | log_data *log = (log_data*)evt.value.p; |
Jacinta | 21:849e5636076e | 62 | sensor.mail_box.free(log); |
Jacinta | 15:a72b66e1f473 | 63 | } |
Jacinta | 15:a72b66e1f473 | 64 | } |
Jacinta | 21:849e5636076e | 65 | |
Jacinta | 21:849e5636076e | 66 | vector.clear(); |
Jacinta | 21:849e5636076e | 67 | |
Jacinta | 15:a72b66e1f473 | 68 | return num; |
Jacinta | 15:a72b66e1f473 | 69 | } |
Jacinta | 15:a72b66e1f473 | 70 | |
Jacinta | 21:849e5636076e | 71 | int UserMethods::deleteNData(const void*) |
Jacinta | 21:849e5636076e | 72 | { |
Jacinta | 21:849e5636076e | 73 | vector<log_data> vector = *v; |
Jacinta | 21:849e5636076e | 74 | int num = (int)vector.size(); |
Jacinta | 15:a72b66e1f473 | 75 | int nOfRecords = *n; |
Jacinta | 15:a72b66e1f473 | 76 | ExpansionBoard sensor = *e; |
Jacinta | 21:849e5636076e | 77 | |
Jacinta | 21:849e5636076e | 78 | if(nOfRecords >= num) { |
Jacinta | 15:a72b66e1f473 | 79 | //nOfRecords = UserMethods::deleteAllData; |
Jacinta | 15:a72b66e1f473 | 80 | return nOfRecords; |
Jacinta | 21:849e5636076e | 81 | } else { |
Jacinta | 21:849e5636076e | 82 | for(int i = 0; i < nOfRecords; i++) { |
Jacinta | 15:a72b66e1f473 | 83 | osEvent evt = sensor.mail_box.get(); |
Jacinta | 15:a72b66e1f473 | 84 | if (evt.status == osEventMail) { |
Jacinta | 21:849e5636076e | 85 | log_data *log = (log_data*)evt.value.p; |
Jacinta | 21:849e5636076e | 86 | sensor.mail_box.free(log); |
Jacinta | 21:849e5636076e | 87 | } |
Jacinta | 21:849e5636076e | 88 | } |
Jacinta | 15:a72b66e1f473 | 89 | //Erases the first n elements |
Jacinta | 21:849e5636076e | 90 | //vector.erase(v.begin(), v.begin() + nOfRecords); |
Jacinta | 15:a72b66e1f473 | 91 | } |
Jacinta | 21:849e5636076e | 92 | |
Jacinta | 15:a72b66e1f473 | 93 | return nOfRecords; |
Jacinta | 15:a72b66e1f473 | 94 | } |
Jacinta | 15:a72b66e1f473 | 95 | |
Jacinta | 21:849e5636076e | 96 | void UserMethods::logging(const void*) |
Jacinta | 21:849e5636076e | 97 | { |
Jacinta | 21:849e5636076e | 98 | return; |
Jacinta | 21:849e5636076e | 99 | } |
Jacinta | 7:ed4a10ebe720 | 100 | |
Jacinta | 21:849e5636076e | 101 | UserMethods::UserMethods(vector<log_data> vector, int num, ExpansionBoard sensor, bool lFlag) |
Jacinta | 21:849e5636076e | 102 | { |
Jacinta | 7:ed4a10ebe720 | 103 | v = &vector; |
Jacinta | 7:ed4a10ebe720 | 104 | n = # |
Jacinta | 15:a72b66e1f473 | 105 | e = &sensor; |
Jacinta | 20:014a808b3ea2 | 106 | flag = &lFlag; |
Jacinta | 7:ed4a10ebe720 | 107 | } |