Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependencies: X_NUCLEO_IKS01A1-f255a2c75ecb mbed-rtos mbed
userMethods.cpp@20:014a808b3ea2, 2016-05-17 (annotated)
- Committer:
- Jacinta
- Date:
- Tue May 17 18:35:34 2016 +0000
- Revision:
- 20:014a808b3ea2
- Parent:
- 15:a72b66e1f473
- Child:
- 21:849e5636076e
....
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 | 0:1eaebb55408a | 11 | |
Jacinta | 3:1f17245afc88 | 12 | void UserMethods::readAllData(const void*) { |
Jacinta | 7:ed4a10ebe720 | 13 | vector<log_data> vector = *v; |
Jacinta | 3:1f17245afc88 | 14 | |
Jacinta | 2:0b8065489409 | 15 | printf("Entered in readAllData"); |
Jacinta | 2:0b8065489409 | 16 | //TODO Serial not working |
Jacinta | 2:0b8065489409 | 17 | //Serial pc(USBTX, USBRX); |
Jacinta | 2:0b8065489409 | 18 | //pc.baud(115200); //For fast sampling rates |
Jacinta | 2:0b8065489409 | 19 | char buffer[32]; |
Jacinta | 2:0b8065489409 | 20 | |
Jacinta | 2:0b8065489409 | 21 | //.csv header |
Jacinta | 2:0b8065489409 | 22 | printf("Sample_Date,HTS221_Temp,LPS25H_Press,HTS221_Hum\n\r"); |
Jacinta | 7:ed4a10ebe720 | 23 | for(int i = 0; i < vector.size(); i++) |
Jacinta | 2:0b8065489409 | 24 | //TODO Add time here and read n |
Jacinta | 2:0b8065489409 | 25 | //.csv friendly format for logging |
Jacinta | 7:ed4a10ebe720 | 26 | printf("%s,%7s°C,%smbar,%s%%\n\r", ctime(&vector[i].date), ExpansionBoard::printDouble(buffer, vector[i].tempCelsius, 2), |
Jacinta | 7:ed4a10ebe720 | 27 | ExpansionBoard::printDouble(buffer, vector[i].pressure, 2), ExpansionBoard::printDouble(buffer, vector[i].humidity, 2)); |
Jacinta | 0:1eaebb55408a | 28 | } |
Jacinta | 0:1eaebb55408a | 29 | |
Jacinta | 3:1f17245afc88 | 30 | void UserMethods::readNData(const void*) { |
Jacinta | 7:ed4a10ebe720 | 31 | vector<log_data> vector = *v; |
Jacinta | 7:ed4a10ebe720 | 32 | int num = *n; |
Jacinta | 3:1f17245afc88 | 33 | |
Jacinta | 2:0b8065489409 | 34 | //Serial pc(USBTX, USBRX); |
Jacinta | 2:0b8065489409 | 35 | //pc.baud(115200); |
Jacinta | 2:0b8065489409 | 36 | printf("Sample_Date,HTS221_Temp,LPS25H_Press,HTS221_Hum\n\r"); |
Jacinta | 2:0b8065489409 | 37 | char buffer[32]; |
Jacinta | 7:ed4a10ebe720 | 38 | for(int i = vector.size()-num-1; i < vector.size(); i++) |
Jacinta | 7:ed4a10ebe720 | 39 | printf("%s,%7s°C,%smbar,%s%%\n\r", ctime(&vector[i].date), ExpansionBoard::printDouble(buffer, vector[i].tempCelsius, 2), |
Jacinta | 7:ed4a10ebe720 | 40 | ExpansionBoard::printDouble(buffer, vector[i].pressure, 2), ExpansionBoard::printDouble(buffer, vector[i].humidity, 2)); |
Jacinta | 0:1eaebb55408a | 41 | } |
Jacinta | 0:1eaebb55408a | 42 | |
Jacinta | 15:a72b66e1f473 | 43 | int UserMethods::deleteAllData(const void*) { |
Jacinta | 15:a72b66e1f473 | 44 | vector<log_data> vector = *v; |
Jacinta | 15:a72b66e1f473 | 45 | int num = vector.size(); |
Jacinta | 15:a72b66e1f473 | 46 | ExpansionBoard sensor = *e; |
Jacinta | 15:a72b66e1f473 | 47 | |
Jacinta | 15:a72b66e1f473 | 48 | for(int i = 0; i < vector.size(); i++){ |
Jacinta | 15:a72b66e1f473 | 49 | osEvent evt = sensor.mail_box.get(); |
Jacinta | 15:a72b66e1f473 | 50 | if (evt.status == osEventMail) { |
Jacinta | 15:a72b66e1f473 | 51 | log_data *log = (log_data*)evt.value.p; |
Jacinta | 15:a72b66e1f473 | 52 | sensor.mail_box.free(log); |
Jacinta | 15:a72b66e1f473 | 53 | } |
Jacinta | 15:a72b66e1f473 | 54 | } |
Jacinta | 15:a72b66e1f473 | 55 | |
Jacinta | 15:a72b66e1f473 | 56 | vector.clear(); |
Jacinta | 15:a72b66e1f473 | 57 | |
Jacinta | 15:a72b66e1f473 | 58 | return num; |
Jacinta | 15:a72b66e1f473 | 59 | } |
Jacinta | 15:a72b66e1f473 | 60 | |
Jacinta | 15:a72b66e1f473 | 61 | int UserMethods::deleteNData(const void*) { |
Jacinta | 15:a72b66e1f473 | 62 | vector<log_data> vector = *v; |
Jacinta | 15:a72b66e1f473 | 63 | int num = (int)vector.size(); |
Jacinta | 15:a72b66e1f473 | 64 | int nOfRecords = *n; |
Jacinta | 15:a72b66e1f473 | 65 | ExpansionBoard sensor = *e; |
Jacinta | 15:a72b66e1f473 | 66 | |
Jacinta | 15:a72b66e1f473 | 67 | if(nOfRecords >= num){ |
Jacinta | 15:a72b66e1f473 | 68 | //nOfRecords = UserMethods::deleteAllData; |
Jacinta | 15:a72b66e1f473 | 69 | return nOfRecords; |
Jacinta | 15:a72b66e1f473 | 70 | }else{ |
Jacinta | 15:a72b66e1f473 | 71 | for(int i = 0; i < nOfRecords; i++){ |
Jacinta | 15:a72b66e1f473 | 72 | osEvent evt = sensor.mail_box.get(); |
Jacinta | 15:a72b66e1f473 | 73 | if (evt.status == osEventMail) { |
Jacinta | 15:a72b66e1f473 | 74 | log_data *log = (log_data*)evt.value.p; |
Jacinta | 15:a72b66e1f473 | 75 | sensor.mail_box.free(log); |
Jacinta | 15:a72b66e1f473 | 76 | } |
Jacinta | 15:a72b66e1f473 | 77 | } |
Jacinta | 15:a72b66e1f473 | 78 | //Erases the first n elements |
Jacinta | 15:a72b66e1f473 | 79 | //vector.erase(v.begin(), v.begin() + nOfRecords); |
Jacinta | 15:a72b66e1f473 | 80 | } |
Jacinta | 15:a72b66e1f473 | 81 | |
Jacinta | 15:a72b66e1f473 | 82 | return nOfRecords; |
Jacinta | 15:a72b66e1f473 | 83 | } |
Jacinta | 15:a72b66e1f473 | 84 | |
Jacinta | 7:ed4a10ebe720 | 85 | void UserMethods::logging(const void*) { return; } |
Jacinta | 7:ed4a10ebe720 | 86 | |
Jacinta | 20:014a808b3ea2 | 87 | UserMethods::UserMethods(vector<log_data> vector, int num, ExpansionBoard sensor, bool lFlag) { |
Jacinta | 7:ed4a10ebe720 | 88 | v = &vector; |
Jacinta | 7:ed4a10ebe720 | 89 | n = # |
Jacinta | 15:a72b66e1f473 | 90 | e = &sensor; |
Jacinta | 20:014a808b3ea2 | 91 | flag = &lFlag; |
Jacinta | 7:ed4a10ebe720 | 92 | } |