private void SelectInUserGroups(string path, PlcBlockUserGroupComposition ugc) { WriteDebug($"[SelectInUserGroups] for {path}"); if (filter != null) { var npath = path + pathDelimeter; foreach (var ug in ugc) { if (ug != null) { var opath = npath + ug.Name; WriteDebug($"[SelectInUserGroups] select from the {opath}"); { if (!contentIsGroup) { WriteBlockList(opath, ug.Blocks); } else { WriteObject(ug); //WriteGroupList(opath, ug); } } if (recursive) { SelectInUserGroups(opath, ug.Groups); } } } } else { TraverseUserGroups(ugc); } }
private static void CreateBlockGroup(PlcSoftware plcsoftware, string nameofgroup) //Creates a block group { PlcBlockSystemGroup systemGroup = plcsoftware.BlockGroup; PlcBlockUserGroupComposition groupComposition = systemGroup.Groups; PlcBlockUserGroup myCreatedGroup = groupComposition.Create(nameofgroup); }
private void IterBlockFolder(PlcBlockUserGroupComposition folders) { foreach (PlcBlockUserGroup folder in folders) { HandleBlockFolder(folder); } }
private static void iterBlockFolder(NodeHandler handler, PlcBlockUserGroupComposition folders) { foreach (PlcBlockUserGroup folder in folders) { HandleBlockFolder(handler, folder); } }
private void TraverseUserGroups(PlcBlockUserGroupComposition ugc) { WriteDebug("[TraverseUserGroups]"); foreach (var ug in ugc) { if (ug != null) { if (!contentIsGroup) { WriteBlockList(ug.Blocks); } else { WriteObject(ug); } if (recursive) { TraverseUserGroups(ug.Groups); } } } }
private PlcBlockGroup GetUserGroup(string path, PlcBlockUserGroupComposition root) { PlcBlockUserGroupComposition ugc = root; PlcBlockGroup grp = null; char[] sep = { pathDelimeter }; string[] ugnames = path.Split(sep, StringSplitOptions.RemoveEmptyEntries); WriteDebug($"[GetUserGroup] path is {path}"); if (ugnames.Length > 0) { WriteDebug($"[GetUserGroup] root group is {ugnames[0]}"); foreach (String gn in ugnames) { if (ugc != null) { WriteDebug($"[GetUserGroup] the group {gn} is finding"); grp = ugc.Find(gn); if (grp != null) { ugc = grp.Groups; WriteDebug($"[GetUserGroup] the group {gn} is found"); } else { WriteDebug($"[GetUserGroup] the group {gn} is not found"); break; } } else { grp = null; break; } } return(grp); } return(null); }
protected override void ProcessRecord() { base.ProcessRecord(); var root_path = pathDelimeter.ToString(); bool useRoot = true; PlcBlockGroup ug; // NB: path is absolute, any level or object can be selected PlcBlockComposition ublocks = blocks; PlcBlockUserGroupComposition ugc = groups; if ((path == null) || (path.Equals(pathDelimeter.ToString()))) { path = ""; } else { useRoot = false; } if (useRoot) { if (!contentIsGroup) { WriteBlockList(path, ublocks); if (recursive) { SelectInUserGroups(path, ugc); } } else { SelectInUserGroups(path, ugc); } } else { ug = GetUserGroup(path, ugc); if (ug != null) { if (!contentIsGroup) { WriteBlockList(path, ug.Blocks); if (recursive) { SelectInUserGroups(path, ug.Groups); } } else { SelectInUserGroups(path, ug.Groups); } } else { WriteDebug($"The path '{path}' is not found in the user program"); } } if (sysGroups != null) { if (useRoot) { path = ""; SelectInSysGroups(path, sysGroups); } else { PlcSystemBlockGroup sg; sg = GetSysGroup(path, sysGroups); if (sg != null) { if (!contentIsGroup) { WriteBlockList(path, sg.Blocks); if (recursive) { SelectInSysGroups(path, sg.Groups); } } else { SelectInSysGroups(path, sg.Groups); } } else { WriteDebug($"The path '{path}' is not found in the system resources"); } } } }