#usb #can #controller #area #driver #devices #networking

app cantact

CLI工具,用于CANtact控制器区域网络

7个版本

0.1.2 2021年6月26日
0.1.1 2021年5月29日
0.0.6 2020年6月10日

#1458硬件支持

Download history 11/week @ 2024-04-01 26/week @ 2024-06-24 4/week @ 2024-07-01 10/week @ 2024-07-08 22/week @ 2024-07-15

62 每月下载量

MIT 许可证

76KB
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 crate从Rust使用驱动程序。该crate的文档可以在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模块可以使用 setuptools 像任何其他Python模块一样进行构建。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 支持。

依赖项

~5–14MB
~168K SLoC