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("    }");
                }
            }
        }