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

How to send more than 20 bytes using sd_ble_gatts_hvx

Hello,

I am looking for a way to send more than 20 bytes by using 'sd_ble_gatts_hvx' function. I want to get the maximum debit that is in theory 6x20 bytes Do I just have to send the set the p_len parameter to 6x20, because i didn't succeed through this way! I am using the S110 firmware and the nRF51-Dongle Thanks for you help

Parents
  • It is well described here.

    Edit 16.10.2015

    The point is that you can notify maximum 20 bytes with each call to sd_ble_gatts_hvx().

    So you call this in a loop until it returns BLE_ERROR_NO_TX_BUFFERS, then you break out of the loop. Then you will get the BLE_EVT_TX_COMPLETE event when one or more packets have been sent. So then you loop sd_ble_gatts_hvx() again until you get BLE_ERROR_NO_TX_BUFFERS, and so on.

    If you do this with the S110 you can get 6 packets in each connection interval because the TX buffer size is 6 (if the central device supports it).

  • Many thanks for all your support! My code is running well since I understood more the ble process!!!! I have an other kind of question not about the ble anymore but about the SPI. I want to optimize it as fast I can do: First I am using the fast spi data rate by SPI_FREQUENCY_FREQUENCY_M8 variable and I want to reduice at first the timing beetween the falling ChipSelect edge and my first clock tick, and of course reduice the timing beetween the last clock tick and the rising ChipSelect rising edge ...how can i process? Thanks!

Reply
  • Many thanks for all your support! My code is running well since I understood more the ble process!!!! I have an other kind of question not about the ble anymore but about the SPI. I want to optimize it as fast I can do: First I am using the fast spi data rate by SPI_FREQUENCY_FREQUENCY_M8 variable and I want to reduice at first the timing beetween the falling ChipSelect edge and my first clock tick, and of course reduice the timing beetween the last clock tick and the rising ChipSelect rising edge ...how can i process? Thanks!

Children
No Data
Related