This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

CC2650: Inquiry regarding cc2650

Part Number: CC2650

Hi team,

We have a customer inquiring about the cc2650. ,here are the inquiry from the customer in verbatim:

 I was trying to send a large number (say 100) integer data value through  ble notification to mobile . I am using project zero  as reference here.  its basically a for loop calling the set_prameter function 100 times.  So the problem i am facing is that i'm able to send a maximum of only 10 values across. if i try to send more than 10 values the device goes stuck and and not even a single value is received at the end device.

The purpose of my application is to send a series of values across to the mobile app through ble. I am using project zero as reference and msp432p4111 + c2650 as hardware. 

Code:
int limit =100;  for (i = 0; i < limit; i++){
       test = (char) i;
        error = DataService_setParameter(DS_STRING_ID, 2, &test);
        Display_print2(displayOut, 0, 0, "error = %d\t data = %d", error, i);}

I thought it was pretty much straight forward. So basically i have just written this 'for loop' to call "DataService_setParameter" function 100 times. This was written inside the ProjectZero_processDataServicecccdCB function provided in sdk so that data sending would start when "the notification is subscribed" from the mobile app. But as it turns out, the data received at the mobile end is restricted to mostlyno data at all(like it hangs).When I reduced the limit to say 10 , then i could get 6 notifications at most. 
 I could see that the loop runs fine with the 'error 'return value(0x00)

I have tried putting a delay between the call "DataService_setParameter" but it gives rather absurd result as well  
What might be the cause of this?Is there anything I am doing wrong?

  • Hi,

    First of all, have you considered using slightly larger characteristics in order to be able to transmit more data at the same time?

    Regarding your question, it looks like you are reaching the max memory allocable by the BLE stack. You should wait for the BLE stack to send out the data and then try to add more data. If you are interested, you may want to review the throughput_example. This example shows how to maximize the throughput and may not be 100% applicable to your specific case.

    Please let me know if you need additional help,

    Best regards,

  • Hi Clement,

    My customer updated the question as in the doc attached.ti question.docx

  • Hi,

    Please review the example I have pointed you to.

    The solution implemented by your customer is not correct. Data Service callbacks (such as ProjectZero_processDataServicecccdCB) are not supposed to contain blocking code or long pieces of code. We usually recommend to use callback to post events or messages, then do the longer code execution in a task context.

    Best regards,