Exemplo n.º 1
0
        /// <summary>
        /// Unmarshals and deallocates an OPCHDA_ATTRIBUTE structure.
        /// </summary>
        internal static AttributeValueCollection GetAttributeValueCollection(OpcRcw.Hda.OPCHDA_ATTRIBUTE input, bool deallocate)
        {
            AttributeValueCollection output = new AttributeValueCollection();

            output.AttributeID = input.dwAttributeID;

            object[]   values     = OpcCom.Interop.GetVARIANTs(ref input.vAttributeValues, input.dwNumValues, deallocate);
            DateTime[] timestamps = OpcCom.Interop.GetFILETIMEs(ref input.ftTimeStamps, input.dwNumValues, deallocate);

            for (int ii = 0; ii < input.dwNumValues; ii++)
            {
                AttributeValue value = new AttributeValue();

                value.Value     = values[ii];
                value.Timestamp = timestamps[ii];

                output.Add(value);
            }

            return(output);
        }
        /// <summary>
        /// Unmarshals and deallocates an OPCHDA_ATTRIBUTE structure.
        /// </summary>
        internal static Technosoftware.DaAeHdaClient.Hda.TsCHdaAttributeValueCollection GetAttributeValueCollection(OpcRcw.Hda.OPCHDA_ATTRIBUTE input, bool deallocate)
        {
            Technosoftware.DaAeHdaClient.Hda.TsCHdaAttributeValueCollection output = new Technosoftware.DaAeHdaClient.Hda.TsCHdaAttributeValueCollection();

            output.AttributeID = input.dwAttributeID;

            object[]   values     = Com.Interop.GetVARIANTs(ref input.vAttributeValues, input.dwNumValues, deallocate);
            DateTime[] timestamps = Technosoftware.DaAeHdaClient.Utilities.Interop.GetDateTimes(ref input.ftTimeStamps, input.dwNumValues, deallocate);

            for (int ii = 0; ii < input.dwNumValues; ii++)
            {
                Technosoftware.DaAeHdaClient.Hda.TsCHdaAttributeValue value = new Technosoftware.DaAeHdaClient.Hda.TsCHdaAttributeValue();

                value.Value     = values[ii];
                value.Timestamp = timestamps[ii];

                output.Add(value);
            }

            return(output);
        }