源适应性修改
This commit is contained in:
@@ -173,6 +173,10 @@ namespace PowerAdaptabilityModule.ViewModels
|
||||
/// <summary>列表时间基础 (TIME / CYCLE)</summary>
|
||||
public string ListTimeBase { get => _listTimeBase; set => SetProperty(ref _listTimeBase, value); }
|
||||
|
||||
private string _listPhaseContinue = "DISABLE";
|
||||
/// <summary>相位连续功能 (LIST:PHAS:CONT, DISABLE / ENABLE)</summary>
|
||||
public string ListPhaseContinue { get => _listPhaseContinue; set => SetProperty(ref _listPhaseContinue, value); }
|
||||
|
||||
/// <summary>三相各自的 LIST 序列配置(索引 0=A/Φ1, 1=B/Φ2, 2=C/Φ3),INST:EDIT EACH 逐相下发</summary>
|
||||
private readonly ListPhaseConfig[] _phaseConfigs = { new(), new(), new() };
|
||||
|
||||
@@ -195,8 +199,6 @@ namespace PowerAdaptabilityModule.ViewModels
|
||||
private ListPhaseConfig CurCfg => _phaseConfigs[_listEditPhaseIndex];
|
||||
|
||||
// —— 以下文本属性均代理到"当前编辑相位"的配置,切换相位时统一刷新 ——
|
||||
/// <summary>当前相波形 (FUNC:SHAP:A)</summary>
|
||||
public string ListWaveform { get => CurCfg.Waveform; set { if (CurCfg.Waveform != value) { CurCfg.Waveform = value; RaisePropertyChanged(); } } }
|
||||
/// <summary>相位角度序列 (LIST:DEGR, °)</summary>
|
||||
public string ListDegrText { get => CurCfg.Degr; set { if (CurCfg.Degr != value) { CurCfg.Degr = value; RaisePropertyChanged(); } } }
|
||||
/// <summary>AC 起始电压序列 (LIST:VOLT:AC:STAR, V)</summary>
|
||||
@@ -213,13 +215,12 @@ namespace PowerAdaptabilityModule.ViewModels
|
||||
public string ListFreqEndText { get => CurCfg.FreqEnd; set { if (CurCfg.FreqEnd != value) { CurCfg.FreqEnd = value; RaisePropertyChanged(); } } }
|
||||
/// <summary>静止时间序列 (LIST:DWEL, ms)</summary>
|
||||
public string ListDwellText { get => CurCfg.Dwell; set { if (CurCfg.Dwell != value) { CurCfg.Dwell = value; RaisePropertyChanged(); } } }
|
||||
/// <summary>波形缓冲顺序 (LIST:SHAP, A/B)</summary>
|
||||
/// <summary>波形顺序 (LIST:SHAP,可直接写形状名或引用 A/B 组)</summary>
|
||||
public string ListShapeText { get => CurCfg.ShapeSeq; set { if (CurCfg.ShapeSeq != value) { CurCfg.ShapeSeq = value; RaisePropertyChanged(); } } }
|
||||
|
||||
/// <summary>切换编辑相位后,通知所有序列文本框刷新为新相位内容</summary>
|
||||
private void RaiseListSequenceChanged()
|
||||
{
|
||||
RaisePropertyChanged(nameof(ListWaveform));
|
||||
RaisePropertyChanged(nameof(ListDegrText));
|
||||
RaisePropertyChanged(nameof(ListVoltAcStartText));
|
||||
RaisePropertyChanged(nameof(ListVoltAcEndText));
|
||||
@@ -233,11 +234,12 @@ namespace PowerAdaptabilityModule.ViewModels
|
||||
#endregion
|
||||
|
||||
#region 下拉选项
|
||||
public IReadOnlyList<string> WaveformOptions { get; } = new[] { "SINE", "SQUA", "CSIN" };
|
||||
public IReadOnlyList<string> WaveformOptions { get; } = new[] { "SINE", "SQUA", "TRIAN", "CSIN" };
|
||||
public IReadOnlyList<string> CouplingOptions { get; } = new[] { "AC", "DC", "ACDC" };
|
||||
public IReadOnlyList<string> RelationOptions { get; } = new[] { "INDEPEND", "SAMEFREQ", "BALANCE" };
|
||||
public IReadOnlyList<string> ListTriggerOptions { get; } = new[] { "AUTO", "MANUAL", "EXCITE" };
|
||||
public IReadOnlyList<string> ListTimeBaseOptions { get; } = new[] { "TIME", "CYCLE" };
|
||||
public IReadOnlyList<string> ListPhaseContinueOptions { get; } = new[] { "DISABLE", "ENABLE" };
|
||||
#endregion
|
||||
|
||||
#region 输入参数(SYNTHESIS 自定义谐波波形输出)
|
||||
@@ -257,11 +259,11 @@ namespace PowerAdaptabilityModule.ViewModels
|
||||
public int SynthFrequency { get => _synthFrequency; set => SetProperty(ref _synthFrequency, value); }
|
||||
|
||||
private double _synthFundamental = 220;
|
||||
/// <summary>基波交流电压 (SYNT:FUND, 0.0 ~ 300.0 V)</summary>
|
||||
/// <summary>基波交流电压 (SYNT:FUND, 0.0 ~ 350.0 V)</summary>
|
||||
public double SynthFundamental { get => _synthFundamental; set => SetProperty(ref _synthFundamental, value); }
|
||||
|
||||
private double _synthDc;
|
||||
/// <summary>叠加直流电压 (SYNT:DC, -424.2 ~ 424.2 V)</summary>
|
||||
/// <summary>叠加直流电压 (SYNT:DC, -495.0 ~ 495.0 V)</summary>
|
||||
public double SynthDc { get => _synthDc; set => SetProperty(ref _synthDc, value); }
|
||||
|
||||
private double _synthStartPhase;
|
||||
@@ -526,6 +528,9 @@ namespace PowerAdaptabilityModule.ViewModels
|
||||
ListCount = p.Count;
|
||||
ListTrigger = p.Trigger;
|
||||
ListTimeBase = p.TimeBase;
|
||||
// 旧测试项文件没有相位连续键(PhaseContinue 为 null)时保持界面当前值不动
|
||||
if (!string.IsNullOrWhiteSpace(p.PhaseContinue))
|
||||
ListPhaseContinue = p.PhaseContinue;
|
||||
for (int i = 0; i < 3 && i < p.Phases.Length; i++)
|
||||
_phaseConfigs[i] = p.Phases[i].Clone();
|
||||
|
||||
@@ -534,7 +539,7 @@ namespace PowerAdaptabilityModule.ViewModels
|
||||
PresetName = p.Name; // 名称框回显当前文件名
|
||||
PresetNote = p.Note;
|
||||
_currentPresetPath = PresetPathOf(p.Name); // 记住当前打开的文件,此后“保存”只覆盖它
|
||||
Log($"已载入测试项:{p.Name}(次数={(p.Count == 0 ? "无限" : p.Count.ToString())} 触发={p.Trigger} 时基={p.TimeBase})");
|
||||
Log($"已载入测试项:{p.Name}(次数={(p.Count == 0 ? "无限" : p.Count.ToString())} 触发={p.Trigger} 时基={p.TimeBase} 相位连续={p.PhaseContinue ?? "未指定(保持当前)"})");
|
||||
});
|
||||
|
||||
// 保存:覆盖当前打开的测试项文件(未打开文件时按“另存为”新建)
|
||||
@@ -579,7 +584,8 @@ namespace PowerAdaptabilityModule.ViewModels
|
||||
await _dev.设置列表执行次数Async(ListCount, Ct()); // LIST:COUN(0=无限循环)
|
||||
await _dev.设置列表触发形态Async(ListTrigger, Ct()); // LIST:TRIG
|
||||
await _dev.设置列表时间基础Async(ListTimeBase, Ct()); // LIST:BASE
|
||||
await 下发单相序列Async(_phaseConfigs[p]); // FUNC:SHAP:A + LIST:xxx 序列
|
||||
await _dev.设置列表相位连续Async(ListPhaseContinue, Ct()); // LIST:PHAS:CONT(相位连续,随相位上下文分相)
|
||||
await 下发单相序列Async(_phaseConfigs[p]); // LIST:xxx 序列
|
||||
}
|
||||
|
||||
await _dev.延时Async(StartDelayMs, Ct()); // *D 200(等待仪器就绪)
|
||||
@@ -929,7 +935,7 @@ namespace PowerAdaptabilityModule.ViewModels
|
||||
string stem = Path.GetFileNameWithoutExtension(file);
|
||||
return string.Equals(item.Name, stem, StringComparison.Ordinal)
|
||||
? item
|
||||
: new ListPreset(stem, item.Note, item.Count, item.Phases, item.Trigger, item.TimeBase);
|
||||
: new ListPreset(stem, item.Note, item.Count, item.Phases, item.Trigger, item.TimeBase, item.PhaseContinue);
|
||||
}
|
||||
|
||||
/// <summary>按名称拼出测试项文件完整路径(写入、另存、删除共用同一规则)。</summary>
|
||||
@@ -952,7 +958,8 @@ namespace PowerAdaptabilityModule.ViewModels
|
||||
ListCount,
|
||||
new[] { _phaseConfigs[0].Clone(), _phaseConfigs[1].Clone(), _phaseConfigs[2].Clone() },
|
||||
ListTrigger,
|
||||
ListTimeBase);
|
||||
ListTimeBase,
|
||||
ListPhaseContinue);
|
||||
|
||||
/// <summary>
|
||||
/// 保存:覆盖写入“当前打开的文件”,不改变文件名(名称框内容不参与)。
|
||||
@@ -1446,7 +1453,7 @@ namespace PowerAdaptabilityModule.ViewModels
|
||||
.ToArray();
|
||||
}
|
||||
|
||||
/// <summary>解析波形缓冲顺序(A/B)序列。</summary>
|
||||
/// <summary>解析波形顺序序列(形状名或 A/B)。</summary>
|
||||
private static string[] ParseShapes(string text)
|
||||
{
|
||||
if (string.IsNullOrWhiteSpace(text)) return Array.Empty<string>();
|
||||
@@ -1457,13 +1464,11 @@ namespace PowerAdaptabilityModule.ViewModels
|
||||
|
||||
/// <summary>
|
||||
/// 下发单个相位的 LIST 序列(调用前须已通过 INST:NSEL 选定目标相、并已 INST:EDIT EACH)。
|
||||
/// <para>依次下发 FUNC:SHAP:A 波形,以及 DEGR / VOLT:AC / VOLT:DC / FREQ / DWEL / SHAP 各序列,留空的序列跳过。</para>
|
||||
/// <para>依次下发 DEGR / VOLT:AC / VOLT:DC / FREQ / DWEL / SHAP 各序列,留空的序列跳过;
|
||||
/// LIST:SHAP 各点可直接写形状名 SINE/SQUA/TRIAN/CSIN/DST01~30/USR01~30,也可引用仪器 A/B 波形组。</para>
|
||||
/// </summary>
|
||||
private async Task 下发单相序列Async(ListPhaseConfig cfg)
|
||||
{
|
||||
if (!string.IsNullOrWhiteSpace(cfg.Waveform))
|
||||
await _dev!.设置波形Async(cfg.Waveform.Trim(), Ct()); // FUNC:SHAP:A
|
||||
|
||||
var degr = ParseDoubles(cfg.Degr);
|
||||
if (degr.Length > 0) await _dev!.设置列表相位角度顺序Async(degr, Ct()); // LIST:DEGR
|
||||
|
||||
@@ -1532,12 +1537,11 @@ namespace PowerAdaptabilityModule.ViewModels
|
||||
/// 构建三相对称的 LIST 相位配置:以给定参数为 A 相,B/C 相复制后 DEGR 自动 +120°/+240°。
|
||||
/// 适用于三相平衡试验(电压/频率范围、骤变、瞬时跌落等)。DWEL 单位 ms。
|
||||
/// </summary>
|
||||
private static ListPhaseConfig[] Sym(string waveform, string degr, string vacS, string vacE,
|
||||
private static ListPhaseConfig[] Sym(string degr, string vacS, string vacE,
|
||||
string vdcS, string vdcE, string fS, string fE, string dwell, string shape = "")
|
||||
{
|
||||
var a = new ListPhaseConfig
|
||||
{
|
||||
Waveform = waveform,
|
||||
Degr = degr,
|
||||
VoltAcStart = vacS,
|
||||
VoltAcEnd = vacE,
|
||||
@@ -1562,66 +1566,66 @@ namespace PowerAdaptabilityModule.ViewModels
|
||||
// ===== 5.1 交流电压范围(三相平衡渐变,2 循环,DWEL 单位 ms)=====
|
||||
new ListPreset("5.1 上限电压范围 220→265V",
|
||||
"三相平衡:额定 220V 线性升至上限 265V 再回落,各段 90s,2 循环。判定 A。",
|
||||
2, Sym("SINE", "0,0", "220,265", "265,220", "", "", "50,50", "50,50", "90000,90000")),
|
||||
2, Sym("0,0", "220,265", "265,220", "", "", "50,50", "50,50", "90000,90000")),
|
||||
new ListPreset("5.1 下限电压范围 220→85V",
|
||||
"三相平衡:220V 降至下限 85V 再回升,各段 90s,2 循环。判定 B。",
|
||||
2, Sym("SINE", "0,0", "220,85", "85,220", "", "", "50,50", "50,50", "90000,90000")),
|
||||
2, Sym("0,0", "220,85", "85,220", "", "", "50,50", "50,50", "90000,90000")),
|
||||
new ListPreset("5.1 上限保护电压 220→275V",
|
||||
"验证过压保护点与恢复点:220V 升至 275V 再回落,2 循环。判定 C。",
|
||||
2, Sym("SINE", "0,0", "220,275", "275,220", "", "", "50,50", "50,50", "90000,90000")),
|
||||
2, Sym("0,0", "220,275", "275,220", "", "", "50,50", "50,50", "90000,90000")),
|
||||
new ListPreset("5.1 下限保护电压 220→80V",
|
||||
"验证欠压保护点与恢复点:220V 降至 80V 再回升,2 循环。判定 C。",
|
||||
2, Sym("SINE", "0,0", "220,80", "80,220", "", "", "50,50", "50,50", "90000,90000")),
|
||||
2, Sym("0,0", "220,80", "80,220", "", "", "50,50", "50,50", "90000,90000")),
|
||||
|
||||
// ===== 5.3 交流频率范围(220V 恒定,频率渐变,2 循环)=====
|
||||
new ListPreset("5.3 上限频率范围 50→65Hz",
|
||||
"220V 恒定,频率 50Hz 升至 65Hz 再回落,各段 60s,2 循环。判定 B。",
|
||||
2, Sym("SINE", "0,0", "220,220", "220,220", "", "", "50,65", "65,50", "60000,60000")),
|
||||
2, Sym("0,0", "220,220", "220,220", "", "", "50,65", "65,50", "60000,60000")),
|
||||
new ListPreset("5.3 下限频率范围 50→40Hz",
|
||||
"220V 恒定,频率 50Hz 降至 40Hz 再回升,各段 60s,2 循环。判定 B。",
|
||||
2, Sym("SINE", "0,0", "220,220", "220,220", "", "", "50,40", "40,50", "60000,60000")),
|
||||
2, Sym("0,0", "220,220", "220,220", "", "", "50,40", "40,50", "60000,60000")),
|
||||
new ListPreset("5.3 上限保护频率 50→75Hz",
|
||||
"验证过频保护点与恢复点:50Hz 升至 75Hz 再回落,2 循环。判定 C。",
|
||||
2, Sym("SINE", "0,0", "220,220", "220,220", "", "", "50,75", "75,50", "60000,60000")),
|
||||
2, Sym("0,0", "220,220", "220,220", "", "", "50,75", "75,50", "60000,60000")),
|
||||
|
||||
// ===== 5.4 交流电压骤变(指定相位角阶跃,2 循环)=====
|
||||
new ListPreset("5.4 上限电压骤变 220→265V@90°",
|
||||
"稳态 220V(5s)→在 90° 相位瞬间跳到 265V(0.5s)→跳回。改 DEGR 中间值可切 0/180/270°。判定 B。",
|
||||
2, Sym("SINE", "0,90,0", "220,265,220", "220,265,220", "", "", "50,50,50", "50,50,50", "5000,500,5000")),
|
||||
2, Sym("0,90,0", "220,265,220", "220,265,220", "", "", "50,50,50", "50,50,50", "5000,500,5000")),
|
||||
new ListPreset("5.4 下限电压骤变 220→90V@90°",
|
||||
"稳态 220V→在 90° 瞬间跌到 90V(0.5s)→恢复。判定 B。",
|
||||
2, Sym("SINE", "0,90,0", "220,90,220", "220,90,220", "", "", "50,50,50", "50,50,50", "5000,500,5000")),
|
||||
2, Sym("0,90,0", "220,90,220", "220,90,220", "", "", "50,50,50", "50,50,50", "5000,500,5000")),
|
||||
|
||||
// ===== 5.5 交流频率骤变(2 循环)=====
|
||||
new ListPreset("5.5 上限频率骤变 50→75Hz",
|
||||
"220V 恒定,频率 50Hz 瞬间跳到 75Hz(1s)再回落。判定 B。",
|
||||
2, Sym("SINE", "0,90,0", "220,220,220", "220,220,220", "", "", "50,75,50", "50,75,50", "5000,1000,5000")),
|
||||
2, Sym("0,90,0", "220,220,220", "220,220,220", "", "", "50,75,50", "50,75,50", "5000,1000,5000")),
|
||||
new ListPreset("5.5 下限频率骤变 50→40Hz",
|
||||
"220V 恒定,频率 50Hz 瞬间跌到 40Hz(1s)再回升。判定 B。",
|
||||
2, Sym("SINE", "0,90,0", "220,220,220", "220,220,220", "", "", "50,40,50", "50,40,50", "5000,1000,5000")),
|
||||
2, Sym("0,90,0", "220,220,220", "220,220,220", "", "", "50,40,50", "50,40,50", "5000,1000,5000")),
|
||||
|
||||
// ===== 5.12 瞬时电压跌落/冲击(1ms 突变,2 循环)=====
|
||||
new ListPreset("5.12 0°冲击 310V/1ms",
|
||||
"稳态 220V→0° 相位冲击到 310V 峰值持续 1ms→恢复。1ms 接近 LIST 最小 dwell,若不精确请改 BASE CYCLE。判定不低于 C。",
|
||||
2, Sym("SINE", "0,0,0", "220,310,220", "220,310,220", "", "", "50,50,50", "50,50,50", "5000,1,5000")),
|
||||
2, Sym("0,0,0", "220,310,220", "220,310,220", "", "", "50,50,50", "50,50,50", "5000,1,5000")),
|
||||
new ListPreset("5.12 90°跌落 0V/1ms",
|
||||
"稳态 220V→90° 相位跌到 0V 持续 1ms→恢复。判定不低于 C。",
|
||||
2, Sym("SINE", "0,90,0", "220,0,220", "220,0,220", "", "", "50,50,50", "50,50,50", "5000,1,5000")),
|
||||
2, Sym("0,90,0", "220,0,220", "220,0,220", "", "", "50,50,50", "50,50,50", "5000,1,5000")),
|
||||
|
||||
// ===== 单相深跌(不对称,A 相深跌 / B·C 相浅跌,无限循环)=====
|
||||
new ListPreset("5.x 单相深跌 A相11.5V(不对称示例)",
|
||||
"A 相跌到 11.5V、B/C 相跌到 200.1V,跌落 280ms,前后各稳态 20s;三相 DEGR 基准 0/120/240、中间点各异。无限循环,需手动停止。",
|
||||
0, new[]
|
||||
{
|
||||
new ListPhaseConfig { Waveform = "SINE", Degr = "0,0,0", VoltAcStart = "230,11.5,230", VoltAcEnd = "230,11.5,230", VoltDcStart = "10,10,10", VoltDcEnd = "10,10,10", FreqStart = "50,50,50", FreqEnd = "50,50,50", Dwell = "20000,280,20000" },
|
||||
new ListPhaseConfig { Waveform = "SINE", Degr = "120,92,120", VoltAcStart = "230,200.1,230", VoltAcEnd = "230,200.1,230", VoltDcStart = "10,10,10", VoltDcEnd = "10,10,10", FreqStart = "50,50,50", FreqEnd = "50,50,50", Dwell = "20000,280,20000" },
|
||||
new ListPhaseConfig { Waveform = "SINE", Degr = "240,268,240", VoltAcStart = "230,200.1,230", VoltAcEnd = "230,200.1,230", VoltDcStart = "10,10,10", VoltDcEnd = "10,10,10", FreqStart = "50,50,50", FreqEnd = "50,50,50", Dwell = "20000,280,20000" },
|
||||
new ListPhaseConfig { Degr = "0,0,0", VoltAcStart = "230,11.5,230", VoltAcEnd = "230,11.5,230", VoltDcStart = "10,10,10", VoltDcEnd = "10,10,10", FreqStart = "50,50,50", FreqEnd = "50,50,50", Dwell = "20000,280,20000" },
|
||||
new ListPhaseConfig { Degr = "120,92,120", VoltAcStart = "230,200.1,230", VoltAcEnd = "230,200.1,230", VoltDcStart = "10,10,10", VoltDcEnd = "10,10,10", FreqStart = "50,50,50", FreqEnd = "50,50,50", Dwell = "20000,280,20000" },
|
||||
new ListPhaseConfig { Degr = "240,268,240", VoltAcStart = "230,200.1,230", VoltAcEnd = "230,200.1,230", VoltDcStart = "10,10,10", VoltDcEnd = "10,10,10", FreqStart = "50,50,50", FreqEnd = "50,50,50", Dwell = "20000,280,20000" },
|
||||
}),
|
||||
|
||||
// ===== 6.3 直流电压骤变(注意量程与耦合模式)=====
|
||||
new ListPreset("6.3 直流骤变 680→860→450V【注意量程】",
|
||||
"直流侧瞬时骤变。⚠ 需先在“耦合模式”设为 DC;且 680~860V 已超 Chroma61800.cs 标注的 DC 量程(-424.2~414.2V),须确认设备为高压选配档,否则命令会被拒绝或截顶。",
|
||||
2, Sym("SINE", "0,0,0,0", "", "", "680,860,450,680", "680,860,450,680", "", "", "5000,5000,5000,5000")),
|
||||
"直流侧瞬时骤变。⚠ 需先在“耦合模式”设为 DC;且 680~860V 已超 Chroma61800.cs 标注的 DC 量程(-495.0~495.0V),须确认设备为高压选配档,否则命令会被拒绝或截顶。",
|
||||
2, Sym("0,0,0,0", "", "", "680,860,450,680", "680,860,450,680", "", "", "5000,5000,5000,5000")),
|
||||
};
|
||||
#endregion
|
||||
|
||||
@@ -1639,8 +1643,6 @@ namespace PowerAdaptabilityModule.ViewModels
|
||||
/// </summary>
|
||||
public class ListPhaseConfig
|
||||
{
|
||||
/// <summary>该相波形 (FUNC:SHAP:A),如 SINE / SQUA</summary>
|
||||
public string Waveform { get; set; } = "SINE";
|
||||
/// <summary>相位角度序列 (LIST:DEGR, °)</summary>
|
||||
public string Degr { get; set; } = "";
|
||||
/// <summary>AC 起始电压序列 (LIST:VOLT:AC:STAR, V)</summary>
|
||||
@@ -1657,7 +1659,7 @@ namespace PowerAdaptabilityModule.ViewModels
|
||||
public string FreqEnd { get; set; } = "";
|
||||
/// <summary>静止时间序列 (LIST:DWEL, ms)</summary>
|
||||
public string Dwell { get; set; } = "";
|
||||
/// <summary>波形缓冲顺序 (LIST:SHAP, A/B)</summary>
|
||||
/// <summary>波形顺序 (LIST:SHAP,可直接写形状名或引用 A/B 组)</summary>
|
||||
public string ShapeSeq { get; set; } = "";
|
||||
|
||||
/// <summary>浅拷贝一份配置(用于"复制到三相")。</summary>
|
||||
@@ -1665,7 +1667,7 @@ namespace PowerAdaptabilityModule.ViewModels
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 大纲典型试验预设:一次载入即可填充三相 LIST 序列与基础参数(次数/触发/时基)。
|
||||
/// 大纲典型试验预设:一次载入即可填充三相 LIST 序列与基础参数(次数/触发/时基/相位连续)。
|
||||
/// </summary>
|
||||
public class ListPreset
|
||||
{
|
||||
@@ -1679,12 +1681,14 @@ namespace PowerAdaptabilityModule.ViewModels
|
||||
public string Trigger { get; }
|
||||
/// <summary>时间基础 (LIST:BASE)</summary>
|
||||
public string TimeBase { get; }
|
||||
/// <summary>相位连续功能 (LIST:PHAS:CONT);旧文件无此键时为 null,载入时保持界面当前值</summary>
|
||||
public string? PhaseContinue { get; }
|
||||
/// <summary>三相序列配置(索引 0=A/Φ1, 1=B/Φ2, 2=C/Φ3)</summary>
|
||||
public ListPhaseConfig[] Phases { get; }
|
||||
|
||||
[JsonConstructor]
|
||||
public ListPreset(string name, string note, int count, ListPhaseConfig[] phases,
|
||||
string trigger = "AUTO", string timeBase = "TIME")
|
||||
string trigger = "AUTO", string timeBase = "TIME", string? phaseContinue = null)
|
||||
{
|
||||
Name = name;
|
||||
Note = note;
|
||||
@@ -1692,6 +1696,7 @@ namespace PowerAdaptabilityModule.ViewModels
|
||||
Phases = phases;
|
||||
Trigger = trigger;
|
||||
TimeBase = timeBase;
|
||||
PhaseContinue = phaseContinue;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -163,7 +163,8 @@
|
||||
<TextBlock Text="波形" Style="{StaticResource ParamLabel}" />
|
||||
<ComboBox Width="130" Height="32" FontSize="12" Margin="4,0"
|
||||
ItemsSource="{Binding WaveformOptions}"
|
||||
SelectedItem="{Binding Waveform}" />
|
||||
SelectedItem="{Binding Waveform}"
|
||||
ToolTip="FUNC:SHAP:A — SINE / SQUA / TRIAN(三角)/ CSIN、内建 DST01~30、自定义 USR01~30" />
|
||||
<Button Content="设置" Command="{Binding SetWaveformCommand}"
|
||||
Style="{StaticResource CmdBtn}" />
|
||||
</StackPanel>
|
||||
@@ -228,6 +229,11 @@
|
||||
<ComboBox Width="80" Height="32" FontSize="12" Margin="4,0"
|
||||
ItemsSource="{Binding ListTimeBaseOptions}"
|
||||
SelectedItem="{Binding ListTimeBase}" />
|
||||
<TextBlock Text="相位连续" Style="{StaticResource ParamLabel}" />
|
||||
<ComboBox Width="88" Height="32" FontSize="12" Margin="4,0"
|
||||
ToolTip="SOUR:LIST:PHAS:CONT — 相位连续功能:DISABLE | ENABLE"
|
||||
ItemsSource="{Binding ListPhaseContinueOptions}"
|
||||
SelectedItem="{Binding ListPhaseContinue}" />
|
||||
</StackPanel>
|
||||
|
||||
<Separator Margin="0,6" />
|
||||
@@ -236,10 +242,6 @@
|
||||
<ComboBox Width="100" Height="32" FontSize="12" Margin="4,0"
|
||||
ItemsSource="{Binding ListPhaseOptions}"
|
||||
SelectedIndex="{Binding ListEditPhaseIndex}" />
|
||||
<TextBlock Text="该相波形" Style="{StaticResource ParamLabel}" />
|
||||
<ComboBox Width="80" Height="32" FontSize="12" Margin="4,0"
|
||||
ItemsSource="{Binding WaveformOptions}"
|
||||
SelectedItem="{Binding ListWaveform}" />
|
||||
</StackPanel>
|
||||
<Button Content="复制当前相到三相(B/C 相位角自动 ±120°)"
|
||||
Command="{Binding CopyPhaseToThreeCommand}"
|
||||
@@ -315,7 +317,7 @@
|
||||
<TextBlock Grid.Row="8" Grid.Column="0" Text="波形顺序"
|
||||
Style="{StaticResource ParamLabel}" />
|
||||
<TextBox Grid.Row="8" Grid.Column="1" Style="{StaticResource NumInput}"
|
||||
Width="240" ToolTip="LIST:SHAP,A / B 序列,如 A,A,A(可留空)"
|
||||
Width="240" ToolTip="LIST:SHAP 序列:可直接写形状名 SINE/SQUA/TRIAN/CSIN/DST01~30/USR01~30,或引用 A/B 组,如 SINE,SQUA,TRIAN(可留空)"
|
||||
Text="{Binding ListShapeText, UpdateSourceTrigger=PropertyChanged}" />
|
||||
</Grid>
|
||||
|
||||
|
||||
Reference in New Issue
Block a user