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.Windows;
|
using System.Windows.Controls;
|
using XCommon.Log;
|
using XCore;
|
using XHandler.Class;
|
using XHandler.Class.DataEx;
|
using XHandler.View.Dialog;
|
using XImagingXhandler.XDAL;
|
using XHandler.View.Consumables;
|
using System.Linq;
|
using XHandler.Controls;
|
using XCommon;
|
|
namespace XHandler.View.MethodProperty
|
{
|
/// <summary>
|
/// 夹爪转移
|
/// </summary>
|
public partial class GripTransportProperty : UserControl, IMethodProperty,IConsumableObserver
|
{
|
AspirateBll aspirateBll = new AspirateBll();
|
GripTransportBll gripTransportBll = new GripTransportBll();
|
//List<Lattice> lattices = new List<Lattice>();
|
int curArmSelectedIndex = -1;
|
int curSourceSelectedIndex = -1;
|
int curDestinationSelectedIndex = -1;
|
int curGripPositionSelectedIndex = -1;
|
public MethodGripTransport methodGripTransport { get; set; }
|
public MethodGripTransport currmethodGripTransport = null;
|
public MethodEx method = null;
|
|
#region 全局属性变量
|
string isrun = "";
|
string status = "";
|
string name = "";
|
string label = "";
|
string armText = "";
|
string armValue = "";
|
string sourceLatticeText = "";
|
string sourceLatticeValue = "";
|
string destinationLatticeText = "";
|
string destinationLatticeValue = "";
|
string gripModelText = "";
|
int gripModelValue = 0;
|
string gripModelSetText = "";
|
int pickPosMode = 0;
|
string pickPosValue = "0";
|
|
int gripModelSetValue = 0;
|
string gripModelPosText = "";
|
int gripModelPosValue = 0;
|
string gripPickLabwareValue = "";
|
string gripPickLabwareText = "";
|
|
string gripPlaceLabwareValue = "";
|
string gripPlaceLabwareText = "";
|
int placePosMode = 0;
|
string placePosValue = "0";
|
|
int transportMode = 0;
|
int transportCount = 0;
|
int mark = 0;
|
#endregion
|
|
public GripTransportProperty()
|
{
|
InitializeComponent();
|
}
|
|
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 = methodGripTransport.gripPickLabwareValue;
|
|
// 放在耗材上
|
isConsumableUpdate = true;
|
ObservableCollection<Labware> pickDropdownNames = new ObservableCollection<Labware>(dropdownNames);
|
pickDropdownNames.Insert(0, new Labware() { labware_id = "-1", labware_name = "空板位" });
|
cbGripPlaceObject.ItemsSource = pickDropdownNames;
|
cbGripPlaceObject.SelectedValue = methodGripTransport.gripPlaceLabwareValue;
|
|
}
|
|
|
public GripTransportProperty(MethodEx method)
|
{
|
InitializeComponent();
|
mark = 0;
|
curArmSelectedIndex = 0;
|
curSourceSelectedIndex = 0;
|
curDestinationSelectedIndex = 0;
|
|
List<DeviceArm> deviceArms = DataModule.getInstance().GetDeviceArm();
|
cbArm.ItemsSource = deviceArms;
|
cbArm.SelectedIndex = 0;
|
if (deviceArms.Count == 2) //只有一个臂的情况下默认选中该臂
|
curArmSelectedIndex = 1;
|
else if(deviceArms.Count == 3)
|
curArmSelectedIndex = 2;
|
else if (deviceArms.Count == 4)
|
curArmSelectedIndex = 3;
|
else if (deviceArms.Count == 5)
|
curArmSelectedIndex = 2;
|
|
List<GripTransportModel> gripTransportModels = gripTransportBll.GenerateGripTransportModel(Shared.SoftwareInformation.software_device_number);
|
cbGripModel.ItemsSource = gripTransportModels;
|
cbGripModelSet.ItemsSource = gripTransportModels;
|
|
List<GripTransportModel> gripTransportModelPoss = gripTransportBll.GetGripTransportModelPoss();
|
cbGripModelPos.ItemsSource = gripTransportModelPoss;
|
|
// 抓取耗材
|
ObservableCollection<Labware> dropdownNames = LabwareDB.GetLabware(2);
|
cbGripPickObject.ItemsSource = dropdownNames;
|
|
// 放在耗材上
|
ObservableCollection<Labware> pickDropdownNames = new ObservableCollection<Labware>(dropdownNames);
|
pickDropdownNames.Insert(0, new Labware() { labware_id = "-1", labware_name = "空板位" });
|
cbGripPlaceObject.ItemsSource = pickDropdownNames;
|
|
methodGripTransport = new MethodGripTransport();
|
methodGripTransport.name = method.method_name;
|
methodGripTransport.label = method.method_name;
|
methodGripTransport.transportMode = 0;
|
methodGripTransport.status = (method.isEnabled == true ? "enable" : "disable");
|
methodGripTransport.strIndex = method.strIndex;
|
|
this.method = method;
|
if (method.tag != null)
|
{
|
methodGripTransport = (MethodGripTransport)method.tag;
|
|
currmethodGripTransport = methodGripTransport;
|
isrun = methodGripTransport.isrun;
|
status = methodGripTransport.status;
|
name = methodGripTransport.name;
|
label = methodGripTransport.label;
|
armText = methodGripTransport.armText;
|
armValue = methodGripTransport.armValue;
|
sourceLatticeText = methodGripTransport.srcPositionText;
|
sourceLatticeValue = methodGripTransport.srcPositionValue;
|
destinationLatticeText = methodGripTransport.desPositionText;
|
destinationLatticeValue = methodGripTransport.desPositionValue;
|
gripModelText = methodGripTransport.gripModelText;
|
gripModelValue = methodGripTransport.gripModelValue;
|
gripModelSetText = methodGripTransport.gripModelSetText;
|
gripModelSetValue = methodGripTransport.gripModelSetValue;
|
gripPickLabwareValue = methodGripTransport.gripPickLabwareValue;
|
gripPickLabwareText = methodGripTransport.gripPickLabwareText;
|
pickPosMode= methodGripTransport.pickPosMode;
|
pickPosValue= methodGripTransport.pickPosValue;
|
gripPlaceLabwareValue = methodGripTransport.gripPlaceLabwareValue;
|
gripPlaceLabwareText = methodGripTransport.gripPlaceLabwareText;
|
placePosMode= methodGripTransport.placePosMode;
|
placePosValue = methodGripTransport.placePosValue;
|
|
gripModelPosText = methodGripTransport.gripModelPosText;
|
gripModelPosValue = methodGripTransport.gripModelPosValue;
|
transportMode = methodGripTransport.transportMode;
|
transportCount = methodGripTransport.transportCount;
|
}
|
this.DataContext = methodGripTransport;
|
// 加载转运点位
|
LoadGripPosition(Shared.ChanelArmId);
|
}
|
|
private void UserControl_Loaded(object sender, RoutedEventArgs e)
|
{
|
mark += 1;
|
try
|
{
|
if (mark > 1)
|
{
|
return;
|
}
|
if (!string.IsNullOrEmpty(armText))
|
{
|
tbxCommandName.Text = name;
|
cbArm.SelectedValue = armValue;
|
cbSourceLattice.SelectedValue = sourceLatticeValue;
|
cbDestinationLattice.SelectedValue = destinationLatticeValue;
|
cbGripModel.SelectedValue = gripModelValue;
|
cbGripModelSet.SelectedValue = gripModelSetValue;
|
cbGripModelPos.SelectedValue = gripModelPosValue;
|
cbGripPickObject.SelectedValue = gripPickLabwareValue;
|
cbGripPlaceObject.SelectedValue = gripPlaceLabwareValue;
|
Labware pickLabware = LabwareDB.GetLabware(gripPickLabwareValue);
|
Labware placeLabware = LabwareDB.GetLabware(gripPlaceLabwareValue);
|
|
if (transportMode == 0)
|
{
|
rbAll.IsChecked = true;
|
}
|
else if (transportMode == 1)
|
{
|
rbExceptOne.IsChecked = true;
|
}
|
else if (transportMode == 2)
|
{
|
rbCount.IsChecked = true;
|
tbxlevel.Text = transportCount.ToString();
|
}
|
|
if(pickPosMode==0)
|
{
|
radioBtnBoard.IsChecked= true;
|
}
|
else if(pickPosMode==1)//行
|
{
|
radioBtnRow.IsChecked= true;
|
string resultWells = "";
|
for(int q=1;q<= pickLabware.number_column;q++)
|
{
|
resultWells += ComUtility.GetRowName(pickPosValue)+ q.ToString()+ ",";
|
}
|
resultWells = resultWells.Substring(0, resultWells.Length - 1);
|
PickwellPlate.Selection = resultWells;
|
}
|
else if(pickPosMode==2)//列
|
{
|
radioBtnColumn.IsChecked= true;
|
string resultWells = "";
|
for (int q = 0; q < pickLabware.number_row; q++)
|
{
|
resultWells += ComUtility.GetRowChar(q) + pickPosValue.ToString() + ",";
|
}
|
resultWells = resultWells.Substring(0, resultWells.Length - 1);
|
PickwellPlate.Selection = resultWells;
|
}
|
else if(pickPosMode==3)//孔
|
{
|
radioBtnWell.IsChecked= true;
|
PickwellPlate.Selection = pickPosValue;
|
}
|
|
if (placePosMode == 0)
|
{
|
radioBtnPlaceBoard.IsChecked = true;
|
}
|
else if (placePosMode == 1)//行
|
{
|
radioBtnPlaceRow.IsChecked = true;
|
string resultWells = "";
|
if (placeLabware != null)
|
{
|
for (int q = 1; q <=placeLabware.number_column; q++)
|
{
|
resultWells += ComUtility.GetRowName(placePosValue) + q.ToString() + ",";
|
}
|
resultWells = resultWells.Substring(0, resultWells.Length - 1);
|
}
|
PlacewellPlate.Selection = resultWells;
|
}
|
else if (placePosMode == 2)//列
|
{
|
radioBtnPlaceColumn.IsChecked = true;
|
string resultWells = "";
|
if (placeLabware != null)
|
{
|
for (int q = 0; q < placeLabware.number_row; q++)
|
{
|
resultWells += ComUtility.GetRowChar(q) + placePosValue.ToString() + ",";
|
}
|
resultWells = resultWells.Substring(0, resultWells.Length - 1);
|
}
|
PlacewellPlate.Selection = resultWells;
|
}
|
else if (placePosMode == 3)
|
{
|
radioBtnPlaceWell.IsChecked = true;
|
PlacewellPlate.Selection = placePosValue;
|
}
|
|
if (currmethodGripTransport != null)
|
{
|
methodGripTransport = currmethodGripTransport;
|
}
|
|
if (this.method != null)
|
{
|
this.method.method_Tipcontent = string.Format("从{0}到{1}", methodGripTransport.srcPositionText, methodGripTransport.desPositionText);
|
}
|
}
|
else
|
{
|
Labware pickLabware = LabwareDB.GetLabware(gripPickLabwareValue);
|
Labware placeLabware = LabwareDB.GetLabware(gripPlaceLabwareValue);
|
cbArm.SelectedIndex = curArmSelectedIndex;
|
cbSourceLattice.SelectedIndex = curSourceSelectedIndex;
|
cbDestinationLattice.SelectedIndex = curDestinationSelectedIndex;
|
cbGripModel.SelectedIndex = curGripPositionSelectedIndex;
|
cbGripModelSet.SelectedIndex = curGripPositionSelectedIndex;
|
cbGripModelPos.SelectedIndex = curGripPositionSelectedIndex;
|
cbGripPickObject.SelectedIndex = curGripPositionSelectedIndex;
|
cbGripPlaceObject.SelectedIndex = 0;
|
|
if (methodGripTransport.transportMode == 0)
|
rbAll.IsChecked = true;
|
else if (methodGripTransport.transportMode == 1)
|
rbExceptOne.IsChecked = true;
|
else if (methodGripTransport.transportMode == 2)
|
rbCount.IsChecked = true;
|
|
if(methodGripTransport.pickPosMode==0)
|
{
|
radioBtnBoard.IsChecked = true;
|
}else if(methodGripTransport.pickPosMode==1)
|
{
|
radioBtnRow.IsChecked = true;
|
string resultWells = "";
|
for (int q = 1; q <= pickLabware.number_column; q++)
|
{
|
resultWells += ComUtility.GetRowName(pickPosValue) + q.ToString() + ",";
|
}
|
resultWells = resultWells.Substring(0, resultWells.Length - 1);
|
PickwellPlate.Selection = resultWells;
|
}
|
else if(methodGripTransport.pickPosMode==2)
|
{
|
radioBtnColumn.IsChecked = true;
|
string resultWells = "";
|
for (int q = 0; q < pickLabware.number_row; q++)
|
{
|
resultWells += ComUtility.GetRowChar(q) + pickPosValue.ToString() + ",";
|
}
|
resultWells = resultWells.Substring(0, resultWells.Length - 1);
|
PickwellPlate.Selection = resultWells;
|
}
|
else if(methodGripTransport.pickPosMode==3)
|
{
|
radioBtnWell.IsChecked = true;
|
PickwellPlate.Selection = pickPosValue;
|
}
|
|
if (methodGripTransport.placePosMode == 0)
|
{
|
radioBtnPlaceBoard.IsChecked = true;
|
}
|
else if (methodGripTransport.placePosMode == 1)
|
{
|
radioBtnPlaceRow.IsChecked = true;
|
string resultWells = "";
|
if (placeLabware != null)
|
{
|
for (int q = 1; q <= placeLabware.number_column; q++)
|
{
|
resultWells += ComUtility.GetRowName(placePosValue) + q.ToString() + ",";
|
}
|
resultWells = resultWells.Substring(0, resultWells.Length - 1);
|
}
|
PlacewellPlate.Selection = resultWells;
|
}
|
else if (methodGripTransport.placePosMode == 2)
|
{
|
radioBtnPlaceColumn.IsChecked = true;
|
string resultWells = "";
|
if (placeLabware != null)
|
{
|
for (int q = 0; q < placeLabware.number_row; q++)
|
{
|
resultWells += ComUtility.GetRowChar(q) + placePosValue.ToString() + ",";
|
}
|
resultWells = resultWells.Substring(0, resultWells.Length - 1);
|
}
|
PlacewellPlate.Selection = resultWells;
|
}
|
else if (methodGripTransport.placePosMode == 3)
|
{
|
radioBtnPlaceWell.IsChecked = true;
|
PlacewellPlate.Selection = placePosValue;
|
}
|
|
if (currmethodGripTransport != null)
|
{
|
methodGripTransport = currmethodGripTransport;
|
}
|
if (this.method != null)
|
{
|
this.method.method_Tipcontent = string.Format("从{0}到{1}", methodGripTransport.srcPositionText, methodGripTransport.desPositionText);
|
}
|
}
|
}
|
catch (Exception ex)
|
{
|
LoggerHelper.ErrorLog("ERROR:", ex);
|
}
|
}
|
|
private void cbArm_SelectionChanged(object sender, SelectionChangedEventArgs e)
|
{
|
if (cbArm.SelectedIndex < 0)
|
{
|
return;
|
}
|
|
curArmSelectedIndex = cbArm.SelectedIndex;
|
DeviceArm arm = (DeviceArm)cbArm.SelectedItem;
|
if (methodGripTransport != null)
|
{
|
methodGripTransport.armText = arm.device_arm_name;
|
methodGripTransport.armValue = arm.device_arm_id.ToString();
|
}
|
}
|
|
public void SetTableName(string name, Labware labware)
|
{
|
//TextBox tb = Utilities.FindVisualChild<TextBox>(cbSourceLattice);
|
//if (tb.IsFocused)
|
//{
|
// Lattice l = lattices.Find(s => s.lattice_num == name);
|
// cbSourceLattice.SelectedItem = l;
|
//}
|
//else
|
//{
|
// TextBox tb1 = Utilities.FindVisualChild<TextBox>(cbDestinationLattice);
|
// if (tb1.IsFocused)
|
// {
|
// Lattice l = lattices.Find(s => s.lattice_num == name);
|
// cbDestinationLattice.SelectedItem = l;
|
// }
|
//}
|
|
}
|
|
private void cbSourceLattice_SelectionChanged(object sender, SelectionChangedEventArgs e)
|
{
|
if (cbSourceLattice.SelectedIndex < 0 || mark == 0)
|
return;
|
curSourceSelectedIndex = cbSourceLattice.SelectedIndex;
|
|
if (string.IsNullOrEmpty(methodGripTransport.armValue))
|
{
|
new MessageDialog(Properties.Resources.msgPlsSelectArm).ShowDialog();
|
}
|
|
if (cbSourceLattice.SelectedIndex >= 0)
|
{
|
GripTransportPosition gripPosition = cbSourceLattice.SelectedItem as GripTransportPosition;
|
if (methodGripTransport != null)
|
{
|
methodGripTransport.srcPositionText = gripPosition.position_name;
|
methodGripTransport.srcPositionValue = gripPosition.position_id;
|
methodGripTransport.srcPositionType = gripPosition.position_type;
|
}
|
|
if (this.method != null)
|
{
|
this.method.method_Tipcontent = string.Format("从{0}到{1}", methodGripTransport.srcPositionText, methodGripTransport.desPositionText);
|
}
|
}
|
}
|
|
private void cbDestinationLattice_SelectionChanged(object sender, SelectionChangedEventArgs e)
|
{
|
if (cbDestinationLattice.SelectedIndex < 0 || mark == 0)
|
return;
|
curDestinationSelectedIndex = cbDestinationLattice.SelectedIndex;
|
|
if (string.IsNullOrEmpty(methodGripTransport.armValue))
|
{
|
new MessageDialog(Properties.Resources.msgPlsSelectArm).ShowDialog();
|
}
|
|
if (cbDestinationLattice.SelectedIndex >= 0)
|
{
|
GripTransportPosition gripPosition = cbDestinationLattice.SelectedItem as GripTransportPosition;
|
if (methodGripTransport != null)
|
{
|
methodGripTransport.desPositionText = gripPosition.position_name;
|
methodGripTransport.desPositionValue = gripPosition.position_id;
|
methodGripTransport.desPositionType = gripPosition.position_type;
|
}
|
|
if (this.method != null)
|
{
|
this.method.method_Tipcontent = string.Format("从{0}到{1}", methodGripTransport.srcPositionText, methodGripTransport.desPositionText);
|
}
|
}
|
}
|
|
private void rbAll_Checked(object sender, RoutedEventArgs e)
|
{
|
if (rbAll.IsChecked == true)
|
{
|
if (methodGripTransport != null)
|
{
|
methodGripTransport.transportMode = (int)GripTransportModeEnum.TransportAll;
|
}
|
}
|
}
|
|
private void rbExceptOne_Checked(object sender, RoutedEventArgs e)
|
{
|
if (rbExceptOne.IsChecked == true)
|
{
|
if (methodGripTransport != null)
|
{
|
|
methodGripTransport.transportMode = (int)GripTransportModeEnum.TransportExceptOne;
|
}
|
}
|
}
|
|
private void rbCount_Checked(object sender, RoutedEventArgs e)
|
{
|
if (rbCount.IsChecked == true)
|
{
|
if (methodGripTransport != null)
|
{
|
methodGripTransport.transportMode = (int)GripTransportModeEnum.TransportCount;
|
}
|
}
|
|
}
|
|
private void tbxCommandName_TextChanged(object sender, TextChangedEventArgs e)
|
{
|
try
|
{
|
if (methodGripTransport != null)
|
{
|
methodGripTransport.name = tbxCommandName.Text;
|
}
|
}
|
catch (Exception ex)
|
{
|
LoggerHelper.ErrorLog("ERROR:", ex);
|
}
|
}
|
|
private void cbGripModel_SelectionChanged(object sender, SelectionChangedEventArgs e)
|
{
|
try
|
{
|
GripTransportModel gripTransportModel = cbGripModel.SelectedItem as GripTransportModel;
|
if (methodGripTransport != null)
|
{
|
if (string.IsNullOrEmpty(methodGripTransport.armValue))
|
{
|
new MessageDialog(Properties.Resources.msgPlsSelectArm).ShowDialog();
|
}
|
|
methodGripTransport.gripModelText = gripTransportModel.model_name;
|
methodGripTransport.gripModelValue = Convert.ToInt32(gripTransportModel.model_id);
|
}
|
}
|
catch (Exception ex)
|
{
|
LoggerHelper.ErrorLog("ERROR:", ex);
|
}
|
}
|
|
private void tbxlevel_TextChanged(object sender, TextChangedEventArgs e)
|
{
|
try
|
{
|
if (methodGripTransport != null)
|
{
|
methodGripTransport.transportCount = Convert.ToInt32(tbxlevel.Text);
|
}
|
}
|
catch (Exception ex)
|
{
|
LoggerHelper.ErrorLog("ERROR:", ex);
|
}
|
}
|
|
private void cbGripModelSet_SelectionChanged(object sender, SelectionChangedEventArgs e)
|
{
|
try
|
{
|
GripTransportModel gripTransportModel = cbGripModelSet.SelectedItem as GripTransportModel;
|
if (methodGripTransport != null)
|
{
|
if (string.IsNullOrEmpty(methodGripTransport.armValue))
|
{
|
new MessageDialog(Properties.Resources.msgPlsSelectArm).ShowDialog();
|
}
|
|
methodGripTransport.gripModelSetText = gripTransportModel.model_name;
|
methodGripTransport.gripModelSetValue = Convert.ToInt32(gripTransportModel.model_id);
|
}
|
}
|
catch (Exception ex)
|
{
|
LoggerHelper.ErrorLog("ERROR:", ex);
|
}
|
}
|
|
private void cbGripModelPos_SelectionChanged(object sender, SelectionChangedEventArgs e)
|
{
|
try
|
{
|
GripTransportModel gripTransportModel = cbGripModelPos.SelectedItem as GripTransportModel;
|
if (methodGripTransport != null)
|
{
|
methodGripTransport.gripModelPosText = gripTransportModel.model_name;
|
methodGripTransport.gripModelPosValue = Convert.ToInt32(gripTransportModel.model_id);
|
}
|
}
|
catch (Exception ex)
|
{
|
LoggerHelper.ErrorLog("ERROR:", ex);
|
}
|
}
|
|
/// <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 (methodGripTransport != null)
|
{
|
if (string.IsNullOrEmpty(methodGripTransport.armValue))
|
{
|
new MessageDialog(Properties.Resources.msgPlsSelectArm).ShowDialog();
|
}
|
|
methodGripTransport.gripPickLabwareText = gripTransportModel.labware_name;
|
methodGripTransport.gripPickLabwareValue = gripTransportModel.labware_id;
|
|
PickwellPlate.Rows = gripTransportModel.number_row;
|
PickwellPlate.Columns = gripTransportModel.number_column;
|
PickwellPlate.labwareWellInfoList = gripTransportModel.labwareWellInfoList;
|
PickwellPlate.LabwareRealWidth = gripTransportModel.labware_length;
|
PickwellPlate.LabwareRealLength = gripTransportModel.labware_width;
|
PickwellPlate.DataContext = gripTransportModel;
|
PickwellPlate.Selection = "";
|
}
|
}
|
catch (Exception ex)
|
{
|
LoggerHelper.ErrorLog("ERROR:", ex);
|
}
|
}
|
|
#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;
|
cbDestinationLattice.ItemsSource = gripPositionList;
|
|
cbSourceLattice.SelectedIndex = 0;
|
cbDestinationLattice.SelectedIndex = 0;
|
}
|
#endregion
|
|
private void cbGripPlaceObject_SelectionChanged(object sender, SelectionChangedEventArgs e)
|
{
|
try
|
{
|
if(isConsumableUpdate)
|
{
|
isConsumableUpdate = false;
|
return;
|
}
|
Labware gripTransportModel = cbGripPlaceObject.SelectedItem as Labware;
|
if (methodGripTransport != null)
|
{
|
if (string.IsNullOrEmpty(methodGripTransport.armValue))
|
{
|
new MessageDialog(Properties.Resources.msgPlsSelectArm).ShowDialog();
|
}
|
|
methodGripTransport.gripPlaceLabwareText = gripTransportModel.labware_name;
|
methodGripTransport.gripPlaceLabwareValue = gripTransportModel.labware_id;
|
|
PlacewellPlate.Rows = gripTransportModel.number_row;
|
PlacewellPlate.Columns = gripTransportModel.number_column;
|
PlacewellPlate.labwareWellInfoList = gripTransportModel.labwareWellInfoList;
|
PlacewellPlate.LabwareRealWidth = gripTransportModel.labware_length;
|
PlacewellPlate.LabwareRealLength = gripTransportModel.labware_width;
|
PlacewellPlate.DataContext = gripTransportModel;
|
PlacewellPlate.Selection = "";
|
}
|
}
|
catch (Exception ex)
|
{
|
LoggerHelper.ErrorLog("ERROR:", ex);
|
}
|
}
|
|
private void PickwellPlate_MouseLeftButtonDown(object sender, System.Windows.Input.MouseButtonEventArgs e)
|
{
|
//获取当前已选中的孔
|
string wellsSelected = PickwellPlate.Selection;
|
if (!string.IsNullOrEmpty(wellsSelected))
|
{
|
string[] wellArray = wellsSelected.Split(',');
|
if (radioBtnRow.IsChecked==true)
|
{
|
string rowName = wellArray[wellArray.Length - 1].Substring(0, 1);
|
int colTotal = PickwellPlate.Columns;
|
string resultWells = "";
|
for (int i = 1; i <= colTotal; i++)
|
{
|
resultWells += rowName + i.ToString() + ",";
|
}
|
|
if (!string.IsNullOrEmpty(resultWells))
|
{
|
resultWells = resultWells.Substring(0, (resultWells.Length) - 1);
|
}
|
PickwellPlate.Selection = resultWells;
|
if (methodGripTransport != null)
|
{
|
methodGripTransport.pickPosValue = ComUtility.GetRowIndexByRowChar(rowName);
|
}
|
|
}
|
else if (radioBtnColumn.IsChecked == true)
|
{
|
string colName = wellArray[wellArray.Length - 1].Substring(1);
|
int rowTotal = PickwellPlate.Rows;
|
string resultWells = "";
|
for (int i = 0; i <= rowTotal; i++)
|
{
|
resultWells += ComUtility.GetRowChar(i) + colName + ",";
|
}
|
|
if (!string.IsNullOrEmpty(resultWells))
|
{
|
resultWells = resultWells.Substring(0, (resultWells.Length) - 1);
|
}
|
PickwellPlate.Selection = resultWells;
|
if (methodGripTransport != null)
|
{
|
methodGripTransport.pickPosValue = wellArray[wellArray.Length - 1].Substring(1);
|
}
|
}
|
else if (radioBtnWell.IsChecked == true)
|
{
|
string resultWells = "";
|
resultWells = wellArray[wellArray.Length - 1];
|
PickwellPlate.Selection = resultWells;
|
if (methodGripTransport != null)
|
{
|
methodGripTransport.pickPosValue = resultWells;
|
}
|
}
|
}
|
}
|
|
#region 抓整板选定
|
private void radioBtnBoard_Checked(object sender, RoutedEventArgs e)
|
{
|
if(radioBtnBoard.IsChecked == true)
|
{
|
gdPickSet.RowDefinitions[1].Height = new GridLength(0);
|
|
if (methodGripTransport != null)
|
{
|
methodGripTransport.pickPosMode = 0;
|
}
|
}
|
}
|
#endregion
|
|
#region 按行抓选定
|
private void radioBtnRow_Checked(object sender, RoutedEventArgs e)
|
{
|
if (radioBtnRow.IsChecked == true)
|
{
|
gdPickSet.RowDefinitions[1].Height = new GridLength(210);
|
if (methodGripTransport != null)
|
{
|
methodGripTransport.pickPosMode = 1;
|
PickwellPlate.Selection = "";
|
}
|
}
|
}
|
#endregion
|
|
#region 按列抓选定
|
private void radioBtnColumn_Checked(object sender, RoutedEventArgs e)
|
{
|
if (radioBtnColumn.IsChecked == true)
|
{
|
gdPickSet.RowDefinitions[1].Height = new GridLength(210);
|
if (methodGripTransport != null)
|
{
|
methodGripTransport.pickPosMode = 2;
|
PickwellPlate.Selection = "";
|
}
|
}
|
}
|
#endregion
|
|
#region 按孔抓选定
|
private void radioBtnWell_Checked(object sender, RoutedEventArgs e)
|
{
|
if (radioBtnWell.IsChecked == true)
|
{
|
gdPickSet.RowDefinitions[1].Height = new GridLength(210);
|
if (methodGripTransport != null)
|
{
|
methodGripTransport.pickPosMode = 3;
|
PickwellPlate.Selection = "";
|
}
|
}
|
}
|
#endregion
|
|
private void PlacewellPlate_MouseLeftButtonDown(object sender, System.Windows.Input.MouseButtonEventArgs e)
|
{
|
//获取当前已选中的孔
|
string wellsSelected = PlacewellPlate.Selection;
|
if (!string.IsNullOrEmpty(wellsSelected))
|
{
|
string[] wellArray = wellsSelected.Split(',');
|
if (radioBtnPlaceRow.IsChecked == true)
|
{
|
|
string rowName = wellArray[wellArray.Length - 1].Substring(0, 1);
|
int colTotal = PlacewellPlate.Columns;
|
string resultWells = "";
|
for (int i = 1; i <= colTotal; i++)
|
{
|
resultWells += rowName + i.ToString() + ",";
|
}
|
|
if (!string.IsNullOrEmpty(resultWells))
|
{
|
resultWells = resultWells.Substring(0, (resultWells.Length) - 1);
|
}
|
PlacewellPlate.Selection = resultWells;
|
if (methodGripTransport != null)
|
{
|
methodGripTransport.placePosValue = ComUtility.GetRowIndexByRowChar(rowName);
|
}
|
}
|
else if (radioBtnPlaceColumn.IsChecked == true)
|
{
|
string colName = wellArray[wellArray.Length - 1].Substring(1);
|
int rowTotal = PlacewellPlate.Rows;
|
string resultWells = "";
|
for (int i = 0; i <= rowTotal; i++)
|
{
|
resultWells += ComUtility.GetRowChar(i) + colName + ",";
|
}
|
|
if (!string.IsNullOrEmpty(resultWells))
|
{
|
resultWells = resultWells.Substring(0, (resultWells.Length) - 1);
|
}
|
PlacewellPlate.Selection = resultWells;
|
if (methodGripTransport != null)
|
{
|
methodGripTransport.placePosValue = wellArray[wellArray.Length - 1].Substring(1);
|
}
|
}
|
else if (radioBtnPlaceWell.IsChecked == true)
|
{
|
string resultWells = "";
|
resultWells = wellArray[wellArray.Length - 1];
|
PlacewellPlate.Selection = resultWells;
|
if (methodGripTransport != null)
|
{
|
methodGripTransport.placePosValue = resultWells;
|
}
|
}
|
}
|
}
|
|
#region 放整板选定
|
private void radioBtnPlaceBoard_Checked(object sender, RoutedEventArgs e)
|
{
|
if (radioBtnPlaceBoard.IsChecked == true)
|
{
|
gdPlaceSet.RowDefinitions[1].Height = new GridLength(0);
|
if (methodGripTransport != null)
|
{
|
methodGripTransport.placePosMode = 0;
|
}
|
}
|
}
|
#endregion
|
|
#region 按行放选定
|
private void radioBtnPlaceRow_Checked(object sender, RoutedEventArgs e)
|
{
|
if (radioBtnPlaceRow.IsChecked == true)
|
{
|
gdPlaceSet.RowDefinitions[1].Height = new GridLength(210);
|
if (methodGripTransport != null)
|
{
|
methodGripTransport.placePosMode = 1;
|
PlacewellPlate.Selection = "";
|
}
|
}
|
}
|
#endregion
|
|
#region 按列放选定
|
private void radioBtnPlaceColumn_Checked(object sender, RoutedEventArgs e)
|
{
|
if (radioBtnPlaceColumn.IsChecked == true)
|
{
|
gdPlaceSet.RowDefinitions[1].Height = new GridLength(210);
|
if (methodGripTransport != null)
|
{
|
methodGripTransport.placePosMode = 2;
|
PlacewellPlate.Selection = "";
|
}
|
}
|
}
|
#endregion
|
|
#region 按孔抓选定
|
private void radioBtnPlaceWell_Checked(object sender, RoutedEventArgs e)
|
{
|
if (radioBtnPlaceWell.IsChecked == true)
|
{
|
gdPlaceSet.RowDefinitions[1].Height = new GridLength(210);
|
|
if (methodGripTransport != null)
|
{
|
methodGripTransport.placePosMode = 3;
|
PlacewellPlate.Selection = "";
|
}
|
}
|
}
|
#endregion
|
}
|
}
|