Ejemplo n.º 1
0
        /// <summary>
        /// Updates the values of the item.
        /// </summary>
        private void DoReplace()
        {
            // get the values to insert/replace.
            mValues_ = new TsCHdaItemValueCollection[] { valuesCtrl_.GetValues() };

            // check if there is nothing to do.
            if (mValues_[0] == null || mValues_[0].Count == 0)
            {
                return;
            }

            // create item (if necessary).
            TsCHdaItem item = mTrend_.Items[mItem_];

            if (item == null)
            {
                item = mTrend_.AddItem(mItem_);
            }

            // add the item identifier information to the collection.
            mValues_[0].ItemName     = item.ItemName;
            mValues_[0].ItemPath     = item.ItemPath;
            mValues_[0].ServerHandle = item.ServerHandle;
            mValues_[0].ClientHandle = item.ClientHandle;

            if (mSynchronous_)
            {
                // replace data.
                TsCHdaResultCollection[] results = mServer_.Replace(mValues_);

                if (results == null || results.Length != 1)
                {
                    ////throw new InvalidResponseException();
                }

                // display results.
                resultsCtrl_.Initialize(mServer_, mValues_, results);

                // save results.
                mResults_ = results;
            }
            else
            {
                // check if already waiting for results.
                if (mAsyncSent_)
                {
                    return;
                }

                // begin replace data.
                OpcItemResult[] results = mServer_.Replace(
                    mValues_,
                    null,
                    new TsCHdaUpdateCompleteEventHandler(OnUpdateComplete),
                    out mRequest_);

                if (results == null || results.Length != 1)
                {
                    //throw new InvalidResponseException();
                }

                // display initial results.
                asyncResultsCtrl_.Initialize(mServer_, results);
                mAsyncSent_ = true;
            }
        }
        /// <summary>
        /// Updates the values of the item.
        /// </summary>
        private void DoReplace()
        {
            // get the values to insert/replace.
            m_values = new TsCHdaItemValueCollection[] { ValuesCTRL.GetValues() };

            // check if there is nothing to do.
            if (m_values[0] == null || m_values[0].Count == 0)
            {
                return;
            }

            // create item (if necessary).
            TsCHdaItem item = m_trend.Items[m_item];

            if (item == null)
            {
                item = m_trend.AddItem(m_item);
            }

            // add the item identifier information to the collection.
            m_values[0].ItemName     = item.ItemName;
            m_values[0].ItemPath     = item.ItemPath;
            m_values[0].ServerHandle = item.ServerHandle;
            m_values[0].ClientHandle = item.ClientHandle;

            if (m_synchronous)
            {
                // replace data.
                TsCHdaResultCollection[] results = m_server.Replace(m_values);

                if (results == null || results.Length != 1)
                {
                    ////throw new InvalidResponseException();
                }

                // display results.
                ResultsCTRL.Initialize(m_server, m_values, results);

                // save results.
                m_results = results;
            }
            else
            {
                // check if already waiting for results.
                if (m_asyncSent)
                {
                    return;
                }

                // begin replace data.
                OpcItemResult[] results = m_server.Replace(
                    m_values,
                    null,
                    new TsCHdaUpdateCompleteEventHandler(OnUpdateComplete),
                    out m_request);

                if (results == null || results.Length != 1)
                {
                    //throw new InvalidResponseException();
                }

                // display initial results.
                AsyncResultsCTRL.Initialize(m_server, results);
                m_asyncSent = true;
            }
        }