An asynchronous Python wrapper based on the official bladerf python library from Nuand
Project description
BladeRF SDR asynchronous wrapper
A python wrapper for the bladerf python bindings from Nuand. It provides synchronous as well as asynchronous functionality to send and receive data to and from the BladeRF SDR.
Installation
- To install the requirements for this package:
python3 -m pip install -r requirements.txt
- To install system-wide:
sudo python3 setup.py install
- To install for your user:
python3 setup.py install
Usage
Below is an example of how to use the asynchronous wrapper with a python context manager and an asynchronous generator to continuously receive samples from the SDR for 5 seconds.
import asyncio
import bladerf
from bladerfsdraio import AioBladeRF
async def main():
with AioBladeRF() as sdr:
ch_rx = sdr.Channel(bladerf.CHANNEL_RX(0))
ch_rx.sample_rate = 1e6
ch_rx.frequency = 1e9
async def stream_samples(sdr: AioBladeRF):
async for samples in sdr.stream_samples_async(ch_rx, chunk_size=1024):
# .. handle samples
print(samples.max())
async def cancel_after(secs: float, sdr: AioBladeRF):
await asyncio.sleep(secs)
sdr.cancel_receive()
await asyncio.gather(
stream_samples(sdr),
cancel_after(5, sdr)
)
if __name__ == '__main__':
asyncio.run(main())
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
bladerf-sdr-aio-0.9.tar.gz
(6.3 kB
view hashes)
Built Distribution
Close
Hashes for bladerf_sdr_aio-0.9-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 1074cea7e8559456e06bce4124c39a1cf51ce9f5990dcd6bd9462979e0442d7c |
|
MD5 | 880864f5c6717ae11bc035d609b8073f |
|
BLAKE2b-256 | f0060759a2d5c976058ad43d472da022d1414cf7ff74825ffa5a87b21880ab01 |