mirror of
https://github.com/paparazzi/paparazzi.git
synced 2026-06-06 16:58:48 +08:00
add setting value update (GET_SETTING message)
This commit is contained in:
@@ -210,6 +210,10 @@ let dl_setting = fun ac_id idx value ->
|
||||
let vs = ["ac_id", Pprz.String ac_id; "index", Pprz.Int idx;"value", Pprz.Float value] in
|
||||
Ground_Pprz.message_send "dl" "DL_SETTING" vs
|
||||
|
||||
let get_dl_setting = fun ac_id idx ->
|
||||
let vs = ["ac_id", Pprz.String ac_id; "index", Pprz.Int idx] in
|
||||
Ground_Pprz.message_send "dl" "GET_DL_SETTING" vs
|
||||
|
||||
let menu_entry_of_block = fun ac_id (id, name) ->
|
||||
let send_msg = fun () -> jump_to_block ac_id id in
|
||||
`I (name, send_msg)
|
||||
@@ -533,7 +537,11 @@ let create_ac = fun alert (geomap:G.widget) (acs_notebook:GPack.notebook) (ac_id
|
||||
Xml.Element("empty", [], [])
|
||||
in
|
||||
let dl_setting_callback = fun idx value ->
|
||||
dl_setting ac_id idx value in
|
||||
if classify_float value = FP_normal then
|
||||
dl_setting ac_id idx value
|
||||
else
|
||||
get_dl_setting ac_id idx
|
||||
in
|
||||
let dl_settings_page =
|
||||
try
|
||||
let xml_settings = Xml.children (ExtXml.child settings_xml "dl_settings") in
|
||||
|
||||
@@ -66,7 +66,7 @@ let add_key = fun xml do_change keys ->
|
||||
|
||||
|
||||
|
||||
let one_setting = fun (i:int) do_change packing dl_setting (tooltips:GData.tooltips) strip keys ->
|
||||
let one_setting = fun (i:int) (do_change:int -> float -> unit) packing dl_setting (tooltips:GData.tooltips) strip keys ->
|
||||
let f = fun a -> float_of_string (ExtXml.attrib dl_setting a) in
|
||||
let lower = f "min"
|
||||
and upper = f "max"
|
||||
@@ -81,7 +81,8 @@ let one_setting = fun (i:int) do_change packing dl_setting (tooltips:GData.toolt
|
||||
let varname = ExtXml.attrib dl_setting "var" in
|
||||
let text = try ExtXml.attrib dl_setting "shortname" with _ -> varname in
|
||||
let _l = GMisc.label ~width:100 ~text ~packing:hbox#pack () in
|
||||
let current_value = GMisc.label ~width:50 ~text:"N/A" ~packing:hbox#pack () in
|
||||
let eb = GBin.event_box ~packing:hbox#pack () in
|
||||
let current_value = GMisc.label ~width:50 ~text:"N/A" ~packing:eb#add () in
|
||||
|
||||
let auto_but = GButton.check_button ~label:"Auto" ~active:false () in
|
||||
|
||||
@@ -141,6 +142,11 @@ let one_setting = fun (i:int) do_change packing dl_setting (tooltips:GData.toolt
|
||||
in
|
||||
let set_default = fun x ->
|
||||
if not !modified then set_default x else () in
|
||||
|
||||
(* Update value *)
|
||||
let callback = fun _ ->
|
||||
do_change i infinity; true in
|
||||
ignore (eb#event#connect#button_press ~callback);
|
||||
|
||||
(* Auto check button *)
|
||||
if show_auto then begin
|
||||
|
||||
Reference in New Issue
Block a user