internal void Update(object sender, HistoryGraphicalEvent e) { App.Current.Dispatcher.Invoke((System.Action) delegate { Pump1X = new ObservableCollection <DateTime>(); Pump1Yc = new ObservableCollection <float>(); foreach (var item in e.Graph.Pump1.XAxe) { Pump1X.Add(item); } foreach (var item in e.Graph.Pump1.YAxe) { Pump1Yc.Add(item); } Pump2X = new ObservableCollection <DateTime>(); Pump2Yc = new ObservableCollection <float>(); foreach (var item in e.Graph.Pump2.XAxe) { Pump2X.Add(item); } foreach (var item in e.Graph.Pump2.YAxe) { Pump2Yc.Add(item); } Pump3X = new ObservableCollection <DateTime>(); Pump3Yc = new ObservableCollection <float>(); foreach (var item in e.Graph.Pump3.XAxe) { Pump3X.Add(item); } foreach (var item in e.Graph.Pump3.YAxe) { Pump3Yc.Add(item); } FluidX = new ObservableCollection <DateTime>(); FluidYc = new ObservableCollection <float>(); foreach (var item in e.Graph.FluidLevel.XAxe) { FluidX.Add(item); } foreach (var item in e.Graph.FluidLevel.YAxe) { FluidYc.Add(item); } DrawCharts(); }); }
private void DoWork() { while (executionFlag) { DomUpdateEvent dom = new DomUpdateEvent() { DomData = ScadaProxyFactory.Instance().DOMProxy().GetAll().ToSwitchingEquipment() }; HistoryUpdateEvent history = new HistoryUpdateEvent() { History = ScadaProxyFactory.Instance().HistoryProxy().GetAll() }; HistoryGraphicalEvent graph = new HistoryGraphicalEvent() { Graph = ScadaProxyFactory.Instance().HistoryProxy().GetGraph() }; ScadaUpdateEvent ev = new ScadaUpdateEvent() { Points = new List <SCADA.Common.DataModel.ScadaPointDto>() }; var all = ScadaProxyFactory.Instance().ScadaStorageProxy().GetModel().Values.ToList(); var analogs = all.Where(x => x.RegisterType == RegisterType.ANALOG_INPUT || x.RegisterType == RegisterType.ANALOG_OUTPUT).Cast <AnalogPoint>().ToList(); var binaries = all.Where(x => x.RegisterType == RegisterType.BINARY_INPUT || x.RegisterType == RegisterType.BINARY_OUTPUT).Cast <DiscretePoint>().ToList(); ev.Points.AddRange(Mapper.MapCollection <AnalogPoint, ScadaPointDto>(analogs)); ev.Points.AddRange(Mapper.MapCollection <DiscretePoint, ScadaPointDto>(binaries)); if (ev.Points.Count > 0) { endpoint.Publish(ev).ConfigureAwait(false); } if (dom.DomData.Count > 0) { endpoint.Publish(dom).ConfigureAwait(false); } if (history.History.Count > 0) { endpoint.Publish(history).ConfigureAwait(false); } endpoint.Publish(graph).ConfigureAwait(false); Thread.Sleep(GetConfigTime()); } }
public Task Handle(HistoryGraphicalEvent message, IMessageHandlerContext context) { graphUpdate.Invoke(this, message); return(Task.CompletedTask); }
private void Update() { var domService = new DomServiceProxy(ConfigurationReader.ReadValue(Context, "Settings", "Dom")); var historyService = new HistoryServiceProxy(ConfigurationReader.ReadValue(Context, "Settings", "History")); var storageService = new ScadaStorageProxy(ConfigurationReader.ReadValue(Context, "Settings", "Storage")); var domData = domService.GetAll().GetAwaiter().GetResult(); DomUpdateEvent dom = new DomUpdateEvent() { DomData = domData.ToSwitchingEquipment() }; HistoryUpdateEvent history = new HistoryUpdateEvent() { History = historyService.GetAll().GetAwaiter().GetResult() }; HistoryGraphicalEvent graph = new HistoryGraphicalEvent() { Graph = historyService.GetGraph().GetAwaiter().GetResult() }; ScadaUpdateEvent ev = new ScadaUpdateEvent() { Points = new List <SCADA.Common.DataModel.ScadaPointDto>() }; var all = (storageService.GetModel().GetAwaiter().GetResult()).Values.ToList(); var analogs = all.Where(x => x.RegisterType == RegisterType.ANALOG_INPUT || x.RegisterType == RegisterType.ANALOG_OUTPUT).Cast <AnalogPoint>().ToList(); var binaries = all.Where(x => x.RegisterType == RegisterType.BINARY_INPUT || x.RegisterType == RegisterType.BINARY_OUTPUT).Cast <DiscretePoint>().ToList(); ev.Points.AddRange(Mapper.MapCollection <AnalogPoint, ScadaPointDto>(analogs)); ev.Points.AddRange(Mapper.MapCollection <DiscretePoint, ScadaPointDto>(binaries)); Subscription subs = new Subscription(); Publisher publisher = new Publisher(subs.Topic, subs.ConnectionString); if (ev.Points.Count > 0) { publisher.SendMessage(new PubSubMessage() { ContentType = ContentType.SCADA_UPDATE, Sender = Sender.SCADA, Content = JsonTool.Serialize <ScadaUpdateEvent>(ev) }).ConfigureAwait(false); } if (dom.DomData.Count > 0) { publisher.SendMessage(new PubSubMessage() { ContentType = ContentType.SCADA_DOM, Sender = Sender.SCADA, Content = JsonTool.Serialize <DomUpdateEvent>(dom) }).ConfigureAwait(false); } if (history.History.Count > 0) { publisher.SendMessage(new PubSubMessage() { ContentType = ContentType.SCADA_HISTORY, Sender = Sender.SCADA, Content = JsonTool.Serialize <HistoryUpdateEvent>(history) }).ConfigureAwait(false); } publisher.SendMessage(new PubSubMessage() { ContentType = ContentType.SCADA_HISTORY_GRAPH, Sender = Sender.SCADA, Content = JsonTool.Serialize <HistoryGraphicalEvent>(graph) }).ConfigureAwait(false); }