| | |
| | | using HMI.Base; |
| | | using HMI.Core.Util; |
| | | using HMI.ParameterManage.Entity; |
| | | using HMI.ParameterManage.Util; |
| | | using HMI.UI.Util; |
| | | using log4net; |
| | | using NationalInstruments.TestStand.Interop.API; |
| | | using NationalInstruments.TestStand.Interop.UI.Ax; |
| | | using Plugin.TestResult_WPF.Model; |
| | | using Plugin.TestResult_WPF.Util; |
| | | using System; |
| | | using System.Collections.Generic; |
| | | using System.ComponentModel; |
| | | using System.Linq; |
| | | using System.Runtime.CompilerServices; |
| | | using System.Windows; |
| | | using System.Windows.Controls; |
| | | |
| | |
| | | /// </summary> |
| | | public partial class ViewControl : PluginControl |
| | | { |
| | | |
| | | private CommonCodeParser codeParser = new CommonCodeParser(); |
| | | private double TestTemperature = 60; |
| | | private int TestTime = 3600; |
| | |
| | | /// 测试序列操作句柄 |
| | | /// </summary> |
| | | private SequenceContext SequenceContext = null; |
| | | |
| | | public static ILog Logger { get; private set; } |
| | | |
| | | |
| | | private bool _mesStatus; |
| | |
| | | set => Set(ref _produceStatus, value); |
| | | } |
| | | |
| | | |
| | | public override void SetLogger(ILog logger) |
| | | { |
| | | base.SetLogger(logger); |
| | | Logger = logger; |
| | | } |
| | | |
| | | public ViewControl() |
| | | { |
| | |
| | | |
| | | private void axApplicationMgr_ExecutionClosed(object sender, _ApplicationMgrEvents_ExecutionClosedEvent e) |
| | | { |
| | | |
| | | } |
| | | |
| | | private void axApplicationMgr_UIMessageEvent(object sender, _ApplicationMgrEvents_UIMessageEventEvent e) |
| | |
| | | LoadProduct(); |
| | | testResultView.InitTestStandEngine(); |
| | | Start_Click(null, null); |
| | | Loaded -= UserControl_Loaded; |
| | | } |
| | | |
| | | public void LoadProduct() |
| | |
| | | //this.Time_Heating_Low = Convert.ToDouble(this.parameterManager.Find("Time_Heat_Low").ParmValue); |
| | | //this.Time_Heating_High = Convert.ToDouble(this.parameterManager.Find("Time_Heat_High").ParmValue); |
| | | testResultView.testSeqFile = parameters.FirstOrDefault(p => p.Name == "TestSequence")?.Value; |
| | | |
| | | |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | |
| | | try |
| | | { |
| | | testResultView.StartTestSequence(); |
| | | |
| | | this.modelSelect.IsEnabled = false; |
| | | this.btnStart.IsEnabled = false; |
| | | this.btnStop.IsEnabled = true; |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | MessageBox.Show("启动测试失败!" + ex.Message); |
| | | log.Error("Start_Click Failed.", ex); |
| | | MsgBoxHelper.Error(Window.GetWindow(this), |
| | | $"{this.lang("Ts.StartTestSequenceFailed")}: {ex.Message}"); |
| | | } |
| | | } |
| | | |
| | |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | MessageBox.Show("停止测试失败!" + ex.Message); |
| | | log.Error("Stop_Click Failed.", ex); |
| | | MsgBoxHelper.Error(Window.GetWindow(this), |
| | | $"{this.lang("Ts.StopTestSequenceFailed")}: {ex.Message}"); |
| | | } |
| | | } |
| | | |
| | |
| | | { |
| | | if (scannerWindow1 == null) |
| | | { |
| | | scannerWindow1 = new Scanner("一区扫码"); |
| | | scannerWindow1 = new Scanner(this.lang("Tr.Zone1Scan")) |
| | | { |
| | | Tag = "Zone1" |
| | | }; |
| | | scannerWindow1.FinishBarcode += ScannerWindow_FinishBarcode; |
| | | scannerWindow1.Owner = Window.GetWindow(this); |
| | | //scannerWindow1.Owner = Window.GetWindow(this); |
| | | scannerWindow1.Closed += ScannerWindow1_Closed; |
| | | scannerWindow1.Show(); |
| | | } |
| | |
| | | { |
| | | if (scannerWindow2 == null) |
| | | { |
| | | scannerWindow2 = new Scanner("二区扫码"); |
| | | scannerWindow2 = new Scanner(this.lang("Tr.Zone2Scan")) |
| | | { |
| | | Tag = "Zone2" |
| | | }; |
| | | scannerWindow2.FinishBarcode += ScannerWindow_FinishBarcode; |
| | | scannerWindow2.Owner = Window.GetWindow(this); |
| | | scannerWindow2.Closed += ScannerWindow2_Closed; |
| | |
| | | if (this.SequenceContext == null) return; |
| | | CellInfo cellInfo = codeParser.GetCellInfoByCode(e.positionCode); |
| | | |
| | | string paramName = e.name == "一区扫码" ? "StationState.StartScanner_A" : "StationState.StartScanner_B"; |
| | | string paramName = e.name == "Zone1" ? "StationState.StartScanner_A" : "StationState.StartScanner_B"; |
| | | testResultView.engine.Globals.SetValBoolean(paramName, 0, true); |
| | | string positionCode = e.positionCode, snrCode = e.snrCode; |
| | | //需要增加条码校验功能 |
| | | |
| | | //将读到的条码写入到SN中 |
| | | int dutNo = Convert.ToInt16(positionCode.Split('-')[2]) - 1; |
| | | string LookupStr = e.name == "一区扫码" ? $"StationState.SN[{dutNo}]" : $"StationState.SN[{(dutNo + 54)}]"; |
| | | string LookupStr = e.name == "Zone1" ? $"StationState.SN[{dutNo}]" : $"StationState.SN[{(dutNo + 54)}]"; |
| | | //this.SequenceContext.StationGlobals.SetValString(LookupStr, 0, snrCode); |
| | | //string code = this.SequenceContext.StationGlobals.GetValString(LookupStr, 0); |
| | | |
| | |
| | | |
| | | private void testResultView_Loaded(object sender, RoutedEventArgs e) |
| | | { |
| | | |
| | | } |
| | | |
| | | |
| | | } |
| | | } |