123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199 |
- using FxpConvert.Common;
- using HandyControl.Interactivity.Commands;
- using Shaker.Model;
- using SIMDFxpConvert;
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
- using System.Threading.Tasks;
- using System.Windows;
- using System.Windows.Controls;
- using System.Windows.Input;
- namespace ShakerControl.ViewModel
- {
- internal class MainWindowViewModel:ShakerControl.ViewModel.ViewModelBase<IModel>
- {
- private View.SignalPreviewView view = new View.SignalPreviewView();
- private bool selectedTest = false;
- private TestType testType = TestType.Sine;
- public ICalc Calc { get; } = new SIMDCalc();
- private MainWindowViewModel()
- {
- LanguageMangerViewModel.Default.Init();
- LanguageMangerViewModel.Default.PropertyChanged += (sender, args) =>
- {
- switch(args.PropertyName)
- {
- case nameof(LanguageMangerViewModel.CurrentLanguage):
- OnPropertyChanged(nameof(Title));
- break;
- }
- };
- GetEvent(nameof(TcpEventBus.TcpEventBus.Connected)).Subscrip((_, _) =>
- {
- var main = DeviceMangerViewModel.Default.CurrentDevice?.EventBus.GetEvent<MainWindowModel>(Topic.SYNCCONFIG).Publish(this, null);
- if(main!=null)
- {
- ShakerConfig.UpDateModel(main.ShakerConfig);
- ShakerControl.UpDateModel(main.ShakerControl);
- ShakerSecurity.UpDateModel(main.ShakerSecurity);
- ShakerSensitivity.UpDateModel(main.ShakerSensitivity);
- ShakerStatus.UpDateModel(main.ShakerStatus);
- SweepFreqConfig.UpDateModel(main.SweepFreqConfig);
- SignalPreviewViewModel.Default.Init();
- AnalogDataViewModel.Default.Init();
- }
- });
- GetEvent(nameof(TcpEventBus.TcpEventBus.Disconnected)).Subscrip((_, _) =>
- {
- SelectedTest = false;
- });
- }
- static MainWindowViewModel()
- {
- }
- public ICommand OilSourceControlCommand => new DelegateCommand(OilSourceControl);
- private void OilSourceControl()
- {
- }
- public ICommand SettingCommand => new DelegateCommand(Setting);
- private void Setting()
- {
- Window window = new Window();
- window.ShowInTaskbar = false;
- var dyna = new DynamicResourceExtension("MenuSetting");
- var resourceReferenceExpression = dyna.ProvideValue(null);
- window.SetValue(MainWindow.TitleProperty, resourceReferenceExpression);
- window.Content = new View.SettingView();
- window.ShowDialog();
- }
- public bool SelectedTest
- {
- get => selectedTest;
- set
- {
- if (selectedTest == value) return;
- UpdateProperty(ref selectedTest, value);
- OnPropertyChanged(nameof(Title));
- }
- }
- public ICommand SaveConfigCommand => new DelegateCommand(SaveConfig);
- private void SaveConfig()
- {
- }
- public ICommand LoadConfigCommand => new DelegateCommand(LoadConfig);
- private void LoadConfig()
- {
- }
- public ICommand SaveSweepConfigCommand => new DelegateCommand(SaveSweepConfig);
- private void SaveSweepConfig()
- {
- }
- public ICommand SignalPreviewCommand => new DelegateCommand(SignalPreview);
- private void SignalPreview()
- {
- Window window = new Window();
- window.Content = view;
- window.ShowInTaskbar = false;
- var dyna = new DynamicResourceExtension("SignalPreview");
- var resourceReferenceExpression = dyna.ProvideValue(null);
- window.SetValue(MainWindow.TitleProperty, resourceReferenceExpression);
- window.ShowDialog();
- }
- public string Title => SelectedTest ? $"{App.Current.FindResource("Title")}-{App.Current.FindResource(AppResource.EnumHelper.Description(TestType))}" : (string)App.Current.FindResource("Title");
- public ICommand LoadSweepConfigCommand => new DelegateCommand(LoadSweepConfig);
- private void LoadSweepConfig()
- {
- }
- public ICommand SweepConfigCommand => new DelegateCommand(SweepConfig);
-
- private void SweepConfig()
- {
- Window window = new Window();
- window.ShowInTaskbar = false;
- var dyna = new DynamicResourceExtension("MenuSineTestConfig");
- var resourceReferenceExpression = dyna.ProvideValue(null);
- window.SetValue(MainWindow.TitleProperty, resourceReferenceExpression);
- window.Content = new View.SweepConfigView();
- window.ShowDialog();
- }
- public TestType TestType
- {
- get => testType;
- set
- {
- if (testType == value) return;
- UpdateProperty(ref testType, value);
- OnPropertyChanged(nameof(Title));
- }
- }
- public ICommand ExitCommand => new DelegateCommand(Exit);
- private void Exit()
- {
- PromptViewModel.Default.Init();
- PromptViewModel.Default.IconType = IconType.Ask;
- PromptViewModel.Default.YesText = (string)App.Current.FindResource("PromptYes");
- PromptViewModel.Default.NoText = (string)App.Current.FindResource("PromptNo");
- PromptViewModel.Default.YesAction = () => App.Current.Shutdown();
- PromptViewModel.Default.Title = (string)App.Current.FindResource("PromptTitle");
- PromptViewModel.Default.Message = (string)App.Current.FindResource("PromptExitMsg");
- PromptViewModel.Default.IsOpen = true;
- }
- public ICommand DeviceConfigCommand => new DelegateCommand(DeviceConfig);
- public ICommand SaveDeviceConfigCommand => new DelegateCommand<HandyControl.Interactivity.ExCommandParameter>(SaveDeviceConfig);
- private void SaveDeviceConfig(HandyControl.Interactivity.ExCommandParameter parameter)
- {
- if(parameter?.Sender is Control control)
- {
- var window = Window.GetWindow(control);
- window.Close();
- }
- }
- public ICommand CancelDeviceConfigCommand => new DelegateCommand<HandyControl.Interactivity.ExCommandParameter>(CancelDeviceConfig);
- private void CancelDeviceConfig(HandyControl.Interactivity.ExCommandParameter parameter)
- {
- if(parameter?.Sender is Control control)
- {
- var window = Window.GetWindow(control);
- window.Close();
- }
- }
- private void DeviceConfig()
- {
- Window window = new Window();
- window.ShowInTaskbar = false;
- var dyna = new DynamicResourceExtension("MenuDeviceConfig");
- var resourceReferenceExpression = dyna.ProvideValue(null);
- window.SetValue(MainWindow.TitleProperty, resourceReferenceExpression);
- window.Content = new View.DeviceConfigView();
- window.ShowDialog();
- }
- public static MainWindowViewModel Default { get; } = new MainWindowViewModel();
- public ShakerControl.ViewModel.ShakerConfigViewModel ShakerConfig { get; } = new ShakerControl.ViewModel.ShakerConfigViewModel();
- public ShakerControl.ViewModel.ShakerControlViewModel ShakerControl { get; } = new ShakerControl.ViewModel.ShakerControlViewModel();
- public ShakerControl.ViewModel.ShakerSecurityViewModel ShakerSecurity { get; } = new ShakerControl.ViewModel.ShakerSecurityViewModel();
- public ShakerControl.ViewModel.ShakerSensitivityViewModel ShakerSensitivity { get; } = new ShakerControl.ViewModel.ShakerSensitivityViewModel();
- public ShakerControl.ViewModel.ShakerStatusViewModel ShakerStatus { get; } = new ShakerControl.ViewModel.ShakerStatusViewModel();
- public ShakerControl.ViewModel.SweepFreqConfigViewModel SweepFreqConfig { get; } = new ShakerControl.ViewModel.SweepFreqConfigViewModel();
- private void InitServiceEventBus()
- {
- DeviceMangerViewModel.Default.CurrentDevice.EventBus.GetEvent(Shaker.Model.Topic.DATA).Subscrip((_, args) =>
- {
- });
- }
- }
- }
|