HDP API (version 0.6)

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi all,

We tried to fit a little bit more with the BlueZ API reducing the number of 
objects and centring the connection and disconnection issues in the 
HealthDevice object. As was suggested previously in the list.

Regards

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

BlueZ D-Bus Health API description
**********************************

	Santiago Carot-Nemesio <sancane@xxxxxxxxx>
	José Antonio Santos-Cadenas <santoscadenas@xxxxxxxxx>
	Elvis Pfützenreuter <epx@xxxxxxxxxxx>

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.
--
To unsubscribe from this list: send the line "unsubscribe linux-bluetooth" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [Bluez Devel]     [Linux Wireless Networking]     [Linux Wireless Personal Area Networking]     [Linux ATH6KL]     [Linux USB Devel]     [Linux Media Drivers]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [Big List of Linux Books]

  Powered by Linux