50 lines
1.5 KiB
Markdown
50 lines
1.5 KiB
Markdown
# Project CARS UDP Telemetry Viewer
|
|
|
|
Simple TypeScript/Node app that listens for Project CARS UDP telemetry on port `5606` and displays the latest packet data in a browser table UI.
|
|
|
|
## Run
|
|
|
|
```powershell
|
|
npm install
|
|
npm run dev
|
|
```
|
|
|
|
Open `http://localhost:3000`.
|
|
|
|
In Project CARS, enable UDP telemetry/streaming and point it at this computer. The app binds UDP on `0.0.0.0:5606`.
|
|
|
|
## Scripts
|
|
|
|
- `npm run dev` starts the TypeScript server directly with `tsx`.
|
|
- `npm run build` compiles TypeScript into `dist/`.
|
|
- `npm start` runs the compiled server.
|
|
|
|
## Notes
|
|
|
|
The parser covers the packet types from the supplied header: car physics, race definition, participants, timings, game state, time stats, and participant vehicle/class names. The frontend focuses on the most useful live values, while the server keeps the full parsed payload available through `/api/state`.
|
|
|
|
## Recording and Replay
|
|
|
|
Stop the Node app before capturing because only one process can bind UDP `5606`.
|
|
|
|
```powershell
|
|
python scripts\capture_udp.py --mode auto
|
|
```
|
|
|
|
This creates a replayable session folder like `captures/session_20260514_160000` containing raw packet files and `manifest.jsonl`.
|
|
|
|
Replay into the Node app:
|
|
|
|
```powershell
|
|
npm.cmd run dev
|
|
python scripts\replay_udp.py captures\session_20260514_160000
|
|
```
|
|
|
|
Useful replay options:
|
|
|
|
```powershell
|
|
python scripts\replay_udp.py captures\session_20260514_160000 --speed 4
|
|
python scripts\replay_udp.py captures\session_20260514_160000 --loop
|
|
python scripts\replay_udp.py captures\session_20260514_160000 --types 1,2,3,4,7,8
|
|
```
|