From 15f63ad8391ccbb0bc2a10b9934b049d2fac52c0 Mon Sep 17 00:00:00 2001 From: Gautier Hattenberger Date: Mon, 1 Dec 2014 16:51:04 +0100 Subject: [PATCH] [link] fix link report --- sw/ground_segment/tmtc/aircraft.ml | 14 +++++++------- sw/ground_segment/tmtc/aircraft.mli | 12 ++++++------ sw/ground_segment/tmtc/link.ml | 9 ++++++++- sw/ground_segment/tmtc/server.ml | 23 ++++++++++------------- 4 files changed, 31 insertions(+), 27 deletions(-) diff --git a/sw/ground_segment/tmtc/aircraft.ml b/sw/ground_segment/tmtc/aircraft.ml index 3674500f936..2d854e29929 100644 --- a/sw/ground_segment/tmtc/aircraft.ml +++ b/sw/ground_segment/tmtc/aircraft.ml @@ -66,12 +66,12 @@ type datalink_status = { mutable downlink_rate : int; } type link_status = { - mutable rx_lost_time : float; - mutable rx_bytes : int; - mutable rx_msgs : int; - mutable rx_bytes_rate : float; - mutable tx_msgs : int; - mutable ping_time : float + rx_lost_time : int; + rx_bytes : int; + rx_msgs : int; + rx_bytes_rate : float; + tx_msgs : int; + ping_time : float } let datalink_status_init = fun () -> @@ -83,7 +83,7 @@ let datalink_status_init = fun () -> } let link_status_init = fun () -> { - rx_lost_time = 9999.; + rx_lost_time = 9999; rx_bytes = 0; rx_msgs = 0; rx_bytes_rate = 0.; diff --git a/sw/ground_segment/tmtc/aircraft.mli b/sw/ground_segment/tmtc/aircraft.mli index 086716edcac..bda45823c11 100644 --- a/sw/ground_segment/tmtc/aircraft.mli +++ b/sw/ground_segment/tmtc/aircraft.mli @@ -56,12 +56,12 @@ type datalink_status = { mutable downlink_rate : int; } type link_status = { - mutable rx_lost_time : float; - mutable rx_bytes : int; - mutable rx_msgs : int; - mutable rx_bytes_rate : float; - mutable tx_msgs : int; - mutable ping_time : float + rx_lost_time : int; + rx_bytes : int; + rx_msgs : int; + rx_bytes_rate : float; + tx_msgs : int; + ping_time : float } val datalink_status_init : unit -> datalink_status val link_status_init : unit -> link_status diff --git a/sw/ground_segment/tmtc/link.ml b/sw/ground_segment/tmtc/link.ml index 356be207af2..6198009b105 100644 --- a/sw/ground_segment/tmtc/link.ml +++ b/sw/ground_segment/tmtc/link.ml @@ -79,6 +79,13 @@ let send_message_over_ivy = fun sender name vs -> else Tm_Pprz.message_send ?timestamp sender name vs +let send_ground_over_ivy = fun sender name vs -> + let timestamp = + match !add_timestamp with + None -> None + | Some start_time -> Some (Unix.gettimeofday () -. start_time) in + Ground_Pprz.message_send ?timestamp sender name vs + (*********** Monitoring *************************************************) type status = { @@ -167,7 +174,7 @@ let send_status_msg = "tx_msgs", Pprz.Int 0; "ping_time", Pprz.Float (1000. *. (status.last_pong -. status.last_ping)) ] in - send_message_over_ivy (string_of_int ac_id) "LINK_REPORT" vs) + send_ground_over_ivy "link" "LINK_REPORT" vs) statuss diff --git a/sw/ground_segment/tmtc/server.ml b/sw/ground_segment/tmtc/server.ml index 21c3182ce01..7b2254cd061 100644 --- a/sw/ground_segment/tmtc/server.ml +++ b/sw/ground_segment/tmtc/server.ml @@ -713,19 +713,16 @@ let link_report = fun logging _sender vs -> let ac_id = Pprz.string_assoc "ac_id" vs and link_id = Pprz.int_assoc "link_id" vs in try - begin - let ac = Hashtbl.find aircrafts ac_id in - try - let link_status = Hashtbl.find ac.link_status link_id in - link_status.rx_lost_time <- Pprz.float_assoc "rx_lost_time" vs; - link_status.rx_bytes <- Pprz.int_assoc "rx_bytes" vs; - link_status.rx_msgs <- Pprz.int_assoc "rx_msgs" vs; - link_status.rx_bytes_rate <- Pprz.float_assoc "rx_bytes_rate" vs; - link_status.tx_msgs <- Pprz.int_assoc "tx_msgs" vs; - link_status.ping_time <- Pprz.float_assoc "ping_time" vs; - Hashtbl.replace ac.link_status link_id link_status - with Not_found -> Hashtbl.add ac.link_status link_id (Aircraft.link_status_init ()) - end + let ac = Hashtbl.find aircrafts ac_id in + let link_status = { + Aircraft.rx_lost_time = Pprz.int_assoc "rx_lost_time" vs; + rx_bytes = Pprz.int_assoc "rx_bytes" vs; + rx_msgs = Pprz.int_assoc "rx_msgs" vs; + rx_bytes_rate = Pprz.float_assoc "rx_bytes_rate" vs; + tx_msgs = Pprz.int_assoc "tx_msgs" vs; + ping_time = Pprz.float_assoc "ping_time" vs; + } in + Hashtbl.replace ac.link_status link_id link_status; with _ -> ()