Expand description
UDP-based OpenIGTLink communication
Provides connectionless UDP transport for low-latency applications where occasional packet loss is acceptable (e.g., real-time tracking).
§Important Notes
- No delivery guarantee: UDP does not guarantee message delivery or ordering
- MTU limitation: Single UDP datagram limited to ~65507 bytes
- Use cases: High-frequency tracking data (>60Hz), non-critical status updates
- Not recommended for: Large images, critical commands, file transfers
§Example: High-Speed Tracking
use openigtlink_rust::io::UdpClient;
use openigtlink_rust::protocol::types::TransformMessage;
use openigtlink_rust::protocol::message::IgtlMessage;
// Client sends tracking data at 120Hz
let client = UdpClient::bind("0.0.0.0:0")?;
loop {
let transform = TransformMessage::identity();
let msg = IgtlMessage::new(transform, "Tracker")?;
client.send_to(&msg, "127.0.0.1:18944")?;
std::thread::sleep(std::time::Duration::from_millis(8)); // 120Hz
}
Structs§
- UdpClient
- UDP client for sending/receiving OpenIGTLink messages
- UdpServer
- UDP server for receiving OpenIGTLink messages
Constants§
- MAX_
UDP_ DATAGRAM_ SIZE - Maximum UDP datagram size (IPv4 max - IP header - UDP header) 65535 (max IP packet) - 20 (IP header) - 8 (UDP header) = 65507 bytes