空燃比分析仪,horiba尾气分析仪,CAN总线分析仪,CAN数据记录仪

广州智维电子科技有限公司

Guangzhou Triv Electronic Technologies Co.LTD

技术服务
SUPPORT

目前位置: 首页 > 技术服务 > 技术资讯

2017-08-07

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

作者:admin    点击:3157

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

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

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

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

安装

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

Windows

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

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

Linux

Linux上,通过在Kvaser下载页面上找到、下载并安装“Kvaser LINUX驱动程序和开发包来安装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.4Python 2.7.9或更高版本),你已经包含pip。如果你运行的是较早版本的Python,你可以按照此处的安装说明安装pip

用法

Python包将尽力找出CANlib SDK安装的目录来找到.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 http://www.kvaser.com/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 http://www.kvaser.com/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:01020304

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

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

返回列表

下一篇:kvmlib入门指南