技术博客

    03/10/2016 作者 云海游戏

    在Linux上运行Python开发包

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

    第一步是下载并安装云海游戏 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

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

    $ cd canlib/examples
    $ ./listChannels
    Found 2 channel(s).
    channel  0 = 云海游戏 USBcan Pro 2xHS v2, 73-30130-00752-9, 1012, 3.4.0.822
    channel  1 = 云海游戏 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: 云海游戏 USBcan Pro 2xHS v2 (channel 0), EAN: 73-30130-00752-9
    Using channel: 云海游戏 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提供错误报告、贡献、改进建议以及其他类似方面。

    Author Image

    Mikkel Gerdes

    【网站地图】【sitemap】