// 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); }
public static ProgrammingTaskFlags RetrieveProgrammingTaskFlagsFromTasks(IEnumerable <IProgrammingTask> programmingTasks) { ProgrammingTaskFlags programmingTaskFlags = (ProgrammingTaskFlags)0; if (programmingTasks != null) { foreach (IProgrammingTask programmingTask in programmingTasks) { programmingTaskFlags |= programmingTask.Flags; } } return(programmingTaskFlags); }