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