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()?;If this post helped you, please consider buying me a coffee or donating via PayPal to support research & publishing of new posts on TechOverflow