Rust EtherCAT ekvivalent k ecrt_request_master()
Zatímco v C++ byste použili
ethercat_request_master.cpp
// Request master
master = ecrt_request_master(0);
if (!master) {
std::cerr << "Failed to request master!" << std::endl;
return -1;
}v Rustu, pomocí crate ethercat, byste to udělali takto:
ethercat_request_master.rs
use ethercat::{Master, MasterAccess};
// You may also use MasterAccess::ReadOnly if you don't need write access
// 0 is the index of the master to open (usually 0)
let mut master = Master::open(0, MasterAccess::ReadWrite)?;
// Reserve (aka "request") the master (for exclusive access, basically)
master.reserve()?;Všimněte si, že funkce Master::open otevírá master zařízení a metoda reserve se používá pro vyžádání exkluzivního přístupu k masteru.
C++ funkce ecrt_request_master kombinuje jak otevření (ecrt_open_master()), tak rezervaci (ecrt_master_reserve()) masteru, zatímco v Rustu jsou to dva samostatné kroky. Podívejte se na ecrt_request_master() zdrojový kód pro více detailů.
Pokud vám tento článek pomohl, zvažte, zda mi nekoupíte kávu nebo nepřispějete přes PayPal na podporu výzkumu a publikování nových článků na TechOverflow