Python/Pyserial: 从端口读取传入信息
Python/Pyserial: reading incoming information from port
我刚刚开始使用 pyserial,因为我最终需要 read/save 来自特定端口的信息。使用以下代码,我只是打印使用的端口,然后尝试写入并读取一些文本 ("hello")。端口打印正常,但我的字符串输出为 5。知道这是为什么吗?
import serial
import sys
from time import sleep
try:
ser = serial.Serial('\.\COM8', 9600,timeout=None, parity=serial.PARITY_NONE, stopbits=serial.STOPBITS_ONE, bytesize=serial.EIGHTBITS)
except:
sys.exit("Error connecting device")
print ser.portstr
x = ser.write("hello")
print x
ser.close()
输出:
>>>
\.\COM8
5
>>>
此外,是否有一种简单的方法可以让我模拟通过端口传入的文本信息流,以便我可以测试读取 in/saving 传入信息?
我正在使用 Python 2.7 和 'virtual serial port driver 8.0' [Eltima VSPD] 来模拟用于测试这些东西的端口。
谢谢,
史蒂夫
x = ser.write("hello")
print x
你写的是发送的。它没有收到信息。可能它写了你发送的字符串的长度。
首先,您需要有一个客户端脚本来响应您发送的信息。
而且你必须在上面使用类似的东西。
... x = ser.read() # read one byte
... s = ser.read(10) # read up to ten bytes (timeout)
... line = ser.readline() # read a '\n' terminated line
你可以这样测试一下。首先在manage ports
中创建一对端口
第一个端口:COM199
第二个端口:COM188
点击添加对
在一个 console/script 上执行以下步骤:
>>> import serial
>>> ser = serial.Serial('COM196', 9600,timeout=None, parity=serial.PARITY_NONE, stopbits=serial.S
BITS_ONE, bytesize=serial.EIGHTBITS)
>>> print ser.portstr
COM196
>>> x = ser.read(5) # It will be waiting till it receives data
>>> print x
hello
在另一个控制台上,执行以下步骤:
>>> import serial
>>> s = serial.Serial('COM188')
>>> s.write("hello")
5L
您可以用这种方式(或)通过为每个端口创建 python 程序来测试它
我刚刚开始使用 pyserial,因为我最终需要 read/save 来自特定端口的信息。使用以下代码,我只是打印使用的端口,然后尝试写入并读取一些文本 ("hello")。端口打印正常,但我的字符串输出为 5。知道这是为什么吗?
import serial
import sys
from time import sleep
try:
ser = serial.Serial('\.\COM8', 9600,timeout=None, parity=serial.PARITY_NONE, stopbits=serial.STOPBITS_ONE, bytesize=serial.EIGHTBITS)
except:
sys.exit("Error connecting device")
print ser.portstr
x = ser.write("hello")
print x
ser.close()
输出:
>>>
\.\COM8
5
>>>
此外,是否有一种简单的方法可以让我模拟通过端口传入的文本信息流,以便我可以测试读取 in/saving 传入信息?
我正在使用 Python 2.7 和 'virtual serial port driver 8.0' [Eltima VSPD] 来模拟用于测试这些东西的端口。
谢谢, 史蒂夫
x = ser.write("hello")
print x
你写的是发送的。它没有收到信息。可能它写了你发送的字符串的长度。 首先,您需要有一个客户端脚本来响应您发送的信息。
而且你必须在上面使用类似的东西。
... x = ser.read() # read one byte
... s = ser.read(10) # read up to ten bytes (timeout)
... line = ser.readline() # read a '\n' terminated line
你可以这样测试一下。首先在manage ports
中创建一对端口第一个端口:COM199 第二个端口:COM188
点击添加对
在一个 console/script 上执行以下步骤:
>>> import serial
>>> ser = serial.Serial('COM196', 9600,timeout=None, parity=serial.PARITY_NONE, stopbits=serial.S
BITS_ONE, bytesize=serial.EIGHTBITS)
>>> print ser.portstr
COM196
>>> x = ser.read(5) # It will be waiting till it receives data
>>> print x
hello
在另一个控制台上,执行以下步骤:
>>> import serial
>>> s = serial.Serial('COM188')
>>> s.write("hello")
5L
您可以用这种方式(或)通过为每个端口创建 python 程序来测试它