using System.Configuration; using System.Threading.Tasks; using System; using System.Windows; using XCore; using DriverLib.Engine; using System.Windows.Media; using XHandler.View.MethodProperty; using XImagingXhandler.XDAL; using System.Collections.Generic; using DataEntity.Share; using XImaging.Automation.Service.Interface; using MySqlX.XDevAPI.Common; using XHandler.Controls; using System.Windows.Input; using XCommon.Log; using XHandler.View.Consumables; using XHandler.Controls.Run.Com; using XHandler.View.Dialog; namespace XHandler.View { /// /// 控制面板 /// public partial class ControlPanel : Window { //public MainWindow mainWindow; #region 变量 private UnloadTipsBll unloadTipsBll = new UnloadTipsBll(); private HomeBll homeBll = new HomeBll(); private UnloadTipsControl unloadTipsCtrl = new UnloadTipsControl(Shared.SoftwareInformation.currentculture); #endregion #region 构造函数 /// /// 构造函数 /// public ControlPanel() { InitializeComponent(); } #endregion #region 初始化 /// /// 初始化 /// /// /// private void ControlPanel_Loaded(object sender, RoutedEventArgs e) { try { } catch (Exception ex) { LoggerHelper.ErrorLog("ERROR:", ex); } } #endregion #region 复位 /// /// 复位 /// /// /// private void btnReset_Click(object sender, RoutedEventArgs e) { try { #region 复位 PlsToolTipWin plsToolTipWin = null; Mouse.OverrideCursor = Cursors.Wait; // 状态2 初始化 黄蓝绿交替闪 HxResult ret = CommonBll.StatusLamp(2, false); string strMsg = "复位成功!"; ret = new HxResult(); if (Shared.SoftwareInformation.software_device_number == DeviceCategory.DeviceX3) { // 判断是否有枪头并卸载枪头 string strMsgTip = CheckTipAndUnLoadTip(); if (!string.IsNullOrEmpty(strMsgTip)) { strMsg = strMsgTip; } HomeMParam homeMParam = GetHomeMParam(); ret = homeBll.ExecuteHome(homeMParam, false); // 复位 // 复位成功 if (ret.Result == ResultType.Success) { } // 复位失败 else { strMsg = "复位失败! 信息:" + ret.AlarmInfo; } } else { HomeMParam homeMParam = GetHomeMParam(); ret = homeBll.ExecuteHome(homeMParam, false); // 复位 // 复位成功 if (ret.Result == ResultType.Success) { // 判断是否有枪头并卸载枪头 string strMsgTip = CheckTipAndUnLoadTip(); if (!string.IsNullOrEmpty(strMsgTip)) { strMsg = strMsgTip; } } // 复位失败 else { strMsg = "复位失败! 信息:" + ret.AlarmInfo; } } LoggerHelper.InfoLog(strMsg); // 状态3 待机 蓝色 ret = CommonBll.StatusLamp(3, false); Mouse.OverrideCursor = Cursors.Arrow; System.Windows.Application.Current.Dispatcher.Invoke(new Action(() => { plsToolTipWin = new PlsToolTipWin(strMsg); plsToolTipWin.btnCancel.Visibility = Visibility.Hidden; plsToolTipWin.ShowDialog(); })); #endregion } catch (Exception ex) { LoggerHelper.ErrorLog("ERROR:", ex); } finally { Mouse.OverrideCursor = Cursors.Arrow; } } #endregion #region 卸载枪头 /// /// 卸载枪头 /// /// /// private void btnUnLoadTip_Click(object sender, RoutedEventArgs e) { try { //弹出对话框选择臂和通道 PlsArmChannelWin plsArmChannelWin = null; System.Windows.Application.Current.Dispatcher.Invoke(new Action(() => { plsArmChannelWin = new PlsArmChannelWin(); plsArmChannelWin.ShowDialog(); })); if (plsArmChannelWin.DialogResult == true) { //根据选择的臂和通道退枪头 string armValue = plsArmChannelWin.armValue; string armText = plsArmChannelWin.armText; if (armText.Equals("全部")) { int[] channelArray = plsArmChannelWin.channelArray; string strMsg = "卸载Tip成功!"; PlsToolTipWin plsToolTipWin = null; // 卸载枪头 Mouse.OverrideCursor = Cursors.Wait; string strMsgTip = unloadTipsCtrl.UnLoadTipFromAllArm(); if (!string.IsNullOrEmpty(strMsgTip)) { strMsg = strMsgTip; } Mouse.OverrideCursor = null; System.Windows.Application.Current.Dispatcher.Invoke(new Action(() => { plsToolTipWin = new PlsToolTipWin(strMsg); plsToolTipWin.btnCancel.Visibility = Visibility.Hidden; plsToolTipWin.ShowDialog(); })); } else { int[] channelArray = plsArmChannelWin.channelArray; string strMsg = "卸载Tip成功!"; PlsToolTipWin plsToolTipWin = null; // 卸载枪头 Mouse.OverrideCursor = Cursors.Wait; string strMsgTip = unloadTipsCtrl.UnLoadTip(armValue); if (!string.IsNullOrEmpty(strMsgTip)) { strMsg = strMsgTip; } Mouse.OverrideCursor = null; System.Windows.Application.Current.Dispatcher.Invoke(new Action(() => { plsToolTipWin = new PlsToolTipWin(strMsg); plsToolTipWin.btnCancel.Visibility = Visibility.Hidden; plsToolTipWin.ShowDialog(); })); } } } catch (Exception ex) { LoggerHelper.ErrorLog("ERROR:", ex); } finally { Mouse.OverrideCursor = null; } } /// /// 判断是否有枪头并卸载枪头 /// /// private string CheckTipAndUnLoadTip() { bool isExist = false; string strMsg = string.Empty; PlsToolTipWin plsToolTipWin = null; // 判断是否有枪头 int retN = ADPBll.ExecuteADPCheckTip(out isExist, false); if (retN != 0) // 检查异常 { strMsg = "检查枪头失败"; } else if (isExist) // 检查正常 && 有枪头 { Mouse.OverrideCursor = null; if (ControlCom.CurrentLengthOfTip > 0) { System.Windows.Application.Current.Dispatcher.Invoke(new Action(() => { plsToolTipWin = new PlsToolTipWin("机械臂将在垃圾位卸载Tip头?"); plsToolTipWin.ShowDialog(); })); // 确认卸载 if (plsToolTipWin.DialogResult == true) { // 卸载枪头 Mouse.OverrideCursor = Cursors.Wait; if (ControlCom.CurrentLengthOfTip > 0) { strMsg = unloadTipsCtrl.UnLoadTip(); if (string.IsNullOrEmpty(strMsg)) { // 枪头卸载成功后再复位 HomeMParam homeMParam = GetHomeMParam(); HxResult ret = homeBll.ExecuteHome(homeMParam, false); // 复位 if (ret.Result != ResultType.Success) // 复位失败 { strMsg = "复位失败! 信息:" + ret.AlarmInfo; } } } } } } return strMsg; } /// /// 获取复位参数 /// /// private HomeMParam GetHomeMParam() { HomeMParam homeMParam = new HomeMParam(); homeMParam.xAxisVal = (float)Convert.ToDouble(ConfigurationManager.AppSettings["xAxisSafeVal"]); homeMParam.yAxisVal = (float)Convert.ToDouble(ConfigurationManager.AppSettings["yAxisSafeVal"]); homeMParam.zAxisVal = (float)Convert.ToDouble(ConfigurationManager.AppSettings["zAxisSafeVal"]); return homeMParam; } #endregion #region 控制夹爪 /// /// 控制夹爪 /// /// /// private void btnControlGrip_Click(object sender, RoutedEventArgs e) { try { // 表示【控制夹爪】页面 ControlGrip controlGrip = new ControlGrip(); controlGrip.Owner = (Window)Shared.Main; controlGrip.WindowStartupLocation = WindowStartupLocation.CenterScreen; controlGrip.ShowDialog(); } catch (Exception ex) { LoggerHelper.ErrorLog("ERROR:", ex); } } #endregion #region 控制移液枪 /// /// 控制移液枪 /// /// /// private void btnControlPipetteGun_Click(object sender, RoutedEventArgs e) { try { // 表示【控制移液枪】页面 ControlPipetteGun controlPipetteGun = new ControlPipetteGun(); controlPipetteGun.WindowStartupLocation= WindowStartupLocation.CenterScreen; controlPipetteGun.ShowDialog(); } catch (Exception ex) { LoggerHelper.ErrorLog("ERROR:", ex); } } #endregion #region 关闭窗口 /// /// 关闭窗口 /// /// /// private void btnClose_Click(object sender, RoutedEventArgs e) { try { this.Close(); } catch (Exception ex) { LoggerHelper.ErrorLog("ERROR:", ex); } } #endregion } }