Skip to content
master
Switch branches/tags
Code

Latest commit

 

Git stats

Files

Permalink
Failed to load latest commit information.
Type
Name
Latest commit message
Commit time
src
 
 
 
 
 
 
 
 
 
 
 
 

rosbag-rs crates.io Documentation Build Status dependency status

A pure Rust crate for reading ROS bag files.

Example

use rosbag::{RosBag, Record};

let bag = RosBag::new(path).unwrap();
// create low-level iterator over rosbag records
let mut records = bag.records();
// acquire `BagHeader` record, which should be first one
let header = match records.next() {
    Some(Ok(Record::BagHeader(bh))) => bh,
    _ => panic!("Failed to acquire bag header record"),
};
// get first `Chunk` record and iterate over `Message` records in it
for record in &mut records {
    match record? {
        Record::Chunk(chunk) => {
            for msg in chunk.iter_msgs() {
                println!("{}", msg?.time)
            }
            break;
        },
        _ => (),
    }
}
// jump to index records
records.seek(header.index_pos).unwrap();
for record in records {
    println!("{:?}", record?);
}

License

The crate is licensed under either of

at your option.

Contribution

Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.

About

Reading rosbag files in pure Rust

Resources

License

Packages

No packages published

Languages