6个版本

0.1.5 2023年4月24日
0.1.4 2023年4月16日

#2 in #iracing

Download history 2/week @ 2024-03-09 1/week @ 2024-03-16 15/week @ 2024-03-30 6/week @ 2024-04-06

每月 57 次下载

MIT/Apache

35KB
958

Itelem

提供对iRacing的.ibt遥测文件的解析。它基于优秀的javascript库ibt-telemetry

用法

要使用itelem,请将以下内容添加到您的Cargo.toml

[dependencies]
itelem = "0.1"

或者在项目根目录下运行此命令

$ cargo add [email protected]

传递一个文件或任何实现了Read + Seek的对象,您就可以访问头部信息以及包含最多有趣信息的weekend_info和样本。

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));

依赖

~3.5MB
~92K SLoC