UNPKG

@rflafla/f1-udp-parser

Version:

The F1 series of games support the outputting of key game data via a UDP data stream. This data can be interpreted by external apps or connected peripherals for a range of different uses, including providing additional telemetry information, customised HU

62 lines 2.45 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.LapDataParser = void 0; const F1Parser_1 = require("../F1Parser"); class LapDataParser extends F1Parser_1.F1Parser { constructor(packetFormat) { super(); this.endianess('little'); this.uint32le('m_lastLapTimeInMS').uint32le('m_currentLapTimeInMS'); if (packetFormat === 2023) { this.uint16le('m_sector1TimeInMS') .uint8('m_sector1TimeMinutes') .uint16le('m_sector2TimeInMS') .uint8('m_sector2TimeMinutes') .uint16le('m_deltaToCarInFrontInMS') .uint16le('m_deltaToRaceLeaderInMS'); } else if (packetFormat >= 2024) { this.uint16le('m_sector1TimeMSPart') .uint8('m_sector1TimeMinutesPart') .uint16le('m_sector2TimeMSPart') .uint8('m_sector2TimeMinutesPart') .uint16le('m_deltaToCarInFrontMSPart') .uint8('m_deltaToCarInFrontMinutesPart') .uint16le('m_deltaToRaceLeaderMSPart') .uint8('m_deltaToRaceLeaderMinutesPart'); } else { this.uint16le('m_sector1TimeInMS').uint16le('m_sector2TimeInMS'); } this.floatle('m_lapDistance') .floatle('m_totalDistance') .floatle('m_safetyCarDelta') .uint8('m_carPosition') .uint8('m_currentLapNum') .uint8('m_pitStatus') .uint8('m_numPitStops') .uint8('m_sector') .uint8('m_currentLapInvalid') .uint8('m_penalties'); if (packetFormat >= 2023) { this.uint8('m_totalWarnings').uint8('m_cornerCuttingWarnings'); } else { this.uint8('m_warnings'); } this.uint8('m_numUnservedDriveThroughPens') .uint8('m_numUnservedStopGoPens') .uint8('m_gridPosition') .uint8('m_driverStatus') .uint8('m_resultStatus') .uint8('m_pitLaneTimerActive') .uint16le('m_pitLaneTimeInLaneInMS') .uint16le('m_pitStopTimerInMS') .uint8('m_pitStopShouldServePen'); if (packetFormat >= 2024) { this.floatle('m_speedTrapFastestSpeed').uint8('m_speedTrapFastestLap'); } } } exports.LapDataParser = LapDataParser; //# sourceMappingURL=LapDataParser.js.map