gpt4 book ai didi

python - 在 Python 仿真中使用嵌入式 C 库

转载 作者:太空狗 更新时间:2023-10-30 02:34:40 24 4
gpt4 key购买 nike

小问题
从现有的嵌入式 C 库中模拟(在 Python 中)复杂的 (SAE J1939) 通信堆栈会更容易:
1) 完整端口——意味着手动将所有 C 函数转换为 python 模块
2) 将堆栈包装在 Python 包装器中——意思是在 Python 中调用真正的 c 代码

背景信息
我已经用 Python 编写了这个堆栈的一小部分,但是要以 100% 的覆盖率实现它们并不简单。正因为如此,我们最近为我们的嵌入式平台购买了现成的 SAE J1939 堆栈。澄清一下,我知道接触硬件层的部分必须重新创建并映射到 PC 的 CAN 驱动程序。

我希望在 SO 上找到已经或什至考虑将 5k LOC C 库移植到 Python 的人。如果有任何 C 到 Python 的工具可以很好地工作,那么对我进行研究也会有所帮助。

最佳答案

我的建议是包装它。

这样做的原因:

  • 如果你一个函数一个函数地转换,你会引入新的错误(我们只是人类)而且这种东西很难测试
  • 使用 swig 可以轻松完成 python 包装甚至 ctypes要即时加载 dll,您会找到大量教程
  • 如果您的库得到更新,从长远来看,您的影响会较小。

但是,您需要

  • 检查您购买的许可证是否允许您这样做
  • 知道在嵌入式和 PC 端有相同的实现,这无助于跟踪错误
  • 与完整的 python 实现相比,您的可移植性可能稍差(无论如何,这对您来说意义不大,因为您的低层需要根据目标重写)

关于python - 在 Python 仿真中使用嵌入式 C 库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6907583/

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