public PeriodicRunnableInstance CreateRunnableInstance(PeriodicRunnableDefenition runnableDefenition) { PeriodicRunnableInstance runable = new PeriodicRunnableInstance(); runable.Name = runnableDefenition.Name; runable.DefenitionGuid = runnableDefenition.GUID; return(runable); }
public void AddRunnableButton_Click() { PeriodicRunnableDefenition runnable = ComponentFabric.GetInstance().CreateRunnableDefenition("Refresh"); _componentDefenition.Runnables.Add(runnable); _componentDefenition.Runnables.DoSort(); AutosarApplication.GetInstance().SyncronizeRunnables(_componentDefenition); RefreshPortsGridView(); tree.UpdateAutosarTreeView(tree.SelectedItem); }
void WriteCallOfOsRunnables(StreamWriter writer, OsTask osTask) { if (osTask.Runnables.Count > 0) { double lastPeriod = -1; int changeIndex = 0; bool wasBracersOpen = false; for (int runnableIndex = 0; runnableIndex < osTask.Runnables.Count; runnableIndex++) { PeriodicRunnableDefenition runnableDefenition = AutosarApplication.GetInstance().FindRunnableDefenition(osTask.Runnables[runnableIndex].DefenitionGuid); if ((runnableDefenition != null) && (osTask.PeriodMs != runnableDefenition.PeriodMs)) { /* Close previous period */ if ((lastPeriod != runnableDefenition.PeriodMs) && wasBracersOpen) { writer.WriteLine(" }"); } /* Add open bracers */ if (lastPeriod != runnableDefenition.PeriodMs) { lastPeriod = runnableDefenition.PeriodMs; String periodVariableName = osTask.Name + "_" + RteFunctionsGenerator.CreateFrequencyDefineName(runnableDefenition.PeriodMs) + "_" + changeIndex.ToString(); int ostatok = (int)(runnableDefenition.PeriodMs / osTask.PeriodMs); changeIndex++; writer.WriteLine(" if (++" + periodVariableName + " >= " + ostatok + ")"); writer.WriteLine(" {"); writer.WriteLine(" " + periodVariableName + " = 0u;"); } wasBracersOpen = true; writer.WriteLine(" " + RteFunctionsGenerator.Generate_CallOfRunnable(osTask.Runnables[runnableIndex])); } else { if (wasBracersOpen) { wasBracersOpen = false; writer.WriteLine(" }"); } lastPeriod = osTask.PeriodMs; writer.WriteLine(" " + RteFunctionsGenerator.Generate_CallOfRunnable(osTask.Runnables[runnableIndex])); } } if (wasBracersOpen) { writer.WriteLine(" }"); } } }
public PeriodicRunnableDefenition FindRunnableDefenition(Guid runnableDefGuid) { PeriodicRunnableDefenition runableDef = null; foreach (ComponentDefenition compDef in this.ComponentDefenitionsList) { runableDef = compDef.Runnables.FindObject(runnableDefGuid); if (runableDef != null) { return(runableDef); } } return(null); }
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); }
public ComponentDefenition FindComponentDefenitionByRunnnable(PeriodicRunnableDefenition runnableDef) { return(FindComponentDefenitionByRunnnableGuid(runnableDef.GUID)); }
void CreateRunnable(String dir, PeriodicRunnableDefenition runnable) { ComponentDefenition compDefenition = AutosarApplication.GetInstance().FindComponentDefenitionByRunnnable(runnable); String filename = dir + compDefenition.Name + "_" + runnable.Name + ".c"; StreamWriter writer = new StreamWriter(filename); RteFunctionsGenerator.GenerateFileTitle(writer, filename, "Implementation for " + compDefenition.Name + "_" + runnable.Name); writer.WriteLine(""); writer.WriteLine(RteFunctionsGenerator.IncludesLine); RteFunctionsGenerator.AddInclude(writer, compDefenition.Name + ".h"); writer.WriteLine(""); writer.WriteLine(RteFunctionsGenerator.EndOfIncludesLine); writer.WriteLine(""); writer.WriteLine(""); writer.WriteLine(RteFunctionsGenerator.MacrosLine); writer.WriteLine(""); writer.WriteLine(RteFunctionsGenerator.EndOfMacrosLine); writer.WriteLine(""); writer.WriteLine(""); writer.WriteLine(RteFunctionsGenerator.TypeDefenitionsLine); writer.WriteLine(""); writer.WriteLine(RteFunctionsGenerator.EndOfTypeDefenitionsLine); writer.WriteLine(""); writer.WriteLine(""); writer.WriteLine(RteFunctionsGenerator.VariablesLine); writer.WriteLine(""); writer.WriteLine(RteFunctionsGenerator.EndOfVariableLine); writer.WriteLine(""); writer.WriteLine(""); writer.WriteLine(RteFunctionsGenerator.LocalFunctionsDeclarationLine); writer.WriteLine(""); writer.WriteLine(RteFunctionsGenerator.EndOfLocalFunctionsDeclarationLine); writer.WriteLine(""); writer.WriteLine(""); writer.WriteLine(RteFunctionsGenerator.LocalFunctionsDefenitionsLine); writer.WriteLine(""); writer.WriteLine(RteFunctionsGenerator.EndOfLocalFunctionsDefenitionsLine); writer.WriteLine(""); writer.WriteLine(""); writer.WriteLine(RteFunctionsGenerator.GlobalFunctionsDefenitionsLine); writer.WriteLine(""); /* Fill all function names which component could use*/ WriteAllFunctionWhichComponentCouldUse(compDefenition, writer); writer.WriteLine(RteFunctionsGenerator.Generate_RunnableFunction(compDefenition, runnable)); writer.WriteLine("{"); writer.WriteLine(" "); writer.WriteLine("}"); writer.WriteLine(""); writer.WriteLine(RteFunctionsGenerator.EndOfGlobalFunctionsDefenitionsLine); writer.WriteLine(""); RteFunctionsGenerator.WriteEndOfFile(writer); writer.Close(); }
public PeriodicRunnableDefenition CreateRunnableDefenition(string Name) { PeriodicRunnableDefenition runable = new PeriodicRunnableDefenition(Name); return(runable); }
public static String Generate_RunnableFunction(ComponentDefenition compDefenition, PeriodicRunnableDefenition runnable) { if (compDefenition.MultipleInstantiation) { return("void " + Generate_RunnableFunctionName(compDefenition, runnable) + "(" + ComponentInstancePointerDatatype + " instance)"); } else /* Single instantiation */ { return("void " + Generate_RunnableFunctionName(compDefenition, runnable) + "(void)"); } }
public static String Generate_RunnableFunctionName(ComponentDefenition compDefenition, PeriodicRunnableDefenition runnable) { return(compDefenition.Name + "_ru" + runnable.Name); }