示例#1
0
    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")
import acconeer.exptool.clients.reg.protocol as ptcl
from acconeer.exptool.clients.reg import regmap
from acconeer.exptool.modes import Mode

unp_reg_val = ptcl.RegVal(2, b"\x03\x00\x00\x00")
unp_reg_read_res = ptcl.RegReadResponse(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.RegWriteRequest(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_unpack_packet():
    unpacked = ptcl.unpack_packet(pkd_reg_read_res_packet)
    assert unpacked == unp_reg_read_res


def test_unpack_reg_read_res_segment():