*** 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 name="AIRCRAFTS" ID="3">
<field name="ac_list" type="string" unit="csv"/>
<field name="ac_list" type="string" format="csv"/>
</message>
<message name="AIRCRAFTS_REQ" ID="4">
@@ -345,7 +345,7 @@
<field name="energy" type="float" unit="Wh"/>
</message>
<message name="SVSINFO" ID="16">
<message name="SVINFO" ID="16">
<field name="ac_id" type="string"/>
<field name="svid" 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);
$notebook->pack(-fill => 'both', -expand => "1");
$self->Advertise('notebook' => $notebook);
$self->{cur_block} = $self->{cur_stage} = -1;
}
use Data::Dumper;
@@ -52,7 +53,7 @@ sub add_aircraft {
sub on_ac_changed {
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');
if ($event eq 'flight_plan') {
if (defined $new_value) {
@@ -29,7 +29,7 @@ sub completeinit {
sub visible {
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};
my $zinc = $self->get('-zinc');
$zinc->itemconfigure ($self->{main_group},
+39 -31
View File
@@ -68,18 +68,23 @@ sub completeinit {
# $self->{fp} = $flight_plan;
$self->{modes} =
{ 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"]
},
rc_status =>
{ name => ["Lost","Ok", "Really lost", "error"],
color => ["orange", "brown", "red", "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"]
},
rc_status =>
{ 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;
@@ -170,12 +175,12 @@ sub draw {
$self->add_value_text("gps_mode");
## Cal label and value
$self->add_label("cal", "cal", 70, 46);
$self->add_value_text("cal");
$self->add_label("cal", "contrast_status", 70, 46);
$self->add_value_text("contrast_status");
## crst label and value
$self->add_label("crst", "crst", 70, 58);
$self->add_value_text("crst");
$self->add_label("crst", "contrast_value", 70, 58);
$self->add_value_text("contrast_value");
@@ -184,8 +189,8 @@ sub draw {
$self->add_value_text("alt");
## desired alt label and value
$self->add_label("desired:","desired_alt", 150, 22);
$self->add_value_text("desired_alt");
$self->add_label("desired:","target_alt", 150, 22);
$self->add_value_text("target_alt");
## speed label and value
$self->add_label("speed:", "speed", 150, 46);
@@ -284,8 +289,6 @@ sub border_block {
my @groups = ();
my @x = ( 300, 350, 400, 450, 500, 550, 600, 650, 700, 750);
print "############ coucou\n";
my $zinc = $self->get('-zinc');
$zinc->add('text', $self->{contentgroup}, -text => "Event1",
@@ -293,8 +296,6 @@ sub border_block {
-color => $self->{options}->{label_color}
);
print "############ coucou2\n";
$zinc->add('text', $self->{contentgroup}, -text => "Event2",
-position => [ 260, 60], -font => $self->{options}->{small_font},
-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
sub setBat {
my $self = shift;
my ($bat) = @_;
my ($self, $bat) = @_;
$self->{'battery'} = $bat;
my $batcolor = '#8080ff';
$self->{'zinc'}->remove($self->{'zinc_bat'});
@@ -374,7 +374,8 @@ sub string_of_time {
##############################################################################
sub attach_to_aircraft {
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) {
$self->get('-aircraft')->attach($self, $option, [\&aircraft_config_changed]);
}
@@ -385,19 +386,26 @@ sub aircraft_config_changed {
my ($self, $aircraft, $event, $new_value) = @_;
# parse_config();
# 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
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 'mode') {
$self->set_item("ap_mode",$self->{modes}->{ap_mode}->{name}[$new_value], $self->{modes}->{ap_mode}->{color}[$new_value]); # display blocks of flight plan
elsif ($event eq 'ap_mode' or $event eq 'rc_status' or
$event eq 'gps_mode' or $event eq 'contrast_status') {
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') {
$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') {
@@ -59,7 +59,7 @@ sub add_strip {
use constant NB_STRIP => 3;
my $step = $self->get('-height') / NB_STRIP;
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},
-origin => $p, -width => $w, -height => $h,
-aircraft => $aircraft);
+5 -5
View File
@@ -103,11 +103,11 @@ sub build_gui {
-height => $pfd_h,
);
# $self->{pfd}->attach($self, 'SHOW_PAGE', ['onShowPage']);
# $self->{nd} = Paparazzi::ND->new( -zinc => $zinc,
# -origin => $nd_p,
# -width => $nd_w,
# -height => $nd_h,
# );
$self->{nd} = Paparazzi::ND->new( -zinc => $zinc,
-origin => $nd_p,
-width => $nd_w,
-height => $nd_h,
);
# $self->{nd}->attach($self, 'WIND_COMMAND', ['onWindCommand']);
my $md = $bot_frame->MissionD(-bg => '#c1daff');
$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.],
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_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_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");
use strict;
use Text::CSV;
use Paparazzi::IvyProtocol;
use Paparazzi::Aircraft;
use Paparazzi::Flightplan;
@@ -63,14 +61,12 @@ sub on_aircraft_new_die {
}
sub on_aircrafts {
print "AircraftsManager : in on_aircrafts\n";
# print "AircraftsManager::on_aircrafts\n";
my ($sender_name, $msg_class, $msg_name, $fields, $self) = @_;
# use Data::Dumper;
# print "fields ".Dumper($fields)."\n";
my $csv = Text::CSV->new();
$csv->parse($fields->{ac_list});
my @ac_list = $csv->fields();
foreach my $ac_id (@ac_list) {
use Data::Dumper;
# print "in AircraftsManager::on_aircrafts : dumping fields\n ".Dumper($fields);
my $ac_list = $fields->{ac_list};
foreach my $ac_id (@{$ac_list}) {
$self->add_aircraft($ac_id) unless $ac_id eq "";
}
}
@@ -91,7 +87,7 @@ sub add_aircraft {
sub on_config {
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;
# print "fields ".Dumper($fields)."\n";
my $ac_id = $fields->{ac_id};
@@ -112,12 +108,24 @@ sub on_config {
sub on_ac_msg {
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 $aircraft = $self->get('-aircrafts')->{$ac_id};
delete $fields->{ac_id};
# print Dumper($fields);
$aircraft->configure(%{$fields});
# print "AircraftsManager::on_ac_msg : $msg_name\n".Dumper($fields);
if (defined ($aircraft)) {
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 {
@@ -130,7 +138,7 @@ sub listen_to_ac {
['FLY_BY_WIRE', \&on_ac_msg],
['INFRARED', \&on_ac_msg],
['INFLIGH_CALIB', \&on_ac_msg],
# ['SATS', \&ivyOnSats],
['SVINFO', \&on_sv_info],
);
foreach my $event (@ac_events) {
Paparazzi::IvyProtocol::bind_msg("ground", "ground", $event->[0],
+19 -3
View File
@@ -2,6 +2,7 @@ package Paparazzi::IvyProtocol;
use strict;
use XML::DOM;
use Text::CSV;
use Carp;
use Ivy;
@@ -72,13 +73,28 @@ sub on_msg_received {
# print STDERR "##### on_msg_received ".Dumper(@_);
my $ret = {};
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};
for (my $i=0; $i<$nb_fields; $i++) {
my $field_name = $msg->[$i]->{name};
foreach my $field (@{$msg}) {
my $field_name = $field->{name};
if ($known_fields->{$field_name}) {
$ret->{$field_name} = $known_fields->{$field_name};
} 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";