#command-line-tool #pi #plc #industrial #control #driver #file

bin+lib picontrol

一个用于访问 RevolutionPi 工业PLC 的库。提供一个类似于 piTest 命令行工具的控制台应用程序作为示例。

4 个版本

0.2.1 2019年11月7日
0.2.0 2019年11月3日
0.1.1 2019年4月9日
0.1.0 2019年4月9日

#1196硬件支持

每月 33 下载

MIT 许可证

105KB
2.5K SLoC

Rust 1.5K SLoC // 0.0% comments C 1K SLoC // 0.3% comments C++ 128 SLoC // 0.5% comments Shell 1 SLoC // 0.8% comments

picontrol-rs

Revolution Pi 的 PiControl 驱动的 Rust 版本。

示例:pitestrs

用于控制 Pi Control 进程图像的命令行工具位于文件 pitestrs.rs 中。可以通过启动 ./build_pi.sh 进行交叉编译。下面是如何启用交叉编译的说明。

如何生成 Rust FFI 绑定到 C

  1. 直接使用 bindgen 二进制文件

    TARGET=armv7-unknown-linux-gnueabihf bindgen -o src/picontrol.rs kunbus/interface/piControl/wrapper.h  -- -I`pwd`/kunbus/interface/piControl
    
  2. 使用 build.rs 文件与 bindgen

Rust 交叉编译

使用 Docker 的交叉项目

见: https://github.com/rust-embedded/cross

相同的操作系统

见: https://medium.com/@wizofe/cross-compiling-rust-for-arm-e-g-raspberry-pi-using-any-os-11711ebfc52b

source $HOME/.cargo/env

sudo apt-get install -qq gcc-arm-linux-gnueabihf
rustup target add armv7-unknown-linux-gnueabihf

配置 Cargo 以进行交叉编译

mkdir -p ~/.cargo
# > should not be included when pasting
cat >> ~/.cargo/config << EOF
[target.armv7-unknown-linux-gnueabihf]
linker = "arm-linux-gnueabihf-gcc"
EOF

# you may need to install this on Ubuntu 18.06
sudo apt-get install g++-multilib libc6-dev-i386
sudo apt-get install -qq gcc-arm-linux-gnueabihf

现在您可以编译了

cargo build --target=armv7-unknown-linux-gnueabihf

依赖关系

~2.5MB
~42K SLoC