页面逻辑添加
This commit is contained in:
@@ -65,6 +65,39 @@ public static class ModbusHelper
|
||||
MessageBox.Show("保存成功!\n" + filePath);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
//保存方法
|
||||
/// <summary>
|
||||
/// 计算单眼视野面积
|
||||
/// </summary>
|
||||
/// <param name="groupData">20组数据,每组72个通道</param>
|
||||
/// <param name="threshold">有效亮度阈值(如80)</param>
|
||||
/// <param name="standardTotalArea">标准视野面积(如120)</param>
|
||||
/// <returns>计算好的面积</returns>
|
||||
///
|
||||
public static double CalculateEyeArea(List<double[]> groupData, double threshold, double standardArea)
|
||||
{
|
||||
double[] avg = new double[72];
|
||||
for (int c = 0; c < 72; c++)
|
||||
{
|
||||
double sum = 0;
|
||||
foreach (var g in groupData) sum += g[c];
|
||||
avg[c] = sum / groupData.Count;
|
||||
}
|
||||
|
||||
int valid = avg.Count(v => v >= threshold);
|
||||
return (valid / 72.0) * standardArea;
|
||||
}
|
||||
//计算单眼面积调用的方法
|
||||
|
||||
//double leftArea = CalculateEyeArea(
|
||||
// leftEye20Groups, // 左眼20组数据
|
||||
// 80, // 阈值
|
||||
// 120 // 标准面积
|
||||
//);
|
||||
//double rightArea = .CalculateEyeArea(
|
||||
// rightEye20Groups, // 右眼20组数据
|
||||
// 80, // 阈值
|
||||
// 120 // 标准面积
|
||||
//);
|
||||
|
||||
}
|
||||
@@ -91,7 +91,7 @@ namespace 头罩视野.Views
|
||||
{
|
||||
// 读取D1362开始的128个寄存器(64个通道×2) 参数定义:PLC 设备号默认1,数据起始地址D1362 要读的寄存器总数
|
||||
ushort[] registers = _modbusMaster.ReadHoldingRegisters(
|
||||
slaveAddress: 1, // 从站地址,默认1
|
||||
slaveAddress: 1, // 设备站,默认1
|
||||
startAddress: LeftEyeStartAddress,
|
||||
numberOfPoints: ChannelCount * RegistersPerChannel
|
||||
);
|
||||
@@ -195,8 +195,8 @@ namespace 头罩视野.Views
|
||||
{
|
||||
_plcReadTimer?.Stop();
|
||||
_plcReadTimer?.Dispose();
|
||||
_modbusMaster?.Dispose();
|
||||
ModbusHelper.TcpClient?.Close();
|
||||
//_modbusMaster?.Dispose();
|
||||
//ModbusHelper.TcpClient?.Close();
|
||||
|
||||
}
|
||||
private void Page_Loaded(object sender, RoutedEventArgs e)
|
||||
|
||||
Reference in New Issue
Block a user