gpt4 book ai didi

用于硬件控制的 Python 服务器(可能带有 Twisted?)

转载 作者:太空宇宙 更新时间:2023-11-03 15:26:45 26 4
gpt4 key购买 nike

我目前正在编写一个可以让客户端与硬件交互的服务器程序。对于感兴趣的读者来说,它是一种同时监测一组激光器波长(并控制激光器)的设备。服务器应该能够定期广播波长( float 列表),并让客户端通过 dll 调用更改设备的设置。

我最初的想法是编写一个自定义协议(protocol)来处理通信,但是在考虑如何处理 TCP 碎片和数据编码之后我碰到了 Twisted,如果我使用 perspective broker 看起来大部分工作已经完成共享数据并直接从客户端调用服务器方法。这个解决方案可能有点矫枉过正,但对我来说很明显,你怎么看?

当我想到客户时,我的主要担忧就出现了。基本上我需要两种类型的客户端,一种只显示波长(这应该很简单),另一种可以更改设备设置并在更改时获得反馈。我的想法是创建一个能够同时具备这两种功能的客户端,但是考虑将它与我们以前的系统结合起来让我开始思考......第二个客户端应该由一个已经相当复杂的 python 框架控制,该框架控制着许多独立的硬件,并且相对严格时序要求,然后应在此顺序代码中调用波长计的设置。现在问题是,我如何将其与 Twisted 客户端混合使用?据我所知,Twisted 不是线程安全的,所以我不能简单地生成一个运行 react 堆的新线程,然后从我的主线程与它交互,可以吗?

非常欢迎通过不同于 Twisted 的方式编写此服务器/客户端框架的任何建议!

谢谢

最佳答案

您可以在专用线程中启动 react 堆,然后使用 blockingCallFromThread 发出对它的调用。来自您现有的“顺序”代码。

另外,我推荐 AMP对于协议(protocol)而不是 PB,因为 AMP 更适合异构环境 (see amp-protocol.net for independent protocol information),而且听起来您可能希望将大量其他技术与该系统集成。

关于用于硬件控制的 Python 服务器(可能带有 Twisted?),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5823163/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com