Exemplo n.º 1
0
        /// <summary>
        /// 刷新dataGridTags的Tag数据
        /// </summary>
        /// <param name="groupName">groupName</param>
        private void QueryTagsRecord(string groupName)
        {
            if (groupName == "")
            {
                return;
            }
            List <Tag> tags = new List <Tag>();

            foreach (DataGridViewRow row in dataGridTags.Rows)
            {
                Tag bi = new Tag();
                bi.OpcTagName = row.Cells["OpcTagName"].Value.ToString();
                bi.TagName    = row.Cells["TagName"].Value.ToString();
                bi.TimeStamps = DateTime.Now;
                bi.Value      = "";
                bi.Qualities  = "";
                bi.Message    = "";
                tags.Add(bi);
            }

            //异步方式获取返回数据集
            //兼容4.0
            //await Task.Run(() =>
            //{
            //    client.GetTagValuesFromGroup(ref tags, groupName);
            //});
            Task.WaitAny(Task.Run(() =>
            {
                client.GetTagValuesFromGroup(ref tags, groupName);
            }));

            //dataGridTags.DataSource = tags.Select(p => new { p.TagName, p.OpcTagName, p.TimeStamps, p.Qualities, p.Value, p.Message }).ToList(); ;

            for (int i = 0; i < tags.Count; i++)
            {
                dataGridTags.Rows[i].Cells["OpcTagName"].Value = (tags[i]).OpcTagName;
                dataGridTags.Rows[i].Cells["TagName"].Value    = (tags[i]).TagName;
                dataGridTags.Rows[i].Cells["DataType"].Value   = (tags[i]).DataTypeName;
                dataGridTags.Rows[i].Cells["Value"].Value      = (tags[i]).Value;
                dataGridTags.Rows[i].Cells["Qualities"].Value  = (tags[i]).Qualities;
                dataGridTags.Rows[i].Cells["TimeStamps"].Value = (tags[i]).TimeStamps;
                dataGridTags.Rows[i].Cells["Message"].Value    = (tags[i]).Message;
            }
        }