itelem

Crates.ioitelem
lib.rsitelem
version0.1.5
sourcesrc
created_at2023-04-13 19:57:25.015084
updated_at2023-04-24 00:14:10.032096
descriptionParsing of iRacing .ibt telemetry file
homepage
repositoryhttps://github.com/gmartsenkov/itelem
max_upload_size
id838673
size46,882
Georgi Martsenkov (gmartsenkov)

documentation

README

Itelem

Provides parsing of iRacing's .ibt telemetry files. It's based on the excellent javascript library ibt-telemetry.

Usage

To use itelem, add the following to your Cargo.toml:

[dependencies]
itelem = "0.1"

or run this command in your project root:

$ cargo add itelem@0.1

Pass in a file or anything that implements Read + Seek and you can access header information as well as weekend_info and the samples that contain the most interesting information.

let file = File::open("./sting.ibt").unwrap();
let mut reader = IbtReader::new(Box::new(file));
assert_eq!(reader.header.tick_rate, 60);

let weekend_info = &reader.session_info.weekend_info;
assert_eq!(weekend_info.track_name, "spielberg gp");

let rpm = reader.find_var("RPM".to_string()).unwrap();
let samples: Vec<Sample> = reader.samples().collect();

// There are 3371 samples and with a 60 tick tick_rate
// meaning that the telemetry file contains 56 seconds of data
assert_eq!(samples.len(), 3371);
let first_sample = samples[1001].get_by_header(&rpm).unwrap();
assert_eq!(first_sample, SampleValue::Float32(991.8974));
Commit count: 52

cargo fmt