-
Notifications
You must be signed in to change notification settings - Fork 25
Open
Labels
Description
So its not clear as to how the API is being used wrong, but for very low rates, every other call is reporting an overflow
- Running a simple rate testing loop (which works great on single channel up to very high rates), I get overflow messages every other call to sync_rx() and the timestamp is 0x1234432112344321 every other call as well.
SoapySDRUtil --rate=1e6 --direction=RX --channels="0,1"
[NOTICE] readStream called with samples per channel = 4096
[NOTICE] calling bladerf_sync_rx(num_samples = 8192)
[NOTICE] md.actual_count = 1016
[NOTICE] md.timestamp = 0x3
[NOTICE] md.status = 0x30001
[NOTICE] numElems read per channel = 508
[NOTICE] BLADERF_META_STATUS_OVERRUN
[NOTICE] readStream called with samples per channel = 4096
[NOTICE] calling bladerf_sync_rx(num_samples = 8192)
[NOTICE] md.actual_count = 508
[NOTICE] md.timestamp = 0x1234432112344321
[NOTICE] md.status = 0x30001
[NOTICE] numElems read per channel = 254
[NOTICE] BLADERF_META_STATUS_OVERRUN
[NOTICE] readStream called with samples per channel = 4096
[NOTICE] calling bladerf_sync_rx(num_samples = 8192)
[NOTICE] md.actual_count = 508
[NOTICE] md.timestamp = 0x3fb
[NOTICE] md.status = 0x1
[NOTICE] numElems read per channel = 254
[NOTICE] BLADERF_META_STATUS_OVERRUN
[NOTICE] readStream called with samples per channel = 4096
[NOTICE] calling bladerf_sync_rx(num_samples = 8192)
[NOTICE] md.actual_count = 508
[NOTICE] md.timestamp = 0x1234432112344321
[NOTICE] md.status = 0x30001
[NOTICE] numElems read per channel = 254
[NOTICE] BLADERF_META_STATUS_OVERRUN
[NOTICE] readStream called with samples per channel = 4096
[NOTICE] calling bladerf_sync_rx(num_samples = 8192)
[NOTICE] md.actual_count = 508
[NOTICE] md.timestamp = 0x5f7
[NOTICE] md.status = 0x1
[NOTICE] numElems read per channel = 254
[NOTICE] BLADERF_META_STATUS_OVERRUN
[NOTICE] readStream called with samples per channel = 4096
[NOTICE] calling bladerf_sync_rx(num_samples = 8192)
[NOTICE] md.actual_count = 508
[NOTICE] md.timestamp = 0x1234432112344321
[NOTICE] md.status = 0x30001
[NOTICE] numElems read per channel = 254
[NOTICE] BLADERF_META_STATUS_OVERRUN
[NOTICE] readStream called with samples per channel = 4096
[NOTICE] calling bladerf_sync_rx(num_samples = 8192)
[NOTICE] md.actual_count = 508
[NOTICE] md.timestamp = 0x7f3
[NOTICE] md.status = 0x1
[NOTICE] numElems read per channel = 254
[NOTICE] BLADERF_META_STATUS_OVERRUN
[NOTICE] readStream called with samples per channel = 4096
[NOTICE] calling bladerf_sync_rx(num_samples = 8192)
[NOTICE] md.actual_count = 508
[NOTICE] md.timestamp = 0x1234432112344321
[NOTICE] md.status = 0x30001
[NOTICE] numElems read per channel = 254
[NOTICE] BLADERF_META_STATUS_OVERRUN
[NOTICE] readStream called with samples per channel = 4096
[NOTICE] calling bladerf_sync_rx(num_samples = 8192)
[NOTICE] md.actual_count = 508
[NOTICE] md.timestamp = 0x9ef
[NOTICE] md.status = 0x1
[NOTICE] numElems read per channel = 254
[NOTICE] BLADERF_META_STATUS_OVERRUN
[NOTICE] readStream called with samples per channel = 4096
[NOTICE] calling bladerf_sync_rx(num_samples = 8192)
[NOTICE] md.actual_count = 508
[NOTICE] md.timestamp = 0x1234432112344321
[NOTICE] md.status = 0x30001
[NOTICE] numElems read per channel = 254
[NOTICE] BLADERF_META_STATUS_OVERRUN
[NOTICE] readStream called with samples per channel = 4096
[NOTICE] calling bladerf_sync_rx(num_samples = 8192)
[NOTICE] md.actual_count = 508
[NOTICE] md.timestamp = 0xbeb
[NOTICE] md.status = 0x1
[NOTICE] numElems read per channel = 254
[NOTICE] BLADERF_META_STATUS_OVERRUN
- If I force the num_samples passed to bladerf_sync_rx() to be 508 (the value actual_count returns), then I don't get the overflows, but every other time is 0x1234432112344321