Saltware / Mbed 2 deprecated Water Play

Dependencies:   mbed DRV88255 TextLCD Ping mbed-rtos

Committer:
sbouber1
Date:
Fri Jun 10 12:38:54 2016 +0000
Revision:
8:24b057cbcb53
Parent:
6:067e999b9c6e
Started threading stuff

Who changed what in which revision?

UserRevisionLine numberNew contents of line
6366295 0:dab140a197e0 1 #include "SalinityController.h"
6366295 0:dab140a197e0 2 #include "TemperatureController.h"
6366295 2:f6ebc225f232 3 #include "MotorController.h"
joran 6:067e999b9c6e 4 #include "LCDController.h"
sbouber1 8:24b057cbcb53 5 #include "ProximityController.h"
6366295 0:dab140a197e0 6
6366295 0:dab140a197e0 7 #include "mbed.h"
sbouber1 8:24b057cbcb53 8 #include "rtos.h"
sbouber1 8:24b057cbcb53 9
sbouber1 8:24b057cbcb53 10 typedef struct Controllers {
sbouber1 8:24b057cbcb53 11 TemperatureController *temperature;
sbouber1 8:24b057cbcb53 12 SalinityController *salinity;
sbouber1 8:24b057cbcb53 13 ProximityController *proximity;
sbouber1 8:24b057cbcb53 14 LCDController *lcd;
sbouber1 8:24b057cbcb53 15
sbouber1 8:24b057cbcb53 16 } Controllers;
sbouber1 8:24b057cbcb53 17
sbouber1 8:24b057cbcb53 18
sbouber1 8:24b057cbcb53 19
sbouber1 8:24b057cbcb53 20 /*
sbouber1 8:24b057cbcb53 21 Continuously update controller every 100 ms
sbouber1 8:24b057cbcb53 22 */
sbouber1 8:24b057cbcb53 23 void controller_thread(void const *args) {
sbouber1 8:24b057cbcb53 24 Controller *controller = (Controller*)args;
sbouber1 8:24b057cbcb53 25
sbouber1 8:24b057cbcb53 26 while(1) {
sbouber1 8:24b057cbcb53 27 controller->update();
sbouber1 8:24b057cbcb53 28 Thread::wait(100);
sbouber1 8:24b057cbcb53 29 }
sbouber1 8:24b057cbcb53 30
sbouber1 8:24b057cbcb53 31 }
sbouber1 8:24b057cbcb53 32
6366295 0:dab140a197e0 33
6366295 0:dab140a197e0 34 int main()
6366295 0:dab140a197e0 35 {
6366295 0:dab140a197e0 36 int count;
6366295 0:dab140a197e0 37
6366295 0:dab140a197e0 38 TemperatureController temperature;
sbouber1 8:24b057cbcb53 39 Thread t1(controller_thread, (Controller*)&temperature);
sbouber1 8:24b057cbcb53 40
sbouber1 8:24b057cbcb53 41 //SalinityController salt;
sbouber1 8:24b057cbcb53 42 //Thread t2(controller_thread, (Controller*)&salt);
sbouber1 8:24b057cbcb53 43
sbouber1 8:24b057cbcb53 44
sbouber1 8:24b057cbcb53 45
6366295 2:f6ebc225f232 46 MotorController motor;
sbouber1 8:24b057cbcb53 47 // Keep LCD controller outside thread
joran 6:067e999b9c6e 48 LCDController lcd;
6366295 2:f6ebc225f232 49
6366295 4:4011a1562a77 50 // for(int i = 0; i < 20; i++)
6366295 4:4011a1562a77 51 // {
6366295 4:4011a1562a77 52 // motor.test();
6366295 4:4011a1562a77 53 // motor.test2();
6366295 4:4011a1562a77 54 // }
sbouber1 8:24b057cbcb53 55 //lcd.splash();
sbouber1 8:24b057cbcb53 56 //while(1) {
joran 6:067e999b9c6e 57 // printf("%d> ", count);
joran 6:067e999b9c6e 58
joran 6:067e999b9c6e 59 // salt.displayPPT();
6366295 0:dab140a197e0 60
joran 6:067e999b9c6e 61 //temperature.displayTemperature();
6366295 0:dab140a197e0 62
joran 6:067e999b9c6e 63 // temperature.controlHeater();
6366295 1:eb527bc93b62 64
sbouber1 8:24b057cbcb53 65 // lcd.updateScreen(temperature.getTemperature(),salt.getVoltage());
sbouber1 8:24b057cbcb53 66 // count++;
6366295 0:dab140a197e0 67
sbouber1 8:24b057cbcb53 68 // wait(0.5);
sbouber1 8:24b057cbcb53 69 //}
sbouber1 8:24b057cbcb53 70
sbouber1 8:24b057cbcb53 71 float s = 0.0;
sbouber1 8:24b057cbcb53 72 float t = 0.0;
sbouber1 8:24b057cbcb53 73
sbouber1 8:24b057cbcb53 74 while(1) {
sbouber1 8:24b057cbcb53 75 lcd.splash();
sbouber1 8:24b057cbcb53 76 Thread::wait(1000);
sbouber1 8:24b057cbcb53 77
sbouber1 8:24b057cbcb53 78 t = temperature.getValue();
sbouber1 8:24b057cbcb53 79 // s=...
sbouber1 8:24b057cbcb53 80
sbouber1 8:24b057cbcb53 81 printf("Grabbing temperature value from main thread: %f\r\n", t);
sbouber1 8:24b057cbcb53 82 //printf("Grabbing salinity value from main thread: %f\n", salt.getValue());
sbouber1 8:24b057cbcb53 83
sbouber1 8:24b057cbcb53 84 lcd.updateScreen(t, s);
sbouber1 8:24b057cbcb53 85
sbouber1 8:24b057cbcb53 86 motor.test();
6366295 0:dab140a197e0 87 }
6366295 0:dab140a197e0 88 }