This commit is contained in:
GukSang.Jin
2026-01-30 20:19:36 +08:00
parent 24bbf847e0
commit 9d29ea48da

View File

@@ -635,18 +635,63 @@ namespace COFTester.ViewModels
OnPropertyChanged(nameof(IsConnected));
OnPropertyChanged(nameof(ConnectionButtonText));
// 连接成功后立即检查M31状态
// 连接成功后立即检查M31状态并读取参数
if (_daqService is ModbusServiceBase modbusService)
{
try
{
// 读取M31状态
_m31Status = await modbusService.ReadTestStatusAsync();
System.Diagnostics.Debug.WriteLine($"[ViewModel] 连接后M31状态: {(_m31Status ? "1 ()" : "0 ()")}");
UpdateCanStartTest();
// 从寄存器读取参数并更新 Parameters
System.Diagnostics.Debug.WriteLine("[ViewModel] 正在从寄存器读取参数...");
var deviceParams = await modbusService.ReadManualControlParametersAsync();
if (deviceParams != null)
{
// 更新基本测试参数
Parameters.SledMass = deviceParams.SledMass;
Parameters.TestSpeed = deviceParams.TestSpeed;
Parameters.TestDuration = deviceParams.TestDuration;
Parameters.TestStroke = deviceParams.TestStroke;
Parameters.SamplingRate = deviceParams.SamplingRate;
// 更新手动控制参数
Parameters.HorizontalManualSpeed = deviceParams.HorizontalManualSpeed;
Parameters.HorizontalManualDisplacement = deviceParams.HorizontalManualDisplacement;
Parameters.VerticalManualSpeed = deviceParams.VerticalManualSpeed;
Parameters.VerticalManualDisplacement = deviceParams.VerticalManualDisplacement;
Parameters.VerticalLimit = deviceParams.VerticalLimit;
Parameters.HorizontalLimit = deviceParams.HorizontalLimit;
Parameters.ForceCoefficient = deviceParams.ForceCoefficient;
Parameters.ForceProtection = deviceParams.ForceProtection;
// 更新基本测试参数(新增)- SettingsPage 显示用
Parameters.HorizontalTestSpeed = deviceParams.HorizontalTestSpeed;
Parameters.HorizontalTestDisplacement = deviceParams.HorizontalTestDisplacement;
Parameters.VerticalTestSpeed = deviceParams.VerticalTestSpeed;
Parameters.VerticalTestDisplacement = deviceParams.VerticalTestDisplacement;
// 通知 UI 更新
OnPropertyChanged(nameof(Parameters));
System.Diagnostics.Debug.WriteLine("[ViewModel] 参数读取成功并已更新到 UI");
System.Diagnostics.Debug.WriteLine($" 水平测试速度: {deviceParams.HorizontalTestSpeed} mm/min");
System.Diagnostics.Debug.WriteLine($" 水平测试位移: {deviceParams.HorizontalTestDisplacement} mm");
System.Diagnostics.Debug.WriteLine($" 升降测试速度: {deviceParams.VerticalTestSpeed} mm/min");
System.Diagnostics.Debug.WriteLine($" 升降测试位移: {deviceParams.VerticalTestDisplacement} mm");
}
else
{
System.Diagnostics.Debug.WriteLine("[ViewModel] 从寄存器读取参数失败,使用默认值");
}
}
catch (Exception ex)
{
System.Diagnostics.Debug.WriteLine($"[ViewModel] 读取M31状态失败: {ex.Message}");
System.Diagnostics.Debug.WriteLine($"[ViewModel] 读取设备参数失败: {ex.Message}");
// 读取失败不影响连接,继续使用默认参数
}
}
}