Rust EtherCAT 中 ecrt_master_create_domain() 的等价实现

在 C++ 中你会使用

ethercat_create_domain.cpp
// 创建 domain
domain = ecrt_master_create_domain(master);
if (!domain) {
    std::cerr << "Failed to create domain!" << std::endl;
    return -1;
}

而使用 ethercat crate 的 Rust 等价写法为:

ethercat_create_domain.rs
use ethercat::{Domain, Master};

let domain_idx = master.create_domain()?;

包含请求 master 和创建 domain 的完整示例:

ethercat_master_and_domain.rs
use ethercat::{Master, MasterAccess};

// 如果不需要写访问,也可以使用 MasterAccess::ReadOnly
// 0 是要打开的 master 的索引(通常为 0)
let mut master = Master::open(0, MasterAccess::ReadWrite)?;
// 预留(即"请求")master(基本上是为了独占访问)
master.reserve()?;

// 创建 domain
let domain_idx = master.create_domain()?;

Check out similar posts by category: Rust, EtherCAT