Hi All,
According to the GATT documentation the function GATT_DiscCharsByUUID is used to discover characteristic values depending on the given UUID's. However, in the original SimpleBLEcentral project it is done by a GATT_ReadUsingCharUUID call, and once a response received, the handle is stored.
Is there any difference between the two ways?
I am working on a project where 4 charvs should be discovered, however, at the first step an error is received which says "No attribute found within the given attribute handle range". I think the UUID and the GATT profile are correct, and trying to figure out the reason of the error.
Thanks,
Gergo
Hi Gergo,
GATT_ReadUsingCharUUID:
This sub-procedure is used to read a Characteristic Value from a server when the client only knows the characteristic UUID and does not know the handle of the characteristic.
GATT_DiscCharsByUUID:
This sub-procedure is used by a client to discover service characteristics on a server when only the service handle ranges are known and the characteristic UUID is known.The specific service may exist multiple times on a server.The characteristic being discovered is identified by the characteristic UUID.
BR
In a quick way, I use to match the word "read" to "handle" and the word "discover" to "char".
I hope it works for you :) Bye.
Please click the Verify Answer button on a post if it answers your question! :)
Hi Nick,
I've read the documentation, I just wanted to figure out, what's the reason of using GATT_ReadUsingCharUUID in the sample projects.
Because in a real implementation you wouldn't know the handles of the peripheral, I guess. This is just an example what to do, you can choose either way :)
OK, I see.
Hi,
Since we don't know the handles of the peripheral in a real implementation, how can we use the function GATT_WriteCharValue( simpleBLEConnHandle, &reqw, simpleBLETaskId ); because we need to define the reqw.handle?
I'm trying to write data to multiple characteristics.
Thanks in advance for your help