2026-01-26 18:56:53 +09:00

71 lines
2.5 KiB
C#

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<CStrobeChData> strobeChData { get; set; } = new List<CStrobeChData>(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;
}
}
}