From: Jérémie D. <Ba...@us...> - 2010-05-28 01:32:21
|
This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "krobot". The branch, master has been updated via 5d8a1f897c0083e62e6beb0f2d82458cf4760cf9 (commit) via 376c4fe2d3eee0e85111cf2d9b1dc70afce658ee (commit) from eef31e41b3f2d1ac1bbd5b320e65ca187efb1293 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- commit 5d8a1f897c0083e62e6beb0f2d82458cf4760cf9 Author: Jérémie Dimino <je...@di...> Date: Fri May 28 02:53:34 2010 +0200 typo commit 376c4fe2d3eee0e85111cf2d9b1dc70afce658ee Author: Jérémie Dimino <je...@di...> Date: Fri May 28 02:50:43 2010 +0200 do not fail if the rx64 card fails to open ----------------------------------------------------------------------- Changes: diff --git a/info/control/driver/krobot_dynamixel_over_serial.ml b/info/control/driver/krobot_dynamixel_over_serial.ml index 104c954..27374fd 100644 --- a/info/control/driver/krobot_dynamixel_over_serial.ml +++ b/info/control/driver/krobot_dynamixel_over_serial.ml @@ -465,11 +465,16 @@ class device ?timeout ~name ~path ~rate () = let state, set_state = React.S.create `Down in object val mutable card = None + val mutable closed = false method name = name method state : [ `Up | `Down ] React.signal = state method close = - match card with + closed <- true; + let card' = card in + card <- None; + set_state `Down; + match card' with | Some card -> close card | None -> @@ -513,17 +518,21 @@ object initializer let rec loop () = - lwt c = make ?timeout ~name ~path ~rate in - card <- Some c; - set_state `Up; - c.watch >>= function - | `Closed -> - set_state `Down; - return () - | `Error _ -> - set_state `Down; - lwt () = Lwt_unix.sleep 0.1 in - loop () + lwt () = + try_lwt + lwt c = make ?timeout ~name ~path ~rate in + card <- Some c; + set_state `Up; + lwt _ = c.watch in + return () + with exn -> + return () + in + if closed then + return () + else + lwt () = Lwt_unix.sleep 0.1 in + loop () in ignore (loop ()) end diff --git a/info/control/lib-krobot/krobot_driver.ml b/info/control/lib-krobot/krobot_driver.ml index 62863da..d93e38b 100644 --- a/info/control/lib-krobot/krobot_driver.ml +++ b/info/control/lib-krobot/krobot_driver.ml @@ -34,7 +34,7 @@ let card_interface krobot = card krobot "Interface" let card_sensors krobot = card krobot "Sensors" let card_motors krobot = card krobot "Motors" let card_monitoring krobot = card krobot "Monitoring" -let card_rx64 krobot = card krobot "Rx64" +let card_rx64 krobot = card krobot "RX64" module Analogic_motor = struct hooks/post-receive -- krobot |