Plymouth ELEC351 Group T
/
ELEC351_Group_T
FINAL PROJECT isn't it
Fork of ELEC351 by
Diff: main.cpp
- Revision:
- 17:37d883f40c3d
- Parent:
- 16:067916791a25
- Child:
- 18:194a606ccd47
--- a/main.cpp Sun Dec 24 15:23:14 2017 +0000 +++ b/main.cpp Sun Dec 24 15:43:08 2017 +0000 @@ -62,14 +62,14 @@ char buffer[32]; char scom_time_buffer[32]; - +char msel_time_buffer[32]; void SW1FallingEdge(); void SW1TimeOutHandler(); int mode = 0; -Mail<DATA, mailsize> mail_box; //Mail Queue, Type DATA, Capacity 120, name mail_box +Mail<DATA, mailsize> mail_box; //Mail Queue, Type DATA, Capacity mailsize(defined above), name mail_box void Network() //Interrupt service routine for handling the timeout { @@ -77,15 +77,14 @@ if (evt_network.status == osEventMail) { - DATA *Rec_Data_Network = (DATA*)evt_network.value.p; - DATA msg_network; + DATA *Rec_Data_Network = (DATA*)evt_network.value.p; //Create pointer to mailbox + DATA msg_network; //Create temporary instance of DATA class - msg_network.set_time(Rec_Data_Network->get_time()); - msg_network.set_temperature(Rec_Data_Network->get_temperature()); - msg_network.set_pressure(Rec_Data_Network->get_pressure()); - msg_network.set_light(Rec_Data_Network->get_light()); - - mail_box.free(Rec_Data_Network); + msg_network.set_time(Rec_Data_Network->get_time()); //Copy time from mailbox to temporary instance + msg_network.set_temperature(Rec_Data_Network->get_temperature()); //Copy temperature from mailbox to temporary instance + msg_network.set_pressure(Rec_Data_Network->get_pressure()); //Copy pressure from mailbox to temporary instance + msg_network.set_light(Rec_Data_Network->get_light()); //Copy light from mailbox to temporary instance + mail_box.free(Rec_Data_Network); //Free space in the mailbox (delete earliest sample taken) //NETWORK_Print(); //Runs the network } @@ -102,15 +101,14 @@ if (evt_sd.status == osEventMail) { - DATA *Rec_Data_SD = (DATA*)evt_sd.value.p; - DATA msg_sd; + DATA *Rec_Data_SD = (DATA*)evt_sd.value.p; //Create pointer to mailbox + DATA msg_sd; //Create temporary instance of DATA class - msg_sd.set_time(Rec_Data_SD->get_time()); - msg_sd.set_temperature(Rec_Data_SD->get_temperature()); - msg_sd.set_pressure(Rec_Data_SD->get_pressure()); - msg_sd.set_light(Rec_Data_SD->get_light()); - - mail_box.free(Rec_Data_SD); + msg_sd.set_time(Rec_Data_SD->get_time()); //Copy time from mailbox to temporary instance + msg_sd.set_temperature(Rec_Data_SD->get_temperature()); //Copy temperature from mailbox to temporary instance + msg_sd.set_pressure(Rec_Data_SD->get_pressure()); //Copy pressure from mailbox to temporary instance + msg_sd.set_light(Rec_Data_SD->get_light()); //Copy light from mailbox to temporary instance + mail_box.free(Rec_Data_SD); //Free space in the mailbox (delete earliest sample taken) } } //Interrupt service routive for SW1 falling edge (release) @@ -137,15 +135,14 @@ if (evt_lcd.status == osEventMail) { - DATA *Rec_Data_LCD = (DATA*)evt_lcd.value.p; - DATA msg_lcd; + DATA *Rec_Data_LCD = (DATA*)evt_lcd.value.p; //Create pointer to mailbox + DATA msg_lcd; //Create temporary instance of DATA class - msg_lcd.set_time(Rec_Data_LCD->get_time()); - msg_lcd.set_temperature(Rec_Data_LCD->get_temperature()); - msg_lcd.set_pressure(Rec_Data_LCD->get_pressure()); - msg_lcd.set_light(Rec_Data_LCD->get_light()); - - mail_box.free(Rec_Data_LCD); + msg_lcd.set_time(Rec_Data_LCD->get_time()); //Copy time from mailbox to temporary instance + msg_lcd.set_temperature(Rec_Data_LCD->get_temperature()); //Copy temperature from mailbox to temporary instance + msg_lcd.set_pressure(Rec_Data_LCD->get_pressure()); //Copy pressure from mailbox to temporary instance + msg_lcd.set_light(Rec_Data_LCD->get_light()); //Copy light from mailbox to temporary instance + mail_box.free(Rec_Data_LCD); //Free space in the mailbox (delete earliest sample taken) if(mode == 0)//Print values to the LCD { @@ -158,7 +155,9 @@ } else if(mode == 1)//Print the Time to the LCD { - lcd.cls(); //Write new data to LCD (not fast!) + time_t msel_time = msg_lcd.get_time(); //Declare local variable for time + strftime(scom_time_buffer, 32, "%I:%M %p\t", localtime(&msel_time)); //Format time as a string + lcd.cls(); //Write new data to LCD (not fast!) lcd.printf("Current Time:%s", buffer); } else @@ -177,19 +176,18 @@ if (evt_serial.status == osEventMail) { - DATA *Rec_Data_Serial = (DATA*)evt_serial.value.p; - DATA msg_serial; + DATA *Rec_Data_Serial = (DATA*)evt_serial.value.p; //Create pointer to mailbox + DATA msg_serial; //Create temporary instance of DATA class - msg_serial.set_time(Rec_Data_Serial->get_time()); - msg_serial.set_temperature(Rec_Data_Serial->get_temperature()); - msg_serial.set_pressure(Rec_Data_Serial->get_pressure()); - msg_serial.set_light(Rec_Data_Serial->get_light()); + msg_serial.set_time(Rec_Data_Serial->get_time()); //Copy time from mailbox to temporary instance + msg_serial.set_temperature(Rec_Data_Serial->get_temperature()); //Copy teperature from mailbox to temporary instance + msg_serial.set_pressure(Rec_Data_Serial->get_pressure()); //Copy pressure from mailbox to temporary instance + msg_serial.set_light(Rec_Data_Serial->get_light()); //Copy light from mailbox to temporary instance + mail_box.free(Rec_Data_Serial); //Free space in the mailbox (delete earliest sample taken) - mail_box.free(Rec_Data_Serial); - - time_t scom_time = msg_serial.get_time(); - strftime(scom_time_buffer, 32, "%I:%M %p\t", localtime(&scom_time)); - pc.printf("Time = %s", scom_time_buffer); + time_t scom_time = msg_serial.get_time(); //Declare local variable for time + strftime(scom_time_buffer, 32, "%I:%M %p\t", localtime(&scom_time)); //Format time as a string + pc.printf("Time = %s", scom_time_buffer); //Print the string formatted time pc.printf("Temperature = %f\t", msg_serial.get_temperature()); //Print Temperature pc.printf("Pressure = %f\t", msg_serial.get_pressure()); //Print Pressure