7 个版本

0.1.2 2021年6月26日
0.1.0 2021年5月17日
0.0.7 2021年5月17日
0.0.6 2020年6月10日

#1548硬件支持

33 每月下载量
cantact 中使用

MIT 许可证

58KB
1.5K SLoC

CANtact

crates.io crates.io PyPI docs.rs Rust Build Python Build

CANtact 设备的软件支持。包括驱动程序(见 driver/)、API和跨平台命令行界面。

获取设备

CANtact Pro 目前是CrowdSupply上的预上市项目。您可以在产品页面上订阅以获取有关硬件发布的更新。

此工具应与其他CANtact/gs_usb 兼容设备(如CANable)配合良好。

安装

CLI和驱动程序使用cargo构建,可以使用rustup安装。

安装cargo后,使用它构建和安装can二进制文件

git clone https://github.com/linklayer/cantact
cd cantact
cargo install --path .

设置udev规则(仅限Linux)

在Linux上,默认情况下只有root可以访问设备。尝试以普通用户身份访问设备时,会导致DeviceNotFound错误。要允许所有用户访问,请在/etc/udev/rules.d/99-cantact.rules中创建一个文件,该文件包含

SUBSYSTEM=="usb", ATTRS{idVendor}=="1d50", ATTRS{idProduct}=="606f", MODE="0666"

然后重新加载udev规则

sudo udevadm control --reload-rules
sudo udevadm trigger

命令行界面

使用can二进制文件调用CLI

can help

can 0.1.0
Eric Evenchick <eric@evenchick.com>
Command line utilities for CANtact devices

USAGE:
    can [FLAGS] [SUBCOMMAND]

FLAGS:
    -h, --help       Prints help information
    -v, --verbose    Print verbose debugging information
    -V, --version    Prints version information

SUBCOMMANDS:
    cfg     Set device configurations
    dump    Receive and display CAN frames
    help    Prints this message or the help of the given subcommand(s)
    send    Send a single CAN frame

使用can cfg命令设置比特率和其他设备设置。设置后,其他命令将使用这些选项。

例如,将通道0和1设置为500000 kbps,然后转储所有通道上的所有帧

can cfg --channel 0 --bitrate 500000
can cfg --channel 1 --bitrate 500000
can dump

使用can help [子命令]获取更多文档。

Rust 支持

可以通过安装cantact-driver来从Rust使用驱动程序。该包的文档可以在docs.rs上找到。

Python 支持

CANtact 支持 Windows、macOS 和 Linux 上的 Python 3.5+。Python 模块托管在PyPI上。安装需要 pip 19.0+(对于许多linux2010轮)。

Python 最终用户不应直接使用此存储库。相反,应使用pip安装Python支持。

python3 -m pip -U pip
python3 -m pip install cantact

本程序将尝试为您的系统安装二进制分发版。如果没有可用的,它将尝试从源代码构建。这需要使用夜间Rust版本,可以在安装前通过运行以下命令启用:rustup default nightly

请参阅examples/文件夹中的Python示例。python-can支持CANtact,并推荐您使用该库而不是直接使用cantact模块。要安装CANtact,安装python-can并运行测试。

python3 -m pip install cantact git+https://github.com/ericevenchick/python-can@cantact
can_logger.py -i cantact -c 0 -b 500000

构建Python支持

只有在您想修改cantact Python模块,或者您使用的平台没有打包支持时,才需要构建Python支持。

Python支持使用PyO3实现,并由python特性控制。感谢rust-setuptoolscantact Python模块可以像其他Python模块一样使用setuptools构建。PyO3需要夜间Rust,可以通过以下命令配置:rustup override

cd driver
rustup override set nightly
python setup.py build

Windows、macOS和许多Linux的Python构建是通过Github Actions自动化的。标记的版本会自动推送到PyPI。

C / C++ 支持

C / C++支持由驱动程序提供。目前,它用于在Windows上实现BUSMASTER支持。

依赖关系

~2–4.5MB
~80K SLoC