This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

Invalid Handle error from GATM_CLT

Hi, 

    I am trying to connect and read/write the attributes from/to a GATT Sever. I am making use of GATM_CLT example code. I am successfully able to connect and read the services from the server. But I am not able to read all the values in the descriptors using the ReadValue function. After a range of Handle value I start getting the following error: 

GATM>ReadValue EF41E21B56F3 17 0 1

GATM_ReadValue() Success: Transaction ID = 23.
GATM>
GATT Read Response Data
Connection Type: LE
Remote Address: EF41E21B56F3
Transaction ID: 23
Attribute Handle: 0x0011 (17)
Final?: YES
Value Length: 9
Value:
41 00 02 03 00 00 00 00 00

GATM>ReadValue EF41E21B56F3 18 0 1

GATM_ReadValue() Success: Transaction ID = 24.
GATM>
GATT Error Response Data
Connection Type: LE
Remote Address: EF41E21B56F3
Transaction ID: 24
Attribute Handle: 0x0012 (18)
Error Reason: Invalid Handle.

Following are the services/characteristics that I am able to see when I do QueryRemoteDeviceServices EF41E21B56F3 1 0 1024

Number of Services: 4
Service UUID: 1800
Start Handle: 0x0001 (1)
End Handle: 0x0007 (7)
Characteristic UUID: 2A00
Handle: 0x0003 (3)
Properties: 0x02
Characteristic UUID: 2A01
Handle: 0x0005 (5)
Properties: 0x02
Characteristic UUID: 2A04
Handle: 0x0007 (7)
Properties: 0x02
Service UUID: 1801
Start Handle: 0x0008 (8)
End Handle: 0x0008 (8)
Service UUID: 180A
Start Handle: 0x0009 (9)
End Handle: 0x001F (31)
Characteristic UUID: 2A29
Handle: 0x000B (11)
Properties: 0x02

Descriptor UUID: 2904
Handle: 0x000C (12)

Characteristic UUID: 2A26
Handle: 0x000E (14)
Properties: 0x02

Descriptor UUID: 2904
Handle: 0x000F (15)

Characteristic UUID: 2A25
Handle: 0x0011 (17)
Properties: 0x02

Descriptor UUID: 2904
Handle: 0x0012 (18)

Characteristic UUID: 2A23
Handle: 0x0014 (20)
Properties: 0x02
Characteristic UUID: 2A27
Handle: 0x0016 (22)
Properties: 0x02

Descriptor UUID: 2904
Handle: 0x0017 (23)

Characteristic UUID: 2A24
Handle: 0x0019 (25)
Properties: 0x02

Descriptor UUID: 2904
Handle: 0x001A (26)

Characteristic UUID: 2A2A
Handle: 0x001C (28)
Properties: 0x02
Characteristic UUID: 2A28
Handle: 0x001E (30)
Properties: 0x02

Descriptor UUID: 2904
Handle: 0x001F (31)

Service UUID: 1809
Start Handle: 0x0020 (32)
End Handle: 0xFFFF (65535)
Characteristic UUID: 2A1C
Handle: 0x0022 (34)
Properties: 0x20

Descriptor UUID: 2902
Handle: 0x0023 (35)

Characteristic UUID: 2A1D
Handle: 0x0025 (37)
Properties: 0x02

Let me know what I am doing wrong while doing ReadValue.

Thanks

Puneet

  • Hi Puneet,

    I'm not sure what the tool is doing, but one way to help understand the process is to use BTool with the CC2540USB dongle. You can then use the DiscoverUUIDs and ReadValues utility to read the GATT database. This will also show the GATT/ATT procedures used. Hopefully this will get you in the right direction.

    Best wishes