From: Jérémie D. <Ba...@us...> - 2010-02-21 22:15:49
|
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 ef68adf5d8a6209f7a0b8f9dbf2a487e9b04f242 (commit) from ab2cfcdadce3fc01dee7134bad0c1ecbb6ce35aa (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 ef68adf5d8a6209f7a0b8f9dbf2a487e9b04f242 Author: Jérémie Dimino <je...@di...> Date: Sun Feb 21 23:15:18 2010 +0100 add the "now" argument to ax12-goto ----------------------------------------------------------------------- Changes: diff --git a/PC_Mainboard/clients/script.ml b/PC_Mainboard/clients/script.ml index 76c0099..93619ef 100644 --- a/PC_Mainboard/clients/script.ml +++ b/PC_Mainboard/clients/script.ml @@ -261,8 +261,8 @@ let () = ("curve-left", `Curve_left); ("curve-right", `Curve_right)]) (int ~default:0 "bypass-dist")) - (fun logger krobot x y speed acc mode bypass -> - Krobot.goto krobot x y speed acc mode bypass >>= move_result logger); + (fun logger krobot x y speed acc mode bypass now -> + Krobot.goto krobot x y speed acc mode bypass now >>= move_result logger); (* +---------------------------------------------------------------+ | Motors low-level conrol | @@ -330,11 +330,12 @@ let () = and speed = int ~default:50 "speed" and timeout = int ~default:100 "timeout" and reg = int "reg" - and value = int "value" in + and value = int "value" + and now = keyword ~default:true "now" [("true", true); ("false", false)] in - register "ax12-goto" (f3 id pos speed) - (fun logger krobot id pos speed -> - Krobot.AX12.goto krobot id pos speed); + register "ax12-goto" (f4 id pos speed now) + (fun logger krobot id pos speed now -> + Krobot.AX12.goto krobot id pos speed now); register "ax12-ping" (f2 id timeout) (fun logger krobot id timeout -> Krobot.AX12.ping krobot id timeout >>= function diff --git a/PC_Mainboard/driver/commands.ml b/PC_Mainboard/driver/commands.ml index 71db61c..a96f831 100644 --- a/PC_Mainboard/driver/commands.ml +++ b/PC_Mainboard/driver/commands.ml @@ -44,12 +44,16 @@ end module AX12 = struct - let goto card id pos speed = + let goto card id pos speed now = let data = Card.make_buffer () in RW.set_uint8 data 0 Protocol.ax12_goto; RW.set_uint8 data 1 id; RW.set_uint16 data 2 pos; RW.set_uint16 data 4 speed; + RW.set_uint8 data 6 (if now then + Protocol.ax12_exec_now + else + Protocol.ax12_exec_prepare); lwt _ = Card.send_request card Protocol.cmd_ax12 data in return () @@ -66,7 +70,7 @@ struct RW.set_uint8 data 0 Protocol.ax12_read; RW.set_uint8 data 1 id; RW.set_uint8 data 2 reg; - RW.set_uint8 data 3 0; + RW.set_uint8 data 3 Protocol.ax12_value8; RW.set_uint8 data 4 timeout; lwt data = Card.send_request card Protocol.cmd_ax12 data in return (RW.get_uint8 data 0) @@ -76,7 +80,7 @@ struct RW.set_uint8 data 0 Protocol.ax12_read; RW.set_uint8 data 1 id; RW.set_uint8 data 2 reg; - RW.set_uint8 data 3 1; + RW.set_uint8 data 3 Protocol.ax12_value16; RW.set_uint8 data 4 timeout; lwt data = Card.send_request card Protocol.cmd_ax12 data in return (RW.get_uint16 data 0) @@ -86,7 +90,7 @@ struct RW.set_uint8 data 0 Protocol.ax12_write; RW.set_uint8 data 1 id; RW.set_uint8 data 2 reg; - RW.set_uint8 data 3 0; + RW.set_uint8 data 3 Protocol.ax12_value8; RW.set_uint8 data 4 value; lwt data = Card.send_request card Protocol.cmd_ax12 data in return () @@ -96,7 +100,7 @@ struct RW.set_uint8 data 0 Protocol.ax12_write; RW.set_uint8 data 1 id; RW.set_uint8 data 2 reg; - RW.set_uint8 data 3 0; + RW.set_uint8 data 3 Protocol.ax12_value16; RW.set_uint16 data 4 value; lwt data = Card.send_request card Protocol.cmd_ax12 data in return () @@ -144,7 +148,7 @@ struct RW.set_uint8 data 0 Protocol.ax12_write_reg; RW.set_uint8 data 1 id; RW.set_uint8 data 2 reg; - RW.set_uint8 data 3 0; + RW.set_uint8 data 3 Protocol.ax12_value8; RW.set_uint8 data 4 value; lwt _ = Card.send_request card Protocol.cmd_ax12 data in return () @@ -154,7 +158,7 @@ struct RW.set_uint8 data 0 Protocol.ax12_write_reg; RW.set_uint8 data 1 id; RW.set_uint8 data 2 reg; - RW.set_uint8 data 3 1; + RW.set_uint8 data 3 Protocol.ax12_value16; RW.set_int16 data 4 value; lwt _ = Card.send_request card Protocol.cmd_ax12 data in return () diff --git a/PC_Mainboard/driver/commands.mli b/PC_Mainboard/driver/commands.mli index 8e2028e..3832838 100644 --- a/PC_Mainboard/driver/commands.mli +++ b/PC_Mainboard/driver/commands.mli @@ -22,7 +22,7 @@ module Compass : sig end module AX12 : sig - val goto : Card.t -> int -> int -> int -> unit Lwt.t + val goto : Card.t -> int -> int -> int -> bool -> unit Lwt.t val ping : Card.t -> int -> int -> int Lwt.t val read8 : Card.t -> int -> int -> int -> int Lwt.t val read16 : Card.t -> int -> int -> int -> int Lwt.t diff --git a/PC_Mainboard/driver/driver.ml b/PC_Mainboard/driver/driver.ml index ad4f936..0003dcc 100644 --- a/PC_Mainboard/driver/driver.ml +++ b/PC_Mainboard/driver/driver.ml @@ -78,7 +78,7 @@ struct let wrap f dev = f dev.card - OL_method Goto : int -> int -> int -> unit = wrap Commands.AX12.goto + OL_method Goto : int -> int -> int -> bool -> unit = wrap Commands.AX12.goto OL_method Ping : int -> int -> int = wrap Commands.AX12.ping OL_method Read8 : int -> int -> int -> int = wrap Commands.AX12.read8 OL_method Read16 : int -> int -> int -> int = wrap Commands.AX12.read16 @@ -249,6 +249,14 @@ struct include OBus.MakeInterface(struct let name = "fr.krobot.Device.Motors" end) (* +---------------------------------------------------------------+ + | Dispatching | + +---------------------------------------------------------------+ *) + + (* The dispatcher *) +(* let *) + + + (* +---------------------------------------------------------------+ | High-level movement | +---------------------------------------------------------------+ *) diff --git a/PC_Mainboard/lib_krobot/krobot.ml b/PC_Mainboard/lib_krobot/krobot.ml index ed460f0..84b99c4 100644 --- a/PC_Mainboard/lib_krobot/krobot.ml +++ b/PC_Mainboard/lib_krobot/krobot.ml @@ -176,7 +176,7 @@ OP_method CalibrationContinue : unit module AX12 = struct include MakeDevice(struct let name = "AX12" end) - OP_method Goto : id : int -> pos : int -> speed : int -> unit + OP_method Goto : id : int -> pos : int -> speed : int -> now : bool -> unit OP_method Ping : id : int -> timeout : int -> int OP_method Read8 : id : int -> reg : int -> timeout : int -> int OP_method Read16 : id : int -> reg : int -> timeout : int -> int diff --git a/PC_Mainboard/lib_krobot/krobot.mli b/PC_Mainboard/lib_krobot/krobot.mli index 18aba87..bd72172 100644 --- a/PC_Mainboard/lib_krobot/krobot.mli +++ b/PC_Mainboard/lib_krobot/krobot.mli @@ -62,7 +62,7 @@ val calibration_stop : t -> unit Lwt.t (** {6 Manipulation of AX12s} *) module AX12 : sig - val goto : t -> id : int -> pos : int -> speed : int -> unit Lwt.t + val goto : t -> id : int -> pos : int -> speed : int -> now : bool -> unit Lwt.t val ping : t -> id : int -> timeout : int -> int Lwt.t val read8 : t -> id : int -> reg : int -> timeout : int -> int Lwt.t val read16 : t -> id : int -> reg : int -> timeout : int -> int Lwt.t hooks/post-receive -- krobot |