예제 #1
0
        /// <summary>
        /// Initializes the control with a set of item identifiers.
        /// </summary>
        public void Initialize(TsCHdaServer server, OpcItem[] items)
        {
            if (server == null)
            {
                throw new ArgumentNullException("server");
            }

            m_server = server;

            ItemsLV.Items.Clear();

            // check if there is nothing to do.
            if (items == null)
            {
                return;
            }

            foreach (OpcItem item in items)
            {
                AddListItem(item);
            }

            // adjust the list view columns to fit the data.
            AdjustColumns();
        }
예제 #2
0
        /// <summary>
        /// Prompts the user to specify values to insert for an item.
        /// </summary>
        public bool ShowDialog(TsCHdaServer server, OpcItem item, bool synchronous)
        {
            if (server == null) throw new ArgumentNullException("server");

            mServer_      = server;
            mSynchronous_ = synchronous;
            mItem_        = item;
            mValues_      = null;
            mResults_     = null;

            // create new trend.
            mTrend_ = new TsCHdaTrend(mServer_);

            // set reasonable defaults.
            mTrend_.StartTime = new TsCHdaTime("YEAR");
            mTrend_.EndTime   = new TsCHdaTime("YEAR+1H");

            browseCtrl_.Browse(mServer_, null);
            valuesCtrl_.Initialize(mServer_, null);
            resultsCtrl_.Initialize(mServer_, mValues_, mResults_);
            asyncResultsCtrl_.Initialize(mServer_, null);

            // update dialog state.
            SetState();

            // show dialog.
            bool result = (ShowDialog() == DialogResult.OK);

            // release item handles.
            mTrend_.ClearItems();

            // return dialog result.
            return result;
        }
예제 #3
0
        /// <summary>
        /// Runs all tests with the specified name and displays the results.
        /// </summary>
        public void ShowDialog(TsCHdaServer server, string fileName, string itemId)
        {
            if (server == null)
            {
                throw new ArgumentNullException("server");
            }

            mServer_ = server;
            mItemId_ = itemId;

            // construct full file path.
            mFilePath_ = Application.StartupPath + "\\" + fileName;

            // run the test
            try
            {
                Run();
            }
            catch (Exception exception)
            {
                MessageBox.Show(exception.Message);
            }

            // display dilaog.
            ShowDialog();

            // dispose of dataset.
            if (mDataset_ != null)
            {
                mDataset_.Dispose();
                mDataset_ = null;
            }
        }
        /// <summary>
        /// Initializes the control with the set of items in a trend.
        /// </summary>
        public void Initialize(TsCHdaServer server, ArrayList excludeList)
        {
            if (server == null)
            {
                throw new ArgumentNullException("server");
            }

            mServer_ = server;

            attributesLv_.Items.Clear();

            // add server attributes.
            foreach (Technosoftware.DaAeHdaClient.Hda.TsCHdaAttribute attribute in server.Attributes)
            {
                // ignore attributes in the exclude list.
                if (excludeList != null)
                {
                    if (excludeList.Contains(attribute.ID))
                    {
                        continue;
                    }
                }

                AddListItem(attribute);
            }

            // adjust the list view columns to fit the data.
            AdjustColumns();
        }
        /// <summary>
        /// Initializes the control with a set of results.
        /// </summary>
        public void Initialize(TsCHdaServer server, IOpcResult[] results)
        {
            if (server == null)
            {
                throw new ArgumentNullException("server");
            }

            mServer_ = server;

            itemsLv_.Items.Clear();

            // check if there is nothing to do.
            if (results == null)
            {
                return;
            }

            foreach (IOpcResult result in results)
            {
                AddListItem(result);
            }

            // adjust the list view columns to fit the data.
            AdjustColumns();
        }
        /// <summary>
        /// Initializes the control with a set of attribute ids.
        /// </summary>
        public void Initialize(TsCHdaServer server, int[] attributeIDs, TsCHdaResultCollection results)
        {
            if (server == null)
            {
                throw new ArgumentNullException("server");
            }

            mServer_ = server;

            itemsLv_.Items.Clear();

            // check if there is nothing to do.
            if (attributeIDs == null || results == null)
            {
                return;
            }

            // collapse the array of collections into indiviual items in the list.
            for (int ii = 0; ii < attributeIDs.Length; ii++)
            {
                if (ii < results.Count)
                {
                    AddListItem(new AttributeResult(results, attributeIDs[ii], results[ii]));
                }
            }

            // adjust the list view columns to fit the data.
            AdjustColumns();
        }
예제 #7
0
        /// <summary>
        /// Prompts the user to view the values of a trend.
        /// </summary>
        public bool ShowDialog(TsCHdaServer server, TsCHdaItemValueCollection values, bool readOnly)
        {
            if (server == null)
            {
                throw new ArgumentNullException("server");
            }
            if (values == null)
            {
                throw new ArgumentNullException("values");
            }

            // initialize controls.
            trendCtrl_.Initialize(server, values);
            trendCtrl_.ReadOnly = readOnly;

            // show the dialog.
            if (ShowDialog() != DialogResult.OK)
            {
                return(false);
            }

            // update collection if not read only.
            if (!readOnly)
            {
                values.Clear();

                foreach (TsCHdaItemValue value in trendCtrl_.GetValues())
                {
                    values.Add(value);
                }
            }

            return(true);
        }
 /// <summary>
 /// Called when the Server | Connect menu item is clicked.
 /// </summary>
 private void ConnectMI_Click(object sender, System.EventArgs e)
 {
     if (server_ == null)
     {
         server_ = (TsCHdaServer) new SelectServerDlg().ShowDialog(OpcSpecification.OPC_HDA_10);
     }
     OnConnect();
 }
예제 #9
0
 /// <summary>
 /// Displays the current server status in a modal dialog.
 /// </summary>
 public void ShowDialog(TsCHdaServer server)
 {
     if (server == null)
     {
         throw new ArgumentNullException("server");
     }
     BrowseItemsTV.Browse(server, null);
     ShowDialog();
 }
예제 #10
0
        /// <summary>
        /// Displays the values in an attribute collection.
        /// </summary>
        public void ShowDialog(TsCHdaServer server, Technosoftware.DaAeHdaClient.Hda.TsCHdaAttributeValueCollection values)
        {
            if (server == null)
            {
                throw new ArgumentNullException("server");
            }

            attributesCtrl_.Initialize(server, values);

            ShowDialog();
        }
예제 #11
0
        /// <summary>
        /// Displays the attributes supported by a server.
        /// </summary>
        public void ShowDialog(TsCHdaServer server)
        {
            if (server == null)
            {
                throw new ArgumentNullException("server");
            }

            AttributesCTRL.Initialize(server);

            ShowDialog();
        }
예제 #12
0
        /// <summary>
        /// Displays the values in an attribute collection.
        /// </summary>
        public void ShowDialog(TsCHdaServer server, OpcClientSdk.Hda.TsCHdaAttributeValueCollection values)
        {
            if (server == null)
            {
                throw new ArgumentNullException("server");
            }

            AttributesCTRL.Initialize(server, values);

            ShowDialog();
        }
        /// <summary>
        /// Prompts the use to edit the properties of an item object.
        /// </summary>
        public bool ShowDialog(TsCHdaServer server, TsCHdaItem item)
        {
            if (server == null)
            {
                throw new ArgumentNullException("server");
            }
            if (item == null)
            {
                throw new ArgumentNullException("item");
            }

            // cannot edit item id in this context.
            itemNameTb_.ReadOnly          = true;
            itemPathTb_.ReadOnly          = true;
            aggregateCb_.Enabled          = true;
            aggregateSpecifiedCb_.Enabled = true;
            aggregateLb_.Enabled          = true;

            // fill in the item id.
            itemNameTb_.Text = item.ItemName;
            itemPathTb_.Text = item.ItemPath;

            // populate aggregate drop down list.
            aggregateCb_.Items.Clear();

            foreach (TsCHdaAggregate aggregate in server.Aggregates)
            {
                aggregateCb_.Items.Add(aggregate);

                if (aggregate.Id == item.Aggregate)
                {
                    aggregateCb_.SelectedItem = aggregate;
                }
            }

            aggregateSpecifiedCb_.Checked = (item.Aggregate != TsCHdaAggregateID.NoAggregate);

            // show the dialog.
            if (ShowDialog() != DialogResult.OK)
            {
                return(false);
            }

            // update the item.
            item.Aggregate = TsCHdaAggregateID.NoAggregate;

            if (aggregateSpecifiedCb_.Checked && aggregateCb_.SelectedItem != null)
            {
                item.Aggregate = ((TsCHdaAggregate)aggregateCb_.SelectedItem).Id;
            }

            return(true);
        }
예제 #14
0
        /// <summary>
        /// Displays the current server status in a modal dialog.
        /// </summary>
        public void ShowDialog(TsCHdaServer server)
        {
            if (server == null)
            {
                throw new ArgumentNullException("server");
            }

            m_server = server;

            GetStatus();

            ShowDialog();
        }
예제 #15
0
        /// <summary>
        /// Displays the address space for the specified server.
        /// </summary>
        public void ShowDialog(TsCHdaServer server)
        {
            if (server == null)
            {
                throw new ArgumentNullException("server");
            }

            mServer_ = server;

            aggregatesCtrl_.Initialize(server);

            ShowDialog();
        }
        /// <summary>
        /// Runs all tests with the specified name and displays the results.
        /// </summary>
        public bool ShowDialog(TsCHdaServer server, TestData test)
        {
            if (server == null)
            {
                throw new ArgumentNullException("server");
            }

            mServer_ = server;

            trendCtrl_.Initialize(test.Trend, RequestType.None);

            valuesLv_.Tag = test;

            if (test.Expected != null)
            {
                // add expected result.
                resultIdtb_.Text = test.Expected.Result.Name.Name;

                // add expected values to list view.
                UpdateValues();
            }

            if (ShowDialog() != DialogResult.OK)
            {
                return(false);
            }

            // update trend and expected values.
            trendCtrl_.Update(test.Trend);

            if (test.Expected != null)
            {
                // only update result if it does not have invalid characters.
                if (resultIdtb_.Text.IndexOfAny("() ".ToCharArray()) == -1)
                {
                    test.Expected.Result = new OpcResult(resultIdtb_.Text, "");
                }

                test.Expected.Clear();

                foreach (ListViewItem listItem in valuesLv_.Items)
                {
                    if (typeof(TsCHdaItemValue).IsInstanceOfType(listItem.Tag))
                    {
                        test.Expected.Add(listItem.Tag);
                    }
                }
            }

            return(true);
        }
        /// <summary>
        /// Prompts the user to select items and specify trend properties.
        /// </summary>
        public TsCHdaTrend ShowDialog(TsCHdaServer server)
        {
            if (server == null)
            {
                throw new ArgumentNullException("server");
            }

            mServer_  = server;
            mResults_ = null;

            // create new trend.
            TsCHdaTrend trend = new TsCHdaTrend(mServer_);

            // set reasonable defaults.
            trend.StartTime = new TsCHdaTime("YEAR");
            trend.EndTime   = new TsCHdaTime("YEAR+1H");

            browseCtrl_.Browse(mServer_, null);
            trendCtrl_.Initialize(trend, RequestType.None);
            itemsCtrl_.Initialize(mServer_, (OpcItem[])null);
            resultsCtrl_.Initialize(mServer_, mResults_);

            // update dialog state.
            SetState(false);

            // show dialog.
            if (ShowDialog() != DialogResult.OK)
            {
                return(null);
            }

            // create or update the trend.
            trendCtrl_.Update(trend);

            // add new items.
            if (mResults_ != null)
            {
                foreach (OpcItemResult item in mResults_)
                {
                    if (item.Result.Succeeded())
                    {
                        trend.Items.Add(new TsCHdaItem(item));
                    }
                }
            }

            // return new trend.
            return(trend);
        }
        /// <summary>
        /// Begins polling the status of the server.
        /// </summary>
        public void Start(TsCHdaServer server)
        {
            m_server = server;

            if (m_server == null)
            {
                UpdateTimer.Enabled = false;
                ShowPanels          = false;
                Text = "Server not connected.";
            }
            else
            {
                UpdateTimer.Enabled = true;
                UpdateTimer_Tick(this, null);
            }
        }
        /// <summary>
        /// Displays the attributes supported by the server.
        /// </summary>
        public void Initialize(TsCHdaServer server)
        {
            m_server = server;

            AttributesLV.Items.Clear();

            if (server != null)
            {
                foreach (OpcClientSdk.Hda.TsCHdaAttribute attribute in server.Attributes)
                {
                    AddListItem(attribute);
                }

                AdjustColumns();
            }
        }
        /// <summary>
        /// Displays the attributes supported by the server.
        /// </summary>
        public void Initialize(TsCHdaServer server)
        {
            mServer_ = server;

            attributesLv_.Items.Clear();

            if (server != null)
            {
                foreach (Technosoftware.DaAeHdaClient.Hda.TsCHdaAttribute attribute in server.Attributes)
                {
                    AddListItem(attribute);
                }

                AdjustColumns();
            }
        }
        /// <summary>
        /// Displays the values of an attribute.
        /// </summary>
        public void Initialize(TsCHdaServer server, int attributeIDs, TsCHdaResultCollection results)
        {
            mServer_ = server;

            attributesLv_.Items.Clear();

            if (results != null)
            {
                foreach (TsCHdaResult result in results)
                {
                    AddListItem(result);
                }

                AdjustColumns();
            }
        }
        /// <summary>
        /// Displays the results of a read attributes request.
        /// </summary>
        public void Initialize(TsCHdaServer server, TsCHdaItemAttributeCollection results)
        {
            m_server = server;

            AttributesLV.Items.Clear();

            if (results != null)
            {
                foreach (OpcClientSdk.Hda.TsCHdaAttributeValueCollection result in results)
                {
                    AddListItem(result);
                }

                AdjustColumns();
            }
        }
        /// <summary>
        /// Displays the values of an attribute.
        /// </summary>
        public void Initialize(TsCHdaServer server, OpcClientSdk.Hda.TsCHdaAttributeValueCollection values)
        {
            m_server = server;

            AttributesLV.Items.Clear();

            if (values != null)
            {
                foreach (OpcClientSdk.Hda.TsCHdaAttributeValue value in values)
                {
                    AddListItem(value);
                }

                AdjustColumns();
            }
        }
        /// <summary>
        /// Displays the values of an attribute.
        /// </summary>
        public void Initialize(TsCHdaServer server, Technosoftware.DaAeHdaClient.Hda.TsCHdaAttributeValueCollection values)
        {
            mServer_ = server;

            attributesLv_.Items.Clear();

            if (values != null)
            {
                foreach (Technosoftware.DaAeHdaClient.Hda.TsCHdaAttributeValue value in values)
                {
                    AddListItem(value);
                }

                AdjustColumns();
            }
        }
        /// <summary>
        /// Called to connect to a server.
        /// </summary>
        public void OnConnect()
        {
            if (server_ == null)
            {
                return;
            }
            Cursor = Cursors.WaitCursor;

            try
            {
                OpcUserIdentity credentials = null;

                do
                {
                    try
                    {
                        server_.Connect(new OpcConnectData(credentials, proxy_));
                        break;
                    }
                    catch (Exception e)
                    {
                        MessageBox.Show(e.Message);
                    }

                    credentials = new NetworkCredentialsDlg().ShowDialog(credentials);
                }while (credentials != null);

                // initialize controls.
                statusCtrl_.Start(server_);
                selectServerCtrl_.OnConnect(server_);
                trendsCtrl_.Initialize(server_);

                // register for shutdown events.
                server_.ServerShutdownEvent += new OpcServerShutdownEventHandler(Server_ServerShutdown);

                // save settings.
                SaveSettings();
            }
            catch (Exception e)
            {
                MessageBox.Show(e.Message);
                server_ = null;
            }

            Cursor = Cursors.Default;
        }
        /// <summary>
        /// Creates a server object for the specified URL.
        /// </summary>
        public static OpcServer GetServerForURL(OpcUrl url)
        {
            if (url == null)
            {
                throw new ArgumentNullException("url");
            }

            OpcServer server = null;

            // create an unconnected server object for XML based servers.
            if (url.Scheme == OpcUrlScheme.HTTP)
            {
                new NotSupportedException("XML not supported with .NET 4.6 and later.");
            }

            // create an unconnected server object for COM based servers.
            else
            {
                // DA
                if (url.Scheme == OpcUrlScheme.DA)
                {
                    server = new TsCDaServer(new Technosoftware.DaAeHdaClient.Com.Factory(), url);
                }

                // AE
                else if (url.Scheme == OpcUrlScheme.AE)
                {
                    server = new TsCAeServer(new Technosoftware.DaAeHdaClient.Com.Factory(), url);
                }

                // HDA
                else if (url.Scheme == OpcUrlScheme.HDA)
                {
                    server = new TsCHdaServer(new Technosoftware.DaAeHdaClient.Com.Factory(), url);
                }

                // Other specifications not supported yet.
                else
                {
                    throw new NotSupportedException(url.Scheme);
                }
            }

            return(server);
        }
예제 #27
0
        /// <summary>
        /// Initializes the control with a set of items.
        /// </summary>
        public void Initialize(TsCHdaServer server, TsCHdaItemTimeCollection times)
        {
            m_server = server;

            TimesLV.Items.Clear();

            if (times != null)
            {
                // add item times to list.
                foreach (DateTime time in times)
                {
                    AddListItem(time, -1);
                }

                // adjust the list view columns to fit the data.
                AdjustColumns();
            }
        }
        /// <summary>
        /// Initializes the control with a set of items.
        /// </summary>
        public void Initialize(TsCHdaServer server, TsCHdaAnnotationValueCollection values)
        {
            m_server = server;
            m_item   = values;

            ValuesLV.Items.Clear();

            if (values != null)
            {
                // add item values to list.
                foreach (TsCHdaAnnotationValue value in values)
                {
                    AddListItem(value, -1);
                }

                // adjust the list view columns to fit the data.
                AdjustColumns();
            }
        }
예제 #29
0
        /// <summary>
        /// Prompts the user to select attributes to read for an item.
        /// </summary>
        public TsCHdaItemAttributeCollection ShowDialog(
            TsCHdaServer server,
            OpcItem item,
            TsCHdaTime startTime,
            TsCHdaTime endTime,
            bool synchronous)
        {
            if (server == null)
            {
                throw new ArgumentNullException("server");
            }

            m_server      = server;
            m_item        = item;
            m_fixedItem   = item != null;
            m_synchronous = synchronous;
            m_results     = null;

            // create new trend.
            m_trend = new TsCHdaTrend(m_server);

            // set reasonable defaults.
            m_trend.StartTime = startTime;
            m_trend.EndTime   = endTime;

            BrowseCTRL.Browse(m_server, null);
            TrendCTRL.Initialize(m_trend, RequestType.ReadAttributes);
            AttributesCTRL.Initialize(m_server, null);
            ResultsCTRL.Initialize(m_server, m_results);
            AsyncResultsCTRL.Initialize(m_server, null);

            // update dialog state.
            SetState();

            // show dialog.
            bool result = (ShowDialog() == DialogResult.OK);

            // release item handles.
            m_trend.ClearItems();

            // return item values.
            return((result)?m_results:null);
        }
        /// <summary>
        /// Initializes the control with a set of item value collections.
        /// </summary>
        public void Initialize(TsCHdaServer server, IList[] values, TsCHdaResultCollection[] results)
        {
            if (server == null)
            {
                throw new ArgumentNullException("server");
            }

            mServer_ = server;

            itemsLv_.Items.Clear();

            // check if there is nothing to do.
            if (values == null || results == null)
            {
                return;
            }

            // collapse the array of collections into indiviual items in the list.
            for (int ii = 0; ii < results.Length; ii++)
            {
                for (int jj = 0; jj < results[ii].Count; jj++)
                {
                    DateTime timestamp = DateTime.MinValue;

                    if (ii < values.Length && jj < values[ii].Count)
                    {
                        if (typeof(TsCHdaItemValue).IsInstanceOfType(values[ii][jj]))
                        {
                            timestamp = ((TsCHdaItemValue)values[ii][jj]).Timestamp;
                        }
                        else if (typeof(TsCHdaAnnotationValue).IsInstanceOfType(values[ii][jj]))
                        {
                            timestamp = ((TsCHdaAnnotationValue)values[ii][jj]).Timestamp;
                        }
                    }

                    AddListItem(new ItemTimeResult(results[ii], timestamp, results[ii][jj]));
                }
            }

            // adjust the list view columns to fit the data.
            AdjustColumns();
        }