SEDO subject project
Dependencies: ds3231 mbed-rtos mbed DHT
Diff: main.cpp
- Revision:
- 12:1d544cdab2cf
- Parent:
- 11:a9f41d6489c9
--- a/main.cpp Mon May 08 18:30:12 2017 +0000 +++ b/main.cpp Mon May 15 18:30:20 2017 +0000 @@ -5,6 +5,7 @@ #include "real_time_clock.h" #include "temp_hum_sensor.h" #include "motor_cnt.h" +#include "light_sensor.h" #define TASKS_NUMBER (sizeof(taskList)/sizeof(taskList[0])) @@ -19,7 +20,7 @@ static struct task_definition_struct taskList[] = { { temp_hum_thread, &temp_hum_init, NULL, NULL, osPriorityNormal, 100, NULL, 0 }, - //{ nodeComm_thread, &initNodeComm, NULL, NULL, osPriorityNormal, 100, NULL, 0 } + { light_thread, &light_init, NULL, NULL, osPriorityNormal, 100, NULL, 0 } }; @@ -55,13 +56,14 @@ // Stop all remain tasks sensors_running = false; elapsed_time = rtc.get_epoch()-epoch_time; - - mutexPCComm.lock(); - pc.printf("MAIN: elapsed %ld\n",(long)elapsed_time); - mutexPCComm.unlock(); - if(10-elapsed_time>0){ + + mutexPCComm.lock(); + pc.printf("MAIN: elapsed %ld\n",(long)elapsed_time); + mutexPCComm.unlock(); + if(10-(long)elapsed_time>0) { Thread::wait((10-elapsed_time)*1000); - } + } else + Thread::wait(1000); } } @@ -69,6 +71,7 @@ { Timer t; int error = -1; + time_t ts = rtc.get_epoch(); t.reset(); t.start(); while(error != 0 && t.read()<MAX_TIME_TO_WAIT_NODE_COMM) { @@ -81,8 +84,13 @@ pc.printf("Temp\t%f\n",data.temperature); pc.printf("Hum\t%f\n",data.humidity); pc.printf("DewP\t%f\n",data.dewPoint); + pc.printf("Light\t%f\n",data.light); + pc.printf("%ld\tDHTError:\t%d\n",(long)ts, data.DHTError); + pc.printf("%ld\tDHTError:\t%d\n",(long)ts, data.lightError); mutexPCComm.unlock(); - xbee.printf("{DHT:{temp:%4.2f,hum:%4.2f,dew:%4.2f}}\n",data.temperature,data.humidity,data.dewPoint); + xbee.printf("{%ld:{DHT:{temp:%4.2f,hum:%4.2f,dew:%4.2f}},{LIGHT:{light:%f}})\n",(long)ts, data.temperature,data.humidity,data.dewPoint,data.light); + set_motor_direction(1); + set_motor_speed(data.light); } mutexData.unlock(); if(error!=0) { @@ -101,13 +109,24 @@ pc.printf("Temp:\t%f\n",data.temperature); pc.printf("Hum:\t%f\n",data.humidity); pc.printf("DewP:\t%f\n",data.dewPoint); - pc.printf("DHTError:\t%d\n",data.DHTError); - xbee.printf("{DHT:{temp:%4.2f,hum:%4.2f,dew:%4.2f}}\n",data.temperature,data.humidity,data.dewPoint); + pc.printf("%ld\tDHTError:\t%d\n",(long)ts, data.DHTError); + xbee.printf("{%ld:{DHT:{temp:%4.2f,hum:%4.2f,dew:%4.2f}}\n",(long)ts, data.temperature,data.humidity,data.dewPoint); mutexPCComm.unlock(); - } else { + } + if( data.lightError == 0) { mutexPCComm.lock(); - pc.printf("DHTError:\t%d\n",data.DHTError); - xbee.printf("{DHT:{error:\t%d}}\n",data.DHTError); + pc.printf("Light\t%f\n",data.light); + pc.printf("%ld\tlightError:\t%d\n",(long)ts, data.lightError); + xbee.printf("{%ld:{LIGHT:{light:%f}})\n",(long)ts, data.light); + mutexPCComm.unlock(); + set_motor_direction(1); + set_motor_speed(data.light); + } + if( data.lightError != 0 || data.lightError != 0) { + mutexPCComm.lock(); + pc.printf("%ld\tDHTError:\t%d\n",(long)ts, data.DHTError); + pc.printf("%ld\tlightError:\t%d\n",(long)ts, data.lightError); + xbee.printf("{%ld:{DHT:{error:\t%d},{LIGHT:{error:%f}}}\n",(long)ts, data.DHTError, data.light); mutexPCComm.unlock(); } mutexData.unlock(); @@ -115,6 +134,7 @@ // Reset all data status mutexData.lock(); data.DHTError = -128; + data.lightError = -128; mutexData.unlock(); return error; }