diff --git a/conf/boa.conf b/conf/boa.conf index 734a322688..fae310ef77 100644 --- a/conf/boa.conf +++ b/conf/boa.conf @@ -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 diff --git a/sw/ground_segment/cockpit/Paparazzi/EnginePage.pm b/sw/ground_segment/cockpit/Paparazzi/EnginePage.pm index 4d73b4aba4..8f3b03b0fd 100644 --- a/sw/ground_segment/cockpit/Paparazzi/EnginePage.pm +++ b/sw/ground_segment/cockpit/Paparazzi/EnginePage.pm @@ -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}; } } diff --git a/sw/ground_segment/cockpit/Paparazzi/ND.pm b/sw/ground_segment/cockpit/Paparazzi/ND.pm index 19430b9c35..6b1a0a4ed6 100644 --- a/sw/ground_segment/cockpit/Paparazzi/ND.pm +++ b/sw/ground_segment/cockpit/Paparazzi/ND.pm @@ -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) = @_; diff --git a/sw/ground_segment/cockpit/Paparazzi/NDPage.pm b/sw/ground_segment/cockpit/Paparazzi/NDPage.pm index 8dbc81efd2..619b3231cb 100644 --- a/sw/ground_segment/cockpit/Paparazzi/NDPage.pm +++ b/sw/ground_segment/cockpit/Paparazzi/NDPage.pm @@ -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"); diff --git a/sw/ground_segment/cockpit/Paparazzi/PFD_Panel.pm b/sw/ground_segment/cockpit/Paparazzi/PFD_Panel.pm index 6d3b6aaf1f..03b92c74ba 100644 --- a/sw/ground_segment/cockpit/Paparazzi/PFD_Panel.pm +++ b/sw/ground_segment/cockpit/Paparazzi/PFD_Panel.pm @@ -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", +# ); +# } +# } } diff --git a/sw/ground_segment/cockpit/cockpit.pl b/sw/ground_segment/cockpit/cockpit.pl index ee329b00dc..962eb76ed4 100755 --- a/sw/ground_segment/cockpit/cockpit.pl +++ b/sw/ground_segment/cockpit/cockpit.pl @@ -72,8 +72,6 @@ sub on_new_aircraft { $self->{md}->add_aircraft($aircraft); } - - sub build_gui { my ($self) = @_; $self->{mw} = MainWindow->new(); diff --git a/sw/ground_segment/tmtc/receive.ml b/sw/ground_segment/tmtc/receive.ml index c36c9a7cd6..7f3378cc13 100644 --- a/sw/ground_segment/tmtc/receive.ml +++ b/sw/ground_segment/tmtc/receive.ml @@ -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") diff --git a/sw/lib/perl/Paparazzi/Aircraft.pm b/sw/lib/perl/Paparazzi/Aircraft.pm index 2de6676a65..afafeb6003 100644 --- a/sw/lib/perl/Paparazzi/Aircraft.pm +++ b/sw/lib/perl/Paparazzi/Aircraft.pm @@ -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], diff --git a/sw/lib/perl/Paparazzi/AircraftsManager.pm b/sw/lib/perl/Paparazzi/AircraftsManager.pm index f4d439985d..3c680ee22e 100644 --- a/sw/lib/perl/Paparazzi/AircraftsManager.pm +++ b/sw/lib/perl/Paparazzi/AircraftsManager.pm @@ -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}); diff --git a/sw/lib/perl/Paparazzi/Flightplan.pm b/sw/lib/perl/Paparazzi/Flightplan.pm index 5ecb320695..467ac54385 100644 --- a/sw/lib/perl/Paparazzi/Flightplan.pm +++ b/sw/lib/perl/Paparazzi/Flightplan.pm @@ -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);