private static void Browse(Dictionary <string, string> args, Socket writer, PHDHistorian oPhd) { try { TagFilter filter = new TagFilter(); filter.Tagname = "*"; string tagmodel = "onlyname"; // tag info model, [onlyname, verbose]default is onlyname, uint count = 0; // maximum number of tags to be returned if (args.ContainsKey("tagname") && !string.IsNullOrEmpty(args["tagname"])) { filter.Tagname = args["tagname"]; } if (args.ContainsKey("datatype") && !string.IsNullOrEmpty(args["datatype"])) { filter.DataType = args["datatype"].ToCharArray()[0]; } if (args.ContainsKey("tagmodel") && !string.IsNullOrEmpty(args["tagmodel"])) { tagmodel = args["tagmodel"]; } if (args.ContainsKey("count") && !string.IsNullOrEmpty(args["count"])) { count = uint.Parse(args["count"]); } DataSet ds = oPhd.BrowsingTags(count, filter); DataTable table = ds.Tables[0]; WriteLine(writer, "200, Tags total number: " + table.Rows.Count);// return the number of browsed tags foreach (DataRow row in table.Rows) { if (tagmodel.Equals("verbose")) { // [Name, Tagno, Description, Units, SourceCollector, DataType, DataSize, SourceTagname, SourceUnits, ParentTagname, ParentTagno] WriteLine(writer, serializer.Serialize(TagModel(row))); } else { WriteLine(writer, (string)row["Name"]); } } WriteLine(writer, "###END###"); } catch (Exception e) { System.Console.Out.WriteLine("\nBrowse tags from {0}:{1} failed, \n{2}\n", oPhd.DefaultServer.HostName, oPhd.DefaultServer.Port, e.Message); WriteLine(writer, "200, false, " + e.Message); } }
private static List <Tags> TagsFromBrowse(PHDHistorian oPhd, Dictionary <string, string> args) { TagFilter filter = new TagFilter(); filter.Tagname = "*"; uint count = 0; if (args.ContainsKey("tagname") && !string.IsNullOrEmpty(args["tagname"])) { filter.Tagname = args["tagname"];// tag name pattern, such as "AC-*", default is "*" } if (args.ContainsKey("datatype") && !string.IsNullOrEmpty(args["datatype"])) { filter.DataType = args["datatype"].ToCharArray()[0];// data type, such as 'F', 'C', ... } if (args.ContainsKey("count") && !string.IsNullOrEmpty(args["count"])) { count = uint.Parse(args["count"]);// maxinum number to browse } List <Tags> taglist = new List <Tags>(); DataSet ds = oPhd.BrowsingTags(count, filter); DataTable table = ds.Tables[0]; Tags _tags = new Tags(); foreach (DataRow row in table.Rows) { _tags.Add(new Tag((string)row["Name"])); if (_tags.Count > TAGS_MAX_COUNT) { taglist.Add(_tags); _tags = new Tags(); } } if (_tags.Count > 0) { taglist.Add(_tags); } return(taglist); }