本文整理汇总了Python中array.array.tobytes方法的典型用法代码示例。如果您正苦于以下问题:Python array.tobytes方法的具体用法?Python array.tobytes怎么用?Python array.tobytes使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类array.array
的用法示例。
在下文中一共展示了array.tobytes方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: tostring
# 需要导入模块: from array import array [as 别名]
# 或者: from array.array import tobytes [as 别名]
def tostring(x: array) -> str: return x.tobytes().decode('utf-8')
class Strand(CNObject):
示例2: test_flashdevice_4_long_rw
# 需要导入模块: from array import array [as 别名]
# 或者: from array.array import tobytes [as 别名]
def test_flashdevice_4_long_rw(self):
"""Long R/W test
"""
# Max size to perform the test on
size = 1 << 20
# Whether to test with random value, or contiguous values to ease debug
randomize = True
# Fill in the whole flash with a monotonic increasing value, that is
# the current flash 32-bit address, then verify the sequence has been
# properly read back
# limit the test to 1MiB to keep the test duration short, but performs
# test at the end of the flash to verify that high addresses may be
# reached
length = min(len(self.flash), size)
start = len(self.flash)-length
print("Erase %s from flash @ 0x%06x (may take a while...)" %
(pretty_size(length), start))
delta = now()
self.flash.unlock()
self.flash.erase(start, length, True)
delta = now()-delta
self._report_bw('Erased', length, delta)
if str(self.flash).startswith('SST'):
# SST25 flash devices are tremendously slow at writing (one or two
# bytes per SPI request MAX...). So keep the test sequence short
# enough
length = 16 << 10
print("Build test sequence")
if not randomize:
buf = Array('I')
back = Array('I')
for address in range(0, length, 4):
buf.append(address)
# Expect to run on x86 or ARM (little endian), so swap the values
# to ease debugging
# A cleaner test would verify the host endianess, or use struct
# module
buf.byteswap()
# Cannot use buf directly, as it's an I-array,
# and SPI expects a B-array
else:
seed(0)
buf = Array('B')
back = Array('B')
buf.extend((randint(0, 255) for _ in range(0, length)))
bufstr = buf.tobytes()
print("Writing %s to flash (may take a while...)" %
pretty_size(len(bufstr)))
delta = now()
self.flash.write(start, bufstr)
delta = now()-delta
length = len(bufstr)
self._report_bw('Wrote', length, delta)
wmd = sha1()
wmd.update(buf.tobytes())
refdigest = wmd.hexdigest()
print("Reading %s from flash" % pretty_size(length))
delta = now()
data = self.flash.read(start, length)
delta = now()-delta
self._report_bw('Read', length, delta)
# print "Dump flash"
# print hexdump(data.tobytes())
print("Verify flash")
rmd = sha1()
rmd.update(data.tobytes())
newdigest = rmd.hexdigest()
print("Reference:", refdigest)
print("Retrieved:", newdigest)
if refdigest != newdigest:
errcount = 0
back.fromstring(data)
for pos in range(len(buf)):
if buf[pos] != data[pos]:
print('Invalid byte @ offset 0x%06x: 0x%02x / 0x%02x' %
(pos, buf[pos], back[pos]))
errcount += 1
# Stop report after 16 errors
if errcount >= 32:
break
raise self.fail('Data comparison mismatch')