Esempio n. 1
0
        public override void OnInputChange(Input input)
        {
            HardwareInput hardwareInput = (HardwareInput)input;

            Debug($"Hardware Node{hardwareInput.nodeId} Sensor{hardwareInput.sensorId} input: {input.Value}");

            gateway.SendSensorState(hardwareInput.nodeId, hardwareInput.sensorId, input.Value);
        }
Esempio n. 2
0
        public override void OnInputChange(Input input)
        {
            string result;

            if (Inputs[0].Value == "0")
                result = "1";
            else
                result = "0";

            Debug($"Invert: from {Inputs[0].Value} to {result}");

            Outputs[0].Value = result;
        }
Esempio n. 3
0
 public override void OnInputChange(Input input)
 {
     try
     {
         freqInput = Int32.Parse(input.Value);
         Debug($"Counter: frequency changed to {freqInput.Value} ms");
     }
     catch
     {
         freqInput = null;
         Debug($"Counter: frequency changed to default value: {DEFAULT_VALUE} ms");
     }
 }
Esempio n. 4
0
        public override void OnInputChange(Input input)
        {
            int a = 0, b = 0;

            if (Inputs[0].Value != null)
                a = Int32.Parse(Inputs[0].Value);

            if (Inputs[1].Value != null)
                b = Int32.Parse(Inputs[1].Value);

            Debug($"MathPlus: {Inputs[0].Value} + {Inputs[1].Value}  = {Outputs[0].Value}");

            Outputs[0].Value = (a + b).ToString();
        }
Esempio n. 5
0
        public LogicalNode(int inputsCount, int outputsCount)
        {
            Id = Guid.NewGuid().ToString();

            Outputs = new List<Output>();
            for (int i = 0; i < outputsCount; i++)
            {
                Outputs.Add(new Output { Name = $"Out {i}" });
            }

            Inputs = new List<Input>();
            for (int i = 0; i < inputsCount; i++)
            {
                Input input = new Input { Name = $"In {i}" };
                Inputs.Add(input);
            }
        }
Esempio n. 6
0
 public override void OnInputChange(Input input)
 {
 }
Esempio n. 7
0
        public override void OnInputChange(Input input)
        {
            //Debug($"Console: {input.Value}");

            Console.WriteLine($"LOGICAL NODE CONSOLE: {input.Value}");
        }
Esempio n. 8
0
        public void OnInputChange(Input input)
        {
            //DebugNodes($"Input changed: {input.Name}");

            if (!started)
                return;

            foreach (var node in nodes)
            {
                if (node.Inputs.Contains(input))
                    node.OnInputChange(input);
            }

            OnInputUpdatedEvent?.Invoke(input);
        }
Esempio n. 9
0
 public LogicalLink GetLink(Output output, Input input)
 {
     return links.FirstOrDefault(x => x.InputId == input.Id && x.OutputId == output.Id);
 }
Esempio n. 10
0
 public LogicalNode GetInputOwner(Input input)
 {
     foreach (var node in nodes)
     {
         if (node.Inputs.Contains(input))
             return node;
     }
     return null;
 }
Esempio n. 11
0
        public void DeleteLink(Output output, Input input)
        {
            LogicalNode inputNode = GetInputOwner(input);
            LogicalNode outputNode = GetOutputOwner(output);
            DebugEngine($"Delete link from {outputNode.GetType().Name} to {inputNode.GetType().Name}");

            LogicalLink link = GetLink(output, input);

            OnLinkDeleteEvent?.Invoke(link);
            links.Remove(link);
        }
Esempio n. 12
0
        public void AddLink(Output output, Input input)
        {
            LogicalNode inputNode = GetInputOwner(input);
            LogicalNode outputNode = GetOutputOwner(output);
            DebugEngine($"New link from {outputNode.GetType().Name} to {inputNode.GetType().Name}");

            LogicalLink link = new LogicalLink(output.Id, input.Id);
            links.Add(link);

            OnNewLinkEvent?.Invoke(link);

            if (!started)
                return;

            input.Value = output.Value;
        }
Esempio n. 13
0
 public abstract void OnInputChange(Input input);