List <double> PeriodChangeTimes(OsTask task) { List <double> periods = new List <double>(); RunnableInstancesList runnables = task.Runnables; double prevPeriod = -1; for (int i = 0; i < runnables.Count; i++) { /* Check if period of runnable is other then the task's period */ if (runnables[i].Defenition.PeriodMs != task.PeriodMs) { if (runnables[i].Defenition.PeriodMs != prevPeriod) { prevPeriod = runnables[i].Defenition.PeriodMs; periods.Add(runnables[i].Defenition.PeriodMs); } } else { prevPeriod = task.PeriodMs; } } return(periods); }
public void UpdateAllRunnablesGrid() { allFreeRunnables = AutosarApplication.GetInstance().GetAllUnnassignedRunnables(); allFreeRunnables.SortByName(); RunnablesGrid.ItemsSource = null; RunnablesGrid.ItemsSource = allFreeRunnables; }
public RunnableInstancesList GetAllRunnablesOrderedByStartup() { RunnableInstancesList allrunnables = GetAllRunnableInstances(); List <PeriodicRunnableInstance> orderedRunnables = allrunnables.OrderBy(Obj => Obj.StartupOrder).ToList(); allrunnables.Clear(); allrunnables.AddRange(orderedRunnables); return(allrunnables); }
public PeriodicRunnableInstance GetRunnableInstance(Guid GUID) { RunnableInstancesList allRunnables = GetAllRunnableInstances(); foreach (PeriodicRunnableInstance runnable in allRunnables) { if (runnable.GUID.Equals(GUID)) { return(runnable); } } return(null); }
public RunnableInstancesList GetAllRunnableInstances() { RunnableInstancesList runnables = new RunnableInstancesList(); foreach (CompositionInstance composition in Compositions) { foreach (ComponentInstance component in composition.ComponentInstances) { runnables.AddRange(component.RunableInstances); } } return(runnables); }
public RunnableInstancesList GetAllUnnassignedRunnables() { RunnableInstancesList list = new RunnableInstancesList(); RunnableInstancesList allRunnables = GetAllRunnableInstances(); foreach (PeriodicRunnableInstance runnable in allRunnables) { if (GetRunnableTask(runnable) == null) { list.Add(runnable); } } return(list); }
List <double> GetDifferentFrequences() { List <double> frequences = new List <double>(); RunnableInstancesList runnables = AutosarApplication.GetInstance().GetAllRunnablesOrderedByStartup(); foreach (PeriodicRunnableInstance runnable in runnables) { PeriodicRunnableDefenition runnableDefenition = AutosarApplication.GetInstance().FindRunnableDefenition(runnables[0].DefenitionGuid); if (!frequences.Exists(x => x == runnableDefenition.PeriodMs)) { frequences.Add(runnableDefenition.PeriodMs); } } return(frequences); }