Browse Source

Merge branch 'mergeRemote' into experimental

QGC4.4
Mariano Lizarraga 15 years ago
parent
commit
5f1bb21b5d
  1. 21
      src/uas/SlugsMAV.cc
  2. 7
      src/uas/UASWaypointManager.cc
  3. 24
      src/ui/MainWindow.cc
  4. 4
      src/ui/SlugsDataSensorView.cc
  5. 3032
      src/ui/SlugsDataSensorView.ui
  6. 32
      src/ui/SlugsPadCameraControl.cpp
  7. 4
      src/ui/SlugsPadCameraControl.h
  8. 26
      src/ui/SlugsVideoCamControl.ui

21
src/uas/SlugsMAV.cc

@ -69,6 +69,10 @@ void SlugsMAV::receiveMessage(LinkInterface* link, mavlink_message_t message)
#ifdef MAVLINK_ENABLED_SLUGS #ifdef MAVLINK_ENABLED_SLUGS
case MAVLINK_MSG_ID_RAW_IMU:
mavlink_msg_raw_imu_decode(&message, &mlRawImuData);
break;
case MAVLINK_MSG_ID_BOOT: case MAVLINK_MSG_ID_BOOT:
mavlink_msg_boot_decode(&message,&mlBoot); mavlink_msg_boot_decode(&message,&mlBoot);
emit slugsBootMsg(uasId, mlBoot); emit slugsBootMsg(uasId, mlBoot);
@ -132,16 +136,14 @@ void SlugsMAV::receiveMessage(LinkInterface* link, mavlink_message_t message)
case MAVLINK_MSG_ID_CTRL_SRFC_PT: //181 case MAVLINK_MSG_ID_CTRL_SRFC_PT: //181
break; break;
case MAVLINK_MSG_ID_PID: //182 case MAVLINK_MSG_ID_PID: //182
memset(&mlSinglePid,0,sizeof(mavlink_pid_t)); memset(&mlSinglePid,0,sizeof(mavlink_pid_t));
mavlink_msg_pid_decode(&message, &mlSinglePid); mavlink_msg_pid_decode(&message, &mlSinglePid);
qDebug() << "\nSLUGS RECEIVED PID Message = "<<mlSinglePid.idx; // qDebug() << "\nSLUGS RECEIVED PID Message = "<<mlSinglePid.idx;
emit slugsPidValues(uasId, mlSinglePid); emit slugsPidValues(uasId, mlSinglePid);
break; break;
case MAVLINK_MSG_ID_SLUGS_ACTION: //183 case MAVLINK_MSG_ID_SLUGS_ACTION: //183
@ -174,10 +176,9 @@ void SlugsMAV::emitSignals (void){
case 3: case 3:
emit remoteControlChannelScaledChanged(0,(mlPilotConsoleData.de- 1000.0f)/1000.0f); emit remoteControlChannelScaledChanged(0,(mlPilotConsoleData.de- 1000.0f)/1000.0f);
emit remoteControlChannelScaledChanged(1,(mlPilotConsoleData.dla- 1000.0f)/1000.0f); emit remoteControlChannelScaledChanged(1,(mlPilotConsoleData.dla- 1000.0f)/1000.0f);
emit remoteControlChannelScaledChanged(2,(mlPilotConsoleData.dr- 1000.0f)/1000.0f); emit remoteControlChannelScaledChanged(2,(mlPilotConsoleData.dr- 1000.0f)/1000.0f);
emit remoteControlChannelScaledChanged(3,(mlPilotConsoleData.dra- 1000.0f)/1000.0f); emit remoteControlChannelScaledChanged(3,(mlPilotConsoleData.dra- 1000.0f)/1000.0f);
emit remoteControlChannelScaledChanged(0,(mlPilotConsoleData.dt- 1000.0f)/1000.0f);
emit slugsPWM(uasId, mlPwmCommands); emit slugsPWM(uasId, mlPwmCommands);
break; break;
@ -220,7 +221,7 @@ void SlugsMAV::emitSignals (void){
#ifdef MAVLINK_ENABLED_SLUGS #ifdef MAVLINK_ENABLED_SLUGS
void SlugsMAV::emitGpsSignals (void){ void SlugsMAV::emitGpsSignals (void){
qDebug()<<"After Emit GPS Signal"<<mlGpsData.fix_type; // qDebug()<<"After Emit GPS Signal"<<mlGpsData.fix_type;
//ToDo Uncomment if. it was comment only to test //ToDo Uncomment if. it was comment only to test
@ -248,7 +249,7 @@ void SlugsMAV::emitGpsSignals (void){
void SlugsMAV::emitPidSignal() void SlugsMAV::emitPidSignal()
{ {
qDebug() << "\nSLUGS RECEIVED PID Message"; // qDebug() << "\nSLUGS RECEIVED PID Message";
emit slugsPidValues(uasId, mlSinglePid); emit slugsPidValues(uasId, mlSinglePid);
} }

7
src/uas/UASWaypointManager.cc

@ -31,6 +31,7 @@ This file is part of the QGROUNDCONTROL project
#include "UASWaypointManager.h" #include "UASWaypointManager.h"
#include "UAS.h" #include "UAS.h"
#include "mavlink_types.h"
#define PROTOCOL_TIMEOUT_MS 2000 ///< maximum time to wait for pending messages until timeout #define PROTOCOL_TIMEOUT_MS 2000 ///< maximum time to wait for pending messages until timeout
#define PROTOCOL_DELAY_MS 40 ///< minimum delay between sent messages #define PROTOCOL_DELAY_MS 40 ///< minimum delay between sent messages
@ -600,22 +601,26 @@ void UASWaypointManager::sendWaypointRequest(quint16 seq)
void UASWaypointManager::sendWaypoint(quint16 seq) void UASWaypointManager::sendWaypoint(quint16 seq)
{ {
mavlink_message_t message; mavlink_message_t message;
qDebug() <<" WP Buffer count: "<<waypoint_buffer.count();
if (seq < waypoint_buffer.count()) if (seq < waypoint_buffer.count())
{ {
mavlink_waypoint_t *wp; mavlink_waypoint_t *wp;
wp = waypoint_buffer.at(seq); wp = waypoint_buffer.at(seq);
wp->target_system = uas.getUASID(); wp->target_system = uas.getUASID();
wp->target_component = MAV_COMP_ID_WAYPOINTPLANNER; wp->target_component = MAV_COMP_ID_WAYPOINTPLANNER;
emit updateStatusString(QString("sending waypoint ID %1 of %2 total").arg(wp->seq).arg(current_count)); emit updateStatusString(QString("sending waypoint ID %1 of %2 total").arg(wp->seq).arg(current_count));
qDebug() << "sent waypoint (" << wp->seq << ") to ID " << wp->target_system<<" WP Buffer count: "<<waypoint_buffer.count();
mavlink_msg_waypoint_encode(uas.mavlink->getSystemId(), uas.mavlink->getComponentId(), &message, wp); mavlink_msg_waypoint_encode(uas.mavlink->getSystemId(), uas.mavlink->getComponentId(), &message, wp);
uas.sendMessage(message); uas.sendMessage(message);
MG::SLEEP::usleep(PROTOCOL_DELAY_MS * 1000); MG::SLEEP::usleep(PROTOCOL_DELAY_MS * 1000);
qDebug() << "sent waypoint (" << wp->seq << ") to ID " << wp->target_system;
} }
} }

24
src/ui/MainWindow.cc

@ -215,7 +215,8 @@ void MainWindow::buildPxWidgets()
void MainWindow::buildSlugsWidgets() void MainWindow::buildSlugsWidgets()
{ {
// Center widgets // Center widgets
linechartWidget = new Linecharts(this); // linechartWidget = new Linecharts(this);
// addToCentralWidgetsMenu(linechartWidget, "Line Plots", SLOT(showCentralWidget()), CENTRAL_LINECHART);
// Dock widgets // Dock widgets
headUpDockWidget = new QDockWidget(tr("Control Indicator"), this); headUpDockWidget = new QDockWidget(tr("Control Indicator"), this);
@ -942,17 +943,12 @@ void MainWindow::UASCreated(UASInterface* uas)
connectSlugsActions(); connectSlugsActions();
// FIXME: This type checking might be redundant // FIXME: This type checking might be redundant
// if (slugsDataWidget) { if (slugsDataWidget) {
// SlugsDataSensorView* dataWidget = dynamic_cast<SlugsDataSensorView*>(slugsDataWidget->widget()); SlugsDataSensorView* dataWidget = dynamic_cast<SlugsDataSensorView*>(slugsDataWidget->widget());
// if (dataWidget) { if (dataWidget) {
// SlugsMAV* mav2 = dynamic_cast<SlugsMAV*>(uas);
// if (mav2) {
(dynamic_cast<SlugsDataSensorView*>(slugsDataWidget->widget()))->addUAS(uas); (dynamic_cast<SlugsDataSensorView*>(slugsDataWidget->widget()))->addUAS(uas);
// //loadSlugsView(); }
// loadGlobalOperatorView(); }
// }
// }
// }
} break; } break;
} }
@ -1144,7 +1140,7 @@ void MainWindow::presentView() {
if (settings.value(buildMenuKey (SUB_SECTION_CHECKED,MENU_HUD,currentView)).toBool()){ if (settings.value(buildMenuKey (SUB_SECTION_CHECKED,MENU_HUD,currentView)).toBool()){
tmpHud->start(); tmpHud->start();
addDockWidget(static_cast <Qt::DockWidgetArea>(settings.value(buildMenuKey (SUB_SECTION_LOCATION,MENU_HUD, currentView)).toInt()), addDockWidget(static_cast <Qt::DockWidgetArea>(settings.value(buildMenuKey (SUB_SECTION_LOCATION,MENU_HUD, currentView)).toInt()),
hsiDockWidget); headUpDockWidget);
headUpDockWidget->show(); headUpDockWidget->show();
} else { } else {
tmpHud->stop(); tmpHud->stop();
@ -1546,7 +1542,7 @@ void MainWindow::load3DView()
========== ATTIC ================= ========== ATTIC =================
================================== ==================================
void MainWindow::buildCommonWidgets() void MainWindow::buildWidgets()
{ {
//FIXME: memory of acceptList will never be freed again //FIXME: memory of acceptList will never be freed again
QStringList* acceptList = new QStringList(); QStringList* acceptList = new QStringList();
@ -1689,7 +1685,7 @@ void MainWindow::connectWidgets()
} }
void MainWindow::arrangeCommonCenterStack() void MainWindow::arrangeCenterStack()
{ {
QStackedWidget *centerStack = new QStackedWidget(this); QStackedWidget *centerStack = new QStackedWidget(this);

4
src/ui/SlugsDataSensorView.cc

@ -104,7 +104,7 @@ void SlugsDataSensorView::slugsGlobalPositionChanged(UASInterface *uas,
ui->m_GpsLongitude->setText(QString::number(lon)); ui->m_GpsLongitude->setText(QString::number(lon));
ui->m_GpsHeight->setText(QString::number(alt)); ui->m_GpsHeight->setText(QString::number(alt));
qDebug()<<"GPS Position = "<<lat<<" - "<<lon<<" - "<<alt; //qDebug()<<"GPS Position = "<<lat<<" - "<<lon<<" - "<<alt;
} }
@ -154,7 +154,7 @@ void SlugsDataSensorView::slugAttitudeChanged(UASInterface* uas,
ui->m_Pitch->setPlainText(QString::number(slugpitch)); ui->m_Pitch->setPlainText(QString::number(slugpitch));
ui->m_Yaw->setPlainText(QString::number(slugyaw)); ui->m_Yaw->setPlainText(QString::number(slugyaw));
qDebug()<<"Attitude change = "<<slugroll<<" - "<<slugpitch<<" - "<<slugyaw; // qDebug()<<"Attitude change = "<<slugroll<<" - "<<slugpitch<<" - "<<slugyaw;
} }

3032
src/ui/SlugsDataSensorView.ui

File diff suppressed because it is too large Load Diff

32
src/ui/SlugsPadCameraControl.cpp

@ -27,15 +27,12 @@ SlugsPadCameraControl::~SlugsPadCameraControl()
void SlugsPadCameraControl::mouseMoveEvent(QMouseEvent *event) void SlugsPadCameraControl::mouseMoveEvent(QMouseEvent *event)
{ {
//emit mouseMoveCoord(event->x(),event->y()); //emit mouseMoveCoord(event->x(),event->y());
if(dragging) if(dragging)
{ {
if(abs(x1-event->x())>20 || abs(y1-event->y())>20)
{
getDeltaPositionPad(event->x(), event->y()); // getDeltaPositionPad(event->x(), event->y());
x1 = event->x();
y1 = event->y();
}
} }
@ -54,7 +51,7 @@ void SlugsPadCameraControl::mouseReleaseEvent(QMouseEvent *event)
{ {
dragging = false; dragging = false;
//emit mouseReleaseCoord(event->x(),event->y()); //emit mouseReleaseCoord(event->x(),event->y());
//getDeltaPositionPad(event->x(), event->y()); getDeltaPositionPad(event->x(), event->y());
xFin = event->x(); xFin = event->x();
yFin = event->y(); yFin = event->y();
@ -105,6 +102,10 @@ void SlugsPadCameraControl::getDeltaPositionPad(int x2, int y2)
double bearing = localMeasures.x(); double bearing = localMeasures.x();
double dist = getDistPixel(y1,x1,y2,x2); double dist = getDistPixel(y1,x1,y2,x2);
// this only convert real bearing to frame widget bearing
bearing = bearing +90;
if(bearing>= 360) bearing = bearing - 360;
if(((bearing > 330)&&(bearing < 360)) || ((bearing >= 0)&&(bearing <= 30))) if(((bearing > 330)&&(bearing < 360)) || ((bearing >= 0)&&(bearing <= 30)))
@ -210,16 +211,9 @@ double SlugsPadCameraControl::getDistPixel(int x1, int y1, int x2, int y2)
// distancia = (float) hipotenusa; // distancia = (float) hipotenusa;
} }
/**
* Esta función xxxxxxxxx QPointF SlugsPadCameraControl::ObtenerMarcacionDistanciaPixel(double lon1, double lat1,
* @param double lat1 --> double lon2, double lat2)
* @param double lon1 -->
* @param double lat2 -->
* @param double lon2 -->
* @param ref double rumbo -->
* @param ref double distancia -->
*/
QPointF SlugsPadCameraControl::ObtenerMarcacionDistanciaPixel(double lon1, double lat1, double lon2, double lat2)
{ {
double cateto_opuesto,cateto_adyacente, hipotenusa, distancia, marcacion; double cateto_opuesto,cateto_adyacente, hipotenusa, distancia, marcacion;
@ -256,9 +250,7 @@ QPointF SlugsPadCameraControl::ObtenerMarcacionDistanciaPixel(double lon1, doubl
else if((lat1 == lat2) && (lon1 == lon2)) //0 else if((lat1 == lat2) && (lon1 == lon2)) //0
marcacion = 0.0; marcacion = 0.0;
// this only convert real bearing to frame widget bearing
marcacion = marcacion +90;
if(marcacion>= 360) marcacion = marcacion - 360;
return QPointF(marcacion,distancia); return QPointF(marcacion,distancia);

4
src/ui/SlugsPadCameraControl.h

@ -19,12 +19,16 @@ public:
public slots: public slots:
void getDeltaPositionPad(int x, int y); void getDeltaPositionPad(int x, int y);
double getDistPixel(int x1, int y1, int x2, int y2); double getDistPixel(int x1, int y1, int x2, int y2);
QPointF ObtenerMarcacionDistanciaPixel(double lon1, double lat1, double lon2, double lat2); QPointF ObtenerMarcacionDistanciaPixel(double lon1, double lat1, double lon2, double lat2);
QPointF getPointBy_BearingDistance(double lat1, double lon1, double rumbo, double distancia); QPointF getPointBy_BearingDistance(double lat1, double lon1, double rumbo, double distancia);
signals: signals:
void mouseMoveCoord(int x, int y); void mouseMoveCoord(int x, int y);
void mousePressCoord(int x, int y); void mousePressCoord(int x, int y);

26
src/ui/SlugsVideoCamControl.ui

@ -22,10 +22,10 @@
<property name="windowTitle"> <property name="windowTitle">
<string>Form</string> <string>Form</string>
</property> </property>
<layout class="QGridLayout" name="gridLayout"> <layout class="QVBoxLayout" name="verticalLayout">
<item row="0" column="0"> <item>
<layout class="QVBoxLayout" name="verticalLayout"> <layout class="QGridLayout" name="gridLayout">
<item> <item row="0" column="0">
<widget class="QLabel" name="label_x"> <widget class="QLabel" name="label_x">
<property name="mouseTracking"> <property name="mouseTracking">
<bool>true</bool> <bool>true</bool>
@ -35,7 +35,7 @@
</property> </property>
</widget> </widget>
</item> </item>
<item> <item row="0" column="1">
<widget class="QLabel" name="label_y"> <widget class="QLabel" name="label_y">
<property name="mouseTracking"> <property name="mouseTracking">
<bool>true</bool> <bool>true</bool>
@ -45,21 +45,17 @@
</property> </property>
</widget> </widget>
</item> </item>
<item> <item row="1" column="1">
<widget class="QLabel" name="label_dir"> <widget class="QCheckBox" name="viewCamBordeatMap_checkBox">
<property name="text"> <property name="text">
<string>Camera Pos</string> <string>Camera at Map</string>
</property> </property>
</widget> </widget>
</item> </item>
</layout> <item row="1" column="0">
</item> <widget class="QLabel" name="label_dir">
<item row="1" column="0">
<layout class="QHBoxLayout" name="horizontalLayout">
<item>
<widget class="QCheckBox" name="viewCamBordeatMap_checkBox">
<property name="text"> <property name="text">
<string>Camera at Map</string> <string>Camera Pos</string>
</property> </property>
</widget> </widget>
</item> </item>

Loading…
Cancel
Save