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
  • I don't change the normal sdh logic SDK14.2.( gscm_service_changed_ind_send function is  automatic called by SDK). the  nrf_sdh_ble_default_cfg_set   function  enables the NRF_SDH_BLE_SERVICE_CHANGED.

    My operation:

    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 ,first mode is 'FI',

    it can works well. 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  'DI' mode can't  work.

    it's  strange in  SDK15.2  ,sometimesgscm_service_changed_ind_sendreturns  NRF_ERROR_NOT_SUPPORTED , but (gcm_ble_evt_handler) can  receive BLE_GATTS_EVT_WRITE,and  the mode can work  well.  the SDK14.2 can't  receive  BLE_GATTS_EVT_WRITE.     How  can  I do.

Reply
  • I don't change the normal sdh logic SDK14.2.( gscm_service_changed_ind_send function is  automatic called by SDK). the  nrf_sdh_ble_default_cfg_set   function  enables the NRF_SDH_BLE_SERVICE_CHANGED.

    My operation:

    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 ,first mode is 'FI',

    it can works well. 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  'DI' mode can't  work.

    it's  strange in  SDK15.2  ,sometimesgscm_service_changed_ind_sendreturns  NRF_ERROR_NOT_SUPPORTED , but (gcm_ble_evt_handler) can  receive BLE_GATTS_EVT_WRITE,and  the mode can work  well.  the SDK14.2 can't  receive  BLE_GATTS_EVT_WRITE.     How  can  I do.

Children
No Data
Related