Corretto calcolo del tempo heartbeat

This commit is contained in:
2019-11-05 16:15:53 +01:00
parent 187c3ed9fc
commit 64a4b9b122
3 changed files with 21 additions and 3 deletions

View File

@@ -31,13 +31,13 @@ void mqtt_callback::message_arrived(mqtt::const_message_ptr msg) {
intMsg[mem_->comSettings.TS]);
if (!intMsg[mem_->comSettings.NODE].compare(mem_->comSettings.nodeNames["relay"])){
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"])) {
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"])) {
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 {
log_->error("Node {} unknown", intMsg[mem_->comSettings.NODE].c_str());
}

View File

@@ -4,6 +4,18 @@ RoboGlue_SHARED::RoboGlue_SHARED(QSettings *set){
settings=set;
//FIXME: inserire la lettura di quesste informazioni da un file
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 /////////////////////

View File

@@ -28,6 +28,7 @@
#include <QSettings>
#include <QPoint>
#include <QSize>
#include <QTimer>
#include <stdexcept>
#include <libJson/json.hpp>
#include <libURcom/URCLinterface.h>
@@ -40,7 +41,9 @@ class RoboGlue_SHARED : public QObject{
public:
RoboGlue_SHARED(QSettings *set);
virtual ~RoboGlue_SHARED();
QMutex mutex;
QTimer* statusTimer;
//////////// COMMON MODULES STATUS ///////////////
struct {
@@ -130,6 +133,9 @@ public:
signals:
void commonStatusChange(void);
private slots:
void on_statusTimer(void);
};
#endif // ROBOGLUE_SHARED_H