示例#1
0
文件: raw_main.py 项目: pmamut/gxs700
def run(
    outdir=None,
    postfix=None,
    imgn=1,
    force_trig=False,
    cap_mode=None,
    int_t=None,
    ctr_thresh=None,
    bin_thresh=None,
    bin_out=False,
    png_out=True,
    meta_out=True,
    xr=None,
):

    print("Preparing capture")

    if not outdir:
        outdir = util.default_date_dir("out", "", postfix)
    if not os.path.exists(outdir):
        util.mkdir_p(outdir)

    def cb(n, imgb):
        binfn = os.path.join(outdir, "cap_%02u.bin" % n)
        pngfn = os.path.join(outdir, "cap_%02u.png" % n)

        if bin_out:
            print('Writing %s' % binfn)
            open(binfn, 'w').write(imgb)

        if png_out:
            print('Decoding image...')
            img = gxs.decode(imgb)
            print('Writing %s...' % pngfn)
            img.save(pngfn)

        if meta_out:
            print('Saving meta...')
            gxs.write_json(outdir, force_trig=force_trig)

    gxs = usbint.GXS700()

    if cap_mode:
        gxs.set_cap_mode(cap_mode)
    if int_t:
        gxs.set_int_t(int_t)
    if ctr_thresh or bin_thresh:
        gxs.trig_param_w(pix_clust_ctr_thresh=ctr_thresh,
                         bin_thresh=bin_thresh)
    gxs._init()

    gxs.cap_binv(imgn, cb, force_trig=force_trig, xr=xr)
示例#2
0
def main():
    import argparse

    parser = argparse.ArgumentParser(description='')
    parser.add_argument('--verbose', action="store_true")
    add_bool_arg(parser, "--xray", default=None)
    add_bool_arg(parser, "--force-trig", default=None)
    parser.add_argument('--dir', default=None, help='Output dir')
    parser.add_argument('--cap-mode',
                        default=None,
                        help='Advanced: norm (default), hblock, vblock, vbar')
    parser.add_argument('--int-t',
                        type=int,
                        default=None,
                        help='Integration time in ms (default: 700)')
    parser.add_argument('-n', default=1, type=int, help='Number images')
    parser.add_argument('--postfix', default=None, help='')
    parser.add_argument('--cal-dir', default=None, help='')
    parser.add_argument('--hist-eq-roi',
                        default="258,258,516,516",
                        help='hist eq x1,y1,x2,y2')
    add_bool_arg(parser, "--hist-eq", default=True)
    add_bool_arg(parser, "--raw", default=False)
    parser.add_argument('fn_out', default=None, nargs='?', help='')
    args = parser.parse_args()

    outdir = args.dir
    if outdir is None:
        outdir = default_date_dir("out", "", args.postfix)

    xray = args.xray
    if xray is None:
        xray = os.getenv('WPS7_HOST', None) is not None
    # Never create x-ray if forcing trigger
    if xray and not args.force_trig:
        print("Opening x-ray")
        xr = WPS7XRay(verbose=args.verbose)
        util.mkdir_p(outdir)
        xr.write_json(outdir)
        xr.warm()
    else:
        xr = None

    try:
        force_trig = args.force_trig
        # Force a capture by default if not given
        if force_trig is None:
            force_trig = xr is None
        raw_main.run(outdir=outdir,
                     postfix=args.postfix,
                     cap_mode=args.cap_mode,
                     imgn=args.n,
                     int_t=args.int_t,
                     force_trig=force_trig,
                     xr=xr)
    # notably ^C can cause this
    finally:
        xr and xr.beam_off()

    process_main.run(outdir,
                     args.fn_out,
                     cal_dir=args.cal_dir,
                     hist_eq=args.hist_eq,
                     raw=args.raw,
                     hist_eq_roi=im_util.parse_roi(args.hist_eq_roi))

    print("done")
示例#3
0
if __name__ == "__main__":
    parser = argparse.ArgumentParser(description='Replay captured USB packets')
    parser.add_argument('--dir', default=None, help='Output dir')
    parser.add_argument('--verbose', '-v', action='store_true', help='verbose')
    parser.add_argument('--steps', type=int, help='Number of slices per 180 degrees')
    parser.add_argument('--range', type=float, default=180.0, help='Maximum unit value to sweep')
    args = parser.parse_args()

    force_trig = False
    bin_out = False
    png_out = True
    meta_out = True

    outdir = args.dir
    if outdir is None:
        outdir = default_date_dir("out", "", args.postfix)
    util.mkdir_p(outdir)

    if os.getenv('WPS7_PASS', None) is None:
        raise Exception("Requires WPS7 password")

    hal = lcnc.LcncPyHal(host=args.host,
                              dry=args.dry)
    gxs = usbint.GXS700()

    xray = args.xray
    if xray is None:
        xray = os.getenv('WPS7_HOST', None) is not None
    print("Opening x-ray")
    xr = xray.WPS7XRay(verbose=args.verbose)