mirror of
https://bitbucket.org/librepilot/librepilot.git
synced 2025-03-16 08:29:15 +01:00
Merged in f5soh/librepilot/LP-240_AuxMag_Settings_GUI (pull request #183)
LP-240 Add GUI tab for external Magnetometer
This commit is contained in:
commit
618c4bfe5c
@ -60,8 +60,10 @@
|
|||||||
|
|
||||||
// #define DEBUG
|
// #define DEBUG
|
||||||
|
|
||||||
|
#define MAG_ALARM_THRESHOLD 5
|
||||||
|
|
||||||
// Uncomment this to enable 6 point calibration on the accels
|
// Uncomment this to enable 6 point calibration on the accels
|
||||||
#define NOISE_SAMPLES 50
|
#define NOISE_SAMPLES 50
|
||||||
|
|
||||||
class Thread : public QThread {
|
class Thread : public QThread {
|
||||||
public:
|
public:
|
||||||
@ -193,6 +195,27 @@ ConfigRevoWidget::ConfigRevoWidget(QWidget *parent) :
|
|||||||
addWidgetBinding("AttitudeSettings", "BoardRotation", m_ui->yawRotation, AttitudeSettings::BOARDROTATION_YAW);
|
addWidgetBinding("AttitudeSettings", "BoardRotation", m_ui->yawRotation, AttitudeSettings::BOARDROTATION_YAW);
|
||||||
addWidgetBinding("AttitudeSettings", "AccelTau", m_ui->accelTau);
|
addWidgetBinding("AttitudeSettings", "AccelTau", m_ui->accelTau);
|
||||||
|
|
||||||
|
addWidgetBinding("AuxMagSettings", "Usage", m_ui->auxMagUsage, 0, 1, true);
|
||||||
|
addWidgetBinding("AuxMagSettings", "Type", m_ui->auxMagType, 0, 1, true);
|
||||||
|
|
||||||
|
addWidgetBinding("RevoSettings", "MagnetometerMaxDeviation", m_ui->maxDeviationWarning, RevoSettings::MAGNETOMETERMAXDEVIATION_WARNING);
|
||||||
|
addWidgetBinding("RevoSettings", "MagnetometerMaxDeviation", m_ui->maxDeviationError, RevoSettings::MAGNETOMETERMAXDEVIATION_ERROR);
|
||||||
|
|
||||||
|
addWidgetBinding("AuxMagSettings", "BoardRotation", m_ui->auxMagRollRotation, AuxMagSettings::BOARDROTATION_ROLL);
|
||||||
|
addWidgetBinding("AuxMagSettings", "BoardRotation", m_ui->auxMagPitchRotation, AuxMagSettings::BOARDROTATION_PITCH);
|
||||||
|
addWidgetBinding("AuxMagSettings", "BoardRotation", m_ui->auxMagYawRotation, AuxMagSettings::BOARDROTATION_YAW);
|
||||||
|
|
||||||
|
connect(m_ui->tabWidget, SIGNAL(currentChanged(int)), this, SLOT(onBoardAuxMagError()));
|
||||||
|
connect(MagSensor::GetInstance(getObjectManager()), SIGNAL(objectUpdated(UAVObject *)), this, SLOT(onBoardAuxMagError()));
|
||||||
|
connect(MagState::GetInstance(getObjectManager()), SIGNAL(objectUpdated(UAVObject *)), this, SLOT(updateMagStatus()));
|
||||||
|
connect(HomeLocation::GetInstance(getObjectManager()), SIGNAL(objectUpdated(UAVObject *)), this, SLOT(updateMagBeVector()));
|
||||||
|
|
||||||
|
addWidget(m_ui->internalAuxErrorX);
|
||||||
|
addWidget(m_ui->internalAuxErrorY);
|
||||||
|
addWidget(m_ui->internalAuxErrorZ);
|
||||||
|
|
||||||
|
displayMagError = false;
|
||||||
|
|
||||||
// Connect the help button
|
// Connect the help button
|
||||||
connect(m_ui->attitudeHelp, SIGNAL(clicked()), this, SLOT(openHelp()));
|
connect(m_ui->attitudeHelp, SIGNAL(clicked()), this, SLOT(openHelp()));
|
||||||
|
|
||||||
@ -384,6 +407,9 @@ void ConfigRevoWidget::refreshWidgetsValues(UAVObject *object)
|
|||||||
|
|
||||||
QString beStr = QString("%1:%2:%3").arg(QString::number(homeLocationData.Be[0]), QString::number(homeLocationData.Be[1]), QString::number(homeLocationData.Be[2]));
|
QString beStr = QString("%1:%2:%3").arg(QString::number(homeLocationData.Be[0]), QString::number(homeLocationData.Be[1]), QString::number(homeLocationData.Be[2]));
|
||||||
m_ui->beBox->setText(beStr);
|
m_ui->beBox->setText(beStr);
|
||||||
|
|
||||||
|
updateMagBeVector();
|
||||||
|
onBoardAuxMagError();
|
||||||
}
|
}
|
||||||
|
|
||||||
void ConfigRevoWidget::updateObjectsFromWidgets()
|
void ConfigRevoWidget::updateObjectsFromWidgets()
|
||||||
@ -451,6 +477,225 @@ void ConfigRevoWidget::enableAllCalibrations()
|
|||||||
m_ui->thermalBiasStart->setEnabled(true);
|
m_ui->thermalBiasStart->setEnabled(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void ConfigRevoWidget::onBoardAuxMagError()
|
||||||
|
{
|
||||||
|
MagSensor *magSensor = MagSensor::GetInstance(getObjectManager());
|
||||||
|
|
||||||
|
Q_ASSERT(magSensor);
|
||||||
|
AuxMagSensor *auxMagSensor = AuxMagSensor::GetInstance(getObjectManager());
|
||||||
|
Q_ASSERT(auxMagSensor);
|
||||||
|
|
||||||
|
if (m_ui->tabWidget->currentIndex() != 2) {
|
||||||
|
// Apply default metadata
|
||||||
|
if (displayMagError) {
|
||||||
|
magSensor->setMetadata(magSensor->getDefaultMetadata());
|
||||||
|
auxMagSensor->setMetadata(auxMagSensor->getDefaultMetadata());
|
||||||
|
displayMagError = false;
|
||||||
|
}
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!displayMagError) {
|
||||||
|
// Apply new rates
|
||||||
|
UAVObject::Metadata mdata = magSensor->getMetadata();
|
||||||
|
UAVObject::SetFlightTelemetryUpdateMode(mdata, UAVObject::UPDATEMODE_PERIODIC);
|
||||||
|
mdata.flightTelemetryUpdatePeriod = 300;
|
||||||
|
magSensor->setMetadata(mdata);
|
||||||
|
|
||||||
|
mdata = auxMagSensor->getMetadata();
|
||||||
|
UAVObject::SetFlightTelemetryUpdateMode(mdata, UAVObject::UPDATEMODE_PERIODIC);
|
||||||
|
mdata.flightTelemetryUpdatePeriod = 300;
|
||||||
|
auxMagSensor->setMetadata(mdata);
|
||||||
|
|
||||||
|
displayMagError = true;
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
float onboardMag[3];
|
||||||
|
float auxMag[3];
|
||||||
|
|
||||||
|
onboardMag[0] = magSensor->x();
|
||||||
|
onboardMag[1] = magSensor->y();
|
||||||
|
onboardMag[2] = magSensor->z();
|
||||||
|
|
||||||
|
float normalizedMag[3];
|
||||||
|
float normalizedAuxMag[3];
|
||||||
|
float xDiff = 0.0f;
|
||||||
|
float yDiff = 0.0f;
|
||||||
|
float zDiff = 0.0f;
|
||||||
|
|
||||||
|
// Smooth Mag readings
|
||||||
|
float alpha = 0.7f;
|
||||||
|
float inv_alpha = (1.0f - alpha);
|
||||||
|
// Onboard mag
|
||||||
|
onboardMagFiltered[0] = (onboardMagFiltered[0] * alpha) + (onboardMag[0] * inv_alpha);
|
||||||
|
onboardMagFiltered[1] = (onboardMagFiltered[1] * alpha) + (onboardMag[1] * inv_alpha);
|
||||||
|
onboardMagFiltered[2] = (onboardMagFiltered[2] * alpha) + (onboardMag[2] * inv_alpha);
|
||||||
|
|
||||||
|
// Normalize vector
|
||||||
|
float magLength = sqrt((onboardMagFiltered[0] * onboardMagFiltered[0]) +
|
||||||
|
(onboardMagFiltered[1] * onboardMagFiltered[1]) +
|
||||||
|
(onboardMagFiltered[2] * onboardMagFiltered[2]));
|
||||||
|
|
||||||
|
normalizedMag[0] = onboardMagFiltered[0] / magLength;
|
||||||
|
normalizedMag[1] = onboardMagFiltered[1] / magLength;
|
||||||
|
normalizedMag[2] = onboardMagFiltered[2] / magLength;
|
||||||
|
|
||||||
|
if (auxMagSensor->status() > (int)AuxMagSensor::STATUS_NONE) {
|
||||||
|
auxMag[0] = auxMagSensor->x();
|
||||||
|
auxMag[1] = auxMagSensor->y();
|
||||||
|
auxMag[2] = auxMagSensor->z();
|
||||||
|
|
||||||
|
auxMagFiltered[0] = (auxMagFiltered[0] * alpha) + (auxMag[0] * inv_alpha);
|
||||||
|
auxMagFiltered[1] = (auxMagFiltered[1] * alpha) + (auxMag[1] * inv_alpha);
|
||||||
|
auxMagFiltered[2] = (auxMagFiltered[2] * alpha) + (auxMag[2] * inv_alpha);
|
||||||
|
|
||||||
|
// Normalize vector
|
||||||
|
float auxMagLength = sqrt((auxMagFiltered[0] * auxMagFiltered[0]) +
|
||||||
|
(auxMagFiltered[1] * auxMagFiltered[1]) +
|
||||||
|
(auxMagFiltered[2] * auxMagFiltered[2]));
|
||||||
|
|
||||||
|
normalizedAuxMag[0] = auxMagFiltered[0] / auxMagLength;
|
||||||
|
normalizedAuxMag[1] = auxMagFiltered[1] / auxMagLength;
|
||||||
|
normalizedAuxMag[2] = auxMagFiltered[2] / auxMagLength;
|
||||||
|
|
||||||
|
// Calc diff and scale
|
||||||
|
xDiff = (normalizedMag[0] - normalizedAuxMag[0]) * 25.0f;
|
||||||
|
yDiff = (normalizedMag[1] - normalizedAuxMag[1]) * 25.0f;
|
||||||
|
zDiff = (normalizedMag[2] - normalizedAuxMag[2]) * 25.0f;
|
||||||
|
} else {
|
||||||
|
auxMag[0] = auxMag[1] = auxMag[2] = 0.0f;
|
||||||
|
auxMagFiltered[0] = auxMagFiltered[1] = auxMagFiltered[2] = 0.0f;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Display Mag/AuxMag diff for every axis
|
||||||
|
m_ui->internalAuxErrorX->setValue(xDiff > 50.0f ? 50.0f : xDiff < -50.0f ? -50.0f : xDiff);
|
||||||
|
m_ui->internalAuxErrorY->setValue(yDiff > 50.0f ? 50.0f : yDiff < -50.0f ? -50.0f : yDiff);
|
||||||
|
m_ui->internalAuxErrorZ->setValue(zDiff > 50.0f ? 50.0f : zDiff < -50.0f ? -50.0f : zDiff);
|
||||||
|
|
||||||
|
updateMagAlarm(getMagError(onboardMag), (auxMagSensor->status() == (int)AuxMagSensor::STATUS_NONE) ? -1.0f : getMagError(auxMag));
|
||||||
|
}
|
||||||
|
|
||||||
|
void ConfigRevoWidget::updateMagAlarm(float errorMag, float errorAuxMag)
|
||||||
|
{
|
||||||
|
RevoSettings *revoSettings = RevoSettings::GetInstance(getObjectManager());
|
||||||
|
|
||||||
|
Q_ASSERT(revoSettings);
|
||||||
|
RevoSettings::DataFields revoSettingsData = revoSettings->getData();
|
||||||
|
|
||||||
|
QStringList AlarmColor;
|
||||||
|
AlarmColor << "grey" << "green" << "orange" << "red";
|
||||||
|
enum magAlarmState { MAG_NOT_FOUND = 0, MAG_OK = 1, MAG_WARNING = 2, MAG_ERROR = 3 };
|
||||||
|
|
||||||
|
QString bgColorMag = AlarmColor[MAG_OK];
|
||||||
|
QString bgColorAuxMag = AlarmColor[MAG_OK];
|
||||||
|
|
||||||
|
// Onboard Mag
|
||||||
|
if (errorMag < revoSettingsData.MagnetometerMaxDeviation[RevoSettings::MAGNETOMETERMAXDEVIATION_WARNING]) {
|
||||||
|
magWarningCount = 0;
|
||||||
|
magErrorCount = 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (errorMag < revoSettingsData.MagnetometerMaxDeviation[RevoSettings::MAGNETOMETERMAXDEVIATION_ERROR]) {
|
||||||
|
magErrorCount = 0;
|
||||||
|
if (magWarningCount > MAG_ALARM_THRESHOLD) {
|
||||||
|
bgColorMag = AlarmColor[MAG_WARNING];
|
||||||
|
} else {
|
||||||
|
magWarningCount++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (magErrorCount > MAG_ALARM_THRESHOLD) {
|
||||||
|
bgColorMag = AlarmColor[MAG_ERROR];
|
||||||
|
} else {
|
||||||
|
magErrorCount++;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Auxiliary Mag
|
||||||
|
if (errorAuxMag > -1.0f) {
|
||||||
|
if (errorAuxMag < revoSettingsData.MagnetometerMaxDeviation[RevoSettings::MAGNETOMETERMAXDEVIATION_WARNING]) {
|
||||||
|
auxMagWarningCount = 0;
|
||||||
|
auxMagErrorCount = 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (errorAuxMag < revoSettingsData.MagnetometerMaxDeviation[RevoSettings::MAGNETOMETERMAXDEVIATION_ERROR]) {
|
||||||
|
auxMagErrorCount = 0;
|
||||||
|
if (auxMagWarningCount > MAG_ALARM_THRESHOLD) {
|
||||||
|
bgColorAuxMag = AlarmColor[MAG_WARNING];
|
||||||
|
} else {
|
||||||
|
auxMagWarningCount++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (auxMagErrorCount > MAG_ALARM_THRESHOLD) {
|
||||||
|
bgColorAuxMag = AlarmColor[MAG_ERROR];
|
||||||
|
} else {
|
||||||
|
auxMagErrorCount++;
|
||||||
|
}
|
||||||
|
errorAuxMag = ((errorAuxMag * 100.0f) <= 100.0f) ? errorAuxMag * 100.0f : 100.0f;
|
||||||
|
m_ui->auxMagStatus->setText("AuxMag\n" + QString::number(errorAuxMag, 'f', 1) + "%");
|
||||||
|
} else {
|
||||||
|
// Disable aux mag alarm
|
||||||
|
bgColorAuxMag = AlarmColor[MAG_NOT_FOUND];
|
||||||
|
m_ui->auxMagStatus->setText("AuxMag\nnot found");
|
||||||
|
}
|
||||||
|
|
||||||
|
errorMag = ((errorMag * 100.0f) <= 100.0f) ? errorMag * 100.0f : 100.0f;
|
||||||
|
m_ui->onBoardMagStatus->setText("Onboard\n" + QString::number(errorMag, 'f', 1) + "%");
|
||||||
|
m_ui->onBoardMagStatus->setStyleSheet(
|
||||||
|
"QLabel { background-color: " + bgColorMag + ";"
|
||||||
|
"color: rgb(255, 255, 255); border-radius: 5; margin:1px; font:bold; }");
|
||||||
|
m_ui->auxMagStatus->setStyleSheet(
|
||||||
|
"QLabel { background-color: " + bgColorAuxMag + ";"
|
||||||
|
"color: rgb(255, 255, 255); border-radius: 5; margin:1px; font:bold; }");
|
||||||
|
}
|
||||||
|
|
||||||
|
float ConfigRevoWidget::getMagError(float mag[3])
|
||||||
|
{
|
||||||
|
float magnitude = sqrt((mag[0] * mag[0]) + (mag[1] * mag[1]) + (mag[2] * mag[2]));
|
||||||
|
float magnitudeBe = sqrt((magBe[0] * magBe[0]) + (magBe[1] * magBe[1]) + (magBe[2] * magBe[2]));
|
||||||
|
float invMagnitudeBe = 1.0f / magnitudeBe;
|
||||||
|
// Absolute value of relative error against Be
|
||||||
|
float error = fabsf(magnitude - magnitudeBe) * invMagnitudeBe;
|
||||||
|
|
||||||
|
return error;
|
||||||
|
}
|
||||||
|
|
||||||
|
void ConfigRevoWidget::updateMagBeVector()
|
||||||
|
{
|
||||||
|
HomeLocation *homeLocation = HomeLocation::GetInstance(getObjectManager());
|
||||||
|
|
||||||
|
Q_ASSERT(homeLocation);
|
||||||
|
HomeLocation::DataFields homeLocationData = homeLocation->getData();
|
||||||
|
|
||||||
|
magBe[0] = homeLocationData.Be[0];
|
||||||
|
magBe[1] = homeLocationData.Be[1];
|
||||||
|
magBe[2] = homeLocationData.Be[2];
|
||||||
|
}
|
||||||
|
|
||||||
|
void ConfigRevoWidget::updateMagStatus()
|
||||||
|
{
|
||||||
|
MagState *magState = MagState::GetInstance(getObjectManager());
|
||||||
|
|
||||||
|
Q_ASSERT(magState);
|
||||||
|
|
||||||
|
MagState::DataFields magStateData = magState->getData();
|
||||||
|
|
||||||
|
if (magStateData.Source == MagState::SOURCE_INVALID) {
|
||||||
|
m_ui->magStatusSource->setText(tr("Source invalid"));
|
||||||
|
m_ui->magStatusSource->setToolTip(tr("Currently no attitude estimation algorithm uses magnetometer or there is something wrong"));
|
||||||
|
} else if (magStateData.Source == MagState::SOURCE_ONBOARD) {
|
||||||
|
m_ui->magStatusSource->setText(tr("Onboard magnetometer"));
|
||||||
|
m_ui->magStatusSource->setToolTip("");
|
||||||
|
} else if (magStateData.Source == MagState::SOURCE_AUX) {
|
||||||
|
m_ui->magStatusSource->setText(tr("Auxiliary magnetometer"));
|
||||||
|
m_ui->magStatusSource->setToolTip("");
|
||||||
|
} else {
|
||||||
|
m_ui->magStatusSource->setText(tr("Unknown"));
|
||||||
|
m_ui->magStatusSource->setToolTip("");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
void ConfigRevoWidget::openHelp()
|
void ConfigRevoWidget::openHelp()
|
||||||
{
|
{
|
||||||
QDesktopServices::openUrl(QUrl(QString(WIKI_URL_ROOT) + QString("Revo+Attitude+Configuration"),
|
QDesktopServices::openUrl(QUrl(QString(WIKI_URL_ROOT) + QString("Revo+Attitude+Configuration"),
|
||||||
|
@ -37,6 +37,11 @@
|
|||||||
#include "calibration/levelcalibrationmodel.h"
|
#include "calibration/levelcalibrationmodel.h"
|
||||||
#include "calibration/gyrobiascalibrationmodel.h"
|
#include "calibration/gyrobiascalibrationmodel.h"
|
||||||
|
|
||||||
|
#include <auxmagsettings.h>
|
||||||
|
#include <magsensor.h>
|
||||||
|
#include <auxmagsensor.h>
|
||||||
|
#include <magstate.h>
|
||||||
|
|
||||||
#include <QWidget>
|
#include <QWidget>
|
||||||
#include <QtSvg/QSvgRenderer>
|
#include <QtSvg/QSvgRenderer>
|
||||||
#include <QtSvg/QGraphicsSvgItem>
|
#include <QtSvg/QGraphicsSvgItem>
|
||||||
@ -67,6 +72,17 @@ private:
|
|||||||
qint16 auxMagStoredBoardRotation[3];
|
qint16 auxMagStoredBoardRotation[3];
|
||||||
bool isBoardRotationStored;
|
bool isBoardRotationStored;
|
||||||
|
|
||||||
|
bool displayMagError;
|
||||||
|
|
||||||
|
float onboardMagFiltered[3];
|
||||||
|
float auxMagFiltered[3];
|
||||||
|
float magBe[3];
|
||||||
|
|
||||||
|
int magWarningCount;
|
||||||
|
int magErrorCount;
|
||||||
|
int auxMagWarningCount;
|
||||||
|
int auxMagErrorCount;
|
||||||
|
|
||||||
private slots:
|
private slots:
|
||||||
void storeAndClearBoardRotation();
|
void storeAndClearBoardRotation();
|
||||||
void recallBoardRotation();
|
void recallBoardRotation();
|
||||||
@ -87,6 +103,13 @@ private slots:
|
|||||||
void disableAllCalibrations();
|
void disableAllCalibrations();
|
||||||
void enableAllCalibrations();
|
void enableAllCalibrations();
|
||||||
|
|
||||||
|
void onBoardAuxMagError();
|
||||||
|
void updateMagStatus();
|
||||||
|
void updateMagBeVector();
|
||||||
|
void updateMagAlarm(float errorMag, float errorAuxMag);
|
||||||
|
|
||||||
|
float getMagError(float mag[3]);
|
||||||
|
|
||||||
void updateVisualHelp();
|
void updateVisualHelp();
|
||||||
void openHelp();
|
void openHelp();
|
||||||
|
|
||||||
|
@ -6,8 +6,8 @@
|
|||||||
<rect>
|
<rect>
|
||||||
<x>0</x>
|
<x>0</x>
|
||||||
<y>0</y>
|
<y>0</y>
|
||||||
<width>1014</width>
|
<width>935</width>
|
||||||
<height>725</height>
|
<height>726</height>
|
||||||
</rect>
|
</rect>
|
||||||
</property>
|
</property>
|
||||||
<property name="windowTitle">
|
<property name="windowTitle">
|
||||||
@ -950,6 +950,705 @@ A setting of 0.00 disables the filter.</string>
|
|||||||
</item>
|
</item>
|
||||||
</layout>
|
</layout>
|
||||||
</widget>
|
</widget>
|
||||||
|
<widget class="QWidget" name="externalMagTab">
|
||||||
|
<property name="enabled">
|
||||||
|
<bool>true</bool>
|
||||||
|
</property>
|
||||||
|
<attribute name="title">
|
||||||
|
<string>Magnetometer</string>
|
||||||
|
</attribute>
|
||||||
|
<layout class="QVBoxLayout" name="verticalLayout_5">
|
||||||
|
<item>
|
||||||
|
<layout class="QGridLayout" name="gridLayout_6">
|
||||||
|
<property name="leftMargin">
|
||||||
|
<number>6</number>
|
||||||
|
</property>
|
||||||
|
<property name="topMargin">
|
||||||
|
<number>6</number>
|
||||||
|
</property>
|
||||||
|
<property name="rightMargin">
|
||||||
|
<number>6</number>
|
||||||
|
</property>
|
||||||
|
<property name="bottomMargin">
|
||||||
|
<number>6</number>
|
||||||
|
</property>
|
||||||
|
<item row="0" column="1">
|
||||||
|
<widget class="QGroupBox" name="gridGroupBox">
|
||||||
|
<property name="sizePolicy">
|
||||||
|
<sizepolicy hsizetype="Expanding" vsizetype="MinimumExpanding">
|
||||||
|
<horstretch>0</horstretch>
|
||||||
|
<verstretch>0</verstretch>
|
||||||
|
</sizepolicy>
|
||||||
|
</property>
|
||||||
|
<property name="minimumSize">
|
||||||
|
<size>
|
||||||
|
<width>500</width>
|
||||||
|
<height>0</height>
|
||||||
|
</size>
|
||||||
|
</property>
|
||||||
|
<property name="title">
|
||||||
|
<string>Auxiliary Magnetometer Orientation Help</string>
|
||||||
|
</property>
|
||||||
|
<layout class="QGridLayout" name="gridLayout_10">
|
||||||
|
<property name="leftMargin">
|
||||||
|
<number>6</number>
|
||||||
|
</property>
|
||||||
|
<property name="topMargin">
|
||||||
|
<number>6</number>
|
||||||
|
</property>
|
||||||
|
<property name="rightMargin">
|
||||||
|
<number>6</number>
|
||||||
|
</property>
|
||||||
|
<property name="bottomMargin">
|
||||||
|
<number>6</number>
|
||||||
|
</property>
|
||||||
|
<item row="2" column="0">
|
||||||
|
<widget class="QLabel" name="label_23">
|
||||||
|
<property name="minimumSize">
|
||||||
|
<size>
|
||||||
|
<width>80</width>
|
||||||
|
<height>30</height>
|
||||||
|
</size>
|
||||||
|
</property>
|
||||||
|
<property name="maximumSize">
|
||||||
|
<size>
|
||||||
|
<width>16777215</width>
|
||||||
|
<height>30</height>
|
||||||
|
</size>
|
||||||
|
</property>
|
||||||
|
<property name="styleSheet">
|
||||||
|
<string notr="true">background-color: qlineargradient(spread:reflect, x1:0.507, y1:0, x2:0.507, y2:0.772, stop:0.208955 rgba(74, 74, 74, 255), stop:0.78607 rgba(36, 36, 36, 255));
|
||||||
|
color: rgb(255, 255, 255);
|
||||||
|
border-radius: 5;
|
||||||
|
margin:1px;
|
||||||
|
font:bold;</string>
|
||||||
|
</property>
|
||||||
|
<property name="text">
|
||||||
|
<string>Y axis</string>
|
||||||
|
</property>
|
||||||
|
<property name="alignment">
|
||||||
|
<set>Qt::AlignCenter</set>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="3" column="0">
|
||||||
|
<widget class="QLabel" name="label_22">
|
||||||
|
<property name="minimumSize">
|
||||||
|
<size>
|
||||||
|
<width>80</width>
|
||||||
|
<height>30</height>
|
||||||
|
</size>
|
||||||
|
</property>
|
||||||
|
<property name="maximumSize">
|
||||||
|
<size>
|
||||||
|
<width>16777215</width>
|
||||||
|
<height>30</height>
|
||||||
|
</size>
|
||||||
|
</property>
|
||||||
|
<property name="styleSheet">
|
||||||
|
<string notr="true">background-color: qlineargradient(spread:reflect, x1:0.507, y1:0, x2:0.507, y2:0.772, stop:0.208955 rgba(74, 74, 74, 255), stop:0.78607 rgba(36, 36, 36, 255));
|
||||||
|
color: rgb(255, 255, 255);
|
||||||
|
border-radius: 5;
|
||||||
|
margin:1px;
|
||||||
|
font:bold;</string>
|
||||||
|
</property>
|
||||||
|
<property name="text">
|
||||||
|
<string>Z axis</string>
|
||||||
|
</property>
|
||||||
|
<property name="alignment">
|
||||||
|
<set>Qt::AlignCenter</set>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="3" column="1">
|
||||||
|
<widget class="QProgressBar" name="internalAuxErrorZ">
|
||||||
|
<property name="toolTip">
|
||||||
|
<string>Difference on Z axis</string>
|
||||||
|
</property>
|
||||||
|
<property name="minimum">
|
||||||
|
<number>-50</number>
|
||||||
|
</property>
|
||||||
|
<property name="maximum">
|
||||||
|
<number>50</number>
|
||||||
|
</property>
|
||||||
|
<property name="value">
|
||||||
|
<number>0</number>
|
||||||
|
</property>
|
||||||
|
<property name="alignment">
|
||||||
|
<set>Qt::AlignCenter</set>
|
||||||
|
</property>
|
||||||
|
<property name="format">
|
||||||
|
<string>%v</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="2" column="1">
|
||||||
|
<widget class="QProgressBar" name="internalAuxErrorY">
|
||||||
|
<property name="toolTip">
|
||||||
|
<string>Difference on Y axis</string>
|
||||||
|
</property>
|
||||||
|
<property name="minimum">
|
||||||
|
<number>-50</number>
|
||||||
|
</property>
|
||||||
|
<property name="maximum">
|
||||||
|
<number>50</number>
|
||||||
|
</property>
|
||||||
|
<property name="value">
|
||||||
|
<number>0</number>
|
||||||
|
</property>
|
||||||
|
<property name="alignment">
|
||||||
|
<set>Qt::AlignCenter</set>
|
||||||
|
</property>
|
||||||
|
<property name="format">
|
||||||
|
<string>%v</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="0" column="0" colspan="2">
|
||||||
|
<widget class="QTextEdit" name="textEdit">
|
||||||
|
<property name="sizePolicy">
|
||||||
|
<sizepolicy hsizetype="Expanding" vsizetype="Expanding">
|
||||||
|
<horstretch>0</horstretch>
|
||||||
|
<verstretch>0</verstretch>
|
||||||
|
</sizepolicy>
|
||||||
|
</property>
|
||||||
|
<property name="html">
|
||||||
|
<string><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
|
||||||
|
<html><head><meta name="qrichtext" content="1" /><style type="text/css">
|
||||||
|
p, li { white-space: pre-wrap; }
|
||||||
|
</style></head><body style=" font-family:'Cantarell'; font-size:11pt; font-weight:400; font-style:normal;">
|
||||||
|
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">The bargraphs show the difference between the onboard and auxiliary magnetometer measurements. </p>
|
||||||
|
<p align="justify" style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">When the auxiliary magnetometer rotation is set correctlly, all bargraphs should show all zero (bargraph centered) <a name="result_box"></a>whatever the vehicle's orientation.</p>
|
||||||
|
<p align="justify" style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">This assumes both magnetometers are calibrated and without alarm.</p></body></html></string>
|
||||||
|
</property>
|
||||||
|
<property name="textInteractionFlags">
|
||||||
|
<set>Qt::LinksAccessibleByKeyboard|Qt::LinksAccessibleByMouse|Qt::TextBrowserInteraction|Qt::TextSelectableByKeyboard|Qt::TextSelectableByMouse</set>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="1" column="1">
|
||||||
|
<widget class="QProgressBar" name="internalAuxErrorX">
|
||||||
|
<property name="toolTip">
|
||||||
|
<string>Difference on X axis</string>
|
||||||
|
</property>
|
||||||
|
<property name="minimum">
|
||||||
|
<number>-50</number>
|
||||||
|
</property>
|
||||||
|
<property name="maximum">
|
||||||
|
<number>50</number>
|
||||||
|
</property>
|
||||||
|
<property name="value">
|
||||||
|
<number>0</number>
|
||||||
|
</property>
|
||||||
|
<property name="alignment">
|
||||||
|
<set>Qt::AlignCenter</set>
|
||||||
|
</property>
|
||||||
|
<property name="textVisible">
|
||||||
|
<bool>true</bool>
|
||||||
|
</property>
|
||||||
|
<property name="format">
|
||||||
|
<string>%v</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="1" column="0">
|
||||||
|
<widget class="QLabel" name="label_24">
|
||||||
|
<property name="minimumSize">
|
||||||
|
<size>
|
||||||
|
<width>80</width>
|
||||||
|
<height>30</height>
|
||||||
|
</size>
|
||||||
|
</property>
|
||||||
|
<property name="maximumSize">
|
||||||
|
<size>
|
||||||
|
<width>16777215</width>
|
||||||
|
<height>30</height>
|
||||||
|
</size>
|
||||||
|
</property>
|
||||||
|
<property name="styleSheet">
|
||||||
|
<string notr="true">background-color: qlineargradient(spread:reflect, x1:0.507, y1:0, x2:0.507, y2:0.772, stop:0.208955 rgba(74, 74, 74, 255), stop:0.78607 rgba(36, 36, 36, 255));
|
||||||
|
color: rgb(255, 255, 255);
|
||||||
|
border-radius: 5;
|
||||||
|
margin:1px;
|
||||||
|
font:bold;</string>
|
||||||
|
</property>
|
||||||
|
<property name="text">
|
||||||
|
<string>X axis</string>
|
||||||
|
</property>
|
||||||
|
<property name="alignment">
|
||||||
|
<set>Qt::AlignCenter</set>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
</layout>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="0" column="0">
|
||||||
|
<layout class="QVBoxLayout" name="verticalLayout_7" stretch="0,0,0">
|
||||||
|
<property name="sizeConstraint">
|
||||||
|
<enum>QLayout::SetDefaultConstraint</enum>
|
||||||
|
</property>
|
||||||
|
<property name="leftMargin">
|
||||||
|
<number>0</number>
|
||||||
|
</property>
|
||||||
|
<item>
|
||||||
|
<widget class="QGroupBox" name="groupBox_8">
|
||||||
|
<property name="sizePolicy">
|
||||||
|
<sizepolicy hsizetype="MinimumExpanding" vsizetype="Preferred">
|
||||||
|
<horstretch>0</horstretch>
|
||||||
|
<verstretch>0</verstretch>
|
||||||
|
</sizepolicy>
|
||||||
|
</property>
|
||||||
|
<property name="title">
|
||||||
|
<string>Magnetometer Settings</string>
|
||||||
|
</property>
|
||||||
|
<layout class="QGridLayout" name="gridLayout_13" columnstretch="0,0,0,0">
|
||||||
|
<property name="sizeConstraint">
|
||||||
|
<enum>QLayout::SetMinimumSize</enum>
|
||||||
|
</property>
|
||||||
|
<item row="1" column="0">
|
||||||
|
<widget class="QLabel" name="label_31">
|
||||||
|
<property name="minimumSize">
|
||||||
|
<size>
|
||||||
|
<width>80</width>
|
||||||
|
<height>0</height>
|
||||||
|
</size>
|
||||||
|
</property>
|
||||||
|
<property name="text">
|
||||||
|
<string>Mag type:</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="0" column="0">
|
||||||
|
<widget class="QLabel" name="label_32">
|
||||||
|
<property name="minimumSize">
|
||||||
|
<size>
|
||||||
|
<width>80</width>
|
||||||
|
<height>0</height>
|
||||||
|
</size>
|
||||||
|
</property>
|
||||||
|
<property name="text">
|
||||||
|
<string>Mag usage:</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="1" column="1" colspan="2">
|
||||||
|
<widget class="QComboBox" name="auxMagType">
|
||||||
|
<property name="sizePolicy">
|
||||||
|
<sizepolicy hsizetype="Minimum" vsizetype="Fixed">
|
||||||
|
<horstretch>0</horstretch>
|
||||||
|
<verstretch>0</verstretch>
|
||||||
|
</sizepolicy>
|
||||||
|
</property>
|
||||||
|
<property name="minimumSize">
|
||||||
|
<size>
|
||||||
|
<width>100</width>
|
||||||
|
<height>0</height>
|
||||||
|
</size>
|
||||||
|
</property>
|
||||||
|
<property name="toolTip">
|
||||||
|
<string>Select the magnetometer type.</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="0" column="1" colspan="2">
|
||||||
|
<widget class="QComboBox" name="auxMagUsage">
|
||||||
|
<property name="sizePolicy">
|
||||||
|
<sizepolicy hsizetype="Minimum" vsizetype="Fixed">
|
||||||
|
<horstretch>0</horstretch>
|
||||||
|
<verstretch>0</verstretch>
|
||||||
|
</sizepolicy>
|
||||||
|
</property>
|
||||||
|
<property name="minimumSize">
|
||||||
|
<size>
|
||||||
|
<width>100</width>
|
||||||
|
<height>0</height>
|
||||||
|
</size>
|
||||||
|
</property>
|
||||||
|
<property name="toolTip">
|
||||||
|
<string>Select how to use available magnetometers.</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="2" column="1">
|
||||||
|
<widget class="QDoubleSpinBox" name="maxDeviationWarning">
|
||||||
|
<property name="toolTip">
|
||||||
|
<string>Warning level in percent (default 5%)</string>
|
||||||
|
</property>
|
||||||
|
<property name="minimum">
|
||||||
|
<double>0.010000000000000</double>
|
||||||
|
</property>
|
||||||
|
<property name="maximum">
|
||||||
|
<double>0.150000000000000</double>
|
||||||
|
</property>
|
||||||
|
<property name="singleStep">
|
||||||
|
<double>0.010000000000000</double>
|
||||||
|
</property>
|
||||||
|
<property name="value">
|
||||||
|
<double>0.050000000000000</double>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="2" column="2">
|
||||||
|
<widget class="QDoubleSpinBox" name="maxDeviationError">
|
||||||
|
<property name="toolTip">
|
||||||
|
<string>Error level in percent (default 15%)</string>
|
||||||
|
</property>
|
||||||
|
<property name="minimum">
|
||||||
|
<double>0.150000000000000</double>
|
||||||
|
</property>
|
||||||
|
<property name="maximum">
|
||||||
|
<double>0.300000000000000</double>
|
||||||
|
</property>
|
||||||
|
<property name="singleStep">
|
||||||
|
<double>0.010000000000000</double>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="2" column="0">
|
||||||
|
<widget class="QLabel" name="label_5">
|
||||||
|
<property name="text">
|
||||||
|
<string>Warning / Error levels:</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="2" column="3">
|
||||||
|
<spacer name="horizontalSpacer_4">
|
||||||
|
<property name="orientation">
|
||||||
|
<enum>Qt::Horizontal</enum>
|
||||||
|
</property>
|
||||||
|
<property name="sizeType">
|
||||||
|
<enum>QSizePolicy::Expanding</enum>
|
||||||
|
</property>
|
||||||
|
<property name="sizeHint" stdset="0">
|
||||||
|
<size>
|
||||||
|
<width>40</width>
|
||||||
|
<height>20</height>
|
||||||
|
</size>
|
||||||
|
</property>
|
||||||
|
</spacer>
|
||||||
|
</item>
|
||||||
|
</layout>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<widget class="QGroupBox" name="groupBox_9">
|
||||||
|
<property name="sizePolicy">
|
||||||
|
<sizepolicy hsizetype="MinimumExpanding" vsizetype="Fixed">
|
||||||
|
<horstretch>0</horstretch>
|
||||||
|
<verstretch>0</verstretch>
|
||||||
|
</sizepolicy>
|
||||||
|
</property>
|
||||||
|
<property name="title">
|
||||||
|
<string>Magnetometer Status</string>
|
||||||
|
</property>
|
||||||
|
<layout class="QGridLayout" name="gridLayout_14" columnstretch="0,0,0,0">
|
||||||
|
<property name="sizeConstraint">
|
||||||
|
<enum>QLayout::SetMinimumSize</enum>
|
||||||
|
</property>
|
||||||
|
<item row="4" column="1">
|
||||||
|
<widget class="QLabel" name="onBoardMagStatus">
|
||||||
|
<property name="sizePolicy">
|
||||||
|
<sizepolicy hsizetype="Fixed" vsizetype="Preferred">
|
||||||
|
<horstretch>0</horstretch>
|
||||||
|
<verstretch>0</verstretch>
|
||||||
|
</sizepolicy>
|
||||||
|
</property>
|
||||||
|
<property name="minimumSize">
|
||||||
|
<size>
|
||||||
|
<width>100</width>
|
||||||
|
<height>35</height>
|
||||||
|
</size>
|
||||||
|
</property>
|
||||||
|
<property name="styleSheet">
|
||||||
|
<string notr="true">background-color: green;
|
||||||
|
color: rgb(255, 255, 255);
|
||||||
|
border-radius: 5;
|
||||||
|
margin:1px;
|
||||||
|
font:bold;</string>
|
||||||
|
</property>
|
||||||
|
<property name="text">
|
||||||
|
<string>Onboard</string>
|
||||||
|
</property>
|
||||||
|
<property name="alignment">
|
||||||
|
<set>Qt::AlignCenter</set>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="4" column="2">
|
||||||
|
<widget class="QLabel" name="auxMagStatus">
|
||||||
|
<property name="sizePolicy">
|
||||||
|
<sizepolicy hsizetype="Fixed" vsizetype="Preferred">
|
||||||
|
<horstretch>0</horstretch>
|
||||||
|
<verstretch>0</verstretch>
|
||||||
|
</sizepolicy>
|
||||||
|
</property>
|
||||||
|
<property name="minimumSize">
|
||||||
|
<size>
|
||||||
|
<width>100</width>
|
||||||
|
<height>40</height>
|
||||||
|
</size>
|
||||||
|
</property>
|
||||||
|
<property name="styleSheet">
|
||||||
|
<string notr="true">background-color: green;
|
||||||
|
color: rgb(255, 255, 255);
|
||||||
|
border-radius: 5;
|
||||||
|
margin:1px;
|
||||||
|
font:bold;</string>
|
||||||
|
</property>
|
||||||
|
<property name="text">
|
||||||
|
<string>AuxMag</string>
|
||||||
|
</property>
|
||||||
|
<property name="alignment">
|
||||||
|
<set>Qt::AlignCenter</set>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="1" column="0">
|
||||||
|
<widget class="QLabel" name="label">
|
||||||
|
<property name="minimumSize">
|
||||||
|
<size>
|
||||||
|
<width>110</width>
|
||||||
|
<height>20</height>
|
||||||
|
</size>
|
||||||
|
</property>
|
||||||
|
<property name="text">
|
||||||
|
<string>Mag source:</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="4" column="0">
|
||||||
|
<widget class="QLabel" name="label_3">
|
||||||
|
<property name="sizePolicy">
|
||||||
|
<sizepolicy hsizetype="Preferred" vsizetype="Expanding">
|
||||||
|
<horstretch>0</horstretch>
|
||||||
|
<verstretch>0</verstretch>
|
||||||
|
</sizepolicy>
|
||||||
|
</property>
|
||||||
|
<property name="minimumSize">
|
||||||
|
<size>
|
||||||
|
<width>0</width>
|
||||||
|
<height>0</height>
|
||||||
|
</size>
|
||||||
|
</property>
|
||||||
|
<property name="text">
|
||||||
|
<string>Mag alarms:</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="4" column="3">
|
||||||
|
<spacer name="horizontalSpacer_5">
|
||||||
|
<property name="orientation">
|
||||||
|
<enum>Qt::Horizontal</enum>
|
||||||
|
</property>
|
||||||
|
<property name="sizeType">
|
||||||
|
<enum>QSizePolicy::Expanding</enum>
|
||||||
|
</property>
|
||||||
|
<property name="sizeHint" stdset="0">
|
||||||
|
<size>
|
||||||
|
<width>40</width>
|
||||||
|
<height>20</height>
|
||||||
|
</size>
|
||||||
|
</property>
|
||||||
|
</spacer>
|
||||||
|
</item>
|
||||||
|
<item row="1" column="1" colspan="2">
|
||||||
|
<widget class="QLabel" name="magStatusSource">
|
||||||
|
<property name="sizePolicy">
|
||||||
|
<sizepolicy hsizetype="MinimumExpanding" vsizetype="Preferred">
|
||||||
|
<horstretch>0</horstretch>
|
||||||
|
<verstretch>0</verstretch>
|
||||||
|
</sizepolicy>
|
||||||
|
</property>
|
||||||
|
<property name="text">
|
||||||
|
<string>external</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
</layout>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<widget class="QGroupBox" name="groupBox_7">
|
||||||
|
<property name="sizePolicy">
|
||||||
|
<sizepolicy hsizetype="MinimumExpanding" vsizetype="Preferred">
|
||||||
|
<horstretch>0</horstretch>
|
||||||
|
<verstretch>0</verstretch>
|
||||||
|
</sizepolicy>
|
||||||
|
</property>
|
||||||
|
<property name="title">
|
||||||
|
<string>Auxiliary Magnetometer Orientation</string>
|
||||||
|
</property>
|
||||||
|
<layout class="QGridLayout" name="gridLayout_12" columnstretch="0,0,0">
|
||||||
|
<property name="sizeConstraint">
|
||||||
|
<enum>QLayout::SetMinimumSize</enum>
|
||||||
|
</property>
|
||||||
|
<item row="2" column="0">
|
||||||
|
<widget class="QLabel" name="label_29">
|
||||||
|
<property name="minimumSize">
|
||||||
|
<size>
|
||||||
|
<width>70</width>
|
||||||
|
<height>30</height>
|
||||||
|
</size>
|
||||||
|
</property>
|
||||||
|
<property name="maximumSize">
|
||||||
|
<size>
|
||||||
|
<width>0</width>
|
||||||
|
<height>30</height>
|
||||||
|
</size>
|
||||||
|
</property>
|
||||||
|
<property name="styleSheet">
|
||||||
|
<string notr="true">background-color: qlineargradient(spread:reflect, x1:0.507, y1:0, x2:0.507, y2:0.772, stop:0.208955 rgba(74, 74, 74, 255), stop:0.78607 rgba(36, 36, 36, 255));
|
||||||
|
color: rgb(255, 255, 255);
|
||||||
|
border-radius: 5;
|
||||||
|
margin:1px;
|
||||||
|
font:bold;</string>
|
||||||
|
</property>
|
||||||
|
<property name="text">
|
||||||
|
<string>Roll</string>
|
||||||
|
</property>
|
||||||
|
<property name="alignment">
|
||||||
|
<set>Qt::AlignCenter</set>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="4" column="1">
|
||||||
|
<widget class="QDoubleSpinBox" name="auxMagPitchRotation">
|
||||||
|
<property name="decimals">
|
||||||
|
<number>0</number>
|
||||||
|
</property>
|
||||||
|
<property name="minimum">
|
||||||
|
<double>-180.000000000000000</double>
|
||||||
|
</property>
|
||||||
|
<property name="maximum">
|
||||||
|
<double>180.000000000000000</double>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="4" column="2">
|
||||||
|
<widget class="QDoubleSpinBox" name="auxMagYawRotation">
|
||||||
|
<property name="decimals">
|
||||||
|
<number>0</number>
|
||||||
|
</property>
|
||||||
|
<property name="minimum">
|
||||||
|
<double>-180.000000000000000</double>
|
||||||
|
</property>
|
||||||
|
<property name="maximum">
|
||||||
|
<double>180.000000000000000</double>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="2" column="1">
|
||||||
|
<widget class="QLabel" name="label_28">
|
||||||
|
<property name="sizePolicy">
|
||||||
|
<sizepolicy hsizetype="Preferred" vsizetype="Preferred">
|
||||||
|
<horstretch>0</horstretch>
|
||||||
|
<verstretch>0</verstretch>
|
||||||
|
</sizepolicy>
|
||||||
|
</property>
|
||||||
|
<property name="minimumSize">
|
||||||
|
<size>
|
||||||
|
<width>70</width>
|
||||||
|
<height>30</height>
|
||||||
|
</size>
|
||||||
|
</property>
|
||||||
|
<property name="maximumSize">
|
||||||
|
<size>
|
||||||
|
<width>0</width>
|
||||||
|
<height>30</height>
|
||||||
|
</size>
|
||||||
|
</property>
|
||||||
|
<property name="styleSheet">
|
||||||
|
<string notr="true">background-color: qlineargradient(spread:reflect, x1:0.507, y1:0, x2:0.507, y2:0.772, stop:0.208955 rgba(74, 74, 74, 255), stop:0.78607 rgba(36, 36, 36, 255));
|
||||||
|
color: rgb(255, 255, 255);
|
||||||
|
border-radius: 5;
|
||||||
|
margin:1px;
|
||||||
|
font:bold;</string>
|
||||||
|
</property>
|
||||||
|
<property name="text">
|
||||||
|
<string>Pitch</string>
|
||||||
|
</property>
|
||||||
|
<property name="alignment">
|
||||||
|
<set>Qt::AlignCenter</set>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="4" column="0">
|
||||||
|
<widget class="QDoubleSpinBox" name="auxMagRollRotation">
|
||||||
|
<property name="toolTip">
|
||||||
|
<string/>
|
||||||
|
</property>
|
||||||
|
<property name="decimals">
|
||||||
|
<number>0</number>
|
||||||
|
</property>
|
||||||
|
<property name="minimum">
|
||||||
|
<double>-180.000000000000000</double>
|
||||||
|
</property>
|
||||||
|
<property name="maximum">
|
||||||
|
<double>180.000000000000000</double>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="2" column="2">
|
||||||
|
<widget class="QLabel" name="label_30">
|
||||||
|
<property name="sizePolicy">
|
||||||
|
<sizepolicy hsizetype="Preferred" vsizetype="Preferred">
|
||||||
|
<horstretch>0</horstretch>
|
||||||
|
<verstretch>0</verstretch>
|
||||||
|
</sizepolicy>
|
||||||
|
</property>
|
||||||
|
<property name="minimumSize">
|
||||||
|
<size>
|
||||||
|
<width>70</width>
|
||||||
|
<height>30</height>
|
||||||
|
</size>
|
||||||
|
</property>
|
||||||
|
<property name="maximumSize">
|
||||||
|
<size>
|
||||||
|
<width>0</width>
|
||||||
|
<height>30</height>
|
||||||
|
</size>
|
||||||
|
</property>
|
||||||
|
<property name="styleSheet">
|
||||||
|
<string notr="true">background-color: qlineargradient(spread:reflect, x1:0.507, y1:0, x2:0.507, y2:0.772, stop:0.208955 rgba(74, 74, 74, 255), stop:0.78607 rgba(36, 36, 36, 255));
|
||||||
|
color: rgb(255, 255, 255);
|
||||||
|
border-radius: 5;
|
||||||
|
margin:1px;
|
||||||
|
font:bold;</string>
|
||||||
|
</property>
|
||||||
|
<property name="text">
|
||||||
|
<string>Yaw</string>
|
||||||
|
</property>
|
||||||
|
<property name="alignment">
|
||||||
|
<set>Qt::AlignCenter</set>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
</layout>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
</layout>
|
||||||
|
</item>
|
||||||
|
</layout>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<spacer name="verticalSpacer_5">
|
||||||
|
<property name="orientation">
|
||||||
|
<enum>Qt::Vertical</enum>
|
||||||
|
</property>
|
||||||
|
<property name="sizeType">
|
||||||
|
<enum>QSizePolicy::Expanding</enum>
|
||||||
|
</property>
|
||||||
|
<property name="sizeHint" stdset="0">
|
||||||
|
<size>
|
||||||
|
<width>20</width>
|
||||||
|
<height>40</height>
|
||||||
|
</size>
|
||||||
|
</property>
|
||||||
|
</spacer>
|
||||||
|
</item>
|
||||||
|
</layout>
|
||||||
|
</widget>
|
||||||
<widget class="QWidget" name="helpTab">
|
<widget class="QWidget" name="helpTab">
|
||||||
<attribute name="title">
|
<attribute name="title">
|
||||||
<string>Help</string>
|
<string>Help</string>
|
||||||
|
Loading…
x
Reference in New Issue
Block a user