Skip to content

Commit

Permalink
WIP: Adapt lib version parsing to macOS
Browse files Browse the repository at this point in the history
  • Loading branch information
igorauad committed Jul 10, 2023
1 parent 5e5e52d commit 005c959
Show file tree
Hide file tree
Showing 4 changed files with 24 additions and 28 deletions.
15 changes: 2 additions & 13 deletions apps/dvbs2-rx
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,6 @@ import os
import signal
import sys
import time
import subprocess
from argparse import ArgumentParser, ArgumentDefaultsHelpFormatter
from http.server import HTTPServer, BaseHTTPRequestHandler
from packaging.version import Version as StrictVersion
Expand All @@ -34,23 +33,13 @@ from gnuradio.fft import window
from gnuradio.filter import firdes

from gnuradio import dvbs2rx
from gnuradio.dvbs2rx.utils import parse_version

MAX_RX_GAIN = {'usrp': 75, 'rtl': 50, 'bladeRF': 60, 'plutosdr': 71}
MAX_FREQ = {'usrp': 6e9, 'rtl': 2.2e9, 'bladeRF': 6e9, 'plutosdr': 6e9}
MIN_FREQ = {'usrp': 10e6, 'rtl': 22e6, 'bladeRF': 47e6, 'plutosdr': 70e6}


def parse_version():
cpython_lib = dvbs2rx.dvbs2rx_python.__file__
ldd_out = subprocess.check_output(['ldd', cpython_lib]).decode()
dvbs2rx_lib_version = "Not Found"
for line in ldd_out.splitlines():
if "libgnuradio-dvbs2rx" in line:
dvbs2rx_lib_version = line.split()[0].replace(
"libgnuradio-dvbs2rx.so.", "")
return dvbs2rx_lib_version


class DVBS2RxTopBlock(gr.top_block, Qt.QWidget):

def __init__(self, options):
Expand Down Expand Up @@ -1180,7 +1169,7 @@ def argument_parser():
parser.add_argument('-v',
'--version',
action='version',
version=parse_version())
version=parse_version(dvbs2rx))
parser.add_argument('-f',
"--freq",
type=eng_float,
Expand Down
15 changes: 2 additions & 13 deletions apps/dvbs2-tx
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,6 @@ import os
import signal
import sys
import time
import subprocess
from argparse import ArgumentParser, ArgumentDefaultsHelpFormatter
from datetime import datetime
from math import pi, sqrt
Expand All @@ -35,23 +34,13 @@ from gnuradio.fft import window
from gnuradio.filter import firdes

from gnuradio import dvbs2rx
from gnuradio.dvbs2rx.utils import parse_version

MAX_TX_GAIN = {'usrp': 65, 'bladeRF': 60, 'plutosdr': 89.75}
MAX_FREQ = {'usrp': 6e9, 'bladeRF': 6e9, 'plutosdr': 6e9}
MIN_FREQ = {'usrp': 10e6, 'bladeRF': 47e6, 'plutosdr': 70e6}


def parse_version():
cpython_lib = dvbs2rx.dvbs2rx_python.__file__
ldd_out = subprocess.check_output(['ldd', cpython_lib]).decode()
dvbs2rx_lib_version = "Not Found"
for line in ldd_out.splitlines():
if "libgnuradio-dvbs2rx" in line:
dvbs2rx_lib_version = line.split()[0].replace(
"libgnuradio-dvbs2rx.so.", "")
return dvbs2rx_lib_version


def scale_rrc_taps(taps: list, sps: int, fullscale: float) -> list:
"""Scale the RRC filter taps to satisfy a target output amplitude range
Expand Down Expand Up @@ -779,7 +768,7 @@ def argument_parser():
parser.add_argument('-v',
'--version',
action='version',
version=parse_version())
version=parse_version(dvbs2rx))
parser.add_argument("--frame-size",
type=str,
choices=['normal', 'short'],
Expand Down
5 changes: 3 additions & 2 deletions python/dvbs2rx/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -23,8 +23,9 @@ add_subdirectory(bindings)
GR_PYTHON_INSTALL(
FILES
__init__.py
defs.py
params.py
defs.py
params.py
utils.py
DESTINATION ${GR_PYTHON_DIR}/gnuradio/dvbs2rx
)

Expand Down
17 changes: 17 additions & 0 deletions python/dvbs2rx/utils.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
import platform
import subprocess


def parse_version(dvbs2rx):
is_macos = platform.system() == "Darwin"
cpython_lib = dvbs2rx.dvbs2rx_python.__file__
if is_macos:
libs = subprocess.check_output(['otool', '-L', cpython_lib]).decode()
else:
libs = subprocess.check_output(['ldd', cpython_lib]).decode()
dvbs2rx_lib_version = "Not Found"
for line in libs.splitlines():
if "libgnuradio-dvbs2rx" in line:
dvbs2rx_lib_version = line.split()[0].replace(
"libgnuradio-dvbs2rx.so.", "")
return dvbs2rx_lib_version

0 comments on commit 005c959

Please sign in to comment.