Commit a7bbb6f2 authored by pixhawk's avatar pixhawk

Last fixes to yaw angle displaying / representation

parent 34072b0b
...@@ -402,12 +402,21 @@ void UAS::receiveMessage(LinkInterface* link, mavlink_message_t message) ...@@ -402,12 +402,21 @@ void UAS::receiveMessage(LinkInterface* link, mavlink_message_t message)
emit valueChanged(uasId, "yawspeed", "rad/s", attitude.yawspeed, time); emit valueChanged(uasId, "yawspeed", "rad/s", attitude.yawspeed, time);
// Emit in angles // Emit in angles
emit valueChanged(uasId, "roll", "deg", (roll/M_PI)*180.0, time);
emit valueChanged(uasId, "pitch", "deg", (pitch/M_PI)*180.0, time); // Convert yaw angle to compass value
emit valueChanged(uasId, "yaw", "deg", (yaw/M_PI)*180.0, time); // in 0 - 360 deg range
emit valueChanged(uasId, "rollspeed", "deg/s", (attitude.rollspeed/M_PI)*180.0, time); float compass = (yaw/M_PI)*180.0+360.0f;
emit valueChanged(uasId, "pitchspeed", "deg/s", (attitude.pitchspeed/M_PI)*180.0, time); while (compass > 360.0f)
emit valueChanged(uasId, "yawspeed", "deg/s", (attitude.yawspeed/M_PI)*180.0, time); {
compass -= 360.0f;
}
emit valueChanged(uasId, "roll deg", "deg", (roll/M_PI)*180.0, time);
emit valueChanged(uasId, "pitch deg", "deg", (pitch/M_PI)*180.0, time);
emit valueChanged(uasId, "yaw deg", "deg", compass, time);
emit valueChanged(uasId, "rollspeed d/s", "deg/s", (attitude.rollspeed/M_PI)*180.0, time);
emit valueChanged(uasId, "pitchspeed d/s", "deg/s", (attitude.pitchspeed/M_PI)*180.0, time);
emit valueChanged(uasId, "yawspeed d/s", "deg/s", (attitude.yawspeed/M_PI)*180.0, time);
emit attitudeChanged(this, roll, pitch, yaw, time); emit attitudeChanged(this, roll, pitch, yaw, time);
emit attitudeSpeedChanged(uasId, attitude.rollspeed, attitude.pitchspeed, attitude.yawspeed, time); emit attitudeSpeedChanged(uasId, attitude.rollspeed, attitude.pitchspeed, attitude.yawspeed, time);
......
...@@ -805,9 +805,10 @@ void HUD::paintHUD() ...@@ -805,9 +805,10 @@ void HUD::paintHUD()
// const float yawDeg = ((values.value("yaw", 0.0f)/M_PI)*180.0f)+180.f; // const float yawDeg = ((values.value("yaw", 0.0f)/M_PI)*180.0f)+180.f;
// YAW is in compass-human readable format, so 0 - 360deg. This is normal in aviation, not -180 - +180. // YAW is in compass-human readable format, so 0 - 360deg. This is normal in aviation, not -180 - +180.
const float yawDeg = ((yawLP/M_PI)*180.0f)+180.0f; const float yawDeg = ((yawLP/M_PI)*180.0f)+180.0f+180.0f;
yawAngle.sprintf("%03d", (int)yawDeg); int yawCompass = static_cast<int>(yawDeg) % 360;
paintText(yawAngle, defaultColor, 3.5f, -3.7f, compassY+ 0.9f, &painter); yawAngle.sprintf("%03d", yawCompass);
paintText(yawAngle, defaultColor, 3.5f, -4.3f, compassY+ 0.97f, &painter);
// CHANGE RATE STRIPS // CHANGE RATE STRIPS
drawChangeRateStrip(-51.0f, -50.0f, 15.0f, -1.0f, 1.0f, -zSpeed, &painter); drawChangeRateStrip(-51.0f, -50.0f, 15.0f, -1.0f, 1.0f, -zSpeed, &painter);
......
...@@ -255,12 +255,12 @@ void MainWindow::resizeEvent(QResizeEvent * event) ...@@ -255,12 +255,12 @@ void MainWindow::resizeEvent(QResizeEvent * event)
QString MainWindow::getWindowStateKey() QString MainWindow::getWindowStateKey()
{ {
return QString::number(currentView)+"/windowstate"; return QString::number(currentView)+"_windowstate";
} }
QString MainWindow::getWindowGeometryKey() QString MainWindow::getWindowGeometryKey()
{ {
return QString::number(currentView)+"/geometry"; return QString::number(currentView)+"_geometry";
} }
void MainWindow::buildCustomWidget() void MainWindow::buildCustomWidget()
...@@ -912,7 +912,7 @@ void MainWindow::closeEvent(QCloseEvent *event) ...@@ -912,7 +912,7 @@ void MainWindow::closeEvent(QCloseEvent *event)
// Save the last current view in any case // Save the last current view in any case
settings.setValue("CURRENT_VIEW", currentView); settings.setValue("CURRENT_VIEW", currentView);
// Save the current window state, but only if a system is connected (else no real number of widgets would be present) // Save the current window state, but only if a system is connected (else no real number of widgets would be present)
if (UASManager::instance()->getActiveUAS()) settings.setValue(getWindowStateKey(), saveState(QGC::applicationVersion())); if (UASManager::instance()->getUASList().length() > 0) settings.setValue(getWindowStateKey(), saveState(QGC::applicationVersion()));
// Save the current view only if a UAS is connected // Save the current view only if a UAS is connected
if (UASManager::instance()->getUASList().length() > 0) settings.setValue("CURRENT_VIEW_WITH_UAS_CONNECTED", currentView); if (UASManager::instance()->getUASList().length() > 0) settings.setValue("CURRENT_VIEW_WITH_UAS_CONNECTED", currentView);
settings.sync(); settings.sync();
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment