| | |
| | | using HMI.Core.Manager; |
| | | using HMI.Core.Entity; |
| | | using HMI.Core.Manager; |
| | | using HMI.Core.Util; |
| | | using HMI.Util; |
| | | using NationalInstruments.TestStand.Interop.API; |
| | |
| | | using System.Collections.ObjectModel; |
| | | using System.ComponentModel; |
| | | using System.IO; |
| | | using System.Linq; |
| | | using System.Runtime.CompilerServices; |
| | | using System.Timers; |
| | | using System.Windows; |
| | | using System.Windows.Controls; |
| | | using System.Windows.Media; |
| | | |
| | | namespace Plugin.TsExecution |
| | | { |
| | |
| | | } |
| | | } |
| | | #endregion |
| | | private bool isLoadOK = false; |
| | | private int index; |
| | | private string CountIniPath; |
| | | |
| | | private string status = "Ready"; |
| | | |
| | | private ScreenTouch[] screens; |
| | | private ScreenGrid screenGrid; |
| | | |
| | | public string Status |
| | | { |
| | |
| | | } |
| | | } |
| | | |
| | | private string socketName = string.Empty; |
| | | public string SocketName |
| | | { |
| | | get { return socketName; } |
| | | set |
| | | { |
| | | Set(ref socketName, value); |
| | | } |
| | | } |
| | | |
| | | private ObservableCollection<TestStep> _datasource = new ObservableCollection<TestStep>(); |
| | | public ObservableCollection<TestStep> Datasource |
| | | { |
| | |
| | | |
| | | private System.Timers.Timer refreshTimer; |
| | | |
| | | private string currentStep = "等待扫码"; |
| | | private string currentStep = ""; |
| | | public string CurrentStep |
| | | { |
| | | get => currentStep; |
| | |
| | | //Canvas.SetTop(modal, (scannerPanel.ActualHeight - scannerVisualModal.ActualHeight) / 2); |
| | | } |
| | | } |
| | | |
| | | public void RefreshScreen(int[][] configs) |
| | | { |
| | | //foreach (UIElement item in canvas.Children) |
| | | //{ |
| | | // if (item is ScreenTouch) |
| | | // { |
| | | // canvas.Children.Remove(item); |
| | | // } |
| | | //} |
| | | screenContainer.Child = null; |
| | | |
| | | |
| | | screenGrid = new ScreenGrid(1, configs.Length); |
| | | |
| | | screens = new ScreenTouch[configs.Length]; |
| | | |
| | | int space = 2 * (screens.Length + 1); |
| | | for (int i = 0; i < configs.Length; i++) |
| | | { |
| | | var screen = new ScreenTouch(configs[i][0], configs[i][1]) |
| | | { |
| | | Width = Math.Max((tableHeader.ActualHeight / 9 * 16 - space) / screens.Length, 0), |
| | | Height = Math.Max((tableHeader.ActualHeight / 9 * 16 - space) / screens.Length / 16 * 9, 0) |
| | | }; |
| | | screens[i] = screen; |
| | | screenGrid.AddScreen(screen, 0, i); |
| | | } |
| | | screenContainer.Child = screenGrid; |
| | | |
| | | //canvas.Children.Add(screens[0]); |
| | | //Canvas.SetBottom(screens[0], 0); |
| | | //Canvas.SetRight(screens[0], 0); |
| | | //Panel.SetZIndex(screens[0], 999); |
| | | } |
| | | |
| | | public void DrawScreenPoint(int index, int x, int y) |
| | | { |
| | | screens[index].DrawPoint(x, y); |
| | | } |
| | | |
| | | public void DrawScreenPoints(int index, int[][] points) |
| | | { |
| | | screens[index].DrawPoints(points); |
| | | } |
| | | |
| | | public void ClearScreenPoint(int index) |
| | | { |
| | | screens[index].Clear(); |
| | | } |
| | | |
| | | public void RefreshProduct(ProductData product) |
| | | { |
| | | if (product == null) |
| | | { |
| | | screenContainer.Child = null; |
| | | return; |
| | | } |
| | | try |
| | | { |
| | | string screenSize = ProductManager.GetParameterByProductAndName(product.Name, "ScreenTouch")?.Value; |
| | | if (string.IsNullOrEmpty(screenSize)) |
| | | { |
| | | screenContainer.Child = null; |
| | | return; |
| | | } |
| | | string[] arr = screenSize.Split(';'); |
| | | int[][] configs = new int[arr.Length][]; |
| | | |
| | | for (int i = 0; i < arr.Length; i++) |
| | | { |
| | | string[] size = arr[i].Split(','); |
| | | configs[i] = new int[2] { int.Parse(size[0]), int.Parse(size[1]) }; |
| | | } |
| | | RefreshScreen(configs); |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | TsExecution.logger.Error("RefreshProduct Failed.", ex); |
| | | screenContainer.Child = null; |
| | | } |
| | | } |
| | | |
| | | private void control_SizeChanged(object sender, SizeChangedEventArgs e) |
| | | { |
| | | if (screenGrid == null) |
| | | { |
| | | return; |
| | | } |
| | | //screenGrid.Height = tableHeader.ActualHeight - 2; |
| | | //screenGrid.Width = tableHeader.ActualHeight / 9 * 16 - 2; |
| | | |
| | | int space = 2 * (screens.Length + 1); |
| | | |
| | | for (int i = 0; i < screens.Length; i++) |
| | | { |
| | | var screen = screens[i]; |
| | | screen.Width = Math.Max(Math.Floor((tableHeader.ActualHeight / 9 * 16 - space) / screens.Length), 0); |
| | | screen.Height = Math.Max(Math.Floor(screen.Width / 16 * 9), 0); |
| | | } |
| | | } |
| | | |
| | | private void screenContainer_MouseLeftButtonDown(object sender, System.Windows.Input.MouseButtonEventArgs e) |
| | | { |
| | | if (e.ClickCount == 2) |
| | | { |
| | | new ScreenTouchWin(screens) |
| | | { |
| | | Owner = Window.GetWindow(this) |
| | | }.ShowDialog(); |
| | | } |
| | | } |
| | | } |
| | | } |