linux-bluetooth.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Jose Antonio Santos Cadenas <santoscadenas@gmail.com>
To: linux-bluetooth@vger.kernel.org
Cc: Jose Antonio Santos Cadenas <santoscadenas@gmail.com>
Subject: [PATCH 01/32] Add Health api description
Date: Fri,  4 Jun 2010 10:29:54 +0200	[thread overview]
Message-ID: <1275640225-4186-2-git-send-email-santoscadenas@gmail.com> (raw)
In-Reply-To: <1275640225-4186-1-git-send-email-santoscadenas@gmail.com>

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #1: Type: text/plain, Size: 7156 bytes --]

This API describes the interface shown by the Health plugin through d-bus
---
 doc/health-api.txt |  217 ++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 217 insertions(+), 0 deletions(-)
 create mode 100644 doc/health-api.txt

diff --git a/doc/health-api.txt b/doc/health-api.txt
new file mode 100644
index 0000000..83e29af
--- /dev/null
+++ b/doc/health-api.txt
@@ -0,0 +1,217 @@
+BlueZ D-Bus Health API description
+**********************************
+
+	Santiago Carot-Nemesio <sancane@gmail.com>
+	José Antonio Santos-Cadenas <santoscadenas@gmail.com>
+	Elvis Pfützenreuter <epx@signove.com>
+
+Health Device Profile hierarchy
+===============================
+
+Service		org.bluez
+Interface	org.bluez.HealthAdapter
+Object path	[variable prefix]/{hci0,hci1,...}
+
+Methods:
+
+	uint32	CreateInstance(object path, dict config)
+
+		Returns the id of the new created instance. The path parameter
+		is the path of the remote object with the callbacks to notify
+		events (see org.bluez.HealthAgent at the end of this document)
+		This petition starts an mcap instance and also register in the
+		SDP if is needed.
+
+		Dict is defined as bellow:
+		{ "data_spec" : The data_spec is the data exchange specification
+				(see section 5.2.10 of the specification
+				document) possible values:
+					0x00 = reserved,
+					0x01 [IEEE 11073-20601],
+					0x02..0xff reserved,
+				(optional)
+		  "end_points" : [{ (optional)
+			"mdepid" : uint8, (optional)
+			"role" : ("source" or "sink"), (mandatory)
+			"specs" :[{ (mandatory)
+				"data_type" : uint16, (mandatory)
+				"description" : string, (optional)
+			}]
+		  }]
+		}
+
+		if "data_spec" is not set, no SDP record will be registered, so
+		all the other data in the dictionary will be ignored.
+
+		Instance will be closed by the call or implicitly when the
+		programs leaves the bus.
+
+		Possible errors: org.bluez.Error.InvalidArguments
+
+	void	CloseInstance(uint32 )
+
+		Closes the HDP instance identified by the object path. Also
+		instance will be closed if the process that started leaves the
+		bus. If there is a SDP record associated to this instance it
+		will be removed.
+
+		Possible errors: org.bluez.Error.InvalidArguments
+				org.bluez.Error.NotFound
+
+--------------------------------------------------------------------------------
+
+Service		org.bluez
+Interface	org.bluez.HealthDevice
+Object path	[variable prefix]/{hci0,hci1,...}/dev_XX_XX_XX_XX_XX_XX
+
+Methods:
+
+	array GetHealthInstances()
+
+		Gets the information of the remote instances present in this
+		device and published on its SDP record. The returned data
+		follows this format.
+
+		[{"id": uint32,
+		  "data_spec" : data spec,
+		  "end_points":
+			["mdepid": uint8,
+			 "role"  : "source" or "sink" ,
+			 "specs" : [{
+				"dtype"       : uint16,
+				"description" : string, (optional)
+			 }]
+			]
+		}];
+
+	object Connect(uint32 local_instance_id, uint32 remote_instance_id)
+
+		Connects the local instance with the remote instance and returns
+		the path of the HealthLink object. You should get the remote
+		instance id running GetHealthInstances.
+
+		Only the bus client that created the local session will be able
+		to create connections using it.
+
+		Possible errors: org.bluez.Error.InvalidArguments
+				org.bluez.Error.HealthError
+
+	void Disconnect(object link, boolean cache)
+
+		Disconnect from the link. If cache is false, state will also be
+		deleted. Otherwise, the state will be kept for allowing future
+		reconnections until the adapter holding the local session is
+		removed.
+
+		Possible errors: org.bluez.Error.InvalidArguments
+				org.bluez.Error.NotFound
+				org.bluez.Error.HealthError
+
+--------------------------------------------------------------------------------
+
+Service		org.bluez
+Interface	org.bluez.HealthLink
+Object path	[variable prefix]/{hci0,hci1,...}/{hdp0,hdp1,...}/rem_inst_id
+
+Methods:
+
+	boolean Echo(array{byte})
+
+		Sends an echo petition to the remote intance. Returns True if
+		response matches with the buffer sent. If some error is detected
+		False value is returned and the associated MCL is closed.
+
+	uint16 OpenDataChannel(byte mdepid, byte config)
+
+		Creates a new data channel with the indicated config to the
+		remote MCAP Data End Point (MDEP).
+		The configuration should indicate the channel quality of
+		service. In the current version of HDP, valid values are 0x01
+		for reliable channels and 0x02 for streaming data channel.
+
+		Returns the data channel id.
+
+		Possible errors: org.bluez.Error.InvalidArguments
+				org.bluez.Error.HealthError
+
+	array GetDataChannelFileDescriptor(uint16 mdlid)
+
+		Gets a file descriptor where data can be read or
+		written for receive or sent by the data channel.
+		Returns an array of file descriptors one for write
+		and other for read.
+
+		Possible errors: org.bluez.Error.InvalidArguments
+				org.bluez.Error.NotFound
+				org.bluez.Error.HealthError
+
+	void DeleteDataChannel(uint16 mdlid)
+
+		Deletes a data channel so it will not be available for
+		use.
+
+		Possible errors: org.bluez.Error.InvalidArguments
+				org.bluez.Error.NotFound
+				org.bluez.Error.HealthError
+
+	void DeleteAllDataChannels()
+
+		Deletes all data channels so it will not be available
+		for use. Typically this function is called when the
+		connection with the remote device will be closed
+		permanently
+
+		Possible errors: org.bluez.Error.HealthError
+
+	dict GetDataChannelStatus()
+
+		Return a dictionary with all the data channels that
+		can be used to send data right now. The dictionary
+		is formed like follows:
+		{
+			"reliable": [mdlid_r1, mdlid_r2, ...],
+			"streaming" : [mdlid_s1, mdlid_s2, ...]
+		}
+
+		The fist reliable data channel will always be the first
+		data channel in reliable array.
+
+HealthAgent hierarchy
+=====================
+
+(this object is implemented by the HDP user in order to receive notifications)
+
+Service		unique name
+Interface	org.bluez.HealthAgent
+Object path	freely definable
+
+Methods:
+
+	void LinkConnected(object path)
+
+		This method is called whenever a new connection has been
+		established over the control channel of the current HDP
+		instance. The object path paremeter contains the object path of
+		the created HealthLink.
+
+	void LinkDisconnected(object path)
+
+		This method is called when a remote device is disconnected
+		definitively. Any future reconnections will fail. Also all data
+		channels associated to this device will be closed.
+
+	void CreatedDataChannel(object path, uint16 mdlid, byte conf)
+
+		This method is called when a new data channel is created
+
+		The path contains the object path of the HealthLink where the
+		new connection is created, the mdlid is the data channel
+		identificator and conf is the que quality of service of the data
+		channel (0x01 reliable, 0x02 streaming).
+
+	void DeletedDataChannel(object path, uint16 mdlid)
+
+		This method is called when a data channel is closed.
+
+		After this call the data channel id will not be valid and can be
+		reused for future created data channels.
-- 
1.6.3.3


  reply	other threads:[~2010-06-04  8:29 UTC|newest]

Thread overview: 34+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2010-06-04  8:29 [PATCH 00/32] Health Device Prifile (HDP) -- updated Jose Antonio Santos Cadenas
2010-06-04  8:29 ` Jose Antonio Santos Cadenas [this message]
2010-06-04  8:29   ` [PATCH 02/32] Initial support for HDP Jose Antonio Santos Cadenas
2010-06-04  8:29     ` [PATCH 03/32] Add functions to resiger health instances in SDP Jose Antonio Santos Cadenas
2010-06-04  8:29       ` [PATCH 04/32] Initial support for hdp_device_drivers Jose Antonio Santos Cadenas
2010-06-04  8:29         ` [PATCH 05/32] Register healt_driver interfaces in d-bus Jose Antonio Santos Cadenas
2010-06-04  8:29           ` [PATCH 06/32] Add delete instance petition Jose Antonio Santos Cadenas
2010-06-04  8:30             ` [PATCH 07/32] Add watcher to control client disconections to delete hdp instance Jose Antonio Santos Cadenas
2010-06-04  8:30               ` [PATCH 08/32] Work in getting remote SDP records Jose Antonio Santos Cadenas
2010-06-04  8:30                 ` [PATCH 09/32] Adds functions to get remote suported features from its SDP record Jose Antonio Santos Cadenas
2010-06-04  8:30                   ` [PATCH 10/32] Insert end_point in array returned by get_health_instances Jose Antonio Santos Cadenas
2010-06-04  8:30                     ` [PATCH 11/32] Initial support for connecting instances Jose Antonio Santos Cadenas
2010-06-04  8:30                       ` [PATCH 12/32] Complete the response dictionary in GetHealthInstances response Jose Antonio Santos Cadenas
2010-06-04  8:30                         ` [PATCH 13/32] Implement connection of health instances Jose Antonio Santos Cadenas
2010-06-04  8:30                           ` [PATCH 14/32] Manage mcap instances Jose Antonio Santos Cadenas
2010-06-04  8:30                             ` [PATCH 15/32] Implement connect MCL callback in health instances connection Jose Antonio Santos Cadenas
2010-06-04  8:30                               ` [PATCH 16/32] Register Health link int the bus when MCL is connected Jose Antonio Santos Cadenas
2010-06-04  8:30                                 ` [PATCH 17/32] Analize remote record looking for psm Jose Antonio Santos Cadenas
2010-06-04  8:30                                   ` [PATCH 18/32] Unify the creation of health links Jose Antonio Santos Cadenas
2010-06-04  8:30                                     ` [PATCH 19/32] Remove hdp_device pointer from health link struct Jose Antonio Santos Cadenas
2010-06-04  8:30                                       ` [PATCH 20/32] Release health link resources Jose Antonio Santos Cadenas
2010-06-04  8:30                                         ` [PATCH 21/32] Manage mcap disconnections and reconnections Jose Antonio Santos Cadenas
2010-06-04  8:30                                           ` [PATCH 22/32] Initial work for disconnecting health links Jose Antonio Santos Cadenas
2010-06-04  8:30                                             ` [PATCH 23/32] Avoid multiple links with the same device Jose Antonio Santos Cadenas
2010-06-04  8:30                                               ` [PATCH 24/32] Disconnect health link petition Jose Antonio Santos Cadenas
2010-06-04  8:30                                                 ` [PATCH 25/32] Create new structure to manage data channels in HDP Jose Antonio Santos Cadenas
2010-06-04  8:30                                                   ` [PATCH 26/32] Implement connect data channel callback Jose Antonio Santos Cadenas
2010-06-04  8:30                                                     ` [PATCH 27/32] Change function name when retreiving remote SDP records Jose Antonio Santos Cadenas
2010-06-04  8:30                                                       ` [PATCH 28/32] Changed HEALTH_MANAGER_INTERFACE to HEALTH_MANAGER Jose Antonio Santos Cadenas
2010-06-04  8:30                                                         ` [PATCH 29/32] Call the agent when a new Health Link is created Jose Antonio Santos Cadenas
2010-06-04  8:30                                                           ` [PATCH 30/32] Add a test that creates a simple health agent Jose Antonio Santos Cadenas
2010-06-04  8:30                                                             ` [PATCH 31/32] Send MCL disconnect callback to agents Jose Antonio Santos Cadenas
2010-06-04  8:30                                                               ` [PATCH 32/32] Add support for mcl reconnections Jose Antonio Santos Cadenas
  -- strict thread matches above, loose matches on Subject: below --
2010-06-02 13:18 [PATCH 00/32] Health device profile (HDP) Jose Antonio Santos Cadenas
2010-06-02 13:18 ` [PATCH 01/32] Add Health api description Jose Antonio Santos Cadenas

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1275640225-4186-2-git-send-email-santoscadenas@gmail.com \
    --to=santoscadenas@gmail.com \
    --cc=linux-bluetooth@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).