No description
Listen on three AC telemetry ports simultaneously (9996, 10101, 5005). Dump received data to per-feed files under ./data/<session>/. Notify on console for each received packet. - Port 9996: AC built-in (ksudp), binary with 4-byte length framing - Port 10101: Telemetry Tool plugin, binary with 4-byte length framing - Port 5005: AC Lua plugin, JSON with newline-separated records - Configurable bind address via RUSTY_TELEMETRY_BIND (default 127.0.0.1) - Buffered file I/O via tokio BufWriter - Graceful shutdown with flush on Ctrl+C - Startup banner showing feed status - Bumped version to 0.2.0, added futures dependency |
||
|---|---|---|
| src | ||
| .gitignore | ||
| Cargo.lock | ||
| Cargo.toml | ||
| README.md | ||
rusty-telemetry
Sim racing telemetry receiver and analyzer. Phase 1 provides a simple UDP listener that receives JSON telemetry frames and prints them to stdout.
Build and Run
cargo run
The listener binds to 0.0.0.0:5005 and expects UDP packets containing JSON with the following structure:
{
"timestamp": 1716123456.789,
"speed_kmh": 245.3,
"rpm": 8750,
"gear": 6,
"throttle": 0.85,
"brake": 0.0,
"steering": 0.12,
"g_forces": { "x": 0.5, "y": -0.2, "z": 1.0 },
"wheel_slip": [0.1, 0.1, 0.0, 0.0],
"suspension_travel": [0.15, 0.14, 0.16, 0.15],
"lap_time": 85.234,
"lap_count": 5
}
Press Ctrl+C to stop.
Testing
Send a test packet from another terminal:
echo '{"timestamp":1.0,"speed_kmh":100.0,"rpm":5000,"gear":3,"throttle":0.5,"brake":0.0,"steering":0.0,"g_forces":{"x":0.0,"y":0.0,"z":1.0},"wheel_slip":[0.0,0.0,0.0,0.0],"suspension_travel":[0.1,0.1,0.1,0.1],"lap_time":60.0,"lap_count":1}' | nc -u -w0 127.0.0.1 5005
Future Plans
- Telemetry parsers for multiple sim formats
- Persistent storage (SQLite or similar)
- Real-time dashboard / web API
- Lap analysis and comparison tools