Пример #1
0
        public EngineSettingsViewModel(ICommandSenderHost commandSenderHost, ITargetAddressHost targerAddressHost,
                                       IUserInterfaceRoot userInterfaceRoot, ILogger logger, IWindowSystem windowSystem,
                                       INotifySendingEnabled sendingEnabledControl)
        {
            _commandSenderHost     = commandSenderHost;
            _targerAddressHost     = targerAddressHost;
            _userInterfaceRoot     = userInterfaceRoot;
            _logger                = logger;
            _windowSystem          = windowSystem;
            _sendingEnabledControl = sendingEnabledControl;

            _readSettingsCommand  = new RelayCommand(ReadSettings, () => _sendingEnabledControl.IsSendingEnabled);
            _writeSettingsCommand = new RelayCommand(WriteSettings, () => _sendingEnabledControl.IsSendingEnabled);

            ImportSettingsCommand = new RelayCommand(ImportSettings);
            ExportSettingsCommand = new RelayCommand(ExportSettings);


            _inom   = null;
            _nnom   = null;
            _nmax   = null;
            _pnom   = null;
            _cosFi  = null;
            _eff    = null;
            _mass   = null;
            _mmM    = null;
            _height = null;

            _i2Tmax      = null;
            _icontinious = null;
            _zeroF       = null;

            _sendingEnabledControl.SendingEnabledChanged += SendingEnabledControlOnSendingEnabledChanged;
        }
        public BsEthernetNominalsViewModel(ICommandSenderHost commandSenderHost, ITargetAddressHost targerAddressHost,
                                           IUserInterfaceRoot userInterfaceRoot, ILogger logger, IWindowSystem windowSystem,
                                           INotifySendingEnabled sendingEnabledControl)
        {
            _commandSenderHost     = commandSenderHost;
            _targerAddressHost     = targerAddressHost;
            _userInterfaceRoot     = userInterfaceRoot;
            _logger                = logger;
            _windowSystem          = windowSystem;
            _sendingEnabledControl = sendingEnabledControl;

            _readNominalsCommand  = new RelayCommand(ReadNominals, () => _sendingEnabledControl.IsSendingEnabled);
            _writeNominalsCommand = new RelayCommand(WriteNominals, () => _sendingEnabledControl.IsSendingEnabled);

            ImportNominalsCommand = new RelayCommand(ImportNominals);
            ExportNominalsCommand = new RelayCommand(ExportNominals);

            _ratedRotationFriquencyCalculated = 0;
            _ratedPwmModulationCoefficient    = 0;
            _ratedMomentumCurrentSetting      = 0;
            _ratedRadiatorTemperature         = 0;
            _ratedDcBusVoltage = 0;
            _ratedAllPhasesCurrentAmplitudeEnvelopeCurve = 0;
            _ratedRegulatorCurrentDoutput          = 0;
            _ratedRegulatorCurrentQoutput          = 0;
            _ratedFriquencyIntensitySetpointOutput = 0;
            _ratedFlowSetting    = 0;
            _ratedMeasuredMoment = 0;
            _ratedSpeedRegulatorOutputOrMomentSetting = 0;
            _ratedMeasuredFlow             = 0;
            _ratedSettingExcitationCurrent = 0;

            _sendingEnabledControl.SendingEnabledChanged += SendingEnabledControlOnSendingEnabledChanged;
        }
Пример #3
0
        public AinCommandAndCommonTelemetryViewModel(
            AinCommandAndMinimalCommonTelemetryViewModel ainCommandAndMinimalCommonTelemetryViewModel,
            TelemetryCommonViewModel commonTelemetryVm, ICommandSenderHost commandSenderHost,
            ITargetAddressHost targerAddressHost, IUserInterfaceRoot uiRoot, INotifySendingEnabled notifySendingEnabled)
        {
            _commandSenderHost    = commandSenderHost;
            _targerAddressHost    = targerAddressHost;
            _uiRoot               = uiRoot;
            _notifySendingEnabled = notifySendingEnabled;
            AinCommandAndMinimalCommonTelemetryVm = ainCommandAndMinimalCommonTelemetryViewModel;
            CommonTelemetryVm = commonTelemetryVm;

            _syncCancel = new object();

            _cancel = !_notifySendingEnabled.IsSendingEnabled; // TODO: possible state loss between lines
            _notifySendingEnabled.SendingEnabledChanged += isSendingEnabled =>
            {
                Cancel = !isSendingEnabled;
            }; // TODO: unsubscribe on exit

            Ain1LinkError = null;
            Ain2LinkError = null;
            Ain3LinkError = null;
            _errorCounts  = 0;
        }
        public BsEthernetSettingsViewModel(ICommandSenderHost commandSenderHost, ITargetAddressHost targerAddressHost,
                                           IUserInterfaceRoot userInterfaceRoot, ILogger logger, IWindowSystem windowSystem,
                                           INotifySendingEnabled sendingEnabledControl)
        {
            _commandSenderHost     = commandSenderHost;
            _targerAddressHost     = targerAddressHost;
            _userInterfaceRoot     = userInterfaceRoot;
            _logger                = logger;
            _windowSystem          = windowSystem;
            _sendingEnabledControl = sendingEnabledControl;

            _ipAddress     = string.Empty;
            _mask          = string.Empty;
            _gateway       = string.Empty;
            _dnsServer     = string.Empty;
            _macAddress    = string.Empty;
            _modbusAddress = 1;
            _driveNumber   = 0;
            _addressCan    = 0;
            _ftRoles       = new List <FtRoleViewModel>
            {
                new FtRoleViewModel(FriquencyTransformerRole.Single),
                new FtRoleViewModel(FriquencyTransformerRole.Master),
                new FtRoleViewModel(FriquencyTransformerRole.Slave)
            };
            _selectedFtRole = _ftRoles.First();

            _readSettingsCommand  = new RelayCommand(ReadSettings, () => _sendingEnabledControl.IsSendingEnabled);
            _writeSettingsCommand = new RelayCommand(WriteSettings, () => _sendingEnabledControl.IsSendingEnabled);

            ImportSettingCommand = new RelayCommand(ImportSettings);
            ExportSettingCommand = new RelayCommand(ExportSettings);

            _sendingEnabledControl.SendingEnabledChanged += SendingEnabledControlOnSendingEnabledChanged;
        }
Пример #5
0
 public AutoTimeSetter(ICommandSenderHost commandSenderHost, INotifySendingEnabled notifySendingEnabled,
                       ITargetAddressHost targetAddressHost, ILogger logger)
 {
     _commandSenderHost    = commandSenderHost;
     _notifySendingEnabled = notifySendingEnabled;
     _targetAddressHost    = targetAddressHost;
     _logger = logger;
     _notifySendingEnabled.SendingEnabledChanged += NotifySendingEnabledOnSendingEnabledChanged;
 }
        public AinSettingsStorageThreadSafe(IAinsCounter ainsCounter, INotifySendingEnabled sendingEnabledMonitor)
        {
            _ainsCounter           = ainsCounter;
            _sendingEnabledMonitor = sendingEnabledMonitor;
            _ainSettingsSync       = new object();
            _ainsSettings          = new List <IAinSettings> {
                null, null, null
            };

            _ainsCounter.AinsCountInSystemHasBeenChanged += AinsCounterOnAinsCountInSystemHasBeenChanged;
            _sendingEnabledMonitor.SendingEnabledChanged += SendingEnabledMonitorOnSendingEnabledChanged;
        }
Пример #7
0
        public ArchiveViewModel(ICommandSenderHost commandSenderHost, ITargetAddressHost targerAddressHost,
                                IUserInterfaceRoot userInterfaceRoot, ILogger logger, INotifySendingEnabled sendingEnabledControl,
                                byte zeroBasedArchiveNumber)
        {
            _commandSenderHost     = commandSenderHost;
            _targerAddressHost     = targerAddressHost;
            _userInterfaceRoot     = userInterfaceRoot;
            _logger                = logger;
            _sendingEnabledControl = sendingEnabledControl;

            _zeroBasedArchiveNumber = zeroBasedArchiveNumber;

            _readArchive = new RelayCommand(DoReadArchive, () => _sendingEnabledControl.IsSendingEnabled);

            _sendingEnabledControl.SendingEnabledChanged += SendingEnabledControlOnSendingEnabledChanged;
        }
        public EngineAutoSetupViewModel(TableViewModel leftTable, TableViewModel rightTable,
                                        INotifySendingEnabled notifySendingEnabled,
                                        IAinSettingsReader ainSettingsReader, IAinSettingsReadNotify ainSettingsReadNotify,
                                        IAinSettingsWriter ainSettingsWriter,
                                        IUserInterfaceRoot uiRoot, ILogger logger, ICommandSenderHost commandSenderHost,
                                        ITargetAddressHost targetAddressHost, ReadCycleModel bsEthernetReadCycleModel)
        {
            LeftTable              = leftTable;
            RightTable             = rightTable;
            _notifySendingEnabled  = notifySendingEnabled;
            _ainSettingsReader     = ainSettingsReader;
            _ainSettingsReadNotify = ainSettingsReadNotify;
            _ainSettingsWriter     = ainSettingsWriter;
            _uiRoot                   = uiRoot;
            _logger                   = logger;
            _commandSenderHost        = commandSenderHost;
            _targetAddressHost        = targetAddressHost;
            _bsEthernetReadCycleModel = bsEthernetReadCycleModel;

            _needToUpdateLeftTable = true; // on app start we have no settings:

            _isDcTestChecked       = false;
            _isTrTestChecked       = false;
            _isLeakTestChecked     = false;
            _isXxTestChecked       = false;
            _isInertionTestChecked = false;

            _lastLogLine     = null;
            _errorsCount     = 0;
            _lastLogLineText = string.Empty;

            _engineTestParams = new EngineTestParamsBuilderAciIdentifyIni("aci_identify.ini").Build();

            _launchAutoSetupCmd = new RelayCommand(LaunchAutoSetup, CheckLaunchAutoSetupPossible);
            _readTestResultCmd  = new RelayCommand(ReadTestResult, () => _notifySendingEnabled.IsSendingEnabled);

            _writeLeftTestResultCmd =
                new RelayCommand(WriteLeftTestResult, () => _notifySendingEnabled.IsSendingEnabled);
            _writeRightTestResultCmd =
                new RelayCommand(WriteRightTestResult, () => _notifySendingEnabled.IsSendingEnabled);
            // finally subscribing events:
            _notifySendingEnabled.SendingEnabledChanged    += NotifySendingEnabledOnSendingEnabledChanged;
            _ainSettingsReadNotify.AinSettingsReadComplete +=
                AinSettingsReadNotifyOnAinSettingsReadComplete; //.AinSettingsUpdated += AinSettingsStorageUpdatedNotifyOnAinSettingsUpdated;

            _bsEthernetReadCycleModel.AnotherLogLineWasReaded += BsEthernetReadCycleModelOnAnotherLogLineWasReaded;
        }
        public AutoSettingsReader(INotifySendingEnabled sendingEnabledNotifier,
                                  IAinsCounter ainsCounter, IAinSettingsReader ainSettingsReader,
                                  IAinSettingsStorageSettable ainSettingsStorageSettable,
                                  ILogger logger,
                                  IEngineSettingsReader engineSettingsReader, IEngineSettingsStorageSettable engineSettingsStorageSettable)
        {
            _ainsCounter                = ainsCounter;
            _ainSettingsReader          = ainSettingsReader;
            _ainSettingsStorageSettable = ainSettingsStorageSettable;
            _logger = logger;
            _engineSettingsReader          = engineSettingsReader;
            _engineSettingsStorageSettable = engineSettingsStorageSettable;
            _sendingEnabledNotifier        = sendingEnabledNotifier;

            _ainsCounter.AinsCountInSystemHasBeenChanged +=
                AinsCounterOnAinsCountInSystemHasBeenChanged;  // TODO: unsubscribe
            _sendingEnabledNotifier.SendingEnabledChanged +=
                SendingEnabledNotifierOnSendingEnabledChanged; // TODO: unsubscribe on app quit
        }
Пример #10
0
        public ReadCycleModel(ICommandSenderHost commandSenderHost,
                              ITargetAddressHost targetAddressHost, INotifySendingEnabled notifySendingEnabled)
        {
            _commandSenderHost    = commandSenderHost;
            _targetAddressHost    = targetAddressHost;
            _notifySendingEnabled = notifySendingEnabled;
            _notifySendingEnabled.SendingEnabledChanged += NotifySendingEnabledOnSendingEnabledChanged;

            _syncStop    = new object();
            _syncEnabled = new object();

            _isReadCycleEnabled      = true;
            _isStopFlagRaised        = false;
            _conditionsChangedWaiter = new ManualResetEventSlim(false);

            _backgroundThread = new Thread(ReadLogsCycle)
            {
                Priority = ThreadPriority.BelowNormal, IsBackground = true
            };
            _backgroundThread.Start();
        }
        public SystemControlViewModel(ICommandSenderHost commandSenderHost, ITargetAddressHost targerAddressHost,
                                      IUserInterfaceRoot userInterfaceRoot, ILogger logger, IWindowSystem windowSystem,
                                      INotifySendingEnabled sendingEnabledControl, ILinkContol linkControl,
                                      TelemetryCommonViewModel commonTelemetryVm)
        {
            _commandSenderHost     = commandSenderHost;
            _targerAddressHost     = targerAddressHost;
            _userInterfaceRoot     = userInterfaceRoot;
            _logger                = logger;
            _windowSystem          = windowSystem;
            _sendingEnabledControl = sendingEnabledControl;
            _linkControl           = linkControl;

            CommonTelemetryVm = commonTelemetryVm;

            _cmdSetBootloader = new RelayCommand(SetBootloader, () => _sendingEnabledControl.IsSendingEnabled);
            CmdRestart        = new RelayCommand(Restart, () => _sendingEnabledControl.IsSendingEnabled);
            CmdFlash          = new RelayCommand(Flash, () => _sendingEnabledControl.IsSendingEnabled);

            _sendingEnabledControl.SendingEnabledChanged += SendingEnabledControlOnSendingEnabledChanged;

            DebugParametersTrendVm = new DebugParametersTrendViewModel();
            DebugParametersVm      = new DebugParametersViewModel();
        }
Пример #12
0
        private void App_OnStartup(object sender, StartupEventArgs e)
        {
            var colorsForGraphics = new List <Color>
            {
                Colors.LawnGreen,
                Colors.Red,
                Colors.Cyan,
                Colors.Yellow,
                Colors.Coral,
                Colors.LightGreen,
                Colors.HotPink,
                Colors.DeepSkyBlue,
                Colors.Gold,
                Colors.Orange,
                Colors.Violet,
                Colors.White,
                Colors.Fuchsia,
                Colors.LightSkyBlue,
                Colors.LightGray,
                Colors.Khaki,
                Colors.SpringGreen,
                Colors.Tomato,
                Colors.LightCyan,
                Colors.Goldenrod,
                Colors.SlateBlue,
                Colors.Cornsilk,
                Colors.MediumPurple,
                Colors.RoyalBlue,
                Colors.MediumVioletRed,
                Colors.MediumTurquoise
            };

            _debugLogger = new RelayMultiLoggerWithStackTraceSimple(
                new RelayLoggerWithStackTrace(
                    new RelayActionLogger(s => { }),
                    new StackTraceFormatterWithNullSuport(" > ", "[NO STACK INFO]")),
                new RelayLoggerWithStackTrace(
                    new RelayLogger(
                        new ColoredConsoleLogger(ConsoleColor.Red, ConsoleColor.Black),
                        new ChainedFormatter(new List <ITextFormatter>
            {
                new ThreadFormatter(" > ", true, false, false),
                new DateTimeFormatter(" > ")
            })),
                    new StackTraceFormatterWithNullSuport(" > ", "[NO STACK INFO]")),
                new RelayLoggerWithStackTrace(
                    new RelayLogger(
                        new ColoredConsoleLogger(ConsoleColor.Yellow, ConsoleColor.Black),
                        new ChainedFormatter(new List <ITextFormatter>
            {
                new ThreadFormatter(" > ", true, false, false),
                new DateTimeFormatter(" > ")
            })),
                    new StackTraceFormatterWithNullSuport(" > ", "[NO STACK INFO]")),
                new RelayLoggerWithStackTrace(
                    new RelayLogger(
                        new ColoredConsoleLogger(ConsoleColor.DarkCyan, ConsoleColor.Black),
                        new ChainedFormatter(new List <ITextFormatter>
            {
                new ThreadFormatter(" > ", true, false, false),
                new DateTimeFormatter(" > ")
            })),
                    new StackTraceFormatterNothing()),
                new RelayLoggerWithStackTrace(
                    new RelayLogger(
                        new ColoredConsoleLogger(ConsoleColor.Cyan, ConsoleColor.Black),
                        new ChainedFormatter(new List <ITextFormatter>
            {
                new ThreadFormatter(" > ", true, false, false),
                new DateTimeFormatter(" > ")
            })),
                    new StackTraceFormatterNothing()),
                new RelayLoggerWithStackTrace(
                    new RelayLogger(
                        new ColoredConsoleLogger(ConsoleColor.Green, ConsoleColor.Black),
                        new ChainedFormatter(new List <ITextFormatter>
            {
                new ThreadFormatter(" > ", false, true, false), new DateTimeFormatter(" > ")
            })),
                    new StackTraceFormatterWithNullSuport(" > ", string.Empty)),
                new RelayLoggerWithStackTrace(
                    new RelayLogger(
                        new ColoredConsoleLogger(ConsoleColor.White, ConsoleColor.Black),
                        new ChainedFormatter(new List <ITextFormatter>
            {
                new ThreadFormatter(" > ", true, false, false), new DateTimeFormatter(" > ")
            })),
                    new StackTraceFormatterNothing()));

            var loggerAndRegPoint = new LoggerRegistrationPointThreadSafe();

            _commonLogger   = loggerAndRegPoint;
            _loggerRegPoint = loggerAndRegPoint;

            var paramLoggerAndRegPoint = new ParamLoggerRegistrationPointThreadSafe();

            _commonParamLogger   = paramLoggerAndRegPoint;
            _paramLoggerRegPoint = paramLoggerAndRegPoint;


            var cmdSenderHost = new CommandSenderHostThreadSafe();

            _cmdSenderHostSettable = cmdSenderHost;
            _cmdSenderHost         = cmdSenderHost;

            var targetAddressHost = new TargetAddressHostThreadSafe(1);

            _targetAddressHostSettable = targetAddressHost;
            _targetAddressHost         = targetAddressHost;

            var notifySendingEnabled = new NotifySendingEnabledThreadSafe(false);

            _notifySendingEnabledRaisable = notifySendingEnabled;
            _notifySendingEnabled         = notifySendingEnabled;

            var ainsCounter = new AinsCounterThreadSafe(1);

            _ainsCounterRaisable = ainsCounter;
            _ainsCounter         = ainsCounter;

            _cycleThreadHolder = new CycleThreadHolderThreadSafe();

            var ainSettingsStorage = new AinSettingsStorageThreadSafe(_ainsCounter, _notifySendingEnabled);

            _ainSettingsStorage              = ainSettingsStorage;
            _ainSettingsStorageSettable      = ainSettingsStorage;
            _ainSettingsStorageUpdatedNotify = ainSettingsStorage;

            var ainSettingsReader = new AinSettingsReader(_cmdSenderHost, _targetAddressHost, _commonLogger,
                                                          _ainSettingsStorageSettable, _debugLogger);

            _ainSettingsReader             = ainSettingsReader;
            _ainSettingsReadNotify         = ainSettingsReader;
            _ainSettingsReadNotifyRaisable = ainSettingsReader;

            _ainSettingsWriter = new AinSettingsWriter(_cmdSenderHost, _targetAddressHost, _ainsCounterRaisable,
                                                       _ainSettingsReader);
            _autoTimeSetter =
                new AutoTimeSetter(_cmdSenderHost, _notifySendingEnabled, _targetAddressHost, _commonLogger);


            var engineSettingsStorage = new EngineSettingsStorageThreadSafe();

            _engineSettingsStorage              = engineSettingsStorage;
            _engineSettingsStorageSettable      = engineSettingsStorage;
            _engineSettingsStorageUpdatedNotify = engineSettingsStorage;

            var engineSettingsReader = new EngineSettingsReader(_cmdSenderHost, _targetAddressHost, _commonLogger,
                                                                _engineSettingsStorageSettable, _debugLogger);

            _engineSettingsReader             = engineSettingsReader;
            _engineSettingsReadNotify         = engineSettingsReader;
            _engineSettingsReadNotifyRaisable = engineSettingsReader;

            _engineSettingsWriter = new EngineSettingsWriter(_cmdSenderHost, _targetAddressHost, _engineSettingsReader);


            _autoSettingsReader = new AutoSettingsReader(
                _notifySendingEnabled,
                _ainsCounterRaisable,
                _ainSettingsReader,
                _ainSettingsStorageSettable,
                _commonLogger,
                _engineSettingsReader,
                _engineSettingsStorageSettable);



            _bsEthernetLogsReadCycleModel = new ReadCycleModel(_cmdSenderHost, targetAddressHost, notifySendingEnabled);

            var uiRoot = new SimpleUiRoot(new WpfUiNotifierAsync(Dispatcher.CurrentDispatcher));

            var ainCommandAndCommonTelemetryVm = new AinCommandAndCommonTelemetryViewModel(
                new AinCommandAndMinimalCommonTelemetryViewModel(
                    _cmdSenderHost,
                    _targetAddressHost,
                    uiRoot,
                    _commonLogger,
                    _notifySendingEnabled,
                    0,
                    _ainSettingsStorage,
                    _ainSettingsStorageUpdatedNotify),
                new TelemetryCommonViewModel(),
                _cmdSenderHost,
                _targetAddressHost,
                uiRoot,
                _notifySendingEnabled);


            // TODO: Register something but not VM?
            _cycleThreadHolder.RegisterAsCyclePart(ainCommandAndCommonTelemetryVm);


            new CommandWindow {
                DataContext = new CommandWindowViewModel(ainCommandAndCommonTelemetryVm)
            }.Show();

            new BsEthernetLogsWindow {
                DataContext = new WindowViewModel(uiRoot, _bsEthernetLogsReadCycleModel)
            }.Show();



            var mainViewModel = new MainViewModel(
                new SimpleUiRoot(new WpfUiNotifierAsync(Dispatcher.CurrentDispatcher)),
                new WpfWindowSystem(),
                colorsForGraphics,
                _cmdSenderHostSettable,
                _targetAddressHost,
                _debugLogger,
                _loggerRegPoint,
                _notifySendingEnabledRaisable,
                _commonParamLogger,
                _ainsCounterRaisable,
                _cycleThreadHolder,
                _ainSettingsReader,
                _ainSettingsReadNotify,
                _ainSettingsReadNotifyRaisable,
                _ainSettingsWriter, _ainSettingsStorage, _ainSettingsStorageSettable,
                _ainSettingsStorageUpdatedNotify, _bsEthernetLogsReadCycleModel,
                _engineSettingsReader,
                _engineSettingsWriter,
                _engineSettingsReadNotify,
                _engineSettingsReadNotifyRaisable,
                _engineSettingsStorage,
                _engineSettingsStorageSettable,
                _engineSettingsStorageUpdatedNotify);

            new MainWindow {
                DataContext = mainViewModel
            }.Show();
        }
Пример #13
0
        public AinCommandAndMinimalCommonTelemetryViewModel(ICommandSenderHost commandSenderHost,
                                                            ITargetAddressHost targerAddressHost, IUserInterfaceRoot userInterfaceRoot, ILogger logger,
                                                            INotifySendingEnabled sendingEnabledControl, byte zeroBasedAinNumber,
                                                            IAinSettingsStorage ainSettingsStorage, IAinSettingsStorageUpdatedNotify storageUpdatedNotify)
        {
            _commandSenderHost     = commandSenderHost;
            _targerAddressHost     = targerAddressHost;
            _userInterfaceRoot     = userInterfaceRoot;
            _logger                = logger;
            _sendingEnabledControl = sendingEnabledControl;
            _zeroBasedAinNumber    = zeroBasedAinNumber;
            _ainSettingsStorage    = ainSettingsStorage;
            _storageUpdatedNotify  = storageUpdatedNotify;

            _fset      = 0;
            _mset      = 0;
            _set3      = 0;
            _mmin      = -600;
            _mmax      = 600;
            _telemetry = null;

            _sendAinCommandOff1     = new RelayCommand(SendAinCmdOff1, () => IsSendingEnabled);
            _sendAinCommandOff2     = new RelayCommand(SendAinCmdOff2, () => IsSendingEnabled);
            _sendAinCommandOff3     = new RelayCommand(SendAinCmdOff3, () => IsSendingEnabled);
            _sendAinCommandRun      = new RelayCommand(SendAinCmdRun, () => IsSendingEnabled);
            _sendAinCommandInching1 = new RelayCommand(SendAinCmdInching1, () => IsSendingEnabled);
            _sendAinCommandInching2 = new RelayCommand(SendAinCmdInching2, () => IsSendingEnabled);
            _sendAinCommandReset    = new RelayCommand(SendAinCmdReset, () => IsSendingEnabled);
            SendAinCommandBits      = new RelayCommand(SendAinCmdBits, () => IsSendingEnabled);


            _cmdSub10FsetHz = new RelayCommand(() =>
            {
                if (FsetHz.HasValue)
                {
                    FsetHz -= 1;
                }
            }, () => IsSendingEnabled);
            _cmdSub01FsetHz = new RelayCommand(() =>
            {
                if (FsetHz.HasValue)
                {
                    FsetHz -= 0.1m;
                }
            }, () => IsSendingEnabled);
            _cmdSetFsetHzToZero = new RelayCommand(() => FsetHz = 0.0m, () => IsSendingEnabled);
            _cmdAdd01FsetHz     = new RelayCommand(() =>
            {
                if (FsetHz.HasValue)
                {
                    FsetHz += 0.1m;
                }
            }, () => IsSendingEnabled);
            _cmdAdd10FsetHz = new RelayCommand(() =>
            {
                if (FsetHz.HasValue)
                {
                    FsetHz += 1.0m;
                }
            }, () => IsSendingEnabled);


            _sendingEnabledControl.SendingEnabledChanged += sendingEnabled =>
            {
                SendingEnabledControlOnSendingEnabledChanged();
            };

            _storageUpdatedNotify.AinSettingsUpdated += (ainNumber, settings) =>
            {
                if (ainNumber == 0)
                {
                    SendingEnabledControlOnSendingEnabledChanged();
                    RaisePropertyChanged(() => Fset);
                    RaisePropertyChanged(() => FsetHz);
                    RaisePropertyChanged(() => FsetSmallChange);
                    RaisePropertyChanged(() => FsetSmallChangeOrOne);
                    RaisePropertyChanged(() => FsetMax);
                    RaisePropertyChanged(() => FsetMin);
                    RaisePropertyChanged(() => NegativeMaximumFreqSet);
                    RaisePropertyChanged(() => PositiveMaximumFreqSet);
                    RaisePropertyChanged(() => TickFreqSet);
                }
            };
        }
Пример #14
0
        public OldLookViewModel(IUserInterfaceRoot userInterfaceRoot, IWindowSystem windowSystem,
                                ICommandSenderHost commanSenderHost, ITargetAddressHost targetAddressHost,
                                INotifySendingEnabled notifySendingEnabled, ILinkContol linkContol, ILogger logger,
                                IMultiLoggerWithStackTrace <int> debugLogger, ICycleThreadHolder cycleThreadHolder, IAinsCounter ainsCounter,
                                IParameterLogger parameterLogger, IAinSettingsStorage ainSettingsStorage,
                                IAinSettingsStorageUpdatedNotify storageUpdatedNotify)
        {
            _ainSettingsStorage   = ainSettingsStorage;
            _storageUpdatedNotify = storageUpdatedNotify;
            var commonTelemetryVm = new TelemetryCommonViewModel();

            BsEthernetSettingsVm = new BsEthernetSettingsViewModel(commanSenderHost, targetAddressHost,
                                                                   userInterfaceRoot, logger, windowSystem, notifySendingEnabled);
            BsEthernetNominalsVm = new BsEthernetNominalsViewModel(commanSenderHost, targetAddressHost,
                                                                   userInterfaceRoot, logger, windowSystem, notifySendingEnabled);

            SystemControlVm = new SystemControlViewModel(commanSenderHost, targetAddressHost, userInterfaceRoot, logger,
                                                         windowSystem, notifySendingEnabled, linkContol, commonTelemetryVm);

            var ain1TelemetryVm =
                new AinTelemetryViewModel(commonTelemetryVm, 0, commanSenderHost, logger, userInterfaceRoot);
            var ain2TelemetryVm =
                new AinTelemetryViewModel(commonTelemetryVm, 1, commanSenderHost, logger, userInterfaceRoot);
            var ain3TelemetryVm =
                new AinTelemetryViewModel(commonTelemetryVm, 2, commanSenderHost, logger, userInterfaceRoot);

            AinTelemetriesVm = new AinTelemetriesViewModel(commanSenderHost, targetAddressHost, userInterfaceRoot,
                                                           logger, windowSystem, SystemControlVm, commonTelemetryVm, ain1TelemetryVm, ain2TelemetryVm,
                                                           ain3TelemetryVm); // TODO: sending enabled control?

            cycleThreadHolder.RegisterAsCyclePart(ain1TelemetryVm);
            cycleThreadHolder.RegisterAsCyclePart(ain2TelemetryVm);
            cycleThreadHolder.RegisterAsCyclePart(ain3TelemetryVm);
            cycleThreadHolder.RegisterAsCyclePart(AinTelemetriesVm);

            var ain1CommandOnlyVm = new AinCommandAndMinimalCommonTelemetryViewModel(commanSenderHost,
                                                                                     targetAddressHost, userInterfaceRoot, logger, notifySendingEnabled, 0, _ainSettingsStorage,
                                                                                     _storageUpdatedNotify);
            var ain2CommandOnlyVm = new AinCommandAndMinimalCommonTelemetryViewModel(commanSenderHost,
                                                                                     targetAddressHost, userInterfaceRoot, logger, notifySendingEnabled, 1, _ainSettingsStorage,
                                                                                     _storageUpdatedNotify);
            var ain3CommandOnlyVm = new AinCommandAndMinimalCommonTelemetryViewModel(commanSenderHost,
                                                                                     targetAddressHost, userInterfaceRoot, logger, notifySendingEnabled, 2, _ainSettingsStorage,
                                                                                     _storageUpdatedNotify);

            Ain1CommandVm =
                new AinCommandViewModel(ain1CommandOnlyVm, commonTelemetryVm, ain1TelemetryVm, AinTelemetriesVm);
            Ain2CommandVm =
                new AinCommandViewModel(ain2CommandOnlyVm, commonTelemetryVm, ain2TelemetryVm, AinTelemetriesVm);
            Ain3CommandVm =
                new AinCommandViewModel(ain3CommandOnlyVm, commonTelemetryVm, ain3TelemetryVm, AinTelemetriesVm);

            Ain1SettingsVm = new AinSettingsViewModel(commanSenderHost, targetAddressHost, userInterfaceRoot, logger,
                                                      windowSystem, notifySendingEnabled, 0);
            Ain2SettingsVm = new AinSettingsViewModel(commanSenderHost, targetAddressHost, userInterfaceRoot, logger,
                                                      windowSystem, notifySendingEnabled, 1);
            Ain3SettingsVm = new AinSettingsViewModel(commanSenderHost, targetAddressHost, userInterfaceRoot, logger,
                                                      windowSystem, notifySendingEnabled, 2);

            RectifierTelemetriesVm = new RectifierTelemetriesViewModel(commanSenderHost, targetAddressHost,
                                                                       userInterfaceRoot, logger, windowSystem); // TODO: sending enabled control?
            cycleThreadHolder.RegisterAsCyclePart(RectifierTelemetriesVm);

            CoolerTelemetriesVm = new CoolerTelemetriesViewModel(commanSenderHost, targetAddressHost, userInterfaceRoot,
                                                                 logger, debugLogger, windowSystem); // TODO: sending enabled control?

            EngineSettingsVm = new EngineSettingsViewModel(commanSenderHost, targetAddressHost, userInterfaceRoot,
                                                           logger, windowSystem, notifySendingEnabled);
        }
Пример #15
0
        public TelemetryViewModel(IUserInterfaceRoot userInterfaceRoot, ICommandSenderHost commanSenderHost,
                                  ITargetAddressHost targetAddressHost, ILogger logger, ICycleThreadHolder cycleThreadHolder,
                                  IAinsCounter ainsCounter, IParameterLogger parameterLogger, INotifySendingEnabled notifySendingEnabled)
        {
            Group01ParametersVm = new Group01ParametersViewModel(commanSenderHost, targetAddressHost, userInterfaceRoot,
                                                                 logger, ainsCounter, parameterLogger);
            cycleThreadHolder.RegisterAsCyclePart(Group01ParametersVm);

            Group02ParametersVm = new Group02ParametersViewModel(commanSenderHost, targetAddressHost, userInterfaceRoot,
                                                                 logger, parameterLogger);
            cycleThreadHolder.RegisterAsCyclePart(Group02ParametersVm);

            Group03ParametersVm = new Group03ParametersViewModel(commanSenderHost, targetAddressHost, userInterfaceRoot,
                                                                 logger, parameterLogger);
            cycleThreadHolder.RegisterAsCyclePart(Group03ParametersVm);

            Group04ParametersVm = new Group04ParametersViewModel(commanSenderHost, targetAddressHost, userInterfaceRoot,
                                                                 logger, notifySendingEnabled);

            Group07ParametersVm = new Group07ParametersViewModel(commanSenderHost, targetAddressHost, userInterfaceRoot,
                                                                 logger, parameterLogger);
            cycleThreadHolder.RegisterAsCyclePart(Group07ParametersVm);

            Group08ParametersVm = new Group08ParametersViewModel(commanSenderHost, targetAddressHost, userInterfaceRoot,
                                                                 logger, parameterLogger);
            cycleThreadHolder.RegisterAsCyclePart(Group08ParametersVm);

            Group09ParametersVm = new Group09ParametersViewModel(commanSenderHost, targetAddressHost, userInterfaceRoot,
                                                                 logger, ainsCounter, parameterLogger);
            cycleThreadHolder.RegisterAsCyclePart(Group09ParametersVm);
        }
Пример #16
0
        public AinSettingsViewModel(ICommandSenderHost commandSenderHost, ITargetAddressHost targerAddressHost,
                                    IUserInterfaceRoot userInterfaceRoot, ILogger logger, IWindowSystem windowSystem,
                                    INotifySendingEnabled sendingEnabledControl, byte zeroBasedAinNumber)
        {
            _commandSenderHost     = commandSenderHost;
            _targerAddressHost     = targerAddressHost;
            _userInterfaceRoot     = userInterfaceRoot;
            _logger                = logger;
            _windowSystem          = windowSystem;
            _sendingEnabledControl = sendingEnabledControl;
            _zeroBasedAinNumber    = zeroBasedAinNumber;

            _readSettingsCommand  = new RelayCommand(ReadSettings, () => _sendingEnabledControl.IsSendingEnabled);
            _writeSettingsCommand = new RelayCommand(WriteSettings, () => _sendingEnabledControl.IsSendingEnabled);

            ImportSettingsCommand = new RelayCommand(ImportSettings);
            ExportSettingsCommand = new RelayCommand(ExportSettings);

            Reserved00 = null; // 0
            KpW        = null; // 1
            KiW        = null; // 2 3
            FiNom      = null; // 4
            Imax       = null; // 5
            UdcMax     = null; // 6
            UdcMin     = null; // 7
            Fnom       = null; // 8
            Fmax       = null; // 9

            DflLim   = null;   // 10
            FlMinMin = null;   // 11

            IoutMax = null;    //12
            FiMin   = null;    // 13
            DacCh   = null;    // 14
            Imcw    = null;    // 15

            Ia0  = null;       // 16
            Ib0  = null;       // 17
            Ic0  = null;       // 18
            Udc0 = null;       // 19
            TauR = null;       // 20

            Lm  = null;        // 21
            Lsl = null;        // 22
            Lrl = null;        // 23

            Reserved24 = null; // 24
            KpFi       = null; // 25
            KiFi       = null; // 26-27

            Reserved28 = null; // 28
            KpId       = null; // 29
            KiId       = null; // 30-31

            Reserved32 = null; // 32
            KpIq       = null; // 33
            KiIq       = null; // 34-35

            AccDfDt = null;    // 36
            DecDfDt = null;    // 37
            Unom    = null;    // 38
            UnomD   = null;

            TauFlLim = null;      // 39

            Rs   = null;          // 40
            Fmin = null;          // 41

            TauM    = null;       // 42
            TauF    = null;       // 43
            TauFSet = null;       // 44
            TauFi   = null;       // 45

            IdSetMin = null;      // 46
            IdSetMax = null;      // 47

            UchMin = null;        // 48
            UchMax = null;        // 49

            Reserved50 = null;    // 50
            Reserved51 = null;    // 51

            Np            = null; // 52.0-4
            NimpFloorCode = null; // 52.5-7
            FanMode       = null; //52.8-15

            UmodThr = null;       // 53

            EmdecDfdt = null;     // 54
            TextMax   = null;     // 55
            ToHl      = null;     // 56


            _sendingEnabledControl.SendingEnabledChanged += SendingEnabledControlOnSendingEnabledChanged;
        }
Пример #17
0
        public SettingsViewModel(
            IUserInterfaceRoot userInterfaceRoot,
            ILogger logger,
            IAinSettingsReaderWriter ainSettingsReadedWriter,
            IAinSettingsReadNotify ainSettingsReadNotify,
            IAinSettingsReadNotifyRaisable ainSettingsReadNotifyRaisable,
            IAinSettingsStorage ainSettingsStorage,
            IAinSettingsStorageSettable ainSettingsStorageSettable,
            IAinSettingsStorageUpdatedNotify storageUpdatedNotify,
            IAinsCounter ainsCounter,
            ICommandSenderHost commandSenderHost,
            ITargetAddressHost targetAddressHost,
            INotifySendingEnabled notifySendingEnabled,
            IEngineSettingsReader engineSettingsReader,
            IEngineSettingsWriter engineSettingsWriter,
            IEngineSettingsReadNotify engineSettingsReadNotify,
            IEngineSettingsReadNotifyRaisable engineSettingsReadNotifyRaisable,
            IEngineSettingsStorage engineSettingsStorage,
            IEngineSettingsStorageSettable engineSettingsStorageSettable,
            IEngineSettingsStorageUpdatedNotify engineSettingsStorageUpdatedNotify,
            IMultiLoggerWithStackTrace <int> debugLogger)
        {
            Group20SettingsVm = new Group20SettingsViewModel(userInterfaceRoot, logger, ainSettingsReadedWriter,
                                                             ainSettingsReadNotify, ainSettingsStorage, storageUpdatedNotify, ainsCounter,
                                                             engineSettingsReader, engineSettingsWriter, engineSettingsReadNotify, engineSettingsStorage,
                                                             engineSettingsStorageUpdatedNotify);

            Group22SettingsVm = new Group22SettingsViewModel(userInterfaceRoot, logger, ainSettingsReadedWriter,
                                                             ainSettingsReadNotify, ainSettingsStorage, storageUpdatedNotify, ainsCounter);
            Group23SettingsVm = new Group23SettingsViewModel(userInterfaceRoot, logger, ainSettingsReadedWriter,
                                                             ainSettingsReadNotify, ainSettingsStorage, storageUpdatedNotify, ainsCounter);
            Group24SettingsVm = new Group24SettingsViewModel(userInterfaceRoot, logger, ainSettingsReadedWriter,
                                                             ainSettingsReadNotify, ainSettingsStorage, storageUpdatedNotify, ainsCounter);
            Group25SettingsVm = new Group25SettingsViewModel(userInterfaceRoot, logger, ainSettingsReadedWriter,
                                                             ainSettingsReadNotify, ainSettingsStorage, storageUpdatedNotify, ainsCounter);
            Group26SettingsVm = new Group26SettingsViewModel(userInterfaceRoot, logger, ainSettingsReadedWriter,
                                                             ainSettingsReadNotify, ainSettingsStorage, storageUpdatedNotify, ainsCounter);
            Group27SettingsVm = new Group27SettingsViewModel(userInterfaceRoot, logger, ainSettingsReadedWriter,
                                                             ainSettingsReadNotify, ainSettingsStorage, storageUpdatedNotify, ainsCounter);

            var imcwParamViewModel = new ImcwParameterViewModel();

            Group99SettingsVm = new Group99SettingsViewModel(userInterfaceRoot, logger, ainSettingsReadedWriter,
                                                             ainSettingsReadNotify, ainSettingsStorage, storageUpdatedNotify, ainsCounter,
                                                             engineSettingsReader, engineSettingsWriter, engineSettingsReadNotify, engineSettingsStorage,
                                                             engineSettingsStorageUpdatedNotify,
                                                             imcwParamViewModel);

            Group100SettingsVm = new Group100SettingsViewModel(userInterfaceRoot, logger, ainSettingsReadedWriter,
                                                               ainSettingsReadNotify, ainSettingsStorage, storageUpdatedNotify, ainsCounter);
            Group101SettingsVm = new Group101SettingsViewModel(userInterfaceRoot, logger, ainSettingsReadedWriter,
                                                               ainSettingsReadNotify, ainSettingsStorage, storageUpdatedNotify, ainsCounter);
            Group102SettingsVm = new Group102SettingsViewModel(userInterfaceRoot, logger, ainSettingsReadedWriter,
                                                               ainSettingsReadNotify, ainSettingsStorage, storageUpdatedNotify, ainsCounter);
            Group103SettingsVm = new Group103SettingsViewModel(userInterfaceRoot, logger, ainSettingsReadedWriter,
                                                               ainSettingsReadNotify, ainSettingsStorage, storageUpdatedNotify, ainsCounter);
            //Group104SettingsVm = new Group104SettingsViewModel(userInterfaceRoot, logger, ainSettingsReadedWriter, ainSettingsReadNotify, ainSettingsStorage, storageUpdatedNotify, ainsCounter);
            Group105SettingsVm = new Group105SettingsViewModel(userInterfaceRoot, logger,
                                                               ainSettingsReadedWriter, /*ainSettingsReadNotify, */ ainSettingsStorage, storageUpdatedNotify,
                                                               ainsCounter);
            Group106SettingsVm = new Group106SettingsViewModel(userInterfaceRoot, logger, ainSettingsReadedWriter,
                                                               ainSettingsReadNotify, ainSettingsStorage, storageUpdatedNotify, ainsCounter, imcwParamViewModel);
            Group107SettingsVm = new Group107SettingsViewModel(userInterfaceRoot, logger,
                                                               ainSettingsReadedWriter, /*ainSettingsReadNotify, */ ainSettingsStorage, storageUpdatedNotify,
                                                               ainsCounter);

            ImportExportVm = new ImportExportViewModel(ainSettingsStorageSettable, ainSettingsReadNotifyRaisable,
                                                       engineSettingsStorageSettable, engineSettingsReadNotifyRaisable, debugLogger);
        }