页面逻辑修改

This commit is contained in:
2026-04-25 18:32:37 +08:00
parent 2d0e35de7c
commit 22d65413e6
2 changed files with 42 additions and 51 deletions

View File

@@ -26,12 +26,16 @@ namespace 头罩视野.Views
{
/// 只加这一个变量
private CancellationTokenSource? _cts;
private CancellationTokenSource? _cts;
private IModbusMaster _modbusMaster => ModbusResourceManager.Instance.ModbusMaster;
public List<dynamic> LeftEyeDataList { get; private set; }
public List<dynamic> RightEyeDataList { get; private set; }
DispatcherTimer _timer;
DataChange c = new DataChange();
Function ma;
bool isFinished;
//// 定时采集用
private DispatcherTimer testTimer;
// 保存上一条数据(用于去重)
@@ -89,8 +93,8 @@ namespace 头罩视野.Views
// 切换文案:开是关,关是开
if (btnLeft.Content.ToString() == "左眼开")
{
btnLeft.Content = "左眼关";
LedOn(led0);
if (btnRight.Content.ToString() == "右眼关")
@@ -110,7 +114,7 @@ namespace 头罩视野.Views
//LedOn(led0);
}
//右开眼
private void Button_Click_Right(object sender, RoutedEventArgs e)
private void Button_Click_Right(object sender, RoutedEventArgs e)
{
// 切换文案:左眼开 ↔ 左眼关
@@ -120,7 +124,7 @@ namespace 头罩视野.Views
LedOn(led1);
if (btnLeft.Content.ToString() == "左眼关")
{
btnLeft.Content = "左眼开";
LedOff(led0);
ma.BtnClickFunction(Function.ButtonType., 0);
@@ -151,7 +155,7 @@ namespace 头罩视野.Views
}
//正转
private async void Button_Click_ForDown(object sender, MouseButtonEventArgs e)
{
await _modbusMaster.WriteSingleCoilAsync(1, 11, true);
@@ -159,7 +163,7 @@ namespace 头罩视野.Views
private async void Button_Click_ForUp(object sender, MouseButtonEventArgs e)
{
await _modbusMaster.WriteSingleCoilAsync(1, 11, false);
//System.Diagnostics.Debug.WriteLine("正传end");
}
@@ -181,9 +185,8 @@ namespace 头罩视野.Views
ma.BtnClickFunction(Function.ButtonType., 100);
ButtonTest.Content = "测试中....";
testTimer.Start();
var recordPage = GetRecordDatePage();
recordPage?.StartPlcTimer();
recordPage?.StartPlcReadTimer(100);
}
//停止btn
@@ -224,7 +227,7 @@ namespace 头罩视野.Views
data.VisionRetentionRate == _lastRecord.VisionRetentionRate)
{
return; // 一样就不添加
}
}
//原来存的数据清空 切换页面会清空
//TestDataStore.Records.Clear();
// 不一样 → 插入表格
@@ -232,8 +235,6 @@ namespace 头罩视野.Views
_lastRecord = data;
}
//
//打印
private void Button_Click_Print(object sender, RoutedEventArgs e)
@@ -248,7 +249,7 @@ namespace 头罩视野.Views
private void TbTest_Checked(object sender, RoutedEventArgs e)
{
// 选中 → 试样测试
tbTest.Content = "空白测试";
@@ -306,11 +307,20 @@ namespace 头罩视野.Views
//ReadAndUpdateFloatAsync(208, 2, smsyarea, "F2", "cm²"),
//ReadAndUpdateFloatAsync(210 ,2, ymsyarea, "F2", " "),
ReadAndUpdateFloatRangeAsync(200, 12, "F2", "°"),
ReadAndUpdateFloatAsync(424 ,2, kbsyarea, "F2", "cm²"),
//ReadAndUpdateFloatAsync(424 ,2, kbsyarea, "F2", "cm²"),
ReadAndUpdateFloatAsync(310, 2, zdangle, "F2", "°/S"),
ReadAndUpdateFloatAsync(430 ,2, sybhl, "F2", " "),
};
//ReadAndUpdateFloatAsync(430 ,2, sybhl, "F2", " "),
//前1从站地址后1是长度
};
isFinished = _modbusMaster.ReadCoils(1, 102, 1)[0];
if (isFinished)
{
// 还不确定?
var recordPage = GetRecordDatePage();
recordPage?.AddPlcDataRow(LeftEyeDataList, RightEyeDataList); ;
}
await Task.WhenAll(tasks);
}
catch (Exception ex)
@@ -363,28 +373,20 @@ namespace 头罩视野.Views
float value = c.UshortToFloat(registers[1], registers[0]);
float value2 = c.UshortToFloat(registers[3], registers[2]);
float value3 = c.UshortToFloat(registers[5], registers[4]);
float value4 = c.UshortToFloat(registers[7], registers[6]);
float value5 = c.UshortToFloat(registers[9], registers[8]);
float value6 = c.UshortToFloat(registers[11], registers[10]);
//float value4 = c.UshortToFloat(registers[7], registers[6]);
//float value5 = c.UshortToFloat(registers[9], registers[8]);
//float value6 = c.UshortToFloat(registers[11], registers[10]);
//ReadAndUpdateFloatAsync(200, 2, fbspeed, "F2", "°"),
//ReadAndUpdateFloatAsync(202, 2, dqangle, "F2", "°"),
//ReadAndUpdateFloatAsync(204, 2, zmsyarea, "F2", "cm²"),
//ReadAndUpdateFloatAsync(206 ,2, xfsyarea, "F2", " "),
//ReadAndUpdateFloatAsync(208, 2, smsyarea, "F2", "cm²"),
//ReadAndUpdateFloatAsync(210 ,2, ymsyarea, "F2", " "),
Dispatcher.Invoke(() =>
{
fbspeed.Text = value.ToString(format) + unit;
dqangle.Text = value2.ToString(format) + unit;
zmsyarea.Text = value3.ToString(format) + unit;
xfsyarea.Text = value4.ToString(format) + unit;
smsyarea.Text = value5.ToString(format) + unit;
ymsyarea.Text = value6.ToString(format) + unit;
//zmsyarea.Text = value3.ToString(format) + unit;
//xfsyarea.Text = value4.ToString(format) + unit;
//smsyarea.Text = value5.ToString(format) + unit;
//ymsyarea.Text = value6.ToString(format) + unit;
//control.Text = value.ToString(format) + unit);
});
}
@@ -483,8 +485,8 @@ namespace 头罩视野.Views
private void Page_Loaded(object sender, RoutedEventArgs e)
{
System.Diagnostics.Debug.WriteLine("页面加载了112222222");
_timer.Start();
ma = new Function(_modbusMaster);

View File

@@ -30,8 +30,8 @@ namespace 头罩视野.Views
private IModbusMaster _modbusMaster => ModbusResourceManager.Instance.ModbusMaster;
private System.Timers.Timer? _plcReadTimer;
// 表跟数据存储列表
private List<dynamic> LeftEyeDataList = new List<dynamic>();
private List<dynamic> RightEyeDataList = new List<dynamic>();
public List<dynamic> LeftEyeDataList = new List<dynamic>();
public List<dynamic> RightEyeDataList = new List<dynamic>();
// 配置和你PLC地址完全对应 左目
private const int LeftEyeStartAddress = 1362; // D1362
@@ -177,7 +177,7 @@ namespace 头罩视野.Views
/// <summary>
/// 把PLC数据添加到动态表格
/// </summary>
private void AddPlcDataRow(ushort[] registers, List<ushort> dataList, DataGrid dg)
public void AddPlcDataRow(ushort[] registers, List<ushort> dataList, DataGrid dg)
{
// 清空旧数据,防止重复
@@ -210,7 +210,7 @@ namespace 头罩视野.Views
//左右目面积调用方法
private void AddPlcDataRow(List<dynamic> leftEyeDataList, List<dynamic> RightEyeDataList)
public void AddPlcDataRow(List<dynamic> leftEyeDataList, List<dynamic> RightEyeDataList)
{
leftEyeDataList = ModbusHelper.RemoveOutliers(leftEyeDataList);
RightEyeDataList = ModbusHelper.RemoveOutliers(RightEyeDataList);
@@ -260,15 +260,7 @@ namespace 头罩视野.Views
}
private List<dynamic> RemoveOutliers(List<dynamic> leftEyeDataList)
{
throw new NotImplementedException();
}
private double CalcLowerAngle(double[] leftAvg, int v)
{
throw new NotImplementedException();
}
//#endregion
// 保存左眼
@@ -334,10 +326,7 @@ namespace 头罩视野.Views
private void GoRecord(object s, RoutedEventArgs e) => NavigationService.Content = new Views.RecordDate();
private void GoView(object s, RoutedEventArgs e) => NavigationService.Content = new Views.RecordPage();
internal void StartPlcTimer()
{
throw new NotImplementedException();
}
//NavigationService.Navigate(new Views.RecordDate()); 页面相互跳转
}