Esempio n. 1
0
        private List<ISymbolTable> GetSymbolTablesFromProject(ProjectFolder project)
        {
            //create new list
            List<ISymbolTable> allSymTables = new List<ISymbolTable>();
            try
            {
                if (project.GetType() == typeof(S7ProgrammFolder))
                {
                    ISymbolTable symtab = ((S7ProgrammFolder)project).SymbolTable;
                    allSymTables.Add(symtab);
                }

                //add all child blocks
                foreach (ProjectFolder subFolder in project.SubItems)
                {
                    allSymTables.AddRange(GetSymbolTablesFromProject(subFolder));
                }
            }
            catch (Exception err)
            {
                EventFire.Error(err.ToString());
            }

            return allSymTables;
        }
Esempio n. 2
0
        private List<ProjectBlockInfo> GetBlocksFromProject(ProjectFolder project)
        {
            //create new list
            List<ProjectBlockInfo> allBlocks = new List<ProjectBlockInfo>();

            try
            {
                if (project.GetType() == typeof(BlocksOfflineFolder))
                {
                    BlocksOfflineFolder offline = (BlocksOfflineFolder)project;
                    allBlocks.AddRange(offline.BlockInfos);
                }

                if (project.GetType() == typeof(SourceFolder))
                {
                    SourceFolder source = (SourceFolder)project;
                    // TODO: Use source files instead of the compiled FBs?
                    allBlocks.AddRange(source.BlockInfos);
                }

                //add all child blocks
                foreach (ProjectFolder subFolder in project.SubItems)
                {
                    allBlocks.AddRange(GetBlocksFromProject(subFolder));
                }
            }
            catch (Exception err)
            {
                EventFire.Error(err.ToString());
            }

            return allBlocks;
        }