internal string BuildKey(IPsdzEcu ecu) { if (ecu != null && ecu.BaseVariant != null && ecu.PrimaryKey != null) { return(ecu.BaseVariant + "-" + ecu.PrimaryKey.DiagAddrAsInt); } return(null); }
public IEcuObj Build(IPsdzEcu ecuInput) { if (ecuInput == null) { return(null); } EcuObj ecuObj = new EcuObj(); ecuObj.BaseVariant = ecuInput.BaseVariant; ecuObj.EcuVariant = ecuInput.EcuVariant; ecuObj.BnTnName = ecuInput.BnTnName; ecuObj.GatewayDiagAddrAsInt = ((ecuInput.GatewayDiagAddr != null) ? new int?(ecuInput.GatewayDiagAddr.Offset) : null); ecuObj.DiagnosticBus = this.busEnumMapper.GetValue(ecuInput.DiagnosticBus); ecuObj.SerialNumber = ecuInput.SerialNumber; ecuObj.EcuIdentifier = this.Build(ecuInput.PrimaryKey); ecuObj.StandardSvk = this.Build(ecuInput.StandardSvk); ecuObj.BusConnections = ((ecuInput.BusConnections != null) ? ecuInput.BusConnections.Select(new Func <PsdzBus, Bus>(this.busEnumMapper.GetValue)).ToList <Bus>() : null); ecuObj.EcuDetailInfo = ((ecuInput.EcuDetailInfo != null) ? new EcuObjDetailInfo(ecuInput.EcuDetailInfo.ByteValue) : null); ecuObj.EcuStatusInfo = ((ecuInput.EcuStatusInfo != null) ? new EcuObjStatusInfo(ecuInput.EcuStatusInfo.ByteValue, ecuInput.EcuStatusInfo.HasIndividualData) : null); ecuObj.EcuPdxInfo = this.Build(ecuInput.PsdzEcuPdxInfo); PdszDatabase database = ClientContext.GetDatabase(this.vehicle); if (database != null) { string bnTnName = ecuInput.BnTnName; IEcuIdentifier ecuIdentifier = ecuObj.EcuIdentifier; PdszDatabase.EcuVar ecuVar = database.FindEcuVariantFromBntn(bnTnName, (ecuIdentifier != null) ? new int?(ecuIdentifier.DiagAddrAsInt) : null, this.vehicle, this.ffmResolver); if (ecuVar != null && !string.IsNullOrEmpty(ecuVar.Name)) { //ecuObj.XepEcuVariant = xep_ECUVARIANTS; ecuObj.EcuVariant = ecuVar.Name.ToUpper(CultureInfo.InvariantCulture); PdszDatabase.EcuClique ecuClique = database.FindEcuClique(ecuVar); //ecuObj.XepEcuClique = ecuClique; PdszDatabase.EcuGroup ecuGroup = database.FindEcuGroup(ecuVar, this.vehicle, this.ffmResolver); if (ecuGroup != null) { ecuObj.EcuGroup = ecuGroup.Name.ToUpper(CultureInfo.InvariantCulture); } PdszDatabase.EcuReps ecuReps = database.FindEcuRep(ecuClique); if (ecuReps != null) { ecuObj.EcuRep = ecuReps.EcuShortcut; } } } return(ecuObj); }
public void FillOrderNumbers(IPsdzSollverbauung sollVerbauung, IDictionary <string, string> result) { IPsdzStandardSvt svt = sollVerbauung.Svt; IPsdzOrderList psdzOrderList = sollVerbauung.PsdzOrderList; IEnumerable <IPsdzEcu> ecus = svt.Ecus; if (ecus == null) { return; } foreach (IPsdzEcu ecuInput in ecus) { IEcuObj ecuObj = this.Build(ecuInput); if (psdzOrderList != null && psdzOrderList.BntnVariantInstances != null) { foreach (IPsdzEcuVariantInstance psdzEcuVariantInstance in psdzOrderList.BntnVariantInstances) { IPsdzEcu ecu = psdzEcuVariantInstance.Ecu; string a = (ecu != null) ? ecu.BaseVariant : null; IEcuIdentifier ecuIdentifier = ecuObj.EcuIdentifier; if (a == ((ecuIdentifier != null) ? ecuIdentifier.BaseVariant : null)) { IPsdzEcu ecu2 = psdzEcuVariantInstance.Ecu; int? num; if (ecu2 == null) { num = null; } else { IPsdzEcuIdentifier primaryKey = ecu2.PrimaryKey; num = ((primaryKey != null) ? new int?(primaryKey.DiagAddrAsInt) : null); } int? num2 = num; IEcuIdentifier ecuIdentifier2 = ecuObj.EcuIdentifier; int? num3 = (ecuIdentifier2 != null) ? new int?(ecuIdentifier2.DiagAddrAsInt) : null; if (num2.GetValueOrDefault() == num3.GetValueOrDefault() & num2 != null == (num3 != null)) { string key = this.BuildKey(psdzEcuVariantInstance.Ecu); IPsdzOrderPart orderablePart = psdzEcuVariantInstance.OrderablePart; result.Add(key, (orderablePart != null) ? orderablePart.SachNrTais : null); break; } } } } } }