Exemple #1
0
        public IPsdzStandardSvt BuildStandardSvtActualFromVehicleContext(IVehicle vehicleContext, IEnumerable <IPsdzEcuIdentifier> ecuListFromPsdz = null)
        {
            MethodBase       currentMethod = MethodBase.GetCurrentMethod();
            IPsdzStandardSvt result;

            try
            {
                PsdzStandardSvt psdzStandardSvt = null;
                if (vehicleContext != null && vehicleContext.ECU != null)
                {
                    psdzStandardSvt = new PsdzStandardSvt();
                    IList <IPsdzEcu> list = new List <IPsdzEcu>();
                    using (IEnumerator <IEcu> enumerator = vehicleContext.ECU.GetEnumerator())
                    {
                        while (enumerator.MoveNext())
                        {
                            IEcu               srcEcu            = enumerator.Current;
                            PsdzEcu            psdzEcu           = new PsdzEcu();
                            IPsdzEcuIdentifier psdzEcuIdentifier = (ecuListFromPsdz == null) ? null : ecuListFromPsdz.FirstOrDefault((IPsdzEcuIdentifier e) => e.DiagAddrAsInt == (int)srcEcu.ID_SG_ADR);
                            if (psdzEcuIdentifier != null)
                            {
                                psdzEcu.PrimaryKey = this.BuildEcuIdentifier((int)srcEcu.ID_SG_ADR, psdzEcuIdentifier.BaseVariant);
                            }
                            else
                            {
                                psdzEcu.PrimaryKey = this.BuildEcuIdentifier((int)srcEcu.ID_SG_ADR, srcEcu.ECU_GROBNAME);
                            }
                            PsdzStandardSvk psdzStandardSvk = new PsdzStandardSvk();
                            PsdzClient.Utility.SgbmIdParser sgbmIdParser = new PsdzClient.Utility.SgbmIdParser();
                            IList <IPsdzSgbmId>             list2        = new List <IPsdzSgbmId>();
                            foreach (string sgbmId in srcEcu.SVK.XWE_SGBMID)
                            {
                                if (sgbmIdParser.ParseDec(sgbmId))
                                {
                                    IPsdzSgbmId item = this.BuildPsdzSgbmId(sgbmIdParser.ProcessClass, sgbmIdParser.Id, sgbmIdParser.MainVersion, sgbmIdParser.SubVersion, sgbmIdParser.PatchVersion);
                                    list2.Add(item);
                                }
                            }
                            psdzStandardSvk.SgbmIds = list2;
                            psdzEcu.StandardSvk     = psdzStandardSvk;
                            list.Add(psdzEcu);
                        }
                    }
                    psdzStandardSvt.Ecus = list;
                }
                result = psdzStandardSvt;
            }
            catch (Exception)
            {
                result = null;
            }
            return(result);
        }
Exemple #2
0
        private IPsdzEcu CreateEcu(IEcuObj ecuInput)
        {
            if (ecuInput == null)
            {
                return(null);
            }
            PsdzEcu psdzEcu = new PsdzEcu();

            psdzEcu.PrimaryKey  = this.BuildEcuIdentifier(ecuInput.EcuIdentifier);
            psdzEcu.BaseVariant = ecuInput.BaseVariant;
            psdzEcu.EcuVariant  = ecuInput.EcuVariant;
            psdzEcu.BnTnName    = ecuInput.BnTnName;
            if (ecuInput.GatewayDiagAddrAsInt != null)
            {
                psdzEcu.GatewayDiagAddr = this.BuildDiagAddress(ecuInput.GatewayDiagAddrAsInt.Value);
            }
            psdzEcu.DiagnosticBus = this.busEnumMapper.GetValue(ecuInput.DiagnosticBus);
            psdzEcu.SerialNumber  = ecuInput.SerialNumber;
            if (ecuInput.EcuDetailInfo != null)
            {
                psdzEcu.EcuDetailInfo = new PsdzEcuDetailInfo
                {
                    ByteValue = ecuInput.EcuDetailInfo.Value
                };
            }
            if (ecuInput.EcuStatusInfo != null)
            {
                psdzEcu.EcuStatusInfo = new PsdzEcuStatusInfo
                {
                    ByteValue         = ecuInput.EcuStatusInfo.Value,
                    HasIndividualData = ecuInput.EcuStatusInfo.HasIndividualData
                };
            }
            psdzEcu.BusConnections = ((ecuInput.BusConnections != null) ? ecuInput.BusConnections.Select(new Func <Bus, PsdzBus>(this.busEnumMapper.GetValue)) : null);
            IPsdzStandardSvk standardSvk = this.BuildSvk(ecuInput.StandardSvk);

            psdzEcu.StandardSvk    = standardSvk;
            psdzEcu.PsdzEcuPdxInfo = this.BuildPdxInfo(ecuInput.EcuPdxInfo);
            return(psdzEcu);
        }