Comments added

Dependencies:   Peripherals Buffer_lib_v2 SD_Lib_EffedUP_ERP Time_Lib_v2 Year3_Version5 BMP280 Network_Lib TextLCD BME280

Committer:
cgogay
Date:
Fri Nov 23 14:20:10 2018 +0000
Revision:
7:981670f59caf
Parent:
6:2ef9c06ce506
Child:
8:dde5976445b4
Serial protocol, requirement 7,  threaded

Who changed what in which revision?

UserRevisionLine numberNew contents of line
noutram 0:90e393878517 1 #include "mbed.h"
emilytrembeth 4:da63962bc0f1 2 #include "TextLCD.h"
emilytrembeth 4:da63962bc0f1 3 #include "SDBlockDevice.h"
emilytrembeth 4:da63962bc0f1 4 #include "FATFileSystem.h"
emilytrembeth 4:da63962bc0f1 5 #include "sample_hardware.hpp"
noutram 0:90e393878517 6
emilytrembeth 5:60e116a1e913 7 #define Day 1
emilytrembeth 5:60e116a1e913 8 #define Month 2
emilytrembeth 5:60e116a1e913 9 #define Year 3
emilytrembeth 5:60e116a1e913 10 #define Hour 4
emilytrembeth 5:60e116a1e913 11 #define Minute 5
emilytrembeth 5:60e116a1e913 12 #define Second 6
emilytrembeth 5:60e116a1e913 13
noutram 0:90e393878517 14 //Function declarations
emilytrembeth 4:da63962bc0f1 15 void displayOnLcd();
emilytrembeth 4:da63962bc0f1 16 void updateRealTimeClock(char *buffer);
emilytrembeth 4:da63962bc0f1 17 void getLineFromSerial(char *keyBuffer, int bufferLength);
emilytrembeth 4:da63962bc0f1 18 void displayMessageOnConsole();
emilytrembeth 5:60e116a1e913 19 void SetingTimeWithButtons ();
emilytrembeth 5:60e116a1e913 20 void FunctionSensor();
emilytrembeth 5:60e116a1e913 21 void FunctionTime();
cgogay 7:981670f59caf 22 void FunctionSerial();
noutram 0:90e393878517 23
emilytrembeth 4:da63962bc0f1 24 TextLCD lcd(D9, D8, D7, D6, D4, D2); // rs, e, d4-d7
emilytrembeth 4:da63962bc0f1 25 SDBlockDevice sd(PB_5, D12, D13, D10); // mosi, miso, sclk, cs
emilytrembeth 4:da63962bc0f1 26 Serial pc(SERIAL_TX, SERIAL_RX);
emilytrembeth 4:da63962bc0f1 27 time_t currentTime;
emilytrembeth 4:da63962bc0f1 28 char lcdBuffer[32];
emilytrembeth 4:da63962bc0f1 29 DigitalOut myled(LED1);
emilytrembeth 4:da63962bc0f1 30 Ticker ticker;
emilytrembeth 4:da63962bc0f1 31 DigitalIn SWUser(USER_BUTTON);
emilytrembeth 4:da63962bc0f1 32 Mutex date_mutex;
emilytrembeth 5:60e116a1e913 33 int setting;
emilytrembeth 5:60e116a1e913 34 int t;
emilytrembeth 5:60e116a1e913 35 //InterruptIn SW1;
noutram 0:90e393878517 36
noutram 1:948bd552a2a2 37 Thread t1;
noutram 1:948bd552a2a2 38 Thread t2;
cgogay 7:981670f59caf 39 Thread t3;
cgogay 7:981670f59caf 40
cgogay 7:981670f59caf 41
cgogay 7:981670f59caf 42 //LDR sensor
cgogay 7:981670f59caf 43 AnalogIn LDD_ADC_In(A1);
cgogay 7:981670f59caf 44 float fLDR = 0.0;
cgogay 7:981670f59caf 45 float volts = 0.0;
cgogay 7:981670f59caf 46
emilytrembeth 4:da63962bc0f1 47
emilytrembeth 4:da63962bc0f1 48
cgogay 6:2ef9c06ce506 49 //Main thread
cgogay 6:2ef9c06ce506 50 int main() {
cgogay 6:2ef9c06ce506 51
cgogay 6:2ef9c06ce506 52 lcd.printf("Select Time Option\n\n");
cgogay 6:2ef9c06ce506 53
cgogay 6:2ef9c06ce506 54 post();
cgogay 6:2ef9c06ce506 55
cgogay 6:2ef9c06ce506 56 //Initialise the SD card
cgogay 6:2ef9c06ce506 57 if ( sd.init() != 0) {
cgogay 6:2ef9c06ce506 58 printf("Init failed \n");
cgogay 6:2ef9c06ce506 59 errorCode(FATAL);
cgogay 6:2ef9c06ce506 60 }
cgogay 6:2ef9c06ce506 61
cgogay 6:2ef9c06ce506 62 //Create a filing system for SD Card
cgogay 6:2ef9c06ce506 63 FATFileSystem fs("sd", &sd);
cgogay 6:2ef9c06ce506 64
cgogay 6:2ef9c06ce506 65 //Open to WRITE
cgogay 6:2ef9c06ce506 66 FILE* fp = fopen("/sd/test.csv","a");
cgogay 6:2ef9c06ce506 67 if (fp == NULL) {
cgogay 6:2ef9c06ce506 68 error("Could not open file for write\n");
cgogay 6:2ef9c06ce506 69 errorCode(FATAL);
cgogay 6:2ef9c06ce506 70 }
cgogay 6:2ef9c06ce506 71
cgogay 6:2ef9c06ce506 72 // run threads
cgogay 6:2ef9c06ce506 73 t1.start(FunctionSensor);
cgogay 7:981670f59caf 74 t2.start(FunctionTime);
cgogay 7:981670f59caf 75 t3.start(FunctionSerial);
cgogay 6:2ef9c06ce506 76
cgogay 6:2ef9c06ce506 77 }
cgogay 6:2ef9c06ce506 78
cgogay 6:2ef9c06ce506 79
emilytrembeth 4:da63962bc0f1 80 void displayOnLcd() {
emilytrembeth 4:da63962bc0f1 81 date_mutex.lock();
emilytrembeth 4:da63962bc0f1 82
emilytrembeth 4:da63962bc0f1 83 myled = !myled;
emilytrembeth 4:da63962bc0f1 84
emilytrembeth 4:da63962bc0f1 85 currentTime = time(NULL);
emilytrembeth 5:60e116a1e913 86 strftime(lcdBuffer, 32, "%d/%m/%Y %H:%M:%S", localtime(&currentTime));
emilytrembeth 4:da63962bc0f1 87
emilytrembeth 4:da63962bc0f1 88 //lcd.cls();
emilytrembeth 5:60e116a1e913 89 // lcd.locate(0,0);
emilytrembeth 4:da63962bc0f1 90 pc.printf("%s\n\r", lcdBuffer);
emilytrembeth 4:da63962bc0f1 91
emilytrembeth 4:da63962bc0f1 92 myled = !myled;
emilytrembeth 4:da63962bc0f1 93 date_mutex.unlock();
emilytrembeth 4:da63962bc0f1 94 };
noutram 0:90e393878517 95
emilytrembeth 4:da63962bc0f1 96 void updateRealTimeClock(char *buffer) {
emilytrembeth 4:da63962bc0f1 97 date_mutex.lock();
emilytrembeth 4:da63962bc0f1 98
emilytrembeth 4:da63962bc0f1 99 char *tp;
emilytrembeth 4:da63962bc0f1 100 char *timeArray[6];
emilytrembeth 4:da63962bc0f1 101 int arrayIndex;
emilytrembeth 4:da63962bc0f1 102 struct tm struct_time;
emilytrembeth 4:da63962bc0f1 103
emilytrembeth 4:da63962bc0f1 104 // extract number from string
emilytrembeth 4:da63962bc0f1 105 arrayIndex = 0;
emilytrembeth 4:da63962bc0f1 106 tp = strtok( buffer, " /:-" );
emilytrembeth 4:da63962bc0f1 107 timeArray[arrayIndex++] = tp;
emilytrembeth 4:da63962bc0f1 108 printf("%d ", atoi(tp));
emilytrembeth 4:da63962bc0f1 109 while ( tp != NULL && arrayIndex < 6 ) {
emilytrembeth 4:da63962bc0f1 110 tp = strtok( NULL," /:-" );
emilytrembeth 4:da63962bc0f1 111 timeArray[arrayIndex++] = tp;
emilytrembeth 4:da63962bc0f1 112 if ( tp != NULL ) {
emilytrembeth 4:da63962bc0f1 113 printf("%d ", atoi(tp));
emilytrembeth 4:da63962bc0f1 114 }
emilytrembeth 4:da63962bc0f1 115 }
emilytrembeth 4:da63962bc0f1 116 printf("\r\n");
emilytrembeth 4:da63962bc0f1 117
emilytrembeth 4:da63962bc0f1 118 // store number into time struct
emilytrembeth 5:60e116a1e913 119 struct_time.tm_mday = atoi(timeArray[0]);
emilytrembeth 4:da63962bc0f1 120 struct_time.tm_mon = atoi(timeArray[1]) - 1;
emilytrembeth 5:60e116a1e913 121 struct_time.tm_year = atoi(timeArray[2]) - 1900;
emilytrembeth 4:da63962bc0f1 122 struct_time.tm_hour = atoi(timeArray[3]);
emilytrembeth 4:da63962bc0f1 123 struct_time.tm_min = atoi(timeArray[4]);
emilytrembeth 4:da63962bc0f1 124 struct_time.tm_sec = atoi(timeArray[5]);
emilytrembeth 4:da63962bc0f1 125
emilytrembeth 4:da63962bc0f1 126 currentTime = mktime(&struct_time);
emilytrembeth 4:da63962bc0f1 127 set_time(currentTime);
emilytrembeth 4:da63962bc0f1 128
emilytrembeth 4:da63962bc0f1 129 date_mutex.unlock();
emilytrembeth 4:da63962bc0f1 130 }
emilytrembeth 4:da63962bc0f1 131
emilytrembeth 4:da63962bc0f1 132 void getLineFromSerial(char *keyBuffer, int bufferLength)
emilytrembeth 4:da63962bc0f1 133 {
emilytrembeth 4:da63962bc0f1 134 date_mutex.lock();
emilytrembeth 4:da63962bc0f1 135
emilytrembeth 4:da63962bc0f1 136 char c;
emilytrembeth 4:da63962bc0f1 137 int index = 0;
emilytrembeth 4:da63962bc0f1 138
emilytrembeth 4:da63962bc0f1 139 for (;;) {
emilytrembeth 4:da63962bc0f1 140 // break if keyBuffer is full
emilytrembeth 4:da63962bc0f1 141 if (index >= bufferLength) {
emilytrembeth 4:da63962bc0f1 142 break;
emilytrembeth 4:da63962bc0f1 143 }
emilytrembeth 4:da63962bc0f1 144
emilytrembeth 4:da63962bc0f1 145 // read input
emilytrembeth 4:da63962bc0f1 146 c = pc.getc();
emilytrembeth 4:da63962bc0f1 147 //printf(" %d ", c);
emilytrembeth 4:da63962bc0f1 148 pc.putc(c);
emilytrembeth 4:da63962bc0f1 149
emilytrembeth 4:da63962bc0f1 150 // break if end
emilytrembeth 4:da63962bc0f1 151 if (c == '\r') {
emilytrembeth 4:da63962bc0f1 152 keyBuffer[index++] = c;
emilytrembeth 4:da63962bc0f1 153 printf("\n");
emilytrembeth 4:da63962bc0f1 154 break;
emilytrembeth 4:da63962bc0f1 155 }
emilytrembeth 4:da63962bc0f1 156
emilytrembeth 4:da63962bc0f1 157 // store in keyBuffer
emilytrembeth 4:da63962bc0f1 158 keyBuffer[index++] = c;
emilytrembeth 4:da63962bc0f1 159
emilytrembeth 4:da63962bc0f1 160 date_mutex.unlock();
emilytrembeth 4:da63962bc0f1 161 }
emilytrembeth 4:da63962bc0f1 162 }
emilytrembeth 4:da63962bc0f1 163
emilytrembeth 4:da63962bc0f1 164 void displayMessageOnConsole() {
emilytrembeth 4:da63962bc0f1 165 date_mutex.lock();
emilytrembeth 4:da63962bc0f1 166
emilytrembeth 4:da63962bc0f1 167 currentTime = time(NULL);
emilytrembeth 5:60e116a1e913 168 //strftime(lcdBuffer, 32, "%Y/%m/%d %H:%M:%S", localtime(&currentTime));
emilytrembeth 5:60e116a1e913 169 strftime(lcdBuffer, 32, "%d/%m/%Y %H:%M:%S", localtime(&currentTime));
emilytrembeth 4:da63962bc0f1 170
emilytrembeth 4:da63962bc0f1 171 printf("Current Time:%s\r\n", lcdBuffer);
emilytrembeth 5:60e116a1e913 172 printf("Enter new Time (dd/mm/YYYY HH:MM:SS)\r\n");
emilytrembeth 4:da63962bc0f1 173
emilytrembeth 4:da63962bc0f1 174 date_mutex.unlock();
emilytrembeth 4:da63962bc0f1 175 }
emilytrembeth 4:da63962bc0f1 176
emilytrembeth 5:60e116a1e913 177 void SetingTimeWithButtons () {
emilytrembeth 5:60e116a1e913 178
emilytrembeth 5:60e116a1e913 179 int day = 0;
emilytrembeth 5:60e116a1e913 180 int month = 0;
emilytrembeth 5:60e116a1e913 181 int year = 2017;
emilytrembeth 5:60e116a1e913 182 int hour = 0;
emilytrembeth 5:60e116a1e913 183 int min = 0;
emilytrembeth 5:60e116a1e913 184 int sec = 0;
emilytrembeth 5:60e116a1e913 185
emilytrembeth 5:60e116a1e913 186 setting = Day;
emilytrembeth 5:60e116a1e913 187 t = 1;
emilytrembeth 5:60e116a1e913 188
emilytrembeth 5:60e116a1e913 189 while(t == 1) {
emilytrembeth 5:60e116a1e913 190 switch (setting) {
emilytrembeth 5:60e116a1e913 191 case Day:
emilytrembeth 5:60e116a1e913 192 if (SW1 == 1) {
emilytrembeth 5:60e116a1e913 193 wait(0.2);
emilytrembeth 5:60e116a1e913 194 day = day + 1;
emilytrembeth 5:60e116a1e913 195 lcd.cls();
emilytrembeth 5:60e116a1e913 196 lcd.locate(0,0);
cgogay 6:2ef9c06ce506 197 lcd.printf("Day = %d\n", day);
emilytrembeth 5:60e116a1e913 198 }
emilytrembeth 5:60e116a1e913 199 if (SW2 == 1) {
emilytrembeth 5:60e116a1e913 200 setting = Month;
emilytrembeth 5:60e116a1e913 201 wait(0.5);
emilytrembeth 5:60e116a1e913 202 }
emilytrembeth 5:60e116a1e913 203 break;
emilytrembeth 5:60e116a1e913 204
emilytrembeth 5:60e116a1e913 205 case Month:
emilytrembeth 5:60e116a1e913 206 if (SW1 == 1) {
emilytrembeth 5:60e116a1e913 207 wait(0.2);
emilytrembeth 5:60e116a1e913 208 month = month + 1;
emilytrembeth 5:60e116a1e913 209 lcd.cls();
emilytrembeth 5:60e116a1e913 210 lcd.locate(0,0);
cgogay 6:2ef9c06ce506 211 lcd.printf("Month = %d\n", month);
emilytrembeth 5:60e116a1e913 212 }
emilytrembeth 5:60e116a1e913 213 if (SW2 == 1) {
emilytrembeth 5:60e116a1e913 214 setting = Year;
emilytrembeth 5:60e116a1e913 215 wait(0.5);
emilytrembeth 5:60e116a1e913 216 }
emilytrembeth 5:60e116a1e913 217 break;
emilytrembeth 5:60e116a1e913 218
emilytrembeth 5:60e116a1e913 219 case Year:
emilytrembeth 5:60e116a1e913 220 if (SW1 == 1) {
emilytrembeth 5:60e116a1e913 221 wait(0.2);
emilytrembeth 5:60e116a1e913 222 year = year + 1;
emilytrembeth 5:60e116a1e913 223 lcd.cls();
emilytrembeth 5:60e116a1e913 224 lcd.locate(0,0);
cgogay 6:2ef9c06ce506 225 lcd.printf("Year = %d\n", year);
emilytrembeth 5:60e116a1e913 226 }
emilytrembeth 5:60e116a1e913 227 if (SW2 == 1) {
emilytrembeth 5:60e116a1e913 228 setting = Hour;
emilytrembeth 5:60e116a1e913 229 wait(0.5);
emilytrembeth 5:60e116a1e913 230 }
emilytrembeth 5:60e116a1e913 231 break;
emilytrembeth 5:60e116a1e913 232
emilytrembeth 5:60e116a1e913 233 case Hour:
emilytrembeth 5:60e116a1e913 234 if (SW1 == 1) {
emilytrembeth 5:60e116a1e913 235 wait(0.2);
emilytrembeth 5:60e116a1e913 236 hour = hour + 1;
emilytrembeth 5:60e116a1e913 237 lcd.cls();
emilytrembeth 5:60e116a1e913 238 lcd.locate(0,0);
cgogay 6:2ef9c06ce506 239 lcd.printf("Hour = %d\n", hour);
emilytrembeth 5:60e116a1e913 240 }
emilytrembeth 5:60e116a1e913 241 if (SW2 == 1) {
emilytrembeth 5:60e116a1e913 242 setting = Minute;
emilytrembeth 5:60e116a1e913 243 wait(0.5);
emilytrembeth 5:60e116a1e913 244 }
emilytrembeth 5:60e116a1e913 245 break;
emilytrembeth 5:60e116a1e913 246
emilytrembeth 5:60e116a1e913 247 case Minute:
emilytrembeth 5:60e116a1e913 248 if (SW1 == 1) {
emilytrembeth 5:60e116a1e913 249 wait(0.2);
emilytrembeth 5:60e116a1e913 250 min = min + 1;
emilytrembeth 5:60e116a1e913 251 lcd.cls();
emilytrembeth 5:60e116a1e913 252 lcd.locate(0,0);
cgogay 6:2ef9c06ce506 253 lcd.printf("Minute = %d\n", min);
emilytrembeth 5:60e116a1e913 254 }
emilytrembeth 5:60e116a1e913 255 if (SW2 == 1) {
emilytrembeth 5:60e116a1e913 256 setting = Second;
emilytrembeth 5:60e116a1e913 257 wait(0.5);
emilytrembeth 5:60e116a1e913 258 }
emilytrembeth 5:60e116a1e913 259 break;
emilytrembeth 5:60e116a1e913 260
emilytrembeth 5:60e116a1e913 261 case Second:
emilytrembeth 5:60e116a1e913 262 if (SW1 == 1) {
emilytrembeth 5:60e116a1e913 263 wait(0.2);
emilytrembeth 5:60e116a1e913 264 sec = sec + 1;
emilytrembeth 5:60e116a1e913 265 lcd.cls();
emilytrembeth 5:60e116a1e913 266 lcd.locate(0,0);
cgogay 6:2ef9c06ce506 267 lcd.printf("Second = %d\n", sec);
emilytrembeth 5:60e116a1e913 268 }
emilytrembeth 5:60e116a1e913 269 if (SW2 == 1) {
emilytrembeth 5:60e116a1e913 270 wait(0.5);
emilytrembeth 5:60e116a1e913 271 t = 0;
emilytrembeth 5:60e116a1e913 272 }
emilytrembeth 5:60e116a1e913 273 break;
emilytrembeth 5:60e116a1e913 274 }
emilytrembeth 5:60e116a1e913 275 }
emilytrembeth 5:60e116a1e913 276
emilytrembeth 5:60e116a1e913 277 struct tm struct_time;
emilytrembeth 5:60e116a1e913 278
emilytrembeth 5:60e116a1e913 279 //store number into time struct
emilytrembeth 5:60e116a1e913 280 struct_time.tm_year = year - 1900;
emilytrembeth 5:60e116a1e913 281 struct_time.tm_mon = month;
emilytrembeth 5:60e116a1e913 282 struct_time.tm_mday = day;
emilytrembeth 5:60e116a1e913 283 struct_time.tm_hour = hour;
emilytrembeth 5:60e116a1e913 284 struct_time.tm_min = min;
emilytrembeth 5:60e116a1e913 285 struct_time.tm_sec = sec;
emilytrembeth 5:60e116a1e913 286
emilytrembeth 5:60e116a1e913 287 // Coverting to time
emilytrembeth 5:60e116a1e913 288 time_t currentTime = mktime(&struct_time);
emilytrembeth 5:60e116a1e913 289 set_time(currentTime);
emilytrembeth 5:60e116a1e913 290
emilytrembeth 5:60e116a1e913 291 }
noutram 0:90e393878517 292
emilytrembeth 5:60e116a1e913 293
emilytrembeth 5:60e116a1e913 294 void FunctionSensor()
noutram 0:90e393878517 295 {
emilytrembeth 4:da63962bc0f1 296 while (true) {
emilytrembeth 4:da63962bc0f1 297 double temp = sensor.getTemperature();
emilytrembeth 4:da63962bc0f1 298 double pressure = sensor.getPressure();
emilytrembeth 4:da63962bc0f1 299 lcd.cls();
emilytrembeth 4:da63962bc0f1 300 lcd.printf("Temp Pressure\n");
emilytrembeth 4:da63962bc0f1 301 lcd.printf("%6.1f ",temp);
emilytrembeth 4:da63962bc0f1 302 lcd.printf("%.2f\n",pressure);
emilytrembeth 4:da63962bc0f1 303
emilytrembeth 4:da63962bc0f1 304 //Write to SD
emilytrembeth 4:da63962bc0f1 305 //fprintf(fp, "%6.1f,%.2f\n\r", temp, pressure);
emilytrembeth 4:da63962bc0f1 306
emilytrembeth 4:da63962bc0f1 307 Thread::wait(15000); //Updates the state every 15 seconds
emilytrembeth 4:da63962bc0f1 308 }
noutram 0:90e393878517 309 }
noutram 0:90e393878517 310
emilytrembeth 5:60e116a1e913 311 void FunctionTime()
noutram 0:90e393878517 312 {
emilytrembeth 4:da63962bc0f1 313 while (true) {
emilytrembeth 4:da63962bc0f1 314 char lineBuffer[32];
emilytrembeth 4:da63962bc0f1 315 char *pointer;
emilytrembeth 4:da63962bc0f1 316 pointer = lineBuffer;
emilytrembeth 5:60e116a1e913 317 if (SW1 == 1) { //Set time on Putty
emilytrembeth 4:da63962bc0f1 318 // show initial message on console
emilytrembeth 4:da63962bc0f1 319 displayMessageOnConsole();
emilytrembeth 4:da63962bc0f1 320
emilytrembeth 4:da63962bc0f1 321 // get input from console
emilytrembeth 4:da63962bc0f1 322 getLineFromSerial(pointer, sizeof(lineBuffer));
emilytrembeth 4:da63962bc0f1 323
emilytrembeth 4:da63962bc0f1 324 myled = !myled;
emilytrembeth 4:da63962bc0f1 325 // update RTC based on input value
emilytrembeth 4:da63962bc0f1 326 updateRealTimeClock(pointer);
emilytrembeth 5:60e116a1e913 327 }
emilytrembeth 5:60e116a1e913 328 if (SW2 == 1) { // Set time with Buttons
emilytrembeth 5:60e116a1e913 329 pc.printf("Ready");
emilytrembeth 5:60e116a1e913 330 wait(0.5);
emilytrembeth 5:60e116a1e913 331 SetingTimeWithButtons ();
emilytrembeth 5:60e116a1e913 332 }
emilytrembeth 4:da63962bc0f1 333 while(true) {
emilytrembeth 4:da63962bc0f1 334 displayOnLcd();
emilytrembeth 4:da63962bc0f1 335 myled = !myled;
emilytrembeth 4:da63962bc0f1 336 Thread::wait(1000);
emilytrembeth 4:da63962bc0f1 337 }
noutram 0:90e393878517 338 }
emilytrembeth 4:da63962bc0f1 339
cgogay 7:981670f59caf 340 }
cgogay 7:981670f59caf 341
cgogay 7:981670f59caf 342 void FunctionSerial()
cgogay 7:981670f59caf 343 {
cgogay 7:981670f59caf 344 date_mutex.lock();
cgogay 7:981670f59caf 345
cgogay 7:981670f59caf 346 lcd.cls();
cgogay 7:981670f59caf 347 lcd.printf("Observe Putty\n\n");
cgogay 7:981670f59caf 348
cgogay 7:981670f59caf 349
cgogay 7:981670f59caf 350 pc.printf("\n\rEnter command:\n\r");
cgogay 7:981670f59caf 351 pc.printf("READ ALL \n\r");
cgogay 7:981670f59caf 352 char str[9] = "READ ALL";
cgogay 7:981670f59caf 353 // reads for 8 waiting for new line and ignoring spaces
cgogay 7:981670f59caf 354 pc.scanf("%8[^\n]*c",str);
cgogay 7:981670f59caf 355 //prints typed command
cgogay 7:981670f59caf 356 pc.printf("Chosen Command = ");
cgogay 7:981670f59caf 357 pc.printf("%s\n\r",str);
cgogay 7:981670f59caf 358
cgogay 7:981670f59caf 359 //check if typed command is equal to string
cgogay 7:981670f59caf 360 if (!strcmp(str, "READ ALL")) {
cgogay 7:981670f59caf 361 //if (str == "READ ALL") {
cgogay 7:981670f59caf 362 // pc.printf("yay\n\r");
cgogay 7:981670f59caf 363
cgogay 7:981670f59caf 364 //get current values
cgogay 7:981670f59caf 365 double temp = sensor.getTemperature();
cgogay 7:981670f59caf 366 double pressure = sensor.getPressure();
cgogay 7:981670f59caf 367 fLDR = LDD_ADC_In;
cgogay 7:981670f59caf 368 volts = fLDR*3.3f;
cgogay 7:981670f59caf 369 strftime(lcdBuffer, 32, "%d/%m/%Y %H:%M:%S,", localtime(&currentTime));
cgogay 7:981670f59caf 370
cgogay 7:981670f59caf 371 pc.printf("Date and Time = %s\r\n", lcdBuffer);
cgogay 7:981670f59caf 372 pc.printf("Temperature = %6.1f deg C,\n\r",temp);
cgogay 7:981670f59caf 373 pc.printf("Pressure = %.2f mB,\n\r",pressure);
cgogay 7:981670f59caf 374 pc.printf("Light = %6.4f volts,\n\r", volts);
cgogay 7:981670f59caf 375
cgogay 7:981670f59caf 376 }
cgogay 7:981670f59caf 377 else {
cgogay 7:981670f59caf 378 pc.printf("INVALID COMMAND\n\r");
cgogay 7:981670f59caf 379 }
cgogay 7:981670f59caf 380
cgogay 7:981670f59caf 381 date_mutex.unlock();
cgogay 7:981670f59caf 382
cgogay 7:981670f59caf 383 }