2026-06-05 13:44:39 +09:00

86 lines
3.2 KiB
C#

using Aurora.Api;
using Aurora.View;
using ILSOS_PrismaticGun.Process;
using System;
using System.Collections.Generic;
using System.Collections.ObjectModel;
using System.ComponentModel;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ILSOS_PrismaticGun.Settings
{
public class ManualLaserSetting : ISettingItem
{
public const int Max = 20;
public ObservableCollection<LineShotItem> LinesStageA { get; set; } = new ObservableCollection<LineShotItem>();
public ObservableCollection<LineShotItem> LinesStageB { get; set; } = new ObservableCollection<LineShotItem>();
public OneShotItem OneShotsStageA { get; set; } = new OneShotItem();
public OneShotItem OneShotsStageB { get; set; } = new OneShotItem();
}
public class LineShotItem : NotifyPropertyChangedBase, ICloneable
{
public string Name { get; set; }
public int Index { get => _Index; set => SetProperty(ref _Index, value); }
private int _Index = -1;
public double StartX { get => _StartX; set => SetProperty(ref _StartX, value); }
private double _StartX = 0;
public double StartY { get => _StartY; set => SetProperty(ref _StartY, value); }
private double _StartY = 0;
public double EndX { get => _EndX; set => SetProperty(ref _EndX, value); }
private double _EndX = 0;
public double Velocity { get => _Velocity; set => SetProperty(ref _Velocity, value); }
private double _Velocity = 0;
public double Ring { get => _Ring; set => SetProperty(ref _Ring, value); }
private double _Ring = 0;
public double Core { get => _Core; set => SetProperty(ref _Core, value); }
private double _Core = 0;
public double PositionZ { get => _PositionZ; set => SetProperty(ref _PositionZ, value); }
private double _PositionZ = 0;
[Browsable(false)]
public string State { get => _State; set => SetProperty(ref _State, value); }
private string _State = "Idle";
public double N2PressMFC { get => _N2PressMFC; set => SetProperty(ref _N2PressMFC, value); }
private double _N2PressMFC = 0;
public LineShotItem()
{
}
public LineShotItem(LineShotItem SettingItem)
{
Index = SettingItem.Index;
StartX = SettingItem.StartX;
StartY = SettingItem.StartY;
EndX = SettingItem.EndX;
Velocity = SettingItem.Velocity;
Ring = SettingItem.Ring;
Core = SettingItem.Core;
PositionZ = SettingItem.PositionZ;
N2PressMFC = SettingItem.N2PressMFC;
}
public object Clone()
{
return new LineShotItem(this);
}
}
public class OneShotItem : NotifyPropertyChangedBase
{
public int CoreRatio { get => _CoreRatio; set => SetProperty(ref _CoreRatio, value); }
public int _CoreRatio;
public int ShotTime { get => _ShotTime; set => SetProperty(ref _ShotTime, value); }
private int _ShotTime;
public double ShotPower { get => _ShotPower; set => SetProperty(ref _ShotPower, value); }
private double _ShotPower;
public OneShotItem()
{
}
}
}