def write_reg_raw(self, addr, enc_val): addr = protocol.get_addr_for_reg(addr) b = bytearray([protocol.REG_WRITE_REQUEST, addr, 0, 0]) self.dev.spi_master_single_write(b) log.debug("reg w req: addr: {:3} val: {}".format( addr, utils.fmt_enc_val(enc_val))) self.dev.spi_master_single_write(enc_val)
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)
def read_reg_raw(self, addr): addr = protocol.get_addr_for_reg(addr) b = bytearray([protocol.REG_READ_REQUEST, addr, 0, 0]) self.dev.spi_master_single_write(b) enc_val = self.dev.spi_master_single_read(4) log.debug("reg r res: addr: {:3} val: {}".format( addr, utils.fmt_enc_val(enc_val))) return enc_val
def _read_reg_raw(self, addr): addr = protocol.get_addr_for_reg(addr) req = protocol.UnpackedRegReadRequest(addr) self._send_packet(req) log.debug("sent reg r req: addr: {:3}".format(addr)) res = self._recv_packet() if not isinstance(res, protocol.UnpackedRegReadResponse): raise ClientError("got unexpected type of frame") enc_val = res.reg_val.val log.debug("recv reg r res: addr: {:3} val: {}".format( addr, utils.fmt_enc_val(enc_val))) return enc_val
def _write_reg_raw(self, addr, enc_val, expect_response=True): addr = protocol.get_addr_for_reg(addr) rrv = protocol.UnpackedRegVal(addr, enc_val) req = protocol.UnpackedRegWriteRequest(rrv) self._send_packet(req) log.debug("sent reg w req: addr: {:3} val: {}".format( addr, utils.fmt_enc_val(enc_val))) if expect_response: res = self._recv_packet() if not isinstance(res, protocol.UnpackedRegWriteResponse): raise ClientError( "got unexpected packet (expected reg write response)") if res.reg_val != rrv: raise ClientError("reg write failed") log.debug("recv reg w res: ok")