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

about service change can't receive BLE_GATTS_EVT_WRITE

nrf52832     SDK14.2       s132_nrf52_5.0.0_softdevice     PCA10040       ble_app_hids_keyboard  

I modify the project : 

two  service :  one  is   hid   another  is  different  hid_1 

press button 2  init  hid

presss button 3  init  hid_1

connect  the  android  phone , press button2   reset ,and ,init  hid;  press button3   reset  ,and, init  hid_1, reconnect  the phone,

turn  off and on the bluetooth(android  phone),but I can‘t receive   BLE_GATTS_EVT_WRITE(gcm_ble_evt_handler),  I  enable  the  NRF_SDH_BLE_SERVICE_CHANGED

I  can’t  know the reason,  but  SDK15.2   it  succeed,  why?   How  can  i do?

Parents
  • Hi,Simonr,the last replay can't see reply ,so i reply you here. 

    1 sorry,I'm wrong, forgive me, the  gscm_service_changed_ind_send  function don't  return  NRF_ERROR_NOT_SUPPORTED ,just always

    return NRF_ERROR_INVALID_STATE ,I copy the wrong information and i don't realize it.sorry!

    2  the  BLE_HIDS_ENABLED  macro is set to 1 alreadly.

    3  the  NRF_SDH_BLE_SERVICE_CHANGED  is  set to 1 alreadly.

    4  the ios phone works well by  SDK14.2,just  android phone don't work.

    5  the  question is  reappear  easily, just  do  as  i operated:  SDK14.2

    Two  mode:  'FI' and 'DI',

    FI' mode  can  be  entered  by  pressing button2.  'FI' mode  init  hid which has  keyboard and mouse descriptor.   

    'DI’ mode can  be  entered  by pressing button3. 'DI' mode init hid_1 which just has  keyboard.

    Switching different mode  between 'FI' and 'DI' by pressing button2 and button3.

    for  example ,the  first mode is 'FI', it can works well(namely,can typing.

    Then  pressing  button3,  it will reset ,  and  enter in  'DI'  mode. At the same time  it will  reconnect  the  android phone . 

    Then  turn  off  and  on  the  android phone's bluetooth, it  will  reconnet  again,but the 'DI'  mode can't  work(that  can't  typing).

    It  is  easy  to reappear.  I beg your pardon  for  my fault that  copy  the wrong information . I hope  you continuly

    reply me.  Thank you.

Reply
  • Hi,Simonr,the last replay can't see reply ,so i reply you here. 

    1 sorry,I'm wrong, forgive me, the  gscm_service_changed_ind_send  function don't  return  NRF_ERROR_NOT_SUPPORTED ,just always

    return NRF_ERROR_INVALID_STATE ,I copy the wrong information and i don't realize it.sorry!

    2  the  BLE_HIDS_ENABLED  macro is set to 1 alreadly.

    3  the  NRF_SDH_BLE_SERVICE_CHANGED  is  set to 1 alreadly.

    4  the ios phone works well by  SDK14.2,just  android phone don't work.

    5  the  question is  reappear  easily, just  do  as  i operated:  SDK14.2

    Two  mode:  'FI' and 'DI',

    FI' mode  can  be  entered  by  pressing button2.  'FI' mode  init  hid which has  keyboard and mouse descriptor.   

    'DI’ mode can  be  entered  by pressing button3. 'DI' mode init hid_1 which just has  keyboard.

    Switching different mode  between 'FI' and 'DI' by pressing button2 and button3.

    for  example ,the  first mode is 'FI', it can works well(namely,can typing.

    Then  pressing  button3,  it will reset ,  and  enter in  'DI'  mode. At the same time  it will  reconnect  the  android phone . 

    Then  turn  off  and  on  the  android phone's bluetooth, it  will  reconnet  again,but the 'DI'  mode can't  work(that  can't  typing).

    It  is  easy  to reappear.  I beg your pardon  for  my fault that  copy  the wrong information . I hope  you continuly

    reply me.  Thank you.

Children
No Data
Related