我正在使用MacOS上的代码连接来连接设备,并且100次此代码仅连接1或2次,并且没有响应(因为没有超时)其余时间。
ser = serial.Serial(port="/dev/xyz",timeout = None, baudrate=115200, parity = serial.PARITY_NONE, bytesize = serial.EIGHTBITS, stopbits = serial.STOPBITS_ONE)
def exitSer(ser):
print("Closing")
ser.close()
atexit.register(exitSer, ser)
if ser.is_open:
time.sleep(2)
while(1):
print(ser.readline().decode("utf-8"))
请您告诉我如何使用fcntl等程序来查找此端口是否完全免费且可供使用,以及如何在强制端口释放后将tty port的标志设置为空闲。
一旦这个工作,我必须运行这个多线程,其中每个线程运行不同的设备,期望在行中输出。对此有任何建议,万一这样做。
答案 0 :(得分:0)
def startSerial(tty_id):
ser = serial.Serial(port = tty_id, timeout = None)
ser.close()
ser.open()
if ser.isOpen():
print(ser.portstr, ":connection successful.")
return ser
else:
return False
在.open()之前调用ser.close()修复它。我测试了大约200次,到目前为止我还没有失望。我现在正在多线程中测试它,希望它也有效。
谢谢大家。