diff --git a/conf/control_panel.xml b/conf/control_panel.xml index 124d971a9f..6853df4b0b 100644 --- a/conf/control_panel.xml +++ b/conf/control_panel.xml @@ -115,7 +115,19 @@ - + + + + + + + + + + + + + diff --git a/sw/logalizer/Makefile b/sw/logalizer/Makefile index 513e4a398b..af65d1be2e 100644 --- a/sw/logalizer/Makefile +++ b/sw/logalizer/Makefile @@ -29,7 +29,7 @@ clean: rm -f *.opt *.out *~ core *.o *.bak .depend *.cm* play play : play.ml - $(OCAMLC) -o $@ unix.cma glibivy-ocaml.cma -I +lablgtk2 lablgtk.cma gtkInit.cmo $^ # to check + $(OCAMLC) -o $@ unix.cma glibivy-ocaml.cma -I +lablgtk2 -I ../lib/ocaml lablgtk.cma lib-pprz.cma gtkInit.cmo $^ # to check cat ../../pprz_src_test.sh > $@ - echo 'exec lablgtk2 unix.cma glibivy-ocaml.cma $$PAPARAZZI_SRC/sw/logalizer/$< $$*' >> $@ + echo 'exec lablgtk2 unix.cma glibivy-ocaml.cma -I $$PAPARAZZI_SRC/sw/lib/ocaml lib-pprz.cma $$PAPARAZZI_SRC/sw/logalizer/$< $$*' >> $@ chmod a+x $@ diff --git a/sw/logalizer/play.ml b/sw/logalizer/play.ml index b4f8890b81..5c1bf84e1e 100644 --- a/sw/logalizer/play.ml +++ b/sw/logalizer/play.ml @@ -1,3 +1,6 @@ + +module Ground_Pprz = Pprz.Protocol(struct let name = "ground" end) + let log = ref [||] let load_log = fun window (adj:GData.adjustment) name -> @@ -80,8 +83,11 @@ let _ = ~value:0. ~lower:0. ~upper:1000. ~step_incr:0.5 ~page_incr:1.0 ~page_size:1.0 () in - let speed = GData.adjustment ~value:1. ~lower:0.05 ~upper:10. - ~step_incr:0.25 ~page_incr:1.0 () in +(*** let speed = GData.adjustment ~value:1. ~lower:0.05 ~upper:10. + ~step_incr:0.25 ~page_incr:1.0 () in ***) + + let speed = object val mutable v = 1. method value = v method set_value x = v <- x end + in let bus = ref "127.255.255.255:3333" in Arg.parse @@ -102,11 +108,11 @@ let _ = ignore (file_menu_fact#add_item "Quit" ~key:GdkKeysyms._Q ~callback:quit); - let timescale = GRange.scale `HORIZONTAL ~adjustment:adj ~packing:window#vbox#pack () in - let speed_button = GEdit.spin_button ~adjustment:speed ~rate:0. ~digits:2 ~width:50 ~packing:window#vbox#add () in + (***) let timescale = GRange.scale `HORIZONTAL ~adjustment:adj ~packing:window#vbox#pack () in + let speed_button = GEdit.spin_button (*** ~adjustment:speed ***) ~rate:0. ~digits:2 ~width:50 ~packing:window#vbox#add () in (***) - (** #move_slider is not working ??? **) ignore (timescale#event#connect#button_release ~callback:(fun _ -> if !was_running then play adj speed; false)); - ignore (timescale#event#connect#button_press ~callback:(fun _ -> was_running := !timer <> None; stop (); false)); + (** #move_slider is not working ??? **) (*** ignore (timescale#event#connect#button_release ~callback:(fun _ -> if !was_running then play adj speed; false)); + ignore (timescale#event#connect#button_press ~callback:(fun _ -> was_running := !timer <> None; stop (); false)); ***) window#add_accel_group accel_group; window#show (); @@ -114,4 +120,10 @@ let _ = Ivy.init "Paparazzi replay" "READY" (fun _ _ -> ()); Ivy.start !bus; + let world_update_time = fun _ vs -> + speed#set_value (Pprz.float_assoc "time_scale" vs) + in + + ignore (Ground_Pprz.message_bind "WORLD_ENV" world_update_time); + GMain.Main.main ()