示例#1
0
        private void ParseProperties()
        {
            var type = this.GetType();
            var p    = type.GetProperties();

            foreach (var prop in p)
            {
                var tag = connector.GetOrAddTag($"{prefixTagName}/{prop.Name}");
                tags[prop.Name] = new StatisticsProps()
                {
                    Tag = tag, Info = prop, PrevValue = null
                };
            }
        }
示例#2
0
    private bool ActionOnChange(ITagRuleDefinition <string> arg)
    {
        var result = new List <bool>();
        var rule   = settings.Rules.First(r => r.EventId == arg.EventId);

        foreach (var writeTagConfig in rule.WriteTags)
        {
            var read     = ReadValue(writeTagConfig.Value.Trim(), arg);
            var tagWrite = connector.GetOrAddTag(writeTagConfig.Tag);

            logger?.LogInformation("Action [Event={0} Type={1}]. Write Tag:[{2} Value={3} Status={4}] Whit [<{5}> Value:{6} Status:{7}]",
                                   arg.EventId, arg.RuleCheckType, tagWrite.TagName, tagWrite.Value, tagWrite.Status, read.name, read.value, read.status);

            if (read.status)
            {
                result.Add(tagWrite.SetText(read.value.Text));
            }
        }

        processInfo.RuleEventId     = arg.EventId;
        processInfo.ActionExecuted += 1;
        processInfo.ActionWriteTags = result.Count();
        processInfo.SetValuesFromPropertiesAsync().Wait();
        return(result.Any());
    }
        public static IRtTag AddTagDefinition(this IRtConnector conn, string tagDefinition, IRtTagOptions options = null)
        {
            var tsplit = tagDefinition.Split(new[] { "@" }, 2, StringSplitOptions.None);
            var topic  = tsplit[0];

            if (tsplit.Length > 1)
            {
                var tag = conn.GetOrAddTag(topic, options);

                var tagDefinitionPattern = tsplit[1];

                if (tagDefinitionPattern.StartsWith("JSON:"))
                {
                    var jsonValuePattern = tagDefinitionPattern.Remove(0, 5);
                    return(new RtTagJson(tag, jsonValuePattern));
                }
                else if (tagDefinitionPattern.StartsWith("RGX:"))
                {
                    var regexPattern = tagDefinitionPattern.Remove(0, 4);
                    return(new RtTagRegex(tag, regexPattern));
                }
                else if (tagDefinitionPattern.StartsWith("DT:"))
                {
                    var dateTimePattern = tagDefinitionPattern.Remove(0, 3);
                    return(new RtTagDateTime(tag, dateTimePattern));
                }
                else if (tagDefinitionPattern.StartsWith("UL:"))
                {
                    var ultraLightValuePattern = tagDefinitionPattern.Remove(0, 3);
                    return(new RtTagUltraLight(tag, ultraLightValuePattern));
                }
                else if (tagDefinitionPattern.StartsWith("BDP:"))
                {
                    var dataParserPattern = tagDefinitionPattern.Remove(0, 4);
                    return(new RtTagBinaryDataParser(tag, dataParserPattern));
                }
            }

            return(conn.GetOrAddTag(topic, options));
        }
示例#4
0
 private void Init(string tagPrefix = "simulation/")
 {
     actionReset        = rt.GetOrAddTag <bool>($"{tagPrefix}actionReset");
     actionStart        = rt.GetOrAddTag <bool>($"{tagPrefix}actionStart");
     actionStop         = rt.GetOrAddTag <bool>($"{tagPrefix}actionStop");
     running            = rt.GetOrAddTag <bool>($"{tagPrefix}running");
     slowRunning        = rt.GetOrAddTag <bool>($"{tagPrefix}slowRunning");
     countTotal         = rt.GetOrAddTag <int>($"{tagPrefix}countTotal");
     countGood          = rt.GetOrAddTag <int>($"{tagPrefix}countGood");
     countBad           = rt.GetOrAddTag <int>($"{tagPrefix}countBad");
     lineSpeed          = rt.GetOrAddTag <double>($"{tagPrefix}lineSpeed");
     lineSpeedMin       = rt.GetOrAddTag <double>($"{tagPrefix}lineSpeedMin");
     lineSpeedMax       = rt.GetOrAddTag <double>($"{tagPrefix}lineSpeedMax");
     lineSpeedSetPoint  = rt.GetOrAddTag <double>($"{tagPrefix}lineSpeedSetPoint");
     lineLength         = rt.GetOrAddTag <double>($"{tagPrefix}lineLength");
     piecesByLength     = rt.GetOrAddTag <double>($"{tagPrefix}piecesByLength");
     percentBadOverGood = rt.GetOrAddTag <int>($"{tagPrefix}percentBadOverGood");
 }
 public static RtTagType <TValue> GetOrAddTag <TValue>(this IRtConnector conn, string topic, IRtTagOptions options = null)
 {
     return(new RtTagType <TValue>(conn.GetOrAddTag(topic, topic, options)));
 }
 public static IRtTag GetOrAddTag(this IRtConnector conn, string topic, IRtTagOptions options = null)
 {
     return(conn.GetOrAddTag(topic, topic, options));
 }