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 AinCommandViewModel( AinCommandAndMinimalCommonTelemetryViewModel ainCommandAndMinimalCommonTelemetryViewModel, TelemetryCommonViewModel commonTelemetryVm, AinTelemetryViewModel ainTelemetryVm, IAinTelemetriesCycleControl ainTelemetriesCycleControl) { AinCommandAndMinimalCommonTelemetryVm = ainCommandAndMinimalCommonTelemetryViewModel; CommonTelemetryVm = commonTelemetryVm; AinTelemetryVm = ainTelemetryVm; ReadCycleCommand = ainTelemetriesCycleControl.ReadCycleCommand; StopReadingCommand = ainTelemetriesCycleControl.StopReadingCommand; }
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(); }
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); }