Newer
Older
Mariano Lizarraga
committed
#include "SlugsDataSensorView.h"
#include "ui_SlugsDataSensorView.h"
#include <UASManager.h>
Mariano Lizarraga
committed
Mariano Lizarraga
committed
SlugsDataSensorView::SlugsDataSensorView(QWidget *parent) :
QWidget(parent),
ui(new Ui::SlugsDataSensorView)
{
ui->setupUi(this);
Mariano Lizarraga
committed
activeUAS = NULL;
Mariano Lizarraga
committed
this->setVisible(false);
Mariano Lizarraga
committed
}
SlugsDataSensorView::~SlugsDataSensorView()
{
delete ui;
}
void SlugsDataSensorView::addUAS(UASInterface* uas)
{
SlugsMAV* slugsMav = dynamic_cast<SlugsMAV*>(uas);
Mariano Lizarraga
committed
if (slugsMav != NULL) {
Mariano Lizarraga
committed
connect(slugsMav, SIGNAL(slugsRawImu(int, const mavlink_raw_imu_t&)), this, SLOT(slugRawDataChanged(int, const mavlink_raw_imu_t&)));
Mariano Lizarraga
committed
#ifdef MAVLINK_ENABLED_SLUGS
Mariano Lizarraga
committed
connect(slugsMav, SIGNAL(localPositionChanged(UASInterface*,double,double,double,quint64)), this, SLOT(slugLocalPositionChanged(UASInterface*,double,double,double,quint64)));
connect(slugsMav, SIGNAL(speedChanged(UASInterface*,double,double,double,quint64)), this, SLOT(slugSpeedLocalPositionChanged(UASInterface*,double,double,double,quint64)));
connect(slugsMav, SIGNAL(attitudeChanged(UASInterface*,double,double,double,quint64)), this, SLOT(slugAttitudeChanged(UASInterface*,double,double,double,quint64)));
connect(slugsMav, SIGNAL(globalPositionChanged(UASInterface*,double,double,double,quint64)), this, SLOT(slugsGlobalPositionChanged(UASInterface*,double,double,double,quint64)));
connect(slugsMav,SIGNAL(slugsGPSCogSog(int,double,double)),this,SLOT(slugsGPSCogSog(int,double,double)));
//connect slugs especial messages
Mariano Lizarraga
committed
connect(slugsMav, SIGNAL(slugsSensorBias(int,const mavlink_sensor_bias_t&)), this, SLOT(slugsSensorBiasChanged(int,const mavlink_sensor_bias_t&)));
connect(slugsMav, SIGNAL(slugsDiagnostic(int,const mavlink_diagnostic_t&)), this, SLOT(slugsDiagnosticMessageChanged(int,const mavlink_diagnostic_t&)));
connect(slugsMav, SIGNAL(slugsCPULoad(int,const mavlink_cpu_load_t&)), this, SLOT(slugsCpuLoadChanged(int,const mavlink_cpu_load_t&)));
connect(slugsMav, SIGNAL(slugsNavegation(int,const mavlink_slugs_navigation_t&)),this,SLOT(slugsNavegationChanged(int,const mavlink_slugs_navigation_t&)));
connect(slugsMav, SIGNAL(slugsDataLog(int,const mavlink_data_log_t&)), this, SLOT(slugsDataLogChanged(int,const mavlink_data_log_t&)));
connect(slugsMav, SIGNAL(slugsPWM(int,const mavlink_pwm_commands_t&)),this,SLOT(slugsPWMChanged(int,const mavlink_pwm_commands_t&)));
connect(slugsMav, SIGNAL(slugsFilteredData(int,const mavlink_filtered_data_t&)),this,SLOT(slugsFilteredDataChanged(int,const mavlink_filtered_data_t&)));
connect(slugsMav, SIGNAL(slugsGPSDateTime(int,const mavlink_gps_date_time_t&)),this,SLOT(slugsGPSDateTimeChanged(int,const mavlink_gps_date_time_t&)));
connect(slugsMav,SIGNAL(slugsAirData(int, const mavlink_air_data_t&)),this,SLOT(slugsAirDataChanged(int, const mavlink_air_data_t&)));
Mariano Lizarraga
committed
#endif // MAVLINK_ENABLED_SLUGS
Mariano Lizarraga
committed
// Set this UAS as active if it is the first one
Mariano Lizarraga
committed
if(activeUAS == 0) {
Mariano Lizarraga
committed
activeUAS = uas;
}
Mariano Lizarraga
committed
}
}
Mariano Lizarraga
committed
void SlugsDataSensorView::slugRawDataChanged(int uasId, const mavlink_raw_imu_t &rawData){
Q_UNUSED(uasId);
Mariano Lizarraga
committed
Mariano Lizarraga
committed
ui->m_Axr->setText(QString::number(rawData.xacc));
ui->m_Ayr->setText(QString::number(rawData.yacc));
ui->m_Azr->setText(QString::number(rawData.zacc));
ui->m_Mxr->setText(QString::number(rawData.xmag));
ui->m_Myr->setText(QString::number(rawData.ymag));
ui->m_Mzr->setText(QString::number(rawData.zmag));
ui->m_Gxr->setText(QString::number(rawData.xgyro));
ui->m_Gyr->setText(QString::number(rawData.ygyro));
ui->m_Gzr->setText(QString::number(rawData.zgyro));
Mariano Lizarraga
committed
}
Mariano Lizarraga
committed
Mariano Lizarraga
committed
void SlugsDataSensorView::setActiveUAS(UASInterface* uas){
activeUAS = uas;
Mariano Lizarraga
committed
}
Mariano Lizarraga
committed
#ifdef MAVLINK_ENABLED_SLUGS
void SlugsDataSensorView::slugsGlobalPositionChanged(UASInterface *uas,
double lat,
double lon,
double alt,
Mariano Lizarraga
committed
quint64 time) {
Q_UNUSED(uas);
Q_UNUSED(time);
Mariano Lizarraga
committed
ui->m_GpsLatitude->setText(QString::number(lat));
ui->m_GpsLongitude->setText(QString::number(lon));
ui->m_GpsHeight->setText(QString::number(alt));
qDebug()<<"GPS Position = "<<lat<<" - "<<lon<<" - "<<alt;
}
void SlugsDataSensorView::slugLocalPositionChanged(UASInterface* uas,
double x,
double y,
double z,
Mariano Lizarraga
committed
quint64 time) {
Q_UNUSED(uas);
Q_UNUSED(time);
Mariano Lizarraga
committed
Mariano Lizarraga
committed
ui->ed_x->setPlainText(QString::number(x));
ui->ed_y->setPlainText(QString::number(y));
ui->ed_z->setPlainText(QString::number(z));
Mariano Lizarraga
committed
//qDebug()<<"Local Position = "<<x<<" - "<<y<<" - "<<z;
Mariano Lizarraga
committed
}
void SlugsDataSensorView::slugSpeedLocalPositionChanged(UASInterface* uas,
double vx,
double vy,
double vz,
Mariano Lizarraga
committed
quint64 time) {
Mariano Lizarraga
committed
Q_UNUSED(time);
ui->ed_vx->setPlainText(QString::number(vx));
ui->ed_vy->setPlainText(QString::number(vy));
ui->ed_vz->setPlainText(QString::number(vz));
Mariano Lizarraga
committed
//qDebug()<<"Speed Local Position = "<<vx<<" - "<<vy<<" - "<<vz;
Mariano Lizarraga
committed
}
void SlugsDataSensorView::slugAttitudeChanged(UASInterface* uas,
double slugroll,
double slugpitch,
double slugyaw,
quint64 time)
Mariano Lizarraga
committed
{
Mariano Lizarraga
committed
Q_UNUSED(time);
Mariano Lizarraga
committed
Mariano Lizarraga
committed
ui->m_Roll->setPlainText(QString::number(slugroll));
ui->m_Pitch->setPlainText(QString::number(slugpitch));
ui->m_Yaw->setPlainText(QString::number(slugyaw));
Mariano Lizarraga
committed
qDebug()<<"Attitude change = "<<slugroll<<" - "<<slugpitch<<" - "<<slugyaw;
Mariano Lizarraga
committed
}
Mariano Lizarraga
committed
Mariano Lizarraga
committed
void SlugsDataSensorView::slugsSensorBiasChanged(int systemId,
const mavlink_sensor_bias_t& sensorBias){
Mariano Lizarraga
committed
Mariano Lizarraga
committed
ui->m_AxBiases->setText(QString::number(sensorBias.axBias));
ui->m_AyBiases->setText(QString::number(sensorBias.ayBias));
ui->m_AzBiases->setText(QString::number(sensorBias.azBias));
ui->m_GxBiases->setText(QString::number(sensorBias.gxBias));
ui->m_GyBiases->setText(QString::number(sensorBias.gyBias));
ui->m_GzBiases->setText(QString::number(sensorBias.gzBias));
Mariano Lizarraga
committed
}
void SlugsDataSensorView::slugsDiagnosticMessageChanged(int systemId,
Mariano Lizarraga
committed
const mavlink_diagnostic_t& diagnostic){
Mariano Lizarraga
committed
ui->m_Fl1->setText(QString::number(diagnostic.diagFl1));
ui->m_Fl2->setText(QString::number(diagnostic.diagFl2));
ui->m_Fl3->setText(QString::number(diagnostic.diagFl2));
Mariano Lizarraga
committed
ui->m_Sh1->setText(QString::number(diagnostic.diagSh1));
ui->m_Sh2->setText(QString::number(diagnostic.diagSh2));
ui->m_Sh3->setText(QString::number(diagnostic.diagSh3));
}
void SlugsDataSensorView::slugsCpuLoadChanged(int systemId,
Mariano Lizarraga
committed
const mavlink_cpu_load_t& cpuLoad){
Mariano Lizarraga
committed
ui->ed_sens->setText(QString::number(cpuLoad.sensLoad));
ui->ed_control->setText(QString::number(cpuLoad.ctrlLoad));
ui->ed_batvolt->setText(QString::number(cpuLoad.batVolt));
}
void SlugsDataSensorView::slugsNavegationChanged(int systemId,
Mariano Lizarraga
committed
const mavlink_slugs_navigation_t& slugsNavigation){
Mariano Lizarraga
committed
ui->m_Um->setText(QString::number(slugsNavigation.u_m));
ui->m_PhiC->setText(QString::number(slugsNavigation.phi_c));
ui->m_PitchC->setText(QString::number(slugsNavigation.theta_c));
ui->m_PsidC->setText(QString::number(slugsNavigation.psiDot_c));
ui->m_AyBody->setText(QString::number(slugsNavigation.ay_body));
ui->m_TotRun->setText(QString::number(slugsNavigation.totalDist));
ui->m_DistToGo->setText(QString::number(slugsNavigation.dist2Go));
ui->m_FromWP->setText(QString::number(slugsNavigation.fromWP));
ui->m_ToWP->setText(QString::number(slugsNavigation.toWP));
}
void SlugsDataSensorView::slugsDataLogChanged(int systemId,
Mariano Lizarraga
committed
const mavlink_data_log_t& dataLog){
Mariano Lizarraga
committed
ui->m_logFl1->setText(QString::number(dataLog.fl_1));
ui->m_logFl2->setText(QString::number(dataLog.fl_2));
ui->m_logFl3->setText(QString::number(dataLog.fl_3));
ui->m_logFl4->setText(QString::number(dataLog.fl_4));
ui->m_logFl5->setText(QString::number(dataLog.fl_5));
ui->m_logFl6->setText(QString::number(dataLog.fl_6));
}
void SlugsDataSensorView::slugsPWMChanged(int systemId,
Mariano Lizarraga
committed
const mavlink_pwm_commands_t& pwmCommands){
Mariano Lizarraga
committed
ui->m_pwmThro->setText(QString::number(pwmCommands.dt_c));
ui->m_pwmAile->setText(QString::number(pwmCommands.dla_c));
ui->m_pwmElev->setText(QString::number(pwmCommands.dle_c));
ui->m_pwmRudd->setText(QString::number(pwmCommands.dr_c));
ui->m_pwmThroTrim->setText(QString::number(pwmCommands.dre_c));
ui->m_pwmAileTrim->setText(QString::number(pwmCommands.dlf_c));
ui->m_pwmElevTrim->setText(QString::number(pwmCommands.drf_c));
ui->m_pwmRuddTrim->setText(QString::number(pwmCommands.aux1));
}
void SlugsDataSensorView::slugsFilteredDataChanged(int systemId,
Mariano Lizarraga
committed
const mavlink_filtered_data_t& filteredData){
Mariano Lizarraga
committed
ui->m_Axf->setText(QString::number(filteredData.aX));
ui->m_Ayf->setText(QString::number(filteredData.aY));
ui->m_Azf->setText(QString::number(filteredData.aZ));
ui->m_Gxf->setText(QString::number(filteredData.gX));
ui->m_Gyf->setText(QString::number(filteredData.gY));
ui->m_Gzf->setText(QString::number(filteredData.gZ));
ui->m_Mxf->setText(QString::number(filteredData.mX));
ui->m_Myf->setText(QString::number(filteredData.mY));
ui->m_Mzf->setText(QString::number(filteredData.mZ));
}
void SlugsDataSensorView::slugsGPSDateTimeChanged(int systemId,
Mariano Lizarraga
committed
const mavlink_gps_date_time_t& gpsDateTime){
QString month, day;
month = QString::number(gpsDateTime.month);
day = QString::number(gpsDateTime.day);
if(gpsDateTime.month < 10) month = "0" + QString::number(gpsDateTime.month);
if(gpsDateTime.day < 10) day = "0" + QString::number(gpsDateTime.day);
ui->m_GpsDate->setText(day + "/" +
month + "/" +
Mariano Lizarraga
committed
QString::number(gpsDateTime.year));
QString hour, min, sec;
hour = QString::number(gpsDateTime.hour);
min = QString::number(gpsDateTime.min);
sec = QString::number(gpsDateTime.sec);
if(gpsDateTime.hour < 10) hour = "0" + QString::number(gpsDateTime.hour);
if(gpsDateTime.min < 10) min = "0" + QString::number(gpsDateTime.min);
if(gpsDateTime.sec < 10) sec = "0" + QString::number(gpsDateTime.sec);
ui->m_GpsTime->setText(hour + ":" +
min + ":" +
sec);
Mariano Lizarraga
committed
ui->m_GpsSat->setText(QString::number(gpsDateTime.visSat));
Mariano Lizarraga
committed
/**
* @brief Updates the air data widget - 171
*/
void SlugsDataSensorView::slugsAirDataChanged(int systemId, const mavlink_air_data_t &airData)
{
Q_UNUSED(systemId);
ui->ed_dynamic->setText(QString::number(airData.dynamicPressure));
ui->ed_static->setText(QString::number(airData.staticPressure));
ui->ed_temp->setText(QString::number(airData.temperature));
// qDebug()<<"Air Data = "<<airData.dynamicPressure<<" - "
// <<airData.staticPressure<<" - "
// <<airData.temperature;
/**
* @brief set COG and SOG values
*
* COG and SOG GPS display on the Widgets
*/
void SlugsDataSensorView::slugsGPSCogSog(int systemId,
double cog,
double sog)
{
Q_UNUSED(systemId);
ui->m_GpsCog->setText(QString::number(cog));
ui->m_GpsSog->setText(QString::number(sog));
}
Mariano Lizarraga
committed
#endif // MAVLINK_ENABLED_SLUGS