Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,7 @@
</conf>
<conf name="Debug__RPI_" type="1">
<toolsSet>
<developmentServer>[email protected].08:22</developmentServer>
<developmentServer>[email protected].6:22</developmentServer>
<platform>2</platform>
</toolsSet>
<dbx_gdbdebugger version="1">
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,12 +7,11 @@
<editor-bookmarks xmlns="http://www.netbeans.org/ns/editor-bookmarks/2" lastBookmarkId="0"/>
<open-files xmlns="http://www.netbeans.org/ns/projectui-open-files/2">
<group>
<file>file:/home_pers/pehladik/dumber/software/raspberry/superviseur-robot/lib/camera.h</file>
<file>file:/home_pers/pehladik/dumber/software/raspberry/superviseur-robot/lib/messages.cpp</file>
<file>file:/home_pers/pehladik/dumber/software/raspberry/superviseur-robot/tasks.h</file>
<file>file:/home_pers/pehladik/dumber/software/raspberry/superviseur-robot/lib/camera.cpp</file>
<file>file:/home_pers/pehladik/dumber/software/raspberry/superviseur-robot/tasks.cpp</file>
<file>file:/home_pers/pehladik/dumber/software/raspberry/superviseur-robot/lib/messages.h</file>
<file>file:/home/quaccia/Bureau/Projet_Temps_Reel/dumber/software/raspberry/superviseur-robot/tasks.cpp</file>
<file>file:/home/quaccia/Bureau/Projet_Temps_Reel/dumber/software/raspberry/superviseur-robot/tasks.h</file>
<file>file:/home/quaccia/Bureau/Projet_Temps_Reel/dumber/software/raspberry/superviseur-robot/lib/messages.h</file>
<file>file:/home/quaccia/Bureau/Projet_Temps_Reel/dumber/software/raspberry/superviseur-robot/lib/comrobot.h</file>
<file>file:/home/quaccia/Bureau/Projet_Temps_Reel/dumber/software/raspberry/superviseur-robot/lib/comrobot.cpp</file>
</group>
</open-files>
</project-private>
Original file line number Diff line number Diff line change
@@ -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
41 changes: 41 additions & 0 deletions software/raspberry/superviseur-robot/tasks.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down Expand Up @@ -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;

/**************************************************************************************/
Expand Down Expand Up @@ -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;
}
Expand Down Expand Up @@ -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
Expand Down
10 changes: 10 additions & 0 deletions software/raspberry/superviseur-robot/tasks.h
Original file line number Diff line number Diff line change
Expand Up @@ -76,6 +76,7 @@ class Tasks {
RT_TASK th_openComRobot;
RT_TASK th_startRobot;
RT_TASK th_move;
RT_TASK th_battery;

/**********************************************************************/
/* Mutex */
Expand Down Expand Up @@ -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
Expand Down