From 5ba26801a07ef04fb37f8f41a792f9e974c379b1 Mon Sep 17 00:00:00 2001 From: zh32 Date: Sat, 2 Jun 2018 23:17:33 +0200 Subject: [PATCH] Add README --- README.md | 60 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ drt.PNG | Bin 0 -> 18867 bytes 2 files changed, 60 insertions(+) create mode 100644 README.md create mode 100644 drt.PNG diff --git a/README.md b/README.md new file mode 100644 index 0000000..ba41de5 --- /dev/null +++ b/README.md @@ -0,0 +1,60 @@ +# DRTelemetry + +Shows telemetry data from DiRT Rally in a Browser... + +![DRTelemetry](./drt.PNG) + +## Usage + +1. Download DRTelemetry from the releases tab + +2. Edit your `C:\Users\USER\Documents\My Games\DiRT Rally\hardwaresettings\hardware_settings_config.xml` and enable UDP data: + + ```xml + + + + + + ``` + +3. + + On Windows run `drtelemetry.exe` + + On Linux run `./drtelemetry` in a terminal + +4. Start DiRT Rally +5. Point your browser to `http://localhost:8080` + +## Advanced usage + +### Change listening ports + +You can change the ports on which DRTelemetry is listening for connections. This helps in scenarios where you either want to show the UI on a different computer or run DRTelemetry on a different computer than DiRT Rally. + +Run DRTelemetry from a terminal and add the following parameters. + +| Parameter | Description | Default | +|-----------|----------------------------------------------|-----------------| +| http | Host for Webclients | localhost:8080 | +| udp | Host for telemetry data sent from DiRT Rally | localhost:10001 | + +**Example** + +`` +drtelemetry.exe --http 0.0.0.0:8080 +`` + +### Change styling + +You can change the styling by altering the CSS. This can be done with browser extensions like [Stylish](https://chrome.google.com/webstore/detail/stylish-custom-themes-for/fjnbnpbmkenffdnngjfgmeleoegfcffe). + +## Contributing + +Everyone can help to improve DRTelemetry. + +* suggest new features (open an issue) +* improve the README +* submit pull-requests + \ No newline at end of file diff --git a/drt.PNG b/drt.PNG new file mode 100644 index 0000000000000000000000000000000000000000..8a1e525d9ec0dd124852228c0a56fc6049fcc69c GIT binary patch literal 18867 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