/// <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(); }
/// <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; }
/// <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(); }
/// <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(); }
/// <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(); }
/// <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(); }
/// <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(); }
/// <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); }
/// <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(); }
/// <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); }
/// <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(); } }
/// <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(); }