Skip to content

Commit b0e1641

Browse files
committed
[MapWidget] Add DC_SHOT markers.
1 parent d9a44b4 commit b0e1641

File tree

5 files changed

+48
-0
lines changed

5 files changed

+48
-0
lines changed

src/widgets/map/graphics_objects/graphics_object.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ class GraphicsObject : public QObject
1717
CURRENT_NAV,
1818
CARROT,
1919
GCS,
20+
DCSHOT,
2021
};
2122

2223
enum Animation {

src/widgets/map/graphics_objects/graphics_point.cpp

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -92,6 +92,11 @@ void GraphicsPoint::paint(QPainter *painter, const QStyleOptionGraphicsItem *opt
9292
painter->drawLine(-halfSize, 0, halfSize, 0);
9393
}
9494
break;
95+
case DCSHOT: {
96+
painter->setBrush(QBrush(palette.getVariant(current_color)));
97+
painter->drawEllipse(QPoint(0, 0), halfSize/2, halfSize/2);
98+
}
99+
break;
95100
}
96101

97102
}

src/widgets/map/graphics_objects/graphics_text.cpp

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,9 @@ void GraphicsText::changeFocus() {
2828
case GCS:
2929
setVisible(false);
3030
break;
31+
case DCSHOT:
32+
setVisible(false);
33+
break;
3134
}
3235

3336
update();

src/widgets/map/mapwidget.cpp

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -116,6 +116,12 @@ MapWidget::MapWidget(QWidget *parent) : Map2D(parent),
116116
connect(clear_shapes, &QAction::triggered, this, [=](){
117117
clearShapes();
118118
});
119+
120+
auto clear_dcshots = mapMenu->addAction("Clear DCSHOTS");
121+
connect(clear_dcshots, &QAction::triggered, this, [=](){
122+
clearDcShots();
123+
});
124+
119125
menu_clear_track = new QMenu("Clear Track", mapMenu);
120126
mapMenu->addMenu(menu_clear_track);
121127

@@ -149,6 +155,11 @@ MapWidget::MapWidget(QWidget *parent) : Map2D(parent),
149155
onIntruder(sender, msg);
150156
});
151157

158+
PprzDispatcher::get()->bind("DC_SHOT", this,
159+
[=](QString sender, pprzlink::Message msg) {
160+
onDcShot(sender, msg);
161+
});
162+
152163
PprzDispatcher::get()->bind("FLIGHT_PARAM", this,
153164
[=](QString sender, pprzlink::Message msg) {
154165
(void)sender;
@@ -1129,6 +1140,13 @@ void MapWidget::clearShapes() {
11291140
shapes.clear();
11301141
}
11311142

1143+
void MapWidget::clearDcShots() {
1144+
for(auto dsw: dc_shots) {
1145+
removeItem(dsw);
1146+
}
1147+
dc_shots.clear();
1148+
}
1149+
11321150
void MapWidget::onIntruder(QString sender, pprzlink::Message msg) {
11331151
(void)sender;
11341152
QString id, name;
@@ -1159,6 +1177,24 @@ void MapWidget::onIntruder(QString sender, pprzlink::Message msg) {
11591177
intruders[id] = make_pair(itd, QTime::currentTime());
11601178
}
11611179

1180+
void MapWidget::onDcShot(QString sender, pprzlink::Message msg) {
1181+
(void)sender;
1182+
int16_t photo_nr;
1183+
int32_t lat, lon; // alt;
1184+
msg.getField("photo_nr", photo_nr);
1185+
msg.getField("lat", lat);
1186+
msg.getField("lon", lon);
1187+
1188+
auto p = PprzPalette(QColor(Qt::yellow), QBrush(Qt::yellow));
1189+
auto dsw = new WaypointItem(Point2DLatLon(lat/1e7, lon/1e7),"__NO_AC__", p , 15, this);
1190+
dsw->setStyle(GraphicsObject::Style::DCSHOT);
1191+
dsw->setEditable(false);
1192+
1193+
addItem(dsw);
1194+
1195+
dc_shots.append(dsw);
1196+
}
1197+
11621198
void MapWidget::onGCSPos(pprzlink::Message msg) {
11631199
if(gcsItem) {
11641200
removeItem(gcsItem);

src/widgets/map/mapwidget.h

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -88,7 +88,9 @@ private slots:
8888
void onMoveWaypointUi(Waypoint* wp, QString ac_id);
8989
void onShape(QString sender, pprzlink::Message msg);
9090
void clearShapes();
91+
void clearDcShots();
9192
void onIntruder(QString sender, pprzlink::Message msg);
93+
void onDcShot(QString sender, pprzlink::Message msg);
9294
void onGCSPos(pprzlink::Message msg);
9395
void onGVF(QString sender, pprzlink::Message msg);
9496

@@ -120,6 +122,7 @@ private slots:
120122
QMap<QString, GVF_trajectory*> gvf_trajectories;
121123
QMap<QString, QVector<int>*> gvf_trajectories_config;
122124
QMap<QString, std::pair<MapItem*, QTime>> intruders;
125+
QList<WaypointItem*> dc_shots;
123126
QTimer* timer_intruders;
124127
MapItem* gcsItem;
125128

0 commit comments

Comments
 (0)