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