如何使pyserial环回工作?

2024-10-01 15:31:41 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试测试一个串行连接,在连接外部设备之前,它将实际提供数据。我试图使用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

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

^{pr2}$

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

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

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

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

如有任何帮助/建议,我们将不胜感激。在

Win 7,x64m py3.3

顺便说一句,我知道com0com-我就是不能在我的机器上运行它。在


Tags: 数据looptargettimedefserialsleepthread

热门问题