123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151 |
-
- 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
- {
- /// <summary>
- /// MainPage.xaml 的交互逻辑
- /// </summary>
- 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<MessageBus.NowLoadCameraIndex+1)
- return;
- MessageBus.MainThreadS[MessageBus.NowLoadCameraIndex].ClearHistoryActive();
- }
- private void Page_Loaded(object sender, RoutedEventArgs e)
- {
- this.Width = double.NaN; // 等效于 Auto
- this.Height = double.NaN;
- 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;
- }
- /// <summary>
- /// 启动相机识别
- /// </summary>
- 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;
- }
- /// <summary>
- /// 停止相机识别
- /// </summary>
- 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;
- }
- }
- }
|