Ejemplo n.º 1
0
        public FaultCodesBlock(List<byte> bytes) : base(bytes)
        {
            FaultCodes = new();

            IEnumerable<byte> data = Body;

            while (true)
            {
                var code = data.Take(3).ToArray();
                if (code.Length == 0)
                {
                    break;
                }

                var dtc = code[0] * 256 + code[1];
                var status = code[2];

                var faultCode = new FaultCode(dtc, status);
                if (!faultCode.Equals(FaultCode.None))
                {
                    FaultCodes.Add(faultCode);
                }

                data = data.Skip(3);
            }
        }
Ejemplo n.º 2
0
        string Converter_Faults(Tuple <int, int> t)
        {
            int        Code      = t.Item1;
            FaultCodes fault_id  = (FaultCodes)((Code & 0xff00) >> 8);
            int        fault_cat = Code & 0xff;

            string fault_desc = FaultCodeToString(fault_id);
            string cat_desc   = DTC_Category.ToString((DTC_Category.Code)fault_cat);

            return(fault_desc + ", " + cat_desc);
        }
Ejemplo n.º 3
0
        public Handler <T> AddNext(Func <T, bool> condition, FaultCodes faultCodes)
        {
            var actionUtility = new ActionUtility <T>()
            {
                Type       = _type,
                Func       = condition,
                FaultCodes = faultCodes
            };

            _actionUtility.Add(actionUtility);
            return(this);
        }
Ejemplo n.º 4
0
        string FaultCodeToString(FaultCodes Code)
        {
            string fault_desc;

            switch (Code)
            {
            case FaultCodes.dtc_General_EcuConfig:
                fault_desc = "Ошибка памяти";
                break;

            case FaultCodes.dtc_General_EcuDataTimeNotCorrect:
                fault_desc = "Некорректное дата/время";
                break;

            case FaultCodes.dtc_General_EcuSupplyOutOfRange:
                fault_desc = "Напряжение питания";
                break;

            case FaultCodes.dtc_General_Interlock:
                fault_desc = "Интерлок";
                break;

            case FaultCodes.dtc_General_UnexpectedPowerOff:
                fault_desc = "Неожиданное отключение питания";
                break;

            case FaultCodes.dtc_CAN_ExtCan:
                fault_desc = "Оффлайн CAN 2";
                break;

            case FaultCodes.dtc_CAN_PCAN:
                fault_desc = "Оффлайн CAN 1";
                break;

            case FaultCodes.dtc_PwmCircuit_1:
                fault_desc = "Цепи ШИМ 1";
                break;

            case FaultCodes.dtc_PwmCircuit_2:
                fault_desc = "Цепи ШИМ 2";
                break;

            case FaultCodes.dtc_PwmCircuit_3:
                fault_desc = "Цепи ШИМ 3";
                break;

            case FaultCodes.dtc_MeasuringCircuit:
                fault_desc = "Цепи измерения АЦП";
                break;

            case FaultCodes.dtc_PowerSupplyCircuit:
                fault_desc = "Цепи питания ECU";
                break;

            default:
                fault_desc = Code.ToString();
                break;
            }

            return(fault_desc);
        }
Ejemplo n.º 5
0
        string FaultCodeToString(FaultCodes Code)
        {
            string fault_desc;

            switch (Code)
            {
            case FaultCodes.dtc_General_EcuConfig:
                fault_desc = "Ошибка памяти";
                break;

            case FaultCodes.dtc_General_EcuDataTimeNotCorrect:
                fault_desc = "Некорректное дата/время";
                break;

            case FaultCodes.dtc_General_EcuSupplyOutOfRange:
                fault_desc = "Напряжение питания";
                break;

            case FaultCodes.dtc_General_Interlock:
                fault_desc = "Интерлок";
                break;

            case FaultCodes.dtc_General_UnexpectedPowerOff:
                fault_desc = "Неожиданное отключение питания";
                break;

            case FaultCodes.dtc_CAN_Inverter:
                fault_desc = "Нет связи с инвертором";
                break;

            case FaultCodes.dtc_CAN_Steering:
                fault_desc = "Нет связи с рулевым управлением";
                break;

            case FaultCodes.dtc_CAN_Battery:
                fault_desc = "Нет связи с батареей";
                break;

            case FaultCodes.dtc_BatteryFault:
                fault_desc = "Батарея в ошибке";
                break;

            case FaultCodes.dtc_InverterFault:
                fault_desc = "Инвертор в ошибке";
                break;

            case FaultCodes.dtc_SteeringPosition:
                fault_desc = "Ошибка позиционирования рулевой рейки";
                break;

            case FaultCodes.dtc_TrimPosition:
                fault_desc = "Ошибка позиционирования трим";
                break;

            case FaultCodes.dtc_Accelerator:
                fault_desc = "Неисправность ручки акселератора";
                break;

            case FaultCodes.dtc_SteeringFeedback:
                fault_desc = "Обратная связь рулевого рейки";
                break;

            case FaultCodes.dtc_TrimFeedback:
                fault_desc = "Обратная связь трим";
                break;

            case FaultCodes.dtc_PwmCircuit_1:
                fault_desc = "Драйвер ШИМ 1";
                break;

            case FaultCodes.dtc_PwmCircuit_2:
                fault_desc = "Драйвер ШИМ 2";
                break;

            case FaultCodes.dtc_PwmCircuit_3:
                fault_desc = "Драйвер ШИМ 3";
                break;

            case FaultCodes.dtc_MeasuringCircuit:
                fault_desc = "Ошибка канала АЦП";
                break;

            case FaultCodes.dtc_PowerSupplyCircuit:
                fault_desc = "Драйвер питания";
                break;


            default:
                fault_desc = Code.ToString();
                break;
            }

            return(fault_desc);
        }