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, self._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")
test_mode = "envelope" test_mode_val = 2 test_reg = ptcl.REG_LOOKUP[ptcl.NO_MODE]["main_control"] test_mode_reg = ptcl.REG_LOOKUP["envelope"]["running_average_factor"] unp_reg_val = ptcl.UnpackedRegVal(2, b"\x03\x00\x00\x00") unp_reg_read_res = ptcl.UnpackedRegReadResponse(unp_reg_val) pkd_reg_read_res_segment = b"\x02\x03\x00\x00\x00" pkd_reg_read_res_packet = bytearray([ptcl.REG_READ_RESPONSE]) + pkd_reg_read_res_segment pkd_reg_read_res_frame = (bytearray([ptcl.START_MARKER]) + b"\x05\x00" + pkd_reg_read_res_packet + bytearray([ptcl.END_MARKER])) unp_reg_write_req = ptcl.UnpackedRegWriteRequest(unp_reg_val) pkd_reg_write_req_packet = bytearray() pkd_reg_write_req_packet.append(ptcl.REG_WRITE_REQUEST) pkd_reg_write_req_packet.append(unp_reg_write_req.reg_val.addr) pkd_reg_write_req_packet.extend(unp_reg_write_req.reg_val.val) pkd_reg_write_req_frame = bytearray() pkd_reg_write_req_frame.append(ptcl.START_MARKER) pkd_reg_write_req_frame.extend(b"\x05\x00") # len pkd_reg_write_req_frame.extend(pkd_reg_write_req_packet) pkd_reg_write_req_frame.append(ptcl.END_MARKER) def test_get_mode(): assert ptcl.get_mode(test_mode) == test_mode assert ptcl.get_mode(test_mode_val) == test_mode assert ptcl.get_mode(None) is ptcl.NO_MODE