コード例 #1
0
 internal string BuildKey(IPsdzEcu ecu)
 {
     if (ecu != null && ecu.BaseVariant != null && ecu.PrimaryKey != null)
     {
         return(ecu.BaseVariant + "-" + ecu.PrimaryKey.DiagAddrAsInt);
     }
     return(null);
 }
コード例 #2
0
        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);
        }
コード例 #3
0
        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;
                            }
                        }
                    }
                }
            }
        }