internal void ReadAndRaiseTagStatusChanged(RtTagMemoryMapped tag, bool lastStatus) { var status = ReadTagStatus(tag.Topic); if (lastStatus != status) { tag.RaiseStatusChanged(status); } }
internal void ReadAndRaiseTagOnUpdated(RtTagMemoryMapped tag, double lastUpdated) { var updated = ReadTagUpdated(tag.Topic); if (updated.HasValue && Math.Abs(lastUpdated - updated.Value) > 0.001) { tag.RaiseOnUpdatedValue(ReadTagValue(tag.Topic), updated.Value.FromUnixTimestamp(), true); RaiseOnUpdatedValue(tag); } }
public override IRtTag AddTag(string tagName, string topic, IRtTagOptions options) { var tag = GetTag(tagName); if (tag != null) { return(tag); } RtTagMemoryMapped t = new RtTagMemoryMapped(this, tagName, topic, options); lock (rtTags) { rtTags.Add(t); } logger?.LogDebug("AddTag TagName:{0}", t.TagName); return(t); }