广州智维欢迎您!智维公司致力于先进的汽车及自动化测控仪器设备CAN总线分析仪_尾气分析仪_空燃比分析仪_蓄电池检测仪_数据记录仪_数据采集_车载网络_网关等产品

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

Guangzhou Triv Electronic Technologies Co.LTD

技术服务
SUPPORT

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

2018-12-03

如何在Linux上运行Python开发包

作者:    点击:24

今天我们来看看如何使用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报文。

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

返回列表