mirror of
https://github.com/paparazzi/paparazzi.git
synced 2026-06-01 12:57:27 +08:00
A/C selected from map
This commit is contained in:
+1
-1
@@ -269,7 +269,7 @@
|
|||||||
</message>
|
</message>
|
||||||
|
|
||||||
<message name="SELECTED" ID="5">
|
<message name="SELECTED" ID="5">
|
||||||
<field name="aicraft_id" type="string"/>
|
<field name="aircraft_id" type="string"/>
|
||||||
</message>
|
</message>
|
||||||
|
|
||||||
<message name="SELECTED_REQ" ID="6">
|
<message name="SELECTED_REQ" ID="6">
|
||||||
|
|||||||
@@ -123,7 +123,7 @@ sub on_foo {
|
|||||||
sub ivy_on_selected {
|
sub ivy_on_selected {
|
||||||
my ($sender_name, $msg_class, $msg_name, $fields, $self) = @_;
|
my ($sender_name, $msg_class, $msg_name, $fields, $self) = @_;
|
||||||
print "in ivy_on_selected\n"; # if (COCKPIT_DEBUG);
|
print "in ivy_on_selected\n"; # if (COCKPIT_DEBUG);
|
||||||
my $ac_id = $fields->{aicraft_id};
|
my $ac_id = $fields->{aircraft_id};
|
||||||
if (defined $self->{aircrafts_manager}->get_aircraft_by_id($ac_id)) {
|
if (defined $self->{aircrafts_manager}->get_aircraft_by_id($ac_id)) {
|
||||||
$self->select_ac($ac_id);
|
$self->select_ac($ac_id);
|
||||||
}
|
}
|
||||||
@@ -135,7 +135,7 @@ sub ivy_on_selected {
|
|||||||
sub on_aircraft_selection {
|
sub on_aircraft_selection {
|
||||||
my ($self, $_sp, $what, $new_selected_ac ) = @_;
|
my ($self, $_sp, $what, $new_selected_ac ) = @_;
|
||||||
$self->select_ac($new_selected_ac);
|
$self->select_ac($new_selected_ac);
|
||||||
Paparazzi::IvyProtocol::send_msg('ground', 'SELECTED', { aicraft_id => $new_selected_ac });
|
Paparazzi::IvyProtocol::send_msg('ground', 'SELECTED', { aircraft_id => $new_selected_ac });
|
||||||
}
|
}
|
||||||
|
|
||||||
sub select_ac {
|
sub select_ac {
|
||||||
|
|||||||
@@ -239,6 +239,13 @@ let one_new_ac = fun (geomap:MapCanvas.widget) ac ->
|
|||||||
ignore (ac_menu_fact#add_item "Resize Track" ~callback:(fun () -> resize_track ac track));
|
ignore (ac_menu_fact#add_item "Resize Track" ~callback:(fun () -> resize_track ac track));
|
||||||
let cam = ac_menu_fact#add_check_item "Cam Display" ~active:false in
|
let cam = ac_menu_fact#add_check_item "Cam Display" ~active:false in
|
||||||
ignore (cam#connect#toggled (fun () -> track#set_cam_state cam#active));
|
ignore (cam#connect#toggled (fun () -> track#set_cam_state cam#active));
|
||||||
|
let event_ac = fun e ->
|
||||||
|
match e with
|
||||||
|
`BUTTON_PRESS _ | `BUTTON_RELEASE _ ->
|
||||||
|
Ground_Pprz.message_send "ground" "SELECTED" ["aircraft_id", Pprz.String ac];
|
||||||
|
true
|
||||||
|
| _ -> false in
|
||||||
|
ignore (track#aircraft#connect#event event_ac);
|
||||||
Hashtbl.add live_aircrafts ac { track = track; color = color; fp_group = None }
|
Hashtbl.add live_aircrafts ac { track = track; color = color; fp_group = None }
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user