DIY - Simhub Dash Displays

U

User 26065

Klasse Arbeit Michi!
Eine frage bzgl. dem Pitwindow...
Es wird neben der Streckenkarte jeweils in blau und oder rot angezeigt, wo man ungefähr rauskommt wenn man jetzt pitten würde..

Ist es möglich, diese Autos auf der Streckenübersicht auch zu markieren?
Nein, leider, sonst hätt ich es gleich so gemacht ;)
Der Inhalt der Map ist, soviel ich gefunden habe, leider nicht modifizierbar. Nicht mal die Farben einzelner Autos :(
 
U

User 32622

Ich lese hier mal ein wenig mit. Bin über dieses Thread auf das Forum gestoßen, weil ich selbst grad an einem Dashboard bastle :D
 
U

User 32622

Da hab ich auch direkt mal eine Frage. Ich würde in meinem Dashboard gern anzeigen, ob jemand in der Box ist..
Dafür gibts scheinbar die Option

[GarySwallowDataPlugin.Leaderboard.Position01.InPitLane]

Die ist natürlich fest an die jeweilige Position gekoppelt, was die Anzeige in einem Dashboard, was über den Repeatindex aufgebaut wird, recht schwierig. Heisst das im Klartext, dass mir nur die Möglichkeit bleibt, jede Position "hart" zu verdrahten?

Grüße & Danke!
 
U

User 19771

[GarySwallowDataPlugin.Leaderboard.Position01.InPitLane]

Die ist natürlich fest an die jeweilige Position gekoppelt, was die Anzeige in einem Dashboard, was über den Repeatindex aufgebaut wird, recht schwierig. Heisst das im Klartext, dass mir nur die Möglichkeit bleibt, jede Position "hart" zu verdrahten?

Grüße & Danke!
Was heißt "hart" verdrahten. Im ersten Moment ist das natürlich so, da die Information der Pit Lane an die Position gekoppelt ist. Das kann man so auch erstmal nicht nicht ändern. man ist hier also schon im ersten Moment etwas eingeschränkt.
Es werden ja aber auch zig andere Informationen zu der Position durchgeben, wie Fahrername, Startnummer, etc. Dadurch kann man dann mit JavaScript natürlich schon einiges auch Berechnen (z.B. ob der Fahrer vor einem in der Box ist). Dazu müsste man z.B. schauen, auf welcher Position das Auto vor einem ist und dann in JS anhand der Position auf die entsprechende Position zugreifen.

Das Gary Swallow Plugin bietet einem echt 'nen Haufen an zusätzlichen Daten. Ich selber nutze es aber eigentlich nicht mehr, da die CPU-Last bei mir bereits im IDLE um rund 4 - 5% ansteigt, sobald ich das Plugin aktiviere (und das bei einem 16 Kerner mit 32 Threads).
Teilweise macht das bei mir dann auch leider Probleme (z.B. ruckelt mein Dashboard dann, sobald ich es dann neben dem Bildschirm auch im Stream einblende). Und das obwohl ich in meinem Dashboard nicht mal auf Eigenschaften von dem Plugin zugreife.
 
U

User 32622

Im Grunde ist das ja auch dynamisch, weil sich während nem Pitstop ja auch (oft) die Position im Feld ändert…. Puh…. *
knotenimkopf* ^^
 
U

User 19771

Im Grunde ist das ja auch dynamisch, weil sich während nem Pitstop ja auch (oft) die Position im Feld ändert…. Puh…. *
knotenimkopf* ^^

Ja. Es kommt hier darauf an, was du vorhast.
Willst du zum Beispiel eine Liste mit Positionen, Fahrernahmen und Boxeninfo, gibt es zwei Möglichkeiten:
- Möglichkeit A ohne JS zu programmieren: Pro Position im Prinzip einfach eine Zeile, die die entsprechende Position anzeigt. Also z.B. Zeile 1 ist Position 1, Zeile 2 Position 2, usw. Ändert sich die Position, steht der Fahrername und die Boxeninfo dann einfach in einer anderen Zeile. Müsste dann halt hart verdrahtet werden. Wäre zwar recht aufwendig, andererseits recht einfach umzusetzen.
- Möglichkeit B mit JS ein Textfeld mit folgendem Code als Inhalt (beispielhaft für die Positionen 1 bis 15):
Code:
text = ''
for (i = 1; i <= 15; i++)
{
 if (i < 10)
 {
     text = text + '0' + i + '\t'
     text = text + $prop('GarySwallowDataPlugin.Leaderboard.Position0' + i + '.DriverName');
     text = text + '\t\t\t'
     if ($prop('GarySwallowDataPlugin.Leaderboard.Position0' + i + '.InPitLane') == 1)
     {
       text = text + 'is in Pit' + '\n';
      }
      else
      {
       text = text + '\n';
      }
  
 }
 else
 {
     text = text + i + '\t'
     text = text + $prop('GarySwallowDataPlugin.Leaderboard.Position' + i + '.DriverName');
     text = text + '\t\t\t'
     if ($prop('GarySwallowDataPlugin.Leaderboard.Position' + i + '.InPitLane') == 1)
     {
       text = text + 'is in Pit' + '\n';
      }
      else
      {
       text = text + '\n';
      }
 }
}

return (text)

Das Ergebnis würde dann so aussehen:
Code:
01    Damien Ferro         
02    Juha Kasi         
03    Bernardo Cancio         
04    Frédéric Duez         
05    Gianluca Perlino         
06    Martin Hlisnikovský         
07    Armin Hahn         
08    Åukasz Podkalicka         
09    Didier Bestard         
10    Jari Koskelo         
11    Raimo Kihlman         
12    Kohei Izuno         
13    Jan Virtanen         
14    Max Mustermann         
15    Bernhard Mayer            is in Pit
Das ganze müsste man noch ausbauen und schön formatieren (die Tabulatoren passen z.b. nicht bzw. nur, wenn alle Namen gleich lang wären und ganz am Ende ist eine leere Zeile zuviel). Ist jetzt aber auch nur ein in 2 Minuten schnell zusammen gezimmertes Beispiel als Denkansatz ;)
 
Zuletzt bearbeitet:
U

User 32622

Ja. Es kommt hier darauf an, was du vorhast.
Willst du zum Beispiel eine Liste mit Positionen, Fahrernahmen und Boxeninfo, gibt es zwei Möglichkeiten:
- Möglichkeit A ohne JS zu programmieren: Pro Position im Prinzip einfach eine Zeile, die die entsprechende Position anzeigt. Also z.B. Zeile 1 ist Position 1, Zeile 2 Position 2, usw. Ändert sich die Position, steht der Fahrername und die Boxeninfo dann einfach in einer anderen Zeile. Müsste dann halt hart verdrahtet werden. Wäre zwar recht aufwendig, andererseits recht einfach umzusetzen.
- Möglichkeit B mit JS ein Textfeld mit folgendem Code als Inhalt (beispielhaft für die Positionen 1 bis 15):
Code:
text = ''
for (i = 1; i <= 15; i++)
{
 if (i < 10)
 {
     text = text + '0' + i + '\t'
     text = text + $prop('GarySwallowDataPlugin.Leaderboard.Position0' + i + '.DriverName');
     text = text + '\t\t\t'
     if ($prop('GarySwallowDataPlugin.Leaderboard.Position0' + i + '.InPitLane') == 1)
     {
       text = text + 'is in Pit' + '\n';
      }
      else
      {
       text = text + '\n';
      }
 
 }
 else
 {
     text = text + i + '\t'
     text = text + $prop('GarySwallowDataPlugin.Leaderboard.Position' + i + '.DriverName');
     text = text + '\t\t\t'
     if ($prop('GarySwallowDataPlugin.Leaderboard.Position' + i + '.InPitLane') == 1)
     {
       text = text + 'is in Pit' + '\n';
      }
      else
      {
       text = text + '\n';
      }
 }
}

return (text)

Das Ergebnis würde dann so aussehen:
Code:
01    Damien Ferro        
02    Juha Kasi        
03    Bernardo Cancio        
04    Frédéric Duez        
05    Gianluca Perlino        
06    Martin Hlisnikovský        
07    Armin Hahn        
08    Åukasz Podkalicka        
09    Didier Bestard        
10    Jari Koskelo        
11    Raimo Kihlman        
12    Kohei Izuno        
13    Jan Virtanen        
14    Max Mustermann        
15    Bernhard Mayer            is in Pit
Das ganze müsste man noch ausbauen und schön formatieren (die Tabulatoren passen z.b. nicht bzw. nur, wenn alle Namen gleich lang wären und ganz am Ende ist eine leere Zeile zuviel). Ist jetzt aber auch nur ein in 2 Minuten schnell zusammen gezimmertes Beispiel als Denkansatz ;)
Danke Dir! Ich wusste, hier bin ich richtig! :D
 
U

User 32622

Ja. Es kommt hier darauf an, was du vorhast.
Willst du zum Beispiel eine Liste mit Positionen, Fahrernahmen und Boxeninfo, gibt es zwei Möglichkeiten:
- Möglichkeit A ohne JS zu programmieren: Pro Position im Prinzip einfach eine Zeile, die die entsprechende Position anzeigt. Also z.B. Zeile 1 ist Position 1, Zeile 2 Position 2, usw. Ändert sich die Position, steht der Fahrername und die Boxeninfo dann einfach in einer anderen Zeile. Müsste dann halt hart verdrahtet werden. Wäre zwar recht aufwendig, andererseits recht einfach umzusetzen.
- Möglichkeit B mit JS ein Textfeld mit folgendem Code als Inhalt (beispielhaft für die Positionen 1 bis 15):
Code:
text = ''
for (i = 1; i <= 15; i++)
{
 if (i < 10)
 {
     text = text + '0' + i + '\t'
     text = text + $prop('GarySwallowDataPlugin.Leaderboard.Position0' + i + '.DriverName');
     text = text + '\t\t\t'
     if ($prop('GarySwallowDataPlugin.Leaderboard.Position0' + i + '.InPitLane') == 1)
     {
       text = text + 'is in Pit' + '\n';
      }
      else
      {
       text = text + '\n';
      }
 
 }
 else
 {
     text = text + i + '\t'
     text = text + $prop('GarySwallowDataPlugin.Leaderboard.Position' + i + '.DriverName');
     text = text + '\t\t\t'
     if ($prop('GarySwallowDataPlugin.Leaderboard.Position' + i + '.InPitLane') == 1)
     {
       text = text + 'is in Pit' + '\n';
      }
      else
      {
       text = text + '\n';
      }
 }
}

return (text)

Das Ergebnis würde dann so aussehen:
Code:
01    Damien Ferro        
02    Juha Kasi        
03    Bernardo Cancio        
04    Frédéric Duez        
05    Gianluca Perlino        
06    Martin Hlisnikovský        
07    Armin Hahn        
08    Åukasz Podkalicka        
09    Didier Bestard        
10    Jari Koskelo        
11    Raimo Kihlman        
12    Kohei Izuno        
13    Jan Virtanen        
14    Max Mustermann        
15    Bernhard Mayer            is in Pit
Das ganze müsste man noch ausbauen und schön formatieren (die Tabulatoren passen z.b. nicht bzw. nur, wenn alle Namen gleich lang wären und ganz am Ende ist eine leere Zeile zuviel). Ist jetzt aber auch nur ein in 2 Minuten schnell zusammen gezimmertes Beispiel als Denkansatz ;)

Ich hab das jetzt erstmal ganz dreckig über ne Formel für das visible Feld gelöst:

text1 = repeatindex()

if (text1 < 10)

{
output = $prop('GarySwallowDataPlugin.Leaderboard.Position0' + text1 + '.InPitLane')
}

else

{
output = $prop('GarySwallowDataPlugin.Leaderboard.Position' + text1 + '.InPitLane')
}

return (output)

Man kann das bestimmt auch schöner formatieren.. %)
 
U

User 12231

Hallo zusammen,

gibt es die Möglichkeit bzw. einen Befehl einen Delay Timer zu programmieren?

Ich möchte mir auf einen Input ein Bild/ Text anzeigen lassen und nachdem ich den Button losgelassen habe, soll die Anzeige noch ca. 2sek zu sehen sein.
 
U

User 6228

Hi,
fahre seit 1 Jahr ACC und hab mir jetzt einen 22" über den 49er gehangen und dein tolles Dash gefunden :-) allerdings... was mache ich falsch?
die Reifendrücke werde bei mir in bar umgerechnet ???
Bremstemp. sehen auch komisch aus, Öltemp. steht auf 0, Wasser stimmt....?
Geht der Verschleiss in ACC nicht?

Danke
 

Anhänge

  • SimHub-ACC.jpg
    SimHub-ACC.jpg
    219,1 KB · Aufrufe: 68
U

User 26065

Hallo, Udo!

Bei den Reifendrücken kann es sein, dass es von der Standardeinstellung in Simhub abhängt - schau mal in den Settings weiter unten nach "Preferred Units". Kann sein, dass dort Bar statt PSI drinnen sind.

Bremstemp schauen für mich ok aus, Öldaten gibt's in ACC leider nicht.

Verschleiss ging in ACC noch nie, und mit einem der Updates letzten Herbst haben sie leider auch einen Teil der Streckenbeschaffenheiten rausgenommen :-/

lg
m
 
U

User 6228

Super, habs gefunden, Danke.
mit den Breimsen meinte ich auch eher die kleinen Zahlen in der Mitte,
sollte glaube ich Bremsbelag und Scheibe sein, oder? 28-31,88°?

Udo
 
U

User 6228

Ich hätte noch eine Idee, weiss aber nicht die Syntax für die Berechnung....
Kann man nicht die Kraftstoffmenge für ein Rennen berechnen, nach der Formel:
(Rennlänge(z.b.:60min) / SessionBest) + 2 (Reserverunden) * FuelXLap ?
Dann müsste man das nicht immer ausrechnen ;-)

Udo
 
U

User 26065

Ich hätte noch eine Idee, weiss aber nicht die Syntax für die Berechnung....
Kann man nicht die Kraftstoffmenge für ein Rennen berechnen, nach der Formel:
(Rennlänge(z.b.:60min) / SessionBest) + 2 (Reserverunden) * FuelXLap ?
Dann müsste man das nicht immer ausrechnen ;-)
Gute Idee, muss ich mir anschauen.
Kann aber sein, dass es in ACC aus folgenden Gründen nicht funktioniert:
1. die Renndauer kann ja nicht eingegeben werden, also muss Simhub _vor_ Rennstart wissen, wie lange die Session dauert. Bin mir da nicht ganz sicher, ob ACC das Property schon setzt, bevor man in's Auto einsteigt, könnte aber schon sein.
2. Ich muss schauen, ob FuelXLap aus den Sessions davor übernommen wird, bilde mir aber ein, das passiert nicht.
Dann hilft die ganze Formel insgesamt nix, falls beide obigen Parameter nicht zur Verfügung stehen.
 
U

User 6228

Danke, aber ich dachte auch eher an 2-3 Textfelder mit vorgegebener Renndauer, um beim Training oder Quali sich das Setup fürs Rennen vor zu bereiten z.B.:
Fuel / Race
60min: 105l
25min: 48l


bei mir mosert der halt, wenn ich versuche die 60/2:05.123 zu teilen, vermutlich muss man die 2:05.123 in Minuten umrechen (2,08538min), dann würde das rechnen gehen.
 
U

User 26065

Danke, aber ich dachte auch eher an 2-3 Textfelder mit vorgegebener Renndauer, um beim Training oder Quali sich das Setup fürs Rennen vor zu bereiten z.B.:
Fuel / Race
60min: 105l
25min: 48l
Ahhhhh, gute Idee, das haut hin!
Textfelder für Inputs hätt' ich noch nicht gefunden, aber man könnte das ja über das .js-File konfigurierbar machen.
Da hab' ich wieder was zu basteln die kommende Woche :D

Vielen Dank für die Inputs!!

lg
m
 
U

User 6228

sorry zu spät :ROFLMAO: , hab die Lösung:
timespantoseconds(value)

( 60 / (timespantoseconds([AllTimeBest])/60) +2) * [GameRawData.Graphics.FuelXLap]

Udo
 
Zuletzt bearbeitet:
U

User 4652

Hi,

ich würde gerne einen kleinen externen Monitor für das dash verwenden. Ist hier ein Screen mit USB-C besser als einen an die Grafikkarte oder an die onboard-grafik zu hängen ? Mein Board und GPU stehen in meiner Signatur.

Ich dachte an sowas evtl. :


oder hat hier evtl. jemand nen Tipp fuer ein preiswertes Display in der Größe ?
 
Zuletzt bearbeitet:
Oben