mirror of
https://github.com/paparazzi/paparazzi.git
synced 2026-05-20 19:36:19 +08:00
*** empty log message ***
This commit is contained in:
+1
-1
@@ -22,7 +22,7 @@
|
||||
# Port: The port Boa runs on. The default port for http servers is 80.
|
||||
# If it is less than 1024, the server must be started as root.
|
||||
|
||||
Port 8888
|
||||
Port 8889
|
||||
|
||||
# Listen: the Internet address to bind(2) to. If you leave it out,
|
||||
# it takes the behavior before 0.93.17.2, which is to bind to all
|
||||
|
||||
@@ -27,7 +27,7 @@ sub engine_status {
|
||||
my ($self, $old_val, $new_val) = @_;
|
||||
my $zinc = $self->get('-zinc');
|
||||
foreach my $field (keys %{$new_val}) {
|
||||
$self->{'gauge_'.$field}->configure( -value => $new_val->{$field}) if defined $self->{'gauge_'.$field};
|
||||
$self->{'gauge_'.$field}->configure( -value => $new_val->{$field}) if defined $self->{'gauge_'.$field};
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -20,29 +20,29 @@ sub populate {
|
||||
-width => [S_NEEDINIT, S_PASSIVE, S_RDONLY, S_OVRWRT, S_NOPRPG, undef],
|
||||
-height => [S_NEEDINIT, S_PASSIVE, S_RDONLY, S_OVRWRT, S_NOPRPG, undef],
|
||||
-selected_ac => [S_NOINIT, S_METHOD, S_RDWR, S_OVRWRT, S_NOPRPG, undef],
|
||||
-page => [S_NOINIT, S_METHOD, S_RDWR, S_OVRWRT, S_NOPRPG, "gps"],
|
||||
-page => [S_NOINIT, S_METHOD, S_RDWR, S_OVRWRT, S_NOPRPG, undef],
|
||||
# -fix => [S_NOINIT, S_PRPGONLY, S_RDWR, S_OVRWRT, S_CHILDREN, undef],
|
||||
# -ap_status => [S_NOINIT, S_PRPGONLY, S_RDWR, S_OVRWRT, S_CHILDREN, undef],
|
||||
# -wind => [S_NOINIT, S_PRPGONLY, S_RDWR, S_OVRWRT, S_CHILDREN, undef],
|
||||
# -lls => [S_NOINIT, S_PRPGONLY, S_RDWR, S_OVRWRT, S_CHILDREN, undef],
|
||||
-svsinfo => [S_NOINIT, S_PRPGONLY, S_RDWR, S_OVRWRT, S_CHILDREN, undef],
|
||||
-engine_status => [S_NOINIT, S_PRPGONLY, S_RDWR, S_OVRWRT, S_CHILDREN, undef],
|
||||
-ap_status => [S_NOINIT, S_PRPGONLY, S_RDWR, S_OVRWRT, S_CHILDREN, undef],
|
||||
-wind => [S_NOINIT, S_PRPGONLY, S_RDWR, S_OVRWRT, S_CHILDREN, undef],
|
||||
-lls => [S_NOINIT, S_PRPGONLY, S_RDWR, S_OVRWRT, S_CHILDREN, undef],
|
||||
-sats => [S_NOINIT, S_PRPGONLY, S_RDWR, S_OVRWRT, S_CHILDREN, undef],
|
||||
-fix => [S_NOINIT, S_PRPGONLY, S_RDWR, S_OVRWRT, S_CHILDREN, undef],
|
||||
);
|
||||
}
|
||||
|
||||
sub completeinit {
|
||||
my $self = shift;
|
||||
$self->SUPER::completeinit();
|
||||
$self->SUPER::completeinit();
|
||||
$self->build_gui();
|
||||
$self->configure('-pubevts' => 'WIND_COMMAND');
|
||||
}
|
||||
|
||||
sub page {
|
||||
my ($self, $old_val, $new_val) = @_;
|
||||
print "in ND::page [$new_val]\n";
|
||||
return unless defined $new_val and defined $self->{sat_view};
|
||||
# $self->{sat_view}->configure('-visible' => $i%2);
|
||||
# $i++;
|
||||
print "in ND::page [$old_val $new_val]\n";
|
||||
return unless defined $new_val and defined $self->{main_group};
|
||||
$self->{$old_val}->configure(-visible => 0) if defined $old_val;
|
||||
$self->{$new_val}->configure(-visible => 1);
|
||||
}
|
||||
|
||||
sub put_lls {
|
||||
@@ -52,14 +52,15 @@ sub put_lls {
|
||||
|
||||
sub selected_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']);
|
||||
|
||||
foreach my $attr ('-svsinfo', '-engine_status') {
|
||||
$previous_ac->detach($self, $attr, [\&foo_cbk, $attr]) if ($previous_ac);
|
||||
$new_ac->attach($self, $attr, [\&foo_cbk, $attr]);
|
||||
}
|
||||
}
|
||||
|
||||
sub foo_cbk {
|
||||
my ($self, $field, $aircraft, $event, $new_value) = @_;
|
||||
$self->configure('-sats', $new_value);
|
||||
my ($self, $field, $aircraft, $attr, $new_value) = @_;
|
||||
$self->configure($attr, $new_value);
|
||||
}
|
||||
|
||||
sub build_gui() {
|
||||
@@ -77,18 +78,18 @@ sub build_gui() {
|
||||
-filled => 0,
|
||||
-linecolor => 'red');
|
||||
my ($margin, $page_width) = (5, 300);
|
||||
my $real_width = $page_width - 2*$margin;
|
||||
my $real_width = $page_width - 2*$margin;
|
||||
my ($page_per_row, $row, $col) = (2, 0, 0);
|
||||
|
||||
my $pages = ['Sat', 'Engine','AP', 'IR'];
|
||||
my $pages = ['Gps', 'Nav', 'Engine', 'IR'];
|
||||
foreach my $page (@{$pages}) {
|
||||
$self->{$page} = $self->component('Paparazzi::'.$page.'Page',
|
||||
-zinc => $zinc,
|
||||
-parent_grp => $self->{main_group},
|
||||
-origin => [ $margin+$col*$page_width, $margin+$row*$page_width],
|
||||
-origin => [ $margin, $margin],
|
||||
-width => $real_width,
|
||||
-height => $real_width,
|
||||
-visible => 1,
|
||||
-visible => 0,
|
||||
);
|
||||
if ($page eq "IR") {
|
||||
$self->{$page}->attach($self, 'WIND_COMMAND', [sub { my ($self, $component, $signal, $arg) = @_;
|
||||
|
||||
@@ -17,7 +17,7 @@ sub populate {
|
||||
-width => [S_NEEDINIT, S_PASSIVE, S_RDONLY, S_OVRWRT, S_NOPRPG, undef],
|
||||
-height => [S_NEEDINIT, S_PASSIVE, S_RDONLY, S_OVRWRT, S_NOPRPG, undef],
|
||||
-title => [S_NEEDINIT, S_PASSIVE, S_RDONLY, S_OVRWRT, S_NOPRPG, undef],
|
||||
-visible => [S_NOINIT, S_METHOD, S_RDWR, S_OVRWRT, S_NOPRPG, "1"],
|
||||
-visible => [S_NOINIT, S_METHOD, S_RDWR, S_OVRWRT, S_NOPRPG, 0],
|
||||
);
|
||||
}
|
||||
|
||||
@@ -29,7 +29,7 @@ sub completeinit {
|
||||
|
||||
sub visible {
|
||||
my ($self, $old_val, $new_val) = @_;
|
||||
# print "in EngineView::visible $new_val\n";
|
||||
# print "in NDPage::visible $new_val\n";
|
||||
return unless defined $new_val and defined $self->{main_group};
|
||||
my $zinc = $self->get('-zinc');
|
||||
$zinc->itemconfigure ($self->{main_group},
|
||||
@@ -39,12 +39,13 @@ sub visible {
|
||||
|
||||
sub build_gui {
|
||||
my ($self) = @_;
|
||||
# print "in NDPage::build_gui\n";
|
||||
my $zinc = $self->get('-zinc');
|
||||
my $width = $self->get('-width');
|
||||
my $height = $self->get('-height');
|
||||
my $origin = $self->get('-origin');
|
||||
my $parent_grp = $self->get('-parent_grp');
|
||||
$self->{main_group} = $zinc->add('group', $parent_grp, -visible => 1);
|
||||
$self->{main_group} = $zinc->add('group', $parent_grp, -visible => 0);
|
||||
$zinc->coords($self->{main_group}, $origin);
|
||||
$zinc->add('rectangle', $self->{main_group}, [0, 0, $width, $height],
|
||||
-visible => 1, -linecolor => "green");
|
||||
|
||||
@@ -33,39 +33,41 @@ sub populate {
|
||||
sub completeinit {
|
||||
my $self = shift;
|
||||
$self->SUPER::completeinit();
|
||||
$self->{modes} = [ { name => 'rc',
|
||||
str => ["lost","ok", "really lost", "not possible"],
|
||||
color => ["orange", "green", "red", "red"]
|
||||
},
|
||||
{ name => 'cal',
|
||||
str => ["unkwn", "wait", "ok"],
|
||||
color =>["red", "orange", "green"]
|
||||
},
|
||||
{ name => 'ap',
|
||||
str => ["manual", "auto1", "auto2", "home"],
|
||||
color =>["green", "green", "green", "orange"]
|
||||
},
|
||||
{ name => 'gps',
|
||||
str => [ "No fix",
|
||||
"dead reckoning only",
|
||||
"2D-fix",
|
||||
"3D-fix",
|
||||
"GPS + dead reckoning combined"],
|
||||
color => ["red", "red", "orange", "green", "orange"]
|
||||
},
|
||||
{ name => 'lls',
|
||||
str => ["OFF" , "ON"],
|
||||
color =>["orange", "green"]
|
||||
},
|
||||
{ name => 'if',
|
||||
str => ["none", "down", "up"],
|
||||
color =>["green", "orange", "orange"]
|
||||
}
|
||||
];
|
||||
$self->{modes_by_name} = {};
|
||||
foreach my $mode (@{$self->{modes}}) {
|
||||
$self->{modes_by_name}->{$mode->{name}} = $mode;
|
||||
}
|
||||
# $self->{modes} = [ { name => 'rc',
|
||||
# str => ["lost","ok", "really lost", "not possible"],
|
||||
# color => ["orange", "green", "red", "red"]
|
||||
# },
|
||||
# { name => 'cal',
|
||||
# str => ["unkwn", "wait", "ok"],
|
||||
# color =>["red", "orange", "green"]
|
||||
# },
|
||||
# { name => 'ap',
|
||||
# str => ["manual", "auto1", "auto2", "home"],
|
||||
# color =>["green", "green", "green", "orange"]
|
||||
# },
|
||||
# { name => 'gps',
|
||||
# str => [ "No fix",
|
||||
# "dead reckoning only",
|
||||
# "2D-fix",
|
||||
# "3D-fix",
|
||||
# "GPS + dead reckoning combined"],
|
||||
# color => ["red", "red", "orange", "green", "orange"]
|
||||
# },
|
||||
# { name => 'lls',
|
||||
# str => ["OFF" , "ON"],
|
||||
# color =>["orange", "green"]
|
||||
# },
|
||||
# { name => 'if',
|
||||
# str => ["none", "down", "up"],
|
||||
# color =>["green", "orange", "orange"]
|
||||
# }
|
||||
# ];
|
||||
# $self->{modes_by_name} = {};
|
||||
# foreach my $mode (@{$self->{modes}}) {
|
||||
# $self->{modes_by_name}->{$mode->{name}} = $mode;
|
||||
# }
|
||||
|
||||
$self->{pages} = ['Gps', 'Nav', 'Engine', 'IR'];
|
||||
$self->build_gui();
|
||||
$self->configure('-pubevts' => 'CLICKED');
|
||||
}
|
||||
@@ -80,23 +82,22 @@ 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 $nb_pages = scalar @{$self->{pages}};
|
||||
my $dx = $self->get('-width') / $nb_pages;
|
||||
|
||||
foreach my $i (0..$nb_mode-1){
|
||||
my $mode = $self->{modes}->[$i];
|
||||
foreach my $i (0..$nb_pages-1){
|
||||
my $page = $self->{pages}->[$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',
|
||||
-text => $page,
|
||||
-trunc => 'both',
|
||||
],
|
||||
-position => [$i * $dx, 0],
|
||||
-parentgroup => $self->{main_group},
|
||||
-releasecommand => sub { $self->notify('CLICKED', $mode->{name})},
|
||||
-releasecommand => sub { $self->notify('CLICKED', $page)},
|
||||
);
|
||||
}
|
||||
|
||||
@@ -161,22 +162,22 @@ sub lls_value {
|
||||
|
||||
sub ctrst_mode {
|
||||
my ($self, $previous_mode, $new_mode) = @_;
|
||||
$self->set_mode("ctrst", $previous_mode, $new_mode);
|
||||
# $self->set_mode("ctrst", $previous_mode, $new_mode);
|
||||
}
|
||||
|
||||
sub ctrst_value {
|
||||
my ($self, $previous_val, $new_val) = @_;
|
||||
my $mode = $self->{modes_by_name}->{ctrst};
|
||||
if (defined $mode) {
|
||||
if (!defined $previous_val || $previous_val != $new_val) {
|
||||
my $zinc = $self->get('-zinc');
|
||||
my $str_val = sprintf ("%.4f", $new_val);
|
||||
$zinc->itemconfigure( $mode->{tabular}, 2,
|
||||
-text => $str_val,
|
||||
-color => "green",
|
||||
);
|
||||
}
|
||||
}
|
||||
# my $mode = $self->{modes_by_name}->{ctrst};
|
||||
# if (defined $mode) {
|
||||
# if (!defined $previous_val || $previous_val != $new_val) {
|
||||
# my $zinc = $self->get('-zinc');
|
||||
# my $str_val = sprintf ("%.4f", $new_val);
|
||||
# $zinc->itemconfigure( $mode->{tabular}, 2,
|
||||
# -text => $str_val,
|
||||
# -color => "green",
|
||||
# );
|
||||
# }
|
||||
# }
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -72,8 +72,6 @@ sub on_new_aircraft {
|
||||
$self->{md}->add_aircraft($aircraft);
|
||||
}
|
||||
|
||||
|
||||
|
||||
sub build_gui {
|
||||
my ($self) = @_;
|
||||
$self->{mw} = MainWindow->new();
|
||||
|
||||
@@ -473,7 +473,7 @@ let send_config = fun _asker args ->
|
||||
try
|
||||
let conf = ExtXml.child conf_xml "aircraft" ~select:(fun x -> ExtXml.attrib x "ac_id" = ac_id) in
|
||||
let ac_name = ExtXml.attrib conf "name" in
|
||||
let prefix = fun s -> sprintf "http://%s:8888/%s" (Unix.gethostname ()) s in
|
||||
let prefix = fun s -> sprintf "http://%s:8889/%s" (Unix.gethostname ()) s in
|
||||
(** Expanded flight plan has been compiled in var/ *)
|
||||
let fp = prefix ("var" // ac_name // "flight_plan.xml")
|
||||
and af = prefix ("conf" // ExtXml.attrib conf "airframe")
|
||||
|
||||
@@ -69,12 +69,13 @@ sub populate {
|
||||
target_east => [S_NOINIT, S_PASSIVE, S_RDWR, S_OVRWRT, S_NOPRPG, 0.],
|
||||
target_north => [S_NOINIT, S_PASSIVE, S_RDWR, S_OVRWRT, S_NOPRPG, 0.],
|
||||
|
||||
throttle => [S_NOINIT, S_PASSIVE, S_RDWR, S_OVRWRT, S_NOPRPG, 0.],
|
||||
rpm => [S_NOINIT, S_PASSIVE, S_RDWR, S_OVRWRT, S_NOPRPG, 0.],
|
||||
temp => [S_NOINIT, S_PASSIVE, S_RDWR, S_OVRWRT, S_NOPRPG, 0.],
|
||||
bat => [S_NOINIT, S_PASSIVE, S_RDWR, S_OVRWRT, S_NOPRPG, 0.],
|
||||
amp => [S_NOINIT, S_PASSIVE, S_RDWR, S_OVRWRT, S_NOPRPG, 0.],
|
||||
energy => [S_NOINIT, S_PASSIVE, S_RDWR, S_OVRWRT, S_NOPRPG, 0.],
|
||||
-engine_status => [S_NOINIT, S_PASSIVE, S_RDWR, S_OVRWRT, S_NOPRPG, undef],
|
||||
# throttle => [S_NOINIT, S_PASSIVE, S_RDWR, S_OVRWRT, S_NOPRPG, 0.],
|
||||
# rpm => [S_NOINIT, S_PASSIVE, S_RDWR, S_OVRWRT, S_NOPRPG, 0.],
|
||||
# temp => [S_NOINIT, S_PASSIVE, S_RDWR, S_OVRWRT, S_NOPRPG, 0.],
|
||||
# bat => [S_NOINIT, S_PASSIVE, S_RDWR, S_OVRWRT, S_NOPRPG, 0.],
|
||||
# amp => [S_NOINIT, S_PASSIVE, S_RDWR, S_OVRWRT, S_NOPRPG, 0.],
|
||||
# energy => [S_NOINIT, S_PASSIVE, S_RDWR, S_OVRWRT, S_NOPRPG, 0.],
|
||||
|
||||
-svsinfo => [S_NOINIT, S_PASSIVE, S_RDWR, S_OVRWRT, S_NOPRPG, undef],
|
||||
|
||||
|
||||
@@ -122,8 +122,8 @@ sub on_ac_msg {
|
||||
# print "AircraftsManager::on_ac_msg : $msg_name\n".Dumper($fields);
|
||||
if (defined ($aircraft)) {
|
||||
delete $fields->{ac_id};
|
||||
if ($msg_name eq "SVSINFO") {
|
||||
$aircraft->configure(-svsinfo => $fields);
|
||||
if ($msg_name eq "SVSINFO" or $msg_name eq "ENGINE_STATUS") {
|
||||
$aircraft->configure('-'.(lc $msg_name) => $fields);
|
||||
}
|
||||
else {
|
||||
$aircraft->configure(%{$fields});
|
||||
|
||||
@@ -82,7 +82,7 @@ sub completeinit {
|
||||
my $parser = XML::DOM::Parser->new();
|
||||
my $flight_plan_url = $self->get('-url');
|
||||
|
||||
# print "###### flight_plan_url $flight_plan_url\n";
|
||||
print "###### flight_plan_url $flight_plan_url\n";
|
||||
|
||||
# my $flight_plan_xml ="";
|
||||
my $flight_plan_xml = LWP::Simple::get($flight_plan_url);
|
||||
|
||||
Reference in New Issue
Block a user