在Python仿真使用嵌入式C库

简短的问题
这将是更容易从现有的嵌入式C库效仿(在Python)复(SAE J1939)通信栈:
1)全口 - 手动意味着将所有的C函数到Python模块
2)包装在Python包装栈 - 这意味着调用真正的C代码在Python

背景资料
我已经写了这个堆在Python的一小部分,但他们都非常不繁琐100%的覆盖​​率来实现。 因为这个原因,我们最近购买一个现成的SAE J1939协议栈为我们的嵌入式平台。 为了澄清,我知道触摸硬件层部分将不得不被重新创建并映射到PC的CAN驱动器。

我希望能找到这里所以有人已经甚至看着移植一个5K LOC C库到Python。 如果有任何C Python的工具,很好地工作,这将是有益的给我看看为好。

--------------解决方案-------------

我的建议是把它包起来。

对于原因:

  • 如果通过功能转换功能,你会引入新的问题(我们只是人),而这种东西是相当困难的考验
  • 包装为Python是很容易做到,使用痛饮甚至ctypes的加载上飞一个dll,你会发现吨教程
  • 如果你的LIB得到更新,必须从长远来看影响较小。

但是,你需要

  • 请检查您购买的许可证允许你这样做
  • 知道有嵌入式和PC端相同的实现,这将不利于追踪错误
  • 你可能不是一个完整的Python实现便携性少一点(反正没有太大的点作为您低层需要每个目标重写)

绝对包裹。 这可能是因为容易正在运行ctypesgen.py,然后使用它。 检查有关使用ctypesgen,以获得访问完整的API来创建libreadline http://wavetossed.blogspot.com/2011/07/asynchronous-gnu-readline.html包装本博客文章。

分类:蟒蛇 时间:2012-01-01 人气:0
分享到:

相关文章

  • 什么是用从计算机A与最低的延迟零星转移整数到B正确的网络协议? 2013-02-03

    我不是一个网络专家,所以请多多包涵. 我需要建立两个计算机之间的计算机B的连接和数据传输总是会在一个很简单的单向数据连接,这将在使用〜每100ms传送一个整数(INT8或INT16),从计算机A方向A - > B.因为我想尽可能快地作出反应,@乙来的包,我想知道我应该按顺序使用的协议,以减少网络延迟. 也就是说,我要转移到作为'实时'越好,最好有潜伏期为<10毫秒(没有包应该迷路如果可能的话). 因此,这里是我的具体问题: 什么样的通信协议都适合这份工作? 这是潜伏,我试图达到现实吗? 什么是

  • 如何衡量网络性能(如何进行基准测试的网络协议) 2013-11-06

    首先,有点背景. 有分布式版本控制系统(DVCS)的比较资料库的大小,或操作的基准速度的许多不同的比较. 我还没有发现任何会各种DVCS的基准网络性能,以及涉及网络就像"克隆","拉"/"取"或"推"用于...测量操作(命令)速度旁边的各种协议. 我想知道,那么你会如何做这样的比较; 如何测量的应用程序的网络的性能,或如何基准网络协议. 我设想在这里,其中还测量性能对网络和延迟(ping时间)网络的带宽两者的依赖; 在更多的往

  • 什么类型的数据压缩确实TCP / IP或任何其他网络协议使用? 2012-01-14

    什么类型的数据压缩确实TCP / IP或任何其他网络协议使用? --------------解决方案------------- 我会问这对在TechNet Windows 7的IT专业网络论坛... http://social.technet.microsoft.com/Forums/en-US/w7itpronetworking/threads

  • 如何实现网络协议? 2012-06-20

    这是一个普通的问题. 我不是在寻找最好的答案,我只是想你表达你最喜欢的做法. 我希望在Java中实现的网络协议(但是这是一个相当普遍的问题,我用C面临着同样的问题++),这是不是第一次了,我以前也这样做过. 但我觉得我失去了实现它的好方法. 实际上,通常这是所有关于交换文本信息和主机之间的一些字节的缓冲区,存放状态,等待下一条消息来了. 问题是,我通常结束了一堆开关和复杂程度,如果说应对不同的状态/信息报表. 整个事情往往会获得复杂和难以十个分量. 更何况,有时什么出来有一定的"盲区"

  • 在Linux中TIPC网络协议 2012-06-27

    我应该怎样的程序来使用TIPC网络协议,附带Linux内核(CONFIG_TIPC xconfig的参数)? 是否有任何应用程序,它使用TIPC? --------------解决方案------------- TIPC旨在用于高可用性计算机集群通信. 主要解决sheme的重点是服务,而不是位置. TIPC还可以用几个"轿夫"的冗余,功能链接和处理器的监督. 除非你正在使用的计算机集群,你可能不应该使用TIPC. TIPC使用标准的套接字接口. 您必须在集群中配置该处理器才可以使用TI

  • 如何编写(实现)网络协议(规格) 2012-07-15

    如何编写(实施)的网络协议,如FTP,BT下载,ADC的Gnutella等? 什么是使用的语言? 其中,donwloads来源? 我是读有二手Boost.Asio的,boost.spirit,嘟,类型长度值,还有什么更好的选择呢? --------------解决方案------------- 你说的是实施现有的协议,或创建一个新的? 我将承担前者. 你首先需要的是规范. 标准的互联网协议是由RFC中指定. 例如,FTP由RFC 959规定你提到不是标准的其他协议,但它们仍然可能有规格; 例如,

  • 如何理解网络协议? 2012-09-25

    我在web开发工作,但我没有网络协议非常了解. 我记得听到TCP,HTTP和SSL可以被认为是一系列围绕着实际的请求内容嵌套的信封一个类比. 我也有一个模糊的想法TCP数据包组成,这是在另一端验证的. 但我那种被描绘切碎成包的HTTP请求,太... 所以基本上,我也不好都不懂这些东西. 任何人都可以给一个很好的概述? 此外,有没有一个适合初学者的书籍或其他资源,你会建议? --------------解决方案------------- 因为我问这个问题,我更多地了解了这个话题,所以我会在回答我自

  • 如何网络协议实现的? 2012-11-03

    我知道一个协议是一套规则支配网络上两台计算机之间的通信,但是怎么都放入系统规则来实现的电脑吗? 是一种协议基本上一段代码或,换句话说,软件? --------------解决方案------------- 在彼此的协议一般都建. 在冠冕堂皇的迂腐的风险,这里有一个协议的一个例子,/它是如何实现的: 应用协议 -的方式特定应用会谈到自身或相应的服务器的另一实例; 这是在应用程序代码或共享库中实现 TCP(或UDP或其他层) -该信息被发送在二进制级别和分裂成可用的块,然后在目的地重新组合的方式;

  • 如何编写(实施)应用层网络协议 2012-11-23

    我想写(执行)以上的TCP应用一个层网络协议. 你能告诉我怎么开始做呢? 任何网上的教程也将是有帮助的球员,我需要SM实现教程了. 我是新来这一点,没那么多时间还:( RFC更多的是规则 --------------解决方案------------- 通过读取SMTP协议标准的开始. 这是(最初)一个非常简单的协议没有任何附加条件,不混淆或虚假陈述. HTTP和FTP是更复杂(初学者),因为他们更丰富的功能,非线性(在很多方面)等. UPD:我已经把该链接到原来的RFC 821,这是现在已经过时

  • 我怎样才能反向工程网络协议(的MetaTrader 4)? 2013-01-20

    我需要逆向工程的MetaTrader 4的网络协议. MT4服务器没有一个API,我已经找到关于它的协议零文档. 任何有关在那里我可以开始的想法? 我从来没有做过这种工作过,但我知道这是可行的. 有人已经做到了,开发的专有API库说话来回任何MT4服务器. 我的计划是开源的,可以不必运行MetaTrader的客户端都可以使用MT4-python的API库(MT4专家顾问不是一个选项). --------------解决方案------------- 其实 ,有一个(官方)的MT4服务器API.

Copyright (C) 55228885.com, All Rights Reserved.

55228885 版权所有 京ICP备15002868号

processed in 0.382 (s). 10 q(s)