All Projects → racehub-io → f1-telemetry-client

racehub-io / f1-telemetry-client

Licence: MIT license
A Node UDP client and telemetry parser for Codemaster's Formula 1 series of games

Programming Languages

typescript
32286 projects
javascript
184084 projects - #8 most used programming language

Projects that are alternatives of or similar to f1-telemetry-client

AUTOBOT FIFAX
FIFA SNIPING BOT
Stars: ✭ 31 (-75.78%)
Mutual labels:  xbox, playstation, pc
Pancake
Lightweight, Fast, Easy-to-use HTML5 2D game framework!
Stars: ✭ 79 (-38.28%)
Mutual labels:  xbox, playstation
SteamAchievementNotifier
Steam Achievement Notifier is an Electron application that shows a customisable notification when you unlock any Steam Achievement! It uses the Steam Web API to track achievement stats in real time, and displays an achievement summary within the notification.
Stars: ✭ 77 (-39.84%)
Mutual labels:  xbox, playstation
cod-api
A thin Call of Duty API wrapper written in TypeScript
Stars: ✭ 40 (-68.75%)
Mutual labels:  xbox, playstation
formula-one-ergast
Java implementation to get a historical record of motor racing data from Ergast Developer API
Stars: ✭ 18 (-85.94%)
Mutual labels:  formula1, formula-one
Nissboard
🚗 Nissan Consult/OBDII Realtime Dashboard
Stars: ✭ 20 (-84.37%)
Mutual labels:  car, race
BBear balance car
it'a mini auto balance car which use the mini motor to drive the car
Stars: ✭ 44 (-65.62%)
Mutual labels:  car, driver
MacchinaM2-J2534-Rust
Cross platform J2534 API for Macchinas M2 UTD module
Stars: ✭ 17 (-86.72%)
Mutual labels:  car, driver
uracer-kotd
A GLES2 top-down racer, built on top of libgdx and Box2D.
Stars: ✭ 95 (-25.78%)
Mutual labels:  car, race
ecutools
IoT Automotive Tuning, Diagnostics & Analytics
Stars: ✭ 144 (+12.5%)
Mutual labels:  car, race
reinforced-race
A model car learns driving along a track using reinforcement learning
Stars: ✭ 37 (-71.09%)
Mutual labels:  car, driver
WeConnect-mqtt
MQTT Client that publishes data from Volkswagen WeConnect
Stars: ✭ 14 (-89.06%)
Mutual labels:  car, telemetry
awesome-automotive-can-id
🚜 unpretentious attempt to collect CAN IDs and payloads for various car brands/models in one place.
Stars: ✭ 104 (-18.75%)
Mutual labels:  car, automotive
Googlemap
Google Map to use create path on map and play vehicle on path like Uber and Ola
Stars: ✭ 112 (-12.5%)
Mutual labels:  car
Esp32 Obd2 Emulator
Open-source OBD-II emulator based on an ESP32 + CAN transceiver IC, controllable via WiFi through a simple web UI (or via API)
Stars: ✭ 207 (+61.72%)
Mutual labels:  car
Ttgo T Beam Car Tracker
TTGO-T-Beam Arduino Car Tracker - ESP32 + LoRa + GPS + GSM (optional)
Stars: ✭ 106 (-17.19%)
Mutual labels:  car
Self Driving Car
Automated Driving in NFS using CNN.
Stars: ✭ 105 (-17.97%)
Mutual labels:  car
Headunit Desktop
HeadUnit Desktop is a car PC software built with Qt 5 and QML
Stars: ✭ 225 (+75.78%)
Mutual labels:  car
Dustracing2d
Dust Racing 2D is a traditional top-down car racing game including a level editor.
Stars: ✭ 199 (+55.47%)
Mutual labels:  car
Movel
Móvel - Dashboard for Raspberry pi car computer
Stars: ✭ 103 (-19.53%)
Mutual labels:  car

F1 Telemetry Client

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 HUD displays, motion platform hardware support or providing force feedback data for custom steering wheels.

This is a TypeScript UDP client and telemetry parser for EA - Codemaster's F1 22, F1 2021, F1 2020, F1 2019 and F1 2018, that enables the consumption of such information.

Installing

$ npm install @racehub-io/f1-telemetry-client

or

$ yarn add @racehub-io/f1-telemetry-client

Running the playground

$ npm run start

or

$ yarn start

Usage

import { F1TelemetryClient, constants } from "f1-telemetry-client";
// or: const { F1TelemetryClient, constants } = require('f1-telemetry-client');
const { PACKETS } = constants;

/*
*   'port' is optional, defaults to 20777
*   'bigintEnabled' is optional, setting it to false makes the parser skip bigint values,
*                   defaults to true
*   'forwardAddresses' is optional, it's an array of Address objects to forward unparsed telemetry to. each address object is comprised of a port and an optional ip address
*                   defaults to undefined
*   'skipParsing' is optional, setting it to true will make the client not parse and emit content. You can consume telemetry data using forwardAddresses instead.
*                   defaults to false
*/
const client = new F1TelemetryClient({ port: 20777 });
client.on(PACKETS.event, console.log);
client.on(PACKETS.motion, console.log);
client.on(PACKETS.carSetups, console.log);
client.on(PACKETS.lapData, console.log);
client.on(PACKETS.session, console.log);
client.on(PACKETS.participants, console.log);
client.on(PACKETS.carTelemetry, console.log);
client.on(PACKETS.carStatus, console.log);
client.on(PACKETS.finalClassification, console.log);
client.on(PACKETS.lobbyInfo, console.log);
client.on(PACKETS.carDamage, console.log);
client.on(PACKETS.sessionHistory, console.log);

// to start listening:
client.start();

// and when you want to stop:
client.stop();

Documentation

The following links contain information that summarises the UDP data structures so that developers of supporting hardware or software are able to configure these to work correctly with the F1 game.

F1 2022 UDP Spec F1 2021 UDP Spec
F1 2020 UDP Spec
F1 2019 UDP Spec
F1 2018 UDP Spec

License

Licensed under the MIT License.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].