Start and Restart Server work

This commit is contained in:
Raphael Benistant 2020-03-29 09:29:21 +02:00
parent 4826ac1aeb
commit 9adc001ccf

View file

@ -281,7 +281,8 @@ void Tasks::Join() {
rt_sem_broadcast(&sem_barrier); rt_sem_broadcast(&sem_barrier);
//Initialization for some specific sem: Allow to run the first time //Initialization for some specific sem: Allow to run the first time
rt_sem_broadcast(&sem_restart); //rt_sem_broadcast(&sem_restart);
pause(); pause();
} }
@ -292,13 +293,10 @@ void Tasks::ServerTask(void *arg) {
int status; int status;
cout << "Start " << __PRETTY_FUNCTION__ << endl << flush; cout << "Start " << __PRETTY_FUNCTION__ << endl << flush;
// Synchronization barrier (waiting that all tasks are started)
rt_sem_p(&sem_barrier, TM_INFINITE);
while(1){ while(1){
// Synchronization barrier (waiting that all tasks are started)
//First time it's okay after it's managed by receiveFromMon rt_sem_p(&sem_barrier, TM_INFINITE);
//rt_sem_p(&sem_restart, TM_INFINITE);
/**************************************************************************************/ /**************************************************************************************/
/* The task server starts here */ /* The task server starts here */
@ -329,18 +327,17 @@ void Tasks::SendToMonTask(void* arg) {
// Synchronization barrier (waiting that all tasks are starting) // Synchronization barrier (waiting that all tasks are starting)
rt_sem_p(&sem_barrier, TM_INFINITE); rt_sem_p(&sem_barrier, TM_INFINITE);
while(1){ //while(1){
//rt_sem_p(&sem_restart, TM_INFINITE);
//Initialize the loop condition
rt_mutex_acquire(&mutex_killSendMon, TM_INFINITE);
killSendMon=0; // The message is deleted with the Write
rt_mutex_release(&mutex_killSendMon);
/**************************************************************************************/ /**************************************************************************************/
/* The task sendToMon starts here */ /* The task sendToMon starts here */
/**************************************************************************************/ /**************************************************************************************/
rt_sem_p(&sem_serverOk, TM_INFINITE); rt_sem_p(&sem_serverOk, TM_INFINITE);
//Initialize the loop condition
rt_mutex_acquire(&mutex_killSendMon, TM_INFINITE);
killSendMon=0; // The message is deleted with the Write
rt_mutex_release(&mutex_killSendMon);
while (!kill_sendToMonOk) { while (!kill_sendToMonOk) {
cout << "wait msg to send" << endl << flush; cout << "wait msg to send" << endl << flush;
@ -355,7 +352,7 @@ void Tasks::SendToMonTask(void* arg) {
rt_mutex_release(&mutex_killSendMon); rt_mutex_release(&mutex_killSendMon);
} }
} //}
} }
/** /**
@ -369,7 +366,7 @@ void Tasks::ReceiveFromMonTask(void *arg) {
// Synchronization barrier (waiting that all tasks are starting) // Synchronization barrier (waiting that all tasks are starting)
rt_sem_p(&sem_barrier, TM_INFINITE); rt_sem_p(&sem_barrier, TM_INFINITE);
while(1){ //while(1){
//rt_sem_p(&sem_restart,TM_INFINITE); //rt_sem_p(&sem_restart,TM_INFINITE);
@ -419,7 +416,7 @@ void Tasks::ReceiveFromMonTask(void *arg) {
//Restart all the process //Restart all the process
Tasks::Join(); Tasks::Join();
rt_sem_v(&sem_restart); //rt_sem_v(&sem_restart);
//exit(-1); //exit(-1);
@ -513,7 +510,7 @@ void Tasks::ReceiveFromMonTask(void *arg) {
rt_mutex_release(&mutex_killReceiveFromMon); rt_mutex_release(&mutex_killReceiveFromMon);
} }
} //}
} }
/** /**
@ -522,7 +519,7 @@ void Tasks::ReceiveFromMonTask(void *arg) {
void Tasks::OpenComRobot(void *arg) { void Tasks::OpenComRobot(void *arg) {
int status; int status;
int err; int err;
bool killOpenComRobotOk = 0; //bool killOpenComRobotOk = 0;
cout << "Start " << __PRETTY_FUNCTION__ << endl << flush; cout << "Start " << __PRETTY_FUNCTION__ << endl << flush;
// Synchronization barrier (waiting that all tasks are starting) // Synchronization barrier (waiting that all tasks are starting)