1个不稳定版本
0.1.0 | 2019年3月31日 |
---|
#8 in #garmin
46KB
829 行
Fit
Fit是一个用于读取和解析由各种运动设备生成的FIT文件的轻量级crate。目前它已被专门设计用于读取Garmin Edges 1000和520以及Wahoo Elemnt生成的文件。它可能在没有问题的情况下适用于其他文件源,但除非是Garmin自行车电脑,否则可能不会100%完美地工作。
当前的API非常基础,基本上只有一个方法,该方法生成一个迭代器,该迭代器返回一个Message
结构体的流。
重大变更!
从v0.5版本开始,此crate提供Message
迭代器,而不是包含Vec<Message>
的结构体。
安装
[dependencies]
fit = "0.5"
用法
extern crate fit;
use std::path::PathBuf;
use fit::Fit;
fn main() {
let filepath = PathBuf::from("fits/2913547417.fit");
let f = Fit::new(&filepath);
for m in f {
println!("Read a message of type {}", m.kind);
}
}
一个典型的Message
看起来可能像这样
Message {
kind: Record,
values: [
DataField { field_num: 253, value: Time(1480856114) },
DataField { field_num: 0, value: F32(57.710945) },
DataField { field_num: 1, value: F32(11.9945755) },
DataField { field_num: 5, value: U32(1151) },
DataField { field_num: 29, value: U32(0) },
DataField { field_num: 2, value: U16(2394) },
DataField { field_num: 6, value: U16(0) },
DataField { field_num: 7, value: U16(0) },
DataField { field_num: 61, value: U16(2234) },
DataField { field_num: 66, value: I16(442) },
DataField { field_num: 3, value: U8(113) },
DataField { field_num: 13, value: I8(21) }
],
dev_values: None
}
Value
枚举是围绕大多数Rust原生类型(如u16、i64或f32)的简单包装。
需要注意的一些事情
- 速度以m/s记录,而不是kph。
贡献
欢迎在GitHub上提交bug报告和pull请求:https://github.com/richardbrodie/fit-rs。
许可证
此crate在MIT许可证下作为开源软件提供。
无运行时依赖
~230KB