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