package fit

  1. Overview
  2. Docs
Legend:
Library
Module
Module type
Parameter
Class
Class type
type header = {
  1. protocol : int;
  2. profile : int;
  3. length : int;
    (*

    size of data blocks in file

    *)
}
type value =
  1. | Enum of int
  2. | String of string
  3. | Int of int
  4. | Float of float
  5. | Unknown

A value is part of a data record. The interpretation of the value depends on the record and there is no obvious interpretation for a value by itself

type record = {
  1. msg : int;
  2. fields : (int * value) list;
}

A record holds a set of values. The purpose of the record is implied by its msg member. Each field in a record has a value and an int position. The combination of msg and position conveys the interpretation of that value and it is defined by the FIT protocol. At this level, no interpretation is provided

type t = {
  1. header : header;
  2. records : record list;
}

A FIT file has a header and a list of records (in reversed order)

val parse : string -> (t, string) result

parse fit parses the binary content fit, typically loaded from a file

val header : string -> (header, string) result

header fit parse just the header of a fit stream

val read_file : max_size:int -> string -> string

read_file path reads a file into a string. The file must not exceed max_size

val read : ?max_size:int -> string -> (t, string) result

read path reads a FIT file from path in the file system. The input file must not exceed max_size (100kb by default) to protect against attacks when reading user-provided files

val to_json : t -> Yojson.t

represent FIT file as JSON. This includes decoding some common fields in "record" messages.

module Decode : sig ... end

values reported as part of a record are often encoded or scaled. This module provides typical decoders. How values are decoded depends on the field and the information is not part of the FIT file per se but is part of the format definition.

module Record : sig ... end

decode "record" messages

val records : t -> Record.t list

Extract and decode common fields

OCaml

Innovation. Community. Security.