Fixed the Tx and Rx/Tx relationship so that Tx support can be restored. This fixes issue #81
One should use the same size for Rx and Tx buffers and then since the Rx part is on one I/Q interleaved channel and the Tx in parallel I and Q channels they don't behave the same way.
The Tx side will return a buffer with 2 channels each with a 2 bytes sample hence 4 bytes per iteration.
The Rx side will return a buffer with a single channels with a 2 bytes sample hence 2 bytes per iteration.
The trick is to call the Rx refill twice on the Rx side and the push once on the Tx side giving the same size (this is the size in channel samples) when creating Rx and Tx buffers.
This fixes the stream lockup problems when Rx and Tx work at the same time more definitely than the workaround adding a delay after start and stop stream (fix in v3.7.6)
In fact to make sure LMS_StartStream is called before m_startWaiter.wakeAll() it could be simply placed early in the startWork() method. Similarly LMS_StopStream can be placed as the last instruction of stopWork()
Details here: https://discourse.myriadrf.org/t/sdrangel-rx-tx/1239/346
IMPORTANT: this version (binaries) is built with LimeSuite 17.10.0 and this goes with gateware revision 2.11 and you should upgrade to the latest gateware using
LimeUtil --upgrade. Of course yous should also upgrade if you compile with the latest version of LimeSuite