Exemple #1
0
        private void btnReadFaultCodes_ItemClick(object sender, ItemClickEventArgs e)
        {
            if (CheckCANConnectivity())
            {
                // 16 25 16 22 00 00 00 00 00 00 00 00
                frmFaultcodes frmfaults = new frmFaultcodes();
                frmfaults.onClearCurrentDTC += new frmFaultcodes.onClearDTC(frmfaults_onClearCurrentDTC);
                m_prohibitReading = true;
                bool _success = false;
                string faultCodes = string.Empty;
                int symbolnumber = GetSymbolNumber(m_symbols, "obdFaults");
                if (symbolnumber == 0)
                {
                    // not connected to ECU
                    frmInfoBox info = new frmInfoBox("Cannot find symbolnumber for symbol obdFaults, ECU binary must be loaded");
                }
                byte[] buffer = ReadSymbolFromSRAM((uint)symbolnumber, "obdFaults", (uint)GetSymbolAddressSRAM(m_symbols, "obdFaults"), GetSymbolLength(m_symbols, "obdFaults"), out _success);
                if (_success)
                {
                    for (int t = 0; t < buffer.Length; t += 2)
                    {
                        if (buffer[t] == 0x00 && buffer[t + 1] == 0x00)
                        {
                            break;
                        }
                        else
                        {
                            //faultCodes += "P" + buffer[t].ToString("X2") + buffer[t + 1].ToString("X2") + Environment.NewLine;
                            frmfaults.addFault("P" + buffer[t].ToString("X2") + buffer[t + 1].ToString("X2"));
                        }
                    }
                }

                frmfaults.Show();
                m_prohibitReading = false;

            }
            else
            {
                // not connected to ECU
                frmInfoBox info = new frmInfoBox("An active CAN bus connection is needed to read faultcodes");
            }
        }
Exemple #2
0
        private void btnReadFaultCodes_ItemClick(object sender, ItemClickEventArgs e)
        {
            // Connect at accesslevel01, need to close connection if already open
            if (m_connectedToECU)
            {
                t8can.Cleanup();
                m_connectedToECU = false;
            }
            SetCanAdapter();
            t8can.SecurityLevel = AccessLevel.AccessLevel01;
            t8can.openDevice(false);

            frmFaultcodes frmfaults = new frmFaultcodes();
            frmfaults.onClearCurrentDTC += new frmFaultcodes.onClearDTC(frmfaults_onClearCurrentDTC);
            frmfaults.onCloseFrm += new frmFaultcodes.frmClose(frmfaults_onClose);

            string[] faults = t8can.ReadDTC();
            foreach (string fault in faults)
            {
                frmfaults.addFault(fault.Substring(5,5));
            }
            frmfaults.Show();
        }