Files
ihm/preparation/Lidar.cpp
2024-04-01 22:05:50 +02:00

74 lines
2.5 KiB
C++

#include "Lidar.h"
Lidar::Lidar(QWidget *parent) : QWidget(parent)
{
this->mainLayout = new QVBoxLayout(this);
this->mainLayout->setAlignment(Qt::AlignTop);
this->title = new QLabel("Lidar", this);
this->title->setStyleSheet("font-size: 24px; color: black;");
this->startLidar = new QPushButton("Start", this);
this->startLidar->setStyleSheet("height: 46px; color: black; font-size: 24px;");
this->position = new QHBoxLayout();
this->postionTitle = new QLabel("x: 0, y : 0, r: 0", this);
this->postionTitle->setStyleSheet("font-size: 24px; color: black;");
this->positionButton = new QPushButton("Get pos", this);
this->positionButton->setStyleSheet("height: 46px; color: black; font-size: 24px;");
this->position->addWidget(postionTitle);
this->position->addWidget(positionButton);
this->health = new QHBoxLayout();
this->healthTitle = new QLabel("Health : OK", this);
this->healthTitle->setStyleSheet("font-size: 24px; color: black;");
this->healthButton = new QPushButton("Get health", this);
this->healthButton->setStyleSheet("height: 46px; color: black; font-size: 24px;");
this->health->addWidget(healthTitle);
this->health->addWidget(healthButton);
this->mainLayout->addWidget(title, 0, Qt::AlignCenter);
this->mainLayout->addWidget(startLidar, 0, Qt::AlignCenter);
this->mainLayout->addLayout(position);
this->mainLayout->addLayout(health);
connect(this->startLidar, &QPushButton::clicked, this, &Lidar::onStartButtonClicked);
connect(this->positionButton, &QPushButton::clicked, this, &Lidar::onPositionButtonClicked);
connect(this->healthButton, &QPushButton::clicked, this, &Lidar::onHealthButtonClicked);
}
void Lidar::TCPMessage(const QString &message) {
auto list = message.split(";");
if (list[2] == "set health")
{
if (list[3] == "1")
{
this->healthTitle->setText("Health : OK");
} else if (list[3] == "0")
{
this->healthTitle->setText("Health : KO");
}
} else if (list[2] == "set avoidance")
{
auto pos = list[3].split(",");
this->postionTitle->setText("x: " + pos[0] + ", y: " + pos[1] + ", r: " + pos[2]);
}
}
void Lidar::onStartButtonClicked()
{
emit askTCPServer("ihm;lidar;start;1");
}
void Lidar::onHealthButtonClicked()
{
emit askTCPServer("ihm;lidar;get health;1");
}
void Lidar::onPositionButtonClicked()
{
emit askTCPServer("ihm;lidar;get data;1");
}