def __init__(self, ctx, power_mode=1): SoapySDR.setLogLevel(SOAPY_SDR_CRITICAL) self.sdr = None self.device = dict() self.rx_stream = None self.frequency = int(96.9e6) self.power_mode = power_mode try: mod_base = ctx.get_resource('lib/modules') sdr_base = ctx.get_resource('lib/sdr') except: print("[DEVICES] Loading external modules.") return for sdr_name in os.listdir(sdr_base): sdr_path = os.path.join(sdr_base, sdr_name) ctypes.CDLL(sdr_path, ctypes.RTLD_LOCAL) for mod_path in SoapySDR.listModules(mod_base): err = SoapySDR.loadModule(mod_path) if not err: ver = SoapySDR.getModuleVersion(mod_path) print("[GUI] Loaded internal module {} ({})".format( os.path.basename(mod_path), ver)) else: print("[GUI] Can't load module {}: {}".format(mod_path, err))
def main(): """Parse command line arguments and perform measurement.""" parser = argparse.ArgumentParser( description=__doc__, formatter_class=argparse.RawDescriptionHelpFormatter) parser.add_argument("--args", type=str, help="device factor arguments", default="") parser.add_argument("--rate", type=float, help="Tx and Rx sample rate", default=1e6) parser.add_argument("--rx-ant", type=str, help="Optional Rx antenna") parser.add_argument("--tx-ant", type=str, help="Optional Tx antenna") parser.add_argument("--rx-gain", type=float, help="Optional Rx gain (dB)") parser.add_argument("--tx-gain", type=float, help="Optional Tx gain (dB)") parser.add_argument("--rx-bw", type=float, help="Optional Rx filter bw (Hz)") parser.add_argument("--tx-bw", type=float, help="Optional Tx filter bw (Hz)") parser.add_argument("--rx-chan", type=int, help="Receiver channel (def=0)", default=0) parser.add_argument("--tx-chan", type=int, help="Transmitter channel (def=0)", default=0) parser.add_argument("--freq", type=float, help="Optional Tx and Rx freq (Hz)") parser.add_argument("--clock-rate", type=float, help="Optional clock rate (Hz)") parser.add_argument("--dump-dir", type=str, help="Optional directory to dump debug samples") parser.add_argument("--debug", action='store_true', help="Output debug messages") parser.add_argument( "--abort-on-error", action='store_true', help="Halts operations if the SDR logs an error") options = parser.parse_args() if options.abort_on_error: exception_level = SOAPY_SDR_ERROR else: exception_level = None soapy_log_handle.set_python_log_handler(exception_level=exception_level) if options.debug: SoapySDR.setLogLevel(SOAPY_SDR_DEBUG) measure_delay( args=options.args, rate=options.rate, freq=options.freq, rx_bw=options.rx_bw, tx_bw=options.tx_bw, rx_ant=options.rx_ant, tx_ant=options.tx_ant, rx_gain=options.rx_gain, tx_gain=options.tx_gain, rx_chan=options.rx_chan, tx_chan=options.tx_chan, clock_rate=options.clock_rate, dump_dir=options.dump_dir, )
def getDeviceList(): SoapySDR.setLogLevel(SOAPY_SDR_CRITICAL) lst = SoapySDR.Device.enumerate() return lst, [str(d) for d in lst]
def main(): """Parse command line arguments and start sig-gen.""" parser = argparse.ArgumentParser( description=__doc__, formatter_class=argparse.RawDescriptionHelpFormatter) parser.add_argument("--args", type=str, help="device factor arguments", default="") parser.add_argument("--rate", type=float, help="Tx and Rx sample rate", default=1e6) parser.add_argument("--ampl", type=float, help="Tx digital amplitude rate", default=0.7) parser.add_argument("--tx-ant", type=str, help="Optional Tx antenna") parser.add_argument("--tx-gain", type=float, help="Optional Tx gain (dB)") parser.add_argument("--tx-chan", type=int, help="Transmitter channel (def=0)", default=0) parser.add_argument("--freq", type=float, help="Optional Tx and Rx freq (Hz)") parser.add_argument("--tx-bw", type=float, help="Optional Tx filter bw (Hz)", default=5e6) parser.add_argument("--wave-freq", type=float, help="Baseband waveform freq (Hz)") parser.add_argument("--clock-rate", type=float, help="Optional clock rate (Hz)") parser.add_argument("--debug", action='store_true', help="Output debug messages") parser.add_argument("--abort-on-error", action='store_true', help="Halts operations if the SDR logs an error") options = parser.parse_args() if options.abort_on_error: exception_level = SOAPY_SDR_WARNING else: exception_level = None soapy_log_handle.set_python_log_handler(exception_level=exception_level) if options.debug: SoapySDR.setLogLevel(SOAPY_SDR_DEBUG) siggen_app( args=options.args, rate=options.rate, ampl=options.ampl, freq=options.freq, tx_bw=options.tx_bw, tx_ant=options.tx_ant, tx_gain=options.tx_gain, tx_chan=options.tx_chan, clock_rate=options.clock_rate, wave_freq=options.wave_freq, )