This post is older than 2 years and might not be relevant anymore
More Info: Consider searching for newer posts
This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

BLE_ERROR_GATTS_SYS_ATTR_MISSING

Hi. I have a problem with HID keyboard example. Function sd_ble_gatts_hvx returns 0x00003401. I know that it's means BLE_ERROR_GATTS_SYS_ATTR_MISSING. But how and where I must set attributes or enable notification. I know that I must restore attributes from storage. But how? I read many posts about this but I can not to fix this problem. Please help me. Thank you in advance.

BLE_ERROR_GATTS_SYS_ATTR_MISSING does not handle

Parents
  • If you get no service discovery then the BLE_GATTS_EVT_SYS_ATTR_MISSING won't come.

    You can try to call sd_ble_gatts_sys_attr_set(NULL) when you receive _CONNECTED event.

    If you test with our ble_app_hid_keyboard do you see the same problem ?

  • I debug device manager. So If I connect from android in dm_ble_evt_handler:

    • -BLE_GAP_EVT_CONNECTED handled, but never find bounded device and never enter to block

      if (err_code == NRF_SUCCESS) { m_connection_table[index].bonded_dev_id = device_index; m_connection_table[index].state |= STATE_BONDED; handle.device_id = device_index;

                       bond_data_load(&handle);
      

      }

    • -BLE_GAP_EVT_SEC_INFO_REQUEST handled, but function device_instance_find never find device so m_connection_table[index].state never set to STATE_BONDED, so when device is disconnecting function device_context_store never to call

    . But on phone writes that device bounded. If I connect from raspberry pi3 event BLE_GAP_EVT_SEC_INFO_REQUEST does not come.

Reply
  • I debug device manager. So If I connect from android in dm_ble_evt_handler:

    • -BLE_GAP_EVT_CONNECTED handled, but never find bounded device and never enter to block

      if (err_code == NRF_SUCCESS) { m_connection_table[index].bonded_dev_id = device_index; m_connection_table[index].state |= STATE_BONDED; handle.device_id = device_index;

                       bond_data_load(&handle);
      

      }

    • -BLE_GAP_EVT_SEC_INFO_REQUEST handled, but function device_instance_find never find device so m_connection_table[index].state never set to STATE_BONDED, so when device is disconnecting function device_context_store never to call

    . But on phone writes that device bounded. If I connect from raspberry pi3 event BLE_GAP_EVT_SEC_INFO_REQUEST does not come.

Children
No Data
Related