diff options
Diffstat (limited to 'samples/bluetooth/tester/btp_spec.txt')
-rw-r--r-- | samples/bluetooth/tester/btp_spec.txt | 1071 |
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. |