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

the loss of data while sending through ble

Hi,

For developing our application i am using ble_app_hrs

in my case i have gpio interrupt for every 500 ms to get data from accelerometer.

question:

in heart rate measurement time out handler , i create local buffer of 300 bytes , i send these 300 bytes to ble.

Problem: But i am not getting all 300 bytes in master control panel. i am getting only 140 bytes. if i change buffer size to 200 also. i am getting only 140 bytes.

Code:

void read_Nor_send_to_ble_stack() { uint8_t buff[300]={0};

uint16_t length,j=0;
uint8_t r,d,i,k=0;
length=300;
for(j=0;j<300;j++)
{
	buff[j]=i++;
}

if(length>20)
{
		d=length/20;
		r=length%20;

		for(i=0;i<d;i++)
		{
				ble_accel_data_send(&m_accel,20,&buff[k]);
				k=k+20;
		}
		if(r!=0)
		{
				ble_accel_data_send(&m_accel,r,&buff[k]);
		}
}

else
{
		            ble_accel_data_send(&m_accel,length,&buff[0]);
}

}

in time out handler i am calling this function.

and i make it this interrupt to execute for every 15 seconds.

i check ble_accel_data_send() function which is working fine.

Is it because of gpio interrupt as it has highest priority. or something else.

Kindly suggest me.

Regards Balaji

Related