diff --git a/apps/dvbs2-rx b/apps/dvbs2-rx index 83ac917..1c74046 100755 --- a/apps/dvbs2-rx +++ b/apps/dvbs2-rx @@ -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 @@ -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): @@ -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, diff --git a/apps/dvbs2-tx b/apps/dvbs2-tx index 0cf9a72..8d9d35a 100755 --- a/apps/dvbs2-tx +++ b/apps/dvbs2-tx @@ -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 @@ -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 @@ -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'], diff --git a/python/dvbs2rx/CMakeLists.txt b/python/dvbs2rx/CMakeLists.txt index b9a189d..0fa1062 100644 --- a/python/dvbs2rx/CMakeLists.txt +++ b/python/dvbs2rx/CMakeLists.txt @@ -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 ) diff --git a/python/dvbs2rx/utils.py b/python/dvbs2rx/utils.py new file mode 100644 index 0000000..bef7821 --- /dev/null +++ b/python/dvbs2rx/utils.py @@ -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