My problem is with trying to read a characteristic
descriptor, not a characteristic
value. A characteristic can have multiple descriptors, and ReadData only returns the characteristic values, not characteristic descriptors.
It looks like people had a similar problem reading
0x2803, which is now done using BLE2:GetCharacteristicProperties. Likewise writing
0x2902, which is now done using BLE2:SetNotify. I would like to read
0x2904, but I cannot find a function in BLE2 that will do it. I am hoping that there is an internal/unpublished function in BLE2 that is used by GetCharacteristicProperties that I could use, if only I knew its name.
Once I have this app done, I have to port/rewrite it using B4i, so it would be great if the solution worked similarly there as well.