This post is older than 2 years and might not be relevant anymore
More Info: Consider searching for newer posts

ATT_Read_Blob_Req

Hello! I am looking examples for nRF5_SDK_14.1.0 (For example - ble_app_eddystone ) I need read all attributes with ATT_Read_Blob_Req command. I can read Device Name (0x2A00) attribute without any problem. I sent ATT_Read_Blob_Req command and device response with ATT_Read_Blob_Req.

But when I read any eddystone attributes, device send ATT_Error_Response with ErrorCode=ATT_NOT_LONG (0x0B)

I need use BlobRead because customers software use it. How can I change attributes characteristics or code for BlobRead command?

Parents
  • I found it!

    /@brief Attribute metadata. */ typedef struct {
    ble_gap_conn_sec_mode_t read_perm; /
    < Read permissions. */
    ble_gap_conn_sec_mode_t write_perm; /< Write permissions. */ uint8_t
    vlen :1; /
    < Variable length attribute. / uint8_t
    vloc :2; /**< Value location, see @ref BLE_GATTS_VLOCS.
    / uint8_t

    rd_auth :1; /**< Read authorization and value will be requested from the application on every read operation. */ uint8_t

    wr_auth :1; /**< Write authorization will be requested from the application on every Write Request operation (but not Write Command). */ } ble_gatts_attr_md_t;

    In the attribute metadata need set value vlen=1. Realy it's not "Variable length" flags! It's Blob-operation flag. Even if I have a variable with a fixed length, I can set it to vlen=1 and use ATT_Read_Blob_Req command.

Reply
  • I found it!

    /@brief Attribute metadata. */ typedef struct {
    ble_gap_conn_sec_mode_t read_perm; /
    < Read permissions. */
    ble_gap_conn_sec_mode_t write_perm; /< Write permissions. */ uint8_t
    vlen :1; /
    < Variable length attribute. / uint8_t
    vloc :2; /**< Value location, see @ref BLE_GATTS_VLOCS.
    / uint8_t

    rd_auth :1; /**< Read authorization and value will be requested from the application on every read operation. */ uint8_t

    wr_auth :1; /**< Write authorization will be requested from the application on every Write Request operation (but not Write Command). */ } ble_gatts_attr_md_t;

    In the attribute metadata need set value vlen=1. Realy it's not "Variable length" flags! It's Blob-operation flag. Even if I have a variable with a fixed length, I can set it to vlen=1 and use ATT_Read_Blob_Req command.

Children
No Data
Related