Zitat: |
Ich weis das es viele gibt die diese Schnittstelle noch nicht haben aber die nächsten 2-3 Jahre wird fast jeder diese haben. |
Polo_100PS_TDI hat folgendes geschrieben: |
Shadow: kommt mir bekannt vor die schaltung, hab sie zwar nciht genau verglichen, könnte aber diese auch sen (müsste die gleiche sein besser gesagt) : http://www.elv-downloads.de/service/manuals/VDA100/61029-ELV-Diagnose-Adapter.pdf
die hab ich |
Code: |
public void ReadSpeed() { //send the code for the needed Value and get back the answer as OBDIIValue OBDIIValue Value = GetOBDIIValue("010D06"); if (Value.dataOK) { int Speed = Math.Abs(Value.b2); OBDIIRecordSet.Speed = Speed; } else { LogWriter.WriteLine(DateTime.Now.ToString() + " - Speed: Data was NOT OK: " + Value.b1 + "/" + Value.b2 + "/" + Value.b3 + "/" + Value.b4); } } public OBDIIValue GetOBDIIValue(string OBDIICode) { LogWriter.WriteLine(DateTime.Now.ToString() + " - Reading. OBDIICode: " + OBDIICode); //Returnobject for OBDIIValues OBDIIValue retValues = new OBDIIValue(); retValues.dataOK = false; try { //clear the buffer sp.DiscardInBuffer(); //send OBDIICode sp.Write(OBDIICode); //StatusBarText.Text = "Wrote Data (" + TimerCount + ")"; Data = ""; int numReads = 0; //get data... wait till 21 chars are received while (Data.Length < 21 && !Abort) { // if (sp.BytesToRead == 0) { Application.DoEvents(); Thread.Sleep(2); continue; } numReads++; Data += sp.ReadExisting(); //remove all S-Chars from the data Data = Data.Replace("S", ""); //DebugWriter.WriteLine("reading (" + numReads + ") Code: " + OBDIICode + " Data: " + Data + " / " + Data.Length.ToString()); Application.DoEvents(); //wenn lange keine Daten empfangen werden exception werfen if (numReads >= 200) throw new Exception("keine Daten empfangen"); } //DebugWriter.WriteLine("finished (" + numReads + ") Code: " + OBDIICode + " Data: " + Data); int DataStart = Data.IndexOf("V"); if (DataStart < 0) { throw new Exception("OBDII-Code nicht gefunden! Empfangene Daten fehlerhaft."); } Data = Data.Substring(DataStart); //only the value Data = Data.Substring(9, 8); //get the four bytes String s1 = Data.Substring(0, 2); String s2 = Data.Substring(2, 2); String s3 = Data.Substring(4, 2); String s4 = Data.Substring(6, 2); //convert the four hex values to int int b1 = Int32.Parse(s1, System.Globalization.NumberStyles.HexNumber); int b2 = Int32.Parse(s2, System.Globalization.NumberStyles.HexNumber); int b3 = Int32.Parse(s3, System.Globalization.NumberStyles.HexNumber); int b4 = Int32.Parse(s4, System.Globalization.NumberStyles.HexNumber); //prepare the return object retValues.b1 = b1; retValues.b2 = b2; retValues.b3 = b3; retValues.b4 = b4; retValues.dataOK = true; StatusBarText.Text = "Data read (" + ReaderCount + ")"; } catch (System.Exception ex) { DebugBox.Text = "Method 'GetOBDIIValue': " + ex.Message; } return retValues; } |
furious hat folgendes geschrieben: |
Der Hersteller selber hat gemeint, dass ihm kein Interface bekannt sei (was bezahlbar) und kein ELM-Chip besitzt. |