Honda Insight Forum banner

OBDIIC&C Gauge Band 2

125K views 545 replies 51 participants last post by  mudder  
#1 · (Edited)
Ich habe diesen Thread gestartet, da der alte riesig war und es Zeit für einen Neuanfang war.

Als Geschenk für die Community zu Weihnachten habe ich eine neue Firmware für die OBDIIC&C-Anzeige und die zugehörige PDF-Bedienungsanleitung angehängt.
Es gibt viele neue Dinge und viele Änderungen in der Funktionsweise, also bitte RTM "Lesen Sie das Handbuch", bevor Sie Fragen stellen.

Highlights sind:

Möglichkeit zum Lesen von ABS-, SRS-, EPS-DTCs.
Ah/Wh-Timing-Problem behoben.
Neues, intelligenteres Menüsystem.
Neue Option für die abwechselnde Anzeige von 16 Parametern mit einstellbarer Seitenzeit.
Benutzerwählbarer Amp-Hack %.
Benutzerwählbarer Spannungs-Hack %.
Benutzerwählbare 12-V-Spannungskompensation %.
Optionen zum Überspringen des Startbildschirms/OBD und/oder der Bereitschaftsbildschirme.
Liest jetzt bis zu 9 OBDII-Codes beim Start. (Vorher 3)
Ipu-Lüfter-Testmodus.
Sichern und Wiederherstellen aller Parameter und Konfigurationsoptionen.
Automatische Batterielüfterstatus wieder enthalten. Merkt sich die Lüftereinstellung für die Verwendung beim nächsten Start.
Merkt sich die Hintergrundbeleuchtungseinstellung.
Bessere IMAC&C P&P-Integration.
Viele Fehlerbehebungen und Programmverbesserungen. Berichte willkommen.

Die Anzeige aktualisiert sich jetzt auch etwas schneller mit 4,66 Hz im Vergleich zu 4 Hz zuvor.
Nicht alles davon ist eingehend getestet, einfach keine Zeit. Nun seid ihr dran.
Ich habe noch etwa 14.000 von 64.000 Speicherplatz im Pic für die restlichen DTC-Datenbanken, sobald ich dazu komme.

Wie auch immer, ich wünsche euch allen ein frohes Weihnachtsfest und ein gutes neues Jahr.

Peter

PS wie gewünscht.

Link zur Teile-Tabelle.. https://docs.google.com/spreadsheet...spreadsheets/d/1UoVmGtfMLnfP1Y3XItyYllM-9JlMSTHepPaEBIGz19o/edit?hl=en_US#gid=0

Neuester Schaltplan mit einigen kleineren Änderungen. (Beachten Sie, dass dies vier CAN-Anschlüsse hat, die ignoriert werden können.)
Es verwendet die gleiche Platine wie das Original und funktioniert sowohl in dieser als auch in der alten Schaltplankonfiguration einwandfrei mit der aktuellen Software.
 

Attachments

#2 ·
OBDIIC&C Schaltplan & Teileliste

Damit ich nicht 284 Seiten durchsuchen muss, und um zukünftigen Käufern zu helfen, können Sie bitte einen aktuellen Schaltplan und eine aktuelle Mouser (ich nehme an, dieser Lieferant, da Sie ihn schon einmal benutzt haben) Stückliste für dieses Gerät posten. Ich nehme an, dass dies das Display beinhaltet. Ich werde im neuen Jahr eine Platine bestellen. Danke. Frohe Weihnachten
 
#3 · (Edited)
Das von mir gepostete Handbuch enthält anklickbare Links zur Google Docs-Teile-Tabelle und zur Stückliste.
Die Tabelle enthält dann Links zum Schaltplan. ;)
Aber ich habe sie auch in meinen ersten Beitrag aufgenommen.
 
#4 ·
Excel Hilfe

Ich muss einige Daten analysieren/sortieren, bin aber schlecht in Excel.
Angehängt ist eine Datendatei mit einem fehlerhaften Makro.

Ich möchte das Makro bearbeiten oder ein neues erstellen, um die große Datenspalte in Blatt 1 aufzuteilen, so dass es jedes Mal, wenn $20 gefolgt von $05 auftritt, diese und die nachfolgenden Daten in eine Zeile in Blatt 2 kopiert, wie unten.

20 05 ab 23 45 de f6 bla bla
20 05 xx xx xx xx xx usw. usw.
20 05 cd 43 xx xx xx xx xx

Kann mir jemand helfen?
 

Attachments

#7 ·
Makro

Entschuldigung, ich konnte es früher einmal tun, bevor Xcel so verdammt kompliziert wurde.

Mögliche Hilfe. Wenn Sie auf das kleine Hilfe-Fragezeichen klicken und dann Makro eingeben, wird Ihnen ein Video zum Ansehen angeboten. Nur so ein Gedanke.

Dies könnte auch helfen:
https://chandoo.org/wp/2009/08/19/excel-pivot-tables-tutorial/

Viel Glück.
 
#8 ·
Versuchen Sie es mal. Dies ist mein allererster Versuch mit VBA... :)

Es erfordert, dass die ersten beiden Zeilen 0x20 und 0x05 enthalten, und es stoppt, wenn die erste leere Zelle erreicht wird.

Nach dem Ausführen scheint die Ausgabe korrekt zu sein, basierend auf Stichproben. 54 Zeichenketten, beginnend mit 0x20 & 0x05, wurden extrahiert. 898 Zeilen enthalten Daten in Blatt 1 und 898 Zellen enthalten Daten in Blatt 2, wobei die Funktion COUNTA(Bereich) zur Überprüfung verwendet wird.

Ich habe mir den Kopf zerbrochen, bis ich anfing, in Bezug auf die Sequenz 0x20 und 0x05 als Indikator für einen "Zeilenumbruch" zu denken, um eine neue Zeile zu beginnen. Ich habe mehrere Variationen von nur 0x20 ausprobiert, und es ging viele Male nirgendwohin, da die einzelnen Instanzen von 0x20, denen KEIN 0x05 folgte, einen Strich durch die Rechnung machten.

Grundsätzlich einfach alles transponieren, bis die Sequenz 0x20 + 0x05 gefunden wird, und dann die Zielspalte auf 1 zurücksetzen und zur nächsten Zeile gehen.

Sub transponieren()
Dim sourceRow, targetRow, targetColumn As Integer

' erste leere Zeile im Zielblatt finden
targetRow = 1
While (Sheets(2).Cells(targetRow, 1) <> "")
targetRow = targetRow + 1
Wend

sourceRow = 1
targetColumn = 1
targetRow = 0
Do
'wenn die aktuelle Zelle "0x20" ist, dann prüfen, ob die nächste Zeile "0x05" ist
If (Sheets(1).Cells(sourceRow, 1) = "0x20") Then
If (Sheets(1).Cells(sourceRow + 1, 1) = "0x05") Then
'wenn ja, dann eine neue Zeile beginnen, indem die Zeile inkrementiert und die Spalte auf 1 zurückgesetzt wird
targetRow = targetRow + 1
targetColumn = 1
End If
End If
'die Zellen transponieren, indem die Quellzeile und die Zielspalte inkrementiert werden
Sheets(2).Cells(targetRow, targetColumn) = Sheets(1).Cells(sourceRow, 1)
sourceRow = sourceRow + 1
targetColumn = targetColumn + 1

Loop Until (Sheets(1).Cells(sourceRow, 1) = "") 'stoppen, wenn die Eingabezelle leer ist

End Sub
 

Attachments

#11 ·
Vielen Dank für Ihre Arbeit daran, Peter...

Beim Durchlesen des Handbuchs bin ich auf Folgendes gestoßen, Seite 5 rechts unten, ich bin mir nicht sicher, was es genau bedeutet:

"Hinweis: Die Ah/Wh-Zählung erfolgt nur, wenn die Anzeige im Hauptbildschirmmodus mit acht Parametern aktiv ist. Die Zählung wird im erweiterten Anzeigemodus mit 16 alternierenden Parametern nicht unterstützt. Außerdem muss der Parameter 'Bam' auf dem Hauptparameterbildschirm aktiv sein, damit die Zählung funktioniert."

Bedeutet das, dass die Amperestunden-Zählung überhaupt nicht funktioniert, wenn man den 16-Parameter-Modus wählt?

Oder bedeutet es, dass Amperestunden nur gezählt werden, wenn der erste 0-7-Parameter-Bildschirm aktiv ist, unter der Annahme, dass Bam einer der Parameter ist, d. h. wenn der Bildschirm zu den Parametern 8-15 wechselt, werden keine Amperestunden gezählt - selbst wenn Sie Bam als Parameter auf beiden Bildschirmen haben?

Oder etwas anderes?
 
#12 ·
Gl1.. Ich hatte nicht in Betracht gezogen, 'Bam' auf beiden Bildschirmen zu haben, also könnte es so funktionieren, probieren Sie es aus.

Wenn der zweite Bildschirm aktiv ist und 'Bam' nicht zu den Parametern gehört, wird während dieser Zeit kein aktueller Messwert erfasst und die Ah/Wh-Werte werden um 50 % unterschritten.
 
#14 · (Edited)
Die Bildschirmteilungszeit beträgt im Wechselmodus genau 50 %. Also, wie Sie sagen, einfach verdoppeln. Über längere Zeiträume gleichen sich verpasste aktuelle usw. aus.
 
#18 ·
Sam12345, der Link zum Benutzerhandbuch funktioniert bei mir und anderen. Muss an Ihrem Ende oder ein IC-Problem liegen.

Bezüglich der Verstärker in - Verstärker aus.

Das ist für die nächste Version möglich, ich werde es als speziellen Parameter hinzufügen.
 
#20 · (Edited)
Der fette Text ist kein Link. Sie sollten unten im Beitrag ein Feld mit 3 verknüpften, angehängten Dokumenten sehen. Wenn Sie nicht angemeldet sind, werden Sie die Anhänge möglicherweise nicht sehen, denke ich... Bearbeiten: OK, nun, ich habe mich abgemeldet und sehe die Anhänge, kann sie aber nicht herunterladen...
 
#22 ·
Ich benutze Chrome auf einem PC. Wenn ich auf die PDF-Links klicke, erscheint unten links auf meinem Bildschirm ein kleines Kästchen mit dem Dateinamen. Wenn ich auf dieses Kästchen klicke, öffnet sich das Dokument.
 
#24 · (Edited)
Mehr Tüftelei

Ima-Effizienzberechnung.

Wir haben im Software-Programm aktive Zähler für Wattstunden (Wh) In und Out. Sie können jeweils bis zu 65535 Wh speichern.

Wie können wir also aus diesen Daten, die sich während täglicher/wöchentlicher/monatlicher Läufe ansammeln, eine In/Out-%-Effizienz berechnen?

Die Mathematik muss in 16-Bit-Integer nur machbar sein. Bereich 0-65535. Keine Dezimalstellen.

Z.B.

WhIn 30000 - WhOut 15000 = 15000
100 / 30000 = 0,003333
0,003333 x 15000 = 50% :)

Aber wir können keine Dezimalstellen haben.. :(

Es gibt einen speziellen Divisionsbefehl und einen 32-Bit-Modus in PicBasic Pro, die helfen können.

3.1.10 DIV32
Die Multiplikationsfunktion (*) von PBPW arbeitet als 16-Bit x 16-Bit-Multiplikation, die ein 32-Bit-internes Ergebnis liefert. Da PBPW jedoch nur eine maximale Variablengröße von 16 Bit unterstützt, musste der Zugriff auf das Ergebnis in 2 Schritten erfolgen: c = b * a gibt die unteren 16 Bit der Multiplikation zurück, während d = b ** a die oberen 16 Bit zurückgibt. Es gab keine Möglichkeit, auf das 32-Bit-Ergebnis als Einheit zuzugreifen.
In vielen Fällen ist es wünschenswert, das gesamte 32-Bit-Ergebnis der Multiplikation durch eine 16-Bit-Zahl für die Mittelung oder Skalierung dividieren zu können. Für diesen Zweck wurde ein spezieller Operator bereitgestellt: DIV32. DIV32 ist tatsächlich darauf beschränkt, eine 31-Bit-Ganzzahl ohne Vorzeichen (max. 2147483647) durch eine 15-Bit-Ganzzahl ohne Vorzeichen (max. 32767) zu dividieren.
Dies sollte in den meisten Fällen ausreichen.
Da PBPW nur eine maximale Variablengröße von 16 Bit zulässt, geht DIV32 davon aus, dass gerade eine Multiplikation durchgeführt wurde und dass die internen Compiler-Variablen noch das 32-Bit-Ergebnis der Multiplikation enthalten. Zwischen der Multiplikation und dem DIV32 darf keine andere Operation erfolgen, da sonst die internen Variablen geändert und das 32-Bit-Multiplikationsergebnis zerstört werden könnte.

Beispiel

a VAR WORD
b VAR WORD
c VAR WORD
dummy VAR WORD
b = 500
c = 1000

dummy = b * c ' Kann auch ** oder */ verwenden
a = DIV32 100

Dieses Programm weist b den Wert 500 und c den Wert 1000 zu. Bei der Multiplikation wäre das Ergebnis 500000. Diese Zahl überschreitet die 16-Bit-Wortgröße einer Variable (65535). Die Dummy-Variable enthält also nur die unteren 16 Bit des Ergebnisses. Auf jeden Fall wird sie von der DIV32-Funktion nicht verwendet. DIV32 verwendet Variablen, die dem Compiler intern sind, als Operanden.
In diesem Beispiel dividiert DIV32 das 32-Bit-Ergebnis der Multiplikation b * c durch 100 und speichert das Ergebnis dieser Division, 5000, in der wortgroßen Variable a.
DIV32 wird von PBPL nicht unterstützt, da diese Version des Compilers immer eine 32-Bit x 32-Bit-Division verwendet.
Ideen und Beispiele willkommen...
 
#26 ·
Multiplizieren Sie die Wattstunden-Ausgangszahl mit 100 und dividieren Sie das Ergebnis durch die Wattstunden-Eingabe.
Für Ihr Beispiel in Dezimalzahlen

(150000x100)/300000=50

In Hexadezimal

(249F0 x 64)/493E0=32

Dies ergibt Ihren Wirkungsgrad als ganze Zahl.
Hier ist ein guter Hex-Rechner, um zu überprüfen, ob es funktioniert.

http://www.calculator.net/hex-calcu...net/hex-calculator.html?number1=E4e1c0&c2op=/&number2=493e0&calctype=op&x=0&y=0

Ein weiteres Beispiel

Watt rein 432
Watt raus 327
In Dezimalzahlen

(327×100)/432=75,6, also wenn Sie 75 abschneiden

In Hexadezimal

(147×64)/1B0=4B mit einem Rest von 12C, lassen Sie den Rest weg und Sie erhalten 75

Ich schätze, Sie könnten mit 1000 statt mit 100 multiplizieren, wenn Sie eine bessere Auflösung (1 Dezimalstelle) wünschen.