Python 3:如何通过 COM(串行)端口发送随机字节数

Python 3: how to send random number of bytes over the COM(serial) port

我写了一个 Python 脚本,我可以在其中通过 COM 端口发送固定字节。

ser.write(bytes('0123456789',encoding='ascii'))

我想参数化脚本可以发送的字节数。

有人可以建议我怎么做吗?

谢谢。

"random" 我想你的意思是 "arbitrary",即如何发送任意数量的字节...

您可以像这样生成一系列重复数字:

>>> ''.join([str(i%10) for i in range(21)])
'012345678901234567890'

所需的字节数可以作为命令行参数传递给脚本。它的值将在 sys.argv[] 列表中可用。

import sys
import serial

try:
    num_bytes = int(sys.argv[1])
except (IndexError, ValueError):
    sys.stderr.write('Usage: {} num-bytes\n'.format(sys.argv[0]))
    sys.exit(1)

ser = serial.Serial()    # set up your serial port
digits = ''.join(str(i%10) for i in range(num_bytes))
num_written = ser.write(bytes(digits, 'ascii'))

像这样调用命令:

$ python3 send_bytes.py 42