Mercurial > ~darius > hgwebdir.cgi > pyinst
view find.py @ 81:1947d10f9395
- Search for signal frequency iteratively to improve accuracy.
- Use narrower bandwidths (via FFT filter) for close in measurements.
- Work around bug in firmware when using FFT filter.
- Actually _raise_ the exception when the signal power is too low.
author | Daniel O'Connor <doconnor@gsoft.com.au> |
---|---|
date | Fri, 27 Sep 2024 16:56:44 +0930 |
parents | 91b476ebc0f2 |
children |
line wrap: on
line source
#!/usr/bin/env python import datafile import getopt import numpy import sys from functools import reduce if __name__ == "__main__": opts, args = getopt.getopt(sys.argv[1:], "e:hm:s") minlev = None exptag = None dostats = False for o, a in opts: if o == "-h": print("""Find data files with certain characteristics %s [-h] [-e exp] [-m min] [-s] file [file ..] exp Limit to experiment tag exp min Find files with power greater than min -s Print stats about files """) elif o == "-e": exptag = a elif o == "-m": minlev = float(a) elif o == "-s": dostats = True else: print("Unknown option " + o) sys.exit(1) if len(args) == 0: print("Need at least one file to analyse") sys.exit(1) minfiles = [] if dostats: print("%-50s %7s %7s %7s (dBm)" % ("Name", "Min", "Mean", "Max")) for fn in args: dfile = datafile.DataFile(fn) if exptag != None and dfile['TAG'] != exptag: continue if minlev != None: if reduce(lambda x, y: x or y, dfile.powers > minlev): minfiles.append(fn) if dostats: print("%-50s %7.2f %7.2f %7.2f" % (fn, dfile.powers.min(), dfile.powers.mean(), dfile.powers.max())) if minlev != None: if dostats: print("") print("Files with any sample exceeding %.2f dBm:" % (minlev)) for fn in minfiles: print(fn)