public void Execute(object parameter)
        {
            if (!_node.IsClickable)
            {
                return;
            }

            bool newTurnedOn = !_node.TurnedOn;

            if (_node.Item is SwitchModel model)
            {
                var measurement = model.Measurement;
                var endpoint    = EndPointCreator.Instance().Get();
                var command     = new ScadaCommandingEvent()
                {
                    Index        = (uint)measurement.Index,
                    RegisterType = measurement.RegisterType,
                    Milliseconds = 0,
                    Value        = (uint)(newTurnedOn ? 1 : 0)
                };
                endpoint.Publish(command).ConfigureAwait(false);
            }

            SetElectricity(_node, newTurnedOn, isRoot: true);
        }
Esempio n. 2
0
        private void SendCommand(CeForecast forecastResult)
        {
            commands = new List <List <ScadaCommandingEvent> >();
            var proxy      = new SF.Common.Proxies.ScadaExportProxy(ConfigurationManager.AppSettings["Scada"]);
            var commanding = new CommandingProxy(ConfigurationManager.AppSettings["Command"]);
            var points     = proxy.GetData().GetAwaiter().GetResult();

            if (points == null)
            {
                return;
            }
            foreach (var item in forecastResult.Results.Take(24))
            {
                var cmds = new List <ScadaCommandingEvent>();
                for (int i = 0; i < item.Pumps.Count(); i++)
                {
                    var onOff = item.Pumps[i];
                    var time  = item.Times[i];
                    var flow  = item.Flows[i];
                    if (points.ContainsKey($"Breaker_2{i + 1}Status"))
                    {
                        var breaker2 = points[$"Breaker_2{i + 1}Status"];
                        if (onOff != 0)
                        {
                            var command1 = new ScadaCommandingEvent()
                            {
                                Index        = (uint)breaker2.Index,
                                RegisterType = breaker2.RegisterType,
                                Milliseconds = 0,
                                Value        = (uint)onOff
                            };
                            cmds.Add(command1);
                        }
                    }

                    if (points.ContainsKey($"Discrete_Tap{i + 1}") && onOff == 1)
                    {
                        var tap = points[$"Discrete_Tap{i + 1}"];

                        var command2 = new ScadaCommandingEvent()
                        {
                            Index        = (uint)tap.Index,
                            RegisterType = tap.RegisterType,
                            Milliseconds = 0,
                            Value        = (uint)(flow / 100)
                        };
                        cmds.Add(command2);
                    }
                }
                commands.Add(cmds);
            }
        }
Esempio n. 3
0
        private void TurnOffPumps()
        {
            var commanding = new CommandingProxy(ConfigurationManager.AppSettings["Command"]);
            var proxy      = new SF.Common.Proxies.ScadaExportProxy(ConfigurationManager.AppSettings["Scada"]);
            var points     = proxy.GetData().GetAwaiter().GetResult();

            if (points == null)
            {
                return;
            }
            if (points.ContainsKey("Breaker_21Status"))
            {
                var breaker1 = points["Breaker_21Status"] as DiscretePoint;
                var command1 = new ScadaCommandingEvent()
                {
                    Index        = (uint)breaker1.Index,
                    RegisterType = breaker1.RegisterType,
                    Value        = 0,
                    Milliseconds = 0
                };
                commanding.Commmand(new SCADA.Common.ScadaCommand(command1.RegisterType, command1.Index, command1.Value, command1.Milliseconds)).GetAwaiter().GetResult();
            }

            if (points.ContainsKey("Breaker_22Status"))
            {
                var breaker2 = points["Breaker_22Status"] as DiscretePoint;
                var command2 = new ScadaCommandingEvent()
                {
                    Index        = (uint)breaker2.Index,
                    RegisterType = breaker2.RegisterType,
                    Value        = 0,
                    Milliseconds = 0
                };
                commanding.Commmand(new SCADA.Common.ScadaCommand(command2.RegisterType, command2.Index, command2.Value, command2.Milliseconds)).GetAwaiter().GetResult();
            }

            if (points.ContainsKey("Breaker_23Status"))
            {
                var breaker3 = points["Breaker_23Status"] as DiscretePoint;
                var command3 = new ScadaCommandingEvent()
                {
                    Index        = (uint)breaker3.Index,
                    RegisterType = breaker3.RegisterType,
                    Value        = 0,
                    Milliseconds = 0
                };
                commanding.Commmand(new SCADA.Common.ScadaCommand(command3.RegisterType, command3.Index, command3.Value, command3.Milliseconds)).GetAwaiter().GetResult();
            }
        }
Esempio n. 4
0
        private void TurnOffPumps()
        {
            ScadaExportProxy proxy = new ScadaExportProxy();
            var points             = proxy.GetData();

            if (points.ContainsKey("Breaker_21Status"))
            {
                var breaker1 = points["Breaker_21Status"] as DiscretePoint;
                var command1 = new ScadaCommandingEvent()
                {
                    Index        = (uint)breaker1.Index,
                    RegisterType = breaker1.RegisterType,
                    Value        = 0,
                    Milliseconds = 0
                };
                endpoint.Publish(command1).ConfigureAwait(false);
            }

            if (points.ContainsKey("Breaker_22Status"))
            {
                var breaker2 = points["Breaker_22Status"] as DiscretePoint;
                var command2 = new ScadaCommandingEvent()
                {
                    Index        = (uint)breaker2.Index,
                    RegisterType = breaker2.RegisterType,
                    Value        = 0,
                    Milliseconds = 0
                };

                endpoint.Publish(command2).ConfigureAwait(false);
            }

            if (points.ContainsKey("Breaker_23Status"))
            {
                var breaker3 = points["Breaker_23Status"] as DiscretePoint;
                var command3 = new ScadaCommandingEvent()
                {
                    Index        = (uint)breaker3.Index,
                    RegisterType = breaker3.RegisterType,
                    Value        = 0,
                    Milliseconds = 0
                };
                endpoint.Publish(command3).ConfigureAwait(false);
            }
        }
Esempio n. 5
0
        public void UpdateEvent(object sender, ScadaCommandingEvent message)
        {
            if (message.RegisterType == RegisterType.BINARY_INPUT)
            {
                calculationEngineCommands = new ConcurrentBag <CeCommand>();
                return;
            }

            calculationEngineCommands.Add(new CeCommand
            {
                RegisterType = message.RegisterType,
                Index        = message.Index,
                Value        = message.Value,
                Milliseconds = message.Milliseconds,
                MillisecondsPassedSinceLastPoll = 0,
                Remove = false
            });
        }
Esempio n. 6
0
        private void OffSequence()
        {
            var commanding   = new CommandingProxy(ConfigurationManager.AppSettings["Command"]);
            var clearCommand = new ScadaCommandingEvent()
            {
                Index        = 1,
                Milliseconds = 1,
                RegisterType = RegisterType.BINARY_INPUT,
                Value        = 0
            };

            commanding.Commmand(new SCADA.Common.ScadaCommand(clearCommand.RegisterType, clearCommand.Index, clearCommand.Value, clearCommand.Milliseconds)).GetAwaiter().GetResult();

            var proxy  = new SF.Common.Proxies.ScadaExportProxy(ConfigurationManager.AppSettings["Scada"]);
            var points = proxy.GetData().GetAwaiter().GetResult();

            if (points == null)
            {
                return;
            }
            var commands = new List <ScadaCommandingEvent>();

            foreach (var item in points)
            {
                if (item.Key.Contains("Breaker_21Status") || item.Key.Contains("Breaker_22Status") || item.Key.Contains("Breaker_23Status") || item.Key.Contains("Discrete_Tap"))
                {
                    var command = new ScadaCommandingEvent()
                    {
                        Index        = (uint)item.Value.Index,
                        RegisterType = item.Value.RegisterType,
                        Milliseconds = 0,
                        Value        = 0
                    };
                    commands.Add(command);
                }
            }

            foreach (var item in commands)
            {
                commanding.Commmand(new SCADA.Common.ScadaCommand(item.RegisterType, item.Index, item.Value, item.Milliseconds)).GetAwaiter().GetResult();
            }
        }
Esempio n. 7
0
        private void UpdateNode(TransformerFormData formData)
        {
            if (formData.Index is null || formData.RegisterType is null)
            {
                Debug.Fail("Index or RegisterType in form is NULL");
                return;
            }
            ;

            var endpoint = EndPointCreator.Instance().Get();
            var command  = new ScadaCommandingEvent()
            {
                Index        = (uint)formData.Index,
                RegisterType = formData.RegisterType.Value,
                Milliseconds = 0,
                Value        = (uint)formData.Value
            };

            endpoint.Publish(command).ConfigureAwait(false);
        }
Esempio n. 8
0
        private void OffSequence()
        {
            var clearCommand = new ScadaCommandingEvent()
            {
                Index        = 1,
                Milliseconds = 1,
                RegisterType = RegisterType.BINARY_INPUT,
                Value        = 0
            };

            endpoint.Publish(clearCommand).ConfigureAwait(false).GetAwaiter().GetResult();

            var proxy    = new ScadaExportProxy();
            var points   = proxy.GetData();
            var commands = new List <ScadaCommandingEvent>();

            foreach (var item in points)
            {
                if (item.Key.Contains("Breaker_21Status") || item.Key.Contains("Breaker_22Status") || item.Key.Contains("Breaker_23Status") || item.Key.Contains("Discrete_Tap"))
                {
                    var command = new ScadaCommandingEvent()
                    {
                        Index        = (uint)item.Value.Index,
                        RegisterType = item.Value.RegisterType,
                        Milliseconds = 0,
                        Value        = 0
                    };
                    commands.Add(command);
                }
            }

            foreach (var item in commands)
            {
                endpoint.Publish(item).ConfigureAwait(false);
            }
        }
        private static void SendMessageToScada(ScadaCommandingEvent commandingEvent)
        {
            var proxy = new CommandingProxy(ConfigurationManager.AppSettings["Command"]);

            proxy.Commmand(new ScadaCommand(commandingEvent.RegisterType, commandingEvent.Index, commandingEvent.Value, 0)).ConfigureAwait(false);
        }