mirror of
https://github.com/paparazzi/paparazzi.git
synced 2026-05-30 11:37:06 +08:00
*** empty log message ***
This commit is contained in:
@@ -51,10 +51,15 @@ sub put_lls {
|
||||
}
|
||||
|
||||
sub selected_ac {
|
||||
my ($self, $old_ac, $new_ac) = @_;
|
||||
my ($self, $previous_ac, $new_ac) = @_;
|
||||
$previous_ac->detach($self, '-svsinfo', [\&foo_cbk, '-svsinfo']) if ($previous_ac);
|
||||
$new_ac->attach($self, '-svsinfo', [\&foo_cbk, '-svsinfo']);
|
||||
|
||||
}
|
||||
|
||||
|
||||
sub foo_cbk {
|
||||
my ($self, $field, $aircraft, $event, $new_value) = @_;
|
||||
$self->configure('-sats', $new_value);
|
||||
}
|
||||
|
||||
sub build_gui() {
|
||||
@@ -116,7 +121,7 @@ sub build_gui() {
|
||||
{ -chn => 6 , -svid => 30, -flags => 0x01, -qi => 0, -cno => 42.2, -elev => 53, -azim => 161, -prres => 0.},
|
||||
]
|
||||
};
|
||||
$self->{Sat}->configure( -sats => $sat_h);
|
||||
# $self->{Sat}->configure( -sats => $sat_h);
|
||||
$self->{Sat}->configure( -fix => 30.);
|
||||
|
||||
# my $engine_h = { -nb_engine => 2,
|
||||
|
||||
@@ -28,19 +28,23 @@ sub sats {
|
||||
my $nb_ch = $new_val->{-nch};
|
||||
my $sats = $new_val->{-sats};
|
||||
my $zinc = $self->get('-zinc');
|
||||
foreach my $sat (@{$sats}) {
|
||||
my $sat_obj = $self->{satellites}->[$sat->{-chn}];
|
||||
$zinc->coords($sat_obj->{-group}, $self->get_pos($sat->{-elev}, $sat->{-azim}));
|
||||
$zinc->itemconfigure ($sat_obj->{-group},
|
||||
-visible => 1,
|
||||
);
|
||||
$zinc->itemconfigure ($sat_obj->{-arc},
|
||||
-fillcolor => $sat->{-flags} & 0x01 ? "green3" : "red",
|
||||
);
|
||||
$zinc->itemconfigure ($sat_obj->{-id_lab},
|
||||
-text => sprintf("%d", $sat->{-svid}),
|
||||
);
|
||||
$sat_obj->{-sig_view}->configure(-sat => $sat);
|
||||
|
||||
foreach my $i (0..MAX_CH-1) {
|
||||
my $sat_obj = $self->{satellites}->[$i];
|
||||
unless ($new_val->{svid}->[$i] eq '' or $new_val->{svid}->[$i] == 0) {
|
||||
my $pos = $self->get_pos($new_val->{elev}->[$i], $new_val->{azim}->[$i]);
|
||||
# print "in SatPage::sats $i $new_val->{svid}->[$i] $new_val->{elev}->[$i], $new_val->{azim}->[$i] @{$pos}\n";
|
||||
$zinc->coords($sat_obj->{-group}, $pos);
|
||||
$zinc->itemconfigure ($sat_obj->{-group}, -visible => 1 );
|
||||
$zinc->itemconfigure ($sat_obj->{-arc},
|
||||
-fillcolor => $new_val->{flags}->[$i] & 0x01 ? "green3" : "red",
|
||||
);
|
||||
$zinc->itemconfigure ($sat_obj->{-id_lab},
|
||||
-text => sprintf("%d", $new_val->{svid}->[$i]),
|
||||
);
|
||||
$sat_obj->{-sig_view}->configure(-svid => $new_val->{svid}->[$i], -cno => $new_val->{cno}->[$i]);
|
||||
}
|
||||
else { $zinc->itemconfigure ($sat_obj->{-group}, -visible => 0 )}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -20,7 +20,8 @@ sub populate {
|
||||
-origin => [S_NEEDINIT, S_PASSIVE, S_RDONLY, S_OVRWRT, S_NOPRPG, undef],
|
||||
-width => [S_NEEDINIT, S_PASSIVE, S_RDONLY, S_OVRWRT, S_NOPRPG, undef],
|
||||
-height => [S_NEEDINIT, S_PASSIVE, S_RDONLY, S_OVRWRT, S_NOPRPG, undef],
|
||||
-sat => [S_NOINIT, S_METHOD, S_RDWR, S_OVRWRT, S_NOPRPG, undef],
|
||||
-svid => [S_NOINIT, S_METHOD, S_RDWR, S_OVRWRT, S_NOPRPG, undef],
|
||||
-cno => [S_NOINIT, S_METHOD, S_RDWR, S_OVRWRT, S_NOPRPG, undef],
|
||||
);
|
||||
}
|
||||
|
||||
@@ -30,11 +31,16 @@ sub completeinit {
|
||||
$self->build_gui();
|
||||
}
|
||||
|
||||
sub sat {
|
||||
sub svid {
|
||||
my ($self, $old_val, $new_val) = @_;
|
||||
return unless defined $new_val;
|
||||
$self->get('-zinc')->itemconfigure($self->{-id_lab}, -text => sprintf("%d", $new_val->{-svid}));
|
||||
$self->get('-zinc')->itemconfigure($self->{-sig_lab}, -text => sprintf("%.1f db", $new_val->{-cno}));
|
||||
$self->get('-zinc')->itemconfigure($self->{-id_lab}, -text => sprintf("%d", $new_val));
|
||||
}
|
||||
|
||||
sub cno {
|
||||
my ($self, $old_val, $new_val) = @_;
|
||||
return unless defined $new_val;
|
||||
$self->get('-zinc')->itemconfigure($self->{-sig_lab}, -text => sprintf("%.1f db", $new_val));
|
||||
}
|
||||
|
||||
sub build_gui {
|
||||
|
||||
@@ -76,12 +76,7 @@ sub populate {
|
||||
amp => [S_NOINIT, S_PASSIVE, S_RDWR, S_OVRWRT, S_NOPRPG, 0.],
|
||||
energy => [S_NOINIT, S_PASSIVE, S_RDWR, S_OVRWRT, S_NOPRPG, 0.],
|
||||
|
||||
svid => [S_NOINIT, S_PASSIVE, S_RDWR, S_OVRWRT, S_NOPRPG, []],
|
||||
flags => [S_NOINIT, S_PASSIVE, S_RDWR, S_OVRWRT, S_NOPRPG, []],
|
||||
qi => [S_NOINIT, S_PASSIVE, S_RDWR, S_OVRWRT, S_NOPRPG, []],
|
||||
cno => [S_NOINIT, S_PASSIVE, S_RDWR, S_OVRWRT, S_NOPRPG, []],
|
||||
elev => [S_NOINIT, S_PASSIVE, S_RDWR, S_OVRWRT, S_NOPRPG, []],
|
||||
azim => [S_NOINIT, S_PASSIVE, S_RDWR, S_OVRWRT, S_NOPRPG, []],
|
||||
-svsinfo => [S_NOINIT, S_PASSIVE, S_RDWR, S_OVRWRT, S_NOPRPG, undef],
|
||||
|
||||
rc_status => [S_NOINIT, S_PASSIVE, S_RDWR, S_OVRWRT, S_NOPRPG, 0.],
|
||||
rc_mode => [S_NOINIT, S_PASSIVE, S_RDWR, S_OVRWRT, S_NOPRPG, 0.],
|
||||
|
||||
@@ -113,36 +113,26 @@ sub on_ac_msg {
|
||||
# print "AircraftsManager::on_ac_msg : $msg_name\n".Dumper($fields);
|
||||
if (defined ($aircraft)) {
|
||||
delete $fields->{ac_id};
|
||||
$aircraft->configure(%{$fields});
|
||||
if ($msg_name eq "SVSINFO") {
|
||||
$aircraft->configure(-svsinfo => $fields);
|
||||
}
|
||||
else {
|
||||
$aircraft->configure(%{$fields});
|
||||
}
|
||||
}
|
||||
else {
|
||||
print STDERR "in AircraftsManager::on_ac_msg : unknow aircraft $ac_id in message $msg_class:$msg_name\n";
|
||||
}
|
||||
}
|
||||
|
||||
sub on_sv_info {
|
||||
my ($sender_name, $msg_class, $msg_name, $fields, $self) = @_;
|
||||
print "in AircraftsManager::on_sv_info\n".Dumper($fields);
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
sub listen_to_ac {
|
||||
my ($self, $ac_id) = @_;
|
||||
my @ac_events = ( ['FLIGHT_PARAM', \&on_ac_msg],
|
||||
['AP_STATUS', \&on_ac_msg],
|
||||
['NAV_STATUS', \&on_ac_msg],
|
||||
['CAM_STATUS', \&on_ac_msg],
|
||||
['ENGINE_STATUS', \&on_ac_msg],
|
||||
['FLY_BY_WIRE', \&on_ac_msg],
|
||||
['INFRARED', \&on_ac_msg],
|
||||
['INFLIGH_CALIB', \&on_ac_msg],
|
||||
['SVINFO', \&on_sv_info],
|
||||
);
|
||||
foreach my $event (@ac_events) {
|
||||
Paparazzi::IvyProtocol::bind_msg("ground", "ground", $event->[0],
|
||||
{aircraft_id => $ac_id}, [$event->[1], $self]);
|
||||
my @ac_msgs = ( 'FLIGHT_PARAM', 'AP_STATUS', 'NAV_STATUS', 'CAM_STATUS', 'ENGINE_STATUS',
|
||||
'FLY_BY_WIRE', 'INFRARED', 'INFLIGH_CALIB', 'SVSINFO');
|
||||
foreach my $msg_name (@ac_msgs) {
|
||||
Paparazzi::IvyProtocol::bind_msg("ground", "ground", $msg_name, {aircraft_id => $ac_id},
|
||||
[\&on_ac_msg, $self]);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user