summaryrefslogtreecommitdiff
path: root/samples/bluetooth/tester/btp_spec.txt
diff options
context:
space:
mode:
Diffstat (limited to 'samples/bluetooth/tester/btp_spec.txt')
-rw-r--r--samples/bluetooth/tester/btp_spec.txt1071
1 files changed, 0 insertions, 1071 deletions
diff --git a/samples/bluetooth/tester/btp_spec.txt b/samples/bluetooth/tester/btp_spec.txt
deleted file mode 100644
index 731cf709b..000000000
--- a/samples/bluetooth/tester/btp_spec.txt
+++ /dev/null
@@ -1,1071 +0,0 @@
-Tester protocol for Bluetooth stack
-***********************************
-
-Copyright (C) 2015 Intel Corporation
-
-
-Overview
-========
-
-This document describes the format of data used for communicating between tester
-and implementation under test (IUT).
-
-The protocol is SOCK_STREAM based and follows a strict PDU specification
-with a generic header and initial registration exchange. The communication is
-driver from tester with commands/response exchange. The protocol is single PDU
-exchanged based, meaning every command requires a response. IUT will use events
-to signal notifications.
-
-Commands and events use single socket. All services are multi-plexed over same
-socket.
-
- .-- IUT --. .--Tester--.
- | | | |
- | | Command | |
- | | <-------------------------- | |
- | | | |
- | | Response | |
- | | --------------------------> | |
- | | | |
- | | Event | |
- | | --------------------------> | |
- | | | |
- '-----------' '----------'
-
-
-Packet Structures
-=================
-
-Every packet will follow the basic header to support simple multi-plexing
-over the same socket. It will also support a basic control channel with service
-id 0. Due to use of single socket for command/response and events it is
-possible that event(s) will be received before response to command.
-
- 0 8 16 24 40
- +------------+--------+------------------+-------------+
- | Service ID | Opcode | Controller Index | Data Length |
- +------------+--------+------------------+-------------+
- | |
-
-The unique service ID is assigned by this specification for each service
-supported by tester.
-
-As general rule of thumb, the opcode for command matches the opcode for a
-response. Or the opcode 0x00 for an error is returned.
-
-Events opcodes start from 0x80.
-
-All fields are in little-endian byte order (least significant byte first).
-
-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> 0x00 to 0xFE
- <non-controller> 0xFF
-
-Error response is common for all services and has fixed structure:
-
- Opcode 0x00 - Error response
-
- Response parameters: Status (1 octet)
-
- Valid status values: 0x01 = Fail
- 0x02 = Unknown Command
- 0x03 = Not ready
- 0x04 = Invalid Index
-
-Core Service (ID 0)
-===================
-
-Commands and responses:
-
- Opcode 0x00 - Error response
-
- Opcode 0x01 - Read Supported Commands command/response
-
- Controller Index: <non-controller>
- Command parameters: <none>
- Response parameters: <supported commands> (variable)
-
- Each bit in response is a flag indicating if command with
- opcode matching bit number is supported. Bit set to 1 means
- that command is supported. Bit 0 is reserved and shall always
- be set to 0. If specific bit is not present in response (less
- than required bytes received) it shall be assumed that command
- is not supported.
-
- In case of an error, the error response will be returned.
-
- Opcode 0x02 - Read Supported Services command/response
-
- Controller Index: <non-controller>
- Command parameters: <none>
- Response parameters: <supported services> (variable)
-
- Each bit in response is a flag indicating if service with ID
- matching bit number is supported. Bit set to 1 means that
- service is supported. If specific bit is not present in response
- (less than required bytes received) it shall be assumed that
- service is not supported.
-
- In case of an error, the error response will be returned.
-
- Opcode 0x03 - Register Service command/response
-
- Controller Index: <non-controller>
- Command parameters: Service ID (1 octet)
- Response parameters: <none>
-
- In case a command is sent for an undeclared service ID, it will
- be rejected. Also there will be no events for undeclared
- service ID.
-
- In case of an error, the error response will be returned.
-
- Opcode 0x04 - Unregister Service command/response
-
- Controller Index: <non-controller>
- Command parameters: Service ID (1 octet)
- Response parameters: <none>
-
- In case of an error, the error response will be returned.
-
-GAP Service (ID 1)
-==================
-
-Commands and responses:
-
- Opcode 0x00 - Error response
-
- Opcode 0x01 - Read Supported Commands command/response
-
- Controller Index: <non-controller>
- Command parameters: <none>
- Response parameters: <supported commands> (variable)
-
- Each bit in response is a flag indicating if command with
- opcode matching bit number is supported. Bit set to 1 means
- that command is supported. Bit 0 is reserved and shall always
- be set to 0. If specific bit is not present in response (less
- than required bytes received) it shall be assumed that command
- is not supported.
-
- In case of an error, the error response will be returned.
-
- Opcode 0x02 - Read Controller Index List command/response
-
- Controller Index: <non-controller>
- Command parameters: <none>
- Response parameters: Number of Controllers (1 octet)
- Controller Index[i] (1 octet)
-
- This command returns the list of controllers.
-
- In case of an error, the error response will be returned.
-
- Opcode 0x03 - Read Controller Information command/response
-
- Controller Index: <controller id>
- Command parameters: <none>
- Response parameters: Address (6 Octets)
- Supported_Settings (4 Octets)
- Current_Settings (4 Octets)
- Class_Of_Device (3 Octets)
- Name (249 Octets)
- Short_Name (11 Octets)
-
- This command is used to retrieve the current state and basic
- information of a controller. It is typically used right after
- getting the response to the Read Controller Index List command
-
- Current_Settings and Supported_Settings is a bitmask with
- currently the following available bits:
-
- 0 Powered
- 1 Connectable
- 2 Fast Connectable
- 3 Discoverable
- 4 Bondable
- 5 Link Level Security (Sec. mode 3)
- 6 Secure Simple Pairing
- 7 Basic Rate/Enhanced Data Rate
- 8 High Speed
- 9 Low Energy
- 10 Advertising
- 11 Secure Connections
- 12 Debug Keys
- 13 Privacy
- 14 Controller Configuration
- 15 Static Address
-
- In case of an error, the error response will be returned.
-
- Opcode 0x04 - Reset command/response
-
- Controller Index: <controller id>
- Command parameters: <none>
- Response parameters: Current_Settings (4 Octets)
-
- This allows to clean up any state data (eg. keys) and restore
- controller to its default system state.
-
- In case of an error, the error response will be returned.
-
- Opcode 0x05 - Set Powered command/response
-
- Controller Index: <controller id>
- Command parameters: Powered (1 octet)
- Response parameters: Current_Settings (4 Octets)
-
- Valid Powered values: 0x00 = Off
- 0x01 = On
-
- This command is used to power on or off a controller.
-
- In case of an error, the error response will be returned.
-
- Opcode 0x06 - Set Connectable command/response
-
- Controller Index: <controller id>
- Command parameters: Connectable (1 octet)
- Response parameters: Current_Settings (4 Octets)
-
- Valid Connectable values: 0x00 = Off
- 0x01 = On
-
- This command is used to set controller connectable.
-
- In case of an error, the error response will be returned.
-
- Opcode 0x07 - Set Fast Connectable command/response
-
- Controller Index: <controller id>
- Command parameters: Fast Connectable (1 octet)
- Response parameters: Current_Settings (4 Octets)
-
- Valid Fast Connectable values: 0x00 = Off
- 0x01 = On
-
- This command is used to set controller fast connectable.
- This command is only available for BR/EDR capable controllers.
-
- In case of an error, the error response will be returned.
-
- Opcode 0x08 - Set Discoverable command/response
-
- Controller Index: <controller id>
- Command parameters: Discoverable (1 octet)
- Response parameters: Current_Settings (4 Octets)
-
- Valid Discoverable values: 0x00 = Off
- 0x01 = General Discoverable
- 0x02 = Limited Discoverable
-
- This command is used to set controller discoverable.
-
- In case of an error, the error response will be returned.
-
- Opcode 0x09 - Set Bondable command/response
-
- Controller Index: <controller id>
- Command parameters: Bondable (1 octet)
- Response parameters: Current_Settings (4 Octets)
-
- Valid Bondable values: 0x00 = Off
- 0x01 = On
-
- This command is used to set controller bondable.
-
- In case of an error, the error response will be returned.
-
- Opcode 0x0a - Start Advertising command/response
-
- Controller Index: <controller id>
- Command parameters: Adv_Data_Len (1 octet)
- Scan_Rsp_len (1 octet)
- Adv_Data (0-255 octets)
- Scan_Rsp (0-255 octets)
- Return Parameters: Current_Settings (4 Octets)
-
- This command is used to start advertising.
-
- In case of an error, the error response will be returned.
-
- Opcode 0x0b - Stop Advertising command/response
-
- Controller Index: <controller id>
- Command parameters: <none>
- Return Parameters: Current_Settings (4 Octets)
-
- This command is used to stop advertising.
-
- In case of an error, the error response will be returned.
-
- Opcode 0x0c - Start Discovery command/response
-
- Controller Index: <controller id>
- Command parameters: Flags (1 octet)
- Return Parameters: <none>
-
- Possible values for the Flags parameter are a bit-wise or
- of the following bits:
- 0 = LE scan
- 1 = BR/EDR scan
- 2 = Use limited discovery procedure
-
- This command is used to start discovery.
-
- In case of an error, the error response will be returned.
-
- Opcode 0x0d - Stop Discovery command/response
-
- Controller Index: <controller id>
- Command parameters: <none>
- Return Parameters: <none>
-
- This command is used to stop discovery.
-
- In case of an error, the error response will be returned.
-
- Opcode 0x0e - Connect command/response
-
- Controller Index: <controller id>
- Command parameters: Address_Type (1 octet)
- Address (6 octets)
- Return Parameters: <none>
-
- Valid Address_Type parameter values:
- 0x00 = Public
- 0x01 = Random
-
- This command is used to create a Link Layer connection with
- remote device.
-
- In case of an error, the error response will be returned.
-
- Opcode 0x0f - Disconnect command/response
-
- Controller Index: <controller id>
- Command parameters: Address_Type (1 octet)
- Address (6 octets)
- Return Parameters: <none>
-
- Valid Address_Type parameter values:
- 0x00 = Public
- 0x01 = Random
-
- This command is used to terminate an existing connection or
- to cancel pending connection attempt.
-
- In case of an error, the error response will be returned.
-
- Opcode 0x10 - Set IO Capability command/response
-
- Controller Index: <controller id>
- Command parameters: IO_Capability (1 octet)
- Return Parameters: <none>
-
- Valid IO_Capabilities parameter values:
- 0x00 = Display Only
- 0x01 = Display Yes/No
- 0x02 = Keyboard Only
- 0x03 = No Input, No Output
- 0x04 = Keyboard Display
-
- This command is used to set IO capability.
-
- In case of an error, the error response will be returned.
-
- Opcode 0x11 - Pair command/response
-
- Controller Index: <controller id>
- Command parameters: Address_Type (1 octet)
- Address (6 octets)
- Return Parameters: <none>
-
- This command is used to initiate pairing with remote.
-
- In case of an error, the error response will be returned.
-
- Opcode 0x12 - Unpair command/response
-
- Controller Index: <controller id>
- Command parameters: Address_Type (1 octet)
- Address (6 octets)
- Return Parameters: <none>
-
- This command is used to unpair with remote.
-
- In case of an error, the error response will be returned.
-
- Opcode 0x13 - Passkey Entry Response command/response
-
- Controller Index: <controller id>
- Command parameters: Address_Type (1 octet)
- Address (6 octets)
- Passkey (4 octets)
- Return Parameters: <none>
-
- This command is used to response with passkey for pairing
- request.
-
- In case of an error, the error response will be returned.
-
- Opcode 0x14 - Passkey Confirmation Response command/response
-
- Controller Index: <controller id>
- Command parameters: Address_Type (1 octet)
- Address (6 octets)
- Match (1 octet)
- Return Parameters: <none>
-
- This command is used to response for pairing request with
- confirmation in accordance with initiator and responder
- passkey.
-
- In case of an error, the error response will be returned.
-
-Events:
- Opcode 0x80 - New Settings event
-
- Controller Index: <controller id>
- Event parameters: Current_Settings (4 octets)
-
- This event indicates that one or more of the settings for a
- controller has changed.
-
- Opcode 0x81 - Device Found event
-
- Controller Index: <controller id>
- Event parameters: Address (6 octets)
- Address_Type (1 octet)
- RSSI (1 octet)
- Flags (1 octet)
- EIR_Data_Length (2 Octets)
- EIR_Data (0-65535 Octets)
-
- Possible values for the Flags parameter are a bit-wise or
- of the following bits:
- 0 = RSSI valid
- 1 = Adv_Data included
- 2 = Scan_Rsp included
-
- This event indicates that a device was found during device
- discovery.
-
- Opcode 0x82 - Device Connected event
-
- Controller Index: <controller id>
- Event parameters: Address_Type (1 octet)
- Address (6 octets)
-
- This event indicates that a device was connected.
-
- Opcode 0x83 - Device Disconnected event
-
- Controller Index: <controller id>
- Event parameters: Address_Type (1 octet)
- Address (6 octets)
-
- This event indicates that a device was disconnected.
-
- Opcode 0x84 - Passkey Display event
-
- Controller Index: <controller id>
- Event parameters: Address_Type (1 octet)
- Address (6 octets)
- Passkey (4 octets)
-
- This event indicates that passkey was received and it needs to
- be confirmed on remote side.
-
- Opcode 0x85 - Passkey Enter Request event
-
- Controller Index: <controller id>
- Event parameters: Address_Type (1 octet)
- Address (6 octets)
-
- This event indicates that remote requests for passkey enter.
-
- Opcode 0x86 - Passkey Confirm Request event
-
- Controller Index: <controller id>
- Event parameters: Address_Type (1 octet)
- Address (6 octets)
- Passkey (4 octets)
-
- This event indicates that passkey needs to be confirmed.
-
-GATT Service (ID 2)
-===================
-
-Commands and responses:
-
- Opcode 0x00 - Error response
-
- Opcode 0x01 - Read Supported Commands command/response
-
- Controller Index: <non-controller>
- Command parameters: <none>
- Response parameters: <supported commands> (variable)
-
- Each bit in response is a flag indicating if command with
- opcode matching bit number is supported. Bit set to 1 means
- that command is supported. Bit 0 is reserved and shall always
- be set to 0. If specific bit is not present in response (less
- than required bytes received) it shall be assumed that command
- is not supported.
-
- In case of an error, the error response will be returned.
-
- Opcode 0x02 - Add Service
-
- Controller Index: <controller id>
- Command parameters: Type (1 octet)
- UUID_Length (1 octet)
- UUID (2 or 16 octets)
- Response parameters: Service_ID (2 octets)
-
- Valid Type parameter values:
- 0x00 = Primary
- 0x01 = Secondary
-
- Valid UUID_Length parameter values:
- 0x02 = UUID16
- 0x10 = UUID128
-
- This command is used to add new service to GATT Server.
- Service ID of service declaration is returned in the response.
- Attribute database shall be initiated sequentially.
- After this issuing this command tester shall add characteristics
- or included services this service contains.
-
- In case of an error, the error response will be returned.
-
- Opcode 0x03 - Add Characteristic
-
- Controller Index: <controller id>
- Command parameters: Service_ID (2 octets)
- Properties (1 octet)
- Permissions (1 octet)
- UUID_Length (1 octet)
- UUID (2 or 16 octets)
- Response parameters: Characteristic_ID (2 octets)
-
- Possible values for the Properties parameter are a bit-wise
- of the following bits:
-
- 0 Broadcast
- 1 Read
- 2 Write Without Response
- 3 Write
- 4 Notify
- 5 Indicate
- 6 Authenticated Signed Writes
- 7 Extended Properties
-
- Possible values for the Permissions parameter are a bit-wise
- of the following bits:
-
- 0 Read
- 1 Write
- 2 Read with Encryption
- 3 Write with Encryption
- 4 Read with Authentication
- 5 Write with Authentication
- 6 Authorization
-
- This command is used to add new characteristic to GATT Server.
- Characteristic ID of characteristic declaration is returned in
- the response.
- Attribute's database shall be initiated sequentially.
- After issuing this command tester can add descriptors to this
- characteristic.
-
- In case of an error, the error response will be returned.
-
- Opcode 0x04 - Add Descriptor
-
- Controller Index: <controller id>
- Command parameters: Characteristic_ID (2 octets)
- Permissions (1 octet)
- UUID_Length (1 octet)
- UUID (2 or 16 octets)
- Response parameters: Descriptor_ID (2 octets)
-
- This command is used to add new characteristic descriptor
- to GATT Server. The command shall be used right after
- Add Characteristic or previous Add Descriptor command.
-
- In case of an error, the error response will be returned.
-
- Opcode 0x05 - Add Included Service
-
- Controller Index: <controller id>
- Command parameters: Service_ID (2 octets)
- Response parameters: Included_Service_ID (2 octets)
-
- This command is used to add new included service declaration
- to GATT Server. Service that is going to be included has to be
- already added to the server. Attribute_ID of include
- declaration is returned in the response.
-
- In case of an error, the error response will be returned.
-
- Opcode 0x06 - Set Characteristic/Descriptor Value
-
- Controller Index: <controller id>
- Command parameters: Attribute_ID (2 octets)
- Value_Length (2 octet)
- Value (1-512 octets)
- Response parameters: <none>
-
- This command is used to set the value of characteristic
- or descriptor.
-
- In case of an error, the error response will be returned.
-
- Opcode 0x07 - Start Server
-
- Controller Index: <controller id>
- Command parameters: <none>
- Response parameters: <none>
-
- This command is used to start server with previously prepared
- attributes database.
- Subsequent calls of this command shall return an error.
-
- In case of an error, the error response will be returned.
-
- Opcode 0x08 - Reset Server
-
- Controller Index: <controller id>
- Command parameters: <none>
- Response parameters: <none>
-
- This command is used to clear the server from attributes.
-
- In case of an error, the error response will be returned.
-
- Opcode 0x09 - Set Required Encryption Key Size
-
- Controller Index: <controller id>
- Command parameters: Attribute_ID (2 octets)
- Encryption_Key_Size (1 octet)
- Response parameters: <none>
-
- This command is used to set required Encryption Key Size of an
- attribute. It shall be used only if encryption or authentication
- is needed to have access to this attribute. Otherwise an error
- shall be returned.
-
- Possible values for Encryption_Key_Size parameter are:
- <0x07, 0x0f>
-
- In case of an error, the error response will be returned.
-
- Opcode 0x0a -> 0x3f - Reserved for future use
-
- Opcode 0x40 - Exchange MTU
-
- Controller Index: <controller id>
- Command parameters: Address_Type (1 octet)
- Address (6 octets)
- Response parameters: <none>
-
- This command is used by GATT Client to configure ATT protocol.
- IUT is expected to send Exchange MTU Request to negotiate
- MTU size.
-
- In case of an error, the error response will be returned.
-
- Opcode 0x41 - Discover All Primary Services
-
- Controller Index: <controller id>
- Command parameters: Address_Type (1 octet)
- Address (6 octets)
- Response parameters: Services_Count (1 octet)
- [array] Service (variable)
-
- Object Service is defined as:
- Start_Handle (2 octets)
- End_Group_Handle (2 octets)
- UUID_Length (1 octet)
- UUID (2 or 16 octets)
-
- Valid UUID_Length parameter values:
- 0x02 = UUID16
- 0x10 = UUID128
-
- This procedure is used by a client to discover all primary
- services on a server.
- Services found during discovery are returned in the response.
-
- In case of an error, the error response will be returned.
-
- Opcode 0x42 - Discover Primary Service by UUID
-
- Controller Index: <controller id>
- Command parameters: Address_Type (1 octet)
- Address (6 octets)
- UUID_Length (1 octet)
- UUID (2 or 16 octets)
- Response parameters: Services_Count (1 octet)
- [array] Service (variable)
-
- Object Service is defined as:
- Start_Handle (2 octets)
- End_Group_Handle (2 octets)
- UUID_Length (1 octet)
- UUID (2 or 16 octets)
-
- Valid UUID_Length parameter values:
- 0x02 = UUID16
- 0x10 = UUID128
-
- This procedure is used by a client to discover primary services
- with specific UUID on a server.
- Services found during discovery are returned in the response.
-
- In case of an error, the error response will be returned.
-
- Opcode 0x43 - Find Included Services
-
- Controller Index: <controller id>
- Command parameters: Address_Type (1 octet)
- Address (6 octets)
- Service_Start_Handle (2 octets)
- Service_End_Handle (2 octets)
- Response parameters: Services_Count (1 octet)
- [array] Included_Service (variable)
-
- Object Included_Service is defined as:
- Included_Handle (2 octets)
- Type (1 octet)
- Service (7 or 21 octets)
-
- Valid Type parameter values:
- 0x00 = Primary
- 0x01 = Secondary
-
- Object Service is defined as:
- Start_Handle (2 octets)
- End_Group_Handle (2 octets)
- UUID_Length (1 octet)
- UUID (2 or 16 octets)
-
- Valid UUID_Length parameter values:
- 0x02 = UUID16
- 0x10 = UUID128
-
- This procedure is used by a client to discover service
- relationships to other services.
- Services found during discovery are returned in the response.
-
- Opcode 0x44 - Discover All Characteristics of a Service
-
- Controller Index: <controller id>
- Command parameters: Address_Type (1 octet)
- Address (6 octets)
- Service_Start_Handle (2 octets)
- Service_End_Handle (2 octets)
- Response parameters: Characteristics_Count (1 octet)
- [array] Characteristic (variable)
-
- Object Characteristic is defined as:
- Characteristic_Handle (2 octets)
- Value_Handle (2 octets)
- Properties (1 octet)
- UUID_Length (1 octet)
- UUID (2 or 16 octets)
-
- Valid UUID_Length parameter values:
- 0x02 = UUID16
- 0x10 = UUID128
-
- This procedure is used by a client to discover all
- characteristics within specified service range.
- Characteristics found during discovery are returned in the
- response.
-
- In case of an error, the error response will be returned.
-
- Opcode 0x45 - Discover Characteristics by UUID
-
- Controller Index: <controller id>
- Command parameters: Address_Type (1 octet)
- Address (6 octets)
- Start_Handle (2 octets)
- End_Handle (2 octets)
- UUID_Length (1 octet)
- UUID (2 or 16 octets)
- Response parameters: Characteristics_Count (1 octet)
- [array] Characteristic (variable)
-
- Object Characteristic is defined as:
- Characteristic_Handle (2 octets)
- Value_Handle (2 octets)
- Properties (1 octet)
- UUID_Length (1 octet)
- UUID (2 or 16 octets)
-
- Valid UUID_Length parameter values:
- 0x02 = UUID16
- 0x10 = UUID128
-
- This procedure is used by a client to discover characteristic
- declarations with given UUID on a server.
- Characteristics found during discovery are returned in the
- response.
-
- In case of an error, the error response will be returned.
-
- Opcode 0x46 - Discover All Characteristic Descriptors
-
- Controller Index: <controller id>
- Command parameters: Address_Type (1 octet)
- Address (6 octets)
- Start_Handle (2 octets)
- End_Handle (2 octets)
- Response parameters: Descriptors_Count (1 octet)
- [array] Descriptor (variable)
-
- Object Descriptor is defined as:
- Descriptor_Handle (2 octets)
- UUID_Length (1 octet)
- UUID (2 or 16 octets)
-
- Valid UUID_Length parameter values:
- 0x02 = UUID16
- 0x10 = UUID128
-
- This procedure is used by a client to discover all the
- characteristic descriptors contained within characteristic.
- Descriptors found during discovery are returned in the
- response.
-
- In case of an error, the error response will be returned.
-
- Opcode 0x47 - Read Characteristic Value/Descriptor
-
- Controller Index: <controller id>
- Command parameters: Address_Type (1 octet)
- Address (6 octets)
- Handle (2 octets)
- Response parameters: ATT_Response (1 octet)
- Data_Length (2 octets)
- Data (variable)
-
- This procedure is used to read a Characteristic Value or
- Characteristic Descriptor from a server.
- Read results are returned in the response to this command.
- ATT_Response shall be set to 0x00, if Read has been completed
- successfully. Otherwise it shall be set to ATT error code
- received.
-
- In case of an error, the error response will be returned.
-
- Opcode 0x48 - Read Using Characteristic UUID
-
- Controller Index: <controller id>
- Command parameters: Address_Type (1 octet)
- Address (6 octets)
- Start_Handle (2 octets)
- End_Handle (2 octets)
- UUID_Length (1 octet)
- UUID (2 or 16 octets)
- Response parameters: ATT_Response (1 octet)s
- Data_Length (2 octets)
- Data (variable)
-
- Valid UUID_Length parameter values:
- 0x02 = UUID16
- 0x10 = UUID128
-
- This procedure is used to read a Characteristic Value from a
- server when characteristic UUID is known.
- Read results are returned in the response to this command.
- ATT_Response shall be set to 0x00, if Read has been completed
- successfully. Otherwise it shall be set to ATT error code
- received.
-
- In case of an error, the error response will be returned.
-
- Opcode 0x49 - Read Long Characteristic Value/Descriptor
-
- Controller Index: <controller id>
- Command parameters: Address_Type (1 octet)
- Address (6 octets)
- Handle (2 octets)
- Offset (2 octets)
- Response parameters: ATT_Response (1 octet)
- Data_Length (2 octets)
- Data (variable)
-
- This procedure is used to read Long Characteristic Value or
- Long Characteristic Descriptor from a server.
- Read results are returned in the response to this command.
- ATT_Response shall be set to 0x00, if Read has been completed
- successfully. Otherwise it shall be set to ATT error code
- received.
-
- In case of an error, the error response will be returned.
-
- Opcode 0x4a - Read Multiple Characteristic Values
-
- Controller Index: <controller id>
- Command parameters: Address_Type (1 octet)
- Address (6 octets)
- Handles_Count (1 octet)
- Handles (variable)
- Response parameters: ATT_Response (1 octet)
- Data_Length (2 octets)
- Data (variable)
-
- This procedure is used to read multiple Characteristic Values
- from a server.
- Read results are returned in the response to this command.
- ATT_Response shall be set to 0x00, if Read has been completed
- successfully. Otherwise it shall be set to ATT error code
- received.
-
- In case of an error, the error response will be returned.
-
- Opcode 0x4b - Write Without Response
-
- Controller Index: <controller id>
- Command parameters: Address_Type (1 octet)
- Address (6 octets)
- Handle (2 octets)
- Data_Length (2 octets)
- Data (variable)
- Response parameters: <none>
-
- This procedure is used to write a Characteristic Value to a
- server. There is no acknowledgment that the write was
- successfully performed.
-
- In case of an error, the error response will be returned.
-
- Opcode 0x4c - Signed Write Without Response
-
- Controller Index: <controller id>
- Command parameters: Address_Type (1 octet)
- Address (6 octets)
- Handle (2 octets)
- Data_Length (2 octets)
- Data (variable)
- Response parameters: <none>
-
- This procedure is used to write a Characteristic Value to a
- server. There is no acknowledgment that the write was
- successfully performed. This procedure is intended to be used
- if client and server are bonded, and connected using
- non-encrypted link.
-
- In case of an error, the error response will be returned.
-
- Opcode 0x4d - Write Characteristic Value/Descriptor
-
- Controller Index: <controller id>
- Command parameters: Address_Type (1 octet)
- Address (6 octets)
- Handle (2 octets)
- Data_Length (2 octets)
- Data (variable)
- Response parameters: ATT_Response (1 octet)
-
- This procedure is used to write a Characteristic Value or
- Characteristic Descriptor to a server.
- ATT_Response shall be set to 0x00, if Write has been completed
- successfully. Otherwise it shall be set to ATT error code
- received.
-
- In case of an error, the error response will be returned.
-
- Opcode 0x4e - Write Long Characteristic Value/Descriptor
-
- Controller Index: <controller id>
- Command parameters: Address_Type (1 octet)
- Address (6 octets)
- Handle (2 octets)
- Offset (2 octets)
- Data_Length (2 octets)
- Data (variable)
- Response parameters: ATT_Response (1 octet)
-
- This procedure is used to write a Long Characteristic Value or
- Long Characteristic Descriptor to a server.
- ATT_Response shall be set to 0x00, if Write has been completed
- successfully. Otherwise it shall be set to ATT error code
- received.
-
- In case of an error, the error response will be returned.
-
- Opcode 0x4f - Reliable Write
-
- Controller Index: <controller id>
- Command parameters: Address_Type (1 octet)
- Address (6 octets)
- Handle (2 octets)
- Offset (2 octets)
- Data_Length (2 octets)
- Data (variable)
- Response parameters: ATT_Response (1 octet)
-
- This procedure is used to write a Characteristic Value to
- a server and assurance is required that the correct
- Characteristic Value is going to be written.
- ATT_Response shall be set to 0x00, if Write has been completed
- successfully. Otherwise it shall be set to ATT error code
- received.
-
- In case of an error, the error response will be returned.
-
- Opcode 0x50 - Configure Notifications
-
- Controller Index: <controller id>
- Command parameters: Address_Type (1 octet)
- Address (6 octets)
- Enable (1 octet)
- CCC_Handle (2 octets)
- Response parameters: <none>
-
- This procedure is used to configure server to notify
- characteristic value to a client.
-
- In case of an error, the error response will be returned.
-
- Opcode 0x51 - Configure Indications
-
- Controller Index: <controller id>
- Command parameters: Address_Type (1 octet)
- Address (6 octets)
- Enable (1 octet)
- CCC_Handle (2 octets)
- Response parameters: <none>
-
- This procedure is used to configure server to indicate
- characteristic value to a client.
-
- In case of an error, the error response will be returned.
-
-Events:
- Opcode 0x80 -> 0xbf - Reserved for future use
-
- Opcode 0xc0 - Notification/Indication Received
-
- Controller Index: <controller id>
- Event parameters: Address_Type (1 octet)
- Address (6 octets)
- Type (1 octet)
- Handle (2 octets)
- Data_Length (2 octets)
- Data (variable)
-
- Valid Type parameter values:
- 0x01 = Notification
- 0x02 = Indication
-
- This event indicates that IUT has received notification
- or notification.