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

Custom UART BLE Read fails

Hello, I have a custom program based on the uart example. I can write to the device, but sending to the master fails. I call the SendString code, but p_nus->is_notification_enabled is always false. Looking through the code, the only place this flag gets set true is in:

static void on_write(ble_nus_t * p_nus, ble_evt_t * p_ble_evt)
{
    ble_gatts_evt_write_t * p_evt_write = &p_ble_evt->evt.gatts_evt.params.write;
    if ((p_evt_write->handle == p_nus->rx_handles.cccd_handle)  && (p_evt_write->len == 2))
    {
        if (ble_srv_is_notification_enabled(p_evt_write->data))
        {
            p_nus->is_notification_enabled = true;
        }
        else
        {
            p_nus->is_notification_enabled = false;
        }
    }
    else if ((p_evt_write->handle == p_nus->tx_handles.value_handle) && (p_nus->data_handler != NULL))
    {
        p_nus->data_handler(p_nus, p_evt_write->data, p_evt_write->len);
    }
    else
    {
        // Do Nothing. This event is not relevant for this service.
    }

Can anyone explain where the message with p_evt_write->handle == p_nus->rx_handles.cccd_handle and with a length of 2 comes from? If this part of the code is never called, then i cant send any data to the master. Much appreciated.

Parents Reply Children
No Data
Related