Corretto calcolo del tempo heartbeat
This commit is contained in:
@@ -31,13 +31,13 @@ void mqtt_callback::message_arrived(mqtt::const_message_ptr msg) {
|
|||||||
intMsg[mem_->comSettings.TS]);
|
intMsg[mem_->comSettings.TS]);
|
||||||
if (!intMsg[mem_->comSettings.NODE].compare(mem_->comSettings.nodeNames["relay"])){
|
if (!intMsg[mem_->comSettings.NODE].compare(mem_->comSettings.nodeNames["relay"])){
|
||||||
mem_->commonStatus.relayRunning = true;
|
mem_->commonStatus.relayRunning = true;
|
||||||
mem_->commonStatus.relayLast = std::stod(intMsg[mem_->comSettings.TS]);
|
mem_->commonStatus.relayLast = fabs(mem_->commonStatus.relayLast - std::stod(intMsg[mem_->comSettings.TS]));
|
||||||
} else if (!intMsg[mem_->comSettings.NODE].compare(mem_->comSettings.nodeNames["follower"])) {
|
} else if (!intMsg[mem_->comSettings.NODE].compare(mem_->comSettings.nodeNames["follower"])) {
|
||||||
mem_->commonStatus.followerRunning = true;
|
mem_->commonStatus.followerRunning = true;
|
||||||
mem_->commonStatus.followerLast = std::stod(intMsg[mem_->comSettings.TS]);
|
mem_->commonStatus.followerLast = fabs(mem_->commonStatus.followerLast - std::stod(intMsg[mem_->comSettings.TS]));
|
||||||
} else if (!intMsg[mem_->comSettings.NODE].compare(mem_->comSettings.nodeNames["recorder"])) {
|
} else if (!intMsg[mem_->comSettings.NODE].compare(mem_->comSettings.nodeNames["recorder"])) {
|
||||||
mem_->commonStatus.recorderRunning = true;
|
mem_->commonStatus.recorderRunning = true;
|
||||||
mem_->commonStatus.recorderLast = std::stod(intMsg[mem_->comSettings.TS]);
|
mem_->commonStatus.recorderLast = fabs(mem_->commonStatus.recorderLast - std::stod(intMsg[mem_->comSettings.TS]));
|
||||||
} else {
|
} else {
|
||||||
log_->error("Node {} unknown", intMsg[mem_->comSettings.NODE].c_str());
|
log_->error("Node {} unknown", intMsg[mem_->comSettings.NODE].c_str());
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -4,6 +4,18 @@ RoboGlue_SHARED::RoboGlue_SHARED(QSettings *set){
|
|||||||
settings=set;
|
settings=set;
|
||||||
//FIXME: inserire la lettura di quesste informazioni da un file
|
//FIXME: inserire la lettura di quesste informazioni da un file
|
||||||
robotVariables.insert(std::pair<std::string, int>("RDY",1));
|
robotVariables.insert(std::pair<std::string, int>("RDY",1));
|
||||||
|
statusTimer = new QTimer(this);
|
||||||
|
connect(statusTimer, SIGNAL(timeout()), this, SLOT(on_statusTimer()));
|
||||||
|
statusTimer->start(static_cast<int>(comSettings.deadTime*1000));
|
||||||
|
}
|
||||||
|
|
||||||
|
RoboGlue_SHARED::~RoboGlue_SHARED(){
|
||||||
|
statusTimer->stop();
|
||||||
|
delete statusTimer;
|
||||||
|
}
|
||||||
|
|
||||||
|
void RoboGlue_SHARED::on_statusTimer(void){
|
||||||
|
emit this->commonStatusChange();
|
||||||
}
|
}
|
||||||
////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////
|
||||||
/////////////////////// RESTORE FUNCTIONS /////////////////////
|
/////////////////////// RESTORE FUNCTIONS /////////////////////
|
||||||
|
|||||||
@@ -28,6 +28,7 @@
|
|||||||
#include <QSettings>
|
#include <QSettings>
|
||||||
#include <QPoint>
|
#include <QPoint>
|
||||||
#include <QSize>
|
#include <QSize>
|
||||||
|
#include <QTimer>
|
||||||
#include <stdexcept>
|
#include <stdexcept>
|
||||||
#include <libJson/json.hpp>
|
#include <libJson/json.hpp>
|
||||||
#include <libURcom/URCLinterface.h>
|
#include <libURcom/URCLinterface.h>
|
||||||
@@ -40,7 +41,9 @@ class RoboGlue_SHARED : public QObject{
|
|||||||
|
|
||||||
public:
|
public:
|
||||||
RoboGlue_SHARED(QSettings *set);
|
RoboGlue_SHARED(QSettings *set);
|
||||||
|
virtual ~RoboGlue_SHARED();
|
||||||
QMutex mutex;
|
QMutex mutex;
|
||||||
|
QTimer* statusTimer;
|
||||||
|
|
||||||
//////////// COMMON MODULES STATUS ///////////////
|
//////////// COMMON MODULES STATUS ///////////////
|
||||||
struct {
|
struct {
|
||||||
@@ -130,6 +133,9 @@ public:
|
|||||||
|
|
||||||
signals:
|
signals:
|
||||||
void commonStatusChange(void);
|
void commonStatusChange(void);
|
||||||
|
|
||||||
|
private slots:
|
||||||
|
void on_statusTimer(void);
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif // ROBOGLUE_SHARED_H
|
#endif // ROBOGLUE_SHARED_H
|
||||||
|
|||||||
Reference in New Issue
Block a user