Пример #1
0
    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))
Пример #2
0
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,
    )
Пример #3
0
def getDeviceList():
    SoapySDR.setLogLevel(SOAPY_SDR_CRITICAL)
    lst = SoapySDR.Device.enumerate()
    return lst, [str(d) for d in lst]
Пример #4
0
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,
    )