예제 #1
0
        // ProgrammingTaskFlags.Mount | ProgrammingTaskFlags.Unmount | ProgrammingTaskFlags.Replace | ProgrammingTaskFlags.Flash | Programming.ProgrammingTaskFlags.Code | ProgrammingTaskFlags.DataRecovery | ProgrammingTaskFlags.Fsc
        public static IPsdzTalFilter CreateTalFilter(ProgrammingTaskFlags programmingTaskFlags, IPsdzObjectBuilder objectBuilder)
        {
            ISet <TaCategories> set = new HashSet <TaCategories>();

            if (programmingTaskFlags.HasFlag(ProgrammingTaskFlags.EnforceCoding))
            {
                set.Add(TaCategories.CdDeploy);
            }
            IPsdzTalFilter      psdzTalFilter = objectBuilder.DefineFilterForAllEcus(set.ToArray <TaCategories>(), TalFilterOptions.Must, null);
            ISet <TaCategories> set2          = new HashSet <TaCategories>();

            if (programmingTaskFlags.HasFlag(ProgrammingTaskFlags.Mount))
            {
                set2.Add(TaCategories.HwInstall);
            }
            if (programmingTaskFlags.HasFlag(ProgrammingTaskFlags.Unmount))
            {
                set2.Add(TaCategories.HwDeinstall);
            }
            if (programmingTaskFlags.HasFlag(ProgrammingTaskFlags.Replace))
            {
                set2.Add(TaCategories.HwInstall);
                set2.Add(TaCategories.HwDeinstall);
            }
            if (programmingTaskFlags.HasFlag(ProgrammingTaskFlags.Flash))
            {
                set2.Add(TaCategories.BlFlash);
                set2.Add(TaCategories.SwDeploy);
                set2.Add(TaCategories.IbaDeploy);
            }
            if (programmingTaskFlags.HasFlag(ProgrammingTaskFlags.Code))
            {
                set2.Add(TaCategories.CdDeploy);
            }
            if (programmingTaskFlags.HasFlag(ProgrammingTaskFlags.DataRecovery))
            {
                set2.Add(TaCategories.IdBackup);
                set2.Add(TaCategories.IdRestore);
                set2.Add(TaCategories.FscBackup);
            }
            if (programmingTaskFlags.HasFlag(ProgrammingTaskFlags.Fsc))
            {
                set2.Add(TaCategories.FscDeploy);
                set2.Add(TaCategories.FscDeployPrehwd);
            }
            ISet <TaCategories> set3 = new HashSet <TaCategories>(ProgrammingUtils.AllowedTaCategories);

            set3.ExceptWith(set);
            set3.ExceptWith(set2);
            set3.Add(TaCategories.EcuActivate);
            set3.Add(TaCategories.EcuPoll);
            set3.Add(TaCategories.EcuMirrorDeploy);
            psdzTalFilter = objectBuilder.DefineFilterForAllEcus(set3.ToArray <TaCategories>(), TalFilterOptions.MustNot, psdzTalFilter);
            return(psdzTalFilter);
        }
예제 #2
0
 private IPsdzTalFilter SetEcuTaCategoriesAsMustNot(IPsdzTalFilter talFilter)
 {
     TaCategories[] taCategories = new TaCategories[]
     {
         TaCategories.EcuActivate,
         TaCategories.EcuPoll,
         TaCategories.EcuMirrorDeploy
     };
     talFilter = this.DefineFilterForAllEcus(taCategories, TalFilterOptions.MustNot, talFilter);
     return(talFilter);
 }
예제 #3
0
 public IPsdzTalFilter DefineFilterForSelectedEcus(PsdzTaCategories[] psdzTaCategories, int[] diagAddress, PsdzTalFilterAction talFilterAction, IPsdzTalFilter filter)
 {
     return(base.CallFunction <IPsdzTalFilter>((IObjectBuilderService service) => service.DefineFilterForSelectedEcus(psdzTaCategories, diagAddress, talFilterAction, filter)));
 }
 public IPsdzTal GenerateRestorePrognosisTal(IPsdzConnection connection, string backupDataPath, IPsdzTal standardTal, IPsdzTal backupTal, IPsdzTalFilter talFilter)
 {
     return(base.CallFunction <IPsdzTal>((IIndividualDataRestoreService service) => service.GenerateRestorePrognosisTal(connection, backupDataPath, standardTal, backupTal, talFilter)));
 }
예제 #5
0
 public IPsdzTal GenerateTal(IPsdzConnection connection, IPsdzSvt svtActual, IPsdzSollverbauung sollverbauung, IPsdzSwtAction swtAction, IPsdzTalFilter talFilter, string backupDataPath, string vinFromFA = "")
 {
     return(base.CallFunction <IPsdzTal>((ILogicService m) => m.GenerateTal(connection, svtActual, sollverbauung, swtAction, talFilter, backupDataPath, vinFromFA)));
 }
예제 #6
0
 public IPsdzSollverbauung GenerateSollverbauungGesamtFlash(IPsdzConnection connection, IPsdzIstufe iStufeTarget, IPsdzIstufe iStufeShipment, IPsdzSvt svtActual, IPsdzFa faTarget, IPsdzTalFilter talFilter)
 {
     return(base.CallFunction <IPsdzSollverbauung>((ILogicService m) => m.GenerateSollverbauungGesamtFlash(connection, iStufeTarget, iStufeShipment, svtActual, faTarget, talFilter)));
 }
예제 #7
0
 public IPsdzTal GenerateFcfnTal(IEnumerable <IPsdzSwtApplication> swtApplications, IPsdzSvt svtActual, IPsdzTalFilter talFilter)
 {
     return(base.CallFunction <IPsdzTal>((ILogicService m) => m.GenerateFcfnTal(swtApplications, svtActual, talFilter)));
 }
예제 #8
0
 public IPsdzTal FilterTal(IPsdzTal tal, IPsdzTalFilter talFilter)
 {
     return(base.CallFunction <IPsdzTal>((ILogicService m) => m.FilterTal(tal, talFilter)));
 }
예제 #9
0
 public void SetTalFilterForIndividualDataTal(IPsdzTalFilter talFilterForIndividualDataTal)
 {
     this.TalFilterForIndividualDataTal = talFilterForIndividualDataTal;
 }
예제 #10
0
 public void SetTalFilterForECUWithIDRClassicState(IPsdzTalFilter talFilter)
 {
     this.TalFilterForECUWithIDRClassicState = talFilter;
 }
예제 #11
0
 public void SetTalFilter(IPsdzTalFilter talFilter)
 {
     this.TalFilter = talFilter;
 }
예제 #12
0
        public IPsdzTalFilter DefineFilterForSelectedEcus(TaCategories[] taCategories, int[] diagAddress, TalFilterOptions talFilterOptions, IPsdzTalFilter filter)
        {
            taCategories = this.RemoveIdDeleteAndLogOccurence(taCategories);
            PsdzTalFilterAction talFilterAction = PsdzObjectBuilder.ConvertTalFilterOptionToTalFilterAction(talFilterOptions);

            PsdzTaCategories[] psdzTaCategories = (taCategories != null) ? taCategories.Select(new Func <TaCategories, PsdzTaCategories>(this.taCategoriesEnumMapper.GetValue)).ToArray <PsdzTaCategories>() : null;
            return(this.objectBuilderService.DefineFilterForSelectedEcus(psdzTaCategories, diagAddress, talFilterAction, filter));
        }
예제 #13
0
        public IPsdzTalFilter BuildTalFilter()
        {
            IPsdzTalFilter ecuTaCategoriesAsMustNot = this.objectBuilderService.BuildEmptyTalFilter();

            return(this.SetEcuTaCategoriesAsMustNot(ecuTaCategoriesAsMustNot));
        }