我发现此代码用于使用串行端口进行通信的简单聊天,我希望看到它有效。我用谷歌搜索了一段时间,发现com0com模拟RS-232连接,因为我没有电缆,但现在我很难过,不知道如何实际工作
代码(在python中):
from serial import *
from threading import Thread
class Receiver(Thread):
def __init__(self, serialPort):
Thread.__init__(self)
self.serialPort = serialPort
def run(self):
text = ""
while (text != "exit\n"):
text = serialPort.readline()
print ("\n machine1: " + text)
self.serialPort.close()
class Sender(Thread):
def __init__(self, serialPort):
Thread.__init__(self)
self.serialPort = serialPort
def run(self):
text = ""
while(text != "exit\n"):
text = raw_input("Type your message>>") + "\n"
self.serialPort.write(text)
self.serialPort.close()
serialPort = Serial("\\\\.\\CNCA0")
send = Sender(serialPort)
receive = Receiver(serialPort)
send.start()
receive.start()
提前致谢。
答案 0 :(得分:1)
我也对类似的代码感兴趣。 不幸的是,直到明天,我将无法在两台计算机上对其进行测试。
仅在Tx上工作,在Rx上尚不工作。
import serial
from threading import Thread
serialPort = serial.Serial(port='/dev/ttyUSB0', baudrate=9600)
class Receiver(Thread):
def __init__(self, serialPort):
Thread.__init__(self)
self.serialPort = serialPort
def run(self):
text = ""
while (text != "exit\n"):
text = serialPort.readline()
print ("\n machine1: " + text)
class Sender(Thread):
def __init__(self, serialPort):
Thread.__init__(self)
self.serialPort = serialPort
def run(self):
text = ""
while(text != "exit\n"):
text = raw_input("$:")
self.serialPort.write(' ' + text + '\n')
send = Sender(serialPort)
receive = Receiver(serialPort)
send.start()
receive.start()
答案 1 :(得分:0)
首先需要使用com0com创建一个带环回的串口,即端口的输出连接回输入。这样,您从串行端口发送的所有内容都将收到回传。
代码段使用Sender类来读取命令提示符输入。无论你写什么都是通过串口发送的。 Receiver类生成一个线程并等待从串行端口接收的内容。收到整行后,将在命令提示符下键入。
需要注意的事项: