python - 如何使 pyserial 环回工作?

标签 python python-3.x python-3.3 pyserial loopback

在连接实际获取数据的外部设备之前,我正在尝试测试串行连接。我正在尝试使用 pySerial 的“loop://”设备,但我没有正确接收数据。我从一个非常玩具的程序开始,只要确保我理解它如何/是否可以工作。显然我不知道。 :)

这是我的数据“来源”

def serialDataPump():
    ser = serial.serial_for_url('loop://', timeout=1)
    testCtr = 0;
    while not bbq.closing and testCtr<10:
        ser.write(bytes("Test\n", encoding='ascii'))
        time.sleep(1)
        testCtr += 1

这是我的数据“接收器”:

def serialDataTestRcv():
    ser = serial.serial_for_url('loop://', timeout=1)
    while not bbq.closing:
        line = ser.readline()
        sys.stdout.write('received' + str(line))

这是我的测试函数 - 我使用两个线程:

def testSerMain():
    thread1 = Thread(target = serialDataPump)
    thread2 = Thread(target = serialDataTestRcv)
    thread1.start()
    thread2.start()
    thread1.join()
    bbq.closing = True
    time.sleep(2)
    exit()

最后,这是输出 - 我至少收到了 EOL,因为 readline()在终止之前解除阻塞并恰好循环 11 次,这表明泵和接收都在循环并正确终止。但是,正如您所看到的,它只接收空数据 + EOL:

>>> 
receivedb''receivedb''receivedb''receivedb''receivedb''receivedb''receivedb''receivedb''receivedb''receivedb''receivedb''
>>> 

Win 7,x64m py3.3

顺便说一下,我了解 com0com - 我只是无法在我所在的计算机上运行它。

最佳答案

我发现了这个问题 - 您必须使用为接收和 Xmt 创建的同一个 ser = serial.serial_for_url('loop://', timeout=1) 实例。

关于python - 如何使 pyserial 环回工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24440143/

相关文章:

python - tweepy api.me() 不返回 friend 的用户对象

python - 如何使用 python 和 rpy2 控制 R 图的显示位置?

mysql - mysql db 的 Docker-Compose 服务引用在 Flask 服务中不起作用 : name 'mysqldb' not defined

python - python 如何正确使用2to3?

python ->> 在 float 和 int 上的 TypeError

python - 你能从函数、args 和 kwargs 中确定变量将如何分配吗?

python - Python中微分方程的并行求解

python - python中读取的csv格式错误

python-3.x - TensorFlow:神经网络在训练和测试集上的准确率始终为 100%

python - 如何测试我的代码