RasPiCar Projekt Forum

Normale Version: Diagnostic Tool im neuen Image
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Seiten: 1 2 3 4 5 6 7 8
Hat denn vlt irgendeiner ne Idee wie man andere obd Werte anzeigen kann?? Z.B Tankinhalt oder so? Das fänd ich super wichtig!

Gesendet von meinem D5803 mit Tapatalk
Hmm die Frage hab ich mir auch schon gestellt. Ich glaube dies ist eine abgespeckte version hab mal gegoogelt und bin auf ein video gestossen wo weit mehr infos abzulesen waren. Wie schon erwähnt fande ich eine andere darstellung auch intressant wenn ich da an die app tonque pro denke

Gesendet von meinem SM-G935F mit Tapatalk
würde mir den addon code gern mal anschauen, ohne das image auf ne karte schreiben zu müssen.
(03.09.2016, 17:52)harryberlin schrieb: [ -> ]würde mir den addon code gern mal anschauen, ohne das image auf ne karte schreiben zu müssen.

Ich kann dir das Addon gerne mal uploaden gebe dir den Link dann per PN
@Skorpionbird wurde mich auch interesiern. Wurdest du mir den Link auch per PN senden?
Danke
hab mal rein geschaut. is ganz schön kompliziert. zumindest für mich.
Für mich leider auch. Schade :-(

Gesendet von meinem D5803 mit Tapatalk
Was möchtet ihr denn ändern? So schwer ist das Ganze nicht. Meins sieht aktuell so aus.

[attachment=221]

Sensoren die das Auto nicht kann hab ich rausgenommen und andere, die vom Auto unterstützt werden, dazu. Mit den Anzeigen direkt, also anstatt einfache Werte bspw. ein sich füllende Anzeige usw. hab ich mich noch nicht beschäftigt.

Wenn also Erklärungsbedarf besteht, ruhig nachfragen Smile
Jo besteht dringend :-)
Wenn du Lust hast wäre eine kleine Anleitung meeega cool!!

Gesendet von meinem D5803 mit Tapatalk

Gehen bei dir die Dtcs?? Er zeigt bei mir 7 Fehler an(die definitiv nicht da sind) und ich kann sie nur löschen mir aber nicht anzeigen lassen.... Wobei das löschen auch nichts tut

Gesendet von meinem D5803 mit Tapatalk
DTCs gehen bei mir auch nicht, und er zeigt auch 7 oder sogar 8 an. Weiß gar nicht mehr genau. Löschen kann ich sie auch nicht, und wenn das Auto aus ist und er nix einlesen kann, zeigt er sogar 18 an...

-----
(Ist nicht viel Text, vieles ist Copy Paste zum Verständnis Blush  )


Okay, also wichtig sind nur 2 Dateien. Einmal die gui.py, direkt im Hauptverzeichnis, und die script-cardiagnostic-main.xml unter resources\skins\Default\720p.

Fangen wir zuerst mit der gui.py an. Dort ließt das Programm die Sensoren ein und gibt den Echtzeit-Werten (nenne ich sie einfach mal) eine ID mit, die das Interface dann später anzeigen kann.

Am besten du suchst nach der Zeile self.dashboard1.setControlLabel(self.dashboard1.C_DASHBOARD_SPEED, "0"). Hier wird die Zuweißung für das Interface erledigt. Damit das Interface später weiß welcher Wert wo angezeigt werden soll.

Wenn du jetzt einen neuen Sensor hinzufügen willst, musst du dem einen Namen geben. Ich hab z.B. den Short/ und Longbank Sensor noch hinzugefügt. Das sieht dann so aus.
Zitat:self.dashboard1.setControlLabel(self.dashboard1.C_DASHBOARD_SPEED, "0") ------> bereits vorhanden

.....

self.dashboard1.setControlLabel(self.dashboard1.C_DASHBOARD_SHORTBANK, "0") --> hinzugefügt
self.dashboard1.setControlLabel(self.dashboard1.C_DASHBOARD_LONGBANK, "0") ----> hinzugefügt


Wie du siehst, einfach den kompletten Anfang kopieren bis C_DASHBOARD und dann fügst du dein eigenen Name hinzu -> ...C_DASHBOARD_EIGENERSENSOR, "0") und die 0 am Ende nicht vergessen. Wie gesagt, am einfachsten die Zeile mit SPEED kopieren, SPEED rauslöschen, und deinen eigenen Sensorname einfügen.

Dann kannst du direkt noch Sensoren die dein Auto nicht kann deaktivieren, indem du ein # vor die Zeile machst
:

Zitat:# self.dashboard1.setControlLabel(self.dashboard1.C_DASHBOARD_AMBIENT_TEMP, "0")

-----

Jetzt zu den Sensor IDs.
Dazu öffnest du dir am besten noch nebenbei die Datei obd_sensors.py im Ordner pyobd2 und scrollst ganz runter. Dort siehst du die gängigsten IDs bzw. Sensoren die die meisten Autos können und siehst gleichzeitig, welche Einheit du als Ausgabe nehmen musst (%, C, KpA, usw.) (denn in der Datei wird auch gleichzeitig noch die Umrechnung erledigt).

Wieder in der gui.py:
Du suchst die Zeile: # Get and display speed, sollte eigentlich direkt darunter kommen. Dort wird deine Variable, die du oben neu angelegt hast, jetzt einem Sensor zugewiesen, bzw. einer PID, Sensor ID...

Du nimmst dir jetzt also die 3 Zeilen unter # Get and display speed und fügst sie irgendwo darunter ein. Dass du wieder so einen schönen 3er Block hast. Dann setzt du optional noch eine Überschrift drüber, wie z.B.

Zitat:Original

# Get and display speed
self.dashboard1.serial.port.send_command("010D")
speed = self.dashboard1.serial.port.get_result()
self.dashboard1.setControlLabel(self.dashboard1.C_DASHBOARD_SPEED, str(obd_sensors.speed(speed)))

Eigener Sensor

# Get and display Shortbank
self.dashboard1.serial.port.send_command("0114") -> ID in der obd_sensors.py ablesen
short = self.dashboard1.serial.port.get_result() -> Variable / Bezeichnung, für den Sensor anlegen.
self.dashboard1.setControlLabel(self.dashboard1.C_DASHBOARD_SHORTBANK, str(obd_sensors.fuel_trim_percent(short))) -> und wieder die Sensor Bezeichnung / Variable
--------------------------------------------------------------------------------------^-----------------------------------^
-----------------------------------------------------------------Interface Bezeichnung eintragen-----Umrechnungsfaktor eintragen (aus obd_sensors.py)
-----------------------------------------------------------------Haben wir ja oben angelegt

Ich hab dir die Änderungen farblich markiert. Nochmal kurz in Worte:


- Überschrift setzen,
- erste Zeile nur hinten die ID ändern,
- zweite Zeile vorne Variable vergeben für den Sensor,
- dritte Zeile nach C_DASHBOARD deine Bezeichnung für das Interface von oben eintragen, nach _sensors. die korrekte Einheitenumrechnung eintragen und in die Klammer hinten wieder die Sensor Variable.

-----

Das wars jetzt fast mit der gui.py. Ein letzter Schritt noch. Ziemlich weit unten, am besten nach "xbmcgui.WindowXML" suchen.

Dort wird jetzt die Interface Bezeichnung die wir ganz oben als erstes festgelegt haben, verwendet. Das Ganze läuft über Nummern (unschwer zu erkennen Big Grin ) und jede Anzeige auf dem Interface hat immer 3 Nummer. Dazu aber später mehr. Wichtig ist nur, es muss immer ein 2er Abstand sein, für bessere Übersicht. Eigentlich kannst du jede Nummer vergeben, es macht es nur leichter mit 2er Abstand.
Wichtig für uns ist die Zeile in der hinten 10003 steht. Dort fängt die erste Anzeige an, nämlich der Speed. Dann sehen wir direkt die 2er Abstände.

Wenn du jetzt Sensoren hast die sowieso nicht funktionieren, kannst du deren ID einfach benutzen, oder du fügst deine Eigene Nummer ganz am Ende, entweder nach den PIDS oder davor ein.

Sollte eigentlich schnell klar sein, wie die Zuweißung funktioniert -> C_DASHBOARD_DEINEBEZEICHNUNG = ID, also in unserem Beispiel: C_DASHBOARD_SHORTBANK = 10029

-----

Das wars mit der gui.py Datei. Weiter zur script-cardiagnostic-main.xml Datei


Wir Scrollen runter bis zur Zeile mit dem Inhalt <!-- Dashboard ROW1  -->

Dort sehen wir nun folgendes:

Zitat:<!-- Speed  -->-----------------------------------------------------------------
            <control type="label" id="10002">
                <description>Speed label</description>
                <posx>10</posx>-------------------------------------------
                <posy>50</posy>-------------------------------------------
                <width>250</width>-------------------------------------------
                <height>60</height>-------------------------------------------Block 1, zeigt die Überschrift an, in dem Fall "Speed"
                <label>Speed</label>-------------------------------------------
                <textcolor>ffffffff</textcolor>-------------------------------------------
                <font>font30</font>-------------------------------------------
                <aligny>center</aligny>-------------------------------------------
                <align>center</align>-------------------------------------------
            </control>---------------------------------------------------------------
            <control type="label" id="10003"> -----------Block 2, zeigt den Echtzeit-Wert an. Wir erinnern uns, in der gui.py Datei, hatte ganz unten die C_DASHBOARD_SPEED Zeile hinten die ID 10003
                <description>Speed</description>-------- -Genau diese wird hier jetzt verwendet, mit den Daten die der Sensor liefert.
                <posx>10</posx>
                <posy>110</posy>
                <width>250</width>
                <height>100</height>
                <textcolor>ffffffff</textcolor>
                <font>WeatherTemp</font>
                <aligny>center</aligny>
                <align>center</align>
            </control>---------------------------------------------------------------
            <control type="label" id="11003">
                <description>Speed UoM</description>
                <posx>10</posx>
                <posy>220</posy>
                <width>250</width>
                <height>30</height>---------------------------------------------------Block 3, zeigt die Einheit an. Also ob C, % oder KM/H usw.
                <textcolor>ffffffff</textcolor>
                <font>font13</font>
                <label>km/hour</label>
                <aligny>center</aligny>
                <align>center</align>
            </control>----------------------------------------------------------------

Willst du jetzt also deinen eigenen Sensor anzeigen lassen, kopierst du am besten einen dieser 3er Blöcke, also wie hier z.B. einfach alles vom Speed kopieren, incl. Überschrift und fügst es passend ein. Die Struktur sollte sich beim betrachten schnell ergeben. Fügen wir also mal unseren Shortbank Sensor ein.

Zitat:<!-- Shortbank  -->------------------------------ ----------------Aufpassen und eine ID verwenden die noch nicht vorhanden ist. Denn wie gesagt, jedes Anzeigeelement, hat eine ID.
            <control type="label" id="10028"> ---------------- Am besten du nimmst eine Zahl unter der ID für das Interface die du vorhin bei der gui.py gewählt hast. Dort hatten wir 10029.
                <description>Shortbank Label</description> - Beschreibung für das Label (eigentlich unwichtig, aber für die Übersicht)
                <posx>500</posx> -------------------------------X Position, also links, rechts Verschiebung. Die Datei ist so aufgebaut. 5 Elemente in eine Reihe mit Zuweißung:10, 250, 500, 750, 1000.
                <posy>50</posy> ---------------------------------Y Position, also hoch runter. Jede Anzeige hat 3 Elemente, mit einem Abstand von 60 und 110 Pixeln und Anfang bei 50. Das heißt. 50, 110, 220 für die erste Zeile.
                <width>250</width>------------------------------ 250, 310, 420 für die zweite Zeile. Aber das ergibt sich beim draufschauen. Musst nur paar mal Scrollen, dann hast dus Wink
                <height>60</height>------------------------------Die 3. Zeile hat sowieso andere Abstände, siehst du aber dann. Einfach Copy Pasten und vorstellen wo die Anzeige sitzt.
                <label>Shortbank</label> ------------------------Bezeichnung der Anzeige. Quasi die Überschrift der Anzeige, hier in dem Fall steht Shortbank drüber.
                <textcolor>ffffffff</textcolor> --------------- ---Rest sollte selbsterklärend sein.
                <font>font30</font>
                <aligny>center</aligny>
                <align>center</align>
            </control>
            <control type="label" id="10029"> ----------Hier wirds nochmal wichtig. ID von der gui.py eintragen. Wir haben C_DASHBOARD_SHORTBANK vorhin 10029 zugewiesen. Also hier eintragen.
                <description>Shortbank</description>
                <posx>500</posx>
                <posy>110</posy> ------------------------ Position Erklärung wie oben.
                <width>250</width>
                <height>100</height>
                <textcolor>ffffffff</textcolor>
                <font>WeatherTemp</font>
                <aligny>center</aligny>
                <align>center</align>
            </control>
            <control type="label" id="11029"> ---------Hier hat der Tool Macher einfach die eigentliche ID + 1000 genommen. Also 10029 -> 11029. Gut für die Übersicht.
                <description>Shortbank UoM</description>
                <posx>500</posx>
                <posy>220</posy>
                <width>250</width>
                <height>30</height>
                <textcolor>ffffffff</textcolor>
                <font>font13</font>
                <label>&#37;</label> -----------------------Hier nochmal wichtig, die richtige Anzeige unter der Zahl die ausgelesen wird. Also ob C° oder F°, % usw. angezeigt wird.
                <aligny>center</aligny>
                <align>center</align>
            </control>

Dat wars eigentlich. Sieht schwerer aus als es ist. Interface Variable anlegen, Sensor anlegen und Interface Variable verknüpfen. Interface Variable eine ID zuweißen und im Interface anzeigen lassen Big Grin

Bei Fragen ruhig melden.

mfg
Seiten: 1 2 3 4 5 6 7 8