编程语言
首页 > 编程语言> > 在Python仿真中使用嵌入式C库

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

作者:互联网

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

背景资料
我已经在Python中编写了这个堆栈的一小部分,但是它们非常无法实现100%的覆盖率.由于这个原因,我们最近为我们的嵌入式平台购买了现成的SAE J1939堆栈.为了澄清,我知道触摸硬件层的部分必须重新创建并映射到PC的CAN驱动程序.

我希望在SO上找到有人甚至考虑将5k LOC C库移植到Python.如果有任何C到Python的工具运行良好,这对我来说也很有帮助.

解决方法:

我的建议是包装它.

原因:

>如果你按功能转换功能,你会引入新的bug(我们只是人类),这种东西很难测试
>包装python很容易,使用swig甚至ctypes即时加载dll,你会发现大量的教程
>如果你的lib得到更新,你的长期影响会更小.

但是,你需要

>检查您购买的许可证是否允许您这样做
>知道在嵌入式和PC端具有相同的实现,它无助于跟踪错误
>你可能比完整的python实现具有更少的可移植性(无论如何,对你来说不是很重要,因为你的低层需要为每个目标重写)

标签:python,c-3,embedded,network-protocols
来源: https://codeday.me/bug/20190530/1186454.html