From: Jérémie D. <Ba...@us...> - 2010-03-08 22:47:12
|
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 3e1aae398963d2424a80c545b19fb0ce3a336c52 (commit) from c654c37eb3a98e2e6178aea67ede87f45f06e2b5 (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 3e1aae398963d2424a80c545b19fb0ce3a336c52 Author: Jérémie Dimino <je...@di...> Date: Mon Mar 8 23:43:50 2010 +0100 code for the baterry monitoring card ----------------------------------------------------------------------- Changes: diff --git a/PC_Mainboard/driver/driver.ml b/PC_Mainboard/driver/driver.ml index 7988333..071e898 100644 --- a/PC_Mainboard/driver/driver.ml +++ b/PC_Mainboard/driver/driver.ml @@ -16,6 +16,31 @@ open Krobot_types open Lwt (* +-----------------------------------------------------------------+ + | Battery monitoring | + +-----------------------------------------------------------------+ *) + +module Power = +struct + type t = { + obus : OBus_object.t; + card : Krobot_card.t; + } + + module OBus = OBus_object.Make(struct + type obj = t + let cast obj = obj.obus + end) + + module Unsafe = DBus_exports.Power(OBus)(struct let get dev = dev.card end) + + let make card path = + return { + obus = OBus.make ~interfaces:[Unsafe.interface] path; + card = card; + } +end + +(* +-----------------------------------------------------------------+ | Compass | +-----------------------------------------------------------------+ *) @@ -604,6 +629,7 @@ end let done_waiter, done_wakener = Lwt.wait () let quit = ref false let card_interface, set_card_interface = React.S.create None +let card_monitoring, set_card_monitoring = React.S.create None let card_sensor, set_card_sensor = React.S.create None let card_motor, set_card_motor = React.S.create None @@ -813,6 +839,17 @@ lwt () = (fun () -> OBus_object.remove_by_path bus ["fr"; "krobot"; "Devices"; "Compass"]; OBus_object.remove_by_path bus ["fr"; "krobot"; "Devices"; "AX12"]; + OBus_object.remove_by_path bus ["fr"; "krobot"; "Devices"; "LCD"]; + return ()) + end; + + ignore begin + monitor_card ~name:"monitoring" ~vendor_id:PcInterface.usb_vid ~product_id:PcInterface.usb_pid_battery_monitoring ~set:set_card_monitoring + (fun card -> + lwt () = Power.OBus.export bus =|< Power.make card ["fr"; "krobot"; "Devices"; "Power"] in + return ()) + (fun () -> + OBus_object.remove_by_path bus ["fr"; "krobot"; "Devices"; "Power"]; return ()) end; diff --git a/PC_Mainboard/interface/interface.ml b/PC_Mainboard/interface/interface.ml index 8101a76..d4be097 100644 --- a/PC_Mainboard/interface/interface.ml +++ b/PC_Mainboard/interface/interface.ml @@ -632,4 +632,31 @@ let interfaces = [ Arg("message", string)] (); ]); + + Module("Power", [ + request + ~name:"get-cell-voltage" + ~code:PcInterface.cmd_get + ~args:[Cst(uint8, PcInterface.get_cell_voltage)] + ~repl:[Arg("cell-voltage", array 8 uint16)] + (); + request + ~name:"get-current" + ~code:PcInterface.cmd_get + ~args:[Cst(uint8, PcInterface.get_current)] + ~repl:[Arg("current", uint32)] + (); + request + ~name:"get-power-state" + ~code:PcInterface.cmd_get + ~args:[Cst(uint8, PcInterface.get_power_state)] + ~repl:[Arg("power-state", uint8)] + (); + request + ~name:"get-battery-state" + ~code:PcInterface.cmd_get + ~args:[Cst(uint8, PcInterface.get_battery_state)] + ~repl:[Arg("battery-state", uint8)] + (); + ]); ] hooks/post-receive -- krobot |