This commit is contained in:
@@ -35,6 +35,8 @@ namespace 头罩视野.Views
|
||||
bool isFinished;
|
||||
//// 定时采集用
|
||||
private DispatcherTimer testTimer;
|
||||
|
||||
private DispatcherTimer testTimerForLight;
|
||||
// 保存上一条数据(用于去重)
|
||||
private TestDataStore.TestRecord? _lastRecord;
|
||||
|
||||
@@ -66,6 +68,11 @@ namespace 头罩视野.Views
|
||||
testTimer.Interval = TimeSpan.FromMilliseconds(500); // 500ms = 0.5秒
|
||||
testTimer.Tick += Timer_Tick;
|
||||
|
||||
|
||||
testTimerForLight = new DispatcherTimer();
|
||||
testTimerForLight.Interval = TimeSpan.FromMilliseconds(1000); // 500ms = 0.5秒
|
||||
testTimerForLight.Tick += testTimerForLight;
|
||||
|
||||
//// 判断连接
|
||||
if (!ModbusHelper.IsConnected)
|
||||
{
|
||||
@@ -160,7 +167,7 @@ namespace 头罩视野.Views
|
||||
//_rightFinalData = Enumerable.Repeat(0, 240).ToList();
|
||||
|
||||
// 面积也清空
|
||||
|
||||
|
||||
|
||||
isLeftOnly = btnLeft.Content.ToString() == "左眼关" && btnRight.Content.ToString() == "右眼开";
|
||||
isRightOnly = btnLeft.Content.ToString() == "左眼开" && btnRight.Content.ToString() == "右眼关";
|
||||
@@ -189,7 +196,7 @@ namespace 头罩视野.Views
|
||||
//botViAnInt = botViAnInt <= 45 ? 52: botViAnInt;
|
||||
botViAnInt = botViAnInt switch
|
||||
{
|
||||
<45 => 52,
|
||||
< 45 => 52,
|
||||
> 70 => 68,
|
||||
_ => botViAnInt
|
||||
};
|
||||
@@ -199,8 +206,8 @@ namespace 头罩视野.Views
|
||||
|
||||
if (isLeftOnly)
|
||||
{
|
||||
//double binocularRateL = GetArea.CalcVisionRate(_leftTotalArea);
|
||||
//sybhl.Text = binocularRateL.ToString("0"); // 视野保存率
|
||||
//double binocularRateL = GetArea.CalcVisionRate(_leftTotalArea);
|
||||
//sybhl.Text = binocularRateL.ToString("0"); // 视野保存率
|
||||
|
||||
//double blankArea = GetArea.GetBlankViewArea(_leftTotalArea);
|
||||
//kbsyarea.Text = blankArea.ToString("0"); // 空白视野面积
|
||||
@@ -213,16 +220,16 @@ namespace 头罩视野.Views
|
||||
//double blankArea = GetArea.GetBlankViewArea(_rightTotalArea);
|
||||
//kbsyarea.Text = blankArea.ToString("0"); // 空白视野面积
|
||||
}
|
||||
if (_leftFinalData != null && _leftFinalData.Count > 0 &&_rightFinalData != null && _rightFinalData.Count > 0)
|
||||
if (_leftFinalData != null && _leftFinalData.Count > 0 && _rightFinalData != null && _rightFinalData.Count > 0)
|
||||
{
|
||||
|
||||
// ✅ 传值调用:把左右眼最终数据传给方法
|
||||
_binocularTotalArea = GetArea.CalculateBinocularArea( _leftFinalData,_rightFinalData, _lightPositions);
|
||||
|
||||
// 显示到界面
|
||||
smsyarea.Text =_binocularTotalArea.ToString("0.00");
|
||||
_binocularTotalArea = GetArea.CalculateBinocularArea(_leftFinalData, _rightFinalData, _lightPositions);
|
||||
|
||||
double zsyareaNumT= (_leftTotalArea + _rightTotalArea) - _binocularTotalArea;
|
||||
// 显示到界面
|
||||
smsyarea.Text = _binocularTotalArea.ToString("0.00");
|
||||
|
||||
double zsyareaNumT = (_leftTotalArea + _rightTotalArea) - _binocularTotalArea;
|
||||
//double zsysaveSumT = GetArea.CalcVisionRate(zsyareaNumT) ;
|
||||
zsyareaNum.Text = zsyareaNumT.ToString("0.0");//总视野面积
|
||||
|
||||
@@ -245,8 +252,8 @@ namespace 头罩视野.Views
|
||||
double zongSmNum1 = (_binocularTotalArea / GlobalData.kbsmsyArea) * 100;
|
||||
zongSmNum1 = zongSmNum1 >= 80 ? 65.5 : zongSmNum1;
|
||||
sybhl.Text = zongSmNum1.ToString("0.00"); // 双目视野保存率
|
||||
double zongNum1 = (zsyareaNumT / GlobalData.zsymjValue ) * 100;
|
||||
zongNum1= zongNum1 >= 96 ? 80 : zongNum1;
|
||||
double zongNum1 = (zsyareaNumT / GlobalData.zsymjValue) * 100;
|
||||
zongNum1 = zongNum1 >= 96 ? 80 : zongNum1;
|
||||
zsysaveSum.Text = zongNum1.ToString("0.00");//总视野保存率
|
||||
}
|
||||
}
|
||||
@@ -327,8 +334,28 @@ namespace 头罩视野.Views
|
||||
}
|
||||
}
|
||||
}
|
||||
private async void testTimerForLightTick(object sender, EventArgs e)
|
||||
{
|
||||
if (_modbusMaster == null)
|
||||
return;
|
||||
ma.BtnClickFunction(Function.ButtonType.切换型, 1);
|
||||
|
||||
//计算
|
||||
var ret = await _modbusMaster.ReadCoilsAsync(1, 1, 1);
|
||||
if (ret != null && ret.Length > 0)
|
||||
{
|
||||
if (ret[0])
|
||||
{
|
||||
LedOn(led0);
|
||||
LedOff(led1);
|
||||
}
|
||||
else
|
||||
{
|
||||
LedOn(led1);
|
||||
LedOff(led0);
|
||||
}
|
||||
}
|
||||
}
|
||||
//计算
|
||||
private async Task calCurrentangle()
|
||||
{
|
||||
await ReadLightBarData();
|
||||
@@ -357,23 +384,23 @@ namespace 头罩视野.Views
|
||||
_leftTotalArea += singleArea;
|
||||
// 实时合并左眼:只要亮过一次,就永久亮
|
||||
|
||||
// 安全获取真实长度
|
||||
int realLength = lightData.Length;
|
||||
// 安全获取真实长度
|
||||
int realLength = lightData.Length;
|
||||
|
||||
// 初始化最终数据(永远和 lightData 一样长,不会错)
|
||||
if (_leftFinalData == null || _leftFinalData.Count != realLength)
|
||||
{
|
||||
_leftFinalData = new List<int>(new int[realLength]);
|
||||
}
|
||||
// 初始化最终数据(永远和 lightData 一样长,不会错)
|
||||
if (_leftFinalData == null || _leftFinalData.Count != realLength)
|
||||
{
|
||||
_leftFinalData = new List<int>(new int[realLength]);
|
||||
}
|
||||
|
||||
for (int i = 0; i < realLength; i++)
|
||||
for (int i = 0; i < realLength; i++)
|
||||
{
|
||||
if (lightData[i] == 1)
|
||||
{
|
||||
if (lightData[i] == 1)
|
||||
{
|
||||
_leftFinalData[i] = 1;
|
||||
}
|
||||
_leftFinalData[i] = 1;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
else if (isRightOnly)
|
||||
@@ -433,8 +460,8 @@ namespace 头罩视野.Views
|
||||
data.RightEyeArea == _lastRecord.RightEyeArea &&
|
||||
data.BinocularArea == _lastRecord.BinocularArea &&
|
||||
data.LowerVision == _lastRecord.LowerVision &&
|
||||
data.VisionRetentionRate == _lastRecord.VisionRetentionRate &&
|
||||
data.totalVisionArea == _lastRecord.totalVisionArea&&
|
||||
data.VisionRetentionRate == _lastRecord.VisionRetentionRate &&
|
||||
data.totalVisionArea == _lastRecord.totalVisionArea &&
|
||||
data.GetVisionRetentionRate == _lastRecord.GetVisionRetentionRate
|
||||
)
|
||||
{
|
||||
@@ -532,13 +559,13 @@ namespace 头罩视野.Views
|
||||
isFinished = false;
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
if (double.TryParse(fbspeed.Text, out double result))
|
||||
{
|
||||
GlobalData.JudgmentalPerspective = result.ToString();
|
||||
GlobalData.JudgmentalPerspective = result.ToString();
|
||||
}
|
||||
|
||||
|
||||
await Task.WhenAll(tasks);
|
||||
}
|
||||
catch (Exception ex)
|
||||
@@ -624,7 +651,7 @@ namespace 头罩视野.Views
|
||||
ma.BtnClickFunction(Function.ButtonType.复归型, 103);
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
// 蓝色亮(蓝色)
|
||||
private void LedOn(Ellipse led)
|
||||
@@ -771,7 +798,7 @@ namespace 头罩视野.Views
|
||||
private void Page_Loaded(object sender, RoutedEventArgs e)
|
||||
{
|
||||
|
||||
|
||||
|
||||
_timer.Start();
|
||||
ma = new Function(_modbusMaster);
|
||||
c = new DataChange();
|
||||
|
||||
Reference in New Issue
Block a user