Example #1
0
def calcFilename(scanlevel, start, gain):
    filename = "%sHz-%sHz-%07.2fdB-%sHz-%s-%s" % (
        commons.float2Hz(start, 3, True),
        commons.float2Hz(start + scanlevel['windows'], 3, True), gain,
        commons.float2Hz(scanlevel['binsize'], 3,
                         True), commons.float2Sec(scanlevel['interval']),
        commons.float2Sec(scanlevel['quitafter']))

    fullname = os.path.join(scanlevel['scandir'], filename)
    return fullname
Example #2
0
def calcFilename(scanlevel, start, gain):
    filename = "%sHz-%sHz-%07.2fdB-%sHz-%s-%s" % (
            commons.float2Hz(start, 3, True),
            commons.float2Hz(start + scanlevel['windows'], 3, True),
            gain,
            commons.float2Hz(scanlevel['binsize'], 3, True),
            commons.float2Sec(scanlevel['interval']),
            commons.float2Sec(scanlevel['quitafter'])
    )

    fullname = os.path.join(scanlevel['scandir'], filename)
    return fullname
Example #3
0
def executeRTLPower(cmdargs, config, scanlevel, start):
    # Create directory if not exists
    if not os.path.isdir(scanlevel['scandir']):
        print "executeRTLPower SCANDIR: %s" % scanlevel['scandir']
        os.makedirs(scanlevel['scandir'])

    for gain in scanlevel['gains']:
        filename = calcFilename(scanlevel, start, gain)

        # Ignore call rtl_power if file already exist
        csv_filename = "%s.csv" % filename
        exists = os.path.isfile(csv_filename)
        if exists:
            showVerbose(
                config, "%sScan '%s' : %shz-%shz already exists%s" %
                (tcolor.GREEN, scanlevel['name'], commons.float2Hz(start),
                 commons.float2Hz(start + scanlevel['windows']),
                 tcolor.DEFAULT))
            return
        else:
            running_filename = "%s.running" % filename
            exists = os.path.isfile(running_filename)
            if exists:
                print "%sScan '%s' : delete old running file %shz-%shz" % (
                    tcolor.DEFAULT,
                    scanlevel['name'],
                    commons.float2Hz(start),
                    commons.float2Hz(start + scanlevel['windows']),
                )
                os.remove(running_filename)

            print "%sScan '%s' : %shz-%shz with %s gain / Begin: %s / Finish in: ~%s" % (
                tcolor.DEFAULT,
                scanlevel['name'],
                commons.float2Hz(start),
                commons.float2Hz(start + scanlevel['windows']),
                gain,
                time.strftime("%H:%M:%S", time.localtime()),
                commons.float2Sec(scanlevel['quitafter']),
            )

            cmddir = None
            if os.name == "nt":
                cmddir = "C:\\SDRHunter\\rtl-sdr-release\\x32"

            cmd = "rtl_power -p %s -g %s -f %s:%s:%s -i %s -e %s \"%s\"" % (
                config['global']['ppm'], gain, start,
                start + scanlevel['windows'], scanlevel['binsize'],
                scanlevel['interval'], scanlevel['quitafter'],
                running_filename)

            # Create Scan info file
            createScanInfoFile(cmdargs, config, scanlevel, start, gain)

            # Call rtl_power shell command
            executeShell(cmd, cmddir)

            # Rename file
            os.rename(running_filename, csv_filename)
Example #4
0
def showInfo(config, args):
    # Show config
    result_scan = []
    if 'configs' in config:
        for configname in config['configs']:
            result_scan.append(
                [
                    configname,
                    config['configs'][configname]['location'],
                    config['configs'][configname]['antenna'],
                ]
            )

        header = ['Config name', 'Location','Antenna']
        print tabulate(result_scan, headers=header, stralign="right")

    print ""

    # Show the scan information table
    result_scan = []
    if 'scans' in config:
        for scanlevel in config['scans']:
            result_scan.append(
                [
                    "%sHz" % commons.float2Hz(scanlevel['freq_start']),
                    "%sHz" % commons.float2Hz(scanlevel['freq_end']),
                    "%sHz" % commons.float2Hz(scanlevel['windows']),
                    commons.float2Sec(scanlevel['interval']),
                    scanlevel['nbsamples_lines'],
                    commons.float2Sec(commons.sec2Float(scanlevel['interval']) * scanlevel['nbsamples_lines']),
                    # scanlevel['quitafter'],
                    scanlevel['maxlevel_legend'],
                ]
            )

        header = [
            'Freq. Start', 'Freq. End', 'Windows', 'Interval', 'Nb lines', 'Total time', 'Max legend level'
        ]
        print tabulate(result_scan, headers=header, stralign="right")

    # Show global config
    if 'global' in config:
        pprint.pprint(config['global'],indent=2)
Example #5
0
def showInfo(config, args):
    # Show config
    result_scan = []
    if 'configs' in config:
        for configname in config['configs']:
            result_scan.append([
                configname,
                config['configs'][configname]['location'],
                config['configs'][configname]['antenna'],
            ])

        header = ['Config name', 'Location', 'Antenna']
        print tabulate(result_scan, headers=header, stralign="right")

    print ""

    # Show the scan information table
    result_scan = []
    if 'scans' in config:
        for scanlevel in config['scans']:
            result_scan.append([
                "%sHz" % commons.float2Hz(scanlevel['freq_start']),
                "%sHz" % commons.float2Hz(scanlevel['freq_end']),
                "%sHz" % commons.float2Hz(scanlevel['windows']),
                commons.float2Sec(scanlevel['interval']),
                scanlevel['nbsamples_lines'],
                commons.float2Sec(
                    commons.sec2Float(scanlevel['interval']) *
                    scanlevel['nbsamples_lines']),
                # scanlevel['quitafter'],
                scanlevel['maxlevel_legend'],
            ])

        header = [
            'Freq. Start', 'Freq. End', 'Windows', 'Interval', 'Nb lines',
            'Total time', 'Max legend level'
        ]
        print tabulate(result_scan, headers=header, stralign="right")

    # Show global config
    if 'global' in config:
        pprint.pprint(config['global'], indent=2)
Example #6
0
def executeRTLPower(cmdargs, config, scanlevel, start):
    # Create directory if not exists
    if not os.path.isdir(scanlevel['scandir']):
        print "executeRTLPower SCANDIR: %s" % scanlevel['scandir']
        os.makedirs(scanlevel['scandir'])

    for gain in scanlevel['gains']:
        filename = calcFilename(scanlevel, start, gain)

        # Ignore call rtl_power if file already exist
        csv_filename = "%s.csv" % filename
        exists = os.path.isfile(csv_filename)
        if exists:
            showVerbose(
                config,
                "%sScan '%s' : %shz-%shz already exists%s" % (
                    tcolor.GREEN,
                    scanlevel['name'],
                    commons.float2Hz(start), commons.float2Hz(start + scanlevel['windows']),
                    tcolor.DEFAULT
                )
            )
            return
        else:
            running_filename = "%s.running" % filename
            exists = os.path.isfile(running_filename)
            if exists:
                print "%sScan '%s' : delete old running file %shz-%shz" % (
                    tcolor.DEFAULT,
                    scanlevel['name'],
                    commons.float2Hz(start), commons.float2Hz(start + scanlevel['windows']),
                )
                os.remove(running_filename)

            print "%sScan '%s' : %shz-%shz with %s gain / Begin: %s / Finish in: ~%s" % (
                tcolor.DEFAULT,
                scanlevel['name'],
                commons.float2Hz(start), commons.float2Hz(start + scanlevel['windows']),
                gain,
                time.strftime("%H:%M:%S", time.localtime()),
                commons.float2Sec(scanlevel['quitafter']),
            )

            cmddir = None
            if os.name == "nt":
                cmddir = "C:\\SDRHunter\\rtl-sdr-release\\x32"

            cmd = "rtl_power -p %s -g %s -f %s:%s:%s -i %s -e %s \"%s\"" % (
                config['global']['ppm'],
                gain,
                start,
                start + scanlevel['windows'],
                scanlevel['binsize'],
                scanlevel['interval'],
                scanlevel['quitafter'],
                running_filename
            )

            # Create Scan info file
            createScanInfoFile(cmdargs, config, scanlevel, start, gain)

            # Call rtl_power shell command
            executeShell(cmd, cmddir)

            # Rename file
            os.rename(running_filename, csv_filename)