using DataEntity.Rack;
|
using DataEntity.Share;
|
using DataRWDAL;
|
using DataRWDAL.Rack;
|
using HxEnum;
|
using System;
|
using System.Collections.Generic;
|
using System.Collections.ObjectModel;
|
using System.Linq;
|
using System.Windows;
|
using System.Windows.Controls;
|
using XCommon.Log;
|
using XCore;
|
using XHandler.Class.DataEx;
|
using XImagingXhandler.XDAL;
|
using Convert = System.Convert;
|
using XHandler.View.Consumables;
|
namespace XHandler.View.MethodProperty
|
{
|
/// <summary>
|
/// 夹爪保持开始 属性页面
|
/// </summary>
|
public partial class BeginHoldingLabwareProperty : UserControl, IMethodProperty,IConsumableObserver
|
{
|
#region 变量
|
private MethodEx method = null;
|
public MethodHoldingLabware methodHoldingLabware { get; set; }
|
private int mark = 0;
|
#endregion
|
|
#region BLL
|
private AspirateBll aspirateBll = new AspirateBll();
|
private GripTransportBll gripTransportBll = new GripTransportBll();
|
#endregion
|
|
#region 构造函数
|
/// <summary>
|
/// 构造函数
|
/// </summary>
|
/// <param name="method"></param>
|
public BeginHoldingLabwareProperty(MethodEx method)
|
{
|
InitializeComponent();
|
|
#region 臂
|
// 获取机械臂信息
|
List<DeviceArm> armList = DataModule.getInstance().GetDeviceArm();
|
cbArm.ItemsSource = armList;
|
#endregion
|
|
#region 转运点位
|
// 加载转运点位
|
LoadGripPosition(Shared.ChanelArmId);
|
#endregion
|
|
#region 抓板方向
|
List<GripTransportModel> gripTransportModels = gripTransportBll.GenerateGripTransportModel(Shared.SoftwareInformation.software_device_number);
|
cbGripModel.ItemsSource = gripTransportModels;
|
#endregion
|
|
#region 抓取耗材
|
// 抓
|
ObservableCollection<Labware> dropdownNames = LabwareDB.GetLabware(2);
|
cbGripPickObject.ItemsSource = dropdownNames;
|
#endregion
|
|
#region 抓板位置
|
List<GripTransportModel> gripTransportModelPoss = gripTransportBll.GetGripTransportModelPoss();
|
cbGripModelPos.ItemsSource = gripTransportModelPoss;
|
#endregion
|
|
methodHoldingLabware = new MethodHoldingLabware();
|
methodHoldingLabware.name = method.method_name;
|
methodHoldingLabware.label = method.method_name;
|
methodHoldingLabware.transportMode = 0;
|
methodHoldingLabware.status = (method.isEnabled == true ? "enable" : "disable");
|
methodHoldingLabware.strIndex = method.strIndex;
|
|
this.method = method;
|
if (method.tag != null)
|
{
|
methodHoldingLabware = (MethodHoldingLabware)method.tag;
|
}
|
this.DataContext = methodHoldingLabware;
|
}
|
#endregion
|
|
bool isConsumableUpdate = false;
|
/// <summary>
|
/// 耗材变更后,更新节点
|
/// </summary>
|
/// <param name="consumableManagement">耗材管理对象</param>
|
public void ReceiveAndUpdate(ConsumableManagement consumableManagement)
|
{
|
isConsumableUpdate = true;
|
// 抓取耗材
|
ObservableCollection<Labware> dropdownNames = LabwareDB.GetLabware(2);
|
cbGripPickObject.ItemsSource = dropdownNames;
|
cbGripPickObject.SelectedValue = methodHoldingLabware.gripPickLabwareValue;
|
}
|
|
#region 加载转运板位
|
/// <summary>
|
/// 加载转运板位
|
/// </summary>
|
/// <param name="armId"></param>
|
private void LoadGripPosition(int armId)
|
{
|
List<GripTransportPosition> gripPositionList = new List<GripTransportPosition>();
|
|
// 获取台面点位
|
List<Lattice> lattices = aspirateBll.ProviderLatticeList(Shared.SoftwareInformation.software_device_number, armId);
|
// 获取台面以外点位
|
List<PositionModel> positons = PositionDB.GetList(Shared.SoftwareInformation.software_information_id);
|
|
foreach (var lattice in lattices)
|
{
|
if (!lattice.lattice_num.Equals("请选择"))
|
{
|
GripTransportPosition gripPosition = new GripTransportPosition();
|
gripPosition.position_id = lattice.lattice_id;
|
gripPosition.position_name = lattice.lattice_num;
|
gripPosition.position_type = EnumManagement.GetEnumValue(PositonTypeEnum.Desktop);
|
gripPositionList.Add(gripPosition);
|
}
|
}
|
|
foreach (var positon in positons)
|
{
|
GripTransportPosition gripPosition = new GripTransportPosition();
|
gripPosition.position_id = positon.id;
|
gripPosition.position_name = positon.name;
|
gripPosition.position_type = positon.type;
|
gripPositionList.Add(gripPosition);
|
}
|
|
cbSourceLattice.ItemsSource = gripPositionList;
|
cbSourceLattice.SelectedIndex = 0;
|
}
|
#endregion
|
|
#region 初始化
|
/// <summary>
|
/// 初始化
|
/// </summary>
|
/// <param name="sender"></param>
|
/// <param name="e"></param>
|
private void UserControl_Loaded(object sender, RoutedEventArgs e)
|
{
|
mark += 1;
|
try
|
{
|
if (mark > 1)
|
{
|
return;
|
}
|
|
List<DeviceArm> armList = (List<DeviceArm>)cbArm.ItemsSource;
|
DeviceArm gripper = armList.FirstOrDefault(it => it.arm_type == EnumManagement.GetEnumValue(ArmTypeEnum.Gripper));
|
cbArm.SelectedItem = gripper;
|
|
if (!string.IsNullOrEmpty(methodHoldingLabware.armValue))
|
{
|
// 机械臂
|
cbArm.SelectedValue = methodHoldingLabware.armValue;
|
// 抓板位
|
cbSourceLattice.SelectedValue = methodHoldingLabware.srcPositionValue;
|
// 抓板方向
|
cbGripModel.SelectedValue = methodHoldingLabware.gripModelValue;
|
// 抓取耗材
|
cbGripPickObject.SelectedValue = methodHoldingLabware.gripPickLabwareValue;
|
// 抓板位置
|
cbGripModelPos.SelectedValue = methodHoldingLabware.gripModelPosValue;
|
|
|
if (methodHoldingLabware.transportMode == 0)
|
rbAll.IsChecked = true;
|
else if (methodHoldingLabware.transportMode == 1)
|
rbExceptOne.IsChecked = true;
|
else if (methodHoldingLabware.transportMode == 2)
|
{
|
rbCount.IsChecked = true;
|
tbxlevel.Text = methodHoldingLabware.transportCount.ToString();
|
}
|
|
if (this.method != null)
|
{
|
this.method.method_Tipcontent = string.Format("从{0}抓板", methodHoldingLabware.srcPositionText);
|
}
|
}
|
}
|
catch (Exception ex)
|
{
|
LoggerHelper.ErrorLog("ERROR:", ex);
|
}
|
}
|
#endregion
|
|
#region 臂
|
/// <summary>
|
/// 臂
|
/// </summary>
|
/// <param name="sender"></param>
|
/// <param name="e"></param>
|
private void cbArm_SelectionChanged(object sender, SelectionChangedEventArgs e)
|
{
|
try
|
{
|
if (cbArm.SelectedIndex < 0)
|
{
|
return;
|
}
|
|
DeviceArm arm = (DeviceArm)cbArm.SelectedItem;
|
methodHoldingLabware.armText = arm.device_arm_name;
|
methodHoldingLabware.armValue = arm.device_arm_id.ToString();
|
}
|
catch (Exception ex)
|
{
|
LoggerHelper.ErrorLog("ERROR:", ex);
|
}
|
}
|
#endregion
|
|
#region 转运板位
|
/// <summary>
|
/// 转运板位
|
/// </summary>
|
/// <param name="sender"></param>
|
/// <param name="e"></param>
|
private void cbSourceLattice_SelectionChanged(object sender, SelectionChangedEventArgs e)
|
{
|
try
|
{
|
if (cbSourceLattice.SelectedIndex < 0 || mark == 0)
|
{
|
return;
|
}
|
|
if (cbSourceLattice.SelectedIndex >= 0)
|
{
|
GripTransportPosition gripPosition = cbSourceLattice.SelectedItem as GripTransportPosition;
|
if (methodHoldingLabware != null)
|
{
|
methodHoldingLabware.srcPositionText = gripPosition.position_name;
|
methodHoldingLabware.srcPositionValue = gripPosition.position_id;
|
methodHoldingLabware.srcPositionType = gripPosition.position_type;
|
}
|
|
if (this.method != null)
|
{
|
this.method.method_Tipcontent = string.Format("从{0}抓板", methodHoldingLabware.srcPositionText);
|
}
|
}
|
}
|
catch (Exception ex)
|
{
|
LoggerHelper.ErrorLog("ERROR:", ex);
|
}
|
}
|
#endregion
|
|
#region 抓板位置
|
/// <summary>
|
/// 抓板位置
|
/// </summary>
|
/// <param name="sender"></param>
|
/// <param name="e"></param>
|
private void cbGripModelPos_SelectionChanged(object sender, SelectionChangedEventArgs e)
|
{
|
try
|
{
|
GripTransportModel gripTransportModel = cbGripModelPos.SelectedItem as GripTransportModel;
|
if (methodHoldingLabware != null)
|
{
|
methodHoldingLabware.gripModelPosText = gripTransportModel.model_name;
|
methodHoldingLabware.gripModelPosValue = Convert.ToInt32(gripTransportModel.model_id);
|
}
|
}
|
catch (Exception ex)
|
{
|
LoggerHelper.ErrorLog("ERROR:", ex);
|
}
|
}
|
#endregion
|
|
#region 抓板方向
|
/// <summary>
|
/// 抓板方向
|
/// </summary>
|
/// <param name="sender"></param>
|
/// <param name="e"></param>
|
private void cbGripModel_SelectionChanged(object sender, SelectionChangedEventArgs e)
|
{
|
try
|
{
|
GripTransportModel gripTransportModel = cbGripModel.SelectedItem as GripTransportModel;
|
if (methodHoldingLabware != null)
|
{
|
methodHoldingLabware.gripModelText = gripTransportModel.model_name;
|
methodHoldingLabware.gripModelValue = Convert.ToInt32(gripTransportModel.model_id);
|
}
|
}
|
catch (Exception ex)
|
{
|
LoggerHelper.ErrorLog("ERROR:", ex);
|
}
|
}
|
#endregion
|
|
#region 抓取耗材
|
/// <summary>
|
/// 抓取耗材
|
/// </summary>
|
/// <param name="sender"></param>
|
/// <param name="e"></param>
|
private void cbGripPickObject_SelectionChanged(object sender, SelectionChangedEventArgs e)
|
{
|
try
|
{
|
if (isConsumableUpdate)
|
{
|
isConsumableUpdate = false;
|
return;
|
}
|
Labware gripTransportModel = cbGripPickObject.SelectedItem as Labware;
|
if (methodHoldingLabware != null)
|
{
|
methodHoldingLabware.gripPickLabwareText = gripTransportModel.labware_name;
|
methodHoldingLabware.gripPickLabwareValue = gripTransportModel.labware_id;
|
}
|
}
|
catch (Exception ex)
|
{
|
LoggerHelper.ErrorLog("ERROR:", ex);
|
}
|
}
|
#endregion
|
|
#region 命令名称
|
/// <summary>
|
/// 命令名称
|
/// </summary>
|
/// <param name="sender"></param>
|
/// <param name="e"></param>
|
private void tbxCommandName_TextChanged(object sender, TextChangedEventArgs e)
|
{
|
try
|
{
|
if (methodHoldingLabware != null)
|
{
|
methodHoldingLabware.name = tbxCommandName.Text;
|
}
|
}
|
catch (Exception ex)
|
{
|
LoggerHelper.ErrorLog("ERROR:", ex);
|
}
|
}
|
#endregion
|
|
public void SetTableName(string name, Labware labware)
|
{
|
}
|
|
private void rbAll_Checked(object sender, RoutedEventArgs e)
|
{
|
if (rbAll.IsChecked == true)
|
{
|
if (methodHoldingLabware != null)
|
{
|
methodHoldingLabware.transportMode = (int)GripTransportModeEnum.TransportAll;
|
}
|
}
|
}
|
|
private void rbExceptOne_Checked(object sender, RoutedEventArgs e)
|
{
|
if (rbExceptOne.IsChecked == true)
|
{
|
if (methodHoldingLabware != null)
|
{
|
|
methodHoldingLabware.transportMode = (int)GripTransportModeEnum.TransportExceptOne;
|
}
|
}
|
}
|
|
private void rbCount_Checked(object sender, RoutedEventArgs e)
|
{
|
if (rbCount.IsChecked == true)
|
{
|
if (methodHoldingLabware != null)
|
{
|
methodHoldingLabware.transportMode = (int)GripTransportModeEnum.TransportCount;
|
}
|
}
|
}
|
|
private void tbxlevel_TextChanged(object sender, TextChangedEventArgs e)
|
{
|
try
|
{
|
if (methodHoldingLabware != null)
|
{
|
methodHoldingLabware.transportCount = Convert.ToInt32(tbxlevel.Text);
|
}
|
}
|
catch (Exception ex)
|
{
|
LoggerHelper.ErrorLog("ERROR:", ex);
|
}
|
}
|
}
|
}
|