*** empty log message ***

This commit is contained in:
Antoine Drouin
2005-08-17 11:25:08 +00:00
parent 63460d93ba
commit 14e24f6199
9 changed files with 102 additions and 59 deletions
+2 -2
View File
@@ -259,7 +259,7 @@
</message> </message>
<message name="AIRCRAFTS" ID="3"> <message name="AIRCRAFTS" ID="3">
<field name="ac_list" type="string" unit="csv"/> <field name="ac_list" type="string" format="csv"/>
</message> </message>
<message name="AIRCRAFTS_REQ" ID="4"> <message name="AIRCRAFTS_REQ" ID="4">
@@ -345,7 +345,7 @@
<field name="energy" type="float" unit="Wh"/> <field name="energy" type="float" unit="Wh"/>
</message> </message>
<message name="SVSINFO" ID="16"> <message name="SVINFO" ID="16">
<field name="ac_id" type="string"/> <field name="ac_id" type="string"/>
<field name="svid" type="string" format="csv"/> <field name="svid" type="string" format="csv"/>
<field name="flags" type="string" format="csv"/> <field name="flags" type="string" format="csv"/>
@@ -20,6 +20,7 @@ sub Populate {
my $notebook = $self->NoteBook(-ipadx => 6, -ipady => 6); my $notebook = $self->NoteBook(-ipadx => 6, -ipady => 6);
$notebook->pack(-fill => 'both', -expand => "1"); $notebook->pack(-fill => 'both', -expand => "1");
$self->Advertise('notebook' => $notebook); $self->Advertise('notebook' => $notebook);
$self->{cur_block} = $self->{cur_stage} = -1;
} }
use Data::Dumper; use Data::Dumper;
@@ -52,7 +53,7 @@ sub add_aircraft {
sub on_ac_changed { sub on_ac_changed {
my ($self, $aircraft, $event, $new_value) = @_; my ($self, $aircraft, $event, $new_value) = @_;
print "in MissionD : on_flight_plan @_\n"; print "in MissionD : on_ac_changed $aircraft, $event $new_value\n";
my $ac_id = $aircraft->get('-ac_id'); my $ac_id = $aircraft->get('-ac_id');
if ($event eq 'flight_plan') { if ($event eq 'flight_plan') {
if (defined $new_value) { if (defined $new_value) {
@@ -29,7 +29,7 @@ sub completeinit {
sub visible { sub visible {
my ($self, $old_val, $new_val) = @_; my ($self, $old_val, $new_val) = @_;
print "in EngineView::visible $new_val\n"; # print "in EngineView::visible $new_val\n";
return unless defined $new_val and defined $self->{main_group}; return unless defined $new_val and defined $self->{main_group};
my $zinc = $self->get('-zinc'); my $zinc = $self->get('-zinc');
$zinc->itemconfigure ($self->{main_group}, $zinc->itemconfigure ($self->{main_group},
+39 -31
View File
@@ -68,18 +68,23 @@ sub completeinit {
# $self->{fp} = $flight_plan; # $self->{fp} = $flight_plan;
$self->{modes} = $self->{modes} =
{ ap_mode => {
{ name => ["Manual", "Auto1", "Auto2", "Home"], ap_mode =>
color => ["sienna", "blue", "brown", "red"] { 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"], gps_mode =>
color => ["red", "red", "orange", "brown", "orange"] { name => [ "No fix", "GPS dead reckoning only", "2D-fix", "3D-fix", "GPS + dead reckoning combined"],
}, color => ["red", "red", "orange", "brown", "orange"]
rc_status => },
{ name => ["Lost","Ok", "Really lost", "error"], rc_status =>
color => ["orange", "brown", "red", "red"] { name => ["Ok","Lost", "Really lost", "error"],
} color => ["orange", "brown", "red", "red"]
},
contrast_status =>
{ name => ["Default","Waiting", "Set", "error"],
color => ["orange", "brown", "red", "red"]
}
}; };
$self->{'frame'} = undef; $self->{'frame'} = undef;
@@ -170,12 +175,12 @@ sub draw {
$self->add_value_text("gps_mode"); $self->add_value_text("gps_mode");
## Cal label and value ## Cal label and value
$self->add_label("cal", "cal", 70, 46); $self->add_label("cal", "contrast_status", 70, 46);
$self->add_value_text("cal"); $self->add_value_text("contrast_status");
## crst label and value ## crst label and value
$self->add_label("crst", "crst", 70, 58); $self->add_label("crst", "contrast_value", 70, 58);
$self->add_value_text("crst"); $self->add_value_text("contrast_value");
@@ -184,8 +189,8 @@ sub draw {
$self->add_value_text("alt"); $self->add_value_text("alt");
## desired alt label and value ## desired alt label and value
$self->add_label("desired:","desired_alt", 150, 22); $self->add_label("desired:","target_alt", 150, 22);
$self->add_value_text("desired_alt"); $self->add_value_text("target_alt");
## speed label and value ## speed label and value
$self->add_label("speed:", "speed", 150, 46); $self->add_label("speed:", "speed", 150, 46);
@@ -284,8 +289,6 @@ sub border_block {
my @groups = (); my @groups = ();
my @x = ( 300, 350, 400, 450, 500, 550, 600, 650, 700, 750); my @x = ( 300, 350, 400, 450, 500, 550, 600, 650, 700, 750);
print "############ coucou\n";
my $zinc = $self->get('-zinc'); my $zinc = $self->get('-zinc');
$zinc->add('text', $self->{contentgroup}, -text => "Event1", $zinc->add('text', $self->{contentgroup}, -text => "Event1",
@@ -293,8 +296,6 @@ sub border_block {
-color => $self->{options}->{label_color} -color => $self->{options}->{label_color}
); );
print "############ coucou2\n";
$zinc->add('text', $self->{contentgroup}, -text => "Event2", $zinc->add('text', $self->{contentgroup}, -text => "Event2",
-position => [ 260, 60], -font => $self->{options}->{small_font}, -position => [ 260, 60], -font => $self->{options}->{small_font},
-color => $self->{options}->{label_color} -color => $self->{options}->{label_color}
@@ -347,8 +348,7 @@ sub set_block {
# FIXME: should be deprecated and we should use set_item or something like that # FIXME: should be deprecated and we should use set_item or something like that
sub setBat { sub setBat {
my $self = shift; my ($self, $bat) = @_;
my ($bat) = @_;
$self->{'battery'} = $bat; $self->{'battery'} = $bat;
my $batcolor = '#8080ff'; my $batcolor = '#8080ff';
$self->{'zinc'}->remove($self->{'zinc_bat'}); $self->{'zinc'}->remove($self->{'zinc_bat'});
@@ -374,7 +374,8 @@ sub string_of_time {
############################################################################## ##############################################################################
sub attach_to_aircraft { sub attach_to_aircraft {
my ($self) = @_; my ($self) = @_;
my @options = ('flight_plan', 'mode', 'flight_time', 'bat', 'speed', 'climb', 'alt', 'target_alt', 'cur_block'); my @options = ('flight_plan', 'ap_mode', 'rc_mode', 'gps_mode', 'contrast_status', 'contrast_value',
'flight_time', 'alt', 'target_alt', 'speed', 'climb');
foreach my $option (@options) { foreach my $option (@options) {
$self->get('-aircraft')->attach($self, $option, [\&aircraft_config_changed]); $self->get('-aircraft')->attach($self, $option, [\&aircraft_config_changed]);
} }
@@ -385,19 +386,26 @@ sub aircraft_config_changed {
my ($self, $aircraft, $event, $new_value) = @_; my ($self, $aircraft, $event, $new_value) = @_;
# parse_config(); # parse_config();
# parse flight plan # parse flight plan
# print "in strip aircraft_config_changed $event $new_value\n"; print "in strip aircraft_config_changed $event $new_value\n";
# flight_plan # flight_plan
if ($event eq 'flight_plan' and defined $new_value) { if ($event eq 'flight_plan' and defined $new_value) {
$self->border_block(); # display blocks of flight plan # $self->border_block(); # display blocks of flight plan
} }
# mode (AP) elsif ($event eq 'ap_mode' or $event eq 'rc_status' or
elsif ($event eq 'mode') { $event eq 'gps_mode' or $event eq 'contrast_status') {
$self->set_item("ap_mode",$self->{modes}->{ap_mode}->{name}[$new_value], $self->{modes}->{ap_mode}->{color}[$new_value]); # display blocks of flight plan my $names = $self->{modes}->{$event}->{name};
my $colors = $self->{modes}->{$event}->{color};
if ($new_value < @{$names} ) {
$self->set_item($event,$self->{modes}->{$event}->{name}[$new_value], $self->{modes}->{$event}->{color}[$new_value]);
}
else {
print "in Strip::aircraft_config_changed : wrong value $new_value for $event\n";
}
} }
elsif ($event eq 'flight_time') { elsif ($event eq 'flight_time') {
$self->set_item("flight_time",$self->string_of_time($new_value), $self->{options}->{value_color}); $self->set_item("flight_time",$self->string_of_time($new_value), $self->{options}->{value_color});
} }
elsif ($event eq 'bat') { elsif ($event eq 'bat') {
@@ -59,7 +59,7 @@ sub add_strip {
use constant NB_STRIP => 3; use constant NB_STRIP => 3;
my $step = $self->get('-height') / NB_STRIP; my $step = $self->get('-height') / NB_STRIP;
my $nb_strips = keys %{$self->{strips}}; my $nb_strips = keys %{$self->{strips}};
my ($p, $w, $h) = ([5, 10 + $step * $nb_strips], 120, 45); my ($p, $w, $h) = ([5, 5 + $step * $nb_strips], 120, 45);
my $strip = Paparazzi::Strip->new( -zinc => $zinc, -parent_grp => $self->{sp_main_group}, my $strip = Paparazzi::Strip->new( -zinc => $zinc, -parent_grp => $self->{sp_main_group},
-origin => $p, -width => $w, -height => $h, -origin => $p, -width => $w, -height => $h,
-aircraft => $aircraft); -aircraft => $aircraft);
+5 -5
View File
@@ -103,11 +103,11 @@ sub build_gui {
-height => $pfd_h, -height => $pfd_h,
); );
# $self->{pfd}->attach($self, 'SHOW_PAGE', ['onShowPage']); # $self->{pfd}->attach($self, 'SHOW_PAGE', ['onShowPage']);
# $self->{nd} = Paparazzi::ND->new( -zinc => $zinc, $self->{nd} = Paparazzi::ND->new( -zinc => $zinc,
# -origin => $nd_p, -origin => $nd_p,
# -width => $nd_w, -width => $nd_w,
# -height => $nd_h, -height => $nd_h,
# ); );
# $self->{nd}->attach($self, 'WIND_COMMAND', ['onWindCommand']); # $self->{nd}->attach($self, 'WIND_COMMAND', ['onWindCommand']);
my $md = $bot_frame->MissionD(-bg => '#c1daff'); my $md = $bot_frame->MissionD(-bg => '#c1daff');
$md->pack(-side => 'bottom', -anchor => "n", -fill => 'both', -expand => 1); $md->pack(-side => 'bottom', -anchor => "n", -fill => 'both', -expand => 1);
+10
View File
@@ -76,6 +76,13 @@ sub populate {
amp => [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.], 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, []],
rc_status => [S_NOINIT, S_PASSIVE, S_RDWR, S_OVRWRT, S_NOPRPG, 0.], 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_mode => [S_NOINIT, S_PASSIVE, S_RDWR, S_OVRWRT, S_NOPRPG, 0.],
@@ -84,6 +91,9 @@ sub populate {
contrast_status => [S_NOINIT, S_PASSIVE, S_RDWR, S_OVRWRT, S_NOPRPG, 0.], contrast_status => [S_NOINIT, S_PASSIVE, S_RDWR, S_OVRWRT, S_NOPRPG, 0.],
contrast_value => [S_NOINIT, S_PASSIVE, S_RDWR, S_OVRWRT, S_NOPRPG, 0.], contrast_value => [S_NOINIT, S_PASSIVE, S_RDWR, S_OVRWRT, S_NOPRPG, 0.],
if_mode => [S_NOINIT, S_PASSIVE, S_RDWR, S_OVRWRT, S_NOPRPG, 0.],
if_value1 => [S_NOINIT, S_PASSIVE, S_RDWR, S_OVRWRT, S_NOPRPG, 0.],
if_value2 => [S_NOINIT, S_PASSIVE, S_RDWR, S_OVRWRT, S_NOPRPG, 0.],
+23 -15
View File
@@ -27,8 +27,6 @@ use Subject;
@ISA = ("Subject"); @ISA = ("Subject");
use strict; use strict;
use Text::CSV;
use Paparazzi::IvyProtocol; use Paparazzi::IvyProtocol;
use Paparazzi::Aircraft; use Paparazzi::Aircraft;
use Paparazzi::Flightplan; use Paparazzi::Flightplan;
@@ -63,14 +61,12 @@ sub on_aircraft_new_die {
} }
sub on_aircrafts { sub on_aircrafts {
print "AircraftsManager : in on_aircrafts\n"; # print "AircraftsManager::on_aircrafts\n";
my ($sender_name, $msg_class, $msg_name, $fields, $self) = @_; my ($sender_name, $msg_class, $msg_name, $fields, $self) = @_;
# use Data::Dumper; use Data::Dumper;
# print "fields ".Dumper($fields)."\n"; # print "in AircraftsManager::on_aircrafts : dumping fields\n ".Dumper($fields);
my $csv = Text::CSV->new(); my $ac_list = $fields->{ac_list};
$csv->parse($fields->{ac_list}); foreach my $ac_id (@{$ac_list}) {
my @ac_list = $csv->fields();
foreach my $ac_id (@ac_list) {
$self->add_aircraft($ac_id) unless $ac_id eq ""; $self->add_aircraft($ac_id) unless $ac_id eq "";
} }
} }
@@ -91,7 +87,7 @@ sub add_aircraft {
sub on_config { sub on_config {
my ($sender_name, $msg_class, $msg_name, $fields, $self) = @_; my ($sender_name, $msg_class, $msg_name, $fields, $self) = @_;
print "AircraftsManager : in on_config\n"; # if (COCKPIT_DEBUG); print "AircraftsManager::on_config\n";
# use Data::Dumper; # use Data::Dumper;
# print "fields ".Dumper($fields)."\n"; # print "fields ".Dumper($fields)."\n";
my $ac_id = $fields->{ac_id}; my $ac_id = $fields->{ac_id};
@@ -112,12 +108,24 @@ sub on_config {
sub on_ac_msg { sub on_ac_msg {
my ($sender_name, $msg_class, $msg_name, $fields, $self) = @_; my ($sender_name, $msg_class, $msg_name, $fields, $self) = @_;
# print "in on_ac_msg $msg_name\n";# if (COCKPIT_DEBUG);
my $ac_id = $fields->{ac_id}; my $ac_id = $fields->{ac_id};
my $aircraft = $self->get('-aircrafts')->{$ac_id}; my $aircraft = $self->get('-aircrafts')->{$ac_id};
delete $fields->{ac_id}; # print "AircraftsManager::on_ac_msg : $msg_name\n".Dumper($fields);
# print Dumper($fields); if (defined ($aircraft)) {
$aircraft->configure(%{$fields}); delete $fields->{ac_id};
$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 { sub listen_to_ac {
@@ -130,7 +138,7 @@ sub listen_to_ac {
['FLY_BY_WIRE', \&on_ac_msg], ['FLY_BY_WIRE', \&on_ac_msg],
['INFRARED', \&on_ac_msg], ['INFRARED', \&on_ac_msg],
['INFLIGH_CALIB', \&on_ac_msg], ['INFLIGH_CALIB', \&on_ac_msg],
# ['SATS', \&ivyOnSats], ['SVINFO', \&on_sv_info],
); );
foreach my $event (@ac_events) { foreach my $event (@ac_events) {
Paparazzi::IvyProtocol::bind_msg("ground", "ground", $event->[0], Paparazzi::IvyProtocol::bind_msg("ground", "ground", $event->[0],
+19 -3
View File
@@ -2,6 +2,7 @@ package Paparazzi::IvyProtocol;
use strict; use strict;
use XML::DOM; use XML::DOM;
use Text::CSV;
use Carp; use Carp;
use Ivy; use Ivy;
@@ -72,13 +73,28 @@ sub on_msg_received {
# print STDERR "##### on_msg_received ".Dumper(@_); # print STDERR "##### on_msg_received ".Dumper(@_);
my $ret = {}; my $ret = {};
my $msg = $classes_by_name->{$msg_class}->{$msg_name}; my $msg = $classes_by_name->{$msg_class}->{$msg_name};
unless (defined $msg) {
print STDERR "in IvyProtocol::on_msg_received : unknown message $msg_class $msg_name\n";
return;
}
my $nb_fields = @{$msg}; my $nb_fields = @{$msg};
for (my $i=0; $i<$nb_fields; $i++) { foreach my $field (@{$msg}) {
my $field_name = $msg->[$i]->{name}; my $field_name = $field->{name};
if ($known_fields->{$field_name}) { if ($known_fields->{$field_name}) {
$ret->{$field_name} = $known_fields->{$field_name}; $ret->{$field_name} = $known_fields->{$field_name};
} else { } else {
$ret->{$field_name} = shift @matched_regexps; my $val = shift @matched_regexps;
if (exists $field->{format} and $field->{format} eq 'csv') {
# print "in IvyProtocol::on_msg_received : val $val\n";
my $csv = Text::CSV->new();
$csv->parse($val);
my @list = $csv->fields();
pop @list if $list[$#list] eq '';
$ret->{$field_name} = \@list;
}
else {
$ret->{$field_name} = $val;
}
} }
} }
# print STDERR "ret : ".Dumper($ret)."\n"; # print STDERR "ret : ".Dumper($ret)."\n";