我正在使用多重处理来运行“启动”功能,这是负责从串行端口读取数据的责任。但是,我读完书后无法关闭端口的问题是,因为我不知道如何将“ s”对象传递给主程序。所以我的问题是:1-我如何将“ s”对象传递给“停止”功能。2- bring_data.terminate()
解决问题了吗? 换句话说,它也破坏了“开始”功能内部的对象吗? (所以也许我可以重新创建对象,然后使用它关闭端口)这是程序的一部分:
def start(x ,y ,z) :
# creat object s :
s = serial.Serial()
s.baudrate = 115200
s.port = 'COM4'
s.open()
print("the port is opened")
def stop(obj) :
obj.close()
print("the port is closed")
if __name__ == "__main__" :
get_data = mp.Process(target = start , args = ( x, y ,z ))
get_data.start()
#?????????????
stop(obj)
[显然,是的,确实bring_data.terminate()
正在破坏函数内的所有对象,包括“ s”对象,并且端口最终关闭。这不是一个理想的解决方案,但它会尽力而为。