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; } } } }