广告招募

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

Python开发实例已添加到开发包中

2025年11月12日 10:17:40      来源:广州智维电子科技有限公司 >> 进入该公司展台      阅读量:1

分享:

随着CANlib SDK v5.17的发布,Python实例包也已经更新。并非只是发布单独的Python文件,而是现在将这些文件放置在PythonWheel中以及方便安装的.zip压缩包。

希望即使你现在需要更改当前的Python脚本,新版本打包的好处也将胜过麻烦。

我们支持Python 2.7,但还没有支持Python 3.4+(存在一些已知的Unicode字符串的问题)。

我们非常感谢您能通过电子邮件发送到support提供错误报告、贡献、改进建议以及其他类似方面。

安装

我们首先需要安装Python CANlib包装器所依赖的DLL或共享对象文件。

Windows

Windows上,通过在Kvaser下载页面上找到、下载并安装“KvaserWindows驱动程序来安装`canlib32.dll’。这也将安装`kvrlib’使用的所有.dll文件。

如果要使用kvmlib包装器,Kvaser CANlib SDK也可以从同一位置下载并安装。

Linux

Linux上,通过在Kvaser下载页面上找到、下载并安装“KvaserLINUX驱动程序和开发包来安装libcanlib.so

目前,Linux上仅支持Kvaser CANlib

Python包

下一步是安装Python canlib包,可以在Python目录中的实例文件夹下找到,它也是安装CANlib SDK的目录。使用如pip(其中x.y.z是版本号)安装Python包:

pip install canlib-x.y.z.zip

如果你运行的是版本的PythonPython 3.4Python2.7.9或更高版本),你已经包含pip。如果你运行的是较早版本的Python,你可以按照此处的安装说明安装pip

用法

Python包将尽力找出CANlibSDK安装的目录来找到.dll文件。如果失败,或者你想指向所需的.dll文件存放的模块位置,设置环境变量`KVDLLPATH’指向相关的目录。

由于Python代码现在放在一个模块中,我们还必须将模块名称’canlib’添加到导入和使用语句中,例如类似这样:

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

卸载

由于我们使用pip,我们可以显示有关已安装的Python包的详细信息:

pip show canlib

我们还可以使用以下方法卸载包:

pip uninstall canlib

Linux上运行Python开发包

今天我们来看看如何使用Kvaser的新版Python开发包canlib来设置和发送CAN报文。本例子中我们使用Kvaser USBcan Pro 2xHS v2,但可以使用任何Kvaser分析仪产品。

步是下载并安装Kvaser Linux驱动程序和开发包(CANlib当前版本v5.18):

$ cd ~

$ wget /software/7330130980754/V5_18_0/linuxcan.tar.gz

$ tar xf linuxcan.tar.gz

$ cd linuxcan

$ make

$ sudo make install

现在我们将Kvaser分析仪插入USB端口并运行`listChannels’实例程序,以验证驱动程序是否正确加载以及设备是否被识别:

$ cd canlib/examples

$ ./listChannels

Found 2 channel(s).

channel 0 = Kvaser USBcan Pro 2xHS v2, 73-30130-00752-9, 1012, 3.4.0.822

channel 1 = Kvaser USBcan Pro 2xHS v2, 73-30130-00752-9, 1012, 3.4.0.822

下一步是下载并安装Python canlib开发包(当前版本是v1.1.23):

$ cd ~

$ wget /software/7330130981911/V1_1_23/canlib-1.1.23.zip

$ pip install canlib-1.1.23.zip

如果你使用Python v3,为了Python开发包安装在正确的地方,你可能会使用 pip3而不是pip。

现在我们可以编写一个小的Python程序,sendReceiveSingleCanMsg.py,用于在通道1上发送CAN报文,并在通道0上接收相同的CAN报文:

import canlib.canlib as canlib

def setUpChannel(channel=0,

openFlags=canlib.canOPEN_ACCEPT_VIRTUAL,

bitrate=canlib.canBITRATE_500K,

bitrateFlags=canlib.canDRIVER_NORMAL):

cl = canlib.canlib()

ch = cl.openChannel(channel, openFlags)

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

ch.setBusOutputControl(bitrateFlags)

ch.setBusParams(bitrate)

ch.busOn()

return ch

def tearDownChannel(ch):

ch.busOff()

ch.close()

运行上面的Python程序会产生以下结果:

$ python sendReceiveSingleCanMsg.py

canlib version: 5.18

Using channel: Kvaser USBcan Pro 2xHS v2 (channel 0), EAN: 73-30130-00752-9

Using channel: Kvaser USBcan Pro 2xHS v2 (channel 1), EAN: 73-30130-00752-9

time: 2819710 id: 100 flag:0x04 dlc:4 data:

如果你使用Python v3,你很可能会使用python3而不是python。

因此,我们已经使用Python canlib开发包成功地发送和接收了一条CAN报文。

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