public void DefineUshortTag( RegisterFunction function, TagAddressMaskType masktype = TagAddressMaskType.None, ushort mask = ushort.MaxValue, TagAddressMergeType mergetype = TagAddressMergeType.OrMerge, ushort range = ushort.MinValue) { if (InnerTag != null) { return; } UshortTag innertag = new UshortTag(function) { MaskType = masktype, Mask = mask, MergeType = mergetype, Range = range }; InnerTag = innertag; InnerTag.TagValueChangedEvent += delegate(ITagType tag) { TagStatusChanged?.Invoke(this, EventArgs.Empty); }; }
public TagTypeController(TagAddressMergeType mergetype = TagAddressMergeType.OrMerge, TagAddressMaskType masktype = TagAddressMaskType.OrMask) { if (typeof(TType) == typeof(float) && typeof(TModbusType) == typeof(ushort)) { InnerTagType = TagType.FloatTag; } else if (typeof(TType) == typeof(ushort) && typeof(TModbusType) == typeof(ushort)) { InnerTagType = TagType.UshortTag; } else if (typeof(TType) == typeof(bool) && typeof(TModbusType) == typeof(bool)) { InnerTagType = TagType.BoolTag; } else if (typeof(TType) == typeof(uint) && typeof(TModbusType) == typeof(ushort)) { InnerTagType = TagType.UintTag; } else { throw new ArgumentException(); } MergeType = mergetype; MaskType = masktype; Mask = default; }
public void DefineBoolTag( StatusFunction function, TagAddressMaskType masktype = TagAddressMaskType.None, bool mask = false, TagAddressMergeType mergetype = TagAddressMergeType.OrMerge) { if (InnerTag != null) { return; } BoolTag innertag = new BoolTag(function) { MaskType = masktype, Mask = mask, MergeType = mergetype }; InnerTag = innertag; InnerTag.TagValueChangedEvent += delegate(ITagType tag) { TagStatusChanged?.Invoke(this, EventArgs.Empty); }; }