2024-09-27 17:51:22 发布
网友
我通过蓝牙通过串行连接读取IMU的结果。我已经写完了一些建立基本连接的低级方法。但在编写其他类(例如visualize或calculate)时,我不断地关闭并重新打开串行连接和蓝牙端口。这会给蓝牙驱动程序带来压力,并且端口在使用一定量后不会打开。在
我在一台带有集成蓝牙设备的Windows7 64位笔记本电脑上使用Spyder和Python3.4。我不能改变操作系统,但我可以安装软件。在
有没有一种方法可以让串行连接类在编程其他使用串行连接类的类时运行?在
好吧,您可以通过使用^{} module来提供使用某些触发器热重新加载组件的策略:
from importlib import reload import module_with_your_code def refresh(self): # make your context in a clean slate before reloading reload(module_with_your_code) # init your context
可以通过各种事件触发(如USR1:
或者使用sys.stdin事件…一切由您决定)。在
sys.stdin
但是,我给你的最好的建议是把你的代码分成不同的进程,而不是搞乱你的python解释器。让一个进程与蓝牙通信并通过一些RPC接受数据(无论是原始TCP套接字、文件管道、httprestapi或pubsub消息代理,一切都由您决定!)。在
然后实现第二个模块,该模块为该RPC生成一个客户机,并进行真正的处理。在
最后,如果您必须让这两个代码交互而不进行远程调用,那么您可以轻松地将这两个进程和远程调用替换为Queue和asyncio。在
Queue
asyncio
好吧,您可以通过使用^{} module 来提供使用某些触发器热重新加载组件的策略:
可以通过各种事件触发(如USR1:
^{pr2}$或者使用
sys.stdin
事件…一切由您决定)。在但是,我给你的最好的建议是把你的代码分成不同的进程,而不是搞乱你的python解释器。让一个进程与蓝牙通信并通过一些RPC接受数据(无论是原始TCP套接字、文件管道、httprestapi或pubsub消息代理,一切都由您决定!)。在
然后实现第二个模块,该模块为该RPC生成一个客户机,并进行真正的处理。在
最后,如果您必须让这两个代码交互而不进行远程调用,那么您可以轻松地将这两个进程和远程调用替换为
Queue
和asyncio
。在相关问题 更多 >
编程相关推荐