diff --git a/src/ui/SlugsPIDControl.cpp b/src/ui/SlugsPIDControl.cpp index 18fd516304cd92f4aff41c4726dc55ffecc8051f..779754aceb9b5ba641378ee9778ee214ded11240 100644 --- a/src/ui/SlugsPIDControl.cpp +++ b/src/ui/SlugsPIDControl.cpp @@ -55,6 +55,7 @@ void SlugsPIDControl::activeUasSet(UASInterface* uas) connect(slugsMav,SIGNAL(slugsPidValues(int,mavlink_pid_t)),this, SLOT(receivePidValues(int,mavlink_pid_t)) ); connect(ui->setGeneral_pushButton,SIGNAL(clicked()),this,SLOT(slugsTimerStartSet())); + connect(ui->getGeneral_pushButton,SIGNAL(clicked()),this,SLOT(slugsTimerStartGet())); } #endif // MAVLINK_ENABLED_SLUG @@ -462,9 +463,9 @@ void SlugsPIDControl::changeColor_GREEN_Pitch2dT_groupBox() //create the packet pidMessage.target = activeUAS->getUASID(); pidMessage.idx = 8; - pidMessage.pVal = ui->dR_P_set->text().toFloat(); - pidMessage.iVal = ui->dR_I_set->text().toFloat(); - pidMessage.dVal = ui->dR_D_set->text().toFloat(); + pidMessage.pVal = ui->P2dT_FF_set->text().toFloat(); + pidMessage.iVal = 0;//ui->dR_I_set->text().toFloat(); + pidMessage.dVal = 0;//ui->dR_D_set->text().toFloat(); mavlink_message_t msg; @@ -531,6 +532,7 @@ void SlugsPIDControl::receivePidValues(int systemId, const mavlink_pid_t &pidVal break; case 8: ui->P2dT_FF_get->setText(QString::number(pidValues.pVal)); + break; default: diff --git a/src/ui/SlugsPIDControl.h b/src/ui/SlugsPIDControl.h index e6e818bee7e7cad0592b92d60e0e9ecb6b0ee6b2..4a0ee963c5c27a72681358ca39e87620127865ff 100644 --- a/src/ui/SlugsPIDControl.h +++ b/src/ui/SlugsPIDControl.h @@ -281,10 +281,10 @@ private: mavlink_slugs_action_t actionSlugs; QTimer* refreshTimerSet; ///< The main timer, controls the update view - QTimer* refreshTimerGet; ///< The main timer, controls the update view + QTimer* refreshTimerGet; ///< The main timer, controls the update view int counterRefreshSet; int counterRefreshGet; - QMutex valuesMutex; + QMutex valuesMutex; }; #endif // SLUGSPIDCONTROL_H diff --git a/src/ui/SlugsPIDControl.ui b/src/ui/SlugsPIDControl.ui index 042f3d92c3fe31622011b0295bb50fa622ff0a7b..6de57a0178d35a4d94f14b72a70e166ae82714cf 100644 --- a/src/ui/SlugsPIDControl.ui +++ b/src/ui/SlugsPIDControl.ui @@ -121,13 +121,6 @@ - - - - Recepcion - - - @@ -956,6 +949,13 @@ + + + + Recepcion + + + diff --git a/src/ui/SlugsPadCameraControl.cpp b/src/ui/SlugsPadCameraControl.cpp index 40b40c072ec83feb6c385387f04c696cccac969e..3e198c68be7473290b6bb517e3f65250acbdaf51 100644 --- a/src/ui/SlugsPadCameraControl.cpp +++ b/src/ui/SlugsPadCameraControl.cpp @@ -13,6 +13,9 @@ SlugsPadCameraControl::SlugsPadCameraControl(QWidget *parent) : ui->setupUi(this); x1= 0; y1 = 0; + bearingPad = 0; + distancePad = 0; + directionPad = "no"; } @@ -23,13 +26,25 @@ SlugsPadCameraControl::~SlugsPadCameraControl() void SlugsPadCameraControl::mouseMoveEvent(QMouseEvent *event) { - emit mouseMoveCoord(event->x(),event->y()); + //emit mouseMoveCoord(event->x(),event->y()); + if(dragging) + { + if(abs(x1-event->x())>20 || abs(y1-event->y())>20) + { + + getDeltaPositionPad(event->x(), event->y()); + x1 = event->x(); + y1 = event->y(); + } + } + } void SlugsPadCameraControl::mousePressEvent(QMouseEvent *event) { - emit mousePressCoord(event->x(),event->y()); + //emit mousePressCoord(event->x(),event->y()); + dragging = true; x1 = event->x(); y1 = event->y(); @@ -37,8 +52,13 @@ void SlugsPadCameraControl::mousePressEvent(QMouseEvent *event) void SlugsPadCameraControl::mouseReleaseEvent(QMouseEvent *event) { - emit mouseReleaseCoord(event->x(),event->y()); - getDeltaPositionPad(event->x(), event->y()); + dragging = false; + //emit mouseReleaseCoord(event->x(),event->y()); + //getDeltaPositionPad(event->x(), event->y()); + + xFin = event->x(); + yFin = event->y(); + } @@ -59,6 +79,13 @@ void SlugsPadCameraControl::paintEvent(QPaintEvent *pe) painter.drawLine(QPoint(ui->frame->geometry().topLeft().x(),ui->frame->height()/2), QPoint(ui->frame->geometry().bottomRight().x(),ui->frame->height()/2)); + painter.setPen(Qt::white); + + //QPointF coordTemp = getPointBy_BearingDistance(ui->frame->width()/2,ui->frame->height()/2,bearingPad,distancePad); + + painter.drawLine(QPoint(ui->frame->width()/2,ui->frame->height()/2), + QPoint(xFin,yFin)); + // painter.drawLine(QPoint()); //painter.drawLines(padLines); @@ -92,7 +119,7 @@ void SlugsPadCameraControl::getDeltaPositionPad(int x2, int y2) { emit dirCursorText("right up"); //bearing = 315; - dir = "riht up"; + dir = "right up"; } else { @@ -100,7 +127,7 @@ void SlugsPadCameraControl::getDeltaPositionPad(int x2, int y2) { emit dirCursorText("right"); //bearing = 315; - dir = "riht"; + dir = "right"; } else { @@ -108,7 +135,7 @@ void SlugsPadCameraControl::getDeltaPositionPad(int x2, int y2) { emit dirCursorText("right down"); //bearing = 315; - dir = "riht down"; + dir = "right down"; } else { @@ -158,8 +185,15 @@ void SlugsPadCameraControl::getDeltaPositionPad(int x2, int y2) } + bearingPad = bearing; + distancePad = dist; + directionPad = dir; emit changeCursorPosition(bearing, dist, dir); + update(); + + + } double SlugsPadCameraControl::getDistPixel(int x1, int y1, int x2, int y2) @@ -229,3 +263,19 @@ QPointF SlugsPadCameraControl::ObtenerMarcacionDistanciaPixel(double lon1, doubl return QPointF(marcacion,distancia); } + + + +QPointF SlugsPadCameraControl::getPointBy_BearingDistance(double lat1, double lon1, double rumbo, double distancia) +{ + double lon2 = 0; + double lat2 = 0; + double rad= M_PI/180; + + rumbo = rumbo*rad; + lon2=(lon1 + ((distancia/60) * (sin(rumbo)))); + lat2=(lat1 + ((distancia/60) * (cos(rumbo)))); + + return QPointF(lon2,lat2); +} + diff --git a/src/ui/SlugsPadCameraControl.h b/src/ui/SlugsPadCameraControl.h index 06a923328c5c12042a81d197072254fec56df9c4..bb35976cf2952d27c775f7ba1e6b7174e1f83495 100644 --- a/src/ui/SlugsPadCameraControl.h +++ b/src/ui/SlugsPadCameraControl.h @@ -21,6 +21,9 @@ public slots: void getDeltaPositionPad(int x, int y); double getDistPixel(int x1, int y1, int x2, int y2); QPointF ObtenerMarcacionDistanciaPixel(double lon1, double lat1, double lon2, double lat2); + QPointF getPointBy_BearingDistance(double lat1, double lon1, double rumbo, double distancia); + + signals: void mouseMoveCoord(int x, int y); @@ -36,11 +39,17 @@ protected: void mouseMoveEvent(QMouseEvent* event); void paintEvent(QPaintEvent *pe); + private: Ui::SlugsPadCameraControl *ui; bool dragging; int x1; int y1; + int xFin; + int yFin; + double bearingPad; + double distancePad; + QString directionPad; }; diff --git a/src/ui/SlugsVideoCamControl.cpp b/src/ui/SlugsVideoCamControl.cpp index 1eb0b5264e29a990e0e11e6a56933242f4ae0f46..a7c9c67624e450342302e0b047f1a69aa5ebb210 100644 --- a/src/ui/SlugsVideoCamControl.cpp +++ b/src/ui/SlugsVideoCamControl.cpp @@ -20,29 +20,12 @@ SlugsVideoCamControl::SlugsVideoCamControl(QWidget *parent) : QWidget(parent), ui(new Ui::SlugsVideoCamControl) - //dragging(0) - { ui->setupUi(this); // x1= 0; // y1 = 0; - connect(ui->viewCamBordeatMap_checkBox,SIGNAL(clicked(bool)),this,SLOT(changeViewCamBorderAtMapStatus(bool))); -// tL = ui->padCamContro_frame->frameGeometry().topLeft(); -// bR = ui->padCamContro_frame->frameGeometry().bottomRight(); - //ui->padCamContro_frame->setVisible(true); - -// // create a layout for camera pad -// QGridLayout* padCameraLayout = new QGridLayout(this); -// padCameraLayout->setSpacing(2); -// padCameraLayout->setMargin(0); -// padCameraLayout->setAlignment(Qt::AlignTop); - - //ui->padCamContro_frame->setLayout(padCameraLayout); - // create a camera pad widget - //test = new QPushButton(QIcon(":/images/actions/list-add.svg"), "", this); - //test->setMaximumWidth(50); - //ui->gridLayout->addWidget(test, 0,0); + connect(ui->viewCamBordeatMap_checkBox,SIGNAL(clicked(bool)),this,SLOT(changeViewCamBorderAtMapStatus(bool))); padCamera = new SlugsPadCameraControl(this); ui->gridLayout->addWidget(padCamera); @@ -53,28 +36,6 @@ SlugsVideoCamControl::SlugsVideoCamControl(QWidget *parent) : connect(padCamera,SIGNAL(changeCursorPosition(double,double,QString)),this,SLOT(getDeltaPositionPad(double,double,QString))); - - //padCamera->setVisible(true); - - - - // padCameraLayout->addWidget(padCamera); - - - -// QGraphicsScene *scene = new QGraphicsScene(ui->CamControlPanel_graphicsView); -// scene->setItemIndexMethod(QGraphicsScene::NoIndex); -// scene->setSceneRect(-200, -200, 400, 400); -// setScene(scene); -// setCacheMode(CacheBackground); -// setViewportUpdateMode(BoundingRectViewportUpdate); -// setRenderHint(QPainter::Antialiasing); -// setTransformationAnchor(AnchorUnderMouse); -// setResizeAnchor(AnchorViewCenter); - -// ui->CamControlPanel_graphicsView->installEventFilter(this); -// ui->label_x->installEventFilter(this); - } SlugsVideoCamControl::~SlugsVideoCamControl() @@ -82,41 +43,41 @@ SlugsVideoCamControl::~SlugsVideoCamControl() delete ui; } -void SlugsVideoCamControl::mouseMoveEvent(QMouseEvent *event) -{ - Q_UNUSED(event); +//void SlugsVideoCamControl::mouseMoveEvent(QMouseEvent *event) +//{ +// Q_UNUSED(event); -} +//} -void SlugsVideoCamControl::mousePressEvent(QMouseEvent *evnt) -{ - Q_UNUSED(evnt); +//void SlugsVideoCamControl::mousePressEvent(QMouseEvent *evnt) +//{ +// Q_UNUSED(evnt); -} +//} -void SlugsVideoCamControl::mouseReleaseEvent(QMouseEvent *evnt) -{ - Q_UNUSED(evnt); +//void SlugsVideoCamControl::mouseReleaseEvent(QMouseEvent *evnt) +//{ +// Q_UNUSED(evnt); -} +//} -void SlugsVideoCamControl::mousePadMoveEvent(int x, int y) -{ +//void SlugsVideoCamControl::mousePadMoveEvent(int x, int y) +//{ -} +//} -void SlugsVideoCamControl::mousePadPressEvent(int x, int y) -{ +//void SlugsVideoCamControl::mousePadPressEvent(int x, int y) +//{ -} +//} -void SlugsVideoCamControl::mousePadReleaseEvent(int x, int y) -{ +//void SlugsVideoCamControl::mousePadReleaseEvent(int x, int y) +//{ -} +//} void SlugsVideoCamControl::changeViewCamBorderAtMapStatus(bool status) { diff --git a/src/ui/SlugsVideoCamControl.h b/src/ui/SlugsVideoCamControl.h index 2580033a5e1dee3883ea60008707112b6f11f674..0180fd52a5c8737d73a1104113548c62715e30ea 100644 --- a/src/ui/SlugsVideoCamControl.h +++ b/src/ui/SlugsVideoCamControl.h @@ -27,22 +27,43 @@ public: ~SlugsVideoCamControl(); public slots: + /** + * @brief status = true: emit signal to draw a border cam over the map + */ void changeViewCamBorderAtMapStatus(bool status); - void getDeltaPositionPad(double dir, double dist, QString dirText); - - - void mousePadPressEvent(int x, int y); - void mousePadReleaseEvent(int x, int y); - void mousePadMoveEvent(int x, int y); + /** + * @brief show the values of mousepad on ui (labels) and emit a changeCamPosition(signal) + * with values: + * bearing and distance from mouse over the pad + * dirText: direction of mouse movement in text format (up, right,right up,right down, + * left, left up, left down, down) + */ + void getDeltaPositionPad(double bearing, double distance, QString dirText); + +// /** +// * @brief +// */ +// void mousePadPressEvent(int x, int y); +// void mousePadReleaseEvent(int x, int y); +// void mousePadMoveEvent(int x, int y); signals: - void changeCamPosition(double dist, double dir, QString textDir); + /** + * @brief emit values from mousepad: + * bearing and distance from mouse over the pad + * dirText: direction of mouse movement in text format (up, right,right up,right down, + * left, left up, left down, down) + */ + void changeCamPosition(double distance, double bearing, QString textDir); + /** + * @brief emit signal to draw a border cam over the map if status is true + */ void viewCamBorderAtMap(bool status); protected: - void mousePressEvent(QMouseEvent* event); - void mouseReleaseEvent(QMouseEvent* event); - void mouseMoveEvent(QMouseEvent* event); +// void mousePressEvent(QMouseEvent* event); +// void mouseReleaseEvent(QMouseEvent* event); +// void mouseMoveEvent(QMouseEvent* event); diff --git a/src/ui/WaypointList.cc b/src/ui/WaypointList.cc index 3b5b96786435d4abe87c9bad83df39e91ed820b0..d2d4aaeb2a46bb40c915483b42317da08d0f4f8c 100644 --- a/src/ui/WaypointList.cc +++ b/src/ui/WaypointList.cc @@ -153,7 +153,7 @@ void WaypointList::loadWaypoints() QString fileName = QFileDialog::getOpenFileName(this, tr("Load File"), ".", tr("Waypoint File (*.txt)")); uas->getWaypointManager().loadWaypoints(fileName); - } + } } void WaypointList::transmit() @@ -474,14 +474,14 @@ void WaypointList::on_clearWPListButton_clicked() if (uas) { - emit clearPathclicked(); + emit clearPathclicked(); const QVector &waypoints = uas->getWaypointManager().getWaypointList(); while(!waypoints.isEmpty())//for(int i = 0; i <= waypoints.size(); i++) { WaypointView* widget = wpViews.find(waypoints[0]).value(); widget->remove(); - } } + } else { // if(isGlobalWP)