@@ -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+
11321150void 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+
11621198void MapWidget::onGCSPos (pprzlink::Message msg) {
11631199 if (gcsItem) {
11641200 removeItem (gcsItem);
0 commit comments