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

时间:2015-08-19 22:04:02

标签: python pyserial

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

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

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

任何人都可以建议我如何做到这一点?

感谢。

1 个答案:

答案 0 :(得分:1)

“随机”我认为你的意思是“任意”,即如何发送任意数量的字节......

您可以生成一系列重复数字,如下所示:

>>> ''.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