def write_reg_raw(self, addr, enc_val, do_log=True): addr = regmap.get_reg_addr(addr) b = bytearray([protocol.REG_WRITE_REQUEST, addr, 0, 0]) self.dev.spi_master_single_write(b) if do_log: log.debug("reg w req: addr: 0x{:02x} val: {}".format(addr, fmt_enc_val(enc_val))) self.dev.spi_master_single_write(enc_val)
def read_reg_raw(self, addr, do_log=True): addr = regmap.get_reg_addr(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) if do_log: log.debug("reg r res: addr: 0x{:02x} val: {}".format(addr, fmt_enc_val(enc_val))) return enc_val
def _handshake(self): self._write_reg("main_control", "stop", expect_response=False) exp_addr = regmap.get_reg_addr("main_control") exp_enc_val = regmap.get_reg("main_control").encode("stop") exp_reg_val = protocol.RegVal(exp_addr, exp_enc_val) exp_packet = protocol.RegWriteResponse(exp_reg_val) exp_frame = protocol.insert_packet_into_frame(exp_packet) self._link.recv_until(exp_frame)
def _write_reg_raw(self, addr, enc_val, expect_response=True): addr = regmap.get_reg_addr(addr) rrv = protocol.RegVal(addr, enc_val) req = protocol.RegWriteRequest(rrv) self._send_packet(req) log.debug("sent reg w req: addr: 0x{:02x} val: {}".format(addr, fmt_enc_val(enc_val))) if expect_response: res = self._recv_packet() if not isinstance(res, protocol.RegWriteResponse): 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")
def _read_reg_raw(self, addr): addr = regmap.get_reg_addr(addr) req = protocol.RegReadRequest(addr) self._send_packet(req) log.debug("sent reg r req: addr: 0x{:02x}".format(addr)) res = self._recv_packet() if not isinstance(res, protocol.RegReadResponse): raise ClientError("got unexpected type of frame") enc_val = res.reg_val.val log.debug("recv reg r res: addr: 0x{:02x} val: {}".format(addr, fmt_enc_val(enc_val))) return enc_val
def read_buf_raw(self, addr, size): addr = regmap.get_reg_addr(addr) buffer = self.__cmd_proc("read_buf_raw", addr, size) return buffer
def _write_reg_raw(self, addr, enc_val): addr = regmap.get_reg_addr(addr) self.__cmd_proc("write_reg_raw", addr, enc_val)
def _read_reg_raw(self, addr): addr = regmap.get_reg_addr(addr) enc_val = self.__cmd_proc("read_reg_raw", addr) return enc_val