public MeasuringLoader(DeviceContext deviceContext, MeasuringSubscriptionSet measuringSubscriptionSet, IMeasuringMonitor measuringMonitor, RelayCommand dependentCommand, FragmentOptionToggleCommandViewModel readCycleCommand) { _deviceContext = deviceContext; _measuringSubscriptionSet = measuringSubscriptionSet; _measuringMonitor = measuringMonitor; this._dependentCommand = dependentCommand; _readCycleCommand = readCycleCommand; }
public IMeasuringGroupViewModel CreateMeasuringGroupViewModel(IMeasuringGroup measuringGroup, MeasuringSubscriptionSet measuringSubscriptionSet, DeviceContext deviceContext) { MeasuringGroupViewModel measuringGroupViewModel = _container.Resolve <IMeasuringGroupViewModel>() as MeasuringGroupViewModel; measuringGroupViewModel.Header = measuringGroup.Name; measuringGroupViewModel.MeasuringElementViewModels.Clear(); foreach (var groupOfElements in measuringGroup.PresentationSettings.GroupsOfElements) { measuringGroupViewModel.PresentationMeasuringElements.Add( new PresentationMeasuringElementViewModel(groupOfElements.PositioningInfo, new PresentationGroupViewModel(groupOfElements.Name))); } foreach (IMeasuringElement measuringElement in measuringGroup.MeasuringElements) { var elementViewModel = _measuringElementViewModelFactory.CreateMeasuringElementViewModel(measuringElement, measuringGroup.Name); var positioningInfo = measuringGroup.PresentationSettings.Elements.FirstOrDefault(info => info.RelatedMeasuringElementId == measuringElement.Id); if (positioningInfo != null) { measuringGroupViewModel.PresentationMeasuringElements.Add( new PresentationMeasuringElementViewModel(positioningInfo.PositioningInfo, elementViewModel)); } _measuringMemorySubscriptionFactory.AddSubscription(measuringSubscriptionSet, elementViewModel, measuringElement, measuringGroup.Name, deviceContext); measuringGroupViewModel.MeasuringElementViewModels.Add(elementViewModel); if (measuringElement is IControlSignal controlSignal) { var vm = elementViewModel as IControlSignalViewModel; vm.WriteValueCommand = new WriteDiscretCommand(deviceContext, controlSignal, vm).CreateCommand(); } if (measuringElement is IDateTimeMeasuringElement dateTimeMeasuringElement) { var vm = elementViewModel as IDateTimeMeasuringElementViewModel; vm.SetTimeCommand = new WriteDateTimeCommand(vm, dateTimeMeasuringElement, deviceContext, false) .CreateCommand(); vm.SetSystemDateTimeCommand = new WriteDateTimeCommand(vm, dateTimeMeasuringElement, deviceContext, true).CreateCommand(); } } return(measuringGroupViewModel); }
public void AddSubscription(MeasuringSubscriptionSet measuringSubscriptionSet, IMeasuringElementViewModel measuringElementViewModel, IMeasuringElement measuringElement, string groupName, DeviceContext deviceContext) { if (measuringElementViewModel is IDiscretMeasuringElementViewModel discretMeasuringElement) { measuringSubscriptionSet.DiscreteSubscriptions.Add(CreateDiscreteSubscription(discretMeasuringElement, measuringElement, groupName, deviceContext)); } else if (measuringElementViewModel is IAnalogMeasuringElementViewModel analogMeasuringElement) { measuringSubscriptionSet.AnalogSubscriptions.Add(CreateAnalogSubscription(analogMeasuringElement, measuringElement, groupName, deviceContext)); } else if (measuringElementViewModel is IDateTimeMeasuringElementViewModel dateTimeMeasuringElementViewModel) { measuringSubscriptionSet.DateTimeSubscriptions.Add( CreateDateTimeSubscription(dateTimeMeasuringElementViewModel, measuringElement, groupName, deviceContext)); } }