I have a Soapy program that transmits 20 bursts during 0.3s, then waits for 0.3s, then transmits again, … After usually less than a minute the call to
SoapySDRDevice_writeStream returns a lower number than the expected number of samples. I use a 2.5s timeout, knowing that the bursts are between 2 and 10ms, and that I schedule them at specific times. All subsequent calls to
SoapySDRDevice_writeStream return -1.
I’m using a LimeSDR USB configured at 55MS/s at 2450MHz and use another SDR to see what is being transmitted. At first I see my expected bursts, then after a while I don’t see my bursts being emitted anymore. After calling
writeStream about 80 times (and not seeing any of the corresponding bursts being transmitted), it returns a lower number than the expected number of samples.
It looks as if at some point the FIFO gets filled but no sample is ever removed again. As a result no signal is sent and soon after the FIFO is full and stays like this.
Note that I do not queue too many signals. I schedule them to be sent a few milliseconds in the future and I verified they were indeed sent on time.