diff --git a/software/raspberry/superviseur-robot/nbproject/private/configurations.xml b/software/raspberry/superviseur-robot/nbproject/private/configurations.xml index 6eedf506..98f0312f 100644 --- a/software/raspberry/superviseur-robot/nbproject/private/configurations.xml +++ b/software/raspberry/superviseur-robot/nbproject/private/configurations.xml @@ -41,7 +41,7 @@ - pi@10.105.1.08:22 + pi@10.105.1.6:22 2 diff --git a/software/raspberry/superviseur-robot/nbproject/private/downloads-10.105.1.7-pi-22 b/software/raspberry/superviseur-robot/nbproject/private/downloads-10.105.1.7-pi-22 new file mode 100644 index 00000000..e69de29b diff --git a/software/raspberry/superviseur-robot/nbproject/private/private.xml b/software/raspberry/superviseur-robot/nbproject/private/private.xml index 40175b49..e9030278 100644 --- a/software/raspberry/superviseur-robot/nbproject/private/private.xml +++ b/software/raspberry/superviseur-robot/nbproject/private/private.xml @@ -7,12 +7,11 @@ - file:/home_pers/pehladik/dumber/software/raspberry/superviseur-robot/lib/camera.h - file:/home_pers/pehladik/dumber/software/raspberry/superviseur-robot/lib/messages.cpp - file:/home_pers/pehladik/dumber/software/raspberry/superviseur-robot/tasks.h - file:/home_pers/pehladik/dumber/software/raspberry/superviseur-robot/lib/camera.cpp - file:/home_pers/pehladik/dumber/software/raspberry/superviseur-robot/tasks.cpp - file:/home_pers/pehladik/dumber/software/raspberry/superviseur-robot/lib/messages.h + file:/home/quaccia/Bureau/Projet_Temps_Reel/dumber/software/raspberry/superviseur-robot/tasks.cpp + file:/home/quaccia/Bureau/Projet_Temps_Reel/dumber/software/raspberry/superviseur-robot/tasks.h + file:/home/quaccia/Bureau/Projet_Temps_Reel/dumber/software/raspberry/superviseur-robot/lib/messages.h + file:/home/quaccia/Bureau/Projet_Temps_Reel/dumber/software/raspberry/superviseur-robot/lib/comrobot.h + file:/home/quaccia/Bureau/Projet_Temps_Reel/dumber/software/raspberry/superviseur-robot/lib/comrobot.cpp diff --git a/software/raspberry/superviseur-robot/nbproject/private/timestamps-10.105.1.7-pi-22 b/software/raspberry/superviseur-robot/nbproject/private/timestamps-10.105.1.7-pi-22 new file mode 100644 index 00000000..ceb94970 --- /dev/null +++ b/software/raspberry/superviseur-robot/nbproject/private/timestamps-10.105.1.7-pi-22 @@ -0,0 +1,38 @@ +#Thu Feb 03 12:13:21 CET 2022 +/home/quaccia/Bureau/Projet_Temps_Reel/dumber/software/raspberry/superviseur-robot/lib/base64/test.cpp=c1643878176645 +/home/quaccia/Bureau/Projet_Temps_Reel/dumber/software/raspberry/superviseur-robot/lib/base64/base64.cpp=c1643878176627 +/home/quaccia/Bureau/Projet_Temps_Reel/dumber/software/raspberry/superviseur-robot/nbproject/project.xml=c1643878176921 +/home/quaccia/Bureau/Projet_Temps_Reel/dumber/software/raspberry/superviseur-robot/lib/base64/base64.h=c1643878176632 +/home/quaccia/Bureau/Projet_Temps_Reel/dumber/software/raspberry/superviseur-robot/lib/messages.h=c1643878176747 +/home/quaccia/Bureau/Projet_Temps_Reel/dumber/software/raspberry/superviseur-robot/nbproject/Package-Debug__PC_.bash=c1643878176827 +/home/quaccia/Bureau/Projet_Temps_Reel/dumber/software/raspberry/superviseur-robot/lib/comrobot.cpp=c1643878176708 +/home/quaccia/Bureau/Projet_Temps_Reel/dumber/software/raspberry/superviseur-robot/Makefile=c1643878176250 +/home/quaccia/Bureau/Projet_Temps_Reel/dumber/software/raspberry/superviseur-robot/nbproject/Makefile-Debug__PC_.mk=c1643878176780 +/home/quaccia/Bureau/Projet_Temps_Reel/dumber/software/raspberry/superviseur-robot/nbproject/Makefile-variables.mk=c1643878176823 +/home/quaccia/Bureau/Projet_Temps_Reel/dumber/software/raspberry/superviseur-robot/lib/.gitignore=c1643878176536 +/home/quaccia/Bureau/Projet_Temps_Reel/dumber/software/raspberry/superviseur-robot/.gitignore=c1643878176246 +/home/quaccia/Bureau/Projet_Temps_Reel/dumber/software/raspberry/superviseur-robot/lib/base64/compile-and-run-test=c1643878176639 +/home/quaccia/Bureau/Projet_Temps_Reel/dumber/software/raspberry/superviseur-robot/superviseur.doxygen=c1643878176946 +/home/quaccia/Bureau/Projet_Temps_Reel/dumber/software/raspberry/superviseur-robot/lib/img.h=c1643878176731 +/home/quaccia/Bureau/Projet_Temps_Reel/dumber/software/raspberry/superviseur-robot/nbproject/Makefile-Debug__RPI_.mk=c1643878176805 +/home/quaccia/Bureau/Projet_Temps_Reel/dumber/software/raspberry/superviseur-robot/lib/comrobot.h=c1643878176712 +/home/quaccia/Bureau/Projet_Temps_Reel/dumber/software/raspberry/superviseur-robot/main.cpp=c1643878176764 +/home/quaccia/Bureau/Projet_Temps_Reel/dumber/software/raspberry/superviseur-robot/tasks.cpp=c1643886797321 +/home/quaccia/Bureau/Projet_Temps_Reel/dumber/software/raspberry/superviseur-robot/README.md=c1643878176254 +/home/quaccia/Bureau/Projet_Temps_Reel/dumber/software/raspberry/superviseur-robot/nbproject/Package-Debug__RPI_.bash=c1643878176831 +/home/quaccia/Bureau/Projet_Temps_Reel/dumber/software/raspberry/superviseur-robot/lib/messages.cpp=c1643878176738 +/home/quaccia/Bureau/Projet_Temps_Reel/dumber/software/raspberry/superviseur-robot/tasks.h=c1643882845489 +/home/quaccia/Bureau/Projet_Temps_Reel/dumber/software/raspberry/superviseur-robot/lib/base64/README.md=c1643878176622 +/home/quaccia/Bureau/Projet_Temps_Reel/dumber/software/raspberry/superviseur-robot/nbproject/private/Makefile-variables.mk=c1643878176846 +/home/quaccia/Bureau/Projet_Temps_Reel/dumber/software/raspberry/superviseur-robot/lib/base64/.gitignore=c1643878176545 +/home/quaccia/Bureau/Projet_Temps_Reel/dumber/software/raspberry/superviseur-robot/lib/commonitor.h=c1643878176702 +/home/quaccia/Bureau/Projet_Temps_Reel/dumber/software/raspberry/superviseur-robot/lib/camera.h=c1643878176681 +/home/quaccia/Bureau/Projet_Temps_Reel/dumber/software/raspberry/superviseur-robot/lib/base64/LICENSE=c1643878176617 +/home/quaccia/Bureau/Projet_Temps_Reel/dumber/software/raspberry/superviseur-robot/.dep.inc=c1643878176242 +/home/quaccia/Bureau/Projet_Temps_Reel/dumber/software/raspberry/superviseur-robot/lib/img.cpp=c1643878176726 +/home/quaccia/Bureau/Projet_Temps_Reel/dumber/software/raspberry/superviseur-robot/nbproject/Makefile-impl.mk=c1643878176816 +/home/quaccia/Bureau/Projet_Temps_Reel/dumber/software/raspberry/superviseur-robot/gdbsudo.sh=c1643878176526 +VERSION=1.3 +/home/quaccia/Bureau/Projet_Temps_Reel/dumber/software/raspberry/superviseur-robot/nbproject/project.properties=c1643878176916 +/home/quaccia/Bureau/Projet_Temps_Reel/dumber/software/raspberry/superviseur-robot/lib/camera.cpp=c1643878176654 +/home/quaccia/Bureau/Projet_Temps_Reel/dumber/software/raspberry/superviseur-robot/lib/commonitor.cpp=c1643878176698 diff --git a/software/raspberry/superviseur-robot/tasks.cpp b/software/raspberry/superviseur-robot/tasks.cpp index f17ae218..ef077c6e 100644 --- a/software/raspberry/superviseur-robot/tasks.cpp +++ b/software/raspberry/superviseur-robot/tasks.cpp @@ -27,6 +27,8 @@ #define PRIORITY_TSTARTROBOT 20 #define PRIORITY_TCAMERA 21 +#define PRIORITY_TBATTERY 20 + /* * Some remarks: * 1- This program is mostly a template. It shows you how to create tasks, semaphore @@ -123,6 +125,12 @@ void Tasks::Init() { cerr << "Error task create: " << strerror(-err) << endl << flush; exit(EXIT_FAILURE); } + if (err = rt_task_create(&th_battery, "th_battery", 0, PRIORITY_TBATTERY, 0)) { + cerr << "Error task create: " << strerror(-err) << endl << flush; + exit(EXIT_FAILURE); + } + + cout << "Tasks created successfully" << endl << flush; /**************************************************************************************/ @@ -167,6 +175,10 @@ void Tasks::Run() { cerr << "Error task start: " << strerror(-err) << endl << flush; exit(EXIT_FAILURE); } + if (err = rt_task_start(&th_battery, (void(*)(void*)) & Tasks::CheckBattery, this)) { + cerr << "Error task start: " << strerror(-err) << endl << flush; + exit(EXIT_FAILURE); + } cout << "Tasks launched" << endl << flush; } @@ -396,6 +408,35 @@ void Tasks::WriteInQueue(RT_QUEUE *queue, Message *msg) { } } + +/** + * Check battery + */ +void Tasks::CheckBattery() { + + cout << "Start " << __PRETTY_FUNCTION__ << endl << flush; + // Synchronization barrier (waiting that all tasks are starting) + rt_sem_p(&sem_barrier, TM_INFINITE); + + rt_task_set_periodic(NULL, TM_NOW, 500000000); + + while (1) { + rt_task_wait_period(NULL); + cout << "Battery Periodic" << endl << flush; + rt_mutex_acquire(&mutex_robotStarted, TM_INFINITE); + if (robotStarted==1) { + rt_mutex_acquire(&mutex_robot, TM_INFINITE); + MessageBattery* bat = (MessageBattery*)robot.Write(new Message(MESSAGE_ROBOT_BATTERY_GET)); + cout << "Battery level : " << bat->ToString() << endl << flush; + rt_mutex_release(&mutex_robot); + } + rt_mutex_release(&mutex_robotStarted); + cout << endl << flush; + } + +} + + /** * Read a message from a given queue, block if empty * @param queue Queue identifier diff --git a/software/raspberry/superviseur-robot/tasks.h b/software/raspberry/superviseur-robot/tasks.h index 27fe3290..d2b1b860 100644 --- a/software/raspberry/superviseur-robot/tasks.h +++ b/software/raspberry/superviseur-robot/tasks.h @@ -76,6 +76,7 @@ class Tasks { RT_TASK th_openComRobot; RT_TASK th_startRobot; RT_TASK th_move; + RT_TASK th_battery; /**********************************************************************/ /* Mutex */ @@ -142,6 +143,15 @@ class Tasks { */ void WriteInQueue(RT_QUEUE *queue, Message *msg); + + /* + * @brief Check the battery level and send a message + */ + void CheckBattery(); + + + + /** * Read a message from a given queue, block if empty * @param queue Queue identifier