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