1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071 |
- using Avalonia.Collections;
- using Avalonia.Controls;
- using ParquetSharp;
- using Shaker.Models;
- using ShakerApp.Models;
- using ShakerApp.Tools;
- using ShakerApp.Views;
- using System;
- using System.Collections.Generic;
- using System.ComponentModel.DataAnnotations;
- using System.Diagnostics.CodeAnalysis;
- using System.Linq;
- using System.Text;
- using System.Threading.Tasks;
- namespace ShakerApp.ViewModels
- {
- internal abstract class BaseMainPageViewModel<TModel>:DisplayViewModelBase<TModel>,IMainPageViewModel where TModel:IModel
- {
- private protected Column[] columns = new Column[0];
- public abstract MainPageType PageType { get; }
- public virtual void Start() { }
- public virtual void Stop() { }
- public Column[] Columns => columns;
- public virtual void UpdataColnumInfo()
- {
- columns = new Column[ViewModels.ShakerConfigViewModel.Instance.Model.AnalogSignalConfigs.Count];
- for (int i = 0; i < columns.Length; i++)
- {
- columns[i] = new Column<double>($"{ShakerConfigViewModel.Instance.Model.AnalogSignalConfigs[i].Name}_{ShakerConfigViewModel.Instance.Model.AnalogSignalConfigs[i].Unit}_{ShakerConfigViewModel.Instance.Model.AnalogSignalConfigs[i].AnalogType}_{Models.DataAxisType.Linear}");
- }
- }
- public virtual void SaveTestData(ParquetFileWriter file)
- {
- var writer = file.AppendBufferedRowGroup();
- for(int i=0;i<ShakerConfigViewModel.Instance.Model.AnalogSignalConfigs.Count;i++)
- {
- writer.Column(i).LogicalWriter<double>().WriteBatch(ShakerDataViewModel.Instance.GetAnalogRawData(i));
- }
- }
- public virtual void SaveTdmsConfig(Dictionary<string, string> config)
- {
- ShakerConfigViewModel.Instance.SaveTdmsConfig(config);
- }
- public virtual void UpdateData(List<IResultDataModel> model)
- {
- }
- }
- internal class OutSignalMainPageViewModel: BaseMainPageViewModel<IModel>
- {
- public override MainPageType PageType => MainPageType.OutSignal;
- public ViewModels.AnalogSignalPreviewViewModel AnalogSignal { get; } = new AnalogSignalPreviewViewModel()
- {
- AttachTitle = MainPageType.OutSignal.Description(),
- };
- private OutSignalMainPageViewModel()
- {
-
- }
- static OutSignalMainPageViewModel()
- {
- }
-
- public static OutSignalMainPageViewModel Instance { get; } = new OutSignalMainPageViewModel();
- }
- }
|