60 lines
1.9 KiB
C#
60 lines
1.9 KiB
C#
using System.Collections.Generic;
|
|
using System.Linq;
|
|
|
|
namespace HC_APTBS.Infrastructure.Kwp.Packets
|
|
{
|
|
public class FaultCodesPacket : Packet
|
|
{
|
|
public FaultCodesPacket(List<byte> bytes) : base(bytes)
|
|
{
|
|
|
|
Data = bytes;
|
|
|
|
}
|
|
public List<byte> Data { get; }
|
|
}
|
|
|
|
public struct FaultCode
|
|
{
|
|
public FaultCode(int dtc, int status)
|
|
{
|
|
Dtc = dtc;
|
|
Status = status;
|
|
}
|
|
|
|
public override string ToString()
|
|
{
|
|
var status1 = Status & 0x7F;
|
|
var status2 = (Status >> 7) * 10;
|
|
|
|
Dictionary<int, string> dtc_text = new Dictionary<int, string>
|
|
{
|
|
{0x50, "Fuel quantity solenoid valve Output stage error"},
|
|
{0x51, "Fuel quantity solenoid valve."},
|
|
{0x52, "Angle sensor/ IWZ system."},
|
|
{0x53, "Angle sensor/ IWZ system"},
|
|
{0x54, "Control unit temperature sensor, temperature to high"},
|
|
{0x55, "Control unit temperature sensor"},
|
|
{0x56, "Battery voltage out of range"},
|
|
{0x57, "Timing device control.Permanent control deviation"},
|
|
{0x58, "Fuel quantity / timing solenoid valve"},
|
|
{0x59, "BIP Fault(Begin of Injection Point)"},
|
|
{0x5A, "Engine speed signal"},
|
|
{0x5B, "Engine speed signal"},
|
|
{0x5C, "CAN -Bus(sporadic)"},
|
|
{0x5D, "CAN bus error"},
|
|
{0x5E, "Self - test error"},
|
|
};
|
|
|
|
if (dtc_text.ContainsKey(Dtc)) return $"{Dtc:X2} {dtc_text[Dtc]} ({status1:d2})";
|
|
return $"{Dtc:X2} Unknown Error Code ({status1:d2})";
|
|
}
|
|
|
|
public int Dtc { get; }
|
|
|
|
public int Status { get; }
|
|
|
|
public static readonly FaultCode None = new FaultCode(0x00, 0xFF);
|
|
}
|
|
}
|