广告招募

当前位置:全球资源网 > 技术中心 > 所有分类

通过Python访问Kvaser CANlib软件开发包(1/3)

2025年11月12日 09:46:05      来源:广州智维电子科技有限公司 >> 进入该公司展台      阅读量:0

分享:

本文是通过Python使用Kvaser产品三篇系列文章的篇

1. 通过Python访问Kvaser CANlib

2. 通过Python连接到远程设备

3. 通过Python访问Kvaser设备的面向对象程度更高的方法

你知道你可以从Python访问Kvaser CANlib吗?现在Kvaser CANlib SDK中包含的CANlib已经支持Python包装器一段时间了,但是我们最近对其进行了全面改造,如我们这里要提到的,程式库更丰富以及功能更多。目前,包装器仅在Python v2.7中进行了测试,不兼容Python v3

SDK版见/downloads/ (当前版本为v 5.9 发布日期为2015-03-17)。如果您打算直接编辑示例,请确保将SDK安装到具有写入权限的位置(默认位置 C:Program Files(x86)KvaserCanlib 并不是的保存位置。,如下所示,我选择了C:emp.的一个子目录)

下载的Python示例目录现在包含CANlibkvrlib二者的包装器。要了解如何使用它们,请参阅每个包装器文件的底部。例如:如下所示的canlib.py

import sys

sys.path.append("C:/temp/Canlib_SDK_v5.9/Samples/Python")

import canlib

cl = canlib.canlib()

print "canlib version: %s" %cl.getVersion()

channel = 0

handle1 = cl.openChannel(channel,canlib.canOPEN_ACCEPT_VIRTUAL)

print "Using channel: %s, EAN:%s" % (handle1.getChannelData_Name(),

handle1.getChannelData_EAN())

handle1.setBusOutputControl(canlib.canDRIVER_NORMAL)

handle1.setBusParams(canlib.canBITRATE_1M)

handle1.busOn()

View sourceCopy to clipboard

运行上述代码输出结果为:

canlib version: 8.9

Using channel: Kvaser Ethercan Light HS(Remote) (channel 0), EAN: 73-30130-00713-0

CANlib的老用户都知道,输出的canlib.dll版本号(8.9)与CANlib软件包(v5.9)的版本号不同。

添加变量sys.path(如第2行所示)是通过Python可以访问模块的一种方法,更普遍的方法是在调用脚本之前设置环境变量PYTHONPATH

Python包装器使用ctypesKvaser CANlib进行对接。这是Python的外部函数库,它提供可兼容C语言的数据类型,并允许在DLL或共享库中调用函数。这意味着也可以在Linux上使用这些示例(但是由于kvrlib尚未移植到Linux,因此目前于CANlib)。

版权与免责声明:
1.凡本网注明"来源:全球资源网"的所有作品,版权均属于全球资源网,转载请必须注明全球资源网。违反者本网将追究相关法律责任。
2.企业发布的公司新闻、技术文章、资料下载等内容,如涉及侵权、违规遭投诉的,一律由发布企业自行承担责任,本网有权删除内容并追溯责任。
3.本网转载并注明自其它来源的作品,目的在于传递更多信息,并不代表本网赞同其观点或证实其内容的真实性,不承担此类作品侵权行为的直接责任及连带责任。其他媒体、网站或个人从本网转载时,必须保留本网注明的作品来源,并自负版权等法律责任。 4.如涉及作品内容、版权等问题,请在作品发表之日起一周内与本网联系。