1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162 |
- using Shaker.Models;
- using System.Collections.Generic;
- namespace ShakerApp.ViewModels
- {
- internal abstract class BaseMainPageViewModel<TModel>:DisplayViewModelBase<TModel>,IMainPageViewModel where TModel:IModel
- {
- public const string THDData = "THDData";
- public const string TimeDomainData = "TimeDomainData";
- public abstract MainPageType PageType { get; }
- public virtual bool Start() { return true; }
- public virtual void Stop() { }
- public virtual void SaveTestData(TDMS.ITDMSFile? file)
- {
- if (file == null) return;
- var group = file.Contains(TimeDomainData) ? file[TimeDomainData] : file.AddGroup(TimeDomainData);
- if (group == null) return;
- for (int i = 0; i < ShakerConfigViewModel.Instance.Model.AnalogSignalConfigs.Count; i++)
- {
- bool exit = group.Contains(ShakerConfigViewModel.Instance.Model.AnalogSignalConfigs[i].Name);
- 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);
- ch?.AppendData(ShakerDataViewModel.Instance.GetAnalogRawData(i));
- }
- group = file.Contains(THDData) ? file[THDData] : file.AddGroup(THDData);
- if (group == null) return;
- for (int i = 0; i < ShakerDataViewModel.Instance.AllowTHDChannels.Count; i++)
- {
- var ch = group.Contains(ShakerDataViewModel.Instance.AllowTHDChannels[i]) ? group[ShakerDataViewModel.Instance.AllowTHDChannels[i]] : group.AddChannel(TDMS.Common.TDMSDataType.Float, ShakerDataViewModel.Instance.AllowTHDChannels[i], "%");
- if (ch == null) continue;
- var statistics = ShakerDataViewModel.Instance.GetStatistics(ch.Name);
- if (statistics == null) continue;
- ch.AppendData(statistics.THD);
- }
- if (MainPageViewModel.Instance.MainPage is SineMainPageViewModel sine)
- {
- var ch = group.Contains(nameof(SweepData.Frequency)) ? group[nameof(SweepData.Frequency)] : group.AddChannel(TDMS.Common.TDMSDataType.Double, nameof(SweepData.Frequency), "Hz");
- if (ch == null) return;
- ch.AppendData(sine.CurrentFrequency);
- if (SweepConfigViewModel.Instance.SignalType == SignalType.Sweep)
- {
- ch = group.Contains(nameof(SineMainPageViewModel.SweepIndex)) ? group[nameof(SineMainPageViewModel.SweepIndex)] : group.AddChannel(TDMS.Common.TDMSDataType.Int32, nameof(SineMainPageViewModel.SweepIndex), "");
- if (ch == null) return;
- ch.AppendData((int)sine.SweepIndex);
- }
- }
- }
- public virtual void SaveTdmsConfig(TDMS.ITDMSFile? config)
- {
- ShakerConfigViewModel.Instance.SaveTdmsConfig(config);
- }
- public virtual void InitUI()
- {
- }
- public virtual void UpdateData(List<IResultDataModel> model)
- {
- }
- }
- }
|