public void ChangeDetectedString()
 {
     ChangeTrigger<string> s = new ChangeTrigger<string>();
     Assert.IsTrue(s.GetChange("This is a Test"));
     Assert.IsTrue(s.GetChangeUpdate("This is a Test"));
     Assert.IsFalse(s.GetChange("This is a Test"));
 }
 public void ChangeDetectedInt()
 {
     ChangeTrigger<int> s = new ChangeTrigger<int>();
     Assert.IsTrue(s.GetChange(1));
     Assert.IsTrue(s.GetChangeUpdate(1));
     Assert.IsFalse(s.GetChange(1));
 }
        public override void BindNode(SerializedObject serializedObject)
        {
            if (_attribute.Renameable)
            {
                var property = serializedObject.FindProperty($"{_attribute.PropertyName}.{SerializedDictionary<string, string>.KeyProperty}.Array.size");
                if (property != null)
                {
                    Add(ChangeTrigger.Create(property, _ => RefreshOutputs(property)));
                    RefreshOutputs(property);
                }
                else
                {
                    Debug.LogWarningFormat(Data.Node, _invalidDictionaryWarning, _attribute.PropertyName);
                }
            }
            else
            {
                var property = serializedObject.FindProperty($"{_attribute.PropertyName}.{SerializedList<string>.ItemsProperty}.Array.size");
                if (property != null)
                {
                    Add(ChangeTrigger.Create(property, _ => RefreshOutputs(property)));
                    RefreshOutputs(property);
                }
                else
                {
                    Debug.LogWarningFormat(Data.Node, _invalidListWarning, _attribute.PropertyName);
                }
            }

            base.BindNode(serializedObject);
        }
        private void CreateTrigger <T>(VisualElement root, SerializedObject obj, string propertyName)
        {
            var property = obj.FindProperty(propertyName);
            var field    = new PropertyField(property);
            var trigger  = new ChangeTrigger <T>(property, PropertyChanged);

            root.Add(field);
            root.Add(trigger);
        }
        private void CreateArraySizeTrigger(VisualElement root, SerializedObject obj, string propertyName)
        {
            var list     = obj.FindProperty(propertyName);
            var field    = new PropertyField(list);
            var property = list.FindPropertyRelative("Array.size");
            var trigger  = new ChangeTrigger <int>(property, PropertyChanged);

            root.Add(field);
            root.Add(trigger);
        }
Ejemplo n.º 6
0
 public MemoryRule(string description, long memoryOffset, int numBytes, DataType dataType, ChangeTrigger trigger, TransferType transfer, Endianness endian, bool log)
 {
     Description   = description;
     _memoryOffset = memoryOffset;
     _numBytes     = numBytes;
     _dataType     = dataType;
     _trigger      = trigger;
     _transferType = transfer;
     _endian       = endian;
     _bytes        = null;
     _printToLog   = log;
 }
Ejemplo n.º 7
0
        public MemoryRule(string serializedData)
        {
            var split = serializedData.Split('|');

            //Unused so far
            var version = split[0];

            _description  = split[1];
            _memoryOffset = Convert.ToInt64(split[2], 16);
            _numBytes     = Convert.ToInt32(split[3]);
            if (split[4] == "Flags")
            {
                split[4] = "Data";
            }
            _dataType     = (DataType)Enum.Parse(typeof(DataType), split[4]);
            _trigger      = (ChangeTrigger)Enum.Parse(typeof(ChangeTrigger), split[5]);
            _transferType = (TransferType)Enum.Parse(typeof(TransferType), split[6]);
            _endian       = (Endianness)Enum.Parse(typeof(Endianness), split[7]);
            if (split.Length > 8)
            {
                _printToLog = split[8] == "1";
            }
        }
Ejemplo n.º 8
0
        //public static void Browse() { }

        //public async Task<string> RegisterAndReadTagAsync(cdeP property, string nodeId, int samplingInterval = 1000, ChangeTrigger changeTrigger = ChangeTrigger.Value, double deadbandvalue = 0) { return false; }

        public bool RegisterTag(cdeP property, string nodeId, int samplingInterval = 1000, ChangeTrigger changeTrigger = ChangeTrigger.Value, double deadbandvalue = 0)
        {
            if (property.GetThing()?.GetBaseThing() == null)
            {
                return(false);
            }
            return(_TagRegistrations.TryAdd(property.Name, new TagRegistration
            {
                PropertyName = property.Name,
                TagInfo = new MsgOPCUACreateTags.TagInfo
                {
                    DisplayName = property.Name,
                    NodeId = nodeId,
                    SamplingInterval = samplingInterval,
                    ChangeTrigger = changeTrigger,
                    DeadbandValue = deadbandvalue,
                    HostThingAddress = property.GetThing().GetBaseThing(),
                },
                Error = "Not subscribed",
            }));
        }
Ejemplo n.º 9
0
 public MemoryRule(string description, string memoryOffset, int numBytes, DataType dataType, ChangeTrigger trigger, TransferType transfer, Endianness endian, bool log)
     : this(description, Convert.ToInt64(memoryOffset, 16), numBytes, dataType, trigger, transfer, endian, log)
 {
 }