More reformatting

This commit is contained in:
Arnaud Vergnet 2021-03-12 14:28:29 +01:00
parent 2673651834
commit 7d3372a443
2 changed files with 23 additions and 24 deletions

View file

@ -18,6 +18,8 @@
#include "tasks.h" #include "tasks.h"
#include <stdexcept> #include <stdexcept>
using namespace std;
// Déclaration des priorités des taches // Déclaration des priorités des taches
#define PRIORITY_TSERVER 30 #define PRIORITY_TSERVER 30
#define PRIORITY_TOPENCOMROBOT 20 #define PRIORITY_TOPENCOMROBOT 20
@ -42,7 +44,7 @@
* *
* 5- Same behavior existe for ComMonitor::Write ! * 5- Same behavior existe for ComMonitor::Write !
* *
* 6- When you want to write something in terminal, use cout and terminate with endl and flush * 6- When you want to write something in terminal, use cout and terminate with endl
* *
* 7- Good luck ! * 7- Good luck !
*/ */
@ -151,31 +153,31 @@ void Tasks::Run() {
rt_task_set_priority(nullptr, T_LOPRIO); rt_task_set_priority(nullptr, T_LOPRIO);
int err; int err;
if (err = rt_task_start(&th_server, (void (*)(void *)) &Tasks::ServerTask, this)) { if (err = rt_task_start(&th_server, reinterpret_cast<void (*)(void *)>(&Tasks::ServerTask), this)) {
cerr << "Error task start ServerTask: " << strerror(-err) << endl; cerr << "Error task start ServerTask: " << strerror(-err) << endl;
exit(EXIT_FAILURE); exit(EXIT_FAILURE);
} }
if (err = rt_task_start(&th_sendToMon, (void (*)(void *)) &Tasks::SendToMonTask, this)) { if (err = rt_task_start(&th_sendToMon, reinterpret_cast<void (*)(void *)>(&Tasks::SendToMonTask), this)) {
cerr << "Error task start SendToMonTask: " << strerror(-err) << endl; cerr << "Error task start SendToMonTask: " << strerror(-err) << endl;
exit(EXIT_FAILURE); exit(EXIT_FAILURE);
} }
if (err = rt_task_start(&th_receiveFromMon, (void (*)(void *)) &Tasks::ReceiveFromMonTask, this)) { if (err = rt_task_start(&th_receiveFromMon, reinterpret_cast<void (*)(void *)>(&Tasks::ReceiveFromMonTask), this)) {
cerr << "Error task start ReceiveFromMonTask: " << strerror(-err) << endl; cerr << "Error task start ReceiveFromMonTask: " << strerror(-err) << endl;
exit(EXIT_FAILURE); exit(EXIT_FAILURE);
} }
if (err = rt_task_start(&th_openComRobot, (void (*)(void *)) &Tasks::OpenComRobot, this)) { if (err = rt_task_start(&th_openComRobot, reinterpret_cast<void (*)(void *)>(&Tasks::OpenComRobot), this)) {
cerr << "Error task start OpenComRobot: " << strerror(-err) << endl; cerr << "Error task start OpenComRobot: " << strerror(-err) << endl;
exit(EXIT_FAILURE); exit(EXIT_FAILURE);
} }
if (err = rt_task_start(&th_startRobot, (void (*)(void *)) &Tasks::StartRobotTask, this)) { if (err = rt_task_start(&th_startRobot, reinterpret_cast<void (*)(void *)>(&Tasks::StartRobotTask), this)) {
cerr << "Error task start StartRobotTask: " << strerror(-err) << endl; cerr << "Error task start StartRobotTask: " << strerror(-err) << endl;
exit(EXIT_FAILURE); exit(EXIT_FAILURE);
} }
if (err = rt_task_start(&th_move, (void (*)(void *)) &Tasks::MoveTask, this)) { if (err = rt_task_start(&th_move, reinterpret_cast<void (*)(void *)>(&Tasks::MoveTask), this)) {
cerr << "Error task start MoveTask: " << strerror(-err) << endl; cerr << "Error task start MoveTask: " << strerror(-err) << endl;
exit(EXIT_FAILURE); exit(EXIT_FAILURE);
} }
if (err = rt_task_start(&th_sendBatteryLevel, (void (*)(void *)) &Tasks::SendBatteryLevel, this)) { if (err = rt_task_start(&th_sendBatteryLevel, reinterpret_cast<void (*)(void *)>(&Tasks::SendBatteryLevel), this)) {
cerr << "Error task start SendBatteryLevel: " << strerror(-err) << endl; cerr << "Error task start SendBatteryLevel: " << strerror(-err) << endl;
exit(EXIT_FAILURE); exit(EXIT_FAILURE);
} }
@ -219,8 +221,8 @@ void Tasks::ServerTask(void *arg) {
cout << "Open server on port " << (SERVER_PORT) << " (" << status << ")" << endl; cout << "Open server on port " << (SERVER_PORT) << " (" << status << ")" << endl;
if (status < 0) if (status < 0)
throw std::runtime_error{ throw runtime_error{
"Unable to start server on port " + std::to_string(SERVER_PORT) "Unable to start server on port " + to_string(SERVER_PORT)
}; };
monitor.AcceptClient(); // Wait the monitor client monitor.AcceptClient(); // Wait the monitor client
cout << "Rock'n'Roll baby, client accepted!" << endl; cout << "Rock'n'Roll baby, client accepted!" << endl;
@ -314,7 +316,7 @@ void Tasks::ReceiveFromMonTask(void *arg) {
status = robot.Open(); status = robot.Open();
rt_mutex_release(&mutex_robot); rt_mutex_release(&mutex_robot);
cout << status; cout << status;
cout << ")" << endl << flush; cout << ")" << endl;
Message *msgSend; Message *msgSend;
if (status < 0) { if (status < 0) {
@ -361,7 +363,7 @@ void Tasks::ReceiveFromMonTask(void *arg) {
[[noreturn]] void Tasks::SendBatteryLevel(void *arg) { [[noreturn]] void Tasks::SendBatteryLevel(void *arg) {
int rs; int rs;
cout << "Start " << __PRETTY_FUNCTION__ << endl << flush; cout << "Start " << __PRETTY_FUNCTION__ << endl;
// 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);
@ -369,7 +371,7 @@ void Tasks::ReceiveFromMonTask(void *arg) {
/* The task sendBatteryLevel starts here */ /* The task sendBatteryLevel starts here */
/* *************************************************************************************/ /* *************************************************************************************/
rt_task_set_periodic(nullptr, TM_NOW, 500000000); // 500 ms //TODO rt_task_set_periodic(nullptr, TM_NOW, 500000000); // 500 ms
while (true) { while (true) {
rt_task_wait_period(nullptr); rt_task_wait_period(nullptr);
@ -380,8 +382,7 @@ void Tasks::ReceiveFromMonTask(void *arg) {
rt_mutex_release(&mutex_robotStarted); rt_mutex_release(&mutex_robotStarted);
if (rs == 1) { if (rs == 1) {
rt_mutex_acquire(&mutex_robot, TM_INFINITE); rt_mutex_acquire(&mutex_robot, TM_INFINITE);
auto battRequest = new Message(MESSAGE_ROBOT_BATTERY_GET); auto msg = dynamic_cast<MessageBattery *>(robot.Write(ComRobot::GetBattery()));
auto msg = dynamic_cast<MessageBattery *>(robot.Write(battRequest));
if (msg == nullptr) { if (msg == nullptr) {
cout << "NULLPTR" << endl; cout << "NULLPTR" << endl;
} else { } else {
@ -407,7 +408,7 @@ void Tasks::ReceiveFromMonTask(void *arg) {
/* ************************************************************************************** /* **************************************************************************************
* The task starts here * The task starts here
* *************************************************************************************/ * *************************************************************************************/
rt_task_set_periodic(nullptr, TM_NOW, 100000000); rt_task_set_periodic(nullptr, TM_NOW, 100000000); // 100 ms
while (true) { while (true) {
rt_task_wait_period(nullptr); rt_task_wait_period(nullptr);
@ -426,7 +427,7 @@ void Tasks::ReceiveFromMonTask(void *arg) {
robot.Write(new Message((MessageID) cpMove)); robot.Write(new Message((MessageID) cpMove));
rt_mutex_release(&mutex_robot); rt_mutex_release(&mutex_robot);
} }
cout << endl << flush; cout << endl;
} }
} }
@ -439,7 +440,7 @@ void Tasks::WriteInQueue(RT_QUEUE *queue, Message *msg) {
int err; int err;
if ((err = rt_queue_write(queue, (const void *) &msg, sizeof((const void *) &msg), Q_NORMAL)) < 0) { if ((err = rt_queue_write(queue, (const void *) &msg, sizeof((const void *) &msg), Q_NORMAL)) < 0) {
cerr << "Write in queue failed: " << strerror(-err) << endl; cerr << "Write in queue failed: " << strerror(-err) << endl;
throw std::runtime_error{"Error in write in queue"}; throw runtime_error{"Error in write in queue"};
} }
} }
@ -454,9 +455,9 @@ Message *Tasks::ReadInQueue(RT_QUEUE *queue) {
if ((err = rt_queue_read(queue, &msg, sizeof((void *) &msg), TM_INFINITE)) < 0) { if ((err = rt_queue_read(queue, &msg, sizeof((void *) &msg), TM_INFINITE)) < 0) {
cout << "Read in queue failed: " << strerror(-err) << endl; cout << "Read in queue failed: " << strerror(-err) << endl;
throw std::runtime_error{"Error in read in queue"}; throw runtime_error{"Error in read in queue"};
}/** else { }/** else {
cout << "@msg :" << msg << endl << flush; cout << "@msg :" << msg << endl;
} **/ } **/
return msg; return msg;

View file

@ -34,8 +34,6 @@
#include "camera.h" #include "camera.h"
#include "img.h" #include "img.h"
using namespace std;
class Tasks { class Tasks {
public: public:
/** /**
@ -149,14 +147,14 @@ private:
* @param queue Queue identifier * @param queue Queue identifier
* @param msg Message to be stored * @param msg Message to be stored
*/ */
void WriteInQueue(RT_QUEUE *queue, Message *msg); static void WriteInQueue(RT_QUEUE *queue, Message *msg);
/** /**
* Read a message from a given queue, block if empty * Read a message from a given queue, block if empty
* @param queue Queue identifier * @param queue Queue identifier
* @return Message read * @return Message read
*/ */
Message *ReadInQueue(RT_QUEUE *queue); static Message *ReadInQueue(RT_QUEUE *queue);
}; };