diff --git a/sw/ext/pprzlink b/sw/ext/pprzlink index 8fdb0c9823..6efd540406 160000 --- a/sw/ext/pprzlink +++ b/sw/ext/pprzlink @@ -1 +1 @@ -Subproject commit 8fdb0c9823848e42191bbc620880e6f03b7b44d6 +Subproject commit 6efd540406cb5a2fdc6b27cc5befaa43bf54a4e6 diff --git a/sw/simulator/sim.ml b/sw/simulator/sim.ml index ee0b7d8789..e44af59b2a 100644 --- a/sw/simulator/sim.ml +++ b/sw/simulator/sim.ml @@ -178,7 +178,9 @@ module Make(AircraftItl : AIRCRAFT_ITL) = struct "lat", float ((Rad>>Deg)gps_sol.Gps.wgs84.posn_lat); "long", float ((Rad>>Deg)gps_sol.Gps.wgs84.posn_long); "alt", float gps_sol.Gps.alt ] in - Ground_Pprz.message_req "sim" "WORLD_ENV" values world_update + let (b, flag) = Ground_Pprz.message_req "sim" "WORLD_ENV" values world_update in + (* unbind manually after 1s if no message received *) + ignore (GMain.Timeout.add 1000 (fun () -> if !flag then Ivy.unbind b; false)) with exc -> fprintf stderr "Error in sim: %s\n%!" (Printexc.to_string exc) in