2010-09-20 15:41:35 +08:00
|
|
|
|
Bluetooth Management API
|
|
|
|
|
*************************
|
|
|
|
|
|
|
|
|
|
Copyright (C) 2008-2009 Marcel Holtmann <marcel@holtmann.org>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Packet Structures
|
|
|
|
|
=================
|
|
|
|
|
|
|
|
|
|
Commands:
|
|
|
|
|
|
2011-02-24 01:39:21 +08:00
|
|
|
|
0 4 8 12 16 22 24 28 31 35 39 43 47
|
|
|
|
|
+-------------------+-------------------+-------------------+
|
|
|
|
|
| Command Code | Controller Index | Parameter Length |
|
|
|
|
|
+-------------------+-------------------+-------------------+
|
|
|
|
|
| |
|
2010-09-20 15:41:35 +08:00
|
|
|
|
|
|
|
|
|
Events:
|
|
|
|
|
|
2011-02-24 01:39:21 +08:00
|
|
|
|
0 4 8 12 16 22 24 28 31 35 39 43 47
|
|
|
|
|
+-------------------+-------------------+-------------------+
|
|
|
|
|
| Event Code | Controller Index | Parameter Length |
|
|
|
|
|
+-------------------+-------------------+-------------------+
|
|
|
|
|
| |
|
|
|
|
|
|
2012-01-19 17:52:30 +08:00
|
|
|
|
All fields are in little-endian byte order (least significant byte first).
|
|
|
|
|
|
2011-02-24 01:39:21 +08:00
|
|
|
|
Controller Index can have a special value <non-controller> to indicate that
|
|
|
|
|
command or event is not related to any controller. Possible values:
|
|
|
|
|
|
|
|
|
|
<controller id> 0x0000 to 0xFFFE
|
|
|
|
|
<non-controller> 0xFFFF
|
2010-09-20 15:41:35 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Read Management Version Information Command
|
|
|
|
|
===========================================
|
|
|
|
|
|
|
|
|
|
Command Code: 0x0001
|
2011-02-24 01:39:21 +08:00
|
|
|
|
Controller Index: <non-controller>
|
2010-09-20 15:41:35 +08:00
|
|
|
|
Command Parameters:
|
2010-11-02 03:24:23 +08:00
|
|
|
|
Return Parameters: Version (1 Octets)
|
2010-09-20 15:41:35 +08:00
|
|
|
|
Revision (2 Octets)
|
|
|
|
|
|
2012-02-17 22:31:48 +08:00
|
|
|
|
This command generates a Command Complete event on success or
|
|
|
|
|
a Command Status event on failure.
|
|
|
|
|
|
2010-11-08 04:08:23 +08:00
|
|
|
|
|
2012-02-10 00:18:12 +08:00
|
|
|
|
Read Management Supported Commands Command
|
2010-09-20 15:41:35 +08:00
|
|
|
|
==========================================
|
|
|
|
|
|
|
|
|
|
Command Code: 0x0002
|
2011-02-24 01:39:21 +08:00
|
|
|
|
Controller Index: <non-controller>
|
2010-09-20 15:41:35 +08:00
|
|
|
|
Command Parameters:
|
2012-02-10 00:18:12 +08:00
|
|
|
|
Return Parameters: Num_Of_Commands (2 Octets)
|
2012-02-10 18:18:12 +08:00
|
|
|
|
Num_Of_Events (2 Octets)
|
2012-02-10 00:18:12 +08:00
|
|
|
|
Command1 (2 Octets)
|
|
|
|
|
Command2 (2 Octets)
|
|
|
|
|
...
|
|
|
|
|
Event1 (2 Octets)
|
|
|
|
|
Event2 (2 Octets)
|
|
|
|
|
...
|
|
|
|
|
|
|
|
|
|
The commands Read Management Version Information and Read
|
|
|
|
|
management Supported Commands are not included in this list.
|
|
|
|
|
Both commands are always supported and mandatory.
|
|
|
|
|
|
|
|
|
|
The events Command Status and Command Complete are not included
|
|
|
|
|
in this list. Both are implicit and mandatory.
|
2010-09-20 15:41:35 +08:00
|
|
|
|
|
2012-02-21 04:07:30 +08:00
|
|
|
|
This command generates a Command Complete event on success or
|
|
|
|
|
a Command Status event on failure.
|
|
|
|
|
|
2010-11-08 04:08:23 +08:00
|
|
|
|
|
2010-09-20 15:41:35 +08:00
|
|
|
|
Read Controller Index List Command
|
|
|
|
|
==================================
|
|
|
|
|
|
|
|
|
|
Command Code: 0x0003
|
2011-02-24 01:39:21 +08:00
|
|
|
|
Controller Index: <non-controller>
|
2010-09-20 15:41:35 +08:00
|
|
|
|
Command Parameters:
|
2011-07-19 02:00:09 +08:00
|
|
|
|
Return Parameters: Num_Controllers (2 Octets)
|
2010-09-20 15:41:35 +08:00
|
|
|
|
Controller_Index[i] (2 Octets)
|
|
|
|
|
|
2012-02-17 22:31:48 +08:00
|
|
|
|
This command generates a Command Complete event on success or
|
|
|
|
|
a Command Status event on failure.
|
|
|
|
|
|
2010-11-08 04:08:23 +08:00
|
|
|
|
|
2010-09-20 15:41:35 +08:00
|
|
|
|
Read Controller Information Command
|
|
|
|
|
===================================
|
|
|
|
|
|
|
|
|
|
Command Code: 0x0004
|
2011-02-24 01:39:21 +08:00
|
|
|
|
Controller Index: <controller id>
|
|
|
|
|
Command Parameters:
|
2011-10-24 20:14:16 +08:00
|
|
|
|
Return Parameters: Address (6 Octets)
|
2011-12-08 22:10:10 +08:00
|
|
|
|
Bluetooth_Version (1 Octet)
|
2010-11-09 03:42:58 +08:00
|
|
|
|
Manufacturer (2 Octets)
|
2011-12-08 22:10:10 +08:00
|
|
|
|
Supported_Settings (4 Octets)
|
|
|
|
|
Current_Settings (4 Octets)
|
|
|
|
|
Class_Of_Device (3 Octets)
|
2011-03-16 01:30:11 +08:00
|
|
|
|
Name (249 Octets)
|
2011-12-08 22:10:10 +08:00
|
|
|
|
Short_Name (11 Octets)
|
|
|
|
|
|
|
|
|
|
If not short name is set the Short_Name parameter will be empty
|
|
|
|
|
(begin with a nul byte).
|
|
|
|
|
|
|
|
|
|
Current_Settings & Supported_Settings is a bitmask with
|
|
|
|
|
currently the following available bits:
|
2010-09-20 15:41:35 +08:00
|
|
|
|
|
2011-10-24 20:14:16 +08:00
|
|
|
|
1 Powered
|
|
|
|
|
2 Connectable
|
2011-12-08 22:10:10 +08:00
|
|
|
|
3 Fast Connectable
|
|
|
|
|
4 Discoverable
|
|
|
|
|
5 Pairable
|
2011-12-14 20:10:11 +08:00
|
|
|
|
6 Link Level Security (Sec. mode 3)
|
|
|
|
|
7 Secure Simple Pairing
|
|
|
|
|
8 Basic Rate/Enhanced Data Rate
|
|
|
|
|
9 High Speed
|
|
|
|
|
10 Low Energy
|
2010-09-20 15:41:35 +08:00
|
|
|
|
|
2012-02-17 22:31:48 +08:00
|
|
|
|
This command generates a Command Complete event on success or
|
|
|
|
|
a Command Status event on failure.
|
|
|
|
|
|
2010-11-08 04:08:23 +08:00
|
|
|
|
|
2010-12-23 20:38:52 +08:00
|
|
|
|
Set Powered Command
|
|
|
|
|
===================
|
2010-09-20 15:41:35 +08:00
|
|
|
|
|
|
|
|
|
Command Code: 0x0005
|
2011-02-24 01:39:21 +08:00
|
|
|
|
Controller Index: <controller id>
|
|
|
|
|
Command Parameters: Powered (1 Octet)
|
2011-12-08 22:10:10 +08:00
|
|
|
|
Return Parameters: Current_Settings (4 Octets)
|
2010-12-30 05:35:54 +08:00
|
|
|
|
|
2012-02-21 21:09:14 +08:00
|
|
|
|
If discoverable setting is activated with a timeout, then
|
|
|
|
|
switching the controller off will expire this timeout and
|
|
|
|
|
disable discoverable.
|
|
|
|
|
|
2012-02-17 22:31:48 +08:00
|
|
|
|
This command generates a Command Complete event on success or
|
|
|
|
|
a Command Status event on failure.
|
|
|
|
|
|
2010-12-30 05:35:54 +08:00
|
|
|
|
|
|
|
|
|
Set Discoverable Command
|
|
|
|
|
========================
|
|
|
|
|
|
|
|
|
|
Command Code: 0x0006
|
2011-02-24 01:39:21 +08:00
|
|
|
|
Controller Index: <controller id>
|
|
|
|
|
Command Parameters: Discoverable (1 Octet)
|
2011-10-24 20:14:53 +08:00
|
|
|
|
Timeout (2 Octets)
|
2011-12-08 22:10:10 +08:00
|
|
|
|
Return Parameters: Current_Settings (4 Octets)
|
2010-12-30 05:35:54 +08:00
|
|
|
|
|
2012-02-21 21:09:14 +08:00
|
|
|
|
Timeout is the time in seconds and is only meaningful when
|
2011-10-24 20:14:53 +08:00
|
|
|
|
Discoverable is set to 1.
|
|
|
|
|
|
2012-02-21 20:26:52 +08:00
|
|
|
|
This command can be used when the controller is not powered and
|
|
|
|
|
all settings will be programmed once powered.
|
|
|
|
|
|
|
|
|
|
However using a timeout when the controller is not powered will
|
|
|
|
|
return an error.
|
|
|
|
|
|
2012-02-21 21:09:14 +08:00
|
|
|
|
When switching discoverable on and the connectable setting is
|
|
|
|
|
off it will return an error.
|
|
|
|
|
|
2012-02-17 22:31:48 +08:00
|
|
|
|
This command generates a Command Complete event on success or
|
|
|
|
|
a Command Status event on failure.
|
|
|
|
|
|
2010-12-30 05:35:54 +08:00
|
|
|
|
|
|
|
|
|
Set Connectable Command
|
|
|
|
|
=======================
|
|
|
|
|
|
|
|
|
|
Command Code: 0x0007
|
2011-02-24 01:39:21 +08:00
|
|
|
|
Controller Index: <controller id>
|
|
|
|
|
Command Parameters: Connectable (1 Octet)
|
2011-12-08 22:10:10 +08:00
|
|
|
|
Return Parameters: Current_Settings (4 Octets)
|
2010-12-23 20:38:52 +08:00
|
|
|
|
|
2012-02-21 20:26:52 +08:00
|
|
|
|
This command can be used when the controller is not powered and
|
|
|
|
|
all settings will be programmed once powered.
|
|
|
|
|
|
2012-02-21 21:09:14 +08:00
|
|
|
|
When switching connectable off, it will also switch off the
|
2012-02-21 21:25:59 +08:00
|
|
|
|
discoverable setting. Switching connectable back on will not
|
|
|
|
|
restore a previous discoverable. It will stay off and needs
|
|
|
|
|
to be manually switched back on.
|
2012-02-21 21:09:14 +08:00
|
|
|
|
|
2012-02-21 21:25:59 +08:00
|
|
|
|
When switching connectable off, it will expire a discoverable
|
2012-02-21 21:09:14 +08:00
|
|
|
|
setting with a timeout.
|
|
|
|
|
|
2012-02-17 22:31:48 +08:00
|
|
|
|
This command generates a Command Complete event on success or
|
|
|
|
|
a Command Status event on failure.
|
|
|
|
|
|
2010-09-20 15:41:35 +08:00
|
|
|
|
|
2011-12-09 19:11:58 +08:00
|
|
|
|
Set Fast Connectable Command
|
|
|
|
|
============================
|
|
|
|
|
|
|
|
|
|
Command Code: 0x0008
|
|
|
|
|
Controller Index: <controller id>
|
|
|
|
|
Command Parameters: Enable (1 Octet)
|
|
|
|
|
Return Parameters: Current_Settings (4 Octets)
|
|
|
|
|
|
2012-02-21 20:26:52 +08:00
|
|
|
|
This command can be used when the controller is not powered and
|
|
|
|
|
all settings will be programmed once powered.
|
|
|
|
|
|
2012-02-21 21:09:14 +08:00
|
|
|
|
If connectable is not set, then this command will fail.
|
|
|
|
|
|
2012-02-17 22:31:48 +08:00
|
|
|
|
This command generates a Command Complete event on success or
|
|
|
|
|
a Command Status event on failure.
|
|
|
|
|
|
2011-12-09 19:11:58 +08:00
|
|
|
|
|
2010-12-30 21:03:57 +08:00
|
|
|
|
Set Pairable Command
|
|
|
|
|
====================
|
|
|
|
|
|
2011-12-09 19:11:58 +08:00
|
|
|
|
Command Code: 0x0009
|
2011-02-24 01:39:21 +08:00
|
|
|
|
Controller Index: <controller id>
|
|
|
|
|
Command Parameters: Pairable (1 Octet)
|
2011-12-08 22:10:10 +08:00
|
|
|
|
Return Parameters: Current_Settings (4 Octets)
|
|
|
|
|
|
2012-02-21 20:26:52 +08:00
|
|
|
|
This command can be used when the controller is not powered and
|
|
|
|
|
all settings will be programmed once powered.
|
|
|
|
|
|
2012-02-21 21:09:14 +08:00
|
|
|
|
Turning pairable on will not automatically switch the controller
|
|
|
|
|
into connectable mode. That needs to be done separately.
|
|
|
|
|
|
|
|
|
|
The setting will be remembered during power down/up toggles.
|
|
|
|
|
|
2012-02-17 22:31:48 +08:00
|
|
|
|
This command generates a Command Complete event on success or
|
|
|
|
|
a Command Status event on failure.
|
|
|
|
|
|
2011-12-08 22:10:10 +08:00
|
|
|
|
|
2011-12-14 20:10:11 +08:00
|
|
|
|
Set Link Security Command
|
|
|
|
|
=========================
|
|
|
|
|
|
|
|
|
|
Command Code: 0x000A
|
|
|
|
|
Controller Index: <controller id>
|
|
|
|
|
Command Parameters: Link_Security (1 Octet)
|
|
|
|
|
Return Parameters: Current_Settings (4 Octets)
|
|
|
|
|
|
2012-02-21 20:26:52 +08:00
|
|
|
|
This command can be used when the controller is not powered and
|
|
|
|
|
all settings will be programmed once powered.
|
|
|
|
|
|
2012-02-17 22:31:48 +08:00
|
|
|
|
This command generates a Command Complete event on success or
|
|
|
|
|
a Command Status event on failure.
|
|
|
|
|
|
2011-12-14 20:10:11 +08:00
|
|
|
|
|
2011-12-08 22:10:10 +08:00
|
|
|
|
Set Secure Simple Pairing Command
|
|
|
|
|
=================================
|
|
|
|
|
|
2011-12-14 20:10:11 +08:00
|
|
|
|
Command Code: 0x000B
|
2011-12-08 22:10:10 +08:00
|
|
|
|
Controller Index: <controller id>
|
|
|
|
|
Command Parameters: Secure_Simple_Pairing (1 Octet)
|
|
|
|
|
Return Parameters: Current_Settings (4 Octets)
|
|
|
|
|
|
2012-02-21 20:26:52 +08:00
|
|
|
|
This command can be used when the controller is not powered and
|
|
|
|
|
all settings will be programmed once powered.
|
|
|
|
|
|
|
|
|
|
In case the controller does not support Secure Simple Pairing,
|
|
|
|
|
the command will fail regardless.
|
|
|
|
|
|
2012-02-17 22:31:48 +08:00
|
|
|
|
This command generates a Command Complete event on success or
|
|
|
|
|
a Command Status event on failure.
|
|
|
|
|
|
2011-12-08 22:10:10 +08:00
|
|
|
|
|
|
|
|
|
Set High Speed Command
|
|
|
|
|
======================
|
|
|
|
|
|
2011-12-14 20:10:11 +08:00
|
|
|
|
Command Code: 0x000C
|
2011-12-08 22:10:10 +08:00
|
|
|
|
Controller Index: <controller id>
|
|
|
|
|
Command Parameters: High_Speed (1 Octet)
|
|
|
|
|
Return Parameters: Current_Settings (4 Octets)
|
|
|
|
|
|
2012-02-21 20:26:52 +08:00
|
|
|
|
This command can be used when the controller is not powered and
|
|
|
|
|
all settings will be programmed once powered.
|
|
|
|
|
|
|
|
|
|
In case the kernel subsystem does not support High Speed, the
|
|
|
|
|
command will fail regardless.
|
|
|
|
|
|
2012-02-17 22:31:48 +08:00
|
|
|
|
This command generates a Command Complete event on success or
|
|
|
|
|
a Command Status event on failure.
|
|
|
|
|
|
2011-12-08 22:10:10 +08:00
|
|
|
|
|
|
|
|
|
Set Low Energy Command
|
|
|
|
|
======================
|
|
|
|
|
|
2011-12-14 20:10:11 +08:00
|
|
|
|
Command Code: 0x000D
|
2011-12-08 22:10:10 +08:00
|
|
|
|
Controller Index: <controller id>
|
|
|
|
|
Command Parameters: Low_Energy (1 Octet)
|
|
|
|
|
Return Parameters: Current_Settings (4 Octets)
|
2010-12-30 21:03:57 +08:00
|
|
|
|
|
2012-02-21 20:26:52 +08:00
|
|
|
|
This command can be used when the controller is not powered and
|
|
|
|
|
all settings will be programmed once powered.
|
|
|
|
|
|
|
|
|
|
In case the kernel subsystem does not support Low Energy or the
|
|
|
|
|
controller does not either, the command will fail regardless.
|
|
|
|
|
|
2012-02-17 22:31:48 +08:00
|
|
|
|
This command generates a Command Complete event on success or
|
|
|
|
|
a Command Status event on failure.
|
|
|
|
|
|
2011-10-25 04:48:14 +08:00
|
|
|
|
|
2011-12-14 20:10:11 +08:00
|
|
|
|
Set Device Class
|
2011-01-04 04:17:32 +08:00
|
|
|
|
================
|
|
|
|
|
|
2011-12-09 19:11:58 +08:00
|
|
|
|
Command Code: 0x000E
|
2011-02-24 01:39:21 +08:00
|
|
|
|
Controller Index: <controller id>
|
2011-12-14 20:10:11 +08:00
|
|
|
|
Command Parameters: Major_Class (1 Octet)
|
|
|
|
|
Minor_Class (1 Octet)
|
2011-12-08 22:10:10 +08:00
|
|
|
|
Return Parameters: Class_Of_Device (3 Octets)
|
2011-01-04 04:17:32 +08:00
|
|
|
|
|
2011-12-14 20:10:11 +08:00
|
|
|
|
This command will also implicitly disable caching of pending CoD
|
|
|
|
|
and EIR updates.
|
2010-11-08 04:08:23 +08:00
|
|
|
|
|
2012-02-23 04:03:22 +08:00
|
|
|
|
This command can be used when the controller is not powered and
|
|
|
|
|
all settings will be programmed once powered.
|
|
|
|
|
|
|
|
|
|
In case the controller is powered off, 0x000000 will be returned
|
|
|
|
|
for the class of device parameter. And after power on the new
|
|
|
|
|
value will be announced via class of device changed event.
|
|
|
|
|
|
2012-02-17 22:31:48 +08:00
|
|
|
|
This command generates a Command Complete event on success or
|
|
|
|
|
a Command Status event on failure.
|
|
|
|
|
|
2011-12-15 05:03:35 +08:00
|
|
|
|
|
|
|
|
|
Set Local Name Command
|
|
|
|
|
======================
|
|
|
|
|
|
|
|
|
|
Command Code: 0x000F
|
|
|
|
|
Controller Index: <controller id>
|
|
|
|
|
Command Parameters: Name (249 Octets)
|
|
|
|
|
Short_Name (11 Octets)
|
|
|
|
|
Return Parameters: Name (249 Octets)
|
|
|
|
|
Short_Name (11 Octets)
|
|
|
|
|
|
|
|
|
|
The name parameters need to always end with a nul byte (failure
|
|
|
|
|
to do so will cause the command to fail).
|
|
|
|
|
|
2012-02-23 03:51:42 +08:00
|
|
|
|
This command can be used when the controller is not powered and
|
|
|
|
|
all settings will be programmed once powered.
|
|
|
|
|
|
|
|
|
|
The values of name and short name will be remembered when
|
|
|
|
|
switching the controller off and back on again. So the name
|
|
|
|
|
and short name only have to be set once when a new controller
|
|
|
|
|
is found and will stay until removed.
|
|
|
|
|
|
2012-02-17 22:31:48 +08:00
|
|
|
|
This command generates a Command Complete event on success or
|
|
|
|
|
a Command Status event on failure.
|
|
|
|
|
|
2011-12-15 05:03:35 +08:00
|
|
|
|
|
2011-12-14 20:10:11 +08:00
|
|
|
|
Add UUID Command
|
2011-01-15 05:14:13 +08:00
|
|
|
|
================
|
|
|
|
|
|
2011-12-15 05:03:35 +08:00
|
|
|
|
Command Code: 0x0010
|
2011-02-24 01:39:21 +08:00
|
|
|
|
Controller Index: <controller id>
|
2011-12-14 20:10:11 +08:00
|
|
|
|
Command Parameters: UUID (16 Octets)
|
|
|
|
|
SVC_Hint (1 Octet)
|
2011-12-08 22:10:10 +08:00
|
|
|
|
Return Parameters: Class_Of_Device (3 Octets)
|
2011-01-15 05:14:13 +08:00
|
|
|
|
|
2012-02-23 04:25:19 +08:00
|
|
|
|
|
2012-02-23 04:03:22 +08:00
|
|
|
|
This command can be used when the controller is not powered and
|
|
|
|
|
all settings will be programmed once powered.
|
|
|
|
|
|
|
|
|
|
In case the controller is powered off, 0x000000 will be returned
|
|
|
|
|
for the class of device parameter. And after power on the new
|
|
|
|
|
value will be announced via class of device changed event.
|
|
|
|
|
|
2012-02-17 22:31:48 +08:00
|
|
|
|
This command generates a Command Complete event on success or
|
|
|
|
|
a Command Status event on failure.
|
|
|
|
|
|
2011-01-15 05:14:13 +08:00
|
|
|
|
|
2011-12-14 20:10:11 +08:00
|
|
|
|
Remove UUID Command
|
|
|
|
|
===================
|
2011-01-15 05:14:13 +08:00
|
|
|
|
|
2011-12-15 05:03:35 +08:00
|
|
|
|
Command Code: 0x0011
|
2011-02-24 01:39:21 +08:00
|
|
|
|
Controller Index: <controller id>
|
2011-12-14 20:10:11 +08:00
|
|
|
|
Command Parameters: UUID (16 Octets)
|
2011-12-09 19:11:58 +08:00
|
|
|
|
Return Parameters: Class_Of_Device (3 Octets)
|
2011-01-15 05:14:13 +08:00
|
|
|
|
|
2012-02-23 04:25:19 +08:00
|
|
|
|
When the UUID parameter is an empty UUID (16 x 0x00), then all
|
|
|
|
|
previously loaded UUIDs will be removed.
|
|
|
|
|
|
2012-02-23 04:03:22 +08:00
|
|
|
|
This command can be used when the controller is not powered and
|
|
|
|
|
all settings will be programmed once powered.
|
|
|
|
|
|
|
|
|
|
In case the controller is powered off, 0x000000 will be returned
|
|
|
|
|
for the class of device parameter. And after power on the new
|
|
|
|
|
value will be announced via class of device changed event.
|
|
|
|
|
|
2012-02-17 22:31:48 +08:00
|
|
|
|
This command generates a Command Complete event on success or
|
|
|
|
|
a Command Status event on failure.
|
|
|
|
|
|
2011-01-15 05:14:13 +08:00
|
|
|
|
|
2011-10-24 20:24:53 +08:00
|
|
|
|
Load Link Keys Command
|
|
|
|
|
======================
|
2011-01-21 10:49:42 +08:00
|
|
|
|
|
2011-12-15 05:03:35 +08:00
|
|
|
|
Command Code: 0x0012
|
2011-02-24 01:39:21 +08:00
|
|
|
|
Controller Index: <controller id>
|
|
|
|
|
Command Parameters: Debug_Keys (1 Octet)
|
2011-01-21 10:49:42 +08:00
|
|
|
|
Key_Count (2 Octets)
|
|
|
|
|
Key1 {
|
|
|
|
|
Address (6 Octets)
|
2012-02-17 19:41:14 +08:00
|
|
|
|
Address_Type (1 Octet)
|
2012-02-06 18:03:11 +08:00
|
|
|
|
Key_Type (1 Octet)
|
2011-01-21 10:49:42 +08:00
|
|
|
|
Value (16 Octets)
|
|
|
|
|
PIN_Length (1 Octet)
|
|
|
|
|
}
|
|
|
|
|
Key2 { }
|
|
|
|
|
...
|
2011-07-19 02:00:09 +08:00
|
|
|
|
Return Parameters:
|
2011-01-21 10:49:42 +08:00
|
|
|
|
|
2012-02-23 04:03:22 +08:00
|
|
|
|
This command can be used when the controller is not powered.
|
|
|
|
|
|
2012-02-21 04:15:06 +08:00
|
|
|
|
This command generates a Command Complete event on success or
|
|
|
|
|
a Command Status event on failure.
|
2012-02-17 22:31:48 +08:00
|
|
|
|
|
2011-01-21 10:49:42 +08:00
|
|
|
|
|
2012-02-02 05:14:28 +08:00
|
|
|
|
Load Long Term Keys Command
|
|
|
|
|
===========================
|
|
|
|
|
|
|
|
|
|
Command Code: 0x0013
|
|
|
|
|
Controller Index: <controller id>
|
|
|
|
|
Command Parameters: Key Count (2 Octets)
|
|
|
|
|
Key1 {
|
|
|
|
|
Address (6 Octets)
|
2012-02-06 18:03:11 +08:00
|
|
|
|
Address_Type (1 Octet)
|
2012-02-02 05:14:28 +08:00
|
|
|
|
Authenticated (1 Octet)
|
|
|
|
|
Master (1 Octet)
|
|
|
|
|
Encryption Size (1 Octet)
|
|
|
|
|
Enc. Diversifier (2 Octets)
|
|
|
|
|
Random Number (8 Octets)
|
|
|
|
|
Value (16 Octets)
|
|
|
|
|
}
|
|
|
|
|
Key2 { }
|
|
|
|
|
...
|
|
|
|
|
|
2012-02-23 04:43:04 +08:00
|
|
|
|
This command can be used when the controller is not powered.
|
|
|
|
|
|
2012-02-21 04:15:06 +08:00
|
|
|
|
This command generates a Command Complete event on success or
|
|
|
|
|
a Command Status event on failure.
|
2012-02-17 22:31:48 +08:00
|
|
|
|
|
2012-02-02 05:14:28 +08:00
|
|
|
|
|
2011-01-21 16:05:24 +08:00
|
|
|
|
Disconnect Command
|
|
|
|
|
==================
|
|
|
|
|
|
2012-02-06 18:03:11 +08:00
|
|
|
|
Command Code: 0x0014
|
2011-02-24 01:39:21 +08:00
|
|
|
|
Controller Index: <controller id>
|
|
|
|
|
Command Parameters: Address (6 Octets)
|
2012-02-06 18:03:11 +08:00
|
|
|
|
Address_Type (1 Octet)
|
2011-07-19 02:00:09 +08:00
|
|
|
|
Return Parameters: Address (6 Octets)
|
2012-02-06 18:03:11 +08:00
|
|
|
|
Address_Type (1 Octet)
|
2011-01-21 16:05:24 +08:00
|
|
|
|
|
2012-02-23 04:43:04 +08:00
|
|
|
|
This command can only be used when the controller is powered.
|
|
|
|
|
|
2012-02-17 22:31:48 +08:00
|
|
|
|
This command generates a Command Complete event on success
|
|
|
|
|
or failure.
|
|
|
|
|
|
2011-10-25 04:48:14 +08:00
|
|
|
|
|
2011-01-21 19:55:44 +08:00
|
|
|
|
Get Connections Command
|
|
|
|
|
=======================
|
|
|
|
|
|
2012-02-06 18:03:11 +08:00
|
|
|
|
Command Code: 0x0015
|
2011-02-24 01:39:21 +08:00
|
|
|
|
Controller Index: <controller id>
|
|
|
|
|
Command Parameters:
|
2011-07-19 02:00:09 +08:00
|
|
|
|
Return Parameters: Connection_Count (2 Octets)
|
2011-11-07 19:21:13 +08:00
|
|
|
|
Address1 {
|
|
|
|
|
Address (6 Octets)
|
2012-02-06 18:03:11 +08:00
|
|
|
|
Address_Type (1 Octet)
|
2011-11-07 19:21:13 +08:00
|
|
|
|
}
|
|
|
|
|
Address2 { }
|
2011-01-21 19:55:44 +08:00
|
|
|
|
...
|
|
|
|
|
|
2012-02-06 18:03:11 +08:00
|
|
|
|
Possible values for the Address_Type parameter:
|
2011-11-07 19:21:13 +08:00
|
|
|
|
0 BR/EDR
|
2011-12-08 22:10:10 +08:00
|
|
|
|
1 LE Public
|
|
|
|
|
2 LE Random
|
2011-11-07 19:21:13 +08:00
|
|
|
|
|
2012-02-23 04:43:04 +08:00
|
|
|
|
This command can only be used when the controller is powered.
|
|
|
|
|
|
2012-02-21 04:07:30 +08:00
|
|
|
|
This command generates a Command Complete event on success or
|
|
|
|
|
a Command Status event on failure.
|
2012-02-17 22:31:48 +08:00
|
|
|
|
|
2011-10-25 04:48:14 +08:00
|
|
|
|
|
2011-01-24 17:50:34 +08:00
|
|
|
|
PIN Code Reply Command
|
|
|
|
|
=======================
|
|
|
|
|
|
2012-02-06 18:03:11 +08:00
|
|
|
|
Command Code: 0x0016
|
2011-02-24 01:39:21 +08:00
|
|
|
|
Controller Index: <controller id>
|
2012-02-17 21:55:37 +08:00
|
|
|
|
Command Parameters: Address (6 Octets)
|
2012-02-17 19:41:14 +08:00
|
|
|
|
Address_Type (1 Octet)
|
2011-01-24 17:50:34 +08:00
|
|
|
|
PIN_Length (1 Octet)
|
|
|
|
|
PIN_Code (16 Octets)
|
2012-02-17 21:55:37 +08:00
|
|
|
|
Return Parameters: Address (6 Octets)
|
|
|
|
|
Address_Type (1 Octet)
|
2011-01-24 17:50:34 +08:00
|
|
|
|
|
2012-02-23 04:43:04 +08:00
|
|
|
|
This command can only be used when the controller is powered.
|
|
|
|
|
|
2012-02-17 22:31:48 +08:00
|
|
|
|
This command generates a Command Complete event on success
|
|
|
|
|
or failure.
|
|
|
|
|
|
2011-01-24 17:50:34 +08:00
|
|
|
|
|
|
|
|
|
PIN Code Negative Reply Command
|
|
|
|
|
===============================
|
|
|
|
|
|
2012-02-06 18:03:11 +08:00
|
|
|
|
Command Code: 0x0017
|
2011-02-24 01:39:21 +08:00
|
|
|
|
Controller Index: <controller id>
|
2012-02-17 21:55:37 +08:00
|
|
|
|
Command Parameters: Address (6 Octets)
|
|
|
|
|
Address_Type (1 Octet)
|
2011-07-19 02:00:09 +08:00
|
|
|
|
Return Parameters: Address (6 Octets)
|
2012-02-17 19:41:14 +08:00
|
|
|
|
Address_Type (1 Octet)
|
2011-01-21 19:55:44 +08:00
|
|
|
|
|
2012-02-23 04:43:04 +08:00
|
|
|
|
This command can only be used when the controller is powered.
|
|
|
|
|
|
2012-02-17 22:31:48 +08:00
|
|
|
|
This command generates a Command Complete event on success
|
|
|
|
|
or failure.
|
|
|
|
|
|
2011-01-21 16:05:24 +08:00
|
|
|
|
|
2011-01-25 19:45:24 +08:00
|
|
|
|
Set IO Capability Command
|
|
|
|
|
=========================
|
|
|
|
|
|
2012-02-06 18:03:11 +08:00
|
|
|
|
Command Code: 0x0018
|
2011-02-24 01:39:21 +08:00
|
|
|
|
Controller Index: <controller id>
|
|
|
|
|
Command Parameters: IO_Capability (1 Octet)
|
2011-07-19 02:00:09 +08:00
|
|
|
|
Return Parameters:
|
2011-01-25 19:45:24 +08:00
|
|
|
|
|
2012-02-23 04:03:22 +08:00
|
|
|
|
This command can be used when the controller is not powered.
|
|
|
|
|
|
2012-02-21 04:15:06 +08:00
|
|
|
|
This command generates a Command Complete event on success or
|
|
|
|
|
a Command Status event on failure.
|
2012-02-17 22:31:48 +08:00
|
|
|
|
|
2011-01-25 19:45:24 +08:00
|
|
|
|
|
2011-02-09 03:13:20 +08:00
|
|
|
|
Pair Device Command
|
|
|
|
|
===================
|
|
|
|
|
|
2012-02-06 18:03:11 +08:00
|
|
|
|
Command Code: 0x0019
|
2011-02-24 01:39:21 +08:00
|
|
|
|
Controller Index: <controller id>
|
|
|
|
|
Command Parameters: Address (6 Octets)
|
2011-11-11 05:22:32 +08:00
|
|
|
|
Address_Type (1 Octet)
|
2011-02-09 03:13:20 +08:00
|
|
|
|
IO_Capability (1 Octet)
|
2011-07-19 02:00:09 +08:00
|
|
|
|
Return Parameters: Address (6 Octets)
|
2011-11-11 05:22:32 +08:00
|
|
|
|
Address_Type (1 Octet)
|
2011-02-09 03:13:20 +08:00
|
|
|
|
|
2011-11-11 05:22:32 +08:00
|
|
|
|
Possible values for the Address_Type parameter:
|
|
|
|
|
0 BR/EDR
|
|
|
|
|
1 LE Public
|
|
|
|
|
2 LE Random
|
|
|
|
|
|
2012-02-23 04:43:04 +08:00
|
|
|
|
This command can only be used when the controller is powered.
|
|
|
|
|
|
2012-02-17 22:31:48 +08:00
|
|
|
|
This command generates a Command Complete event on success
|
|
|
|
|
or failure.
|
|
|
|
|
|
2011-02-09 03:13:20 +08:00
|
|
|
|
|
2012-02-02 05:12:22 +08:00
|
|
|
|
Cancel Pair Device
|
|
|
|
|
==================
|
|
|
|
|
|
|
|
|
|
|
2012-02-06 18:03:11 +08:00
|
|
|
|
Command Code: 0x001A
|
2012-02-02 05:12:22 +08:00
|
|
|
|
Controller Index: <controller id>
|
|
|
|
|
Command Parameters: Address (6 Octets)
|
|
|
|
|
Address_Type (1 Octet)
|
|
|
|
|
Return Parameters: Address (6 Octets)
|
|
|
|
|
Address_Type (1 Octet)
|
|
|
|
|
|
|
|
|
|
The Address and Address_Type parameters should match what was
|
|
|
|
|
given to a preceding Pair Device command.
|
|
|
|
|
|
2012-02-23 04:43:04 +08:00
|
|
|
|
This command can only be used when the controller is powered.
|
|
|
|
|
|
2012-02-17 22:31:48 +08:00
|
|
|
|
This command generates a Command Complete event on success
|
|
|
|
|
or failure.
|
|
|
|
|
|
2012-02-02 05:12:22 +08:00
|
|
|
|
|
2012-02-06 18:03:11 +08:00
|
|
|
|
Unpair Device Command
|
|
|
|
|
=====================
|
|
|
|
|
|
|
|
|
|
Command Code: 0x001B
|
|
|
|
|
Controller Index: <controller id>
|
|
|
|
|
Command Parameters: Address (6 Octets)
|
|
|
|
|
Address_Type (1 Octet)
|
|
|
|
|
Disconnect (1 Octet)
|
|
|
|
|
Return Parameters: Address (6 Octets)
|
|
|
|
|
Address_Type (1 Octet)
|
|
|
|
|
|
|
|
|
|
Removes all keys associated with the remote device.
|
|
|
|
|
|
2012-02-17 22:31:48 +08:00
|
|
|
|
The Disconnect parameter tells the kernel whether to forcefully
|
2012-02-17 21:57:37 +08:00
|
|
|
|
disconnect any existing connections to the device. It should in
|
|
|
|
|
practice always be 1 except for some special GAP qualification
|
|
|
|
|
test-cases where a key removal without disconnecting is needed.
|
|
|
|
|
|
2012-02-23 04:43:04 +08:00
|
|
|
|
This command can only be used when the controller is powered.
|
|
|
|
|
|
2012-02-17 22:31:48 +08:00
|
|
|
|
This command generates a Command Complete event on success
|
|
|
|
|
or failure.
|
|
|
|
|
|
2012-02-06 18:03:11 +08:00
|
|
|
|
|
2011-02-17 04:46:20 +08:00
|
|
|
|
User Confirmation Reply Command
|
|
|
|
|
===============================
|
|
|
|
|
|
2012-02-02 05:14:28 +08:00
|
|
|
|
Command Code: 0x001C
|
2011-02-24 01:39:21 +08:00
|
|
|
|
Controller Index: <controller id>
|
|
|
|
|
Command Parameters: Address (6 Octets)
|
2012-02-06 18:03:11 +08:00
|
|
|
|
Address_Type (1 Octet)
|
2011-07-19 02:00:09 +08:00
|
|
|
|
Return Parameters: Address (6 Octets)
|
2012-02-06 18:03:11 +08:00
|
|
|
|
Address_Type (1 Octet)
|
2011-02-17 04:46:20 +08:00
|
|
|
|
|
2012-02-23 04:43:04 +08:00
|
|
|
|
This command can only be used when the controller is powered.
|
|
|
|
|
|
2012-02-17 22:31:48 +08:00
|
|
|
|
This command generates a Command Complete event on success
|
|
|
|
|
or failure.
|
|
|
|
|
|
2011-02-17 04:46:20 +08:00
|
|
|
|
|
|
|
|
|
User Confirmation Negative Reply Command
|
|
|
|
|
========================================
|
|
|
|
|
|
2012-02-02 05:14:28 +08:00
|
|
|
|
Command Code: 0x001D
|
2011-02-24 01:39:21 +08:00
|
|
|
|
Controller Index: <controller id>
|
|
|
|
|
Command Parameters: Address (6 Octets)
|
2012-02-06 18:03:11 +08:00
|
|
|
|
Address_Type (1 Octet)
|
2011-07-19 02:00:09 +08:00
|
|
|
|
Return Parameters: Address (6 Octets)
|
2012-02-06 18:03:11 +08:00
|
|
|
|
Address_Type (1 Octet)
|
2011-02-17 04:46:20 +08:00
|
|
|
|
|
2012-02-23 04:43:04 +08:00
|
|
|
|
This command can only be used when the controller is powered.
|
|
|
|
|
|
2012-02-17 22:31:48 +08:00
|
|
|
|
This command generates a Command Complete event on success
|
|
|
|
|
or failure.
|
|
|
|
|
|
2011-10-24 20:25:34 +08:00
|
|
|
|
|
|
|
|
|
User Passkey Reply Command
|
|
|
|
|
==========================
|
|
|
|
|
|
2012-02-02 05:14:28 +08:00
|
|
|
|
Command Code: 0x001E
|
2011-10-24 20:25:34 +08:00
|
|
|
|
Controller Index: <controller id>
|
|
|
|
|
Command Parameters: Address (6 Octets)
|
2012-02-06 18:03:11 +08:00
|
|
|
|
Address_Type (1 Octet)
|
2011-10-24 20:25:34 +08:00
|
|
|
|
Passkey (4 Octets)
|
|
|
|
|
Return Parameters: Address (6 Octets)
|
2012-02-06 18:03:11 +08:00
|
|
|
|
Address_Type (1 Octet)
|
2011-10-24 20:25:34 +08:00
|
|
|
|
|
2012-02-23 04:43:04 +08:00
|
|
|
|
This command can only be used when the controller is powered.
|
|
|
|
|
|
2012-02-17 22:31:48 +08:00
|
|
|
|
This command generates a Command Complete event on success
|
|
|
|
|
or failure.
|
|
|
|
|
|
2011-10-24 20:25:34 +08:00
|
|
|
|
|
|
|
|
|
User Passkey Negative Reply Command
|
|
|
|
|
===================================
|
|
|
|
|
|
2012-02-02 05:14:28 +08:00
|
|
|
|
Command Code: 0x001F
|
2011-10-24 20:25:34 +08:00
|
|
|
|
Controller Index: <controller id>
|
|
|
|
|
Command Parameters: Address (6 Octets)
|
2012-02-06 18:03:11 +08:00
|
|
|
|
Address_Type (1 Octet)
|
2011-10-24 20:25:34 +08:00
|
|
|
|
Return Parameters: Address (6 Octets)
|
2012-02-06 18:03:11 +08:00
|
|
|
|
Address_Type (1 Octet)
|
2011-10-24 20:25:34 +08:00
|
|
|
|
|
2012-02-23 04:43:04 +08:00
|
|
|
|
This command can only be used when the controller is powered.
|
|
|
|
|
|
2012-02-17 22:31:48 +08:00
|
|
|
|
This command generates a Command Complete event on success
|
|
|
|
|
or failure.
|
|
|
|
|
|
2011-10-25 04:48:14 +08:00
|
|
|
|
|
2011-03-26 19:27:10 +08:00
|
|
|
|
Read Local Out Of Band Data Command
|
2011-12-14 20:10:11 +08:00
|
|
|
|
===================================
|
2011-03-26 19:27:10 +08:00
|
|
|
|
|
2012-02-02 05:14:28 +08:00
|
|
|
|
Command Code: 0x0020
|
2011-03-26 19:27:10 +08:00
|
|
|
|
Controller Index: <controller id>
|
|
|
|
|
Command Parameters:
|
2011-07-19 02:00:09 +08:00
|
|
|
|
Return Parameters: Hash (16 Octets)
|
2011-03-26 19:27:10 +08:00
|
|
|
|
Randomizer (16 Octets)
|
|
|
|
|
|
2012-02-23 04:43:04 +08:00
|
|
|
|
This command can only be used when the controller is powered.
|
|
|
|
|
|
2012-02-21 04:07:30 +08:00
|
|
|
|
This command generates a Command Complete event on success or
|
|
|
|
|
a Command Status event on failure.
|
2012-02-17 22:31:48 +08:00
|
|
|
|
|
2011-03-26 19:27:10 +08:00
|
|
|
|
|
|
|
|
|
Add Remote Out Of Band Data Command
|
2011-12-14 20:10:11 +08:00
|
|
|
|
===================================
|
2011-03-26 19:27:10 +08:00
|
|
|
|
|
2012-02-02 05:14:28 +08:00
|
|
|
|
Command Code: 0x0021
|
2011-03-26 19:27:10 +08:00
|
|
|
|
Controller Index: <controller id>
|
|
|
|
|
Command Parameters: Address (6 Octets)
|
2012-02-06 18:03:11 +08:00
|
|
|
|
Address_Type (1 Octet)
|
2011-03-26 19:27:10 +08:00
|
|
|
|
Hash (16 Octets)
|
|
|
|
|
Randomizer (16 Octets)
|
2012-02-17 21:58:38 +08:00
|
|
|
|
Return Parameters: Address (6 Octets)
|
|
|
|
|
Address_Type (1 Octet)
|
2011-03-26 19:27:10 +08:00
|
|
|
|
|
2012-02-23 04:43:04 +08:00
|
|
|
|
This command can only be used when the controller is powered.
|
|
|
|
|
|
2012-02-17 22:31:48 +08:00
|
|
|
|
This command generates a Command Complete event on success
|
|
|
|
|
or failure.
|
|
|
|
|
|
2011-03-26 19:27:10 +08:00
|
|
|
|
|
|
|
|
|
Remove Remote Out Of Band Data Command
|
2012-02-23 04:03:22 +08:00
|
|
|
|
======================================
|
2011-03-26 19:27:10 +08:00
|
|
|
|
|
2012-02-02 05:14:28 +08:00
|
|
|
|
Command Code: 0x0022
|
2011-03-26 19:27:10 +08:00
|
|
|
|
Controller Index: <controller id>
|
|
|
|
|
Command Parameters: Address (6 Octets)
|
2012-02-06 18:03:11 +08:00
|
|
|
|
Address_Type (1 Octet)
|
2012-02-17 21:58:38 +08:00
|
|
|
|
Return Parameters: Address (6 Octets)
|
|
|
|
|
Address_Type (1 Octet)
|
2011-03-26 19:27:10 +08:00
|
|
|
|
|
2012-02-23 04:43:04 +08:00
|
|
|
|
This command can only be used when the controller is powered.
|
|
|
|
|
|
2012-02-17 22:31:48 +08:00
|
|
|
|
This command generates a Command Complete event on success
|
|
|
|
|
or failure.
|
|
|
|
|
|
2011-10-25 04:48:14 +08:00
|
|
|
|
|
2011-03-31 19:26:20 +08:00
|
|
|
|
Start Discovery Command
|
|
|
|
|
=======================
|
|
|
|
|
|
2012-02-06 18:03:11 +08:00
|
|
|
|
Command Code: 0x0023
|
2011-03-31 19:26:20 +08:00
|
|
|
|
Controller Index: <controller id>
|
2012-02-06 18:03:11 +08:00
|
|
|
|
Command Parameters: Address_Type (1 Octet)
|
2012-02-17 21:51:51 +08:00
|
|
|
|
Return Parameters: Address_Type (1 Octet)
|
2011-03-31 19:26:20 +08:00
|
|
|
|
|
2012-02-06 18:03:11 +08:00
|
|
|
|
Possible values for the Address_Type parameter are a bit-wise or
|
|
|
|
|
of the following bits:
|
2011-11-09 18:57:00 +08:00
|
|
|
|
|
|
|
|
|
1 BR/EDR
|
|
|
|
|
2 LE Public
|
|
|
|
|
3 LE Random
|
|
|
|
|
|
|
|
|
|
By combining these e.g. the following values are possible:
|
|
|
|
|
|
|
|
|
|
1 BR/EDR
|
|
|
|
|
6 LE (public & random)
|
|
|
|
|
7 BR/EDR/LE (interleaved discovery)
|
2011-10-25 00:09:01 +08:00
|
|
|
|
|
2012-02-23 04:43:04 +08:00
|
|
|
|
This command can only be used when the controller is powered.
|
|
|
|
|
|
2012-02-17 22:31:48 +08:00
|
|
|
|
This command generates a Command Complete event on success
|
|
|
|
|
or failure.
|
|
|
|
|
|
2011-10-25 04:48:14 +08:00
|
|
|
|
|
2011-03-31 19:26:20 +08:00
|
|
|
|
Stop Discovery Command
|
|
|
|
|
======================
|
|
|
|
|
|
2012-02-06 18:03:11 +08:00
|
|
|
|
Command Code: 0x0024
|
2011-03-31 19:26:20 +08:00
|
|
|
|
Controller Index: <controller id>
|
2012-02-21 04:19:25 +08:00
|
|
|
|
Command Parameters: Address_Type (1 Octet)
|
|
|
|
|
Return Parameters: Address_Type (1 Octet)
|
2011-03-26 19:27:10 +08:00
|
|
|
|
|
2012-02-23 04:43:04 +08:00
|
|
|
|
This command can only be used when the controller is powered.
|
|
|
|
|
|
2012-02-17 22:31:48 +08:00
|
|
|
|
This command generates a Command Complete event on success
|
|
|
|
|
or failure.
|
|
|
|
|
|
2011-10-25 04:48:14 +08:00
|
|
|
|
|
2011-12-14 20:10:11 +08:00
|
|
|
|
Confirm Name Command
|
2011-06-15 17:02:03 +08:00
|
|
|
|
====================
|
|
|
|
|
|
2012-02-06 18:03:11 +08:00
|
|
|
|
Command Code: 0x0025
|
2011-06-15 17:02:03 +08:00
|
|
|
|
Controller Index: <controller id>
|
|
|
|
|
Command Parameters: Address (6 Octets)
|
2012-02-17 19:41:14 +08:00
|
|
|
|
Address_Type (1 Octet)
|
2011-12-14 20:10:11 +08:00
|
|
|
|
Name_Known (1 Octet)
|
2011-12-19 20:14:30 +08:00
|
|
|
|
Return Parameters: Address (6 Octets)
|
2012-02-17 19:41:14 +08:00
|
|
|
|
Address_Type (1 Octet)
|
2011-12-14 20:10:11 +08:00
|
|
|
|
|
|
|
|
|
This command is only valid during device discovery and is
|
|
|
|
|
expected for each Device Found event with the Confirm Name
|
|
|
|
|
flag set.
|
2011-06-15 17:02:03 +08:00
|
|
|
|
|
2012-02-23 04:43:04 +08:00
|
|
|
|
This command can only be used when the controller is powered.
|
|
|
|
|
|
2012-02-17 22:31:48 +08:00
|
|
|
|
This command generates a Command Complete event on success
|
|
|
|
|
or failure.
|
|
|
|
|
|
2011-10-25 04:48:14 +08:00
|
|
|
|
|
2011-12-14 20:10:11 +08:00
|
|
|
|
Block Device Command
|
|
|
|
|
====================
|
2011-06-15 17:02:03 +08:00
|
|
|
|
|
2012-02-06 18:03:11 +08:00
|
|
|
|
Command Code: 0x0026
|
2011-10-24 18:56:55 +08:00
|
|
|
|
Controller Index: <controller id>
|
2011-12-09 19:11:58 +08:00
|
|
|
|
Command Parameters: Address (6 Octets)
|
2012-02-06 18:03:11 +08:00
|
|
|
|
Address_Type (1 Octet)
|
2012-02-17 22:00:31 +08:00
|
|
|
|
Return Parameters: Address (6 Octets)
|
|
|
|
|
Address_Type (1 Octet)
|
2011-06-17 17:44:13 +08:00
|
|
|
|
|
2012-02-23 04:03:22 +08:00
|
|
|
|
This command can be used when the controller is not powered.
|
|
|
|
|
|
2012-02-17 22:31:48 +08:00
|
|
|
|
This command generates a Command Complete event on success
|
|
|
|
|
or failure.
|
|
|
|
|
|
2011-10-25 04:48:14 +08:00
|
|
|
|
|
2011-12-14 20:10:11 +08:00
|
|
|
|
Unblock Device Command
|
|
|
|
|
======================
|
2011-10-24 18:16:18 +08:00
|
|
|
|
|
2012-02-06 18:03:11 +08:00
|
|
|
|
Command Code: 0x0027
|
2011-10-24 18:16:18 +08:00
|
|
|
|
Controller Index: <controller id>
|
2011-12-14 20:10:11 +08:00
|
|
|
|
Command Parameters: Address (6 Octets)
|
2012-02-06 18:03:11 +08:00
|
|
|
|
Address_Type (1 Octet)
|
2012-02-17 22:00:31 +08:00
|
|
|
|
Return Parameters: Address (6 Octets)
|
|
|
|
|
Address_Type (1 Octet)
|
2011-10-24 18:16:18 +08:00
|
|
|
|
|
2012-02-23 04:03:22 +08:00
|
|
|
|
This command can be used when the controller is not powered.
|
|
|
|
|
|
2012-02-17 22:31:48 +08:00
|
|
|
|
This command generates a Command Complete event on success
|
|
|
|
|
or failure.
|
|
|
|
|
|
|
|
|
|
|
2012-02-21 07:05:56 +08:00
|
|
|
|
Set Device ID Command
|
|
|
|
|
=====================
|
|
|
|
|
|
|
|
|
|
Command Code: 0x0028
|
|
|
|
|
Controller Index: <controller id>
|
|
|
|
|
Command Parameters: Source (2 Octets)
|
|
|
|
|
Vendor (2 Octets)
|
|
|
|
|
Product (2 Octets)
|
|
|
|
|
Version (2 Octets)
|
|
|
|
|
Return Parameters:
|
|
|
|
|
|
2012-02-21 20:26:52 +08:00
|
|
|
|
This command can be used when the controller is not powered and
|
|
|
|
|
all settings will be programmed once powered.
|
|
|
|
|
|
2012-02-21 07:05:56 +08:00
|
|
|
|
The Source parameter selects the organization that assigned the
|
|
|
|
|
Vendor parameter:
|
|
|
|
|
|
|
|
|
|
0x0000 Disable Device ID
|
|
|
|
|
0x0001 Bluetooth SIG
|
|
|
|
|
0x0002 USB Implementer’s Forum
|
|
|
|
|
|
|
|
|
|
The information are put into the EIR data. If the controller does
|
|
|
|
|
not support EIR or if SSP is disabled, this command will still
|
|
|
|
|
succeed. The information are stored for later use and will survive
|
|
|
|
|
toggling SSP on and off.
|
|
|
|
|
|
|
|
|
|
This command generates a Command Complete event on success or
|
|
|
|
|
a Command Status event on failure.
|
|
|
|
|
|
2011-10-25 04:48:14 +08:00
|
|
|
|
|
2010-09-20 15:41:35 +08:00
|
|
|
|
Command Complete Event
|
|
|
|
|
======================
|
|
|
|
|
|
|
|
|
|
Event Code 0x0001
|
2011-02-24 01:39:21 +08:00
|
|
|
|
Controller Index: <controller id> or <non-controller>
|
2010-11-08 04:08:23 +08:00
|
|
|
|
Event Parameters Command_Opcode (2 Octets)
|
2012-02-17 21:53:16 +08:00
|
|
|
|
Status (1 Octet)
|
2010-09-20 15:41:35 +08:00
|
|
|
|
Return_Parameters
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Command Status Event
|
|
|
|
|
====================
|
|
|
|
|
|
|
|
|
|
Event Code 0x0002
|
2011-02-24 01:39:21 +08:00
|
|
|
|
Controller Index: <controller id> or <non-controller>
|
2012-02-17 22:01:09 +08:00
|
|
|
|
Event Parameters Command_Opcode (2 Octets)
|
|
|
|
|
Status (1 Octet)
|
2010-09-20 15:41:35 +08:00
|
|
|
|
|
|
|
|
|
Controller Error Event
|
|
|
|
|
======================
|
|
|
|
|
|
|
|
|
|
Event Code 0x0003
|
2011-02-24 01:39:21 +08:00
|
|
|
|
Controller Index: <controller id>
|
2010-11-08 04:08:23 +08:00
|
|
|
|
Event Parameters Error_Code (1 Octet)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Index Added Event
|
|
|
|
|
=================
|
|
|
|
|
|
|
|
|
|
Event Code 0x0004
|
2011-02-24 01:39:21 +08:00
|
|
|
|
Controller Index: <controller id>
|
|
|
|
|
Event Parameters
|
2010-11-08 04:08:23 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Index Removed Event
|
|
|
|
|
===================
|
|
|
|
|
|
|
|
|
|
Event Code 0x0005
|
2011-02-24 01:39:21 +08:00
|
|
|
|
Controller Index: <controller id>
|
|
|
|
|
Event Parameters
|
2010-12-16 06:41:41 +08:00
|
|
|
|
|
2011-10-25 04:48:14 +08:00
|
|
|
|
|
2011-12-08 22:10:10 +08:00
|
|
|
|
New Settings Event
|
|
|
|
|
==================
|
2010-12-16 06:41:41 +08:00
|
|
|
|
|
|
|
|
|
Event Code 0x0006
|
2011-02-24 01:39:21 +08:00
|
|
|
|
Controller Index: <controller id>
|
2011-12-08 22:10:10 +08:00
|
|
|
|
Event Parameters: Current_Settings (4 Octets)
|
2011-01-21 10:49:42 +08:00
|
|
|
|
|
2011-10-25 04:48:14 +08:00
|
|
|
|
|
2011-12-09 19:11:58 +08:00
|
|
|
|
Class Of Device Changed Event
|
|
|
|
|
=============================
|
|
|
|
|
|
|
|
|
|
Event Code 0x0007
|
|
|
|
|
Controller Index: <controller id>
|
|
|
|
|
Event Parameters: Class_Of_Device (3 Octets)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Local Name Changed Event
|
|
|
|
|
========================
|
|
|
|
|
|
|
|
|
|
Event Code 0x0008
|
|
|
|
|
Controller Index <controller id>
|
|
|
|
|
Event Parameters Name (249 Octets)
|
|
|
|
|
Short_Name (11 Octets)
|
|
|
|
|
|
|
|
|
|
|
2011-10-24 20:24:53 +08:00
|
|
|
|
New Link Key Event
|
|
|
|
|
==================
|
2011-01-21 10:49:42 +08:00
|
|
|
|
|
2011-12-09 19:11:58 +08:00
|
|
|
|
Event Code 0x0009
|
2011-02-24 01:39:21 +08:00
|
|
|
|
Controller Index: <controller id>
|
|
|
|
|
Event Parameters Key {
|
2011-01-21 10:49:42 +08:00
|
|
|
|
Address (6 Octets)
|
2012-02-17 19:41:14 +08:00
|
|
|
|
Address_Type (1 Octet)
|
2012-02-06 18:03:11 +08:00
|
|
|
|
Key_Type (1 Octet)
|
2011-01-21 10:49:42 +08:00
|
|
|
|
Value (16 Octets)
|
|
|
|
|
PIN_Length (1 Octet)
|
|
|
|
|
}
|
2011-01-21 13:03:02 +08:00
|
|
|
|
|
2011-10-25 04:48:14 +08:00
|
|
|
|
|
2012-02-02 06:31:59 +08:00
|
|
|
|
New Long Term Key Event
|
|
|
|
|
=======================
|
|
|
|
|
|
|
|
|
|
Event Code 0x000A
|
|
|
|
|
Controller Index <controller id>
|
|
|
|
|
Event Parameters Store Hint (1 Octet)
|
|
|
|
|
Key {
|
|
|
|
|
Address (6 Octets)
|
2012-02-06 18:03:11 +08:00
|
|
|
|
Address_Type (1 Octet)
|
2012-02-02 06:31:59 +08:00
|
|
|
|
Authenticated (1 Octet)
|
|
|
|
|
Master (1 Octet)
|
|
|
|
|
Encryption Size (1 Octet)
|
|
|
|
|
Enc. Diversifier (2 Octets)
|
|
|
|
|
Random Number (8 Octets)
|
|
|
|
|
Value (16 Octets)
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
2011-01-21 13:03:02 +08:00
|
|
|
|
Device Connected Event
|
|
|
|
|
======================
|
|
|
|
|
|
2012-02-02 06:31:59 +08:00
|
|
|
|
Event Code 0x000B
|
2011-02-24 01:39:21 +08:00
|
|
|
|
Controller Index: <controller id>
|
|
|
|
|
Event Parameters Address (6 Octets)
|
2012-02-06 18:03:11 +08:00
|
|
|
|
Address_Type (1 Octet)
|
2012-01-16 17:48:28 +08:00
|
|
|
|
EIR_Data_Length (2 Octets)
|
|
|
|
|
EIR_Data (0-65535 Octets)
|
2011-10-24 20:25:58 +08:00
|
|
|
|
|
2012-02-06 18:03:11 +08:00
|
|
|
|
Possible values for the Address_Type parameter:
|
2011-10-24 20:25:58 +08:00
|
|
|
|
0 BR/EDR
|
2011-11-09 18:57:00 +08:00
|
|
|
|
1 LE Public
|
|
|
|
|
2 LE Random
|
2011-10-24 20:25:58 +08:00
|
|
|
|
|
2011-01-21 13:03:02 +08:00
|
|
|
|
|
|
|
|
|
Device Disconnected Event
|
|
|
|
|
=========================
|
|
|
|
|
|
2012-02-02 06:31:59 +08:00
|
|
|
|
Event Code 0x000C
|
2011-02-24 01:39:21 +08:00
|
|
|
|
Controller Index: <controller id>
|
|
|
|
|
Event Parameters Address (6 Octets)
|
2012-02-17 19:41:02 +08:00
|
|
|
|
Address_Type (1 Octet)
|
2011-10-24 20:25:58 +08:00
|
|
|
|
|
2012-02-06 18:03:11 +08:00
|
|
|
|
Possible values for the Address_Type parameter:
|
2011-10-24 20:25:58 +08:00
|
|
|
|
0 BR/EDR
|
2011-11-09 18:57:00 +08:00
|
|
|
|
1 LE Public
|
|
|
|
|
2 LE Random
|
2011-10-24 20:25:58 +08:00
|
|
|
|
|
2011-01-21 16:57:09 +08:00
|
|
|
|
|
|
|
|
|
Connect Failed Event
|
|
|
|
|
====================
|
|
|
|
|
|
2012-02-02 06:31:59 +08:00
|
|
|
|
Event Code 0x000D
|
2011-02-24 01:39:21 +08:00
|
|
|
|
Controller Index: <controller id>
|
|
|
|
|
Event Parameters Address (6 Octets)
|
2012-02-06 18:03:11 +08:00
|
|
|
|
Address_Type (1 Octet)
|
2011-01-21 16:57:09 +08:00
|
|
|
|
Status (1 Octet)
|
2011-01-24 17:50:34 +08:00
|
|
|
|
|
2012-02-17 19:41:02 +08:00
|
|
|
|
Possible values for the Address_Type parameter:
|
2011-11-07 19:21:13 +08:00
|
|
|
|
0 BR/EDR
|
2011-11-09 18:57:00 +08:00
|
|
|
|
1 LE Public
|
|
|
|
|
2 LE Random
|
2011-10-25 04:48:14 +08:00
|
|
|
|
|
2011-12-09 19:11:58 +08:00
|
|
|
|
|
2011-01-24 17:50:34 +08:00
|
|
|
|
PIN Code Request Event
|
|
|
|
|
======================
|
|
|
|
|
|
2012-02-02 06:31:59 +08:00
|
|
|
|
Event Code 0x000E
|
2011-02-24 01:39:21 +08:00
|
|
|
|
Controller Index: <controller id>
|
|
|
|
|
Event Parameters Address (6 Octets)
|
2012-02-17 19:41:14 +08:00
|
|
|
|
Address_Type (1 Octet)
|
2011-04-28 18:50:46 +08:00
|
|
|
|
Secure (1 Octet)
|
2011-02-17 04:46:20 +08:00
|
|
|
|
|
2011-05-04 16:54:00 +08:00
|
|
|
|
Secure: 0x01 secure PIN code required
|
|
|
|
|
0x00 secure PIN code not required
|
2011-02-17 04:46:20 +08:00
|
|
|
|
|
2011-10-25 04:48:14 +08:00
|
|
|
|
|
2011-02-17 04:46:20 +08:00
|
|
|
|
User Confirmation Request Event
|
|
|
|
|
===============================
|
|
|
|
|
|
2012-02-02 06:31:59 +08:00
|
|
|
|
Event Code 0x000F
|
2011-02-24 01:39:21 +08:00
|
|
|
|
Controller Index: <controller id>
|
|
|
|
|
Event Parameters Address (6 Octets)
|
2012-02-06 18:03:11 +08:00
|
|
|
|
Address_Type (1 Octet)
|
2011-02-17 04:46:20 +08:00
|
|
|
|
Value (4 Octets)
|
2011-02-19 03:52:59 +08:00
|
|
|
|
|
2011-10-25 04:48:14 +08:00
|
|
|
|
|
2011-10-24 20:25:34 +08:00
|
|
|
|
User Passkey Request Event
|
|
|
|
|
==========================
|
|
|
|
|
|
2012-02-02 06:31:59 +08:00
|
|
|
|
Event Code 0x0010
|
2011-10-24 20:25:34 +08:00
|
|
|
|
Controller Index: <controller id>
|
|
|
|
|
Event Parameters Address (6 Octets)
|
2012-02-06 18:03:11 +08:00
|
|
|
|
Address_Type (1 Octet)
|
2011-02-19 03:52:59 +08:00
|
|
|
|
|
2011-10-25 04:48:14 +08:00
|
|
|
|
|
2011-02-19 03:52:59 +08:00
|
|
|
|
Authentication Failed Event
|
|
|
|
|
===========================
|
|
|
|
|
|
2012-02-02 06:31:59 +08:00
|
|
|
|
Event Code 0x0011
|
2011-02-24 01:39:21 +08:00
|
|
|
|
Controller Index: <controller id>
|
|
|
|
|
Event Parameters Address (6 Octets)
|
2012-02-06 18:03:11 +08:00
|
|
|
|
Address_Type (1 Octet)
|
2011-02-19 03:52:59 +08:00
|
|
|
|
Status (1 Octet)
|
2011-03-16 01:31:15 +08:00
|
|
|
|
|
2011-10-25 04:48:14 +08:00
|
|
|
|
|
2011-03-30 18:21:25 +08:00
|
|
|
|
Device Found Event
|
|
|
|
|
==================
|
|
|
|
|
|
2012-02-02 06:31:59 +08:00
|
|
|
|
Event Code 0x0012
|
2011-03-30 18:21:25 +08:00
|
|
|
|
Controller Index <controller id>
|
|
|
|
|
Event Parameters Address (6 Octets)
|
2012-02-06 18:03:11 +08:00
|
|
|
|
Address_Type (1 Octet)
|
2011-03-30 18:21:25 +08:00
|
|
|
|
RSSI (1 Octet)
|
2012-01-13 19:59:49 +08:00
|
|
|
|
Flags (4 Octets)
|
2012-01-16 17:48:28 +08:00
|
|
|
|
EIR_Data_Length (2 Octets)
|
|
|
|
|
EIR_Data (0-65535 Octets)
|
2011-03-30 18:21:25 +08:00
|
|
|
|
|
2012-02-06 18:03:11 +08:00
|
|
|
|
Possible values for the Address_Type parameter:
|
2011-10-24 20:25:58 +08:00
|
|
|
|
0 BR/EDR
|
2011-11-09 18:57:00 +08:00
|
|
|
|
1 LE Public
|
|
|
|
|
2 LE Random
|
2011-10-24 20:25:58 +08:00
|
|
|
|
|
2012-01-13 19:59:49 +08:00
|
|
|
|
The following bits are defined for the Flags parameter:
|
|
|
|
|
0 Confirm name
|
|
|
|
|
1 Legacy Pairing
|
2011-03-31 19:36:43 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Discovering Event
|
|
|
|
|
=================
|
|
|
|
|
|
2012-02-06 18:03:11 +08:00
|
|
|
|
Event Code 0x0013
|
2011-03-31 19:36:43 +08:00
|
|
|
|
Controller Index <controller id>
|
2012-02-21 04:19:25 +08:00
|
|
|
|
Event Parameters Address_Type (1 Octet)
|
|
|
|
|
Discovering (1 Octet)
|
2011-09-23 16:57:02 +08:00
|
|
|
|
|
2011-10-25 04:48:14 +08:00
|
|
|
|
|
2011-09-23 16:57:02 +08:00
|
|
|
|
Device Blocked Event
|
|
|
|
|
====================
|
|
|
|
|
|
2012-02-06 18:03:11 +08:00
|
|
|
|
Event Code 0x0014
|
2011-09-23 16:57:02 +08:00
|
|
|
|
Controller Index <controller id>
|
|
|
|
|
Event Parameters Address (6 Octets)
|
2012-02-06 18:03:11 +08:00
|
|
|
|
Address_Type (1 Octet)
|
2011-09-23 16:57:02 +08:00
|
|
|
|
|
2011-10-25 04:48:14 +08:00
|
|
|
|
|
2011-09-23 16:57:02 +08:00
|
|
|
|
Device Unblocked Event
|
|
|
|
|
======================
|
|
|
|
|
|
2012-02-06 18:03:11 +08:00
|
|
|
|
Event Code 0x0015
|
|
|
|
|
Controller Index <controller id>
|
|
|
|
|
Event Parameters Address (6 Octets)
|
|
|
|
|
Address_Type (1 Octet)
|
|
|
|
|
|
|
|
|
|
|
2012-02-21 04:10:09 +08:00
|
|
|
|
Device Unpaired Event
|
|
|
|
|
=====================
|
2012-02-06 18:03:11 +08:00
|
|
|
|
|
|
|
|
|
Event Code 0x0016
|
2011-09-23 16:57:02 +08:00
|
|
|
|
Controller Index <controller id>
|
|
|
|
|
Event Parameters Address (6 Octets)
|
2012-02-06 18:03:11 +08:00
|
|
|
|
Address_Type (1 Octet)
|