Files
HC_APTBS/Infrastructure/Kwp/Packets/FaultCodesPacket.cs
2026-04-11 12:45:18 +02:00

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);
}
}