I am trying to use the wiced_bt_smartbridge_gatt_read_long_characteristic_value function to read a characteristic value and it is causing the system to crash. Reading the same characteristic with wiced_bt_smartbridge_gatt_read_characteristic_value does work but doesn't return the entire value of the characteristic.
Watching the transaction with a sniffer shows why it's failing. First an ATT Read Blob Request with offset 0 is sent and it gets bytes 0 through 21 of the value. Then, an ATT Read Blob Request with offset 22 is sent and it gets bytes 22 through 43 of the value. Up til this point everything is correct. But then, instead of sending an ATT Read Blob Request with offset 44, the stack goes into a loop sending the ATT Read Blob Request with offset 22 repeatedly until the system crashes. Maybe it overflowed a buffer or ran out of memory.
I have tested this from the bt_smartbridge_console demo and my own application and saw the same behavior in both. Is this a bug in the bt smart stack, and would an update to the stack be required to fix it?