Получение ненужных значений вместе с фактическими данными при выполнении операции чтения в приложении сканера BLE - PullRequest
0 голосов
/ 03 апреля 2019

Я работаю над nrf52832 во встроенной студии segger .Используя приложение ble scanner , я пишу и читаю некоторые значения.Читая значения, я получаю некоторые ненужные данные в случайном порядке.Я пишу данные в некоторые массивы.

Считайте, что есть A[2], B[4], C[45].В массив A и B я пишу полные данные.поэтому, читая их обратно, я получаю данные.Для C[45], я не записываю полные данные.

Например, его размер составляет 45 , я записываю только 5 байтов данных, поэтому, читая их обратно, я получаю 5 байтов данных вместе с 40 байтами ненужных данных .Мои данные 12345 , значение барахла 12345!? M .

В чем может быть проблема?

static void on_write(ble_cus_t * p_cus, ble_evt_t const * p_ble_evt)
{
    ble_gatts_evt_write_t * p_evt_write = &p_ble_evt->evt.gatts_evt.params.write;

     Custom Value Characteristic Written to.
    if (p_evt_write->handle == p_cus->custom_value_handles.value_handle)
    {
        nrf_gpio_pin_toggle(LED_4);
    }

    // Check if the Custom value CCCD is written to and that the value is the appropriate length, i.e 2 bytes.
    if ((p_evt_write->handle == p_cus->custom_value_handles.cccd_handle)
        && (p_evt_write->len == 2)
       )
    {

        NRF_LOG_INFO("on_write: len %d, p_evt_write->data[0]: %d, p_evt_write->data[1]: %d.",
                     p_evt_write->len,
                     p_evt_write->data[0],
                     p_evt_write->data[1]);

        // CCCD written, call application event handler
        if (p_cus->evt_handler != NULL)
        {
            ble_cus_evt_t evt;

            if (ble_srv_is_notification_enabled(p_evt_write->data))
            {
                evt.evt_type = BLE_CUS_EVT_NOTIFICATION_ENABLED;
            }
            else
            {
                evt.evt_type = BLE_CUS_EVT_NOTIFICATION_DISABLED;
            }
            // Call the application event handler.
            p_cus->evt_handler(p_cus, &evt);
        }
    }

}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...