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