Example #1
0
        private void GenerateTestEnvironment_Click(object sender, RoutedEventArgs e)
        {
            ComponentDefenition compDef = null;

            if (selectedAutosarTreeObject is ComponentDefenition)
            {
                compDef = (ComponentDefenition)selectedAutosarTreeObject;
            }
            else if (selectedAutosarTreeObject is ComponentInstance)
            {
                compDef = ((ComponentInstance)selectedAutosarTreeObject).ComponentDefenition;
            }

            if (compDef != null)
            {
                System.Windows.Forms.FolderBrowserDialog dialog = new System.Windows.Forms.FolderBrowserDialog();
                if (lastTestEnvironmentDir != null)
                {
                    dialog.SelectedPath = lastTestEnvironmentDir;
                }
                System.Windows.Forms.DialogResult result = dialog.ShowDialog();

                if (result == System.Windows.Forms.DialogResult.OK)
                {
                    lastTestEnvironmentDir = dialog.SelectedPath;
                    TestRteEnvironmentGenerator generator = new TestRteEnvironmentGenerator();
                    generator.GenerateRteEnvironment(compDef, dialog.SelectedPath);
                    MessageBox.Show("Test environment has been generated for " + compDef.Name);
                }
            }
        }
Example #2
0
        void GenerateTestRteCFile(ComponentDefenition compDef, String outputDir)
        {
            String       FileName = outputDir + "\\" + Properties.Resources.TEST_RTE_C_FILENAME;
            StreamWriter writer   = new StreamWriter(FileName);

            RteFunctionsGenerator.GenerateFileTitle(writer, Properties.Resources.TEST_RTE_C_FILENAME, "This file contains function for test environment.");
            String guardDefine = RteFunctionsGenerator.OpenGuardDefine(writer);

            /* Add includes */
            RteFunctionsGenerator.AddInclude(writer, Properties.Resources.TEST_RTE_H_FILENAME);

            writer.WriteLine();

            /* Declare test structure */
            writer.WriteLine(TestArtefactsStructureDataType + " " + TestArtefactsVariable + ";");

            writer.WriteLine();

            /* Create functions */
            CreateRteWriteFunctions(writer, compDef);

            CreateRteReadFunctions(writer, compDef);

            CreateRteCDataFunctions(writer, compDef);

            CreateRtePimFunctions(writer, compDef);

            CreateRteCallFunctions(writer, compDef);


            RteFunctionsGenerator.CloseGuardDefine(writer);
            RteFunctionsGenerator.WriteEndOfFile(writer);
            writer.Close();
        }
Example #3
0
 void CreateRtePimFunctions(StreamWriter writer, ComponentDefenition compDefenition)
 {
     foreach (PimDefenition pim in compDefenition.PerInstanceMemoryList)
     {
         GenerateRtePimFunction(writer, compDefenition, pim);
     }
 }
Example #4
0
        public void GenerateRteEnvironment(ComponentDefenition compDef, String outputDir)
        {
            /* Generate Rte_<ComponentName>.h file */
            RteComponentGenerator compGenerator = new RteComponentGenerator();

            compGenerator.CreateRteIncludes(outputDir, compDef);

            /* Generate Rte_DataTypes.h file */
            RteDataTypesGenerator datatypeGenerator = new RteDataTypesGenerator();

            datatypeGenerator.GenerateDataTypesFile(outputDir);

            /* Generate SystemErrors.h */
            SystemErrorGenerator systemErrorGenerator = new SystemErrorGenerator();

            systemErrorGenerator.GenerateSystemErrorsFile(outputDir);

            GenerateTestRteHFile(compDef, outputDir);
            GenerateTestRteCFile(compDef, outputDir);

            GenerateTestInitializationFile(compDef, outputDir);

            ReturnCodesGenerator returnCodesGenerator = new ReturnCodesGenerator();

            returnCodesGenerator.GenerateReturnCodesFile(outputDir);
        }
Example #5
0
        void GenerateRteWritePortFieldFunction(StreamWriter writer, ComponentDefenition compDef, PortDefenition port, SenderReceiverInterfaceField field)
        {
            String returnValue   = Properties.Resources.STD_RETURN_TYPE;
            String RteFuncName   = RteFunctionsGenerator.GenerateReadWriteConnectionFunctionName(port, field);
            String fieldVariable = RteFunctionsGenerator.GenerateSenderReceiverInterfaceArguments(field, port.PortType, compDef.MultipleInstantiation);

            writer.WriteLine(returnValue + RteFuncName + fieldVariable);
            writer.WriteLine("{");

            if (!compDef.MultipleInstantiation) //single instantiation component
            {
                ComponentInstancesList components = AutosarApplication.GetInstance().GetComponentInstanceByDefenition(compDef);
                if (components.Count > 0)
                {
                    ComponentInstance compInstance = components[0];
                    String            compName     = RteFunctionsGenerator.GenerateComponentName(compInstance.Name);
                    String            fieldName    = RteFunctionsGenerator.GenerateRteWriteFieldInComponentDefenitionStruct(port, field);
                    writer.WriteLine("    " + compName + "." + fieldName + " = *" + field.Name + ";");
                }
            }
            else //multiple instantiation component
            {
                String rteStructFieldName = RteFunctionsGenerator.GenerateRteWriteFieldInComponentDefenitionStruct(port, field);
                String instanceLine       = "((" + compDef.Name + "*)instance)->" + rteStructFieldName + " = *" + field.Name + ";";
                writer.WriteLine("    " + instanceLine);
            }

            writer.WriteLine("    return " + Properties.Resources.RTE_E_OK + ";");
            writer.WriteLine("}");
            writer.WriteLine("");
            //}
        }
Example #6
0
        void GenerateComponent(ComponentDefenition component)
        {
            /* Generate component Folder */
            String componentFolder = RteFunctionsGenerator.GetComponentsFolder() + "\\" + component.Name;
            String rteDir          = RteFunctionsGenerator.GetRteFolder() + "\\";
            String incDir          = componentFolder + "\\include\\";
            String srcDir          = componentFolder + "\\src\\";

            Directory.CreateDirectory(incDir);
            Directory.CreateDirectory(srcDir);

            /* Fill sections of code */


            /* Each component runnable shall be in its own file */
            foreach (PeriodicRunnableDefenition runnable in component.Runnables)
            {
                CreateRunnable(srcDir, runnable);
            }

            /* Each Server port functions shall be in its own file */
            foreach (PortDefenition port in component.Ports)
            {
                if (port.PortType == PortType.Server)
                {
                    CreateServerCalls(srcDir, component, port);
                }
            }

            /* Generate funcitons for Sender-Receiver ports and call operations from client ports */
            CreateRteIncludes(rteDir, component);

            CreateComponentIncludes(incDir, component);
        }
Example #7
0
        void GenerateRteCDataFunction(StreamWriter writer, ComponentDefenition compDef, CDataDefenition cdataDef)
        {
            String returnValue = cdataDef.DataTypeName + " ";
            String RteFuncName = RteFunctionsGenerator.GenerateFullCDataFunctionName(compDef, cdataDef);

            String fieldVariable = RteFunctionsGenerator.GenerateMultipleInstanceFunctionArguments(compDef.MultipleInstantiation);

            writer.WriteLine(returnValue + RteFuncName + fieldVariable);
            writer.WriteLine("{");

            if (!compDef.MultipleInstantiation) //single instantiation component
            {
                ComponentInstancesList components = AutosarApplication.GetInstance().GetComponentInstanceByDefenition(compDef);
                if (components.Count > 0)
                {
                    /* At least one component exists at this step */
                    ComponentInstance compInstance = components[0];
                    String            compName     = RteFunctionsGenerator.GenerateComponentName(compInstance.Name);
                    String            field        = RteFunctionsGenerator.GenerateRteCDataFieldInComponentDefenitionStruct(compDef, cdataDef);
                    writer.WriteLine("    return " + compName + "." + field + ";");
                }
            }
            else //multiple instantiation component
            {
                String field = RteFunctionsGenerator.GenerateRteCDataFieldInComponentDefenitionStruct(compDef, cdataDef);
                writer.WriteLine("    return ((" + compDef.Name + "*)instance)->" + field + ";");
            }

            writer.WriteLine("}");
            writer.WriteLine("");
        }
Example #8
0
        void GenerateTestRteHFile(ComponentDefenition compDef, String outputDir)
        {
            String       FileName = outputDir + "\\" + Properties.Resources.TEST_RTE_H_FILENAME;
            StreamWriter writer   = new StreamWriter(FileName);

            RteFunctionsGenerator.GenerateFileTitle(writer, Properties.Resources.TEST_RTE_H_FILENAME, "This file contains structure for provide test environment.");
            String guardDefine = RteFunctionsGenerator.OpenGuardDefine(writer);

            /* Add includes */
            RteFunctionsGenerator.AddInclude(writer, Properties.Resources.RTE_DATATYPES_H_FILENAME);
            RteFunctionsGenerator.AddInclude(writer, "Rte_" + compDef.Name + ".h");
            RteFunctionsGenerator.AddInclude(writer, Properties.Resources.TEST_FRAMEWORK_H_FILENAME);
            RteFunctionsGenerator.AddInclude(writer, "<string.h>");

            /* Create structure */
            CreateTestArtefactStructure(writer, compDef);

            writer.WriteLine("/* All periodical runnables */");
            foreach (PeriodicRunnableDefenition runnable in compDef.Runnables)
            {
                writer.WriteLine(RteFunctionsGenerator.Generate_RunnableFunction(compDef, runnable) + ";");
            }
            writer.WriteLine();

            writer.WriteLine("/* All server calls */");
            CreateRteCallFunctionDeclarations(writer, compDef);

            writer.WriteLine();

            RteFunctionsGenerator.CloseGuardDefine(writer);
            RteFunctionsGenerator.WriteEndOfFile(writer);

            writer.Close();
        }
Example #9
0
 void CreateRteCDataFunctions(StreamWriter writer, ComponentDefenition compDefenition)
 {
     foreach (CDataDefenition cdataDef in compDefenition.CDataDefenitions)
     {
         GenerateRteCDataFunction(writer, compDefenition, cdataDef);
     }
 }
        public ComponentDefenition CreateComponentDefenition(string name)
        {
            ComponentDefenition compDef = new ComponentDefenition();

            compDef.Name = name;
            compDef.Runnables.Add(CreateRunnableDefenition("Refresh"));
            return(compDef);
        }
        public ComponentInstance CreateComponent(ComponentDefenition componentDefenition, double X, double Y)
        {
            int leftPortCount  = 0;
            int rightPortCount = 0;

            foreach (PortDefenition portDef in componentDefenition.Ports)
            {
                if ((portDef.PortType == PortType.Receiver) || (portDef.PortType == PortType.Server))
                {
                    leftPortCount++;
                }
                else
                {
                    rightPortCount++;
                }
            }

            double componentHeight = Math.Max(leftPortCount, rightPortCount) * 50 + 60;

            ComponentInstance componentInstance = new ComponentInstance();

            componentInstance.Name = GetComponentName(componentDefenition);
            componentInstance.ComponentDefenitionGuid = componentDefenition.GUID;
            componentInstance.Painter.Left            = X - 60;
            componentInstance.Painter.Right           = X + 60;
            componentInstance.Painter.Top             = Y - componentHeight / 2.0;
            componentInstance.Painter.Height          = componentHeight;
            componentInstance.UpdatePims();

            double LeftTop  = componentInstance.Painter.Top + 30;
            double RightTop = LeftTop;
            double LeftPos  = componentInstance.Painter.Left - 10;
            double RightPos = componentInstance.Painter.Right - 10;

            /* Create all port painters from defenition */
            foreach (PortDefenition portDef in componentDefenition.Ports)
            {
                PortPainter newPort;
                if ((portDef.PortType == PortType.Receiver) || (portDef.PortType == PortType.Server))
                {
                    newPort = CreatePortPainter(portDef, LeftPos, LeftTop);
                    newPort.ConnectionPortLocation = RectangleSide.Left;
                    LeftTop += 50;
                }
                else
                {
                    newPort = CreatePortPainter(portDef, RightPos, RightTop);
                    newPort.ConnectionPortLocation = RectangleSide.Right;
                    RightTop += 50;
                }
                componentInstance.Ports.Add(newPort);
            }
            componentInstance.UpdateCData();
            componentInstance.UpdatePims();
            return(componentInstance);
        }
Example #12
0
 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)");
     }
 }
Example #13
0
        protected void TestComponentDefenition(ComponentDefenition elem)
        {
            bool withoutErrors = true;


            /* Check if there is an CDATA with similar names */
            withoutErrors &= CheckSimilarNames(elem.CDataDefenitions.ConvertAll(x => x as IGUID), elem.Name + ": CData ");

            /* Check if there is an PIM with similar names */
            withoutErrors &= CheckSimilarNames(elem.PerInstanceMemoryList.ConvertAll(x => x as IGUID), elem.Name + ": Pim ");

            /* Check if there is an Ports with similar names */
            withoutErrors &= CheckSimilarNames(elem.Ports.ConvertAll(x => x as IGUID), elem.Name + ": Port ");

            /* Check if there is an Ports with similar names */
            withoutErrors &= CheckSimilarNames(elem.Runnables.ConvertAll(x => x as IGUID), elem.Name + ": Runnables ");

            /* CData */
            foreach (CDataDefenition cdata in elem.CDataDefenitions)
            {
                if (cdata.DataTypeName.Equals(AutosarApplication.ErrorDataType))
                {
                    AppendText("Component: " + elem.Name + ", Cdata : " + cdata.Name + " doesn't have specified datatype ", Error: true);
                    withoutErrors = false;
                }
            }

            /* Pim */
            foreach (PimDefenition pim in elem.PerInstanceMemoryList)
            {
                if (pim.DataTypeName.Equals(AutosarApplication.ErrorDataType))
                {
                    AppendText("Component: " + elem.Name + ", PIM : " + pim.Name + " doesn't have specified datatype ", Error: true);
                    withoutErrors = false;
                }
            }

            /* Ports */
            foreach (PortDefenition port in elem.Ports)
            {
                if (port.InterfaceName.Equals(AutosarApplication.ErrorDataType))
                {
                    AppendText("Component: " + elem.Name + ", Port : " + port.Name + " doesn't have specified datatype ", Error: true);
                    withoutErrors = false;
                }
            }

            if (withoutErrors)
            {
                AppendText(elem.Name);
            }
        }
 public void SyncronizeCData(ComponentDefenition compDef, bool useAllDefenition = false)
 {
     foreach (CompositionInstance composition in Compositions)
     {
         foreach (ComponentInstance compInstance in composition.ComponentInstances)
         {
             if (useAllDefenition || compInstance.ComponentDefenition.Equals(compDef))
             {
                 compInstance.UpdateCData();
             }
         }
     }
 }
 public void MouseDownOnTreeViewMenu()
 {
     if (treeView.SelectedItem is TreeViewItem)
     {
         TreeViewItem selectedItem = treeView.SelectedItem as TreeViewItem;
         if (selectedItem.Tag is ComponentDefenition)
         {
             compDef = (selectedItem.Tag as ComponentDefenition);
             DataObject dataObj = new DataObject(compDef);
             DragDrop.DoDragDrop(selectedItem, dataObj, DragDropEffects.Copy);
         }
     }
 }
 public void SyncronizeRunnables(ComponentDefenition compDef, bool useAllDefenition = false)
 {
     foreach (CompositionInstance composition in Compositions)
     {
         foreach (ComponentInstance compInstance in composition.ComponentInstances)
         {
             if (useAllDefenition || compInstance.ComponentDefenition.Equals(compDef))
             {
                 compInstance.SyncronizeRunnablesWithDefenition();
             }
         }
     }
 }
Example #17
0
        public static String GenerateFullCDataFunctionDefenitionNameAndReturnType(ComponentDefenition compDefenition, CDataDefenition cdata)
        {
            String returnDataType    = GenerateCDataDataType(compDefenition, cdata);
            String FunctionArguments = "(";

            if (compDefenition.MultipleInstantiation)
            {
                FunctionArguments = ComponentInstancePointerDatatype + " instance";
            }
            FunctionArguments += ")";
            String result = GenerateCDataDataType(compDefenition, cdata) + " " + GenerateFullCDataFunctionName(compDefenition, cdata) + FunctionArguments;

            return(result);
        }
Example #18
0
        void GenerateRtePimFunction(StreamWriter writer, ComponentDefenition compDef, PimDefenition pimDef)
        {
            String returnValue = pimDef.DataTypeName + " * ";
            String RteFuncName = RteFunctionsGenerator.GenerateShortPimFunctionName(pimDef);

            String fieldVariable = RteFunctionsGenerator.GenerateMultipleInstanceFunctionArguments(compDef.MultipleInstantiation);

            writer.WriteLine(returnValue + RteFuncName + fieldVariable);
            writer.WriteLine("{");
            writer.WriteLine("    " + TestArtefactsVariable + "." + RteFuncName + "." + CallCount + "++;");
            writer.WriteLine("    return &" + TestArtefactsVariable + "." + RteFuncName + ".data;");
            writer.WriteLine("}");
            writer.WriteLine("");
        }
Example #19
0
 void CreateRteCallFunctions(StreamWriter writer, ComponentDefenition compDefenition)
 {
     foreach (PortDefenition port in compDefenition.Ports)
     {
         if (port.PortType == PortType.Client)
         {
             ClientServerInterface csInterface = port.InterfaceDatatype as ClientServerInterface;
             foreach (ClientServerOperation operation in csInterface.Operations)
             {
                 GenerateRteCallPortFieldFunction(writer, compDefenition, port, operation);
             }
         }
     }
 }
        public void UpdatePortsInComponentInstances()
        {
            /* Remove unexists port in defenition */
            foreach (CompositionInstance composition in Compositions)
            {
                foreach (ComponentInstance compInstance in composition.ComponentInstances)
                {
                    ComponentDefenition compDefenition = compInstance.ComponentDefenition;
                    for (int i = compInstance.Ports.Count - 1; i >= 0; i--)
                    {
                        PortPainter    portPainter    = compInstance.Ports[i];
                        PortDefenition portDefenition = compDefenition.Ports.FindObject(portPainter.PortDefenitionGuid);
                        if (portDefenition == null)
                        {
                            DeletePort(portPainter);
                        }
                    }
                }
            }

            /* Add new or missing ports */
            foreach (CompositionInstance composition in Compositions)
            {
                foreach (ComponentInstance compInstance in composition.ComponentInstances)
                {
                    ComponentDefenition compDefenition = compInstance.ComponentDefenition;
                    foreach (PortDefenition portDef in compDefenition.Ports)
                    {
                        bool find = false;
                        foreach (PortPainter portPainter in compInstance.Ports)
                        {
                            if (portPainter.PortDefenition.Equals(portDef))
                            {
                                find = true;
                                break;
                            }
                        }
                        if (!find)
                        {
                            double x = compInstance.Painter.Left - PortPainter.DefaultWidth / 2.0;
                            double y = (compInstance.Painter.Top + compInstance.Painter.Bottom) / 2;

                            PortPainter portPainter = ComponentFabric.GetInstance().CreatePortPainter(portDef, x, y);
                            compInstance.Ports.Add(portPainter);
                        }
                    }
                }
            }
        }
        public String GetComponentName(ComponentDefenition componentDefenition)
        {
            return(componentDefenition.Name);

            /*int count = 0;
             * foreach (ComponentInstance compInstance in AutosarApplication.GetInstance().componentInstancesList)
             * {
             *  if (compInstance.ComponentDefenitionGuid.Equals(componentDefenition.GUID))
             *  {
             *      count++;
             *  }
             * }
             *
             * return componentDefenition.Name + count.ToString();*/
        }
        /*
         * public int GetComponentDefenitionIndex(ComponentInstance instance)
         * {
         *  int index = -1;
         *  for (int i = 0; i < app.componentInstancesList.Count; i++)
         *  {
         *      if (app.componentInstancesList[i].ComponentDefenition.Equals(instance.ComponentDefenition))
         *      {
         *          index++;
         *          if (app.componentInstancesList[i].Equals(instance))
         *          {
         *              return index;
         *          }
         *      }
         *  }
         *  return index;
         * }
         */

        public int GetComponentDefenitionCount(ComponentDefenition componentDefenition)
        {
            int count = 0;

            foreach (CompositionInstance composition in Compositions)
            {
                foreach (ComponentInstance compInstance in composition.ComponentInstances)
                {
                    if (compInstance.ComponentDefenition.Equals(componentDefenition))
                    {
                        count++;
                    }
                }
            }
            return(count);
        }
        public ComponentInstancesList GetComponentInstanceByDefenition(ComponentDefenition compDef)
        {
            ComponentInstancesList list = new ComponentInstancesList();

            foreach (CompositionInstance composition in Compositions)
            {
                foreach (ComponentInstance componentInstance in composition.ComponentInstances)
                {
                    if (componentInstance.ComponentDefenitionGuid.Equals(compDef.GUID))
                    {
                        list.Add(componentInstance);
                    }
                }
            }
            return(list);
        }
Example #24
0
        void GenerateRteReadPortFieldFunction(StreamWriter writer, ComponentDefenition compDef, PortDefenition port, SenderReceiverInterfaceField field)
        {
            String returnValue   = Properties.Resources.STD_RETURN_TYPE;
            String RteFuncName   = RteFunctionsGenerator.GenerateReadWriteConnectionFunctionName(port, field);
            String fieldVariable = RteFunctionsGenerator.GenerateSenderReceiverInterfaceArguments(field, port.PortType, compDef.MultipleInstantiation);

            String fieldName = RteFunctionsGenerator.GenerateReadWriteFunctionName(port, field);

            writer.WriteLine(returnValue + RteFuncName + fieldVariable);
            writer.WriteLine("{");
            writer.WriteLine("    " + TestArtefactsVariable + "." + fieldName + "." + CallCount + "++;");
            writer.WriteLine("    memcpy(" + field.Name + ", &" + TestArtefactsVariable + "." + fieldName + ".Arguments.data, sizeof(" + field.DataTypeName + "));");
            writer.WriteLine("    return " + TestArtefactsVariable + "." + fieldName + ".ReturnValue;");
            writer.WriteLine("}");
            writer.WriteLine("");
        }
        /* Delete component defenition and its instances */
        public void Delete(ComponentDefenition componentDefenition)
        {
            /* Find Object instances */
            foreach (CompositionInstance composition in Compositions)
            {
                for (int i = composition.ComponentInstances.Count - 1; i >= 0; i--)
                {
                    ComponentInstance compInstance = composition.ComponentInstances[i];
                    if (compInstance.ComponentDefenition.Equals(componentDefenition))
                    {
                        Delete(compInstance);
                    }
                }
            }

            ComponentDefenitionsList.Remove(componentDefenition);
        }
Example #26
0
        void GenerateRteCallPortFieldFunction(StreamWriter writer, ComponentDefenition compDef, PortDefenition port, ClientServerOperation operation)
        {
            String returnValue   = Properties.Resources.STD_RETURN_TYPE;
            String RteFuncName   = RteFunctionsGenerator.Generate_RteCall_FunctionName(port, operation);
            String fieldVariable = RteFunctionsGenerator.GenerateClientServerInterfaceArguments(operation, compDef.MultipleInstantiation);

            writer.WriteLine(returnValue + RteFuncName + fieldVariable);
            writer.WriteLine("{");
            writer.WriteLine("    " + TestArtefactsVariable + "." + RteFuncName + "." + CallCount + "++;");
            foreach (var csField in operation.Fields)
            {
                writer.WriteLine("    " + TestArtefactsVariable + "." + RteFuncName + ".Arguments." + csField.Name + " = *" + csField.Name + ";");
            }
            writer.WriteLine("    return " + TestArtefactsVariable + "." + RteFuncName + ".ReturnValue;");
            writer.WriteLine("}");
            writer.WriteLine("");
        }
        public void ViewPortImage_Drop(DragEventArgs e, double worldCoordX, double worldCoordY)
        {
            object obj = e.Data.GetData(typeof(ComponentDefenition));

            if (obj is ComponentDefenition)
            {
                ComponentDefenition realDefenition = (ComponentDefenition)obj;
                int count = AutosarApplication.GetInstance().GetComponentDefenitionCount(realDefenition);
                if (realDefenition.MultipleInstantiation || ((count == 0) && (!realDefenition.MultipleInstantiation)))
                {
                    ComponentInstance compInstance = ComponentFabric.GetInstance().CreateComponent(realDefenition, worldCoordX, worldCoordY);
                    compInstance.UpdateAnchorsPositions();
                    CompositionInstance activeComposition = AutosarApplication.GetInstance().ActiveComposition;
                    activeComposition.ComponentInstances.Add(compInstance);
                }
            }
        }
Example #28
0
 void CreateRteReadFunctions(StreamWriter writer, ComponentDefenition compDefenition)
 {
     foreach (PortDefenition port in compDefenition.Ports)
     {
         if (port.PortType == PortType.Receiver)
         {
             SenderReceiverInterface srInterface = port.InterfaceDatatype as SenderReceiverInterface;
             if (srInterface != null) // prevent for unselected interface for port
             {
                 foreach (SenderReceiverInterfaceField field in srInterface.Fields)
                 {
                     GenerateRteReadPortFieldFunction(writer, compDefenition, port, field);
                 }
             }
         }
     }
 }
Example #29
0
 void CreateRteCallFunctionDeclarations(StreamWriter writer, ComponentDefenition compDefenition)
 {
     foreach (PortDefenition port in compDefenition.Ports)
     {
         if (port.PortType == PortType.Server)
         {
             ClientServerInterface csInterface = port.InterfaceDatatype as ClientServerInterface;
             foreach (ClientServerOperation operation in csInterface.Operations)
             {
                 String returnValue   = Properties.Resources.STD_RETURN_TYPE;
                 String RteFuncName   = RteFunctionsGenerator.Generate_RteCall_FunctionName(port, operation);
                 String fieldVariable = RteFunctionsGenerator.GenerateClientServerInterfaceArguments(operation, compDefenition.MultipleInstantiation);
                 String writeValue    = returnValue + RteFuncName + fieldVariable + ";";
                 writer.WriteLine(writeValue);
             }
         }
     }
 }
Example #30
0
        void CreateComponentIncludes(String dir, ComponentDefenition componentDefenition)
        {
            String       filename = dir + componentDefenition.Name + ".h";
            StreamWriter writer   = new StreamWriter(filename);

            RteFunctionsGenerator.GenerateFileTitle(writer, filename, "Implementation for header of " + componentDefenition.Name);
            RteFunctionsGenerator.OpenGuardDefine(writer);

            writer.WriteLine("");
            writer.WriteLine(RteFunctionsGenerator.IncludesLine);
            RteFunctionsGenerator.AddInclude(writer, "Rte_" + componentDefenition.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.ExternalVariablesLine);
            writer.WriteLine("");
            writer.WriteLine(RteFunctionsGenerator.EndOfExternalVariableLine);
            writer.WriteLine("");

            writer.WriteLine("");
            writer.WriteLine(RteFunctionsGenerator.GlobalFunctionsDeclarationLine);
            writer.WriteLine("");
            writer.WriteLine(RteFunctionsGenerator.EndOfGlobalFunctionsDeclarationLine);
            writer.WriteLine("");

            RteFunctionsGenerator.CloseGuardDefine(writer);
            RteFunctionsGenerator.WriteEndOfFile(writer);
            writer.Close();
        }