trabalho
Dependencies: X_NUCLEO_IKS01A1 mbed-rtos mbed
Fork of HelloWorld_IKS01A1 by
userInteractions.cpp@33:115aa467b4fa, 2016-05-10 (annotated)
- Committer:
- Jacinta
- Date:
- Tue May 10 11:19:21 2016 +0000
- Revision:
- 33:115aa467b4fa
- Parent:
- 32:6e0266e7f205
.
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
Jacinta | 31:eb7320bd1d37 | 1 | #include "mailBox.cpp" |
Jacinta | 31:eb7320bd1d37 | 2 | #include "expansionBoard.cpp" |
Jacinta | 29:f96590e6058d | 3 | |
Jacinta | 29:f96590e6058d | 4 | struct tm t; |
Jacinta | 29:f96590e6058d | 5 | |
Jacinta | 29:f96590e6058d | 6 | class UserMethods { |
Jacinta | 29:f96590e6058d | 7 | |
Jacinta | 29:f96590e6058d | 8 | public: |
Jacinta | 29:f96590e6058d | 9 | |
Jacinta | 29:f96590e6058d | 10 | int readAll() { |
Jacinta | 31:eb7320bd1d37 | 11 | ExpansionBoard logs; |
Jacinta | 31:eb7320bd1d37 | 12 | int nOfRecords = logs.count; |
Jacinta | 29:f96590e6058d | 13 | |
Jacinta | 31:eb7320bd1d37 | 14 | while(nOfRecords > 0) { |
Jacinta | 31:eb7320bd1d37 | 15 | osEvent evt = mail_box.get(); |
Jacinta | 29:f96590e6058d | 16 | |
Jacinta | 31:eb7320bd1d37 | 17 | if (evt.status == osEventMail) { |
Jacinta | 31:eb7320bd1d37 | 18 | log_data* log = (log_data*)evt.value.p; |
Jacinta | 31:eb7320bd1d37 | 19 | printf("Record %d \nDate: %s, Temp Celcius: %f, Temp Farenheit: %f, Humidity: %f, " |
Jacinta | 31:eb7320bd1d37 | 20 | "Pressure: %f, Accelerometer: %d, Gyroscope: %d, Magnetometer: %d\n\n", log->id, |
Jacinta | 31:eb7320bd1d37 | 21 | log->date, log->tempCelsius, log->tempFarenheit, log->humidity, |
Jacinta | 31:eb7320bd1d37 | 22 | log->pressure, log->accelerometer, log->gyroscope, log->magnetometer); |
Jacinta | 31:eb7320bd1d37 | 23 | |
Jacinta | 31:eb7320bd1d37 | 24 | nOfRecords--; |
Jacinta | 31:eb7320bd1d37 | 25 | } |
Jacinta | 29:f96590e6058d | 26 | } |
Jacinta | 29:f96590e6058d | 27 | |
Jacinta | 31:eb7320bd1d37 | 28 | return logs.count; |
Jacinta | 29:f96590e6058d | 29 | } |
Jacinta | 29:f96590e6058d | 30 | |
Jacinta | 29:f96590e6058d | 31 | int deleteAll() { |
Jacinta | 32:6e0266e7f205 | 32 | ExpansionBoard logs; |
Jacinta | 32:6e0266e7f205 | 33 | int n = logs.count; |
Jacinta | 32:6e0266e7f205 | 34 | |
Jacinta | 32:6e0266e7f205 | 35 | while(n > 0) { |
Jacinta | 32:6e0266e7f205 | 36 | osEvent evt = mail_box.get(); |
Jacinta | 32:6e0266e7f205 | 37 | if (evt.status == osEventMail) { |
Jacinta | 32:6e0266e7f205 | 38 | log_data *log_d = (log_data*)evt.value.p; |
Jacinta | 32:6e0266e7f205 | 39 | mail_box.free(log_d); |
Jacinta | 32:6e0266e7f205 | 40 | } |
Jacinta | 32:6e0266e7f205 | 41 | n--; |
Jacinta | 32:6e0266e7f205 | 42 | } |
Jacinta | 32:6e0266e7f205 | 43 | return logs.count; |
Jacinta | 29:f96590e6058d | 44 | } |
Jacinta | 29:f96590e6058d | 45 | |
Jacinta | 29:f96590e6058d | 46 | int readN(int n) { |
Jacinta | 31:eb7320bd1d37 | 47 | ExpansionBoard logs; |
Jacinta | 29:f96590e6058d | 48 | int nOfRecords = 0; |
Jacinta | 29:f96590e6058d | 49 | |
Jacinta | 31:eb7320bd1d37 | 50 | if(logs.count < n) { |
Jacinta | 31:eb7320bd1d37 | 51 | nOfRecords = readAll(); |
Jacinta | 31:eb7320bd1d37 | 52 | } else { |
Jacinta | 31:eb7320bd1d37 | 53 | while(nOfRecords < n) { |
Jacinta | 31:eb7320bd1d37 | 54 | osEvent evt = mail_box.get(); |
Jacinta | 31:eb7320bd1d37 | 55 | |
Jacinta | 31:eb7320bd1d37 | 56 | if (evt.status == osEventMail) { |
Jacinta | 31:eb7320bd1d37 | 57 | log_data* log = (log_data*)evt.value.p; |
Jacinta | 31:eb7320bd1d37 | 58 | printf("Record %d \nDate: %s, Temp Celcius: %f, Temp Farenheit: %f, Humidity: %f, " |
Jacinta | 31:eb7320bd1d37 | 59 | "Pressure: %f, Accelerometer: %d, Gyroscope: %d, Magnetometer: %d\n\n", log->id, |
Jacinta | 31:eb7320bd1d37 | 60 | log->date, log->tempCelsius, log->tempFarenheit, log->humidity, |
Jacinta | 31:eb7320bd1d37 | 61 | log->pressure, log->accelerometer, log->gyroscope, log->magnetometer); |
Jacinta | 31:eb7320bd1d37 | 62 | |
Jacinta | 31:eb7320bd1d37 | 63 | nOfRecords--; |
Jacinta | 31:eb7320bd1d37 | 64 | } |
Jacinta | 31:eb7320bd1d37 | 65 | } |
Jacinta | 29:f96590e6058d | 66 | } |
Jacinta | 29:f96590e6058d | 67 | |
Jacinta | 29:f96590e6058d | 68 | return nOfRecords; |
Jacinta | 29:f96590e6058d | 69 | } |
Jacinta | 29:f96590e6058d | 70 | |
Jacinta | 29:f96590e6058d | 71 | int deleteN(int n) { |
Jacinta | 32:6e0266e7f205 | 72 | ExpansionBoard logs; |
Jacinta | 32:6e0266e7f205 | 73 | |
Jacinta | 32:6e0266e7f205 | 74 | if(logs.count < n){ |
Jacinta | 32:6e0266e7f205 | 75 | n = deleteAll(); |
Jacinta | 32:6e0266e7f205 | 76 | } else { |
Jacinta | 32:6e0266e7f205 | 77 | while(n > 0) { |
Jacinta | 32:6e0266e7f205 | 78 | osEvent evt = mail_box.get(); |
Jacinta | 32:6e0266e7f205 | 79 | if (evt.status == osEventMail) { |
Jacinta | 32:6e0266e7f205 | 80 | log_data *log_d = (log_data*)evt.value.p; |
Jacinta | 32:6e0266e7f205 | 81 | mail_box.free(log_d); |
Jacinta | 32:6e0266e7f205 | 82 | } |
Jacinta | 32:6e0266e7f205 | 83 | n--; |
Jacinta | 32:6e0266e7f205 | 84 | } |
Jacinta | 32:6e0266e7f205 | 85 | } |
Jacinta | 29:f96590e6058d | 86 | return n; |
Jacinta | 29:f96590e6058d | 87 | } |
Jacinta | 29:f96590e6058d | 88 | |
Jacinta | 29:f96590e6058d | 89 | bool setDate() { |
Jacinta | 29:f96590e6058d | 90 | bool success; |
Jacinta | 29:f96590e6058d | 91 | printf("Enter current date : \n"); |
Jacinta | 29:f96590e6058d | 92 | printf( "YYYY MM DD [enter] \n"); |
Jacinta | 29:f96590e6058d | 93 | scanf ("%d %d %d", &t.tm_year, &t.tm_mon, &t.tm_mday); |
Jacinta | 29:f96590e6058d | 94 | |
Jacinta | 29:f96590e6058d | 95 | // adjust for tm structure required values |
Jacinta | 29:f96590e6058d | 96 | t.tm_year = t.tm_year - 1900; |
Jacinta | 29:f96590e6058d | 97 | t.tm_mon = t.tm_mon - 1; |
Jacinta | 29:f96590e6058d | 98 | // set the time |
Jacinta | 29:f96590e6058d | 99 | set_time(mktime(&t)); |
Jacinta | 29:f96590e6058d | 100 | success= true; |
Jacinta | 29:f96590e6058d | 101 | |
Jacinta | 29:f96590e6058d | 102 | return success; |
Jacinta | 29:f96590e6058d | 103 | } |
Jacinta | 29:f96590e6058d | 104 | |
Jacinta | 29:f96590e6058d | 105 | bool setTime () { |
Jacinta | 29:f96590e6058d | 106 | bool success = false; |
Jacinta | 29:f96590e6058d | 107 | |
Jacinta | 29:f96590e6058d | 108 | // get the current time from the terminal |
Jacinta | 29:f96590e6058d | 109 | printf("Enter current time:\n"); |
Jacinta | 29:f96590e6058d | 110 | printf("HH MM SS[enter]\n"); |
Jacinta | 29:f96590e6058d | 111 | scanf("%d %d %d", &t.tm_hour, &t.tm_min, &t.tm_sec); |
Jacinta | 29:f96590e6058d | 112 | |
Jacinta | 29:f96590e6058d | 113 | printf("TIME UPDATED TO %d:%d:%d\n", t.tm_hour, t.tm_min, t.tm_sec); |
Jacinta | 29:f96590e6058d | 114 | |
Jacinta | 29:f96590e6058d | 115 | // set the time |
Jacinta | 29:f96590e6058d | 116 | set_time(mktime(&t)); |
Jacinta | 29:f96590e6058d | 117 | success = true; |
Jacinta | 29:f96590e6058d | 118 | |
Jacinta | 29:f96590e6058d | 119 | return success; |
Jacinta | 29:f96590e6058d | 120 | } |
Jacinta | 29:f96590e6058d | 121 | |
Jacinta | 29:f96590e6058d | 122 | void setT(int timePeriod) { |
Jacinta | 29:f96590e6058d | 123 | scanf("Enter sampling period: %d\n", &timePeriod); |
Jacinta | 29:f96590e6058d | 124 | } |
Jacinta | 29:f96590e6058d | 125 | /* |
Jacinta | 29:f96590e6058d | 126 | void state(char x){ |
Jacinta | 29:f96590e6058d | 127 | printf("Sampling is %s\n", x); |
Jacinta | 29:f96590e6058d | 128 | printf("Enter state:\n"); |
Jacinta | 29:f96590e6058d | 129 | scanf("%s", x); |
Jacinta | 29:f96590e6058d | 130 | }*/ |
Jacinta | 29:f96590e6058d | 131 | |
Jacinta | 29:f96590e6058d | 132 | bool logTime (int time, bool state) { |
Jacinta | 29:f96590e6058d | 133 | return state; |
Jacinta | 29:f96590e6058d | 134 | } |
Jacinta | 29:f96590e6058d | 135 | |
Jacinta | 29:f96590e6058d | 136 | bool debugMessages (bool state) { |
Jacinta | 29:f96590e6058d | 137 | return state; |
Jacinta | 29:f96590e6058d | 138 | } |
Jacinta | 29:f96590e6058d | 139 | |
Jacinta | 29:f96590e6058d | 140 | bool logging(bool state) { |
Jacinta | 29:f96590e6058d | 141 | return state; |
Jacinta | 29:f96590e6058d | 142 | } |
Jacinta | 29:f96590e6058d | 143 | |
Jacinta | 29:f96590e6058d | 144 | }; |