Équivalent Rust EtherCAT de ecrt_request_master()
Alors qu’en C++ vous utiliseriez
ethercat_request_master.cpp
// Demander le maître
master = ecrt_request_master(0);
if (!master) {
std::cerr << "Échec de la demande du maître !" << std::endl;
return -1;
}en Rust, en utilisant la crate ethercat, vous feriez comme ceci :
ethercat_request_master.rs
use ethercat::{Master, MasterAccess};
// Vous pouvez également utiliser MasterAccess::ReadOnly si vous n'avez pas besoin d'accès en écriture
// 0 est l'index du maître à ouvrir (généralement 0)
let mut master = Master::open(0, MasterAccess::ReadWrite)?;
// Réserver (aka "request") le maître (pour un accès exclusif, fondamentalement)
master.reserve()?;Notez que la fonction Master::open ouvre le périphérique maître, et la méthode reserve est utilisée pour demander un accès exclusif au maître.
La fonction C++ ecrt_request_master combine à la fois l’ouverture (ecrt_open_master()) et la réservation (ecrt_master_reserve()) du maître, tandis qu’en Rust ce sont deux étapes séparées. Consultez le code source de ecrt_request_master() pour plus de détails.
Si cet article vous a aidé, pensez à m'offrir un café ou à faire un don via PayPal pour soutenir la recherche et la publication de nouveaux articles sur TechOverflow