mirror of
https://github.com/paparazzi/paparazzi.git
synced 2026-05-31 20:38:27 +08:00
*** empty log message ***
This commit is contained in:
@@ -59,7 +59,7 @@ sub add_aircraft {
|
||||
|
||||
sub on_ac_changed {
|
||||
my ($self, $aircraft, $event, $new_value) = @_;
|
||||
print "in MissionD : on_ac_changed $aircraft, $event $new_value\n";
|
||||
# print "in MissionD : on_ac_changed $aircraft, $event $new_value\n";
|
||||
my $ac_id = $aircraft->get('-ac_id');
|
||||
if ($event eq 'flight_plan') {
|
||||
if (defined $new_value) {
|
||||
|
||||
@@ -90,15 +90,6 @@ sub build_gui() {
|
||||
-height => $real_width,
|
||||
-visible => 1,
|
||||
);
|
||||
# $self->{$page} = ('Paparazzi::'.$page.'Page')->new(
|
||||
# -zinc => $zinc,
|
||||
# -parent_grp => $self->{main_group},
|
||||
# -origin => [ $margin+$col*$page_width, $margin+$row*$page_width],
|
||||
# -width => $real_width,
|
||||
# -height => $real_width,
|
||||
# -visible => 1,
|
||||
# );
|
||||
|
||||
if ($page eq "IR") {
|
||||
$self->{$page}->attach($self, 'WIND_COMMAND', [sub { my ($self, $component, $signal, $arg) = @_;
|
||||
$self->notify('WIND_COMMAND', $arg)}]);
|
||||
@@ -108,21 +99,7 @@ sub build_gui() {
|
||||
}
|
||||
|
||||
|
||||
my $sat_h =
|
||||
{
|
||||
-itow => 12345,
|
||||
-nch => 7,
|
||||
-sats => [ { -chn => 0 , -svid => 3, -flags => 0x00, -qi => 0, -cno => 0, -elev => 45, -azim => 315, -prres => 0.},
|
||||
{ -chn => 1 , -svid => 22, -flags => 0x01, -qi => 0, -cno => 45.2, -elev => 35, -azim => 300, -prres => 0.},
|
||||
{ -chn => 2 , -svid => 1, -flags => 0x00, -qi => 0, -cno => 36.6, -elev => 6, -azim => 315, -prres => 0.},
|
||||
{ -chn => 3 , -svid => 25, -flags => 0x01, -qi => 0, -cno => 45.2, -elev => 45, -azim => 237, -prres => 0.},
|
||||
{ -chn => 4 , -svid => 6, -flags => 0x01, -qi => 0, -cno => 45.8, -elev => 58, -azim => 61, -prres => 0.},
|
||||
{ -chn => 5 , -svid => 17, -flags => 0x01, -qi => 0, -cno => 43.8, -elev => 31, -azim => 123, -prres => 0.},
|
||||
{ -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( -fix => 30.);
|
||||
|
||||
|
||||
# my $engine_h = { -nb_engine => 2,
|
||||
# -engine => [{throttle => 50, -rpm => 3500, -temp => 39},
|
||||
|
||||
@@ -11,7 +11,7 @@ use Data::Dumper;
|
||||
use strict;
|
||||
sub populate {
|
||||
my ($self, $args) = @_;
|
||||
|
||||
|
||||
$self->SUPER::populate($args);
|
||||
$self->configspec(-zinc => [S_NEEDINIT, S_PASSIVE, S_RDONLY, S_OVRWRT, S_NOPRPG, undef],
|
||||
-parent_grp => [S_NEEDINIT, S_PASSIVE, S_RDONLY, S_OVRWRT, S_NOPRPG, undef],
|
||||
@@ -80,61 +80,28 @@ sub build_gui {
|
||||
my @origin = $self->get('-origin');
|
||||
$zinc->coords($self->{main_group}, \@origin);
|
||||
|
||||
my $nb_mode = scalar @{$self->{modes}};
|
||||
my $dx = $self->get('-width') / $nb_mode;
|
||||
|
||||
my $modes = $self->{modes};
|
||||
|
||||
my $nb_col = $#$modes+1;
|
||||
|
||||
# print "nb_col $nb_col\n";
|
||||
|
||||
my $w = $self->get('-width');
|
||||
my $h = $self->get('-height');
|
||||
my $i;
|
||||
for ($i=1; $i<$nb_col; $i++) {
|
||||
my $x = $i / $nb_col * $w;
|
||||
$zinc->add('curve', $self->{main_group},
|
||||
[$x, 10, $x, $h +10],
|
||||
-linewidth => 2,
|
||||
-linecolor => 'white',
|
||||
-filled => 0);
|
||||
foreach my $i (0..$nb_mode-1){
|
||||
my $mode = $self->{modes}->[$i];
|
||||
my $button = DigiKit::Button->new(-widget => $zinc,
|
||||
-style => ['Aqualike',
|
||||
-width => $dx,
|
||||
-height => 35,
|
||||
-color => 'green',
|
||||
-text => (uc $mode->{name})."\ncoucou",
|
||||
# -trunc => $i == 0 ? 'right' : $i == $nb_mode ? 'left' : 'both',
|
||||
-trunc => 'both',
|
||||
],
|
||||
-position => [$i * $dx, 0],
|
||||
-parentgroup => $self->{main_group},
|
||||
-releasecommand => sub { $self->notify('CLICKED', $mode->{name})},
|
||||
);
|
||||
}
|
||||
|
||||
my $f = '-adobe-helvetica-bold-o-normal--16-240-100-100-p-182-iso8859-1';
|
||||
my $labelformat = "100x200 x80x20+20+10 x80x20^0>0 x80x20^0>1";
|
||||
my @tab_args = ('tabular',$self->{main_group}, 3,
|
||||
-labelformat => $labelformat,);
|
||||
my @tab_style = ( -font => $f,
|
||||
-color => 'green');
|
||||
my $x=-10;
|
||||
my $dx = $self->get('-width') / $nb_col;
|
||||
foreach my $mode (@{$self->{modes}}) {
|
||||
$mode->{tabular} = $zinc->add(@tab_args, -position => [$x, -5] );
|
||||
$zinc->itemconfigure ($mode->{tabular}, 0, @tab_style, -text => uc $mode->{name});
|
||||
$zinc->bind($mode->{tabular},'<ButtonPress-1>'=> [\&onRectClicked, $self, $mode->{name}]);
|
||||
$x += $dx;
|
||||
}
|
||||
|
||||
|
||||
$self->{rect_group} = $zinc->add('group', $self->{main_group}, -visible => 1);
|
||||
my $rect = $zinc->add('rectangle', $self->{main_group}, [0, 0, $w, $h],
|
||||
-visible => 0,
|
||||
-linecolor => 'white',
|
||||
-filled => '1',
|
||||
);
|
||||
# $zinc->bind($rect,'<ButtonPress-1>'=> [\&onRectClicked, $self, "coucou"]);
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
sub onRectClicked {
|
||||
my ($zinc, $self, $name) = @_;
|
||||
print "onRectClicked : $name\n";
|
||||
$self->notify('CLICKED', $name);
|
||||
}
|
||||
|
||||
|
||||
|
||||
sub set_mode {
|
||||
my ($self, $name, $previous_val, $new_val) = @_;
|
||||
my $mode = $self->{modes_by_name}->{$name};
|
||||
|
||||
@@ -69,10 +69,10 @@ sub completeinit {
|
||||
|
||||
$self->{modes} =
|
||||
{
|
||||
ap_mode =>
|
||||
{ name => ["Manual", "Auto1", "Auto2", "Home"],
|
||||
color => ["sienna", "blue", "brown", "red"]
|
||||
},
|
||||
# ap_mode =>
|
||||
# { name => ["Manual", "Auto1", "Auto2", "Home"],
|
||||
# color => ["sienna", "blue", "brown", "red"]
|
||||
# },
|
||||
gps_mode =>
|
||||
{ name => [ "No fix", "GPS dead reckoning only", "2D-fix", "3D-fix", "GPS + dead reckoning combined"],
|
||||
color => ["red", "red", "orange", "brown", "orange"]
|
||||
@@ -81,15 +81,16 @@ sub completeinit {
|
||||
# { name => ["Ok","Lost", "Really lost", "error"],
|
||||
# color => ["orange", "brown", "red", "red"]
|
||||
# },
|
||||
contrast_status =>
|
||||
{ name => ["Default","Waiting", "Set", "error"],
|
||||
color => ["orange", "brown", "red", "red"]
|
||||
}
|
||||
# contrast_status =>
|
||||
# { name => ["Default","Waiting", "Set", "error"],
|
||||
# color => ["orange", "brown", "red", "red"]
|
||||
# }
|
||||
};
|
||||
|
||||
$self->{new_modes} =
|
||||
{
|
||||
rc_status => {'OK' => 'orange', 'LOST' => 'brown', 'REALLY_LOST' => 'red'},
|
||||
ap_mode => { 'MANUAL' => 'sienna', 'AUTO1' => 'blue', 'AUTO2' => 'brown', 'HOME' => 'red'},
|
||||
rc_status => {'OK' => 'brown', 'LOST' => 'orange', 'REALLY_LOST' => 'red'},
|
||||
rc_mode => {'AUTO'=> 'orange', 'MANUAL' => 'brown', 'FAILSAFE' => 'red'},
|
||||
contrast_status => {'DEFAULT' => 'orange', 'WAITING' => 'brown', 'SET' => 'set'},
|
||||
};
|
||||
@@ -372,11 +373,11 @@ sub aircraft_config_changed {
|
||||
if ($event eq 'flight_plan') {
|
||||
# $self->border_block() if (defined $new_value) ; # display blocks of flight plan
|
||||
}
|
||||
elsif ($event eq 'rc_status' or $event eq 'rc_mode' or $event eq 'contrast_status' ) {
|
||||
elsif ($event eq 'rc_status' or $event eq 'rc_mode' or $event eq 'contrast_status' or $event eq 'ap_mode' ) {
|
||||
my $color = $self->{new_modes}->{$event}->{$new_value};
|
||||
$self->set_item($event, $new_value, $color);
|
||||
}
|
||||
elsif ($event eq 'ap_mode' or $event eq 'gps_mode' ) {
|
||||
elsif ($event eq 'gps_mode' ) {
|
||||
my $names = $self->{modes}->{$event}->{name};
|
||||
my $colors = $self->{modes}->{$event}->{color};
|
||||
if ($new_value < @{$names} ) {
|
||||
|
||||
@@ -102,8 +102,8 @@ sub build_gui {
|
||||
-width => $pfd_w,
|
||||
-height => $pfd_h,
|
||||
);
|
||||
# $self->{pfd}->attach($self, 'SHOW_PAGE', ['onShowPage']);
|
||||
$self->{nd} = Paparazzi::ND->new( -zinc => $zinc,
|
||||
$self->{pfd}->attach($self, 'SHOW_PAGE', ['onShowPage']);
|
||||
$self->{nd} = Paparazzi::ND->new( -zinc => $zinc,
|
||||
-origin => $nd_p,
|
||||
-width => $nd_w,
|
||||
-height => $nd_h,
|
||||
|
||||
@@ -48,7 +48,7 @@ sub populate {
|
||||
alt => [S_NOINIT, S_PASSIVE, S_RDWR, S_OVRWRT, S_NOPRPG, 0.],
|
||||
climb => [S_NOINIT, S_PASSIVE, S_RDWR, S_OVRWRT, S_NOPRPG, 0.],
|
||||
|
||||
ap_mode => [S_NOINIT, S_PASSIVE, S_RDWR, S_OVRWRT, S_NOPRPG, 0.],
|
||||
ap_mode => [S_NOINIT, S_PASSIVE, S_RDWR, S_OVRWRT, S_NOPRPG, 'MANUAL'],
|
||||
lat_mode => [S_NOINIT, S_PASSIVE, S_RDWR, S_OVRWRT, S_NOPRPG, 0.],
|
||||
gaz_mode => [S_NOINIT, S_PASSIVE, S_RDWR, S_OVRWRT, S_NOPRPG, 0.],
|
||||
target_climb => [S_NOINIT, S_PASSIVE, S_RDWR, S_OVRWRT, S_NOPRPG, 0.],
|
||||
@@ -78,8 +78,8 @@ sub populate {
|
||||
|
||||
-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.],
|
||||
rc_status => [S_NOINIT, S_PASSIVE, S_RDWR, S_OVRWRT, S_NOPRPG, 'REALLY_LOST'],
|
||||
rc_mode => [S_NOINIT, S_PASSIVE, S_RDWR, S_OVRWRT, S_NOPRPG, 'MANUAL'],
|
||||
|
||||
gps_hybrid_mode => [S_NOINIT, S_PASSIVE, S_RDWR, S_OVRWRT, S_NOPRPG, 0.],
|
||||
gps_hybrid_factor => [S_NOINIT, S_PASSIVE, S_RDWR, S_OVRWRT, S_NOPRPG, 0.],
|
||||
|
||||
@@ -179,7 +179,7 @@ sub parse_mission {
|
||||
|
||||
foreach my $block ($doc->getElementsByTagName('block')) {
|
||||
my $block_name = $block->getAttribute('NAME').$block->getAttribute('name');
|
||||
print "################### $block_name\n";
|
||||
# print "################### $block_name\n";
|
||||
my $block_description = $block->getAttribute('description');
|
||||
my $block_id = $blocks->{$block_name};
|
||||
|
||||
|
||||
Reference in New Issue
Block a user