diff --git a/software/raspberry/superviseur-robot/tasks.cpp b/software/raspberry/superviseur-robot/tasks.cpp index 77918d8..9bf4b61 100644 --- a/software/raspberry/superviseur-robot/tasks.cpp +++ b/software/raspberry/superviseur-robot/tasks.cpp @@ -556,14 +556,14 @@ void Tasks::OpenComRobot(void *arg) { //PAS DE SOUCIS AU REDEMARAGE int err; //bool killOpenComRobotOk = 0; - cout << "Start " << __PRETTY_FUNCTION__ << endl << flush; - // Synchronization barrier (waiting that all tasks are starting) - rt_sem_p(&sem_barrier, TM_INFINITE); + while (1) { //Is used to restart process + cout << "Start " << __PRETTY_FUNCTION__ << endl << flush; + // Synchronization barrier (waiting that all tasks are starting) + rt_sem_p(&sem_barrier, TM_INFINITE); /**************************************************************************************/ /* The task openComRobot starts here */ /**************************************************************************************/ - while (1) { //Is used to restart process rt_sem_p(&sem_openComRobot, TM_INFINITE); cout << "Open serial com ("; rt_mutex_acquire(&mutex_robot, TM_INFINITE); @@ -710,16 +710,16 @@ void Tasks::MoveTask(void *arg) { int rs; int cpMove; - 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, 100000000); + + while (1) { + cout << "Start " << __PRETTY_FUNCTION__ << endl << flush; + // Synchronization barrier (waiting that all tasks are starting) + rt_sem_p(&sem_barrier, TM_INFINITE); /**************************************************************************************/ /* The task starts here */ /**************************************************************************************/ - rt_task_set_periodic(NULL, TM_NOW, 100000000); - - while (1) { rt_task_wait_period(NULL); cout << "Periodic movement update"; rt_mutex_acquire(&mutex_robotStarted, TM_INFINITE); @@ -752,6 +752,10 @@ void Tasks::DetectLostSupRob(void *arg){ while(1){//Used to restart process + cout << "Start " << __PRETTY_FUNCTION__ << endl << flush; + // Synchronization barrier (waiting that all tasks are starting) + rt_sem_p(&sem_barrier, TM_INFINITE); + //Wait the Communication with the Robot to be Set rt_sem_p(&sem_detectLostSupRob, TM_INFINITE); cout << "Start DetectLostSupRob" << endl << flush; @@ -821,15 +825,15 @@ void Tasks::DetectLostSupRob(void *arg){ void Tasks::AskBattery(void *arg){ - Message* p_mess_answer_battery; - cout << "Start " << __PRETTY_FUNCTION__ << endl << flush; - // Synchronization barrier (waiting that all tasks are starting) - rt_sem_p(&sem_barrier, TM_INFINITE); + while(1){ + Message* p_mess_answer_battery; + cout << "Start " << __PRETTY_FUNCTION__ << endl << flush; + // Synchronization barrier (waiting that all tasks are starting) + rt_sem_p(&sem_barrier, TM_INFINITE); /**************************************************************************************/ /* The task starts here */ /**************************************************************************************/ - while(1){ rt_sem_p(&sem_askBattery, TM_INFINITE); rt_mutex_acquire(&mutex_robot, TM_INFINITE); p_mess_answer_battery = robot.Write(robot.GetBattery());