0f7987d12377ce9f773916c9cb3cd754eca9d4ec
10 def __init__(self
, port
, baudrate
=115200, debug
=False):
12 self
.baudrate
= str(baudrate
)
14 self
.port
= serial
.serial_for_url(port
, baudrate
)
17 if hasattr(self
, "port"):
22 if not hasattr(self
, "port"):
26 def _read(self
, length
):
28 while len(r
) < length
:
29 r
+= self
.port
.read(length
- len(r
))
32 def _write(self
, data
):
36 written
= self
.port
.write(data
[pos
:])
40 def read(self
, addr
, length
=None):
42 length_int
= 1 if length
is None else length
43 self
._write
([self
.msg_type
["read"], length_int
])
44 self
._write
(list((addr
//4).to_bytes(4, byteorder
="big")))
45 for i
in range(length_int
):
46 value
= int.from_bytes(self
._read
(4), "big")
48 print("read {:08x} @ {:08x}".format(value
, addr
+ 4*i
))
54 def write(self
, addr
, data
):
55 data
= data
if isinstance(data
, list) else [data
]
57 self
._write
([self
.msg_type
["write"], length
])
58 self
._write
(list((addr
//4).to_bytes(4, byteorder
="big")))
59 for i
, value
in enumerate(data
):
60 self
._write
(list(value
.to_bytes(4, byteorder
="big")))
62 print("write {:08x} @ {:08x}".format(value
, addr
+ 4*i
))