Python bindings for the LimeDriver
Go to file
Kumi fc536126bc
Encode device parameter before channel retrieval
Fixed an issue in the `get_channels_for_device` function where the input
device name wasn't being encoded before passing it to the underlying C
function `getChannelsFromInfo`. This change ensures compatibility with
the expected string encoding, preventing potential runtime errors
related to string handling across the Python-C boundary.
2024-02-17 18:06:55 +01:00
.github/workflows Add GitHub Action for Ubuntu package build 2024-02-10 20:03:23 +01:00
extern Added manual selection of tx rx matching. 2024-02-12 21:36:32 +01:00
src/limedriver Encode device parameter before channel retrieval 2024-02-17 18:06:55 +01:00
.gitignore Enhance package build process 2024-02-08 15:19:25 +01:00
.gitmodules Update LimeDriver submodule URL to HTTPS 2024-02-10 18:17:46 +01:00
LICENSE Update LICENSE 2024-02-10 14:56:32 +01:00
MANIFEST.in Enhance package build process 2024-02-08 15:19:25 +01:00
pyproject.toml Bump version and add device listing 2024-02-17 17:38:18 +01:00
README.md Updated README with submodule init instructions 2024-02-10 15:00:57 +01:00
setup.py Updated CXX env var and removed redundant 2024-02-10 20:00:27 +01:00

Python Bindings for LimeDriver

This is a Python package for the LimeDriver library.

Dependencies

To build the Python bindings, you will need to have the dependencies for LimeDriver installed, as well as the Python development headers.

Debian/Ubuntu

sudo apt-get install g++ cmake libhdf5-dev liblimesuite-dev python3-dev python3-pip python3-venv

Arch Linux

sudo pacman -S gcc cmake hdf5 limesuite python python-pip

Installation

It is recommended to install the Python bindings in a virtual environment. To create a new virtual environment, run the following commands:

python3 -m venv venv
source venv/bin/activate

Ensure that the LimeDriver submodule is initialized:

git submodule update --init

Now, the Python bindings can be built and installed using pip:

pip install .

Usage

The Python bindings provide a high-level interface to the LimeDriver library:

# Import the LimeDriver module
import limedriver

# Set the number of pulses to generate
Npulses = 1000

# Create a new PyLimeConfig object
config = limedriver.PyLimeConfig(Npulses)

# Modify the config as needed
config.srate = 1e6

# Execute the config on the LimeSDR
config.run()

# Get the path to the output file
filename = config.get_path()

# Use the built-in HDF5 reader to read the output file
data = limedriver.hdf_reader.HDF(filename)
data.print_params()