源适应性界面优化

This commit is contained in:
“hsc”
2026-10-12 08:49:04 +08:00
parent 8dd08fcc7a
commit d84f2a874b
3 changed files with 32 additions and 4 deletions
@@ -311,6 +311,7 @@ namespace PowerAdaptabilityModule.ViewModels
public ICommand ListStopCommand { get; }
public ICommand DownloadSynthesisCommand { get; }
public ICommand SynthStopCommand { get; }
public ICommand ResetSynthHarmonicsCommand { get; }
public ICommand LoadSynthPresetCommand { get; }
public ICommand SaveSynthPresetCommand { get; }
public ICommand DeleteSynthPresetCommand { get; }
@@ -445,21 +446,26 @@ namespace PowerAdaptabilityModule.ViewModels
await _dev!.清除错误队列Async(Ct()); // *CLS
await _dev.设置单三相模式Async(true, Ct()); // INST:PHAS THREE
await _dev.设置编辑方式Async("EACH", Ct()); // INST:EDIT EACH(逐相独立编辑)
await _dev.设置列表执行次数Async(ListCount, Ct()); // LIST:COUN(0=无限循环)
await _dev.设置列表触发形态Async(ListTrigger, Ct()); // LIST:TRIG
await _dev.设置列表时间基础Async(ListTimeBase, Ct()); // LIST:BASE
for (int p = 0; p < 3; p++)
{
await _dev.选择相位Async(p + 1, Ct()); // INST:NSEL 1|2|3
// COUN/TRIG/BASE 在 EACH 逐相编辑模式下随相位上下文分相:必须在每相 NSEL 之后各发一次,
// 否则未选中的相 COUN 保持默认 0(无限循环),表现为“设了次数仍一直执行”
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(StartDelayMs, Ct()); // *D 200(等待仪器就绪)
await _dev.设置操作模态Async("LIST", Ct()); // OUTP:MODE LIST
// 回读校验:确认 COUN 真的写入(当前相位上下文=相3);读回 0 而设>0 即未生效
int counBack = await _dev.查询列表执行次数Async(Ct());
await _dev.触发列表执行Async(true, Ct()); // TRIG ON
Log($"三相独立 LIST 已下发并启动(触发={ListTrigger} 次数={(ListCount == 0 ? "无限" : ListCount.ToString())} 时基={ListTimeBase})");
Log($"三相独立 LIST 已下发并启动(触发={ListTrigger} 次数={(ListCount == 0 ? "无限" : ListCount.ToString())} 时基={ListTimeBase};回读COUN={counBack})");
}));
ListStopCommand = new DelegateCommand(async () =>
@@ -502,6 +508,15 @@ namespace PowerAdaptabilityModule.ViewModels
SynthStopCommand = new DelegateCommand(async () =>
await Exec(async () => { await _dev!.触发列表执行Async(false, Ct()); Log("SYNTHESIS 已停止执行(TRIG OFF)"); }));
// 重置谐波:把振幅/相位两个序列框填成 50 个 0(仅改界面文本,需再点「下发并启动 SYNTH」才写入仪器)
ResetSynthHarmonicsCommand = new DelegateCommand(() =>
{
string zeros = string.Join(",", Enumerable.Repeat("0", 50));
SynthAmplitudeText = zeros;
SynthPhaseText = zeros;
Log("SYNTHESIS 谐波已重置:振幅/相位两框均填入 50 个 0;点「下发并启动 SYNTH」写入仪器");
});
// 合成波形的载入 / 保存 / 删除(与 LIST 测试项同机制,文件存于 D:\acp\源测试\合成波形)
LoadSynthPresetCommand = new DelegateCommand(LoadCurrentSynthPreset);
SaveSynthPresetCommand = new DelegateCommand(SaveCurrentSynthPreset);