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.HealthManager
Object path	/org/bluez/

Methods:

	object	CreateApplication(dict config)

		Returns the path of the new registered application.

		Dict is defined as below:
		{
			"DataType": uint16, (mandatory)
			"Role" : ("Source" or "Sink"), (mandatory)
			"Description" : string, (optional)
			"ChannelType" : ("Reliable" or "Streaming")
						(just for Sources, optional)
		}

		Application will be closed by the call or implicitly when the
		programs leaves the bus.

		Possible errors: org.bluez.Error.InvalidArguments

	void	DestroyApplication(object application)

		Closes the HDP application identified by the object path. Also
		application will be closed if the process that started it leaves
		the bus. Only the creator of the application will be able to
		destroy it.

		Possible errors: org.bluez.Error.InvalidArguments
				org.bluez.Error.NotFound
				org.bluez.Error.NotAllowed

--------------------------------------------------------------------------------

Service		org.bluez
Interface	org.bluez.HealthDevice
Object path	[variable prefix]/{hci0,hci1,...}/dev_XX_XX_XX_XX_XX_XX

Methods:

	dict GetProperties()

		Returns all properties for the interface. See the properties
		section for available properties.

		Posible errors: org.bluez.Error.NotAllowed

	Boolean Echo()

		Sends an echo petition to the remote service. Returns True if
		response matches with the buffer sent. If some error is detected
		False value is returned.

		Possible errors: org.bluez.Error.InvalidArguments
				org.bluez.Error.OutOfRange

	object CreateChannel(object application, string configuration)

		Creates a new data channel.
		The configuration should indicate the channel quality of
		service using one of this values "Reliable", "Streaming", "Any".

		Returns the object path that identifies the data channel that
		is already connected.

		Possible errors: org.bluez.Error.InvalidArguments
				org.bluez.Error.HealthError

	void DestroyChannel(object channel)

		Destroys the data channel object. Only the creator of the
		channel or the creator of the HealtApplication that received the
		data channel will be able to destroy it

		Possible errors: org.bluez.Error.InvalidArguments
				org.bluez.Error.NotFound
				org.bluez.Error.NotAllowed

Signals:

	void ChannelConnected(object channel)

		This signal is launched when a new data channel is created or
		when a known data channel is reconnected.

	void ChannelDeleted(object channel)

		This signal is launched when a data channel is deleted.

		After this signal the data channel path will not be valid and
		its path can be reused for future data channels.

	void PropertyChanged(string name, variant value)

		This signal indicates a changed value of the given property.

Properties:

	object MainChannel [readonly]

		The first reliable channel opened. It is needed by upper
		applications in order to send specific protocol data units. The
		first reliable can change after a reconnection.

--------------------------------------------------------------------------------

Service		org.bluez
Interface	org.bluez.HealthChannel
Object path	[variable prefix]/{hci0,hci1,...}/dev_XX_XX_XX_XX_XX_XX/chanZZZ

Only the process that created the data channel or the creator of the
HealthApplication that received it will be able to call this methods.

Methods:

	dict GetProperties()

		Returns all properties for the interface. See the properties
		section for available properties.

		Posible errors: org.bluez.Error.NotAllowed

	fd Acquire()

		Returns the file descriptor for this data channel. If the data
		channel is not connected it will also reconnect.

		Possible errors: org.bluez.Error.NotConnected
				org.bluez.Error.NotAllowed

	void Release()

		Releases the fd. Application should also need to close() it.

		Possible errors: org.bluez.Error.NotAcquired
				org.bluez.Error.NotAllowed

Properties:

	string Type [readonly]

		The quality of service of the data channel. ("Reliable" or
		"Streaming")

	object Device [readonly]

		Identifies the Remote Device that is connected with. Maps with
		a HealthDevice object.

	object Application [readonly]

		Identifies the HealthApplication to which this channel is
		related to (which indirectly defines its role and data type).