velodyne_lidar/lib.rs
1//! Packet data parsing and conversion for Velodyne LiDARs.
2//!
3//! # Example
4//!
5//! ```rust
6//! # fn main() -> eyre::Result<()> {
7//! use velodyne_lidar::{types::measurements::Measurement, Config};
8//!
9//! let config = Config::new_vlp_32c_strongest();
10//! let frame_iter =
11//! velodyne_lidar::iter::frame_xyz_iter_from_file(config, "tests/velodyne_vlp32.pcap")?;
12//!
13//! for frame in frame_iter {
14//! let frame = frame?;
15//!
16//! for firing in frame.firing_iter() {
17//! for point in firing.point_iter() {
18//! let point = point.as_single().unwrap();
19//! let Measurement {
20//! distance,
21//! intensity,
22//! xyz: [x, y, z],
23//! } = point.measurement;
24//! print!("dist: {distance}\t");
25//! print!("int: {distance}\t");
26//! println!("xyz: {x} {y} {z}");
27//! }
28//! }
29//! }
30//! # Ok(())
31//! # }
32//! ```
33
34pub mod batcher;
35pub mod config;
36pub mod consts;
37mod convert;
38pub mod iter;
39pub mod packet;
40#[cfg(feature = "parallel")]
41pub mod par_iter;
42pub mod traits;
43pub mod types;
44mod utils;
45
46pub use config::*;
47pub use packet::{DataPacket, Packet, PositionPacket, ProductID, ReturnMode};
48
49pub mod prelude {
50 pub use crate::traits::{AzimuthRange, FiringLike, PointField};
51}