FIT 文件解码器

v0.4.2 2024-09-24 09:39 UTC

This package is auto-updated.

Last update: 2024-09-24 09:40:33 UTC


README

这是一个由 Garmin 设备创建的 FIT 文件的 PHP (>= PHP 8) 解码器。结果是文件中解码的所有消息的列表。每条消息都是其底层消息类的实例,因此您可以轻松地使用智能感知访问任何(本地)字段。(FIT SDK 21.141)

通过 Composer 安装

您可以使用 Composer 安装 sportlog/FIT。

$ composer require sportlog/fit

所需的最低 PHP 版本为 8。

如何使用

<?php

require 'vendor/autoload.php';

use Sportlog\FIT\Decoder;
use Sportlog\FIT\Profile\Messages\SessionMessage;
use Sportlog\FIT\Profile\Types\MesgNum;

$decoder = new Decoder();
// Decoding the FIT file returns a set of messages
$messageList = $decoder->read('yourfile.fit');

echo "File type: " . $messageList->getFileType();

// You can iterate over the message list, or like in this example,
// iterate over the messages grouped by their message numbers.
foreach ($messageList->getMessageNumbers() as $messageNumber) {
   $messages = $messageList->getMessages($messageNumber);
   echo sprintf('%s: %s', $messageNumber, count($messages));
}

// You can also grab specific messages
$sessionMessages = $messageList->getMessages(MesgNum::SESSION);

// There should be one session message (add check!)
/** @var SessionMessage $sessionMessage */
$sessionMessage = $sessionMessages[0];
// get any native fields from the message; use intellisense
echo "Total time (m): " . $lastRecordMessage->getTotalElapsedTime();
echo "Total distance (m): " . $lastRecordMessage->getTotalDistance();
echo "Total ascent (m): " . $lastRecordMessage->getTotalAscent();

限制

目前不支持

  • 压缩时间戳
  • 组件