from struct import pack, unpack from opb import OPB_CONTROLLER, OPB_DATA_FMT, inc_mmcm_phase, set_io_delay from spi import get_spi_control, set_spi_control, set_spi_register import numpy as np from ami import helpers import logging logger = helpers.add_default_log_handlers(logging.getLogger(__name__)) def total_glitches(core, bitwidth=8): ramp_max = 2 ** bitwidth - 1 glitches = 0 for i in range(len(core) - 1): diff = core[i + 1] - core[i] if (diff != 1) and (diff != -ramp_max): glitches += 1 return glitches def get_snapshot(roach, snap_name, bitwidth=8, man_trig=True, wait_period=2): """ Reads a one-channel snapshot off the given ROACH and returns the time-ordered samples. """ grab = roach.snapshot_get(snap_name, man_trig=man_trig, wait_period=wait_period) data = unpack("%ib" % grab["length"], grab["data"]) return list(d for d in data)
import sys import time import numpy as np import adc5g as adc import pylab import socket import ami.ami as AMI import ami.helpers as helpers import ami.amisa_control as control import ami.file_writer as fw import pylab import signal import logging logger = helpers.add_default_log_handlers(logging.getLogger(__name__)) def write_data(writer, d, timestamp, meta, **kwargs): if meta is not None: for entry in meta.entries: name = entry['name'] if name is not 'obs_name': val = meta.__getattribute__(name) try: length = len(val) data_type = type(val[0]) except TypeError: length = 1 data_type = type(val) #print name,val,data_type writer.append_data(name, [length], val, data_type) writer.append_data('xeng_raw0', d.shape, d, np.int64)
import sys import os import time import struct import numpy as np import pylab import socket import ami.ami as AMI from ami.helpers import uint2int, dbs, add_default_log_handlers import logging import Queue import threading logger = add_default_log_handlers(logging.getLogger("%s:%s"%(__file__,__name__))) def get_eq(in_q, out_q): while(True): feng = in_q.get() out_q.put([feng.num, feng.get_async_spectra(autoflip=False)]) in_q.task_done() if __name__ == '__main__': from optparse import OptionParser p = OptionParser() p.set_usage('%prog [options] [CONFIG_FILE]') p.set_description(__doc__) p.add_option('-p', '--plot', dest='plot', type='int', default=0, help='Number of grabs to do before showing plots. Default = 0 = do not plot.') p.add_option('-e', '--expire', dest='expire', type='int', default=30, help='Expiry time of redis keys in seconds. Default = 30. 0 = do not expire')
import adc5g as adc import pylab import socket import ami.ami as AMI import ami.helpers as helpers import ami.control as control import ami.file_writer as fw import pylab import signal import logging import struct import json import redis import h5py logger = helpers.add_default_log_handlers( logging.getLogger("%s:%s" % (__file__, __name__))) #type_unicode = h5py.special_dtype(vlen=unicode) def flatten_dict(d, prefix='', separator=':'): rv = {} for key, val in d.iteritems(): if isinstance(val, dict): flatten_dict(val, prefix=prefix + key + separator) else: rv[prefix + key] = val return rv def write_file_attributes(writer, meta, r):