Equivalente Rust EtherCAT a ecrt_master_create_domain()
Enquanto em C++ você usaria
ethercat_create_domain.cpp
// Criar domínio
domain = ecrt_master_create_domain(master);
if (!domain) {
std::cerr << "Failed to create domain!" << std::endl;
return -1;
}o equivalente em Rust usando o ethercat crate seria:
ethercat_create_domain.rs
use ethercat::{Domain, Master};
let domain_idx = master.create_domain()?;Exemplo completo incluindo requisição do master e criação do domínio:
ethercat_master_and_domain.rs
use ethercat::{Master, MasterAccess};
// Você também pode usar MasterAccess::ReadOnly se não precisar de acesso de escrita
// 0 é o índice do master a abrir (geralmente 0)
let mut master = Master::open(0, MasterAccess::ReadWrite)?;
// Reserva (aka "requisitiona") o master (para acesso exclusivo, basicamente)
master.reserve()?;
// Criar domínio
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