コード例 #1
0
        /// <summary>
        /// Creates a new subscription.
        /// </summary>
        /// <returns>The new subscription object.</returns>
        /// <requirements>OPC XML-DA Server or OPC Data Access Server V2.x / V3.x</requirements>
        /// <param name="state">The initial state of the subscription.</param>
        public virtual ITsCDaSubscription CreateSubscription(TsCDaSubscriptionState state)
        {
            LicenseHandler.ValidateFeatures(LicenseHandler.ProductFeature.DataAccess);
            if (state == null)
            {
                throw new ArgumentNullException(nameof(state));
            }
            if (Server == null)
            {
                throw new NotConnectedException();
            }

            // create subscription on server.
            ITsCDaSubscription subscription = ((ITsDaServer)Server).CreateSubscription(state);

            // set filters.
            subscription.SetResultFilters(filters_);

            // append new subscription to existing list.
            TsCDaSubscriptionCollection subscriptions = new TsCDaSubscriptionCollection();

            if (subscriptions_ != null)
            {
                foreach (TsCDaSubscription value in subscriptions_)
                {
                    subscriptions.Add(value);
                }
            }

            subscriptions.Add(CreateSubscription(subscription));

            // save new subscription list.
            subscriptions_ = subscriptions;

            // return new subscription.
            return(subscriptions_[subscriptions_.Count - 1]);
        }
コード例 #2
0
        /// <summary>
        /// Creates a new subscription.
        /// </summary>
        /// <returns>The new subscription object.</returns>
        /// <requirements>OPC XML-DA Server or OPC Data Access Server V2.x / V3.x</requirements>
        /// <param name="state">The initial state of the subscription.</param>
        public virtual ITsCDaSubscription CreateSubscription(TsCDaSubscriptionState state)
        {
            if (state == null)
            {
                throw new ArgumentNullException("state");
            }
            if (_server == null)
            {
                throw new NotConnectedException();
            }

            // create subscription on server.
            ITsCDaSubscription subscription = ((ITsDaServer)_server).CreateSubscription(state);

            // set filters.
            subscription.SetResultFilters(_filters);

            // append new subscription to existing list.
            TsCDaSubscriptionCollection subscriptions = new TsCDaSubscriptionCollection();

            if (_subscriptions != null)
            {
                foreach (TsCDaSubscription value in _subscriptions)
                {
                    subscriptions.Add(value);
                }
            }

            subscriptions.Add(CreateSubscription(subscription));

            // save new subscription list.
            _subscriptions = subscriptions;

            // return new subscription.
            return(_subscriptions[_subscriptions.Count - 1]);
        }
コード例 #3
0
 /// <summary>
 /// Updates the current subscription state.
 /// </summary>
 public TsCDaSubscriptionState ModifyState(int masks, TsCDaSubscriptionState state)
 {
     subscriptionState_ = Subscription.ModifyState(masks, state);
     return(subscriptionState_);
 }
コード例 #4
0
 /// <summary>
 /// Returns the current subscription state.
 /// </summary>
 public TsCDaSubscriptionState GetState()
 {
     subscriptionState_ = Subscription.GetState();
     return(subscriptionState_);
 }
コード例 #5
0
 /// <summary>
 /// Constructs a server by de-serializing its OpcUrl from the stream.
 /// </summary>
 protected TsCDaSubscription(SerializationInfo info, StreamingContext context)
 {
     subscriptionState_ = (TsCDaSubscriptionState)info.GetValue(Names.State, typeof(TsCDaSubscriptionState));
     filters_           = (int)info.GetValue(Names.Filters, typeof(int));
     daItems_           = (TsCDaItem[])info.GetValue(Names.Items, typeof(TsCDaItem[]));
 }
コード例 #6
0
 /// <summary>
 /// Updates the current subscription state.
 /// </summary>
 public TsCDaSubscriptionState ModifyState(int masks, TsCDaSubscriptionState state)
 {
     _state = _subscription.ModifyState(masks, state);
     return(_state);
 }
コード例 #7
0
 /// <summary>
 /// Returns the current subscription state.
 /// </summary>
 public TsCDaSubscriptionState GetState()
 {
     _state = _subscription.GetState();
     return(_state);
 }
コード例 #8
0
 /// <summary>
 /// Contructs a server by de-serializing its OpcUrl from the stream.
 /// </summary>
 protected TsCDaSubscription(SerializationInfo info, StreamingContext context)
 {
     _state   = (TsCDaSubscriptionState)info.GetValue(Names.STATE, typeof(TsCDaSubscriptionState));
     _filters = (int)info.GetValue(Names.FILTERS, typeof(int));
     _items   = (TsCDaItem[])info.GetValue(Names.ITEMS, typeof(TsCDaItem[]));
 }