diff --git a/头罩视野slove/头罩视野/Services/GetArea.cs b/头罩视野slove/头罩视野/Services/GetArea.cs index 1610f4d..7e539f5 100644 --- a/头罩视野slove/头罩视野/Services/GetArea.cs +++ b/头罩视野slove/头罩视野/Services/GetArea.cs @@ -54,7 +54,7 @@ namespace 头罩视野.Services } } } - + // 没有亮灯,返回0 if (bottomAngles.Count == 0) return 0; diff --git a/头罩视野slove/头罩视野/Views/PageTest.xaml.cs b/头罩视野slove/头罩视野/Views/PageTest.xaml.cs index 95e77bc..4c63c7f 100644 --- a/头罩视野slove/头罩视野/Views/PageTest.xaml.cs +++ b/头罩视野slove/头罩视野/Views/PageTest.xaml.cs @@ -79,8 +79,6 @@ namespace 头罩视野.Views private double _stepAngle = 10.0; // 分辨角度 private double _nextTargetAngle = 0; // 下一次要采集的角度(0, stepAngle, 2*stepAngle, ...) - - bool isLeftOnly = false; bool isRightOnly = false; bool isBinocular = false; @@ -168,16 +166,16 @@ namespace 头罩视野.Views ButtonTest.Content = "测试中..."; // 2. 清空累加值 - _leftTotalArea = 0; - _rightTotalArea = 0; - _binocularTotalArea = 0; - maxBottomViewAngle = 0; + //_leftTotalArea = 0; + //_rightTotalArea = 0; + //_binocularTotalArea = 0; + //maxBottomViewAngle = 0; isLeftOnly = btnLeft.Content.ToString() == "左眼关" && btnRight.Content.ToString() == "右眼开"; - isRightOnly = btnRight.Content.ToString() == "左眼开" && btnLeft.Content.ToString() == "右眼关"; + isRightOnly = btnLeft.Content.ToString() == "左眼开" && btnRight.Content.ToString() == "右眼关"; isBinocular = btnLeft.Content.ToString() == "左眼关" && btnRight.Content.ToString() == "右眼关"; - System.Diagnostics.Debug.WriteLine($"灯条数据:{isLeftOnly}1111{isRightOnly}11111{isBinocular}"); + System.Diagnostics.Debug.WriteLine("start11111"); await calCurrentangle(); _nextTargetAngle = _stepAngle; @@ -192,26 +190,53 @@ namespace 头罩视野.Views public void UpdateVisionResults(double BotViAn) { - zmsyarea.Text = _leftTotalArea.ToString("0.00"); // 左目 - ymsyarea.Text = _rightTotalArea.ToString("0.00"); // 右目 - smsyarea.Text = _binocularTotalArea.ToString("0.00"); // 双目 + zmsyarea.Text = _leftTotalArea.ToString("0"); // 左目 + ymsyarea.Text = _rightTotalArea.ToString("0"); // 右目 + smsyarea.Text = _binocularTotalArea.ToString("0"); // 双目 // 3. 计算空白区视野面积(双目时才有效) - if (double.TryParse(smsyarea.Text, out double binocularTotalArea)) - { - double blankArea = GetArea.GetBlankViewArea(binocularTotalArea); - kbsyarea.Text = blankArea.ToString("0.00"); // 空白视野面积 - } + //if (double.TryParse(smsyarea.Text, out double binocularTotalArea)) + //{ + // double blankArea = GetArea.GetBlankViewArea(binocularTotalArea); + // kbsyarea.Text = blankArea.ToString("0.00"); // 空白视野面积 + //} //// 4. 计算下方视野面积 int botViAnInt = (int)Math.Round(BotViAn); - xfsyarea.Text = botViAnInt.ToString("0.0"); // 下方视野 + xfsyarea.Text = botViAnInt.ToString("0"); // 下方视野 - // 5. 计算视野保存率(双目) - if (double.TryParse(smsyarea.Text, out double totalAreaForRate)) + // 5. 计算视野保存率(双目)根据左右目视野不同算不同的值 + + if (isLeftOnly) { - double binocularRate = GetArea.CalcVisionRate(totalAreaForRate); - sybhl.Text = binocularRate.ToString("0.00"); // 视野保存率 + double binocularRateL = GetArea.CalcVisionRate(_leftTotalArea); + sybhl.Text = binocularRateL.ToString("0"); // 视野保存率 + + double blankArea = GetArea.GetBlankViewArea(_leftTotalArea); + kbsyarea.Text = blankArea.ToString("0"); // 空白视野面积 } + + else if (isRightOnly) + { + double binocularRateR = GetArea.CalcVisionRate(_rightTotalArea); + sybhl.Text = binocularRateR.ToString("0"); // 视野保存率 + double blankArea = GetArea.GetBlankViewArea(_rightTotalArea); + kbsyarea.Text = blankArea.ToString("0"); // 空白视野面积 + } + + else if (isBinocular) + { + double binocularRateD = GetArea.CalcVisionRate(_binocularTotalArea); + sybhl.Text = binocularRateD.ToString("0"); // 视野保存率 + double blankArea = GetArea.GetBlankViewArea(_binocularTotalArea); + kbsyarea.Text = blankArea.ToString("0"); // 空白视野面积 + } + + + //if (double.TryParse(smsyarea.Text, out double totalAreaForRate)) + //{ + // double binocularRate = GetArea.CalcVisionRate(totalAreaForRate); + // sybhl.Text = binocularRate.ToString("0.00"); // 视野保存率 + //} //上面有值之后更新一下 共享数据 ShowAreaData(); } @@ -322,10 +347,10 @@ namespace 头罩视野.Views await Dispatcher.InvokeAsync(() => { - zmsyarea.Text = _leftTotalArea.ToString("0.00"); - ymsyarea.Text = _rightTotalArea.ToString("0.00"); - smsyarea.Text = _binocularTotalArea.ToString("0.00"); - xfsyarea.Text = maxBottomViewAngle.ToString("0.0"); + zmsyarea.Text = _leftTotalArea.ToString("0"); + ymsyarea.Text = _rightTotalArea.ToString("0"); + smsyarea.Text = _binocularTotalArea.ToString("0"); + xfsyarea.Text = maxBottomViewAngle.ToString("0"); }); } @@ -427,7 +452,6 @@ namespace 头罩视野.Views UpdateVisionResults(maxBottomViewAngle); await _modbusMaster.WriteSingleCoilAsync(1, 102, false); isFinished = false; - System.Diagnostics.Debug.WriteLine("start11111"); } @@ -551,6 +575,12 @@ namespace 头罩视野.Views //LedOff(led1); //LedOff(led0); ma.BtnClickFunction(Function.ButtonType.复归型, 90); + zmsyarea.Text = "0"; // 左目 + smsyarea.Text = "0"; // 双目 + kbsyarea.Text = "0"; // 空白 + ymsyarea.Text = "0"; // 右目 + xfsyarea.Text = "0"; // 下方 + sybhl.Text = "0"; // 视野保存率 } //左开眼 private void Button_Click_left(object sender, RoutedEventArgs e)