private void SelectInSysGroups(string path, PlcSystemBlockGroupComposition sgc) { if (filter != null) { var npath = path + pathDelimeter; foreach (var sg in sgc) { if (sg != null) { var opath = npath + sg.Name; WriteDebug($"[SelectInSysGroups] select from the {opath}"); { if (!contentIsGroup) { WriteBlockList(opath, sg.Blocks); } else { WriteGroupList(opath, sg); } } if (recursive) { SelectInSysGroups(opath, sg.Groups); } } } } else { TraverseSysGroups(sgc); } }
private void TraverseSysGroups(PlcSystemBlockGroupComposition sgc) { foreach (var sg in sgc) { if (sg != null) { if (!contentIsGroup) { WriteBlockList(sg.Blocks); } else { WriteGroupList(sg); } if (recursive) { TraverseSysGroups(sg.Groups); } } } }
private PlcSystemBlockGroup GetSysGroup(string path, PlcSystemBlockGroupComposition root) { char[] sep = { pathDelimeter }; string[] ugnames = path.Split(sep, StringSplitOptions.RemoveEmptyEntries); PlcSystemBlockGroupComposition ugc = root; PlcSystemBlockGroup grp = null; WriteDebug($"[GetSysGroup] path is {path}"); if (ugnames.Length > 0) { WriteDebug($"[GetSysGroup] root group is {ugnames[0]}"); foreach (String gn in ugnames) { if (ugc != null) { WriteDebug($"[GetSysGroup] group {gn} is finding"); grp = ugc.Find(gn); if (grp != null) { ugc = grp.Groups; WriteDebug($"[GetSysGroup] group {gn} is found"); } else { WriteDebug($"[GetSysGroup] group {gn} is not found"); break; } } else { grp = null; break; } } return(grp); } return(null); }