示例#1
0
        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);
            }
        }
示例#2
0
        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);
        }