利用特性进行数据传输,如何确认发送成功或失败?
TI各位大神!
我想问一下:
蓝牙:BLE,实现目的:利用SIMPLEPROFILE_CHARX来实现最大数据量为0.5K的数据传输,且传输数据时,需要知道。 SIMPLEPROFILE_CHARX的读写和长度以及添加已经实现。
目前思路:1.1数据传输:在两个BLE连接的状态下, 要传数据为char win[20],调用SimpleProfile_SetParameter( SIMPLEPROFILE_CHAR1,SIMPLEPROFILE_CHAR1_LEN,win ); 每个包最大20字节。调用SimpleProfile_SetParameter是因为论坛上说,连接时属性改变时,可以自动传输。(已实现)
1. 2.传输成功与否的验证。调用完SimpleProfile_SetParameter后,如何知道发送成功或者失败。(暂未找到突破口,请指点!)
2.我的这种思路是否可行,是否有更好的解决办法。
3.传统的蓝牙传输歌曲什么,调用的是何种接口,BLE中是否有此类接口。 谢谢!
改写了之后应该就能收到,如果一定要确认的话,我觉得可以通过接收方回复消息确认。BLE本来就不适合于大数量传输吧,应该没有传统蓝牙的接口。
我也有个问题要请教,你如果SetParameter的数据不足20个字节,接收方要怎么接收呢
1.已实现数据的成功传输,slave发到master,master成功接收。我想知道master接收成功的同时有没有自动回复消息,当slave发送失败后,master没有收到,那slave如何知道它发送失败了呢?
2.
SimpleProfile_SetParameter:
case SIMPLEPROFILE_CHAR1:
if ( len <=SIMPLEPROFILE_CHAR1_LEN ) //设为<=,而不是=。即可实现不大于20字节的任意大小的包传输。
{
VOID osal_memcpy( simpleProfileChar1, value, len );
}
else
{
ret = bleInvalidRange;
}
1、slave发送到master用什么方式呢,notification?
2、我改写了这个,可以实现小于20字节的数据传输,问题是比如说我传了16字节的数据,同样触发接收端的回调函数,然后接收端用GetParameter的方式将数据取出,可是接收端不知道要取回多少字节的数据,如果把20个字节全取回来,接收端无从知道有多少个字节的数据是有效的?
要是不清楚收到数据的大小,可以把数据先提取出来,再进行判断。