123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363 |
- using IModel;
- using Shaker.Model;
- using Shaker.Models;
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
- using System.Threading.Tasks;
- namespace ShakerService.ViewModel
- {
- internal sealed class ShakerChannelConfigViewModel:ViewModelBase<Shaker.Models.ShakerChannelConfigModel>
- {
- private ShakerChannelConfigViewModel():base()
- {
- }
- static ShakerChannelConfigViewModel()
- {
- }
- /// <summary>
- /// 位移通道
- /// </summary>
- public IReadOnlyList<AIConfigModel> Displacement =>CurrentModel.Displacement;
- /// <summary>
- /// 加速度通道
- /// </summary>
- public IReadOnlyList<AIConfigModel> Acceleration =>CurrentModel.Acceleration;
- /// <summary>
- /// 外部输入通道
- /// </summary>
- public IReadOnlyList<AIConfigModel> OutSignal =>CurrentModel.OutSignal;
- /// <summary>
- /// 压差通道
- /// </summary>
- public IReadOnlyList<AIConfigModel> DifferentialPressure =>CurrentModel.DifferentialPressure;
- /// <summary>
- /// 支撑压力通道
- /// </summary>
- public IReadOnlyList<AIConfigModel> Pressure =>CurrentModel.Pressure;
- /// <summary>
- /// 水平缸通道
- /// </summary>
- public IReadOnlyList<AOConfigModel> Horizontal =>CurrentModel.Horizontal;
- /// <summary>
- /// 垂直缸通道
- /// </summary>
- public IReadOnlyList<AOConfigModel> Vertical =>CurrentModel.Vertical;
- /// <summary>
- /// 平衡缸通道
- /// </summary>
- public IReadOnlyList<AOChannel> Balancing =>CurrentModel.Balancing;
- private protected override void SaveModel()
- {
- base.SaveModel();
- Communication.Instance.DbConnection.DeleteAll<AIConfigModel>(tableName: nameof(Displacement));
- Communication.Instance.DbConnection.InsertAll(CurrentModel.Displacement, tableName: nameof(Displacement));
- Communication.Instance.DbConnection.DeleteAll<AIConfigModel>(tableName: nameof(Acceleration));
- Communication.Instance.DbConnection.InsertAll(CurrentModel.Acceleration, tableName: nameof(Acceleration));
- Communication.Instance.DbConnection.DeleteAll<AIConfigModel>(tableName: nameof(OutSignal));
- Communication.Instance.DbConnection.InsertAll(CurrentModel.OutSignal, tableName: nameof(OutSignal));
- Communication.Instance.DbConnection.DeleteAll<AIConfigModel>(tableName: nameof(DifferentialPressure));
- Communication.Instance.DbConnection.InsertAll(CurrentModel.DifferentialPressure, tableName: nameof(DifferentialPressure));
- Communication.Instance.DbConnection.DeleteAll<AIConfigModel>(tableName: nameof(Pressure));
- Communication.Instance.DbConnection.InsertAll(CurrentModel.Pressure, tableName: nameof(Pressure));
- Communication.Instance.DbConnection.DeleteAll<AOConfigModel>(tableName: nameof(Horizontal));
- Communication.Instance.DbConnection.InsertAll(CurrentModel.Horizontal, tableName: nameof(Horizontal));
- Communication.Instance.DbConnection.DeleteAll<AOConfigModel>(tableName: nameof(Vertical));
- Communication.Instance.DbConnection.InsertAll(CurrentModel.Vertical, tableName: nameof(Vertical));
- Communication.Instance.DbConnection.DeleteAll<AOChannel>(tableName: nameof(Balancing));
- for(int i=0;i<CurrentModel.Balancing.Count;i++)
- {
- Communication.Instance.DbConnection.Execute($"INSERT INTO {nameof(Balancing)} (Value) VALUES ({(int)CurrentModel.Balancing[i]});");
- }
- }
- private protected override void ReadModel()
- {
- base.ReadModel();
- Communication.Instance.DbConnection.CreateTable<AIConfigModel>(tableName: nameof(Displacement));
- CurrentModel.Displacement = Communication.Instance.DbConnection.Table<AIConfigModel>(tableName: nameof(Displacement))?.ToList() ?? new List<AIConfigModel>();
- if(CurrentModel.Displacement.Count>ShakerConfigViewModel.Instance.DisplacementCount)
- {
- CurrentModel.Displacement.RemoveRange(ShakerConfigViewModel.Instance.DisplacementCount, CurrentModel.Displacement.Count - ShakerConfigViewModel.Instance.DisplacementCount);
- }
- else if(CurrentModel.Displacement.Count<ShakerConfigViewModel.Instance.DisplacementCount)
- {
- CurrentModel.Displacement.AddRange(Enumerable.Repeat(new AIConfigModel(), ShakerConfigViewModel.Instance.DisplacementCount - CurrentModel.Displacement.Count));
- }
- for(int i = 0; i < ShakerConfigViewModel.Instance.DisplacementCount; i++)
- {
- CurrentModel.Displacement[i].ChannelType = AIChannelType.Displacement;
- CurrentModel.Displacement[i].Sensitivity = CurrentModel.Displacement[i].Sensitivity ==0 ? 1000 : CurrentModel.Displacement[i].Sensitivity;
- }
- Communication.Instance.DbConnection.CreateTable<AIConfigModel>(tableName: nameof(Acceleration));
- CurrentModel.Acceleration = Communication.Instance.DbConnection.Table<AIConfigModel>(tableName: nameof(Acceleration))?.ToList() ?? new List<AIConfigModel>();
- if (CurrentModel.Acceleration.Count > ShakerConfigViewModel.Instance.AccelerationCount)
- {
- CurrentModel.Acceleration.RemoveRange(ShakerConfigViewModel.Instance.AccelerationCount, CurrentModel.Acceleration.Count - ShakerConfigViewModel.Instance.AccelerationCount);
- }
- else if (CurrentModel.Acceleration.Count < ShakerConfigViewModel.Instance.AccelerationCount)
- {
- CurrentModel.Acceleration.AddRange(Enumerable.Repeat(new AIConfigModel(), ShakerConfigViewModel.Instance.AccelerationCount - CurrentModel.Acceleration.Count));
- }
- for (int i = 0; i < ShakerConfigViewModel.Instance.AccelerationCount; i++)
- {
- CurrentModel.Acceleration[i].ChannelType = AIChannelType.Acceleration;
- CurrentModel.Acceleration[i].Sensitivity = CurrentModel.Acceleration[i].Sensitivity == 0 ? 1000 : CurrentModel.Acceleration[i].Sensitivity;
- }
- Communication.Instance.DbConnection.CreateTable<AIConfigModel>(tableName: nameof(OutSignal));
- CurrentModel.OutSignal = Communication.Instance.DbConnection.Table<AIConfigModel>(tableName: nameof(OutSignal))?.ToList() ?? new List<AIConfigModel>();
- if (CurrentModel.OutSignal.Count > ShakerConfigViewModel.Instance.OutSignalCount)
- {
- CurrentModel.OutSignal.RemoveRange(ShakerConfigViewModel.Instance.OutSignalCount, CurrentModel.OutSignal.Count - ShakerConfigViewModel.Instance.OutSignalCount);
- }
- else if (CurrentModel.OutSignal.Count < ShakerConfigViewModel.Instance.OutSignalCount)
- {
- CurrentModel.OutSignal.AddRange(Enumerable.Repeat(new AIConfigModel(), ShakerConfigViewModel.Instance.OutSignalCount - CurrentModel.OutSignal.Count));
- }
- for (int i = 0; i < ShakerConfigViewModel.Instance.OutSignalCount; i++)
- {
- CurrentModel.OutSignal[i].ChannelType = AIChannelType.OutSignal;
- CurrentModel.OutSignal[i].Sensitivity = CurrentModel.OutSignal[i].Sensitivity == 0 ? 1000 : CurrentModel.OutSignal[i].Sensitivity;
- }
- Communication.Instance.DbConnection.CreateTable<AIConfigModel>(tableName: nameof(DifferentialPressure));
- CurrentModel.DifferentialPressure = Communication.Instance.DbConnection.Table<AIConfigModel>(tableName: nameof(DifferentialPressure))?.ToList() ?? new List<AIConfigModel>();
- if (CurrentModel.DifferentialPressure.Count > ShakerConfigViewModel.Instance.DifferentialPressureCount)
- {
- CurrentModel.DifferentialPressure.RemoveRange(ShakerConfigViewModel.Instance.DifferentialPressureCount, CurrentModel.DifferentialPressure.Count - ShakerConfigViewModel.Instance.DifferentialPressureCount);
- }
- else if (CurrentModel.DifferentialPressure.Count < ShakerConfigViewModel.Instance.DifferentialPressureCount)
- {
- CurrentModel.DifferentialPressure.AddRange(Enumerable.Repeat(new AIConfigModel(), ShakerConfigViewModel.Instance.DifferentialPressureCount - CurrentModel.DifferentialPressure.Count));
- }
- for (int i = 0; i < ShakerConfigViewModel.Instance.DifferentialPressureCount; i++)
- {
- CurrentModel.DifferentialPressure[i].ChannelType = AIChannelType.DifferentialPressure;
- CurrentModel.DifferentialPressure[i].Sensitivity = CurrentModel.DifferentialPressure[i].Sensitivity == 0 ? 1000 : CurrentModel.DifferentialPressure[i].Sensitivity;
- }
- Communication.Instance.DbConnection.CreateTable<AIConfigModel>(tableName: nameof(Pressure));
- CurrentModel.Pressure = Communication.Instance.DbConnection.Table<AIConfigModel>(tableName: nameof(Pressure))?.ToList() ?? new List<AIConfigModel>();
- if (CurrentModel.Pressure.Count > ShakerConfigViewModel.Instance.PressureCount)
- {
- CurrentModel.Pressure.RemoveRange(ShakerConfigViewModel.Instance.PressureCount, CurrentModel.Pressure.Count - ShakerConfigViewModel.Instance.PressureCount);
- }
- else if (CurrentModel.Pressure.Count < ShakerConfigViewModel.Instance.PressureCount)
- {
- CurrentModel.Pressure.AddRange(Enumerable.Repeat(new AIConfigModel(), ShakerConfigViewModel.Instance.PressureCount - CurrentModel.Pressure.Count));
- }
- for (int i = 0; i < ShakerConfigViewModel.Instance.PressureCount; i++)
- {
- CurrentModel.Pressure[i].ChannelType = AIChannelType.Pressure;
- CurrentModel.Pressure[i].Sensitivity = CurrentModel.Pressure[i].Sensitivity == 0 ? 1000 : CurrentModel.Pressure[i].Sensitivity;
- }
- Communication.Instance.DbConnection.CreateTable<AOConfigModel>(tableName: nameof(Horizontal));
- CurrentModel.Horizontal = Communication.Instance.DbConnection.Table<AOConfigModel>(tableName: nameof(Horizontal))?.ToList() ?? new List<AOConfigModel>();
- if (CurrentModel.Horizontal.Count > ShakerConfigViewModel.Instance.HorizontalCount)
- {
- CurrentModel.Horizontal.RemoveRange(ShakerConfigViewModel.Instance.HorizontalCount, CurrentModel.Horizontal.Count - ShakerConfigViewModel.Instance.HorizontalCount);
- }
- else if (CurrentModel.Horizontal.Count < ShakerConfigViewModel.Instance.HorizontalCount)
- {
- CurrentModel.Horizontal.AddRange(Enumerable.Repeat(new AOConfigModel(), ShakerConfigViewModel.Instance.HorizontalCount - CurrentModel.Horizontal.Count));
- }
- for (int i = 0; i < ShakerConfigViewModel.Instance.HorizontalCount; i++)
- {
- CurrentModel.Horizontal[i].ChannelType = AOChannelType.Horizontal;
- }
- Communication.Instance.DbConnection.CreateTable<AOConfigModel>(tableName: nameof(Vertical));
- CurrentModel.Vertical = Communication.Instance.DbConnection.Table<AOConfigModel>(tableName: nameof(Vertical))?.ToList() ?? new List<AOConfigModel>();
- if (CurrentModel.Vertical.Count > ShakerConfigViewModel.Instance.VerticalCount)
- {
- CurrentModel.Vertical.RemoveRange(ShakerConfigViewModel.Instance.VerticalCount, CurrentModel.Vertical.Count - ShakerConfigViewModel.Instance.VerticalCount);
- }
- else if (CurrentModel.Vertical.Count < ShakerConfigViewModel.Instance.VerticalCount)
- {
- CurrentModel.Vertical.AddRange(Enumerable.Repeat(new AOConfigModel(), ShakerConfigViewModel.Instance.VerticalCount - CurrentModel.Vertical.Count));
- }
- for (int i = 0; i < ShakerConfigViewModel.Instance.VerticalCount; i++)
- {
- CurrentModel.Vertical[i].ChannelType = AOChannelType.Vertical;
- }
- Communication.Instance.DbConnection.Execute($"CREATE TABLE IF NOT EXISTS {nameof(Balancing)} ({nameof(BaseModel.Id)} INTEGER PRIMARY KEY AUTOINCREMENT, Value INT);");
- CurrentModel.Balancing = Communication.Instance.DbConnection.Query<AOChannel>($"SELECT Value FROM {nameof(Balancing)}")?.ToList() ?? new List<AOChannel>();
- if (CurrentModel.Balancing.Count > ShakerConfigViewModel.Instance.BalancingCount)
- {
- CurrentModel.Balancing.RemoveRange(ShakerConfigViewModel.Instance.BalancingCount, CurrentModel.Balancing.Count - ShakerConfigViewModel.Instance.BalancingCount);
- }
- else if (CurrentModel.Balancing.Count < ShakerConfigViewModel.Instance.BalancingCount)
- {
- CurrentModel.Balancing.AddRange(Enumerable.Repeat(new AOChannel(), ShakerConfigViewModel.Instance.BalancingCount - CurrentModel.Balancing.Count));
- }
- SaveModel();
- }
- private protected override void UpModel(ShakerChannelConfigModel model)
- {
- model.Displacement ??= new List<AIConfigModel>();
- if (model.Displacement.Count > ShakerConfigViewModel.Instance.DisplacementCount)
- {
- model.Displacement.RemoveRange(ShakerConfigViewModel.Instance.DisplacementCount, model.Displacement.Count - ShakerConfigViewModel.Instance.DisplacementCount);
- }
- else if (model.Displacement.Count < ShakerConfigViewModel.Instance.DisplacementCount)
- {
- model.Displacement.AddRange(Enumerable.Repeat(new AIConfigModel(), ShakerConfigViewModel.Instance.DisplacementCount - model.Displacement.Count));
- }
- for (int i = 0; i < ShakerConfigViewModel.Instance.DisplacementCount; i++)
- {
- model.Displacement[i].ChannelType = AIChannelType.Displacement;
- model.Displacement[i].Sensitivity = model.Displacement[i].Sensitivity == 0 ? 1000 : model.Displacement[i].Sensitivity;
- }
- model.Acceleration ??= new List<AIConfigModel>();
- if (model.Acceleration.Count > ShakerConfigViewModel.Instance.AccelerationCount)
- {
- model.Acceleration.RemoveRange(ShakerConfigViewModel.Instance.AccelerationCount, model.Acceleration.Count - ShakerConfigViewModel.Instance.AccelerationCount);
- }
- else if (model.Acceleration.Count < ShakerConfigViewModel.Instance.AccelerationCount)
- {
- model.Acceleration.AddRange(Enumerable.Repeat(new AIConfigModel(), ShakerConfigViewModel.Instance.AccelerationCount - model.Acceleration.Count));
- }
- for (int i = 0; i < ShakerConfigViewModel.Instance.AccelerationCount; i++)
- {
- model.Acceleration[i].ChannelType = AIChannelType.Acceleration;
- model.Acceleration[i].Sensitivity = model.Acceleration[i].Sensitivity == 0 ? 1000 : model.Acceleration[i].Sensitivity;
- }
- model.OutSignal ??= new List<AIConfigModel>();
- if (model.OutSignal.Count > ShakerConfigViewModel.Instance.OutSignalCount)
- {
- model.OutSignal.RemoveRange(ShakerConfigViewModel.Instance.OutSignalCount, model.OutSignal.Count - ShakerConfigViewModel.Instance.OutSignalCount);
- }
- else if (model.OutSignal.Count < ShakerConfigViewModel.Instance.OutSignalCount)
- {
- model.OutSignal.AddRange(Enumerable.Repeat(new AIConfigModel(), ShakerConfigViewModel.Instance.OutSignalCount - model.OutSignal.Count));
- }
- for (int i = 0; i < ShakerConfigViewModel.Instance.OutSignalCount; i++)
- {
- model.OutSignal[i].ChannelType = AIChannelType.OutSignal;
- model.OutSignal[i].Sensitivity = model.OutSignal[i].Sensitivity == 0 ? 1000 : model.OutSignal[i].Sensitivity;
- }
- model.DifferentialPressure ??= new List<AIConfigModel>();
- if (model.DifferentialPressure.Count > ShakerConfigViewModel.Instance.DifferentialPressureCount)
- {
- model.DifferentialPressure.RemoveRange(ShakerConfigViewModel.Instance.DifferentialPressureCount, model.DifferentialPressure.Count - ShakerConfigViewModel.Instance.DifferentialPressureCount);
- }
- else if (model.DifferentialPressure.Count < ShakerConfigViewModel.Instance.DifferentialPressureCount)
- {
- model.DifferentialPressure.AddRange(Enumerable.Repeat(new AIConfigModel(), ShakerConfigViewModel.Instance.DifferentialPressureCount - model.DifferentialPressure.Count));
- }
- for (int i = 0; i < ShakerConfigViewModel.Instance.DifferentialPressureCount; i++)
- {
- model.DifferentialPressure[i].ChannelType = AIChannelType.DifferentialPressure;
- model.DifferentialPressure[i].Sensitivity = model.DifferentialPressure[i].Sensitivity == 0 ? 1000 : model.DifferentialPressure[i].Sensitivity;
- }
- model.Pressure ??= new List<AIConfigModel>();
- if (model.Pressure.Count > ShakerConfigViewModel.Instance.PressureCount)
- {
- model.Pressure.RemoveRange(ShakerConfigViewModel.Instance.PressureCount, model.Pressure.Count - ShakerConfigViewModel.Instance.PressureCount);
- }
- else if (model.Pressure.Count < ShakerConfigViewModel.Instance.PressureCount)
- {
- model.Pressure.AddRange(Enumerable.Repeat(new AIConfigModel(), ShakerConfigViewModel.Instance.PressureCount - model.Pressure.Count));
- }
- for (int i = 0; i < ShakerConfigViewModel.Instance.PressureCount; i++)
- {
- model.Pressure[i].ChannelType = AIChannelType.Pressure;
- model.Pressure[i].Sensitivity = model.Pressure[i].Sensitivity == 0 ? 1000 : model.Pressure[i].Sensitivity;
- }
- model.Horizontal ??= new List<AOConfigModel>();
- if (model.Horizontal.Count > ShakerConfigViewModel.Instance.HorizontalCount)
- {
- model.Horizontal.RemoveRange(ShakerConfigViewModel.Instance.HorizontalCount, model.Horizontal.Count - ShakerConfigViewModel.Instance.HorizontalCount);
- }
- else if (model.Horizontal.Count < ShakerConfigViewModel.Instance.HorizontalCount)
- {
- model.Horizontal.AddRange(Enumerable.Repeat(new AOConfigModel(), ShakerConfigViewModel.Instance.HorizontalCount - model.Horizontal.Count));
- }
- for (int i = 0; i < ShakerConfigViewModel.Instance.HorizontalCount; i++)
- {
- model.Horizontal[i].ChannelType = AOChannelType.Horizontal;
- }
- model.Vertical ??= new List<AOConfigModel>();
- if (model.Vertical.Count > ShakerConfigViewModel.Instance.VerticalCount)
- {
- model.Vertical.RemoveRange(ShakerConfigViewModel.Instance.VerticalCount, model.Vertical.Count - ShakerConfigViewModel.Instance.VerticalCount);
- }
- else if (model.Vertical.Count < ShakerConfigViewModel.Instance.VerticalCount)
- {
- model.Vertical.AddRange(Enumerable.Repeat(new AOConfigModel(), ShakerConfigViewModel.Instance.VerticalCount - model.Vertical.Count));
- }
- for (int i = 0; i < ShakerConfigViewModel.Instance.VerticalCount; i++)
- {
- model.Vertical[i].ChannelType = AOChannelType.Vertical;
- }
- model.Balancing ??= new List<AOChannel>();
- if (model.Balancing.Count > ShakerConfigViewModel.Instance.BalancingCount)
- {
- model.Balancing.RemoveRange(ShakerConfigViewModel.Instance.BalancingCount, model.Balancing.Count - ShakerConfigViewModel.Instance.BalancingCount);
- }
- else if (model.Balancing.Count < ShakerConfigViewModel.Instance.BalancingCount)
- {
- model.Balancing.AddRange(Enumerable.Repeat(new AOChannel(), ShakerConfigViewModel.Instance.BalancingCount - model.Balancing.Count));
- }
- base.UpModel(model);
- }
- public override void SetFpga()
- {
- base.SetFpga();
- ShakerFpga.ShakerFpga.Instance.位移通道.Values = [.. Displacement.Select(x => (byte)x.Channel)];
- /*
- * 位移灵敏度用户设置的单位为mv/mm,在这里需要转换成mm/V
- */
- ShakerFpga.ShakerFpga.Instance.位移灵敏度.Value = [.. Displacement.Select(x => 1000 / x.Sensitivity)];
- ShakerFpga.ShakerFpga.Instance.位移直偏.Value = [.. Displacement.Select(x => x.Bias)];
- ShakerFpga.ShakerFpga.Instance.加速度通道.Values = [.. Acceleration.Select(x => (byte)x.Channel)];
- /*
- * 加速度灵敏度用户设置的单位为mv/g,在这里需要转换成g/V
- */
- ShakerFpga.ShakerFpga.Instance.加速度灵敏度.Value = [.. Acceleration.Select(x =>1000/ x.Sensitivity)];
- ShakerFpga.ShakerFpga.Instance.外部输入通道.Values = [.. OutSignal.Select(x => (byte)x.Channel)];
- ShakerFpga.ShakerFpga.Instance.外部输入增益.Value = [.. OutSignal.Select(x => x.Sensitivity)];
- ShakerFpga.ShakerFpga.Instance.压差通道.Values = [.. DifferentialPressure.Select(x => (byte)x.Channel)];
- ShakerFpga.ShakerFpga.Instance.压差直偏.Value = [.. DifferentialPressure.Select(x => x.Bias)];
- /*
- * 压差灵敏度用户设置的单位为V/MPa,在这里需要转换成MPa/V
- */
- ShakerFpga.ShakerFpga.Instance.压差灵敏度.Value = [.. DifferentialPressure.Select(x => 1/x.Sensitivity)];
- ShakerFpga.ShakerFpga.Instance.支撑压力通道.Values = [.. Pressure.Select(x => (byte)x.Channel)];
- ShakerFpga.ShakerFpga.Instance.支撑压力直偏.Value = [.. Pressure.Select(x => x.Bias)];
- /*
- * 支撑压力灵敏度用户设置的单位为V/MPa,在这里需要转换成MPa/V
- */
- ShakerFpga.ShakerFpga.Instance.支撑压力灵敏度.Value = [.. Pressure.Select(x => 1/x.Sensitivity)];
- ShakerFpga.ShakerFpga.Instance.平衡缸通道.Values = [.. Balancing.Select(x => (byte)x)];
- ShakerFpga.ShakerFpga.Instance.水平缸通道.Values = [.. Horizontal.Select(x => (byte)x.Channel)];
- ShakerFpga.ShakerFpga.Instance.垂直缸通道.Values = [.. Vertical.Select(x => (byte)x.Channel)];
- ShakerFpga.ShakerFpga.Instance.伺服驱动直偏.Value = [.. Horizontal.Select(x => x.Bias),..Vertical.Select(x => x.Bias)];
- ShakerFpga.ShakerFpga.Instance.伺服缸极性.Values = [.. Horizontal.Select(x => x.Polarity == Shaker.Model.Polarity.Positive), ..Vertical.Select(x => x.Polarity == Shaker.Model.Polarity.Positive)];
- ShakerFpga.ShakerFpga.Instance.伺服开环.Values = [.. Horizontal.Select(x => x.OpenLoop), .. Vertical.Select(x => x.OpenLoop)];
- ShakerFpga.ShakerFpga.Instance.伺服阀开环驱动.Value = [.. Horizontal.Select(x => x.OpenLoopDriver), .. Vertical.Select(x => x.OpenLoopDriver)];
- }
- public static ShakerChannelConfigViewModel Instance { get; } = new ShakerChannelConfigViewModel();
- }
- }
|