logicanalyzer
24 channel, 100Msps logic analyzer hardware and software
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace SharedDriver
{
public class CaptureSession
{
public int Frequency { get; set; }
public int PreTriggerSamples { get; set; }
public int PostTriggerSamples { get; set; }
public int TotalSamples
{
get
{
return PostTriggerSamples * (LoopCount + 1) + PreTriggerSamples;
}
}
public int LoopCount { get; set; }
public bool MeasureBursts { get; set; }
public AnalyzerChannel[] CaptureChannels { get; set; } = [];
public BurstInfo[]? Bursts { get; set; }
public TriggerType TriggerType { get; set; }
public int TriggerChannel { get; set; }
public bool TriggerInverted { get; set; }
public int TriggerBitCount { get; set; }
public ushort TriggerPattern { get; set; }
public CaptureSession Clone()
{
var newInst = (CaptureSession)MemberwiseClone();
for (int i = 0; i < CaptureChannels.Length; i++)
{
newInst.CaptureChannels[i] = CaptureChannels[i].Clone();
}
return newInst;
}
public CaptureSession CloneSettings()
{
var newInst = (CaptureSession)MemberwiseClone();
for (int i = 0; i < CaptureChannels.Length; i++)
{
newInst.CaptureChannels[i] = CaptureChannels[i].Clone();
newInst.CaptureChannels[i].Samples = null;
}
return newInst;
}
}
public enum TriggerType
{
Edge,
Complex,
Fast,
Blast
}
}