sportlog / fit
FIT 文件解码器
v0.4.2
2024-09-24 09:39 UTC
Requires
- php: >=8.0
- psr/log: ^3.0
Requires (Dev)
- nette/php-generator: ^3.5
- phpstan/phpstan: ^1.10
- phpunit/phpunit: ^9.5
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();
限制
目前不支持
- 压缩时间戳
- 组件