OutSignalMainPageViewModel.cs 2.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. using Shaker.Models;
  2. using ShakerApp.Tools;
  3. using System.Collections.Generic;
  4. namespace ShakerApp.ViewModels
  5. {
  6. internal abstract class BaseMainPageViewModel<TModel>:DisplayViewModelBase<TModel>,IMainPageViewModel where TModel:IModel
  7. {
  8. public const string TimeDomainData = "TimeDomainData";
  9. public abstract MainPageType PageType { get; }
  10. public virtual void Start() { }
  11. public virtual void Stop() { }
  12. public virtual void SaveTestData(TDMS.ITDMSFile? file)
  13. {
  14. if (file == null) return;
  15. var group = file.Contains(TimeDomainData) ? file[TimeDomainData]:file.AddGroup(TimeDomainData);
  16. if (group == null) return;
  17. for(int i=0;i<ShakerConfigViewModel.Instance.Model.AnalogSignalConfigs.Count;i++)
  18. {
  19. bool exit = group.Contains(ShakerConfigViewModel.Instance.Model.AnalogSignalConfigs[i].Name);
  20. var ch = exit ? group[ShakerConfigViewModel.Instance.Model.AnalogSignalConfigs[i].Name] : group.AddChannel( TDMS.Common.TDMSDataType.Double,ShakerConfigViewModel.Instance.Model.AnalogSignalConfigs[i].Name, ShakerConfigViewModel.Instance.Model.AnalogSignalConfigs[i].Unit);
  21. ch?.AppendData(ShakerDataViewModel.Instance.GetAnalogRawData(i));
  22. }
  23. }
  24. public virtual void SaveTdmsConfig(TDMS.ITDMSFile? config)
  25. {
  26. ShakerConfigViewModel.Instance.SaveTdmsConfig(config);
  27. }
  28. public virtual void UpdateData(List<IResultDataModel> model)
  29. {
  30. }
  31. }
  32. internal class OutSignalMainPageViewModel: BaseMainPageViewModel<IModel>
  33. {
  34. public override MainPageType PageType => MainPageType.OutSignal;
  35. public ViewModels.AnalogSignalPreviewViewModel AnalogSignal { get; } = new AnalogSignalPreviewViewModel()
  36. {
  37. AttachTitle = MainPageType.OutSignal.Description(),
  38. };
  39. private OutSignalMainPageViewModel()
  40. {
  41. }
  42. static OutSignalMainPageViewModel()
  43. {
  44. }
  45. public static OutSignalMainPageViewModel Instance { get; } = new OutSignalMainPageViewModel();
  46. }
  47. }