using CCDCount.DLL;
using LogClass;
using MvCameraControl;
using System;
using System.Diagnostics;
using System.Drawing;
using System.IO;
using System.Threading;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Interop;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using static System.Net.Mime.MediaTypeNames;
namespace CCDCountWpf.WpfPage
{
///
/// MainPage.xaml 的交互逻辑
///
public partial class MainPage : Page
{
#region 变量与实例
#endregion
public MainPage()
{
InitializeComponent();
DataContext = ShowMessageBus.ShowBinding;
RenderOptions.SetBitmapScalingMode(MiniShowImageBox1, BitmapScalingMode.LowQuality);
RenderOptions.SetBitmapScalingMode(MiniShowImageBox2, BitmapScalingMode.LowQuality);
RenderOptions.SetBitmapScalingMode(MiniShowImageBox3, BitmapScalingMode.LowQuality);
RenderOptions.SetBitmapScalingMode(MiniShowImageBox4, BitmapScalingMode.LowQuality);
RenderOptions.SetBitmapScalingMode(ShowBox, BitmapScalingMode.LowQuality);
}
private void DataClear_Click(object sender, RoutedEventArgs e)
{
if(MessageBus.MainThreadS.Count=0)
{
if (MessageBus.MainThreadS[MessageBus.NowLoadCameraIndex].CameraRunStatic)
{
StartIdentifyBtn.IsEnabled = false;
StartIdentifyBtn.Opacity = 0.5;
StopIdentifyBtn.IsEnabled = true;
StopIdentifyBtn.Opacity = 1;
}
else
{
StartIdentifyBtn.IsEnabled = true;
StartIdentifyBtn.Opacity = 1;
StopIdentifyBtn.IsEnabled = false;
StopIdentifyBtn.Opacity = 0.5;
}
}
}
private void Grid_SizeChanged(object sender, SizeChangedEventArgs e)
{
if (sender is Grid grid)
{
double columnWidth = grid.ActualHeight / 2; // 高度/2作为列宽
grid.ColumnDefinitions[1].Width = new GridLength(columnWidth);
MiniShowImageBox1.Height = columnWidth / 2 - 10;
MiniShowImageBox2.Height = columnWidth / 2 - 10;
MiniShowImageBox3.Height = columnWidth / 2 - 10;
MiniShowImageBox4.Height = columnWidth / 2 - 10;
}
}
private void MiniShowImageBox2_MouseDown(object sender, System.Windows.Input.MouseButtonEventArgs e)
{
if(MessageBus.MainThreadS.Count < 2) return;
MessageBus.NowLoadCameraIndex = 1;
}
private void MiniShowImageBox1_MouseDown(object sender, System.Windows.Input.MouseButtonEventArgs e)
{
if (MessageBus.MainThreadS.Count < 1) return;
MessageBus.NowLoadCameraIndex = 0;
}
private void MiniShowImageBox3_MouseDown(object sender, System.Windows.Input.MouseButtonEventArgs e)
{
if (MessageBus.MainThreadS.Count < 3) return;
MessageBus.NowLoadCameraIndex = 2;
}
private void MiniShowImageBox4_MouseDown(object sender, System.Windows.Input.MouseButtonEventArgs e)
{
if (MessageBus.MainThreadS.Count < 4) return;
MessageBus.NowLoadCameraIndex = 3;
}
///
/// 启动相机识别
///
private void RunCameraIdentify()
{
for (int i = 0; i < MessageBus.MainThreadS.Count; i++)
{
if (MessageBus.MainThreadS[i].CameraConfigIsChange)
{
MessageBus.MainThreadS[i].ReLoadCameraConfig();
}
//启动单相机实例的全部线程
if (!MessageBus.MainThreadS[i].StartMianThread())
{
FaultLog.RecordErrorMessage(MessageBus.MainThreadS[i].cameraConfig.DeviceName + "_" + MessageBus.MainThreadS[i].cameraConfig.CameraSNNum + "启动失败");
//LOG.error(MessageBus.MainThreadS[i].cameraConfig.DeviceName + "_" + MessageBus.MainThreadS[i].cameraConfig.CameraSNNum + "启动失败");
MessageBox.Show(MessageBus.MainThreadS[i].cameraConfig.DeviceName + "_" + MessageBus.MainThreadS[i].cameraConfig.CameraSNNum + "启动失败");
continue;
}
}
MessageBus.NowLoadCammeraSN = MessageBus.MainThreadS[0].cameraConfig.CameraSNNum;
MessageBus.SeetingNowLoadInMaThreadsIndex = 0;
MessageBus.NowLoadCameraIndex = 0;
}
///
/// 停止相机识别
///
private void StopCameraIdentify()
{
for (int i = 0; i < MessageBus.MainThreadS.Count; i++)
{
//启动单相机实例的全部线程
if (!MessageBus.MainThreadS[i].StopMianThread())
{
FaultLog.RecordErrorMessage(MessageBus.MainThreadS[i].cameraConfig.DeviceName + "_" + MessageBus.MainThreadS[i].cameraConfig.CameraSNNum + "关闭失败");
MessageBox.Show(MessageBus.MainThreadS[i].cameraConfig.DeviceName + "_" + MessageBus.MainThreadS[i].cameraConfig.CameraSNNum + "关闭失败");
continue;
}
}
}
private void StartIdentifyBtn_Click(object sender, RoutedEventArgs e)
{
RunCameraIdentify();
StartIdentifyBtn.IsEnabled = false;
StartIdentifyBtn.Opacity = 0.5;
StopIdentifyBtn.IsEnabled = true;
StopIdentifyBtn.Opacity = 1;
}
private void StopIdentifyBtn_Click(object sender, RoutedEventArgs e)
{
StopCameraIdentify();
StartIdentifyBtn.IsEnabled = true;
StartIdentifyBtn.Opacity = 1;
StopIdentifyBtn.IsEnabled = false;
StopIdentifyBtn.Opacity = 0.5;
}
private void BottingMaterialCylinderVibrationTableHighSpeedValueUpUpBtn_Click(object sender, RoutedEventArgs e)
{
if ((ushort)(PlcSettingMessageBus.PlcMessageShowBindage.BottingMaterialCylinderVibrationTableHighSpeedValue + 10) >
PlcSettingMessageBus.PlcMessageShowBindage.BottingMaterialCylinderVibrationTableHighSpeedValue)
{
PlcSettingMessageBus.PlcMessageShowBindage.BottingMaterialCylinderVibrationTableHighSpeedValue += 10;
}
}
private void BottingMaterialCylinderVibrationTableHighSpeedValueUpBtn_Click(object sender, RoutedEventArgs e)
{
if ((ushort)(PlcSettingMessageBus.PlcMessageShowBindage.BottingMaterialCylinderVibrationTableHighSpeedValue + 1) >
PlcSettingMessageBus.PlcMessageShowBindage.BottingMaterialCylinderVibrationTableHighSpeedValue)
{
PlcSettingMessageBus.PlcMessageShowBindage.BottingMaterialCylinderVibrationTableHighSpeedValue += 1;
}
}
private void BottingMaterialCylinderVibrationTableHighSpeedValueDownBtn_Click(object sender, RoutedEventArgs e)
{
if ((ushort)(PlcSettingMessageBus.PlcMessageShowBindage.BottingMaterialCylinderVibrationTableHighSpeedValue - 1) <
PlcSettingMessageBus.PlcMessageShowBindage.BottingMaterialCylinderVibrationTableHighSpeedValue)
{
PlcSettingMessageBus.PlcMessageShowBindage.BottingMaterialCylinderVibrationTableHighSpeedValue -= 1;
}
}
private void BottingMaterialCylinderVibrationTableHighSpeedValueDownDownBtn_Click(object sender, RoutedEventArgs e)
{
if ((ushort)(PlcSettingMessageBus.PlcMessageShowBindage.BottingMaterialCylinderVibrationTableHighSpeedValue - 10) <
PlcSettingMessageBus.PlcMessageShowBindage.BottingMaterialCylinderVibrationTableHighSpeedValue)
{
PlcSettingMessageBus.PlcMessageShowBindage.BottingMaterialCylinderVibrationTableHighSpeedValue -= 10;
}
}
private void BottingFilterVibrationTableHighSpeedValueUpUpBtn_Click(object sender, RoutedEventArgs e)
{
if ((ushort)(PlcSettingMessageBus.PlcMessageShowBindage.BottingFilterVibrationTableHighSpeedValue + 10) >
PlcSettingMessageBus.PlcMessageShowBindage.BottingFilterVibrationTableHighSpeedValue)
{
PlcSettingMessageBus.PlcMessageShowBindage.BottingFilterVibrationTableHighSpeedValue += 10;
}
}
private void BottingFilterVibrationTableHighSpeedValueUpBtn_Click(object sender, RoutedEventArgs e)
{
if ((ushort)(PlcSettingMessageBus.PlcMessageShowBindage.BottingFilterVibrationTableHighSpeedValue + 1) >
PlcSettingMessageBus.PlcMessageShowBindage.BottingFilterVibrationTableHighSpeedValue)
{
PlcSettingMessageBus.PlcMessageShowBindage.BottingFilterVibrationTableHighSpeedValue += 1;
}
}
private void BottingFilterVibrationTableHighSpeedValueDownBtn_Click(object sender, RoutedEventArgs e)
{
if ((ushort)(PlcSettingMessageBus.PlcMessageShowBindage.BottingFilterVibrationTableHighSpeedValue - 1) <
PlcSettingMessageBus.PlcMessageShowBindage.BottingFilterVibrationTableHighSpeedValue)
{
PlcSettingMessageBus.PlcMessageShowBindage.BottingFilterVibrationTableHighSpeedValue -= 1;
}
}
private void BottingFilterVibrationTableHighSpeedValueDownDownBtn_Click(object sender, RoutedEventArgs e)
{
if ((ushort)(PlcSettingMessageBus.PlcMessageShowBindage.BottingFilterVibrationTableHighSpeedValue - 10) <
PlcSettingMessageBus.PlcMessageShowBindage.BottingFilterVibrationTableHighSpeedValue)
{
PlcSettingMessageBus.PlcMessageShowBindage.BottingFilterVibrationTableHighSpeedValue -= 10;
}
}
private void BottingCountVibrationTableHighSpeedValueUpUpBtn_Click(object sender, RoutedEventArgs e)
{
if ((ushort)(PlcSettingMessageBus.PlcMessageShowBindage.BottingCountVibrationTableHighSpeedValue + 10) >
PlcSettingMessageBus.PlcMessageShowBindage.BottingCountVibrationTableHighSpeedValue)
{
PlcSettingMessageBus.PlcMessageShowBindage.BottingCountVibrationTableHighSpeedValue += 10;
}
}
private void BottingCountVibrationTableHighSpeedValueUpBtn_Click(object sender, RoutedEventArgs e)
{
if ((ushort)(PlcSettingMessageBus.PlcMessageShowBindage.BottingCountVibrationTableHighSpeedValue + 1) >
PlcSettingMessageBus.PlcMessageShowBindage.BottingCountVibrationTableHighSpeedValue)
{
PlcSettingMessageBus.PlcMessageShowBindage.BottingCountVibrationTableHighSpeedValue += 1;
}
}
private void BottingCountVibrationTableHighSpeedValueDownBtn_Click(object sender, RoutedEventArgs e)
{
if ((ushort)(PlcSettingMessageBus.PlcMessageShowBindage.BottingCountVibrationTableHighSpeedValue - 1) <
PlcSettingMessageBus.PlcMessageShowBindage.BottingCountVibrationTableHighSpeedValue)
{
PlcSettingMessageBus.PlcMessageShowBindage.BottingCountVibrationTableHighSpeedValue -= 1;
}
}
private void BottingCountVibrationTableHighSpeedValueDownDownBtn_Click(object sender, RoutedEventArgs e)
{
if ((ushort)(PlcSettingMessageBus.PlcMessageShowBindage.BottingCountVibrationTableHighSpeedValue - 10) <
PlcSettingMessageBus.PlcMessageShowBindage.BottingCountVibrationTableHighSpeedValue)
{
PlcSettingMessageBus.PlcMessageShowBindage.BottingCountVibrationTableHighSpeedValue -= 10;
}
}
}
}