I have a BLE device "Masimo" and I'd like to download its data in real time through BLE notifications.

This device comes with an Android App which is able to download the data through notifications. When I sniff its activity using BLE sniffer, I see the system connects, write a characteristic, enables notifications of another and then starts receiving data.

When I connect the device through an app I designed using pc-ble-driver-2.0.0, I can see the two characteristics mentioned above. However:

  • The characteristic written by the Android App is read-only in my case (trying to write it reports BLE_GATT_STATUS_ATTERR_APP_BEGIN). Note that trying to write other characteristics (like device name) reports something different BLE_GATT_STATUS_ATTERR_WRITE_NOT_PERMITTED...

  • When I enable notifications on the other characteristic, I don't receive any data

I'm wondering what this BLE_GATT_STATUS_ATTERR_APP_BEGIN means...

Also, upon connection, the other app does some stuff I see in the sniffer as "LL Control PDU: LL_VERSION_IND" exchanges that I don't have when connecting via my application. Dunno if this could help.

  • #define BLE_GATT_STATUS_ATTERR_APP_BEGIN                  0x0180  /**< ATT Error: Application range begin. */
    #define BLE_GATT_STATUS_ATTERR_APP_END                    0x019F  /**< ATT Error: Application range end. */

    These are not standard error codes, they are defined by the application. It is up to "Masimo" to share them.