From: Jérémie D. <Ba...@us...> - 2010-02-28 21:58:58
|
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 2e41773908b10cad366a5395fa1f35b5477a1b6a (commit) from d0d1b4f316d589f5b6fe73acb68a160acda7bc7c (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 2e41773908b10cad366a5395fa1f35b5477a1b6a Author: Jérémie Dimino <je...@di...> Date: Sun Feb 28 22:58:23 2010 +0100 Updates ----------------------------------------------------------------------- Changes: diff --git a/PC_Mainboard/driver/driver.ml b/PC_Mainboard/driver/driver.ml index a7d9615..837f7b3 100644 --- a/PC_Mainboard/driver/driver.ml +++ b/PC_Mainboard/driver/driver.ml @@ -29,12 +29,12 @@ struct module OBus = OBus_object.Make(struct type obj = t - let get obj = obj.obus + let cast obj = obj.obus end) - include DBus_exports.Compass(OBus)(struct let get dev = dev.card end) + module Unsafe = DBus_exports.Compass(OBus)(struct let get dev = dev.card end) - include OBus.Make_interface(struct let name = "fr.krobot.Device.Compass" end) + OL_interface(OBus) "fr.krobot.Device.Compass" as interface OL_signal Value : int OL_method Get : int = fun dev -> return dev.data @@ -53,7 +53,7 @@ struct let make card path = lwt data = USB_commands.Compass.get card in let dev = { - obus = OBus_object.make path; + obus = OBus.make ~interfaces:[Unsafe.interface; interface] path; card = card; data = data; } in @@ -74,12 +74,12 @@ struct module OBus = OBus_object.Make(struct type obj = t - let get obj = obj.obus + let cast obj = obj.obus end) - include DBus_exports.AX12(OBus)(struct let get dev = dev.card end) + module Unsafe = DBus_exports.AX12(OBus)(struct let get dev = dev.card end) - include OBus.Make_interface(struct let name = "fr.krobot.Device.AX12" end) + OL_interface(OBus) "fr.krobot.Device.AX12" as interface OL_method SetAX12 : Types.ax12_action structure list -> unit = fun dev actions -> lwt () = @@ -97,7 +97,7 @@ struct let make card path = return { - obus = OBus_object.make path; + obus = OBus.make ~interfaces:[Unsafe.interface; interface] path; card = card; } end @@ -116,12 +116,12 @@ struct module OBus = OBus_object.Make(struct type obj = t - let get obj = obj.obus + let cast obj = obj.obus end) - include DBus_exports.Logic_sensors(OBus)(struct let get dev = dev.card end) + module Unsafe = DBus_exports.Logic_sensors(OBus)(struct let get dev = dev.card end) - include OBus.Make_interface(struct let name = "fr.krobot.Device.LogicSensors" end) + OL_interface(OBus) "fr.krobot.Device.LogicSensors" as interface OL_signal Value : bool array OL_method Get : bool array = fun dev -> return dev.data @@ -139,7 +139,7 @@ struct let make card path = let dev = { - obus = OBus_object.make path; + obus = OBus.make ~interfaces:[Unsafe.interface; interface] path; card = card; data = Array.create 16 false; } in @@ -161,12 +161,12 @@ struct module OBus = OBus_object.Make(struct type obj = t - let get obj = obj.obus + let cast obj = obj.obus end) - include DBus_exports.Range_finders(OBus)(struct let get dev = dev.card end) + module Unsafe = DBus_exports.Range_finders(OBus)(struct let get dev = dev.card end) - include OBus.Make_interface(struct let name = "fr.krobot.Device.RangeFinders" end) + OL_interface(OBus) "fr.krobot.Device.RangeFinders" as interface OL_signal Value : int array OL_method Get : int array = fun dev -> return dev.data @@ -193,7 +193,7 @@ struct let make card path = let dev = { - obus = OBus_object.make path; + obus = OBus.make ~interfaces:[Unsafe.interface; interface] path; card = card; data = Array.create 8 0; } in @@ -250,12 +250,12 @@ struct module OBus = OBus_object.Make(struct type obj = t - let get obj = obj.obus + let cast obj = obj.obus end) - include DBus_exports.Motors(OBus)(struct let get dev = dev.card end) + module Unsafe = DBus_exports.Motors(OBus)(struct let get dev = dev.card end) - include OBus.Make_interface(struct let name = "fr.krobot.Device.Motors" end) + OL_interface(OBus) "fr.krobot.Device.Motors" as interface let string_of_direction = function | `Forward -> "forward" @@ -534,7 +534,7 @@ struct let make card path = let commands = React.E.map (fun data -> Char.code data.[0]) (Krobot_card.connect card PcInterface.cmd_traj)#event in let dev = { - obus = OBus_object.make path; + obus = OBus.make ~interfaces:[Unsafe.interface; interface] path; card = card; inhibit_forward_until = 0.0; inhibit_backward_until = 0.0; @@ -556,14 +556,7 @@ let card_motor, set_card_motor = React.S.create None module Manager = struct - let manager = OBus_object.make ["fr"; "krobot"; "Manager"] - - module OBus = OBus_object.Make(struct - type obj = unit - let get _ = manager - end) - - include OBus.Make_interface(struct let name = "fr.krobot.Manager" end) + OL_interface "fr.krobot.Manager" as interface let close card = match React.S.value card with | None -> @@ -571,7 +564,7 @@ struct | Some card -> Krobot_card.close card - OL_method CardStates : OBus_connection.t -> Types.card_state * Types.card_state * Types.card_state = fun () connection -> + OL_method CardStates : OBus_connection.t -> Types.card_state * Types.card_state * Types.card_state = fun manager connection -> let state card = match React.S.value card with | Some _ -> `Present | None -> `Absent @@ -580,7 +573,7 @@ struct state card_sensor, state card_motor) - OL_method Shutdown : OBus_connection.t -> unit = fun () connection -> + OL_method Shutdown : OBus_connection.t -> unit = fun manager connection -> lwt () = Log.info "exiting" in quit := true; lwt () = close card_interface @@ -589,6 +582,8 @@ struct lwt _ = OBus_bus.release_name connection "fr.krobot.Driver" in Lwt.wakeup done_wakener (); return () + + let manager = OBus_object.make ~interfaces:[interface] ["fr"; "krobot"; "Manager"] end (* +-----------------------------------------------------------------+ @@ -606,7 +601,7 @@ struct module OBus = OBus_object.Make(struct type obj = t - let get obj = obj.obus + let cast obj = obj.obus end) let get_card dev = match React.S.value dev.card with @@ -615,9 +610,9 @@ struct | Some card -> card - include DBus_exports.Card(OBus)(struct let get = get_card end) + module Unsafe = DBus_exports.Card(OBus)(struct let get = get_card end) - include OBus.Make_interface(struct let name = "fr.krobot.Card" end) + OL_interface(OBus) "fr.krobot.Card" as interface OL_property_r Name : string = fun dev -> return (Krobot_card.name (get_card dev)) @@ -649,7 +644,7 @@ struct let make name card path = let dev = { card = card; - obus = OBus_object.make path; + obus = OBus.make ~interfaces:[Unsafe.interface; interface] path; name = name; state = React.S.const (return ()); } in @@ -794,7 +789,7 @@ lwt () = Card.OBus.export bus (Card.make "sensor" card_sensor ["fr"; "krobot"; "Cards"; "Sensor"]); Card.OBus.export bus (Card.make "motor" card_motor ["fr"; "krobot"; "Cards"; "Motor"]); - Manager.OBus.export bus (); + OBus_object.export bus Manager.manager; lwt () = Log.notice "ready, waiting for requests" in lwt () = done_waiter in diff --git a/PC_Mainboard/generators/gen_dbus_exports.ml b/PC_Mainboard/generators/gen_dbus_exports.ml index b8f54eb..134edef 100644 --- a/PC_Mainboard/generators/gen_dbus_exports.ml +++ b/PC_Mainboard/generators/gen_dbus_exports.ml @@ -72,7 +72,7 @@ let rec print path indent = function | Module(name, items) -> printf "%smodule %s(M : OBus_object.S)(Get : sig val get : M.obj -> Krobot_card.t end) = struct\n" indent (Name.uid name); - printf "%s include M.Make_interface(struct let name = \"fr.krobot.Device.%s.Unsafe\" end)\n" + printf "%s OL_interface(M) \"fr.krobot.Device.%s.Unsafe\" as interface\n" indent (Name.caml_case name); List.iter (print (path ^ Name.uid name ^ ".") (indent ^ " ")) items; printf "%send\n" indent @@ -87,7 +87,7 @@ let () = printf "open OBus_pervasives\n"; printf "module Card(M : OBus_object.S)(Get : sig val get : M.obj -> Krobot_card.t end) = struct\n"; - printf " include M.Make_interface(struct let name = \"fr.krobot.Card.Unsafe\" end)\n"; + printf " OL_interface(M) \"fr.krobot.Card.Unsafe\" as interface\n"; List.iter (print "Card." " ") card; printf "end\n"; diff --git a/PC_Mainboard/generators/gen_dbus_imports.ml b/PC_Mainboard/generators/gen_dbus_imports.ml index 55c8851..2f27622 100644 --- a/PC_Mainboard/generators/gen_dbus_imports.ml +++ b/PC_Mainboard/generators/gen_dbus_imports.ml @@ -52,10 +52,10 @@ let rec print indent = function printf "%smodule %s = struct\n" indent (Name.uid name); printf "%s module Proxy = OBus_proxy.Make(struct\n" indent; printf "%s type proxy = Krobot.t\n" indent; - printf "%s let get krobot = OBus_proxy.make (Krobot.peer krobot) [\"fr\"; \"krobot\"; \"Devices\"; \"%s\"]\n" indent (Name.caml_case name); + printf "%s let cast krobot = OBus_proxy.make (Krobot.peer krobot) [\"fr\"; \"krobot\"; \"Devices\"; \"%s\"]\n" indent (Name.caml_case name); printf "%s let make _ = failwith \"not implemented\"\n" indent; printf "%s end)\n" indent; - printf "%s include Proxy.Make_interface(struct let name = \"fr.krobot.Device.%s\" end)\n" indent (Name.caml_case name); + printf "%s OP_interface(Proxy) \"fr.krobot.Device.%s\"\n" indent (Name.caml_case name); List.iter (print (indent ^ " ")) items; printf "%send\n" indent @@ -69,15 +69,22 @@ let () = print_string "\ open OBus_pervasives module Card = struct + OP_interface \"fr.krobot.Card.Unsafe\" +"; + List.iter (print " ") card; + print_string "\ let proxy krobot (card : Krobot.Card.card) = OBus_proxy.make (Krobot.peer krobot) [\"fr\"; \"krobot\"; \"Cards\"; (match card with | `Interface -> \"Interface\" | `Sensor -> \"Sensor\" | `Motor -> \"Motor\")] - let op_method_call member typ krobot card = - OBus_proxy.method_call (proxy krobot card) ~interface:\"fr.krobot.Card.Unsafe\" ~member typ "; - List.iter (print " ") card; + List.iter (function + | Request{ req_name = name } | Command{ cmd_name = name } -> + let name = Name.lid name in + printf " let %s krobot card = %s (proxy krobot card)\n" name name + | _ -> + ()) card; printf "end\n"; List.iter (print "") interfaces diff --git a/PC_Mainboard/lib_krobot/krobot.ml b/PC_Mainboard/lib_krobot/krobot.ml index 1cb9e91..4c6279f 100644 --- a/PC_Mainboard/lib_krobot/krobot.ml +++ b/PC_Mainboard/lib_krobot/krobot.ml @@ -49,18 +49,12 @@ let peer krobot = krobot.peer (* Create an interface using [t] as type for proxies *) module Make_device(Name : sig val name : string end) = -struct - module Proxy = OBus_proxy.Make + OBus_proxy.Make (struct type proxy = t - let get krobot = OBus_proxy.make krobot.peer ["fr"; "krobot"; "Devices"; Name.name] + let cast krobot = OBus_proxy.make krobot.peer ["fr"; "krobot"; "Devices"; Name.name] let make _ = failwith "not implemented" end) - module Interface = Proxy.Make_interface - (struct - let name = "fr.krobot.Device." ^ Name.name - end) -end let make_dev_signal ~peer ~name ~get ~update ~typ ~default = let proxy = OBus_proxy.make peer ["fr"; "krobot"; "Devices"; name] in @@ -165,8 +159,8 @@ let jack krobot = | Range finders | +-----------------------------------------------------------------+ *) -module Range_finders = Make_device(struct let name = "RangeFinders" end) -include Range_finders.Interface +module RF = Make_device(struct let name = "RangeFinders" end) +OP_interface(RF) "fr.krobot.Device.RangeFinders" OP_method GetCalibration : int -> int array OP_method CalibrationStart : int -> bool -> unit @@ -178,7 +172,7 @@ OP_method CalibrationContinue : unit +-----------------------------------------------------------------+ *) module AX12 = Make_device(struct let name = "AX12" end) -include AX12.Interface +OP_interface(AX12) "fr.krobot.Device.AX12" OP_method SetAX12 : Types.ax12_action structure list -> unit @@ -187,7 +181,7 @@ OP_method SetAX12 : Types.ax12_action structure list -> unit +-----------------------------------------------------------------+ *) module Motors = Make_device(struct let name = "Motors" end) -include Motors.Interface +OP_interface(Motors) "fr.krobot.Device.Motors" OP_method Turn : angle : int -> velocity : int -> acceleration : int -> Types.move_result OP_method Move : distance : int -> velocity : int -> acceleration : int -> Types.move_result @@ -223,12 +217,16 @@ struct | `Sensor -> "Sensor" | `Motor -> "Motor")] - let op_method_call member typ krobot card = - OBus_proxy.method_call (proxy krobot card) ~interface:"fr.krobot.Card" ~member typ - + OP_interface "fr.krobot.Card" OP_method GetFirmwareBuild : string OP_method GetBoardInfo : string OP_method Bootloader : unit OP_method Reset : unit OP_method Test : unit + + let get_firmware_build krobot card = get_firmware_build (proxy krobot card) + let get_board_info krobot card = get_board_info (proxy krobot card) + let bootloader krobot card = bootloader (proxy krobot card) + let reset krobot card = reset (proxy krobot card) + let test krobot card = test (proxy krobot card) end hooks/post-receive -- krobot |