def test_get_reg():
    assert ptcl.get_reg(test_reg.name) == test_reg
    assert ptcl.get_reg(test_reg.name, test_mode) == test_reg
    assert ptcl.get_reg(test_reg.name, test_mode_val) == test_reg
    assert ptcl.get_reg(test_mode_reg.name, test_mode) == test_mode_reg
    assert ptcl.get_reg(test_mode_reg.name, test_mode_val) == test_mode_reg
    assert ptcl.get_reg(test_reg) == test_reg
    assert ptcl.get_reg(test_reg.addr) == test_reg

    with pytest.raises(ptcl.ProtocolError):
        ptcl.get_reg(test_mode_reg.name)
示例#2
0
    def _get_next(self):
        packet = self._recv_packet(allow_recovery_skip=True)

        if not isinstance(packet, protocol.UnpackedStreamData):
            raise ClientError("got unexpected type of frame")

        info = {}
        for addr, enc_val in packet.result_info:
            try:
                reg = protocol.get_reg(addr, self._mode)
                val = protocol.decode_reg_val(reg, enc_val)
            except protocol.ProtocolError:
                log.info("got unknown reg val in result info")
                log.info("addr: {}, value: {}".format(
                    addr, utils.fmt_enc_val(enc_val)))
            else:
                info[reg.name] = val

        data = protocol.decode_output_buffer(packet.buffer, self._mode,
                                             self._num_subsweeps)

        if self.squeeze:
            return info, data
        else:
            return [info], np.expand_dims(data, 0)
示例#3
0
 def write_reg(self, reg, val):
     reg = protocol.get_reg(reg, self.mode)
     enc_val = protocol.encode_reg_val(reg, val)
     self.write_reg_raw(reg.addr, enc_val)
示例#4
0
 def read_reg(self, reg):
     reg = protocol.get_reg(reg, self.mode)
     enc_val = self.read_reg_raw(reg.addr)
     return protocol.decode_reg_val(reg, enc_val)
示例#5
0
 def _write_reg(self, reg, val, expect_response=True):
     reg = protocol.get_reg(reg, self._mode)
     enc_val = protocol.encode_reg_val(reg, val)
     self._write_reg_raw(reg.addr, enc_val, expect_response)
示例#6
0
 def _read_reg(self, reg, mode=None):
     mode = mode or self._mode
     reg = protocol.get_reg(reg, mode)
     enc_val = self._read_reg_raw(reg.addr)
     return protocol.decode_reg_val(reg, enc_val)
示例#7
0
 def read_reg(self, reg, do_log=True):
     reg = protocol.get_reg(reg, self.mode)
     enc_val = self.read_reg_raw(reg.addr, do_log=do_log)
     return protocol.decode_reg_val(reg, enc_val)