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