调试
This commit is contained in:
@@ -121,7 +121,7 @@ namespace 头罩视野.Views
|
||||
testTimer.Stop();
|
||||
}
|
||||
|
||||
|
||||
//测试按钮
|
||||
private async void Button_Click_Test(object sender, RoutedEventArgs e)
|
||||
{
|
||||
if (_isTesting)
|
||||
@@ -152,8 +152,8 @@ namespace 头罩视野.Views
|
||||
//maxBottomViewAngle = 0;
|
||||
|
||||
// 初始化:全部设为0(灭)
|
||||
_leftFinalData = Enumerable.Repeat(0, 243).ToList();
|
||||
_rightFinalData = Enumerable.Repeat(0, 243).ToList();
|
||||
//_leftFinalData = Enumerable.Repeat(0, 240).ToList();
|
||||
//_rightFinalData = Enumerable.Repeat(0, 240).ToList();
|
||||
|
||||
// 面积也清空
|
||||
|
||||
@@ -206,8 +206,9 @@ namespace 头罩视野.Views
|
||||
{
|
||||
// ✅ 传值调用:把左右眼最终数据传给方法
|
||||
_binocularTotalArea = GetArea.CalculateBinocularArea( _leftFinalData,_rightFinalData, _lightPositions);
|
||||
//= (_leftTotalArea + _rightTotalArea) - congdie;
|
||||
// 显示到界面
|
||||
smsyarea.Text = _binocularTotalArea.ToString("0.00");
|
||||
smsyarea.Text =_binocularTotalArea.ToString("0.00");
|
||||
|
||||
// 视野保存率(如果需要)
|
||||
double binocularRateD = GetArea.CalcVisionRate(_binocularTotalArea);
|
||||
@@ -291,10 +292,7 @@ namespace 头罩视野.Views
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 采集当前水平角度下的灯条数据,计算该角度的视野面积贡献,并累加到总视野面积中。
|
||||
/// 每次调用只采集一次数据(对应一个水平角度,比如 10°、20°…)。
|
||||
/// </summary>
|
||||
//计算
|
||||
private async Task calCurrentangle()
|
||||
{
|
||||
await ReadLightBarData();
|
||||
@@ -319,27 +317,47 @@ namespace 头罩视野.Views
|
||||
// 5. 根据当前测试模式(左眼/右眼/双目),累加面积
|
||||
if (isLeftOnly)
|
||||
{
|
||||
//System.Diagnostics.Debug.WriteLine($"lightData 实际长度: {lightData.Length}");
|
||||
_leftTotalArea += singleArea;
|
||||
// 实时合并左眼:只要亮过一次,就永久亮
|
||||
for (int i = 0; i < 243; i++)
|
||||
{
|
||||
if (lightData[i] == 1)
|
||||
_leftFinalData[i] = 1;
|
||||
}
|
||||
|
||||
// 安全获取真实长度
|
||||
int realLength = lightData.Length;
|
||||
|
||||
// 初始化最终数据(永远和 lightData 一样长,不会错)
|
||||
if (_leftFinalData == null || _leftFinalData.Count != realLength)
|
||||
{
|
||||
_leftFinalData = new List<int>(new int[realLength]);
|
||||
}
|
||||
|
||||
for (int i = 0; i < realLength; i++)
|
||||
{
|
||||
if (lightData[i] == 1)
|
||||
{
|
||||
_leftFinalData[i] = 1;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
else if (isRightOnly)
|
||||
{
|
||||
_rightTotalArea += singleArea;
|
||||
// 实时合并右眼
|
||||
for (int i = 0; i < 243; i++)
|
||||
int realLength = lightData.Length;
|
||||
|
||||
if (_rightFinalData == null || _rightFinalData.Count != realLength)
|
||||
{
|
||||
_rightFinalData = new List<int>(new int[realLength]);
|
||||
}
|
||||
|
||||
for (int i = 0; i < realLength; i++)
|
||||
{
|
||||
if (lightData[i] == 1)
|
||||
{
|
||||
_rightFinalData[i] = 1;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
// 6. 更新下方视野的最大值(取所有角度中最大的)
|
||||
if (bottomViewAngle > maxBottomViewAngle)
|
||||
|
||||
Reference in New Issue
Block a user