diff --git a/sw/supervision/paparazzicenter.ml b/sw/supervision/paparazzicenter.ml index dcf2a8aa2e..8dad4211ad 100644 --- a/sw/supervision/paparazzicenter.ml +++ b/sw/supervision/paparazzicenter.ml @@ -132,8 +132,10 @@ let quit_button_callback = fun gui ac_combo session_combo target_combo () -> let () = + let session = ref "" in Arg.parse - ["-fullscreen", Arg.Set fullscreen, "Fullscreen window"] + ["-fullscreen", Arg.Set fullscreen, "Fullscreen window"; + "-session", Arg.Set_string session, " Run a custom session"] (fun x -> fprintf stderr "Warning: Don't do anything with '%s'\n%!" x) "Usage: "; let file = Env.paparazzi_src // "sw" // "supervision" // "paparazzicenter.glade" in @@ -211,7 +213,7 @@ let () = AC.build_handler ~file gui ac_combo target_combo log; - let session_combo = CP.supervision ~file gui log ac_combo in + let session_combo, execute_session = CP.supervision ~file gui log ac_combo in (* Quit button *) ignore (gui#menu_item_quit#connect#activate ~callback:(quit_button_callback gui ac_combo session_combo target_combo)); @@ -231,4 +233,10 @@ let () = read_preferences Env.gconf_file ac_combo session_combo target_combo end; + (* Run the command line session *) + if !session <> "" then begin + Utils.select_in_combo session_combo !session; + execute_session !session + end; + GMain.Main.main ();; diff --git a/sw/supervision/pc_control_panel.ml b/sw/supervision/pc_control_panel.ml index 6dfcef5f61..bdc4c0c22f 100644 --- a/sw/supervision/pc_control_panel.ml +++ b/sw/supervision/pc_control_panel.ml @@ -175,7 +175,7 @@ let supervision = fun ?file gui log (ac_combo : Utils.combo) -> Utils.select_in_combo session_combo "Simulation"; let execute_custom = fun session_name -> - let session = Hashtbl.find sessions session_name in + let session = try Hashtbl.find sessions session_name with Not_found -> failwith (sprintf "Unknown session: %s" session_name) in List.iter (fun program -> let name = ExtXml.attrib program "name" in @@ -264,5 +264,5 @@ let supervision = fun ?file gui log (ac_combo : Utils.combo) -> | _ -> () in ignore (gui#menu_item_delete_session#connect#activate ~callback); - session_combo + session_combo, execute_custom