list模式scpi命令添加
This commit is contained in:
@@ -228,6 +228,166 @@ namespace DeviceCommand.Devices
|
||||
}
|
||||
|
||||
#endregion
|
||||
#region 6. LIST 模式子系统 (LIST 子系统)
|
||||
|
||||
/// <summary>
|
||||
/// 设定列表功能的模态 (SOUR:LIST:COUP)
|
||||
/// </summary>
|
||||
/// <param name="coupling">耦合模态: ALL | NONE</param>
|
||||
public virtual async Task 设置列表耦合模态Async(string coupling, CancellationToken ct = default)
|
||||
{
|
||||
await SendAsync($"SOUR:LIST:COUP {coupling}{ScpiDelimiter}", ct);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 设定列表功能的触发形态 (SOUR:LIST:TRIG)
|
||||
/// </summary>
|
||||
/// <param name="triggerMode">触发形态: AUTO | MANUAL | EXCITE</param>
|
||||
public virtual async Task 设置列表触发形态Async(string triggerMode, CancellationToken ct = default)
|
||||
{
|
||||
await SendAsync($"SOUR:LIST:TRIG {triggerMode}{ScpiDelimiter}", ct);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 查询列表功能的有效序列数 (SOUR:LIST:POIN?)
|
||||
/// </summary>
|
||||
/// <param name="ct">取消令牌</param>
|
||||
/// <returns>有效序列数 (0 ~ 100)</returns>
|
||||
public virtual async Task<int> 查询列表有效序列数Async(CancellationToken ct = default)
|
||||
{
|
||||
string resp = await WriteReadAsync($"SOUR:LIST:POIN?{ScpiDelimiter}", ScpiDelimiter, ct);
|
||||
return int.TryParse(resp.Trim(), out int val) ? val : 0;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 设定列表执行完成前的执行次数 (SOUR:LIST:COUN)
|
||||
/// </summary>
|
||||
/// <param name="count">执行次数 (0 ~ 65535)</param>
|
||||
public virtual async Task 设置列表执行次数Async(int count, CancellationToken ct = default)
|
||||
{
|
||||
await SendAsync($"SOUR:LIST:COUN {count}{ScpiDelimiter}", ct);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 设定列表点的静止时间顺序 (SOUR:LIST:DWEL)
|
||||
/// </summary>
|
||||
/// <param name="dwellTimes">静止时间序列 (单位: ms,每个值 0 ~ 99999999.9)</param>
|
||||
public virtual async Task 设置列表静止时间顺序Async(double[] dwellTimes, CancellationToken ct = default)
|
||||
{
|
||||
string valStr = string.Join(",", Array.ConvertAll(dwellTimes, v => v.ToString("0.#", CultureInfo.InvariantCulture)));
|
||||
await SendAsync($"SOUR:LIST:DWEL {valStr}{ScpiDelimiter}", ct);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 设定波形缓冲区列表点数的顺序 (SOUR:LIST:SHAP)
|
||||
/// </summary>
|
||||
/// <param name="shapes">波形缓冲区顺序,每个元素为 A 或 B</param>
|
||||
public virtual async Task 设置列表波形顺序Async(string[] shapes, CancellationToken ct = default)
|
||||
{
|
||||
string valStr = string.Join(",", shapes);
|
||||
await SendAsync($"SOUR:LIST:SHAP {valStr}{ScpiDelimiter}", ct);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 设定列表的时间基础 (SOUR:LIST:BASE)
|
||||
/// </summary>
|
||||
/// <param name="timeBase">时间基础: TIME | CYCLE</param>
|
||||
public virtual async Task 设置列表时间基础Async(string timeBase, CancellationToken ct = default)
|
||||
{
|
||||
await SendAsync($"SOUR:LIST:BASE {timeBase}{ScpiDelimiter}", ct);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 设定 AC 起始电压列表点数的顺序 (SOUR:LIST:VOLT:AC:STAR)
|
||||
/// </summary>
|
||||
/// <param name="voltages">AC 起始电压序列 (单位: V,每个值 0.0 ~ 300.0)</param>
|
||||
public virtual async Task 设置列表AC起始电压顺序Async(double[] voltages, CancellationToken ct = default)
|
||||
{
|
||||
string valStr = string.Join(",", Array.ConvertAll(voltages, v => v.ToString("0.###", CultureInfo.InvariantCulture)));
|
||||
await SendAsync($"SOUR:LIST:VOLT:AC:STAR {valStr}{ScpiDelimiter}", ct);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 设定 AC 结束电压列表点数的顺序 (SOUR:LIST:VOLT:AC:END)
|
||||
/// </summary>
|
||||
/// <param name="voltages">AC 结束电压序列 (单位: V,每个值 0.0 ~ 300.0)</param>
|
||||
public virtual async Task 设置列表AC结束电压顺序Async(double[] voltages, CancellationToken ct = default)
|
||||
{
|
||||
string valStr = string.Join(",", Array.ConvertAll(voltages, v => v.ToString("0.###", CultureInfo.InvariantCulture)));
|
||||
await SendAsync($"SOUR:LIST:VOLT:AC:END {valStr}{ScpiDelimiter}", ct);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 设定 DC 起始电压列表点数的顺序 (SOUR:LIST:VOLT:DC:STAR)
|
||||
/// </summary>
|
||||
/// <param name="voltages">DC 起始电压序列 (单位: V,每个值 -424.2 ~ 414.2)</param>
|
||||
public virtual async Task 设置列表DC起始电压顺序Async(double[] voltages, CancellationToken ct = default)
|
||||
{
|
||||
string valStr = string.Join(",", Array.ConvertAll(voltages, v => v.ToString("0.###", CultureInfo.InvariantCulture)));
|
||||
await SendAsync($"SOUR:LIST:VOLT:DC:STAR {valStr}{ScpiDelimiter}", ct);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 设定 DC 结束电压列表点数的顺序 (SOUR:LIST:VOLT:DC:END)
|
||||
/// </summary>
|
||||
/// <param name="voltages">DC 结束电压序列 (单位: V,每个值 -424.2 ~ 414.2)</param>
|
||||
public virtual async Task 设置列表DC结束电压顺序Async(double[] voltages, CancellationToken ct = default)
|
||||
{
|
||||
string valStr = string.Join(",", Array.ConvertAll(voltages, v => v.ToString("0.###", CultureInfo.InvariantCulture)));
|
||||
await SendAsync($"SOUR:LIST:VOLT:DC:END {valStr}{ScpiDelimiter}", ct);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 设定起始频率列表点数的顺序 (SOUR:LIST:FREQ:STAR)
|
||||
/// </summary>
|
||||
/// <param name="frequencies">起始频率序列 (单位: Hz,每个值 15.00 ~ 100.00)</param>
|
||||
public virtual async Task 设置列表起始频率顺序Async(double[] frequencies, CancellationToken ct = default)
|
||||
{
|
||||
string valStr = string.Join(",", Array.ConvertAll(frequencies, v => v.ToString("0.##", CultureInfo.InvariantCulture)));
|
||||
await SendAsync($"SOUR:LIST:FREQ:STAR {valStr}{ScpiDelimiter}", ct);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 设定结束频率列表点数的顺序 (SOUR:LIST:FREQ:END)
|
||||
/// </summary>
|
||||
/// <param name="frequencies">结束频率序列 (单位: Hz,每个值 15.00 ~ 100.00)</param>
|
||||
public virtual async Task 设置列表结束频率顺序Async(double[] frequencies, CancellationToken ct = default)
|
||||
{
|
||||
string valStr = string.Join(",", Array.ConvertAll(frequencies, v => v.ToString("0.##", CultureInfo.InvariantCulture)));
|
||||
await SendAsync($"SOUR:LIST:FREQ:END {valStr}{ScpiDelimiter}", ct);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 设定相位角度列表点数的顺序 (SOUR:LIST:DEGR)
|
||||
/// </summary>
|
||||
/// <param name="degrees">相位角度序列 (单位: °,每个值 0.0 ~ 359.9)</param>
|
||||
public virtual async Task 设置列表相位角度顺序Async(double[] degrees, CancellationToken ct = default)
|
||||
{
|
||||
string valStr = string.Join(",", Array.ConvertAll(degrees, v => v.ToString("0.#", CultureInfo.InvariantCulture)));
|
||||
await SendAsync($"SOUR:LIST:DEGR {valStr}{ScpiDelimiter}", ct);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 设定操作模态 (OUTP:MODE)
|
||||
/// </summary>
|
||||
/// <param name="mode">操作模态: FIXED | LIST | PULSE | STEP | SYNTH | INTERHAR</param>
|
||||
public virtual async Task 设置操作模态Async(string mode, CancellationToken ct = default)
|
||||
{
|
||||
await SendAsync($"OUTP:MODE {mode}{ScpiDelimiter}", ct);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 在 LIST 模态下设定执行状态 (TRIG)
|
||||
/// <para>需先通过 <see cref="设置操作模态Async"/> 将 OUTP:MODE 设为 LIST</para>
|
||||
/// </summary>
|
||||
/// <param name="isOn">true: 开始执行 LIST, false: 停止 LIST</param>
|
||||
public virtual async Task 触发列表执行Async(bool isOn, CancellationToken ct = default)
|
||||
{
|
||||
string state = isOn ? "ON" : "OFF";
|
||||
await SendAsync($"TRIG {state}{ScpiDelimiter}", ct);
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user