private static BaseTagValue[] ConvertToBaseTagValues(OpcDaItemValue[] opcDaValues) { List <BaseTagValue> values = new List <BaseTagValue>(); foreach (OpcDaItemValue valueChange in opcDaValues) { BaseTagValue value = OPCAgentUtils.GetTagWithValue(valueChange.Item.CanonicalDataType, valueChange.Value); value.Path = valueChange.Item.ItemId; value.Quality = new OpcQuality { Status = (OpcQualityStatus)valueChange.Quality.Master, SubStatus = (OpcQualitySubStatus)valueChange.Quality.Status, Limit = (OpcQualityLimit)valueChange.Quality.Limit }; value.TimeStamp = valueChange.Timestamp.DateTime; //todo, make sure this is utc values.Add(value); } return(values.ToArray()); }
public static object GetObjectValueFromTag(BaseTagValue tag) { if (tag is SByteTagValue) { return((tag as SByteTagValue).Value); } if (tag is ByteTagValue) { return((tag as ByteTagValue).Value); } if (tag is ShortTagValue) { return((tag as ShortTagValue).Value); } if (tag is UShortTagValue) { return((tag as UShortTagValue).Value); } if (tag is IntTagValue) { return((tag as IntTagValue).Value); } if (tag is UIntTagValue) { return((tag as UIntTagValue).Value); } if (tag is LongTagValue) { return((tag as LongTagValue).Value); } if (tag is ULongTagValue) { return((tag as ULongTagValue).Value); } if (tag is FloatTagValue) { return((tag as FloatTagValue).Value); } if (tag is DoubleTagValue) { return((tag as DoubleTagValue).Value); } if (tag is DecimalTagValue) { return((tag as DecimalTagValue).Value); } if (tag is BoolTagValue) { return((tag as BoolTagValue).Value); } if (tag is DateTimeTagValue) { return((tag as DateTimeTagValue).Value); } if (tag is StringTagValue) { return((tag as StringTagValue).Value); } if (tag is SByteArrayTagValue) { return((tag as SByteArrayTagValue).Value); } if (tag is ByteArrayTagValue) { return((tag as ByteArrayTagValue).Value); } if (tag is ShortArrayTagValue) { return((tag as ShortArrayTagValue).Value); } if (tag is UShortArrayTagValue) { return((tag as UShortArrayTagValue).Value); } if (tag is IntArrayTagValue) { return((tag as IntArrayTagValue).Value); } if (tag is UIntArrayTagValue) { return((tag as UIntArrayTagValue).Value); } if (tag is LongArrayTagValue) { return((tag as LongArrayTagValue).Value); } if (tag is ULongArrayTagValue) { return((tag as ULongArrayTagValue).Value); } if (tag is FloatArrayTagValue) { return((tag as FloatArrayTagValue).Value); } if (tag is DoubleArrayTagValue) { return((tag as DoubleArrayTagValue).Value); } if (tag is DecimalArrayTagValue) { return((tag as DecimalArrayTagValue).Value); } if (tag is BoolArrayTagValue) { return((tag as BoolArrayTagValue).Value); } if (tag is DateTimeArrayTagValue) { return((tag as DateTimeArrayTagValue).Value); } if (tag is StringArrayTagValue) { return((tag as StringArrayTagValue).Value); } throw new Exception("Unknown tag value type"); }