trabalho

Dependencies:   X_NUCLEO_IKS01A1 mbed-rtos mbed

Fork of HelloWorld_IKS01A1 by ST

Committer:
Jacinta
Date:
Tue May 10 11:19:21 2016 +0000
Revision:
33:115aa467b4fa
Parent:
32:6e0266e7f205
.

Who changed what in which revision?

UserRevisionLine numberNew 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 };