BLE problems writing characteristics

Tip / Sign in to post questions, reply, level up, and achieve exciting badges. Know more

cross mob
Anonymous
Not applicable

Platform BCM943341WCD1, use ble_proximity project as sample.

defined characteristic in gatt_db[] as :

  CHARACTERISTIC_UUID128_WRITABLE(HDLC_XXX_CLIENT_ID,

                                                                        HDLC_XXX_CLIENT_ID_VALUE,

                                                                        UUID_XXX_CLIENT_ID,

                                                                        LEGATTDB_CHAR_PROP_READ | LEGATTDB_CHAR_PROP_WRITE,

                                                                        LEGATTDB_PERM_READABLE | LEGATTDB_PERM_WRITE_CMD | LEGATTDB_PERM_WRITE_REQ),

CHARACTERISTIC_UUID128_WRITABLE(HDLC_XXX_AUTH_CODE,

                                                                      HDLC_XXX_AUTH_CODE_VALUE,

                                                                      UUID_XXX_AUTH_CODE,

                                                                      LEGATTDB_CHAR_PROP_READ | LEGATTDB_CHAR_PROP_WRITE,

                                                                      LEGATTDB_PERM_READABLE | LEGATTDB_PERM_WRITE_CMD | LEGATTDB_PERM_WRITE_REQ),

I have an Android program that is writing the characteristics in the exact same way.

a) mBleService.getBleDevice().writeXxxAuthCode(loginAsyncTask.getAccessToken().getBytes());

   on BCM943341WCD1 console:

   in ble_proximity_gatt_cback, I get event=GATT_ATTRIBUTE_REQUEST_EVT

                                                  AND p_event_data->attribute_request.request_type = GATTS_REQ_TYPE_WRITE

b) mBleService.getBleDevice().writeXxxClientId(loginAsyncTask.getClientId().getBytes());

  on BCM943341WCD1 console:

  in ble_proximity_gatt_cback, I get event=GATT_ATTRIBUTE_REQUEST_EVT

                                                  AND p_event_data->attribute_request.request_type = GATTS_REQ_TYPE_WRITE_EXEC

Why does one show up as GATTS_REQ_TYPE_WRITE and the other as GATTS_REQ_TYPE_WRITE_EXEC ?

0 Likes
2 Replies
Anonymous
Not applicable

I believe the problem was that the amount of data I was writing to one of the characteristics was too long. Is there a max size for data that can be written to a characteristics ?

0 Likes

I believe Characteristic max size is a function of the Bluetooth spec: Adopted Specifications | Bluetooth Technology Website

If I am not mistaken, this is roughly 20 octets, so that would be a good place to start: Is there a max size for device information?

0 Likes