def test_parse_chip_key():
    chip_id = 62
    io_chain = 0
    expected = {'chip_id': chip_id, 'io_chain': io_chain}
    key = '{}-{}'.format(io_chain, chip_id)
    assert ZMQ_IO.is_valid_chip_key(key)
    assert ZMQ_IO.parse_chip_key(key) == expected
def test_running_with_bern_daq():
    from larpix.larpix import Controller
    from larpix.io.zmq_io import ZMQ_IO

    controller = Controller()
    controller.io = ZMQ_IO(config_filepath='io/loopback.json')

    controller.load('controller/pcb-2_chip_info.json')

    for key, chip in controller.chips.items():
        chip.config.load('chip/quiet.json')
        print(key, chip.config)
Beispiel #3
0
def quickcontroller(board='pcb-5',
                    interactive=False,
                    io=None,
                    logger=None,
                    log_filepath=None):
    '''Quick jump through all controller creation and config steps'''
    controller_config = 'controller/{}_chip_info.json'.format(board)
    if io is None:
        io_config = 'io/daq-srv1.json'
        io = ZMQ_IO(io_config)
    if logger is None:
        logger = HDF5Logger(filename=log_filepath)
        logger.open()
    controller = larpix.Controller()
    controller.io = io
    controller.logger = logger
    controller.load(controller_config)
    silence_chips(controller, interactive)
    set_config_physics(controller, interactive)
    return controller
def quickcontroller(board='pcb-1',
                    interactive=False,
                    io=None,
                    logger=None,
                    log_filepath=None):
    '''Quick jump through all controller creation and config steps'''
    if io is None:
        io = ZMQ_IO('tcp://10.0.1.6')
        # io = SerialPort(baudrate=1000000,
        # timeout=0.01)
    enable_logger()
    cont = create_controller(io=io)
    if logger is None:
        cont.logger = HDF5Logger(filename=log_filepath)
    cont.logger.open()
    init_controller(cont, board)
    silence_chips(cont, interactive)
    if cont.board_info['name'] == 'unknown':
        # Find and load chip info
        settings = {'controller': cont}
        cont.chips = get_chip_ids(**settings)
    set_config_physics(cont, interactive)
    #flush_stale_data(cont)
    return cont
Beispiel #5
0
def zmq_io_obj(io_config):
    return ZMQ_IO(io_config)
from configure_to_rate import _configure_to_rate
from larpix.larpix import *
from larpix.io.zmq_io import ZMQ_IO
from larpix.logger.h5_logger import HDF5Logger

c = Controller()
c.io = ZMQ_IO('../configs/io/daq-srv1.json', miso_map={2: 1})
c.load('../configs/controller/pcb-3_chip_info.json')
c.io.ping()
for key, chip in c.chips.items():
    chip.config.load('../configs/chip/quiet.json')
    c.write_configuration(key)

if not c.verify_configuration():
    print("verify configuration failed!")
    exit()

c.disable()
chip_key = '1-1-10'

c.chips[chip_key].config.global_threshold = 24
c.write_configuration(chip_key)
if not c.verify_configuration():
    print("verify configuration failed!")
    exit()

c.enable(chip_key, [5])
c.chips[chip_key].config.sample_cycles = 255
#c.enable_analog_monitor(chip_key, 26)
c.enable_testpulse(chip_key, [5], start_dac=200)
c.write_configuration(chip_key)
def test_decode():
    test_bytes = b'\x00\x06\x05\x04\x03\x02\x01\x00'
    expected = [Packet(test_bytes[:-1])]
    assert ZMQ_IO.decode([test_bytes]) == expected
def test_encode():
    test_bytes = b'\x00\x01\x02\x03\x04\x05\x06'
    expected = [b'0x0006050403020100 0']
    assert ZMQ_IO.encode([Packet(test_bytes)]) == expected
def test_generate_chip_key():
    chip_id = 125
    io_chain = 2
    expected = '{}-{}'.format(io_chain, chip_id)
    assert ZMQ_IO.is_valid_chip_key(expected)
    assert ZMQ_IO.generate_chip_key(chip_id=chip_id, io_chain=io_chain)