#运动 #设备 #佳明 #读取 #解码 #数据 #生成

bin+lib fit

用于读取和解码由运动设备生成的 FIT 文件的精小 crate

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

MIT 许可证

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 许可证 的条款下作为开源软件提供。

依赖项