Ejemplo n.º 1
0
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)
Ejemplo n.º 3
0
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')
Ejemplo n.º 4
0
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):