ATT Vendor Specific API¶
ATT Commands¶
All ATT commands have the following format:
Name |
Size (bytes) |
Description |
Opcode |
2 |
PDU operation code |
Connection Handle |
2 |
Connection handle of the link |
Command PDU |
Variable |
Command Parameters |
For the command parameters, please see the corresponding section below.
Note: The connection handle of 0xFFFE is considered as the loopback connection. All messages sent to this connection will be loop backed to the local host.
Events Generated
For each ATT command,when it is received, the host will send the CommandStatus Event with the Status parameter. If a command will return additional events, it will be noted in the description below.
ATT_ErrorRsp¶
- Opcode
0xFD01
- Command Description
The Error Response is used to state that a given request cannot be performed and to provide the reason.
Command Parameters
- Connection Handle
Identifies the connection.
- Size
2 byte(s)
- Default
0x0000
- Range
0x0000 to 0xFFFD
- reqOpcode
The request that generated this error response
- Size
1 byte(s)
- Default
0x01
- Range
Value
Description
0x01
ATT_ERROR_RSP
0x02
ATT_EXCHANGE_MTU_REQ
0x03
ATT_EXCHANGE_MTU_RSP
0x04
ATT_FIND_INFO_REQ
0x05
ATT_FIND_INFO_RSP
0x06
ATT_FIND_BY_TYPE_VALUE_REQ
0x07
ATT_FIND_BY_TYPE_VALUE_RSP
0x08
ATT_READ_BY_TYPE_REQ
0x09
ATT_READ_BY_TYPE_RSP
0x0A
ATT_READ_REQ
0x0B
ATT_READ_RSP
0x0C
ATT_READ_BLOB_REQ
0x0D
ATT_READ_BLOB_RSP
0x0E
ATT_READ_MULTI_REQ
0x0F
ATT_READ_MULTI_RSP
0x10
ATT_READ_BY_GRP_TYPE_REQ
0x11
ATT_READ_BY_GRP_TYPE_RSP
0x12
ATT_WRITE_REQ
0x13
ATT_WRITE_RSP
0x16
ATT_PREPARE_WRITE_REQ
0x17
ATT_PREPARE_WRITE_RSP
0x18
ATT_EXECUTE_WRITE_REQ
0x19
ATT_EXECUTE_WRITE_RSP
0x1B
ATT_HANDLE_VALUE_NOTI
0x1D
ATT_HANDLE_VALUE_IND
0x1E
ATT_HANDLE_VALUE_CFM
- handle
The attribute handle that generated this error response
- Size
2 byte(s)
- Default
0
- Range
Any 2 byte value
- errorCode
The reason why the request has generated an error response
- Size
1 byte(s)
- Default
0x80
- Range
Value
Description
0x01
INVALID_HANDLE
0x02
READ_NOT_PERMITTED
0x03
WRITE_NOT_PERMITTED
0x04
INVALID_PDU
0x05
INSUFFICIENT_AUTHEN
0x06
UNSUPPORTED_REQ
0x07
INVALID_OFFSET
0x08
INSUFFICIENT_AUTHOR
0x09
PREPARE_QUEUE_FULL
0x0a
ATTR_NOT_FOUND
0x0b
ATTR_NOT_LONG
0x0c
INSUFFICIENT_KEY_SIZE
0x0d
INVALID_VALUE_SIZE
0x0e
UNLIKELY_ERROR
0x0f
INSUFFICIENT_ENCRYPTION
0x10
UNSUPPORTED_GRP_TYPE
0x11
INSUFFICIENT_RESOURCES
0x80
INVALID_VALUE
Events Generated
This command only returns the CommandStatus event
ATT_ExchangeMTUReq¶
- Opcode
0xFD02
- Command Description
The Exchange MTU Request is used by the client to inform the server of the clients maximum receive MTU size and request the server to respond with its maximum receive MTU size is used to state that a given request cannot be performed and to provide the reason.
Command Parameters
- Connection Handle
Identifies the connection.
- Size
2 byte(s)
- Default
0x0000
- Range
0x0000 to 0xFFFD
- clientRxMTU
Attribute client receive MTU size
- Size
2 byte(s)
- Default
23
- Range
Any 2 byte value
Events Generated
The server will respond to this request with a ATT_ExchangeMTURsp.
ATT_ExchangeMTURsp¶
- Opcode
0xFD03
- Command Description
The Exchange MTU Response is sent in reply to a received Exchange MTU Request.
Command Parameters
- Connection Handle
Identifies the connection.
- Size
2 byte(s)
- Default
0x0000
- Range
0x0000 to 0xFFFD
- serverRxMTU
Attribute server receive MTU size
- Size
2 byte(s)
- Default
23
- Range
Any 2 byte value
Events Generated
This command only returns the CommandStatus event
ATT_FindInfoReq¶
- Opcode
0xFD04
- Command Description
The Find Information Request is used to obtain the mapping of attribute handles with their associated types. This allows a client to discover the list of attributes and their types on a server.
Command Parameters
- Connection Handle
Identifies the connection.
- Size
2 byte(s)
- Default
0x0000
- Range
0x0000 to 0xFFFD
- startHandle
First requested handle number
- Size
2 byte(s)
- Default
0x0001
- Range
Any 2 byte value
- endHandle
Last requested handle number
- Size
2 byte(s)
- Default
0xFFFF
- Range
Any 2 byte value
Events Generated
When this request is received, the server will send the ATT_FindInfoRsp. The client will forward all the Find Information Responses to the calling application. The response with the status of bleProcedureComplete will indicate the end of the sub-procedure. If no attributes will be returned or any of the requested parameters is invalid, the server will send an ATT_ErrorRsp.
ATT_FindInfoRsp¶
- Opcode
0xFD05
- Command Description
The Find Information Response is sent in reply to a received Find Information Request and contains information about the server.
Command Parameters
- Connection Handle
Identifies the connection.
- Size
2 byte(s)
- Default
0x0000
- Range
0x0000 to 0xFFFD
- format
The format of the information data
- Size
1 byte(s)
- Default
0x01
- Range
Value
Description
0x01
HANDLE_BT_UUID_TYPE - handle(s) and 16-bit Bluetooth UUID(s)
0x02
HANDLE_UUID_TYPE - handle(s) and 128-bit UUID(s)
- info
The information data whose format is determined by the format field
- Size
input byte(s)
- Default
“”
- Range
4 to (ATT_MTU - 2) octets
Events Generated
This command only returns the CommandStatus event
ATT_FindByTypeValueReq¶
- Opcode
0xFD06
- Command Description
The Find By Type Value Request is used to obtain the handles of attributes that have a 16-bit UUID attribute type and attribute value. This allows the range of handles associated with a given attribute to be discovered when the attribute type determines the grouping of a set of attributes.
Command Parameters
- Connection Handle
Identifies the connection.
- Size
2 byte(s)
- Default
0x0000
- Range
0x0000 to 0xFFFD
- startHandle
First requested handle number
- Size
2 byte(s)
- Default
0x0001
- Range
Any 2 byte value
- endHandle
Last requested handle number
- Size
2 byte(s)
- Default
0xFFFF
- Range
Any 2 byte value
- type
2-octet UUID to find
- Size
2 byte(s)
- Default
“00:00”
- Range
Any 2 byte value
- value
Attribute value to find
- Size
input byte(s)
- Default
“”
- Range
0 to (ATT_MTU - 7) octets
Events Generated
When this request is received, the server will send the ATT_FindByTypeValueRsp. The client will forward all the ATT_FindByTypeValueRsp events to the calling application. The response with the status of bleProcedureComplete will indicate the end of the sub-procedure. If no attributes will be returned or any of the requested parameters is invalid, the server will send an ATT_ErrorRsp.
ATT_FindByTypeValueRsp¶
- Opcode
0xFD07
- Command Description
The Find By Type Value Response is sent in reply to a received Find By Type Value Request and contains information about this server.
Command Parameters
- Connection Handle
Identifies the connection.
- Size
2 byte(s)
- Default
0x0000
- Range
0x0000 to 0xFFFD
- handlesInfo
The Handles Information List field is a list of one or more Handle Information groups where the first 2 bytes are the attribute handle and the next two bytes are the handle end group handle.
- Size
input byte(s)
- Default
“”
- Range
Any 2-byte value for each element.
Events Generated
This command only returns the CommandStatus event
ATT_ReadByTypeReq¶
- Opcode
0xFD08
- Command Description
The Read By Type Request is used to obtain the values of attributes where the attribute type is known but the handle is not known.
Command Parameters
- Connection Handle
Identifies the connection.
- Size
2 byte(s)
- Default
0x0000
- Range
0x0000 to 0xFFFD
- startHandle
First requested handle number
- Size
2 byte(s)
- Default
0x0001
- Range
Any 2 byte value
- endHandle
Last requested handle number
- Size
2 byte(s)
- Default
0xFFFF
- Range
Any 2 byte value
- type
2 or 16 octet UUID
- Size
input byte(s)
- Default
“00:00”
- Range
Any 2 or 16 byte value
Events Generated
When this request is received, the server will send the ATT_ReadByTypeRsp. The client will forward all the ATT_ReadByTypeRsp events to the calling application. The response with the status of bleProcedureComplete will indicate the end of the sub-procedure. If no attribute with the given type exists within the handle range or the attribute value cannot be read, the server will send an ATT_ErrorRsp.
ATT_ReadByTypeRsp¶
- Opcode
0xFD09
- Command Description
The Read By Type Response is sent in reply to a received Read By Type Request and contains the handles and values of the attributes that have been read.
Command Parameters
- Connection Handle
Identifies the connection.
- Size
2 byte(s)
- Default
0x0000
- Range
0x0000 to 0xFFFD
- length
The size of each attribute handle-value pair.
- Size
1 byte(s)
- Default
0
- Range
Any 1 byte value
- dataList
A list of Attribute Data (handle-value pairs) where the first two bytes are the attribute handle and the next two bytes are the attribute value.
- Size
input byte(s)
- Default
“”
- Range
Any 2 byte value for each attribute handle and any (length -2) bytes for each attribute value.
Events Generated
This command only returns the CommandStatus event
ATT_ReadReq¶
- Opcode
0xFD0A
- Command Description
The Read Request is used request the server to read the value of an attribute and return its value in a Read Response.
Command Parameters
- Connection Handle
Identifies the connection.
- Size
2 byte(s)
- Default
0x0000
- Range
0x0000 to 0xFFFD
- handle
The handle of the attribute to be read
- Size
2 byte(s)
- Default
0
- Range
Any 2 byte value.
Events Generated
When this request is received, the server will send the ATT_ReadRsp. If the attribute handle is invalid or the attribute value cannot be read, the server will send an ATT_ErrorRsp.
ATT_ReadRsp¶
- Opcode
0xFD0B
- Command Description
The Read Response is sent in reply to a received Read Request and contains the value of the attribute that has been read.
Command Parameters
- Connection Handle
Identifies the connection.
- Size
2 byte(s)
- Default
0x0000
- Range
0x0000 to 0xFFFD
- value
The value of the attribute with the handle given
- Size
input byte(s)
- Default
“”
- Range
Any (0 to (ATT_MTU - 1) byte) value
Events Generated
This command only returns the CommandStatus event
ATT_ReadBlobReq¶
- Opcode
0xFD0C
- Command Description
The Read Blob Request is used request the server to read part of the value of an attribute at a given offset and return a specific part of the value in a ATT_ReadBlobRsp.
Command Parameters
- Connection Handle
Identifies the connection.
- Size
2 byte(s)
- Default
0x0000
- Range
0x0000 to 0xFFFD
- handle
The handle of the attribute to be read
- Size
2 byte(s)
- Default
0
- Range
Any 2 byte value
- offset
The offset of the first octet to be read
- Size
2 byte(s)
- Default
0
- Range
Any 2 byte value
Events Generated
When this request is received, the server will send the ReadBlobRsp. The client will forward all the ReadBlobRsp events to the calling application. The response with the status of bleProcedureComplete will indicate the end of the sub-procedure. If the attribute handle or offset is invalid, or the attribute value cannot be read, the server will send an ATT_ErrorRsp.
ATT_ReadBlobRsp¶
- Opcode
0xFD0D
- Command Description
The Read Blob Response is sent in reply to a received Read Blob Request and contains part of the value of the attribute that has been read.
Command Parameters
- Connection Handle
Identifies the connection.
- Size
2 byte(s)
- Default
0x0000
- Range
0x0000 to 0xFFFD
- value
Part of the value of the attribute with the handle given
- Size
input byte(s)
- Default
“”
- Range
Any (0 to (ATT_MTU - 1) octets) value.
Events Generated
This command only returns the CommandStatus event
ATT_ReadMultiReq¶
- Opcode
0xFD0E
- Command Description
The Read Multiple Request is used to request the server to read two or more values of a set of attributes and return their values in a ATT_ReadMultiRsp. Only values that have a known fixed size can be read, with the exception of the last value that can have a variable length.
Command Parameters
- Connection Handle
Identifies the connection.
- Size
2 byte(s)
- Default
0x0000
- Range
0x0000 to 0xFFFD
- handles
A set of two or more two-byte attribute handles
- Size
input byte(s)
- Default
“”
- Range
Any (4 to (ATT_MTU-1) byte) value
Events Generated
When this request is received, the server will send the ATT_ReadMultiRsp. If any of the attribute handles are invalid or any of the attribute values cannot be read, the server will send an ATT_ErrorRsp.
ATT_ReadMultiRsp¶
- Opcode
0xFD0F
- Command Description
The Read Multiple Response is sent in reply to a received ATT_ReadMultiReq and contains the values of the attributes that have been read.
Command Parameters
- Connection Handle
Identifies the connection.
- Size
2 byte(s)
- Default
0x0000
- Range
0x0000 to 0xFFFD
- values
A set of two or more values
- Size
input byte(s)
- Default
“”
- Range
Any (0 to (ATT_MTU - 1) byte) value.
Events Generated
This command only returns the CommandStatus event
ATT_ReadByGrpTypeReq¶
- Opcode
0xFD10
- Command Description
The Read By Group Type Request is used to obtain the values of attributes where the attribute type is known, the type of a grouping attribute as defined by a higher layer specification, but the handle is not known.
Command Parameters
- Connection Handle
Identifies the connection.
- Size
2 byte(s)
- Default
0x0000
- Range
0x0000 to 0xFFFD
- startHandle
First requested handle number
- Size
2 byte(s)
- Default
0x0001
- Range
Any 2 byte value
- endHandle
Last requested handle number
- Size
2 byte(s)
- Default
0xFFFF
- Range
Any 2 byte value
- groupType
2 or 16 octet UUID
- Size
input byte(s)
- Default
“00:00”
- Range
Any 2 or 16 byte value
Events Generated
When this request is received, the server will send the ATT_ReadByGrpTypeRsp. The client will forward all the ATT_ReadByGrpTypeRsp Events to the calling application. The response with the status of bleProcedureComplete will indicate the end of the sub-procedure. If no attributes with the given type exists within the handle ranges or the Attribute Group Type is not a supported grouping attribute, the server will send an ATT_ErrorRsp
ATT_ReadByGrpTypeRsp¶
- Opcode
0xFD11
- Command Description
The Read By Group Type Response is sent in reply to a received ATT_ReadByGrpTypeReq and contains the handles and values of the attributes that have been read.
Command Parameters
- Connection Handle
Identifies the connection.
- Size
2 byte(s)
- Default
0x0000
- Range
0x0000 to 0xFFFD
- length
The size of each Attribute Data (attribute handle, end group handle and attribute value set)
- Size
1 byte(s)
- Default
0
- Range
Any 1 byte value.
- dataList
The Attribute Data field is comprised of a list of attribute handle and value pairs where the first two bytes are the attribute handle, the next two bytes are the end group handle, and the next (length - 4) bytes are the attribute value.
- Size
input byte(s)
- Default
“”
- Range
Any value formatted as described above.
Events Generated
This command only returns the CommandStatus event
ATT_WriteReq¶
- Opcode
0xFD12
- Command Description
The Write Request is used to request the server to write the value of an attribute and acknowledge that this has been achieved in a ATT_WriteRsp. The command field is set for the Write Command. The signature and command fields are set for the Signed Write Command.
Command Parameters
- Connection Handle
Identifies the connection.
- Size
2 byte(s)
- Default
0x0000
- Range
0x0000 to 0xFFFD
- signature
Whether to include the Authentication Signature with the Write PDU
- Size
1 byte(s)
- Default
0x00
- Range
Value
Description
0x00
No
0x01
Yes
- command
Whether this is the Write Command
- Size
1 byte(s)
- Default
0x00
- Range
Value
Description
0x00
No
0x01
Yes
- handle
The handle of the attribute to be set
- Size
2 byte(s)
- Default
0
- Range
Any 2 byte value
- value
The value to be written to the attribute
- Size
input byte(s)
- Default
“”
- Range
Any (0 to (ATT_MTU - 3) byte) value
Events Generated
This command only returns the CommandStatus event
ATT_WriteRsp¶
- Opcode
0xFD13
- Command Description
The Write Response is sent in reply to a valid Write Request and acknowledges that the attribute has been successfully written.
Command Parameters
- Connection Handle
Identifies the connection.
- Size
2 byte(s)
- Default
0x0000
- Range
0x0000 to 0xFFFD
Events Generated
This command only returns the CommandStatus event
ATT_PrepareWriteReq¶
- Opcode
0xFD16
- Command Description
The Prepare Write Request is used to request the server to prepare to write the value of an attribute. The server will respond to this request with a ATT_PrepareWriteRsp, so that the client can verify that the value was received correctly. A client may send more than one ATT_PrepareWriteReq to a server, which will queue and send a response for each handle value pair.
Command Parameters
- Connection Handle
Identifies the connection.
- Size
2 byte(s)
- Default
0x0000
- Range
0x0000 to 0xFFFD
- handle
The handle of the attribute to be written
- Size
2 byte(s)
- Default
0
- Range
Any 2 byte value
- offset
The offset of the first octet to be written
- Size
2 byte(s)
- Default
0
- Range
Any 2 byte value
- value
Part of the value of the attribute to be written
- Size
input byte(s)
- Default
“”
- Range
(0 to (ATT_MTU - 5) octets)
Events Generated
When this request is received, the server will send the ATT_PrepareWriteRsp. If the attribute handle is invalid or the attribute value cannot be written, the server will send an ATT_ErrorRsp.
ATT_PrepareWriteRsp¶
- Opcode
0xFD17
- Command Description
The Prepare Write Response is sent in response to a received Prepare Write Request and acknowledges that the value has been successfully received and placed in the prepare write queue.
Command Parameters
- Connection Handle
Identifies the connection.
- Size
2 byte(s)
- Default
0x0000
- Range
0x0000 to 0xFFFD
- handle
The handle of the attribute to be written
- Size
2 byte(s)
- Default
0
- Range
Any 2 byte value
- offset
The offset of the first octet to be written
- Size
2 byte(s)
- Default
0
- Range
Any 2 byte value
- value
Part of the value of the attribute to be written
- Size
input byte(s)
- Default
“”
- Range
Any (0 to (ATT_MTU - 5) byte) value.
Events Generated
This command only returns the CommandStatus event
ATT_ExecuteWriteReq¶
- Opcode
0xFD18
- Command Description
The Execute Write Request is used to request the server to write or cancel the write of all the prepared values currently held in the prepare queue from this client. This request shall be handled by the server as an atomic operation.
Command Parameters
- Connection Handle
Identifies the connection.
- Size
2 byte(s)
- Default
0x0000
- Range
0x0000 to 0xFFFD
- flags
Whether to cancel or write.
- Size
1 byte(s)
- Default
0x01
- Range
Value
Description
0x00
CANCEL_WRITES
0x01
WRITE_VALUES
Events Generated
When this request is received, the server will send the ATT_ExecuteWriteRsp. If the attribute value cannot be written, the server will send an ATT_ErrorRsp.
ATT_ExecuteWriteRsp¶
- Opcode
0xFD19
- Command Description
The Execute Write Response is sent in response to a received Execute Write Request.
Command Parameters
- Connection Handle
Identifies the connection.
- Size
2 byte(s)
- Default
0x0000
- Range
0x0000 to 0xFFFD
Events Generated
This command only returns the CommandStatus event
ATT_HandleValueNoti¶
- Opcode
0xFD1B
- Command Description
A server can send a notification of an attributes value at any time.
Command Parameters
- Connection Handle
Identifies the connection.
- Size
2 byte(s)
- Default
0x0000
- Range
0x0000 to 0xFFFD
- authenticated
Whether or not an authenticated link is required
- Size
1 byte(s)
- Default
0x00
- Range
Value
Description
0x00
No
0x01
Yes
- handle
The handle of the attribute
- Size
2 byte(s)
- Default
0
- Range
Any 2 byte value
- value
The current value of the attribute
- Size
input byte(s)
- Default
“”
- Range
Any (0 to (ATT_MTU - 3) byte) value
Events Generated
This command only returns the CommandStatus event
ATT_HandleValueInd¶
- Opcode
0xFD1D
- Command Description
A server can send an indication of an attributes value at any time.
Command Parameters
- Connection Handle
Identifies the connection.
- Size
2 byte(s)
- Default
0x0000
- Range
0x0000 to 0xFFFD
- authenticated
Whether or not an authenticated link is required
- Size
1 byte(s)
- Default
0x00
- Range
Value
Description
0x00
No
0x01
Yes
- handle
The handle of the attribute
- Size
2 byte(s)
- Default
0
- Range
Any 2 byte value
- value
The current value of the attribute
- Size
input byte(s)
- Default
“”
- Range
Any (0 to (ATT_MTU - 3) byte) value.
Events Generated
The client shall send a ATT_HandleValueCfm in response to a Handle Value Indication. No further indications to this client shall occur until the confirmation has been received by the server.
ATT_HandleValueCfm¶
- Opcode
0xFD1E
- Command Description
The Handle Value Confirmation is sent in response to a received ATT_HandleValueInd and confirms that the client has received an indication of the given attribute.
Command Parameters
- Connection Handle
Identifies the connection.
- Size
2 byte(s)
- Default
0x0000
- Range
0x0000 to 0xFFFD
Events Generated
This command only returns the CommandStatus event
ATT Events¶
All ATT events have the following format:
Name |
Size (bytes) |
Description |
Opcode |
2 |
PDU operation code |
Status |
1 |
Event status |
Connection Handle |
2 |
Connection handle of the link |
PDU length |
1 |
Length of event PDU |
Event PDU |
Variable |
Event parameters |
For the event parameters, please see the corresponding section below.
Note: The connection handle of 0xFFFE is considered as the loopback connection. All messages sent to this connection will be loop backed to the local host.
ATT_ErrorRsp¶
- Opcode
0x0501
- Event Description
ATT Error Response.
Event Parameters
- Status
- Size
1 byte(s)
- Range
Value
Description
0x00
SUCCESS
0x12
bleIncorrectMode
0x02
INVALIDPARAMETER
- connectionHandle
Connection handle of the link
- Size
2 byte(s)
- Range
Any 2 byte value
- pduLen
PDU length
- Size
1 byte(s)
- Range
Any 1 byte value
- reqOpcode
Request that generated this error response
- Size
1 byte(s)
- Range
Value
Description
0x01
ATT_ERROR_RSP
0x02
ATT_EXCHANGE_MTU_REQ
0x03
ATT_EXCHANGE_MTU_RSP
0x04
ATT_FIND_INFO_REQ
0x05
ATT_FIND_INFO_RSP
0x06
ATT_FIND_BY_TYPE_VALUE_REQ
0x07
ATT_FIND_BY_TYPE_VALUE_RSP
0x08
ATT_READ_BY_TYPE_REQ
0x09
ATT_READ_BY_TYPE_RSP
0x0A
ATT_READ_REQ
0x0B
ATT_READ_RSP
0x0C
ATT_READ_BLOB_REQ
0x0D
ATT_READ_BLOB_RSP
0x0E
ATT_READ_MULTI_REQ
0x0F
ATT_READ_MULTI_RSP
0x10
ATT_READ_BY_GRP_TYPE_REQ
0x11
ATT_READ_BY_GRP_TYPE_RSP
0x12
ATT_WRITE_REQ
0x13
ATT_WRITE_RSP
0x16
ATT_PREPARE_WRITE_REQ
0x17
ATT_PREPARE_WRITE_RSP
0x18
ATT_EXECUTE_WRITE_REQ
0x19
ATT_EXECUTE_WRITE_RSP
0x1B
ATT_HANDLE_VALUE_NOTI
0x1D
ATT_HANDLE_VALUE_IND
0x1E
ATT_HANDLE_VALUE_CFM
- handle
Attribute handle that generated error response
- Size
2 byte(s)
- Range
- errorCode
Reason why the request has generated error response
- Size
1 byte(s)
- Range
Value
Description
0x01
INVALID_HANDLE
0x02
READ_NOT_PERMITTED
0x03
WRITE_NOT_PERMITTED
0x04
INVALID_PDU
0x05
INSUFFICIENT_AUTHEN
0x06
UNSUPPORTED_REQ
0x07
INVALID_OFFSET
0x08
INSUFFICIENT_AUTHOR
0x09
PREPARE_QUEUE_FULL
0x0a
ATTR_NOT_FOUND
0x0b
ATTR_NOT_LONG
0x0c
INSUFFICIENT_KEY_SIZE
0x0d
INVALID_VALUE_SIZE
0x0e
UNLIKELY_ERROR
0x0f
INSUFFICIENT_ENCRYPTION
0x10
UNSUPPORTED_GRP_TYPE
0x11
INSUFFICIENT_RESOURCES
0x80
INVALID_VALUE
ATT_ExchangeMTUReq¶
- Opcode
0x0502
- Event Description
ATT Exchange MTU Request.
Event Parameters
- Status
- Size
1 byte(s)
- Range
Value
Description
0x00
SUCCESS
0x12
bleIncorrectMode
0x02
INVALIDPARAMETER
- connectionHandle
Connection handle of the link
- Size
2 byte(s)
- Range
Any 2 byte value
- pduLen
PDU length
- Size
1 byte(s)
- Range
Any 1 byte value
- clientRxMTU
Server receive MTU size
- Size
2 byte(s)
- Range
ATT_ExchangeMTURsp¶
- Opcode
0x0503
- Event Description
ATT Exchange MTU Response.
Event Parameters
- Status
- Size
1 byte(s)
- Range
Value
Description
0x00
SUCCESS
0x12
bleIncorrectMode
0x02
INVALIDPARAMETER
- connectionHandle
Connection handle of the link
- Size
2 byte(s)
- Range
Any 2 byte value
- pduLen
PDU length
- Size
1 byte(s)
- Range
Any 1 byte value
- serverRxMTU
Server receive MTU size
- Condition
( bStatus==0x00 || bStatus==0x16)
- Size
2 byte(s)
- Range
ATT_FindInfoReq¶
- Opcode
0x0504
- Event Description
ATT Find Information Request.
Event Parameters
- Status
- Size
1 byte(s)
- Range
Value
Description
0x00
SUCCESS
0x12
bleIncorrectMode
0x02
INVALIDPARAMETER
- connectionHandle
Connection handle of the link
- Size
2 byte(s)
- Range
Any 2 byte value
- pduLen
PDU length
- Size
1 byte(s)
- Range
Any 1 byte value
- startHandle
First requested handle number
- Size
2 byte(s)
- Range
Any 2 byte value
- endHandle
Last requested handle number
- Size
2 byte(s)
- Range
Any 2 byte value
ATT_FindInfoRsp¶
- Opcode
0x0505
- Event Description
ATT Find Information Response.
Event Parameters
- Status
- Size
1 byte(s)
- Range
Value
Description
0x00
SUCCESS
0x12
bleIncorrectMode
0x02
INVALIDPARAMETER
- connectionHandle
Connection handle of the link
- Size
2 byte(s)
- Range
Any 2 byte value
- pduLen
PDU length
- Size
1 byte(s)
- Range
Any 1 byte value
- format
Format of information data
- Condition
( bStatus==0x00 || bStatus==0x16)
- Size
1 byte(s)
- Range
Value
Description
0x01
HANDLE_BT_UUID_TYPE - handle(s) and 16-bit Bluetooth UUID(s)
0x02
HANDLE_UUID_TYPE - handle(s) and 128-bit UUID(s)
An array of size “(pduLen-1)/(format==0x01 ? 4 : 18)” will be returned containing the parameters starting here:
- handle
Attribute handle
- Condition
( bStatus==0x00 || bStatus==0x16)
- Size
2 byte(s)
- Range
- uuid
Characteristic UUID
- Condition
( bStatus==0x00 || bStatus==0x16 format==0x01)
- Size
2 byte(s)
- Range
- uuid
Characteristic UUID
- Condition
( bStatus==0x00 || bStatus==0x16 format==0x02)
- Size
16 byte(s)
- Range
The array of parameters ends here.
ATT_FindByTypeValueReq¶
- Opcode
0x0506
- Event Description
ATT Find By Type Value Request.
Event Parameters
- Status
- Size
1 byte(s)
- Range
Value
Description
0x00
SUCCESS
0x12
bleIncorrectMode
0x02
INVALIDPARAMETER
- connectionHandle
Connection handle of the link
- Size
2 byte(s)
- Range
Any 2 byte value
- pduLen
PDU length
- Size
1 byte(s)
- Range
Any 1 byte value
- startHandle
First requested handle number
- Size
2 byte(s)
- Range
Any 2 byte value
- endHandle
Last requested handle number
- Size
2 byte(s)
- Range
Any 2 byte value
- type
2-octet UUID to find
- Size
2 byte(s)
- Range
Any 2 byte value
- value
Attribute value to find
- Condition
( pduLen.gt.6)
- Size
pduLen-6 byte(s)
- Range
Any (0 to ATT_MTU_SIZE-7) byte value
ATT_FindByTypeValueRsp¶
- Opcode
0x0507
- Event Description
ATT Find By Type Value Response
Event Parameters
- Status
- Size
1 byte(s)
- Range
Value
Description
0x00
SUCCESS
0x12
bleIncorrectMode
0x02
INVALIDPARAMETER
- connectionHandle
Connection handle of the link
- Size
2 byte(s)
- Range
Any 2 byte value
- pduLen
PDU length
- Size
1 byte(s)
- Range
Any 1 byte value
An array of size “pduLen/4” will be returned containing the parameters starting here:
- handle
Found Attribute Handle
- Condition
( bStatus==0x00 || bStatus==0x16)
- Size
2 byte(s)
- Range
- grpEndHandle
Group End Handle
- Condition
( bStatus==0x00 || bStatus==0x16)
- Size
2 byte(s)
- Range
The array of parameters ends here.
ATT_ReadByTypeReq¶
- Opcode
0x0508
- Event Description
ATT Read By Type Request
Event Parameters
- Status
- Size
1 byte(s)
- Range
Value
Description
0x00
SUCCESS
0x12
bleIncorrectMode
0x02
INVALIDPARAMETER
- connectionHandle
Connection handle of the link
- Size
2 byte(s)
- Range
Any 2 byte value
- pduLen
PDU length
- Size
1 byte(s)
- Range
Any 1 byte value
- startHandle
First requested handle number
- Size
2 byte(s)
- Range
Any 2 byte value
- endHandle
Last requested handle number
- Size
2 byte(s)
- Range
Any 2 byte value
- type
2-octet UUID to find
- Condition
( pduLen.gt.4)
- Size
pduLen-4 byte(s)
- Range
ATT_ReadByTypeRsp¶
- Opcode
0x0509
- Event Description
ATT Read By Type Response.
Event Parameters
- Status
- Size
1 byte(s)
- Range
Value
Description
0x00
SUCCESS
0x12
bleIncorrectMode
0x02
INVALIDPARAMETER
- connectionHandle
Connection handle of the link
- Size
2 byte(s)
- Range
Any 2 byte value
- pduLen
PDU length
- Size
1 byte(s)
- Range
Any 1 byte value
- length
The size of each attribute handle-value pair
- Condition
( bStatus==0x00 || bStatus==0x16)
- Size
1 byte(s)
- Range
An array of size “(pduLen-1)/length” will be returned containing the parameters starting here:
- handle
Attribute handle
- Condition
( bStatus==0x00 || bStatus==0x16)
- Size
2 byte(s)
- Range
- value
Attribute value
- Condition
( bStatus==0x00 || bStatus==0x16 length.gt.2)
- Size
length-2 byte(s)
- Range
The array of parameters ends here.
ATT_ReadReq¶
- Opcode
0x050A
- Event Description
ATT Read Request.
Event Parameters
- Status
- Size
1 byte(s)
- Range
Value
Description
0x00
SUCCESS
0x12
bleIncorrectMode
0x02
INVALIDPARAMETER
- connectionHandle
Connection handle of the link
- Size
2 byte(s)
- Range
Any 2 byte value
- pduLen
PDU length
- Size
1 byte(s)
- Range
Any 1 byte value
- handle
The handle of the attribute that was read
- Size
2 byte(s)
- Range
ATT_ReadRsp¶
- Opcode
0x050B
- Event Description
ATT Read Response.
Event Parameters
- Status
- Size
1 byte(s)
- Range
Value
Description
0x00
SUCCESS
0x12
bleIncorrectMode
0x02
INVALIDPARAMETER
- connectionHandle
Connection handle of the link
- Size
2 byte(s)
- Range
Any 2 byte value
- pduLen
PDU length
- Size
1 byte(s)
- Range
Any 1 byte value
- value
The value of the attribute that was read
- Condition
( bStatus==0x00 || bStatus==0x16)
- Size
pduLen byte(s)
- Range
ATT_ReadBlobReq¶
- Opcode
0x050C
- Event Description
ATT Read Blob Request.
Event Parameters
- Status
- Size
1 byte(s)
- Range
Value
Description
0x00
SUCCESS
0x12
bleIncorrectMode
0x02
INVALIDPARAMETER
- connectionHandle
Connection handle of the link
- Size
2 byte(s)
- Range
Any 2 byte value
- pduLen
PDU length
- Size
1 byte(s)
- Range
Any 1 byte value
- handle
The handle of the attribute that was read
- Size
2 byte(s)
- Range
- offset
The offset of the first byte that was read
- Size
2 byte(s)
- Range
ATT_ReadBlobRsp¶
- Opcode
0x050D
- Event Description
ATT Read Blob Response.
Event Parameters
- Status
- Size
1 byte(s)
- Range
Value
Description
0x00
SUCCESS
0x12
bleIncorrectMode
0x02
INVALIDPARAMETER
- connectionHandle
Connection handle of the link
- Size
2 byte(s)
- Range
Any 2 byte value
- pduLen
PDU length
- Size
1 byte(s)
- Range
Any 1 byte value
- value
The value of the attribute that was read
- Condition
( bStatus==0x00 || bStatus==0x16)
- Size
pduLen byte(s)
- Range
ATT_ReadMultiReq¶
- Opcode
0x050E
- Event Description
ATT Read Multiple Request.
Event Parameters
- Status
- Size
1 byte(s)
- Range
Value
Description
0x00
SUCCESS
0x12
bleIncorrectMode
0x02
INVALIDPARAMETER
- connectionHandle
Connection handle of the link
- Size
2 byte(s)
- Range
Any 2 byte value
- pduLen
PDU length
- Size
1 byte(s)
- Range
Any 1 byte value
- handles
A set of two or more attribute handles.
- Size
pduLen byte(s)
- Range
ATT_ReadMultiRsp¶
- Opcode
0x050F
- Event Description
ATT Read Multiple Response.
Event Parameters
- Status
- Size
1 byte(s)
- Range
Value
Description
0x00
SUCCESS
0x12
bleIncorrectMode
0x02
INVALIDPARAMETER
- connectionHandle
Connection handle of the link
- Size
2 byte(s)
- Range
Any 2 byte value
- pduLen
PDU length
- Size
1 byte(s)
- Range
Any 1 byte value
- values
A set of two or more values
- Condition
( bStatus==0x00 || bStatus==0x16)
- Size
pduLen byte(s)
- Range
ATT_ReadByGrpTypeReq¶
- Opcode
0x0510
- Event Description
ATT Read By Group Type Request.
Event Parameters
- Status
- Size
1 byte(s)
- Range
Value
Description
0x00
SUCCESS
0x12
bleIncorrectMode
0x02
INVALIDPARAMETER
- connectionHandle
Connection handle of the link
- Size
2 byte(s)
- Range
Any 2 byte value
- pduLen
PDU length
- Size
1 byte(s)
- Range
Any 1 byte value
- startHandle
First requested handle number
- Size
2 byte(s)
- Range
Any 2 byte value
- endHandle
Last requested handle number
- Size
2 byte(s)
- Range
Any 2 byte value
- groupType
UUID of group to read
- Condition
( pduLen.gt.4)
- Size
pduLen-4 byte(s)
- Range
ATT_ReadByGrpTypeRsp¶
- Opcode
0x0511
- Event Description
ATT Read By Group Type Response.
Event Parameters
- Status
- Size
1 byte(s)
- Range
Value
Description
0x00
SUCCESS
0x12
bleIncorrectMode
0x02
INVALIDPARAMETER
- connectionHandle
Connection handle of the link
- Size
2 byte(s)
- Range
Any 2 byte value
- pduLen
PDU length
- Size
1 byte(s)
- Range
Any 1 byte value
- length
The size of each attribute handle-value pair
- Condition
( bStatus==0x00 || bStatus==0x16)
- Size
1 byte(s)
- Range
An array of size “(pduLen-1)/length” will be returned containing the parameters starting here:
- handle
Attribute Handle
- Condition
( bStatus==0x00 || bStatus==0x16)
- Size
2 byte(s)
- Range
- endGrpHandle
End Group Handle
- Condition
( bStatus==0x00 || bStatus==0x16)
- Size
2 byte(s)
- Range
- value
Attribute Value
- Condition
( bStatus==0x00 || bStatus==0x16 length.gt.4)
- Size
length-4 byte(s)
- Range
The array of parameters ends here.
ATT_WriteReq¶
- Opcode
0x0512
- Event Description
ATT Write Request.
Event Parameters
- Status
- Size
1 byte(s)
- Range
Value
Description
0x00
SUCCESS
0x12
bleIncorrectMode
0x02
INVALIDPARAMETER
- connectionHandle
Connection handle of the link
- Size
2 byte(s)
- Range
Any 2 byte value
- pduLen
PDU length
- Size
1 byte(s)
- Range
Any 1 byte value
- signature
Whether to include the authentication signature.
- Condition
( bStatus==0x00)
- Size
1 byte(s)
- Range
Value
Description
0x00
SIG_NOT_INCLUDED
0x01
SIG_VALID
0x02
SIG_INVALID
- command
Whether this is a Write Command.
- Condition
( bStatus==0x00)
- Size
1 byte(s)
- Range
Value
Description
0x00
No
0x01
Yes
- handle
The handle of the attribute to be written.
- Condition
( bStatus==0x00)
- Size
2 byte(s)
- Range
- value
The value to be written to the attribute.
- Condition
( bStatus==0x00 pduLen.gt.4)
- Size
pduLen-4 byte(s)
- Range
ATT_WriteRsp¶
- Opcode
0x0513
- Event Description
ATT Write Response.
Event Parameters
- Status
- Size
1 byte(s)
- Range
Value
Description
0x00
SUCCESS
0x12
bleIncorrectMode
0x02
INVALIDPARAMETER
- connectionHandle
Connection handle of the link
- Size
2 byte(s)
- Range
Any 2 byte value
- pduLen
PDU length
- Size
1 byte(s)
- Range
Any 1 byte value
ATT_PrepareWriteReq¶
- Opcode
0x0516
- Event Description
ATT Prepare Write Request.
Event Parameters
- Status
- Size
1 byte(s)
- Range
Value
Description
0x00
SUCCESS
0x12
bleIncorrectMode
0x02
INVALIDPARAMETER
- connectionHandle
Connection handle of the link
- Size
2 byte(s)
- Range
Any 2 byte value
- pduLen
PDU length
- Size
1 byte(s)
- Range
Any 1 byte value
- handle
The handle of the attribute to be written.
- Size
2 byte(s)
- Range
- offset
The offset of the first byte to be written.
- Size
2 byte(s)
- Range
- value
Part of the value of the attribute to be written.
- Condition
( pduLen.gt.4)
- Size
pduLen-4 byte(s)
- Range
ATT_PrepareWriteRsp¶
- Opcode
0x0517
- Event Description
ATT Prepare Write Response.
Event Parameters
- Status
- Size
1 byte(s)
- Range
Value
Description
0x00
SUCCESS
0x12
bleIncorrectMode
0x02
INVALIDPARAMETER
- connectionHandle
Connection handle of the link
- Size
2 byte(s)
- Range
Any 2 byte value
- pduLen
PDU length
- Size
1 byte(s)
- Range
Any 1 byte value
- handle
The handle of the attribute to be written.
- Condition
( bStatus==0x00 || bStatus==0x16)
- Size
2 byte(s)
- Range
- offset
The offset of the first octet to be Written.
- Condition
( bStatus==0x00 || bStatus==0x16)
- Size
2 byte(s)
- Range
- value
Part of the value of the attribute to be written.
- Condition
( bStatus==0x00 || bStatus==0x16 pduLen.gt.4)
- Size
pduLen-4 byte(s)
- Range
ATT_ExecuteWriteReq¶
- Opcode
0x0518
- Event Description
ATT Execute Write Request.
Event Parameters
- Status
- Size
1 byte(s)
- Range
Value
Description
0x00
SUCCESS
0x12
bleIncorrectMode
0x02
INVALIDPARAMETER
- connectionHandle
Connection handle of the link
- Size
2 byte(s)
- Range
Any 2 byte value
- pduLen
PDU length
- Size
1 byte(s)
- Range
Any 1 byte value
- flags
What to do with pending prepared writes.
- Size
1 byte(s)
- Range
Value
Description
0x00
CANCEL_WRITES
0x01
WRITE_VALUES
ATT_ExecuteWriteRsp¶
- Opcode
0x0519
- Event Description
ATT Execute Write Response.
Event Parameters
- Status
- Size
1 byte(s)
- Range
Value
Description
0x00
SUCCESS
0x12
bleIncorrectMode
0x02
INVALIDPARAMETER
- connectionHandle
Connection handle of the link
- Size
2 byte(s)
- Range
Any 2 byte value
- pduLen
PDU length
- Size
1 byte(s)
- Range
Any 1 byte value
ATT_HandleValueNoti¶
- Opcode
0x051B
- Event Description
ATT Handle Value Notification.
Event Parameters
- Status
- Size
1 byte(s)
- Range
Value
Description
0x00
SUCCESS
0x12
bleIncorrectMode
0x02
INVALIDPARAMETER
- connectionHandle
Connection handle of the link
- Size
2 byte(s)
- Range
Any 2 byte value
- pduLen
PDU length
- Size
1 byte(s)
- Range
Any 1 byte value
- handle
The handle of the attribute.
- Size
2 byte(s)
- Range
- The current value of the attribute.
- Condition
( pduLen.gt.2)
- Size
pduLen-2 byte(s)
- Range
ATT_HandleValueInd¶
- Opcode
0x051D
- Event Description
ATT Handle Value Indication.
Event Parameters
- Status
- Size
1 byte(s)
- Range
Value
Description
0x00
SUCCESS
0x12
bleIncorrectMode
0x02
INVALIDPARAMETER
- connectionHandle
Connection handle of the link
- Size
2 byte(s)
- Range
Any 2 byte value
- pduLen
PDU length
- Size
1 byte(s)
- Range
Any 1 byte value
- handle
The handle of the attribute.
- Size
2 byte(s)
- Range
- value
The current value of the attribute.
- Condition
( pduLen.gt.2)
- Size
pduLen-2 byte(s)
- Range
ATT_HandleValueCfm¶
- Opcode
0x051E
- Event Description
ATT Handle Value Confirmation.
Event Parameters
- Status
- Size
1 byte(s)
- Range
Value
Description
0x00
SUCCESS
0x12
bleIncorrectMode
0x02
INVALIDPARAMETER
- connectionHandle
Connection handle of the link
- Size
2 byte(s)
- Range
Any 2 byte value
- pduLen
PDU length
- Size
1 byte(s)
- Range
Any 1 byte value
ATT_FlowCtrlViolatedEvt_t¶
- Opcode
0x057E
- Event Description
Sent when ATT flow control is violated on a connection.
Event Parameters
- Status
- Size
1 byte(s)
- Range
Value
Description
0x00
SUCCESS
0x12
bleIncorrectMode
0x02
INVALIDPARAMETER
- connectionHandle
Connection handle of the link
- Size
2 byte(s)
- Range
Any 2 byte value
- pduLen
PDU length
- Size
1 byte(s)
- Range
Any 1 byte value
- opcode
Opcode of message that caused flow control violation
- Size
1 byte(s)
- Range
- pendingOpcode
Opcode of pending message
- Size
1 byte(s)
- Range
ATT_MtuUpdatedEvt¶
- Opcode
0x057F
- Event Description
Sent when MTU is updated for a connection.
Event Parameters
- Status
- Size
1 byte(s)
- Range
Value
Description
0x00
SUCCESS
0x12
bleIncorrectMode
0x02
INVALIDPARAMETER
- connectionHandle
Connection handle of the link
- Size
2 byte(s)
- Range
Any 2 byte value
- pduLen
PDU length
- Size
1 byte(s)
- Range
Any 1 byte value
- MTU
New MTU size
- Size
2 byte(s)
- Range