Exemplo n.º 1
0
        /// <summary>
        /// Invokes callback for a read attributes request.
        /// </summary>
        private bool InvokeCallback(ReadAttributesEventHandler callback, object results)
        {
            // check for valid result type.
            if (!typeof(ItemAttributeCollection).IsInstanceOfType(results))
            {
                return(false);
            }

            ItemAttributeCollection values = (ItemAttributeCollection)results;

            // update item handles and actual times.
            UpdateResults(new ItemAttributeCollection[] { values });

            try
            {
                callback(this, values);
            }
            catch
            {
                // ignore exceptions in the callbacks.
            }

            // request always completes
            return(true);
        }
Exemplo n.º 2
0
 public void OnReadAttributeComplete(int dwTransactionID, int hrStatus, int hClient, int dwNumItems, OPCHDA_ATTRIBUTE[] pAttributeValues, int[] phrErrors)
 {
     try
     {
         lock (this)
         {
             Request request = (Request)this.m_requests[dwTransactionID];
             if (request != null)
             {
                 ItemAttributeCollection results = new ItemAttributeCollection {
                     ServerHandle = hClient
                 };
                 AttributeValueCollection[] valuesArray = new AttributeValueCollection[pAttributeValues.Length];
                 for (int i = 0; i < pAttributeValues.Length; i++)
                 {
                     valuesArray[i]          = OpcCom.Hda.Interop.GetAttributeValueCollection(pAttributeValues[i], false);
                     valuesArray[i].ResultID = OpcCom.Interop.GetResultID(phrErrors[i]);
                     results.Add(valuesArray[i]);
                 }
                 if (request.InvokeCallback(results))
                 {
                     this.m_requests.Remove(request.RequestID);
                 }
             }
         }
     }
     catch (Exception exception)
     {
         this.HandleException(dwTransactionID, exception);
     }
 }
Exemplo n.º 3
0
        public void OnReadAttributeComplete(int dwTransactionID, int hrStatus, int hClient, int dwNumItems, OPCHDA_ATTRIBUTE[] pAttributeValues, int[] phrErrors)
        {
            try
            {
                lock (this)
                {
                    Request request = (Request)m_requests[dwTransactionID];
                    if (request != null)
                    {
                        ItemAttributeCollection itemAttributeCollection = new ItemAttributeCollection();
                        itemAttributeCollection.ServerHandle = hClient;
                        AttributeValueCollection[] array = new AttributeValueCollection[pAttributeValues.Length];
                        for (int i = 0; i < pAttributeValues.Length; i++)
                        {
                            array[i]          = Interop.GetAttributeValueCollection(pAttributeValues[i], deallocate: false);
                            array[i].ResultID = OpcCom.Interop.GetResultID(phrErrors[i]);
                            itemAttributeCollection.Add(array[i]);
                        }

                        if (request.InvokeCallback(itemAttributeCollection))
                        {
                            m_requests.Remove(request.RequestID);
                        }
                    }
                }
            }
            catch (Exception exception)
            {
                HandleException(dwTransactionID, exception);
            }
        }
Exemplo n.º 4
0
        public static ItemAttributeCollection GetbyItem(string ItemCode)
        {
            ItemAttributeCollection collection = new ItemAttributeCollection();
            ItemAttribute           obj;

            using (var reader = SqlHelper.ExecuteReader("tblItemAttribute_GetAll_byItem", new SqlParameter("@ItemCode", ItemCode)))
            {
                while (reader.Read())
                {
                    obj = GetItemFromReader(reader);
                    collection.Add(obj);
                }
            }
            return(collection);
        }
Exemplo n.º 5
0
        public static ItemAttributeCollection GetAllItem()
        {
            ItemAttributeCollection collection = new ItemAttributeCollection();

            using (var reader = SqlHelper.ExecuteReader("tblItemAttribute_GetAll", null))
            {
                while (reader.Read())
                {
                    ItemAttribute obj = new ItemAttribute();
                    obj = GetItemFromReader(reader);
                    collection.Add(obj);
                }
            }
            return(collection);
        }
Exemplo n.º 6
0
        /// <summary>
        /// Called when an asynchronous read attributes request completes.
        /// </summary>
        public void OnReadAttributeComplete(
            int dwTransactionID,
            int hrStatus,
            int hClient,
            int dwNumItems,
            OPCHDA_ATTRIBUTE[] pAttributeValues,
            int[]              phrErrors)
        {
            try
            {
                lock (this)
                {
                    // lookup request transaction.
                    Request request = (Request)m_requests[dwTransactionID];

                    if (request == null)
                    {
                        return;
                    }

                    // create item object to collect results.
                    ItemAttributeCollection item = new ItemAttributeCollection();
                    item.ServerHandle = hClient;

                    // unmarshal results.
                    AttributeValueCollection[] results = new AttributeValueCollection[pAttributeValues.Length];

                    for (int ii = 0; ii < pAttributeValues.Length; ii++)
                    {
                        results[ii] = Interop.GetAttributeValueCollection(pAttributeValues[ii], false);

                        results[ii].ResultID = OpcCom.Interop.GetResultID(phrErrors[ii]);

                        item.Add(results[ii]);
                    }

                    // invoke callback - remove request if all results arrived.
                    if (request.InvokeCallback(item))
                    {
                        m_requests.Remove(request.RequestID);
                    }
                }
            }
            catch (Exception exception)
            {
                HandleException(dwTransactionID, exception);
            }
        }
Exemplo n.º 7
0
        private bool InvokeCallback(ReadAttributesEventHandler callback, object results)
        {
            if (!typeof(ItemAttributeCollection).IsInstanceOfType(results))
            {
                return(false);
            }
            ItemAttributeCollection attributes = (ItemAttributeCollection)results;

            this.UpdateResults(new ItemAttributeCollection[] { attributes });
            try
            {
                callback(this, attributes);
            }
            catch
            {
            }
            return(true);
        }