public void Configure(IConfiguration config)
        {
            m_settings = new RandomDataSettings();
            config.Bind(m_settings);
            m_pmu = new AdaptDevice(m_settings.PMUName);

            m_random = new Random();
        }
示例#2
0
        /// <summary>
        /// Opens the Select Device Window
        /// </summary>
        private void SelectDevice(Mapping mapping)
        {
            SelectSignal deviceSelection = new SelectSignal();
            SelectSignalMappingVM <AdaptDevice> deviceSelectionVM = new SelectSignalMappingVM <AdaptDevice>((d) => {
                mapping.SourceDeviceID   = d.ID;
                mapping.SourceDeviceName = d.Name;

                mapping.ChannelMappings = new Dictionary <int, string>();

                // Validate Signals on that device
                List <TemplateInputSignal> targetSignals;
                using (AdoDataConnection connection = new AdoDataConnection(ConnectionString, DataProviderString))
                    targetSignals = new TableOperations <TemplateInputSignal>(connection)
                                    .QueryRecordsWhere("DeviceID = {0}", mapping.TargetDeviceID).ToList();

                List <AdaptSignal> sourceSignals = AdaptSignal.Get(DataSource, DataSourceModel.ID, ConnectionString, DataProviderString)
                                                   .Where(s => s.Device == d.ID).ToList();

                mapping.IsValid = sourceSignals.Count() >= targetSignals.Count();

                for (int i = 0; i < targetSignals.Count(); i++)
                {
                    int index = sourceSignals.FindIndex(item => item.Phase == targetSignals[i].Phase && item.Type == targetSignals[i].MeasurmentType);
                    if (index == -1)
                    {
                        mapping.ChannelMappings.Add(targetSignals[i].ID, "");
                    }
                    else
                    {
                        mapping.ChannelMappings.Add(targetSignals[i].ID, sourceSignals[index].ID);
                    }
                }
                mapping.IsValid    = !mapping.ChannelMappings.Any(item => string.IsNullOrEmpty(item.Value));
                mapping.IsSelected = true;
                DeviceMappings     = new ObservableCollection <Mapping>(DeviceMappings);
                OnPropertyChanged(nameof(DeviceMappings));
                OnPropertyChanged(nameof(Valid));
            }, (d, s) => d.Name.ToLower().Contains(s.ToLower()), (d) => d.Name, AdaptDevice.Get(DataSource, DataSourceModel.ID, ConnectionString, DataProviderString));

            deviceSelection.DataContext = deviceSelectionVM;
            deviceSelection.Show();
        }