Monitoring Snapshot
This example demonstrates how to continuously poll the eCAL runtime for a monitoring snapshot using the Monitoring::get_snapshot()
API.
use rustecal::{Ecal, EcalComponents}; use rustecal_core::monitoring::Monitoring; use std::{thread, time::Duration}; fn main() -> Result<(), Box<dyn std::error::Error>> { // Initialize only the monitoring subsystem Ecal::initialize(Some("monitoring_receive_sample"), EcalComponents::MONITORING, None)?; while Ecal::ok() { let snap = Monitoring::get_snapshot()?; println!("=== Monitoring Snapshot ===\n"); println!("Processes:\n{:#?}", snap.processes); println!("\nPublishers:\n{:#?}", snap.publishers); println!("\nSubscribers:\n{:#?}", snap.subscribers); println!("\nServers:\n{:#?}", snap.servers); println!("\nClients:\n{:#?}", snap.clients); thread::sleep(Duration::from_secs(1)); } Ecal::finalize(); Ok(()) }