I am developing a system (based on CSR1010) with some specific requirements:
The devices communicate with our bridge (raspberry pi - android things) quite intensively. But receiving one package of 124 bytes by means of the stream model (StreamSendData function) takes about 10-15 seconds. It is quite a lot. It would be ok if we could receive our packages simultaneously. But it doesn't work properly. The code is equal to the code from app_data_stream.c file (CSRMeshLight example project).
I have been trying to remake my system to use some StreamSendDataBlock calls successively. But it seems the model doesn't send a packet immediately. It waits until some buffer is full and send data during some periods. If we try to put more data to the buffer than the buffer size, the extra data won't be sent. For example, I need to send 120 bytes of my data. But actually only 40 bytes(4 blocks) will be sent. I tried to put some delays between StreamSendDataBlock calls but without any success
My questions are:
- Is there a way to overcome the slowness of the stream model? (StreamSendData func)
- Is there a way to receive a stream simultaneously on the android system?
- Is there a way to overcome StreamSendDataBlock issue?
I will be grateful for any help