using Aurora.Api; using Aurora.Api.Devices; using PropertyTools.DataAnnotations; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using static AuroraTriggerBoard.Trigger; namespace AuroraTriggerBoard { public class TriggerConfig : IDeviceConfig { public IConnConfig ConnConfig { get; set; } [DisplayName("Encoder Direciton")] public EncoderDirection EncDir { get; set; } = EncoderDirection.Forward; [DisplayName("Encoder Position Map")] public EncoderPositionMap encposmaptype { get; set; } = EncoderPositionMap.Normal; [DisplayName("Encoder Input Mode")] public EncoderMode encinputmode { get; set; } = EncoderMode.Real; [DisplayName("Channel Out Mode")] public ChannelOutMode chOutMode { get; set; } = ChannelOutMode.Simple; [DisplayName("Trigger Generator Mode")] public TriggerGenMode trigGenMode { get; set; } = TriggerGenMode.Sequence; [DisplayName("Trigger Timer Set")] public double trigTimerSet { get; set; } = 0.0; [DisplayName("Trigger Timer Limit")] public uint trigLimitSet { get; set; } = 0; [DisplayName("Sequence Start Encoder")] public int seqStartEnc { get; set; } = 0; [DisplayName("Sequence Interval Encoder")] public int seqIntervalEnc { get; set; } = 0; [DisplayName("Sequence Iteration Counter")] public int seqIterationCnt { get; set; } = 0; public class CStrobeChData { public bool strobeEnable { get; set; } = false; public double strobeStartDelay { get; set; } = 0.0; public double strobeWidth { get; set; } = 0.0; } public List strobeChData { get; set; } = new List(8); public TriggerConfig() { ConnConfig = new SerialConnConfig() { BaudRate = 9600, DataBits = 8, Parity = System.IO.Ports.Parity.None, StopBits = System.IO.Ports.StopBits.One }; } public static TriggerConfig GetDefaultConfig() { var config = new TriggerConfig(); config.ConnConfig = new SerialConnConfig() { BaudRate = 9600, DataBits = 8, Parity = System.IO.Ports.Parity.None, StopBits = System.IO.Ports.StopBits.One }; return config; } } }