[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[paparazzi-commits] [6187] the RC status in the GCS shows the quality of
From: |
Gautier Hattenberger |
Subject: |
[paparazzi-commits] [6187] the RC status in the GCS shows the quality of signal reception with green over orange |
Date: |
Wed, 20 Oct 2010 11:48:18 +0000 |
Revision: 6187
http://svn.sv.gnu.org/viewvc/?view=rev&root=paparazzi&revision=6187
Author: gautier
Date: 2010-10-20 11:48:18 +0000 (Wed, 20 Oct 2010)
Log Message:
-----------
the RC status in the GCS shows the quality of signal reception with green over
orange
Modified Paths:
--------------
paparazzi3/trunk/conf/messages.xml
paparazzi3/trunk/sw/airborne/fbw_downlink.h
paparazzi3/trunk/sw/ground_segment/cockpit/gcs.glade
paparazzi3/trunk/sw/ground_segment/cockpit/live.ml
paparazzi3/trunk/sw/ground_segment/cockpit/strip.ml
paparazzi3/trunk/sw/ground_segment/cockpit/strip.mli
paparazzi3/trunk/sw/ground_segment/tmtc/aircraft.ml
paparazzi3/trunk/sw/ground_segment/tmtc/aircraft.mli
paparazzi3/trunk/sw/ground_segment/tmtc/fw_server.ml
paparazzi3/trunk/sw/ground_segment/tmtc/kml.ml
paparazzi3/trunk/sw/ground_segment/tmtc/kml.mli
paparazzi3/trunk/sw/ground_segment/tmtc/server.ml
Modified: paparazzi3/trunk/conf/messages.xml
===================================================================
--- paparazzi3/trunk/conf/messages.xml 2010-10-19 20:54:52 UTC (rev 6186)
+++ paparazzi3/trunk/conf/messages.xml 2010-10-20 11:48:18 UTC (rev 6187)
@@ -30,9 +30,9 @@
</message>
<message name="ATTITUDE" id="6">
- <field name="phi" type="float" unit="rad" alt_unit="deg"
alt_unit_coef="57.3"/>
- <field name="psi" type="float" unit="rad" alt_unit="deg"
alt_unit_coef="57.3"/>
- <field name="theta" type="float" unit="rad" alt_unit="deg"
alt_unit_coef="57.3"/>
+ <field name="phi" type="float" unit="rad" alt_unit="deg"/>
+ <field name="psi" type="float" unit="rad" alt_unit="deg"/>
+ <field name="theta" type="float" unit="rad" alt_unit="deg"/>
</message>
<message name="IR_SENSORS" id="7">
@@ -45,12 +45,12 @@
<message name="GPS" id="8">
<field name="mode" type="uint8" unit="byte_mask"/>
- <field name="utm_east" type="int32" unit="cm" alt_unit="m"
alt_unit_coef="0.01"/>
- <field name="utm_north" type="int32" unit="cm" alt_unit="m"
alt_unit_coef="0.01"/>
- <field name="course" type="int16" unit="decideg" alt_unit="deg"
alt_unit_coef="0.1"/>
- <field name="alt" type="int32" unit="cm" alt_unit="m"
alt_unit_coef="0.01"/>
- <field name="speed" type="uint16" unit="cm/s" alt_unit="m/s"
alt_unit_coef="0.01"/>
- <field name="climb" type="int16" unit="cm/s" alt_unit="m/s"
alt_unit_coef="0.01"/>
+ <field name="utm_east" type="int32" unit="cm" alt_unit="m"/>
+ <field name="utm_north" type="int32" unit="cm" alt_unit="m"/>
+ <field name="course" type="int16" unit="decideg" alt_unit="deg"/>
+ <field name="alt" type="int32" unit="cm" alt_unit="m"/>
+ <field name="speed" type="uint16" unit="cm/s" alt_unit="m/s"/>
+ <field name="climb" type="int16" unit="cm/s" alt_unit="m/s"/>
<field name="week" type="uint16" unit="weeks"></field>
<field name="itow" type="uint32" unit="ms"/>
<field name="utm_zone" type="uint8"/>
@@ -85,7 +85,7 @@
<message name="BAT" id="12">
<field name="throttle" type="int16" unit="pprz"/>
- <field name="voltage" type="uint16" unit="1e-1V" alt_unit="V"
alt_unit_coef="0.1"/>
+ <field name="voltage" type="uint8" unit="1e-1V" alt_unit="V"
alt_unit_coef="0.1"/>
<field name="amps" type="int16" unit="A" alt_unit="A" />
<field name="flight_time" type="uint16" unit="s"/>
<field name="kill_auto_throttle" type="uint8" unit="bool"/>
@@ -374,8 +374,6 @@
<field name="ir1" type="int16" unit="adc"/>
<field name="ir2" type="int16" unit="adc"/>
<field name="top" type="int16" unit="adc"/>
- <field name="phi" type="float" unit="rad" alt_unit="deg"
alt_unit_coef="57.3"/>
- <field name="theta" type="float" unit="rad" alt_unit="deg"
alt_unit_coef="57.3"/>
</message>
<message name="AIRSPEED" id="54">
@@ -430,9 +428,17 @@
<field name="scaled" type="float"/>
</message>
- <!-- 58 is free -->
- <!-- 59 is free -->
+ <message name="PBN" id="58">
+ <field name="airspeed_adc" type="uint16"></field>
+ <field name="altitude_adc" type="uint16"></field>
+ <field name="airspeed" type="float"></field>
+ <field name="altitude" type="float"></field>
+ <field name="airspeed_offset" type="uint16"></field>
+ <field name="altitude_offset" type="uint16"></field>
+ </message>
+ <!-- 59 is free -->
+
<message name="H_CTL_A" id="60">
<field name="roll_sum_err" type="float"/>
<field name="ref_roll_angle" type="float" unit="rad" alt_unit="deg"
alt_unit_coef="57.3"/>
@@ -646,6 +652,7 @@
<message name="FBW_STATUS" id="103">
<field name="rc_status" type="uint8" values="OK|LOST|REALLY_LOST"/>
+ <field name="frame_rate" type="uint8" unit="Hz"/>
<field name="mode" type="uint8" values="MANUAL|AUTO|FAILSAFE"/>
<field name="vsupply" type="uint8" unit="decivolt"/>
<field name="current" type="int32" unit="mA"/>
@@ -2085,6 +2092,7 @@
<field name="ac_id" type="string"/>
<field name="rc_status" type="string" values="OK|LOST|REALLY_LOST"/>
<field name="rc_mode" type="string" values="MANUAL|AUTO|FAILSAFE"/>
+ <field name="rc_rate" type="uint8" unit="Hz"/>
</message>
<message name="INFLIGH_CALIB" id="19">
Modified: paparazzi3/trunk/sw/airborne/fbw_downlink.h
===================================================================
--- paparazzi3/trunk/sw/airborne/fbw_downlink.h 2010-10-19 20:54:52 UTC (rev
6186)
+++ paparazzi3/trunk/sw/airborne/fbw_downlink.h 2010-10-20 11:48:18 UTC (rev
6187)
@@ -53,7 +53,7 @@
#define PERIODIC_SEND_COMMANDS(_chan) DOWNLINK_SEND_COMMANDS(_chan,
COMMANDS_NB, commands)
#ifdef RADIO_CONTROL
-#define PERIODIC_SEND_FBW_STATUS(_chan) DOWNLINK_SEND_FBW_STATUS(_chan,
&(radio_control.status), &fbw_mode, &fbw_vsupply_decivolt,
&fbw_current_milliamp)
+#define PERIODIC_SEND_FBW_STATUS(_chan) DOWNLINK_SEND_FBW_STATUS(_chan,
&(radio_control.status), &(radio_control.frame_rate), &fbw_mode,
&fbw_vsupply_decivolt, &fbw_current_milliamp)
#ifdef RADIO_CONTROL_TYPE_PPM
#define PERIODIC_SEND_PPM(_chan) DOWNLINK_SEND_PPM(_chan,
&(radio_control.frame_rate), PPM_NB_CHANNEL, ppm_pulses)
#else
@@ -61,7 +61,7 @@
#endif
#define PERIODIC_SEND_RC(_chan) DOWNLINK_SEND_RC(_chan,
RADIO_CONTROL_NB_CHANNEL, radio_control.values)
#else // RADIO_CONTROL
-#define PERIODIC_SEND_FBW_STATUS(_chan) { uint8_t dummy = 0;
DOWNLINK_SEND_FBW_STATUS(_chan, &dummy, &fbw_mode, &fbw_vsupply_decivolt,
&fbw_current_milliamp); }
+#define PERIODIC_SEND_FBW_STATUS(_chan) { uint8_t dummy = 0;
DOWNLINK_SEND_FBW_STATUS(_chan, &dummy, &dummy, &fbw_mode,
&fbw_vsupply_decivolt, &fbw_current_milliamp); }
#define PERIODIC_SEND_PPM(_chan) {}
#define PERIODIC_SEND_RC(_chan) {}
#endif // RADIO_CONTROL
Modified: paparazzi3/trunk/sw/ground_segment/cockpit/gcs.glade
===================================================================
--- paparazzi3/trunk/sw/ground_segment/cockpit/gcs.glade 2010-10-19
20:54:52 UTC (rev 6186)
+++ paparazzi3/trunk/sw/ground_segment/cockpit/gcs.glade 2010-10-20
11:48:18 UTC (rev 6187)
@@ -87,6 +87,7 @@
<widget class="GtkVBox" id="vbox1">
<property
name="visible">True</property>
<property
name="spacing">2</property>
+ <property
name="homogeneous">True</property>
<child>
<widget class="GtkEventBox"
id="eventbox_mode">
<property
name="visible">True</property>
@@ -94,7 +95,6 @@
<child>
<widget class="GtkLabel"
id="label_mode">
<property
name="visible">True</property>
- <property
name="xalign">0</property>
<property name="label"
translatable="yes"><b>AUTO2</b></property>
<property
name="use_markup">True</property>
</widget>
@@ -109,11 +109,8 @@
<property
name="visible">True</property>
<property name="tooltip"
translatable="yes">Radio Command status</property>
<child>
- <widget class="GtkLabel"
id="label_rc">
+ <widget
class="GtkDrawingArea" id="drawingarea_rc">
<property
name="visible">True</property>
- <property
name="xalign">0</property>
- <property name="label"
translatable="yes">NO RC</property>
- <property
name="use_markup">True</property>
</widget>
</child>
</widget>
@@ -128,7 +125,6 @@
<child>
<widget class="GtkLabel"
id="label_gps">
<property
name="visible">True</property>
- <property
name="xalign">0</property>
<property name="label"
translatable="yes">3D</property>
<property
name="use_markup">True</property>
<property
name="justify">center</property>
Modified: paparazzi3/trunk/sw/ground_segment/cockpit/live.ml
===================================================================
--- paparazzi3/trunk/sw/ground_segment/cockpit/live.ml 2010-10-19 20:54:52 UTC
(rev 6186)
+++ paparazzi3/trunk/sw/ground_segment/cockpit/live.ml 2010-10-20 11:48:18 UTC
(rev 6187)
@@ -771,14 +771,12 @@
let get_fbw_msg = fun _sender vs ->
let ac = get_ac vs in
- let status = Pprz.string_assoc "rc_status" vs in
- ac.strip#set_label "RC" status;
- ac.strip#set_color "RC"
- (match status with
- "OK" -> ok_color
- | _ -> warning_color)
+ let status = Pprz.string_assoc "rc_status" vs
+ and rate = (Pprz.int_assoc "rc_rate" vs) / 5 in
+ (* divide by 5 to have normal values between 0 and 10 *)
+ (* RC rate max approx. 50 Hz *)
+ ac.strip#set_rc rate status
-
let get_engine_status_msg = fun _sender vs ->
let ac = get_ac vs in
Modified: paparazzi3/trunk/sw/ground_segment/cockpit/strip.ml
===================================================================
--- paparazzi3/trunk/sw/ground_segment/cockpit/strip.ml 2010-10-19 20:54:52 UTC
(rev 6186)
+++ paparazzi3/trunk/sw/ground_segment/cockpit/strip.ml 2010-10-20 11:48:18 UTC
(rev 6187)
@@ -47,6 +47,7 @@
set_climb : float -> unit;
set_color : string -> string -> unit;
set_label : string -> string -> unit;
+ set_rc : int -> string -> unit;
connect : (unit -> unit) -> unit;
hide_buttons : unit -> unit;
show_buttons : unit -> unit >
@@ -263,8 +264,12 @@
add_label "telemetry_status_value" (eb, ts);
ts#set_width_chars 3;
+ (* RC *)
+ strip#drawingarea_rc#misc#realize ();
+ let rc = new hgauge strip#drawingarea_rc 0. 10. in
+ rc#request_width "NONE";
+
(* Labels *)
- add_label "RC_value" (strip#eventbox_rc, strip#label_rc);
add_label "AP_value" (strip#eventbox_mode, strip#label_mode);
add_label "GPS_value" (strip#eventbox_gps, strip#label_gps);
@@ -322,6 +327,9 @@
method set_label name value = set_label !strip_labels name value
method set_color name value = set_color !strip_labels name value
+
+ method set_rc rate status = rc#set (float_of_int rate) status
+
(* add a button widget in a vertical box if it belongs to a group (create
new group if needed) *)
method add_widget ?(group="") w =
let (vbox, pack) = match String.length group with
Modified: paparazzi3/trunk/sw/ground_segment/cockpit/strip.mli
===================================================================
--- paparazzi3/trunk/sw/ground_segment/cockpit/strip.mli 2010-10-19
20:54:52 UTC (rev 6186)
+++ paparazzi3/trunk/sw/ground_segment/cockpit/strip.mli 2010-10-20
11:48:18 UTC (rev 6187)
@@ -47,6 +47,7 @@
set_climb : float -> unit;
set_color : string -> string -> unit;
set_label : string -> string -> unit;
+ set_rc : int -> string -> unit;
hide_buttons : unit -> unit;
show_buttons : unit -> unit;
connect : (unit -> unit) -> unit
Modified: paparazzi3/trunk/sw/ground_segment/tmtc/aircraft.ml
===================================================================
--- paparazzi3/trunk/sw/ground_segment/tmtc/aircraft.ml 2010-10-19 20:54:52 UTC
(rev 6186)
+++ paparazzi3/trunk/sw/ground_segment/tmtc/aircraft.ml 2010-10-20 11:48:18 UTC
(rev 6187)
@@ -35,6 +35,7 @@
type fbw = {
mutable rc_status : rc_status;
mutable rc_mode : rc_mode;
+ mutable rc_rate : int;
}
let gps_nb_channels = 16
@@ -164,7 +165,7 @@
gaz_mode= -1; lateral_mode= -1;
gps_mode =0; gps_Pacc = 0; periodic_callbacks = [];
cam = { phi = 0.; theta = 0. ; target=(0.,0.)};
- fbw = { rc_status = "???"; rc_mode = "???" };
+ fbw = { rc_status = "???"; rc_mode = "???"; rc_rate=0 };
svinfo = svsinfo_init;
dl_setting_values = Array.create max_nb_dl_setting_values 42.;
nb_dl_setting_values = 0;
Modified: paparazzi3/trunk/sw/ground_segment/tmtc/aircraft.mli
===================================================================
--- paparazzi3/trunk/sw/ground_segment/tmtc/aircraft.mli 2010-10-19
20:54:52 UTC (rev 6186)
+++ paparazzi3/trunk/sw/ground_segment/tmtc/aircraft.mli 2010-10-20
11:48:18 UTC (rev 6187)
@@ -32,7 +32,7 @@
type rc_status = string
type rc_mode = string
-type fbw = { mutable rc_status : rc_status; mutable rc_mode : rc_mode; }
+type fbw = { mutable rc_status : rc_status; mutable rc_mode : rc_mode; mutable
rc_rate : int }
val gps_nb_channels : int
type svinfo = {
svid : int;
Modified: paparazzi3/trunk/sw/ground_segment/tmtc/fw_server.ml
===================================================================
--- paparazzi3/trunk/sw/ground_segment/tmtc/fw_server.ml 2010-10-19
20:54:52 UTC (rev 6186)
+++ paparazzi3/trunk/sw/ground_segment/tmtc/fw_server.ml 2010-10-20
11:48:18 UTC (rev 6187)
@@ -185,7 +185,8 @@
a.block_time <- ivalue "block_time";
a.energy <- ivalue "energy"
| "FBW_STATUS" ->
- a.bat <- fvalue "vsupply" /. 10.
+ a.bat <- fvalue "vsupply" /. 10.;
+ a.fbw.rc_rate <- ivalue "frame_rate"
| "PPRZ_MODE" ->
a.ap_mode <- check_index (ivalue "ap_mode") ap_modes "AP_MODE";
a.gaz_mode <- check_index (ivalue "ap_gaz") gaz_modes "AP_GAZ";
Modified: paparazzi3/trunk/sw/ground_segment/tmtc/kml.ml
===================================================================
--- paparazzi3/trunk/sw/ground_segment/tmtc/kml.ml 2010-10-19 20:54:52 UTC
(rev 6186)
+++ paparazzi3/trunk/sw/ground_segment/tmtc/kml.ml 2010-10-20 11:48:18 UTC
(rev 6187)
@@ -30,6 +30,7 @@
open Server_globals
let enabled = ref false
+let no_http = ref false
let port = ref 8889
let el = fun t a c -> Xml.Element (t, a, c)
@@ -211,7 +212,12 @@
Hashtbl.iter (fun wp_id wp -> if wp_id > 0 then l := (wp_id, wp) :: !l)
ac.waypoints;
if !l <> !last_state then begin
last_state := !l;
- let url_flight_plan = sprintf "http://%s:%d/var/%s/flight_plan.kml"
!hostname !port ac.name in
+ let url_flight_plan =
+ if !no_http then
+ sprintf "%s/var/%s/flight_plan.kml" Env.paparazzi_home ac.name
+ else
+ sprintf "http://%s:%d/var/%s/flight_plan.kml" !hostname !port ac.name
+ in
let changes = List.map (fun (wp_id, wp) -> change_waypoint ac.name wp_id
wp.wp_geo wp.altitude) !l in
let kml_update = link_update url_flight_plan changes in
print_xml ac.name "wp_changes.kml" kml_update
@@ -223,7 +229,13 @@
fun ac ->
if ac.horiz_mode <> !last_horiz_mode then begin
last_horiz_mode := ac.horiz_mode;
- let url_flight_plan = sprintf "http://%s:%d/var/%s/flight_plan.kml"
!hostname !port ac.name in
+ (*let url_flight_plan = sprintf "http://%s:%d/var/%s/flight_plan.kml"
!hostname !port ac.name in*)
+ let url_flight_plan =
+ if !no_http then
+ sprintf "%s/var/%s/flight_plan.kml" Env.paparazzi_home ac.name
+ else
+ sprintf "http://%s:%d/var/%s/flight_plan.kml" !hostname !port ac.name
+ in
let alt = ac.desired_altitude in
match ac.horiz_mode with
Segment (p1, p2) ->
@@ -240,7 +252,13 @@
let update_ac = fun ac ->
try
- let url_flight_plan = sprintf "http://%s:%d/var/%s/flight_plan.kml"
!hostname !port ac.name in
+ (*let url_flight_plan = sprintf "http://%s:%d/var/%s/flight_plan.kml"
!hostname !port ac.name in*)
+ let url_flight_plan =
+ if !no_http then
+ sprintf "%s/var/%s/flight_plan.kml" Env.paparazzi_home ac.name
+ else
+ sprintf "http://%s:%d/var/%s/flight_plan.kml" !hostname !port ac.name
+ in
let blocks = ExtXml.child ac.flight_plan "blocks" in
let block = ExtXml.child blocks (string_of_int ac.cur_block) in
let block_name = ExtXml.attrib block "name" in
@@ -257,9 +275,18 @@
let kml_fp = flight_plan a.name xml_fp in
print_xml a.name "flight_plan.kml" kml_fp;
- let url_flight_plan = sprintf "http://%s:%d/var/%s/flight_plan.kml"
!hostname !port a.name in
- let url_ac_changes = sprintf "http://%s:%d/var/%s/ac_changes.kml" !hostname
!port a.name in
- let url_wp_changes = sprintf "http://%s:%d/var/%s/wp_changes.kml" !hostname
!port a.name in
- let url_route_changes = sprintf "http://%s:%d/var/%s/route_changes.kml"
!hostname !port a.name in
- let kml_ac = aircraft a.name url_flight_plan [url_ac_changes;
url_wp_changes; url_route_changes] in
- print_xml a.name "FollowMe.kml" kml_ac;;
+ if !no_http then begin
+ let url_flight_plan = sprintf "%s/var/%s/flight_plan.kml"
Env.paparazzi_home a.name in
+ let url_ac_changes = sprintf "%s/var/%s/ac_changes.kml" Env.paparazzi_home
a.name in
+ let url_wp_changes = sprintf "%s/var/%s/wp_changes.kml" Env.paparazzi_home
a.name in
+ let url_route_changes = sprintf "%s/var/%s/route_changes.kml"
Env.paparazzi_home a.name in
+ let kml_ac = aircraft a.name url_flight_plan [url_ac_changes;
url_wp_changes; url_route_changes] in
+ print_xml a.name "FollowMe.kml" kml_ac
+ end else begin
+ let url_flight_plan = sprintf "http://%s:%d/var/%s/flight_plan.kml"
!hostname !port a.name in
+ let url_ac_changes = sprintf "http://%s:%d/var/%s/ac_changes.kml"
!hostname !port a.name in
+ let url_wp_changes = sprintf "http://%s:%d/var/%s/wp_changes.kml"
!hostname !port a.name in
+ let url_route_changes = sprintf "http://%s:%d/var/%s/route_changes.kml"
!hostname !port a.name in
+ let kml_ac = aircraft a.name url_flight_plan [url_ac_changes;
url_wp_changes; url_route_changes] in
+ print_xml a.name "FollowMe.kml" kml_ac
+ end;;
Modified: paparazzi3/trunk/sw/ground_segment/tmtc/kml.mli
===================================================================
--- paparazzi3/trunk/sw/ground_segment/tmtc/kml.mli 2010-10-19 20:54:52 UTC
(rev 6186)
+++ paparazzi3/trunk/sw/ground_segment/tmtc/kml.mli 2010-10-20 11:48:18 UTC
(rev 6187)
@@ -25,6 +25,7 @@
*)
val enabled : bool ref
+val no_http : bool ref
val port : int ref
val build_files : Aircraft.aircraft -> unit
val update_waypoints : Aircraft.aircraft -> unit
Modified: paparazzi3/trunk/sw/ground_segment/tmtc/server.ml
===================================================================
--- paparazzi3/trunk/sw/ground_segment/tmtc/server.ml 2010-10-19 20:54:52 UTC
(rev 6186)
+++ paparazzi3/trunk/sw/ground_segment/tmtc/server.ml 2010-10-20 11:48:18 UTC
(rev 6187)
@@ -164,7 +164,8 @@
let send_fbw = fun a ->
let values = [ "ac_id", Pprz.String a.id;
"rc_mode", Pprz.String a.fbw.rc_mode;
- "rc_status", Pprz.String a.fbw.rc_status ] in
+ "rc_status", Pprz.String a.fbw.rc_status;
+ "rc_rate", Pprz.Int a.fbw.rc_rate ] in
Ground_Pprz.message_send my_id "FLY_BY_WIRE" values
let send_dl_values = fun a ->
@@ -661,6 +662,7 @@
"-hostname", Arg.Set_string hostname, "<hostname> Set the address for
the http server";
"-http", Arg.Set http, "Send http: URLs (default is file:)";
"-kml", Arg.Set Kml.enabled, "Enable KML file updating";
+ "-kml_no_http", Arg.Set Kml.no_http, "KML without web server (local
files only)";
"-kml_port", Arg.Set_int Kml.port, (sprintf "Port for KML files (default
is %d)" !Kml.port);
"-n", Arg.Clear logging, "Disable log";
"-no_md5_check", Arg.Set no_md5_check, "Disable safety matching of live
and current configurations";
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [paparazzi-commits] [6187] the RC status in the GCS shows the quality of signal reception with green over orange,
Gautier Hattenberger <=