コード例 #1
0
        internal void ReadAndRaiseTagStatusChanged(RtTagMemoryMapped tag, bool lastStatus)
        {
            var status = ReadTagStatus(tag.Topic);

            if (lastStatus != status)
            {
                tag.RaiseStatusChanged(status);
            }
        }
コード例 #2
0
        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);
            }
        }
コード例 #3
0
        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);
        }