public EntireNetworkViewModel() { _ders = new ObservableCollection <TableSMItem>(); _roots = new List <NetworkRootViewModel>(); _roots.Add(new NetworkRootViewModel(_ders)); ShowCharts = Visibility.Collapsed; ShowForecast = Visibility.Collapsed; ShowData = Visibility.Visible; ShowTableCommand = new RelayCommand(() => ExecuteShowTableCommand()); ShowChartCommand = new RelayCommand(() => ExecuteShowChartCommand()); FilterCommand = new RelayCommand(() => ExecuteFilterCommand()); SearchCommand = new RelayCommand(() => ExecuteSearchCommand()); //ShowForecastCommand = new RelayCommand(() => ExecuteShowForecastCommand()); EventSystem.Subscribe <string>(ShowTable); EventSystem.Subscribe <long>(ObjectSelected); EventSystem.Subscribe <DateTime>(DisplayLastDateTime); EventSystem.Subscribe <ObservableCollection <TableSMItem> >(DisplayPowerAndFlexibility); EventSystem.Subscribe <TableSMItem>(DisplayPowerAndFlexibility); EventSystem.Subscribe <ForecastObjData>(ForecastForObject); WeatherWidgetVisible = Visibility.Hidden; dersToSend = null; derToSend = null; TypesForFilter = new List <string>(); TypesForFilter.Add("Sun"); TypesForFilter.Add("Wind"); FilterButton = "Filter"; SearchButton = "Search"; IsSearchEnabled = true; IsFilterEnabled = true; selectedGid = -1; ConnectToCalculationEngine(); }
private void ExecuteActivePowerCommand() { _ders.Clear(); var allDers = rdAdapter.GetDERs(_region.GlobalId); foreach (SynchronousMachine der in allDers) { TableSMItem item = new TableSMItem(); item = (TableSMItem)CacheReceiver.Instance.TableItemList.Where(o => o.Gid.Equals(der.GlobalId)).FirstOrDefault(); if (item == null) { item = new TableSMItem(); item.CurrentP = 0; item.TimeStamp = new DateTime(); item.CurrentQ = 0; item.PDecrease = 0; item.PIncrease = 0; item.QDecrease = 0; item.QIncrease = 0; } item.Der = der; _ders.Add(item); } base.IsSelected = true; EventSystem.Publish <ObservableCollection <TableSMItem> >(_ders); EventSystem.Publish <ForecastObjData>(new ForecastObjData() { Gid = _region.GlobalId, Power = true, IsGroup = true }); }
private void DisplayPowerAndFlexibility(ObservableCollection <TableSMItem> DERS, TableSMItem _der) { this.DERS = DERS; this._der = _der; new Thread(() => { if (DERS != null) { float sumActualPower = 0; float sumIncrease = 0; float sumDecrease = 0; foreach (TableSMItem der in DERS) { if (powerType == PowerType.Active) { sumActualPower += der.CurrentP; sumIncrease += der.PIncrease; sumDecrease += der.PDecrease; } else { sumActualPower += der.CurrentQ; sumIncrease += der.QIncrease; sumDecrease += der.QDecrease; } } PowerOfObject = Math.Round(sumActualPower, 2).ToString(); IncreaseForObject = Math.Round(sumIncrease - sumActualPower, 2).ToString(); DecreaseForObject = Math.Abs(Math.Round(sumActualPower - sumDecrease, 2)).ToString(); } if (_der != null) { if (powerType == PowerType.Active) { PowerOfObject = Math.Round(_der.CurrentP, 2).ToString(); IncreaseForObject = Math.Round(_der.PIncrease - _der.CurrentP, 2).ToString(); DecreaseForObject = Math.Abs(Math.Round(_der.CurrentP - _der.PDecrease, 2)).ToString(); } else { PowerOfObject = Math.Round(_der.CurrentQ, 2).ToString(); IncreaseForObject = Math.Round(_der.QIncrease - _der.CurrentQ, 2).ToString(); DecreaseForObject = Math.Abs(Math.Round(_der.CurrentQ - _der.QDecrease, 2)).ToString(); } } }).Start(); }
protected override void LoadDERS() { EventSystem.Publish <long>(-1); _ders.Clear(); foreach (SynchronousMachine der in rdAdapter.GetAllDERs()) { TableSMItem item = new TableSMItem(); item = (TableSMItem)CacheReceiver.Instance.TableItemList.Where(o => o.Gid.Equals(der.GlobalId)).FirstOrDefault(); if (item == null) { item = new TableSMItem(); item.CurrentP = 0; item.TimeStamp = new DateTime(); item.CurrentQ = 0; } item.Der = der; _ders.Add(item); } }
private void ExecuteReactivePowerCommand() { TableSMItem item = new TableSMItem(); item = (TableSMItem)CacheReceiver.Instance.TableItemList.Where(o => o.Gid.Equals(_synchronousMachine.GlobalId)).FirstOrDefault(); if (item == null) { item = new TableSMItem(); item.CurrentP = 0; item.TimeStamp = new DateTime(); item.CurrentQ = 0; item.PDecrease = 0; item.PIncrease = 0; item.QDecrease = 0; item.QIncrease = 0; } item.Der = _synchronousMachine; base.IsSelected = true; EventSystem.Publish <TableSMItem>(item); EventSystem.Publish <ForecastObjData>(new ForecastObjData() { Gid = _synchronousMachine.GlobalId, Power = false, IsGroup = false }); }
private void DisplayPowerAndFlexibility(TableSMItem _forecastder) { derToSend = _forecastder; dersToSend = null; }
private void DisplayPowerAndFlexibility(ObservableCollection <TableSMItem> _forecastders) { dersToSend = _forecastders; derToSend = null; }
public GenerationForecastViewModel(long selectedObjectGid, bool _active, bool isGroup, ObservableCollection <TableSMItem> _forecastDERS, TableSMItem _forecastDER) { #region Chart initialize ForecastSeries_Y = new SeriesCollection(); ForecastSeries_Y.Add( new LineSeries { Title = "Max Increase", Values = new ChartValues <float>(), PointGeometry = DefaultGeometries.Circle, Opacity = 0, Stroke = Brushes.Green, Fill = new SolidColorBrush(Color.FromArgb(100, 0, 255, 0)), LineSmoothness = 1 }); ForecastSeries_Y.Add( new LineSeries { Title = "Actual Power", Values = new ChartValues <float>(), PointGeometry = DefaultGeometries.Circle, Opacity = 0, Stroke = Brushes.Yellow, Fill = new SolidColorBrush(Color.FromArgb(190, 255, 0, 0)), LineSmoothness = 1 }); ForecastSeries_Y.Add( new LineSeries { Title = "Max Decrease", Values = new ChartValues <float>(), PointGeometry = DefaultGeometries.Circle, Opacity = 0, Stroke = Brushes.Red, Fill = new SolidColorBrush((Color)ColorConverter.ConvertFromString("#282828")), LineSmoothness = 1 }); #endregion Chart initialize SelectedDER = selectedObjectGid; SelectedTime = 1; IsNominalChecked = true; active = _active; if (_active) { meteringUnit = "kW"; } else { meteringUnit = "kVAr"; } group = isGroup; InitGUIElements(); IncreaseCommandValue = new RelayCommand(() => IncreaseCommandValueExecute(), () => true); DecreaseCommandValue = new RelayCommand(() => DecreaseCommandValueExecute(), () => true); ExecuteSetpointCommand = new RelayCommand(() => ExecuteSetpointCommandExecute(), () => true); StopSetpointCommand = new RelayCommand(() => StopSetpointCommandExecute(), () => true); EventSystem.Subscribe <string>(NullifyCommand); DisplayPowerAndFlexibility(_forecastDERS, _forecastDER); LoadChartData(); SortedDictionary <long, float> commands = CommandProxy.Proxy.GetApplaiedCommands(SelectedDER, powerType); CommandTimeLineData(commands, SelectedDER + "commands.xml"); }