Exemplo n.º 1
0
def test_serialport_parse_input():
    chip = Chip(2, 0)
    packets = chip.get_configuration_packets(Packet.CONFIG_READ_PACKET)
    fpackets = [SerialPort._format_UART(p) for p in packets]
    bytestream = b''.join(SerialPort.format_bytestream(fpackets))
    result = SerialPort._parse_input(bytestream)
    expected = packets
    assert result == expected
Exemplo n.º 2
0
def test_serialport_parse_input_dropped_stopstart_bytes():
    chip = Chip(2, 2)
    packets = chip.get_configuration_packets(Packet.CONFIG_READ_PACKET)
    fpackets = [SerialPort._format_UART(p) for p in packets]
    bytestream = b''.join(SerialPort.format_bytestream(fpackets))
    # Drop the first stop byte
    bytestream_faulty = bytestream[:9] + bytestream[11:]
    #skipped = [(slice(0, 18), bytestream_faulty[:18])]
    result = SerialPort._parse_input(bytestream_faulty)
    expected = packets[2:]
    assert result == expected
Exemplo n.º 3
0
def _parse_configs_v2_4(row, asic_version, *args, **kwargs):
    key = Key(row['io_group'],row['io_channel'],row['chip_id'])
    if asic_version in ('1','2'):
        c = Chip(key,version=int(asic_version))
    else:
        c = Chip(key,version=asic_version)
    d = dict()
    for i in range(c.config.num_registers):
        d[i] = row['registers'][i]
    endian = 'big' if asic_version == '1' else 'little'
    c.config.from_dict_registers(d, endian=endian)
    return c
Exemplo n.º 4
0
def test_serialport_parse_input_dropped_data_byte():
    # Test whether the parser can recover from dropped bytes
    chip = Chip(2, 0)
    packets = chip.get_configuration_packets(Packet.CONFIG_READ_PACKET)
    fpackets = [SerialPort._format_UART(p) for p in packets]
    bytestream = b''.join(SerialPort.format_bytestream(fpackets))
    # Drop a byte in the first packet
    bytestream_faulty = bytestream[:5] + bytestream[6:]
    result = SerialPort._parse_input(bytestream_faulty)
    #skipped = [(slice(0, 9), bytestream_faulty[0:9])]
    expected = packets[1:]
    assert result == expected
Exemplo n.º 5
0
def test_controller_write_capture(tmpdir):
    controller = Controller()
    controller.logger = HDF5Logger(directory=str(tmpdir), buffer_length=1)
    controller.logger.open()
    controller.chips[0] = Chip(2, 0)
    chip = controller.chips[0]
    controller.write_configuration(0, 0)
    packet = chip.get_configuration_packets(Packet.CONFIG_WRITE_PACKET)[0]
    assert len(controller.logger._buffer) == 1
def test_controller_write_capture(capfd):
    controller = Controller()
    controller.logger = StdoutLogger(buffer_length=1)
    controller.logger.open()
    controller.chips[0] = Chip(2, 0)
    chip = controller.chips[0]
    controller.write_configuration(0, 0)
    packet = chip.get_configuration_packets(Packet.CONFIG_WRITE_PACKET)[0]
    assert len(controller.logger._buffer) == 1
Exemplo n.º 7
0
def test_serialport_format_bytestream():
    chip = Chip(2, 0)
    packets = chip.get_configuration_packets(Packet.CONFIG_READ_PACKET)
    fpackets = [SerialPort._format_UART(p) for p in packets]
    result = SerialPort.format_bytestream(fpackets[:1])
    assert result == fpackets[:1]
    result = SerialPort.format_bytestream(fpackets[:2])
    assert result == [b''.join(fpackets[:2])]
    test_total_packets = 2000
    result = SerialPort.format_bytestream(fpackets[:1] * test_total_packets)
    expected = []
    total_packets = test_total_packets
    while total_packets >= int(
            SerialPort.max_write / SerialPort.fpga_packet_size):
        expected.append(
            b''.join(fpackets[:1] *
                     int(SerialPort.max_write / SerialPort.fpga_packet_size)))
        total_packets -= int(SerialPort.max_write /
                             SerialPort.fpga_packet_size)
    if total_packets > 0:
        expected.append(b''.join(fpackets[:1] * int(total_packets)))
    assert result == expected
Exemplo n.º 8
0
def test_serialport_format_UART():
    chip = Chip(2, 0)
    packet = chip.get_configuration_packets(Packet.CONFIG_READ_PACKET)[10]
    result = SerialPort._format_UART(packet)
    expected = b'\x73' + packet.bytes() + b'\x00\x71'
    assert result == expected
def chip():
    c = Chip('1-2-3')
    return c