7 个版本 (4 个重大更新)
0.5.0 | 2019 年 11 月 21 日 |
---|---|
0.4.2 | 2019 年 7 月 9 日 |
0.3.0 | 2019 年 3 月 31 日 |
0.2.1 | 2019 年 2 月 16 日 |
0.1.0 | 2019 年 1 月 2 日 |
#5 在 #garmin
4.5MB
924 行
Fit
Fit 是一个用于读取和解码各种运动设备生成的 FIT 文件的精小 crate。目前它仅专门设计为读取由 Garmin Edges 1000 和 520 以及 Wahoo Elemnt 生成的文件。它可能与其他文件源基本正常工作,但如果不是 Garmin 自行车计算机,可能无法达到 100% 完美。
当前的 API 非常基本,基本上只有一个方法,该方法产生一个迭代器,该迭代器生成 Message
结构体的流。
安装
[dependencies]
fit = "0.4"
使用方法
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 上提交错误报告和拉取请求:https://github.com/richardbrodie/fit-rs。
许可证
该 gem 在 MIT 许可证 的条款下作为开源软件提供。