private void DataAcquisition() { while (true) { LogHelper.Log(LogTarget.File, LogService.SCADACrunching, " INFO - SCADACrunching.cs - Data acquisition, new measurement ciclus."); timestamp = DateTime.Now; lock (SCADAModel.Instance.Lock2PC) { foreach (var analogValue in scadaModel.AnalogValues) { var value = client.ReadHoldingRegisters2(analogValue.Address, 1); SynchronousMachine syncMachine = adapter.GetSyncMachineByGid(analogValue.SynchronousMachine); if (syncMachine == null) { LogHelper.Log(LogTarget.File, LogService.SCADACrunching, " ERROR - SCADACrunching.cs - Data acquisition, Synchronous machine is not assigned to analog value."); throw new Exception("Synchronous machine is not assigned to analog value."); } analogValue.Value = RawValuesConverter.ConvertRange(value[0], RAW_MIN, RAW_MAX, EGU_MIN, EGU_MAX); analogValue.Timestamp = timestamp.Ticks; } SCADASubscriber.Instance.NotifySubscribers(DMSType.ANALOGVALUE); } Thread.Sleep(3000); } }
public HistoryDataChartViewModel(long selectedObjectGid) { //New active chart data HistorianDataActive_Y = new SeriesCollection(); HistorianDataActive_Y.Add( new LineSeries { Values = new ChartValues <float>(), LineSmoothness = 1, Stroke = Brushes.Blue } ); //New reactive chart data HistorianDataReactive_Y = new SeriesCollection(); HistorianDataReactive_Y.Add( new LineSeries { Values = new ChartValues <float>(), LineSmoothness = 1, Stroke = Brushes.Red } ); InitGUIElements(); SelectedDER = selectedObjectGid; ShowChartCommand = new RelayCommand(() => ShowChartCommandExecute(), () => true); if (selectedObjectGid == -1) { SelectedObject = "Entire network"; } else { switch (((DMSType)ModelCodeHelper.ExtractTypeFromGlobalId(selectedObjectGid))) { case DMSType.REGION: SelectedObject = rdAdapter.GetRegionByGid(selectedObjectGid).Name; break; case DMSType.SUBREGION: SelectedObject = rdAdapter.GetSubRegionByGid(selectedObjectGid).Name; break; case DMSType.SUBSTATION: SelectedObject = rdAdapter.GetSubstation(selectedObjectGid).Name; break; case DMSType.SYNCMACHINE: SelectedObject = rdAdapter.GetSyncMachineByGid(selectedObjectGid).Name; break; } } Year = DateTime.Now.Year; Month = Months[DateTime.Now.Month - 1]; }