summaryrefslogtreecommitdiffstats
path: root/hcid/dbus-api.txt
diff options
context:
space:
mode:
Diffstat (limited to 'hcid/dbus-api.txt')
-rw-r--r--hcid/dbus-api.txt247
1 files changed, 223 insertions, 24 deletions
diff --git a/hcid/dbus-api.txt b/hcid/dbus-api.txt
index 947a0536..004d48a5 100644
--- a/hcid/dbus-api.txt
+++ b/hcid/dbus-api.txt
@@ -9,11 +9,16 @@ Error hierachy
Interface org.bluez.Error
-Errors UnknownError
+Errors Failed
An unknown error occured. The error messages is
taken from the strerror(errno) function.
+ InvalidArguments
+
+ Error returned when the argument list is invalid or
+ out of specification for the method.
+
OutOfMemory
Error returned when a memory allocation via malloc()
@@ -24,6 +29,39 @@ Errors UnknownError
Error returned when the requested adapter doesn't
exists. This error is similar to ENODEV.
+ UnknownAddress
+
+ Error returned when the remote address haven't been
+ seen by a discovery procedure so far.
+
+ NotAvailable
+
+ Error returned when a specified record is not
+ available.
+
+ NotConnected
+
+ Error returned when the remote device isn't connected
+ at the moment.
+
+ ConnectionAttemptFailed
+
+ BondingAlreadyExists
+
+ BondingDoesNotExists
+
+ BondingInProgress
+
+ AuthenticationFailed
+
+ AuthenticationTimeout
+
+ AuthenticationRejected
+
+ AuthenticationCanceled
+
+ UnsupportedMajorClass
+
Manager hierarchy
=================
@@ -32,7 +70,12 @@ Service org.bluez
Interface org.bluez.Manager
Object path /org/bluez/Manager/
-Methods array{string} ListAdapters()
+Methods uint32 InterfaceVersion()
+
+ Returns the current interface version. At the moment
+ only version 0 is supported.
+
+ array{string} ListAdapters()
Returns list of object paths under /org/bluez/Adapter/
@@ -50,7 +93,7 @@ Signals void AdapterAdded(string path)
Adapter hierarchy
-================
+=================
Service org.bluez
Interface org.bluez.Adapter
@@ -62,6 +105,8 @@ Methods string GetAddress()
Example: "00:11:22:33:44:55"
+ Possible errors: none
+
string GetVersion()
Returns the version of the Bluetooth chip. This version
@@ -70,6 +115,8 @@ Methods string GetAddress()
Example: "Bluetooth 2.0 + EDR"
+ Possible errors: none
+
string GetRevision()
Returns the revision of the Bluetooth chip. This is a
@@ -78,14 +125,25 @@ Methods string GetAddress()
revision and LMP subversion values or via extra vendor
specific commands.
+ In case the revision of a chip is not available. This
+ method should return the LMP subversion value as a
+ string.
+
Example: "HCI 19.2"
+ Possible errors: none
+
string GetManufacturer()
- Returns the manufacturer of the Bluetooth chip.
+ Returns the manufacturer of the Bluetooth chip. If
+ the company id is not know the sting "Company ID %d"
+ where %d should be replaced with the numeric value
+ from the manufacturer field.
Example: "Cambridge Silicon Radio"
+ Possible errors: none
+
string GetCompany()
Returns the company name from the OUI database of the
@@ -94,14 +152,13 @@ Methods string GetAddress()
will be different from the manufacturer string in the
most cases.
- Example: "Apple Computer"
+ If the oui.txt file is not present or the OUI part of
+ the BD_ADDR is not listed, it should return the
+ string "OUI %s" where %s is the actual OUI.
- array{string} GetFeatures()
+ Example: "Apple Computer"
- Returns list of features supported by the adapter. This
- list is only for showing them in the UI. No application
- should implement different behaviors based on these
- strings.
+ Possible errors: none
string GetMode()
@@ -109,11 +166,15 @@ Methods string GetAddress()
Valid modes: "off", "connectable", "discoverable"
+ Possible errors: none
+
void SetMode(string mode)
Sets mode of the adapter. See GetMode for valid strings
for the mode parameter.
+ Possible errors: org.bluez.Error.Failed
+
uint32 GetDiscoverableTimeout()
Returns the discoverable timeout in seconds. A value
@@ -123,6 +184,8 @@ Methods string GetAddress()
The default value for the discoverable timeout should
be 180 seconds (3 minutes).
+ Possible errors: none
+
void SetDiscoverableTimeout(uint32 timeout)
Sets the discoverable timeout in seconds. A value of
@@ -132,6 +195,8 @@ Methods string GetAddress()
Changing this value doesn't set the adapter into
discoverable mode. The SetMode method must be used.
+ Possible errors: org.bluez.Error.Failed
+
boolean IsConnectable()
Returns true if the local adapter is connectable and
@@ -140,6 +205,8 @@ Methods string GetAddress()
It is also possible to use GetMode to retrieve this
information.
+ Possible errors: none
+
boolean IsDiscoverable()
Returns true if the local adapter is discoverable and
@@ -148,43 +215,85 @@ Methods string GetAddress()
It is also possible to use GetMode to retrieve this
information.
+ Possible errors: none
+
string GetMajorClass()
Returns the current major class value for this
system. This value is set to "computer" for now.
+ If the major class can't be matched by a string
+ the decimal value as string should be returned.
+
+ Possible errors: none
+
+ array{string} ListAvailableMinorClasses()
+
+ Returns a list of available minor classes for the
+ currently used major class. At the moment this should
+ only return a list of minor classes if the major
+ class is set to "computer".
+
+ If the major class is not "computer" an error should
+ be returned.
+
+ Possible errors: org.bluez.Error.UnsupportedMajorClass
+
string GetMinorClass()
Returns the current minor class value for this
system where the default major class is "computer".
+ If the major class is not "computer" an error should
+ be returned.
+
Valid values: "uncategorized", "desktop", "server",
"laptop", "handheld", "palm", "wearable"
The default value is "uncategorized".
+ Possible errors: org.bluez.Error.UnsupportedMajorClass
+
void SetMinorClass(string minor)
Sets the local minor class and on success it sends
a MinorClassChanged signal.
+ If the major class is not "computer" an error should
+ be returned.
+
+ Possible errors: org.bluez.Error.UnsupportedMajorClass
+
array{string} GetServiceClasses()
Returns the current set of service classes.
+ In the case no service classes are set (when no
+ service has been registered) an empty list should
+ be returned.
+
Valid values: "positioning", "networking", "rendering",
"capturing", "object transfer", "audio",
"telephony", "information"
+ Possible errors: none
+
string GetName()
Returns the local adapter name (friendly name) in UTF-8.
+ Possible errors: none
+
void SetName(string name)
- Sets the local adapter name. If EIR is supported by the
- local hardware this modifies also the extended response
- data value.
+ Sets the local adapter name. If EIR is supported by
+ the local hardware this modifies also the extended
+ response data value.
+
+ Possible errors: org.bluez.Error.Failed
+
+ Questions: What to do (in case of EIR) if one
+ low-level API call fails.
string GetRemoteVersion(string address)
@@ -193,8 +302,15 @@ Methods string GetAddress()
data. The base for this string is the LMP version
value and the features for EDR support.
+ In case the remote address is unknown, it should
+ return the error UnkownAddress and if the data is
+ not available it should return NotAvailable.
+
Example: "Bluetooth 2.0 + EDR"
+ Possible errors: org.bluez.Error.UnknownAddress
+ org.bluez.Error.NotAvailable
+
string GetRemoteRevision(string address)
Get the revision of the Bluetooth chip. This is a
@@ -204,12 +320,18 @@ Methods string GetAddress()
Example: "HCI 19.2"
+ Possible errors: org.bluez.Error.UnknownAddress
+ org.bluez.Error.NotAvailable
+
string GetRemoteManufacturer(string address)
Get the manufacturer of the chip for a remote device.
Example: "Nokia Mobile Phones"
+ Possible errors: org.bluez.Error.UnknownAddress
+ org.bluez.Error.NotAvailable
+
string GetRemoteCompany(string address)
Get the company name from the OUI database of the
@@ -220,27 +342,34 @@ Methods string GetAddress()
Example: "Microsoft Corporation"
+ Possible errors: org.bluez.Error.UnknownAddress
+ org.bluez.Error.NotAvailable
+
string GetRemoteName(string address)
Get adapter name for a remote device. This request
returns always a cached name. The service daemon is
responsible for updating the cache.
- If this is an empty value, then no remote name
- available at the moment. The UI should show the
- address in this case.
+ If this is an empty string, the UI might wanna
+ display the BD_ADDR instead.
Example: "00:11:22:33:44:55", "Nokia 770"
+ Possible errors: org.bluez.Error.UnknownAddress
+ org.bluez.Error.NotAvailable
+
string GetRemoteAlias(string address)
Returns alias name for remote device. If this is
- an empty value, then no alias has been defined so far.
- This is the default case and the UI should show the
+ an empty string value, the UI should show the
remote name instead.
An alias should supersede the remote name.
+ Possible errors: org.bluez.Error.UnknownAddress
+ org.bluez.Error.NotAvailable
+
void SetRemoteAlias(string address, string alias)
Sets alias name for remote device. If alias name is
@@ -251,6 +380,22 @@ Methods string GetAddress()
to update their current display of the remote device
name.
+ Possible errors: org.bluez.Error.Failed
+ org.bluez.Error.UnknownAddress
+
+ void ClearRemoteAlias(string address)
+
+ Resets alias name for remote device. If there is no
+ alias set for the device this method will silently
+ succeed, but no RemoteAliasCleared signal has to be
+ sent in this case.
+
+ On success the ClearRemoteAlias method will produce
+ a RemoteAliasCleared signal.
+
+ Possible errors: org.bluez.Error.Failed
+ org.bluez.Error.UnknownAddress
+
string LastSeen(string address)
Returns the date and time when the adapter has been
@@ -258,6 +403,8 @@ Methods string GetAddress()
Example: "2006-02-08 12:00:00 GMT"
+ Question: Can we find a better name?
+
string LastUsed(string address)
Returns the date and time of the last time when the
@@ -265,6 +412,8 @@ Methods string GetAddress()
Example: "2006-02-08 12:00:00 GMT"
+ Question: Can we find a better name?
+
void CreateBonding(string address)
This method creates a bonding with a remote device.
@@ -273,6 +422,37 @@ Methods string GetAddress()
procedure should fail instead of trying to create a
new pairing.
+ If no connection to the remote device exists, a
+ low-level ACL connection must be created.
+
+ This function will block and the calling application
+ should take care of setting are higher timeout. This
+ might be needed in case of a page timeout from the
+ low-level HCI commands.
+
+ In case of success it will send a BondingCreated
+ signal.
+
+ Possible errors: org.bluez.Error.Failed
+ org.bluez.Error.UnknownAddress
+ org.bluez.Error.BondingAlreadyExists
+ org.bluez.Error.BondingInProgress
+ org.bluez.Error.ConnectionAttemptFailed
+ org.bluez.Error.AuthenticationFailed
+ org.bluez.Error.AuthenticationTimeout
+ org.bluez.Error.AuthenticationRejected
+ org.bluez.Error.AuthenticationCanceled
+
+ void CancelBondingProcess(string address)
+
+ This method will cancel the CreateBonding process.
+
+ The CreateBonding method will return AuthenticationCanceled
+ to signal that an attempt to create a bonding has been
+ canceled.
+
+ Possible errors: org.bluez.Error.UnknownAddress
+
void RemoveBonding(string address)
This method removes the bonding with a remote device.
@@ -284,20 +464,33 @@ Methods string GetAddress()
If the link key was stored on the Bluetooth chip, it
must be removed from there, too.
+ After deleting the link key this method will send a
+ BondingRemoved signal.
+
+ Possible errors: org.bluez.Error.UnknownAddress
+ org.bluez.Error.BondingDoesNotExists
+
boolean HasBonding(string address)
Returns true if the remote device is bonded and false
if no link key is available.
+ Possible errors: org.bluez.Error.UnknownAddress
+
array{string} ListBondings()
List device addresses of currently bonded adapter.
+ Possible errors: org.bluez.Error.UnknownAddress
+
uint8 GetPinCodeLength(string address)
Returns the PIN code length that was used in the
pairing process.
+ Possible errors: org.bluez.Error.UnknownAddress
+ org.bluez.Error.BondingDoesNotExists
+
uint8 GetEncryptionKeySize(string address)
Returns the currently used encryption key size.
@@ -305,6 +498,10 @@ Methods string GetAddress()
This method will fail if no connection to that adapter
has been established.
+ Possible errors: org.bluez.Error.UnknownAddress
+ org.bluez.Error.NotConnected
+ org.bluez.Error.BondingDoesNotExists
+
Signals void ModeChanged(string mode)
If the current mode is changed with SetMode this signal
@@ -333,16 +530,18 @@ Signals void ModeChanged(string mode)
void RemoteAliasChanged(string address, string alias)
- After changing an alias with SetRemoteAlias this signal
- will indicate the new alias.
+ After changing an alias with SetRemoteAlias this
+ signal will indicate the new alias.
- void BondingCreated(string address)
+ void RemoteAliasCleared(string address)
- Signals that a successful bonding has been created.
+ After removing an alias with ClearRemoteAlias this
+ signal will indicate that the alias is no longer
+ valid.
- void BondingFailed(string address)
+ void BondingCreated(string address)
- Signals that a bonding has failed.
+ Signals that a successful bonding has been created.
void BondingRemoved(string address)