andywaite/sim-telemetry-parser

用于解析赛车模拟器UDP数据包的库。目前仅支持Codemasters的F1 2020。

0.1.1 2020-08-23 19:04 UTC

This package is auto-updated.

Last update: 2024-09-24 04:01:46 UTC


README

目前仅支持Codemasters F1 2020

查看:https://forums.codemasters.com/topic/54423-f1%C2%AE-2020-udp-specification/

许多赛车模拟游戏可以通过网络向第三方应用程序发送遥测数据。

数据格式各不相同,但通常包括:

  • 车辆数据,如速度和发动机转速
  • 控制数据,如油门位置和转向角度
  • 圈数数据,如当前圈时和最快段落

UDP数据包中发送的数据以原始二进制流的形式出现。该库的目的是将这个二进制流转换成我们可以用PHP处理的数据。

请注意,这个库不处理接收二进制流或显示它——仅仅解析原始数据并将其转换为友好的模型。

如何使用

  1. 使用Composer安装

    $ composer install andywaite/sim-telemetry-parser

  2. 使用它!

    // Create parser class
    $parser = AndyWaite\SimTelemetryParser\Parser::getParser();
    
    // Parse a stream
    $packet = $parser->streamToModels($binaryStream);
    
    // Get index of player  car
    $playerCar = $packet->getHeader()->getPlayerCarIndex();
                            
    // Each packet contains different data. Speed is only contained in the car telemetry packet
    if ($packet instanceof \AndyWaite\SimTelemetryParser\Game\F12020\Structs\PacketCarTelemetryData) {
     echo "You are traveling at ".$packet->getCarTelemetry($playerCar)->getSpeed()."kph";
    }
    

关于其使用的示例,请参阅demo.php

parse函数可以返回的模型类型

  • AndyWaite\SimTelemetryParser\Game\F12020\PacketCarSetupData
  • AndyWaite\SimTelemetryParser\Game\F12020\PacketCarStatusData
  • AndyWaite\SimTelemetryParser\Game\F12020\PacketCarTelemetryData
  • AndyWaite\SimTelemetryParser\Game\F12020\PacketEventData
  • AndyWaite\SimTelemetryParser\Game\F12020\PacketFinalClassificationData
  • AndyWaite\SimTelemetryParser\Game\F12020\PacketHeader
  • AndyWaite\SimTelemetryParser\Game\F12020\PacketLapData
  • AndyWaite\SimTelemetryParser\Game\F12020\PacketLobbyInfoData
  • AndyWaite\SimTelemetryParser\Game\F12020\PacketMotionData
  • AndyWaite\SimTelemetryParser\Game\F12020\PacketParticipantsData
  • AndyWaite\SimTelemetryParser\Game\F12020\PacketSessionData
  • AndyWaite\SimTelemetryParser\Game\F12020\FastestLap
  • AndyWaite\SimTelemetryParser\Game\F12020\Penalty
  • AndyWaite\SimTelemetryParser\Game\F12020\RaceWinner
  • AndyWaite\SimTelemetryParser\Game\F12020\Retirement
  • AndyWaite\SimTelemetryParser\Game\F12020\SpeedTrap
  • AndyWaite\SimTelemetryParser\Game\F12020\TeamMateInPits

未来开发

我计划编写一个更好的服务器应用程序和可视化工具,它将使用这个库。

有关数据包及其内容的完整参考,请参阅:https://forums.codemasters.com/topic/54423-f1%C2%AE-2020-udp-specification/