DIY - Simhub Dash Displays

U

User 26591

Ich bin grade am Umsetzen einer kleinen Ansicht, in der man erkennen kann, zwischen welchen Fahrzeugen man nach einem Boxenstopp wieder rauskommt, es gibt ja in SimHub (noch) keine Möglichkeit, auf der Streckenkarte zeichnen zu können.

Dazu hab' ich ein paar Parameter konfigurierbar gemacht:
- Die Pitstopdeltatime (PDT) kann pro Strecke in Sekunden angegeben werden
- es gibt einen "Bufferzeit" in Sekunden vor und nach der Deltatime, die global immer gleich ist.

In der Animation unten habe ich für meine Tests eine PDT von 5 Sekunden (ich weiss, unrealistisch, habe aber leider kein langes Replay zur Verfügung) und einen Buffer von +/-2 Sekunden definiert.

Die Routine berechnet aufgrund der regulären Abstände im Rennen den Abstand der einzelnen Fahrzeuge zum "Wiedereintrittspunkt" (GapToReentry-GTR), indem mehr oder weniger die PDT vom Abstand abgezogen wird (ein bissl komplexer).

Im Beispiel wäre ein Fahrzeug mit einer GTR von 5.0 genau zu dem Zeitpunkt auf der Strecke, wenn man rauskkommen würde und wird rot dargestellt. Da habe ich ein Fenster von +/- 1 Sekunde hergenommen (also von 4-6 Sekunden GTR).
Ist die GTR ausserhalb dieses Fenster, aber noch im Bufferbereich, wird es lila dargestellt.

Für den Fahrer heisst das, ist die Ansicht ohne Farben, gibt es aktuell kein Fahrzeug, das mich nach dem Boxenstopp behindern würde.

Anhang anzeigen 105661

Nachdem hier im Forum ja ein recht gutes Schwarmwissen vorliegt, wollte ich fragen, ob das für euch während des Rennens brauchbar ist und natürlich, welche zusätzlichen Ideen ihr hättet, um das Ganze besser machen zu können.

lg
michi
Tolle Idee - ich würde das sicherlich nutzen.

LG
 
U

User 561

Ich bin grade am Umsetzen einer kleinen Ansicht, in der man erkennen kann, zwischen welchen Fahrzeugen man nach einem Boxenstopp wieder rauskommt, es gibt ja in SimHub (noch) keine Möglichkeit, auf der Streckenkarte zeichnen zu können.

Dazu hab' ich ein paar Parameter konfigurierbar gemacht:
- Die Pitstopdeltatime (PDT) kann pro Strecke in Sekunden angegeben werden
- es gibt einen "Bufferzeit" in Sekunden vor und nach der Deltatime, die global immer gleich ist.

In der Animation unten habe ich für meine Tests eine PDT von 5 Sekunden (ich weiss, unrealistisch, habe aber leider kein langes Replay zur Verfügung) und einen Buffer von +/-2 Sekunden definiert.

Die Routine berechnet aufgrund der regulären Abstände im Rennen den Abstand der einzelnen Fahrzeuge zum "Wiedereintrittspunkt" (GapToReentry-GTR), indem mehr oder weniger die PDT vom Abstand abgezogen wird (ein bissl komplexer).

Im Beispiel wäre ein Fahrzeug mit einer GTR von 5.0 genau zu dem Zeitpunkt auf der Strecke, wenn man rauskkommen würde und wird rot dargestellt. Da habe ich ein Fenster von +/- 1 Sekunde hergenommen (also von 4-6 Sekunden GTR).
Ist die GTR ausserhalb dieses Fenster, aber noch im Bufferbereich, wird es lila dargestellt.

Für den Fahrer heisst das, ist die Ansicht ohne Farben, gibt es aktuell kein Fahrzeug, das mich nach dem Boxenstopp behindern würde.

Anhang anzeigen 105661

Nachdem hier im Forum ja ein recht gutes Schwarmwissen vorliegt, wollte ich fragen, ob das für euch während des Rennens brauchbar ist und natürlich, welche zusätzlichen Ideen ihr hättet, um das Ganze besser machen zu können.

lg
michi
Diese Funktion ist extrem gut. Wo speicherst du denn die PDT? Und kalkulierst Du die Selektion für den Pitstop, also Reifenwechsel und Sprit mit ein?
 
U

User 26065

Diese Funktion ist extrem gut. Wo speicherst du denn die PDT? Und kalkulierst Du die Selektion für den Pitstop, also Reifenwechsel und Sprit mit ein?
Hallo, Markus!

Es wird ein eigenes .js-File geben, das im Simhubfolder unter "JavascriptExtensions" abgelegt werden muss. Das kann von jedem einfach editiert werden und so Richtwerte eingetragen werden.
Leider gibt's in ACC kein Property um auszulesen, welche Strategie für den Boxenstopp gewählt ist, daher ist das ein vollkommen statischer Wert, der im Moment vom Fahrer mehr oder weniger aufgrund von Erfahrungswerten bzw. geplanter Strategie eingetragen werden muss.

Darum gibt's ja auch die Bufferzeit, die man dazueintragen kann.

Mir wäre anders natürlich lieber, aber besser einen groben Überblick, wo man rauskommt, als überhaupt keine Idee ;) (die ich im Moment habe).

Aber das bringt mich grade auf die Idee, noch eine kleine Anzeige einzubauen, die die für die Strecke eingetragenen Werte für PDT und Buffer mitausgibt, das hat man ja nicht immer im Kopf.

lg
m
 
U

User 26065

Wenn alles läuft, wie geplant, werd' ich die Version mit der PDT-Anzeige heute Nachmittag/Abend hochladen.
Aktuell ist grad etwas Betrieb im Betrieb, da war ich diese Woche zuhause nicht mehr motiviert, den Rechner einzuschalten...
 
U

User 561

Hallo, Markus!

Es wird ein eigenes .js-File geben, das im Simhubfolder unter "JavascriptExtensions" abgelegt werden muss.
Ich habe noch nichts dazu gefunden, wie man solche Files ausliest und beschreibt. In der Doku steht schlicht, dass man eine js-Extension startet, indem man js: davor schreibt. Ist halt wenig ergiebig. Da muss ich mich wohl mal eingehender mit Javascript auseinandersetzen.

Da Simhub keine globalen Variablen zulässt, die über mehr als ein Element hinweg funktionieren, muss ich lerne, die in ein File wegzuschreiben und daraus auszulesen.
 
U

User 26590

Wenn alles läuft, wie geplant, werd' ich die Version mit der PDT-Anzeige heute Nachmittag/Abend hochladen.
Aktuell ist grad etwas Betrieb im Betrieb, da war ich diese Woche zuhause nicht mehr motiviert, den Rechner einzuschalten...
Vielen vielen Dank dafür :daumen:
Freu mich drauf die Funktion zu testen :giggle:
 
U

User 561

User 6818:

Ja, ok. Verstehe. Scheint ja nicht allzu schwierig zu sein. Jetzt muss ich nur noch herausfinden, wie ich eine .ini auslese, dann habe ich meine Aufgabenstellung vollständig gelöst. Dann könnte ich in der .ini nämlich übersichtlich definieren (und leicht editieren), welche Funktion jede Rotary-Position
hat. Also z. B.

[Left Rotary Functions]
left_01 = 'ABS';
left_02 = 'TCR';
left_03 = 'TCC';

Klar, das kann ich auch direkt im Script hardcoden, aber elegant ist das absolut nicht und Änderungen sind eine Qual.
 
U

User 26065

Jedes File in dem JavaExtension Directory wird für jedes Element geladen.
Ich hab's so gelöst, dass ich nicht die variablen einzeln drinnen stehen habe, sondern eigene Funktionen mit "mi" als Präfix gebaut habe.

Als Beispiel, die Datei heisst z.B. miBigDisplay.js und drinnen sind alle Funktionen definiert..

Code:
function miGetPDT() {
   switch ($prop('Trackname')) {
     case 'Suzuka':
        return 39;
     ....
}

Und im Control dann wie von Max beschrieben aufrufen...

.ini Datei brauchst keine, am Besten du nennst die Datei MarcusIni.js ;)

Da ja automatisch alle .js Dateien aus dem Verzeichnis geladen werden, könnte es wahrscheinlich vorkommen, dass ein anderes Plugin deine überschreibt. Darum nutze ich das "mi"-Präfix, sowas würd' ich auf jeden Fall empfehlen.

lg
m
 
U

User 26065

Nachtrag: Eigentlich wär's am Einfachsten für deine Anwendung, in einer Funktion ein Array/Hash mit den Funktionen zurückzugeben.

z.B.
Code:
function mj_getLeftRotaryFunctions() {
   return functionArray['ABS','TCR','TCC',...];
}
und im Control kann man das dann auslesen:
Code:
var leftRotaryFunctions = mj_getLeftRotaryFunctions()
 
U

User 26065

So, die aktuellste Version ist online. Weiterhin wie gehabt unter
zu finden.

Allerdings sind für das BigDisplay jetzt 2 Files zu holen, 1x miBigDisplay.simhubdash und 1x miBigDisplay.js

Bitte die .js Datei im Simhubordner in den Unterordner "JavascriptExtensions" kopieren.
(Bei mir ist das z.B. C:\Program Files (x86)\SimHub\JavascriptExtensions)

ACHTUNG! Der Ordner "Simhub" im "Dokumente"-folder ist der falsche ;)

In der Datei miBigDisplay.js sind gleich als erstes für alle Tracks die einzelnen Pitstopdeltazeiten gespeichert, hier einfach hinter "return" immer den entsprechenden rausgefahrenen Wert in Sekunden eintragen.
Code:
function miGetPitstopDeltatime() {
  switch($prop('TrackName')) {
    case 'Mount Panorama Circuit':
      return 41;
    case 'WeatherTech Raceway Laguna Seca':
      return 42;
    case 'Circuit de Spa-Francorchamps':
      return 43;
    case 'Suzuka Circuit':
      return 44;
    case 'Kyalami Grand Prix Circuit':
      return 45;
    case 'Oulton Park':
      return 46;
    case 'Snetterton Circuit':
      return 47;
    case 'Donington Park':
      return 48;
    case 'Monza Circuit':
      return 49;
    case 'Brands Hatch Circuit':
      return 50;
    case 'Silverstone':
      return 51;
    case 'Circuit Paul Ricard':
      return 52;
    case 'Misano World Circuit':
      return 53;
    case 'Circuit Zandvoort':
      return 54;
    case 'Nürburgring':
      return 55;
    case 'Hungaroring':
      return 56; 
    case 'Circuit de Barcelona-Catalunya':
      return 57;
    case 'Circuit Zolder':
      return 58;
    case 'Autodromo Enzo e Dino Ferrari':
      return 59;
    default:
      return 60;
  }
}

Es würde mich freuen, wenn wir hier eine Sammlung der Standardzeiten (Reifenwechsel + Betankung) für alle Strecken sammeln könnten, dann muss ich die nicht alle selbst "erfahren".

lg
michi
 
U

User 26065

Weitere kleine Updates am bigDisplay:
- Bug in den Farben der Reifentemperaturen behoben
- Farben der Reifendrücke in ACC jetzt abhängig von der Reifenmischung
- Zündung und "EngineRunning" Warnleuchten implementiert (hat mich immer genervt, in Endus beim Fahrerwechsel nicht zu wissen, ob die Zündung an ist)
- Bottominfos etwas überarbeitet: CPU% und GPU% haben auch lineare Gauges, Auto wird "in Schön" ausgeschrieben, SimHub DataUpdateFPS interiert, Spielernamen gelöscht.
miBigDisplay.png

Wie gehabt zu finden unter
 
U

User 26065

Ein Riesendank geht an User 25735, der mir mit einer Grafik für die PDTs ausgeholfen hat.
Im neuen Commit sind jetzt für alle Strecken bis auf Oulton Park, Snetterton, Donington und Imola die richtigen PDTs drinnen.

Zusätzlich sind dahinter als Kommentar die Zeiten für reguläre Stopps mit Reifenwechsel, Zeit bei nur 1L tanken und DT mitangegeben.
Somit kann man es sich z.B. bei anderer Strategie entsprechend anpassen.

BTW, die Änderungen in dem File können auch on-the-fly erfolgen, Simhub liest es immer wieder neu aus, das kann man also auch machen, wenn ACC schon gestartet ist...

lg
m
 
U

User 24915

Ah ich muss endlich meinen 24Zöller als DatenMonitor drüber hängen !
Will endlich dein BigDisplay benutzen :D

Woebi ... läuft nur bei ACC oder ?
 
U

User 561

.ini Datei brauchst keine
Zunächst mal sorry, dass ich auf Eure Hilfebeiträge nicht geantwortet habe. Irgendwie kommt in diesem Thread bei Erwähnungen oder Zitaten von mir keine Notification. Ich les mir mal in Ruhe die Vorschläge durch und schau dann, ob ich das anwenden kann.

Zur .ini: ich will es den Nutzern des Dashes vereinfachen, die Beschriftung der Funktionen einfach zu editieren. Selbstverständlich ginge das auch easy mit einer case-Abfrage, aber dann wurschtelt sich der Nutzer halt durch zig Codezeilen.
 
Zuletzt bearbeitet:
U

User 26065

Ah ich muss endlich meinen 24Zöller als DatenMonitor drüber hängen !
Will endlich dein BigDisplay benutzen :D

Woebi ... läuft nur bei ACC oder ?
Nö, die meisten Properties sind Standarddinger, die sollten mit allen Sims hinhauen.
Ein paar Spezialinfos sind nur für ACC, weiss ich jetzt aus dem Kopf aber gar nicht so genau, welche :D
 
U

User 24915

Nö, die meisten Properties sind Standarddinger, die sollten mit allen Sims hinhauen.
Ein paar Spezialinfos sind nur für ACC, weiss ich jetzt aus dem Kopf aber gar nicht so genau, welche :D

Alles klar :D Ich schau einfach mal ! Erstmal Monitor dran bastel :) Wollte ja eh ACC wieder ans laufen bringen !

Und daumen hoch für deine Arbeit und das teilen mit der Community !
 
U

User 26065

Zur .ini: ich will es den Nutzern des Dashes vereinfachen, die Beschriftung der Funktionen einfach zu editieren. Selbstverständlich ginge das auch easy mit einer case-Abfrage, aber dann wurschtelt sich der Nutzer halt durch zig Codezeilen.
Ah, das ist dann natürlich was anderes, alles klar!
 
Oben