页面调试
This commit is contained in:
@@ -121,7 +121,7 @@ namespace 头罩视野.Views
|
||||
{
|
||||
var timer = new DispatcherTimer
|
||||
{
|
||||
Interval = TimeSpan.FromMilliseconds(100)
|
||||
Interval = TimeSpan.FromMilliseconds(500)
|
||||
};
|
||||
timer.Tick += async (s, e) =>
|
||||
{
|
||||
@@ -144,30 +144,28 @@ namespace 头罩视野.Views
|
||||
// 创建任务列表
|
||||
var tasks = new List<Task>
|
||||
{
|
||||
ReadAndUpdateFloatAsync(350, 1, sdtsj1, "F2", ""),
|
||||
ReadAndUpdateFloatAsync(351, 1, sdtsj2, "F2", ""),
|
||||
ReadAndUpdateFloatAsync(352, 1, sdtsj3, "F2", ""),
|
||||
ReadAndUpdateFloatAsync(353, 1, sdtsj4, "F2", ""),
|
||||
ReadAndUpdateFloatAsync(354, 1, sdtsj5, "F2", ""),
|
||||
//ReadAndUpdateFloatAsync(350, 1, c, "F2", ""),
|
||||
//ReadAndUpdateFloatAsync(351, 1, sdtsj2, "F2", ""),
|
||||
//ReadAndUpdateFloatAsync(352, 1, sdtsj3, "F2", ""),
|
||||
//ReadAndUpdateFloatAsync(353, 1, sdtsj4, "F2", ""),
|
||||
//ReadAndUpdateFloatAsync(354, 1, sdtsj5, "F2", ""),
|
||||
//ReadAndUpdateFloatAsync(355, 1, xdtsj1, "F2", " "),
|
||||
//ReadAndUpdateFloatAsync(356, 1, xdtsj2, "F2", " "),
|
||||
//ReadAndUpdateFloatAsync(357, 1, xdtsj3, "F2", " "),
|
||||
//ReadAndUpdateFloatAsync(358, 1, xdtsj4, "F2", " "),
|
||||
//ReadAndUpdateFloatAsync(359, 1, xdtsj5, "F2", " "),
|
||||
//ReadAndUpdateFloatAsync(360, 1, zdtsj1, "F2", " "),
|
||||
//ReadAndUpdateFloatAsync(361, 1, zdtsj2, "F2", " "),
|
||||
//ReadAndUpdateFloatAsync(362, 1, zdtsj3, "F2", " "),
|
||||
//ReadAndUpdateFloatAsync(363, 1, zdtsj4, "F2", " "),
|
||||
//ReadAndUpdateFloatAsync(364, 1, zdtsj5, "F2", " "),
|
||||
|
||||
ReadAndUpdateFloatAsync(212, 2, zymjxs, "F2", ""),
|
||||
ReadAndUpdateFloatAsync(214, 2, yymjxs, "F2", ""),
|
||||
ReadAndUpdateFloatAsync(428, 2, bcjzxs, "F2", ""),
|
||||
|
||||
ReadAndUpdateFloatAsync(355, 1, xdtsj1, "F2", " "),
|
||||
ReadAndUpdateFloatAsync(356, 1, xdtsj2, "F2", " "),
|
||||
ReadAndUpdateFloatAsync(357, 1, xdtsj3, "F2", " "),
|
||||
ReadAndUpdateFloatAsync(358, 1, xdtsj4, "F2", " "),
|
||||
ReadAndUpdateFloatAsync(359, 1, xdtsj5, "F2", " "),
|
||||
|
||||
ReadAndUpdateFloatAsync(360, 1, zdtsj1, "F2", " "),
|
||||
ReadAndUpdateFloatAsync(361, 1, zdtsj2, "F2", " "),
|
||||
ReadAndUpdateFloatAsync(362, 1, zdtsj3, "F2", " "),
|
||||
ReadAndUpdateFloatAsync(363, 1, zdtsj4, "F2", " "),
|
||||
ReadAndUpdateFloatAsync(364, 1, zdtsj5, "F2", " "),
|
||||
|
||||
ReadAndUpdateFloatAsync(340,2, fwbc, "F2", " "),
|
||||
ReadAndUpdateFloatAsync(340,2, fwbc, "F2", " "),
|
||||
ReadAndUpdateFloatAsync(330,2, djxw, "F2", " "),
|
||||
ReadAndUpdateFloatRangeAsync(350, 15, "F2", ""),
|
||||
};
|
||||
|
||||
await Task.WhenAll(tasks);
|
||||
@@ -177,6 +175,44 @@ namespace 头罩视野.Views
|
||||
ShowError($"读取数据失败:{ex.Message}");
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
private async Task ReadAndUpdateFloatRangeAsync(int address, int length, string format, string unit)
|
||||
{
|
||||
try
|
||||
{
|
||||
ushort[] registers = await Task.Run(async () =>
|
||||
await _modbusMaster?.ReadHoldingRegistersAsync(1, (ushort)address, (ushort)length)
|
||||
);
|
||||
|
||||
if (registers != null && registers.Length >= 2)
|
||||
{
|
||||
var controls = new TextBox[]
|
||||
{
|
||||
sdtsj1, sdtsj2, sdtsj3, sdtsj4, sdtsj5,
|
||||
xdtsj1, xdtsj2, xdtsj3, xdtsj4, xdtsj5,
|
||||
zdtsj1, zdtsj2, zdtsj3, zdtsj4, zdtsj5
|
||||
};
|
||||
|
||||
// 一次在UI线程批量更新,避免多次Invoke阻塞
|
||||
await Application.Current.Dispatcher.BeginInvoke(new Action(() =>
|
||||
{
|
||||
for (int i = 0; i < controls.Length; i++)
|
||||
{
|
||||
// 因为你这里是1个寄存器=1个值,所以直接用registers[i]
|
||||
controls[i].Text = registers[i].ToString(format);
|
||||
}
|
||||
}), DispatcherPriority.Background);
|
||||
}
|
||||
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
System.Diagnostics.Debug.WriteLine($"读取地址{address}失败:{ex.Message}");
|
||||
}
|
||||
}
|
||||
|
||||
// 地址, 根据格式显示字符长度 32:2 16:1 ,绑定页面的name 值,F2 保留两位小数,单位
|
||||
private async Task ReadAndUpdateFloatAsync(int address, int length, System.Windows.Controls.TextBox control, string format, string unit)
|
||||
{
|
||||
@@ -269,5 +305,12 @@ namespace 头罩视野.Views
|
||||
ma = new Function(_modbusMaster);
|
||||
c = new DataChange();
|
||||
}
|
||||
private void Page_Unloaded(object sender, RoutedEventArgs e)
|
||||
{
|
||||
|
||||
_timer?.Stop();
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user