using DataEntity.Share;
|
using DataRWDAL;
|
using DataRWDalDrive.DB;
|
using HxEnum;
|
using Microsoft.Win32;
|
using System;
|
using System.Collections.Generic;
|
using System.Collections.ObjectModel;
|
using System.Data;
|
using System.Linq;
|
using System.Windows;
|
using System.Windows.Controls;
|
using System.Windows.Input;
|
using System.Windows.Media;
|
using XCommon.Log;
|
using XCore;
|
using XHandler.Class;
|
using XHandler.Class.DataEx;
|
using XHandler.View.Com;
|
using XHandler.View.MethodProperty;
|
using XImagingXhandler.XDAL;
|
|
namespace XHandler.View.BacteriaProperty
|
{
|
/// <summary>
|
/// 文件涂布页面逻辑
|
/// </summary>
|
public partial class FileCoatingProperty : UserControl, IMethodProperty
|
{
|
#region BLL
|
private TransferFileBll transferFileBll = new TransferFileBll();
|
private CoatingFileBll coatingFileBll = new CoatingFileBll();
|
#endregion
|
|
public MethodCoatingFile methodCoatingFile { get; set; }
|
|
private int curLiquidTypeSelectedIndex = -1;
|
private int curMixAspirateSelectIndex = -1;
|
private int curMixDispenseSelectIndex = -1;
|
|
#region 全局变量
|
private string isrun = "";
|
private string status = "";
|
private string name = "";
|
private string label = "";
|
private string filePath = "";
|
private string armText = "";
|
private string armValue = "";
|
private string labwaretipText = "";
|
private string labwaretipValue = "";
|
private int[] channels = new int[0] { };
|
private int beginLine = 0;
|
private DataTable transferDataTable = new DataTable();
|
private string sourceLabware = "";
|
private string sourceWell = "";
|
private string destinationLabware = "";
|
private string destinationWell = "";
|
private string bacteriaText = "";
|
private string bacteriaValue = "";
|
private int coatingmodeValue = 0;
|
private int choiceCategory = 0; // 挑菌方式 1:单选; 2:穿刺; 3:吸液;
|
private int coatingCount = 0;
|
private string liquididText = "";
|
private string liquididValue = "";
|
private string liquidrangeidText = "";
|
private string liquidrangeidValue = "";
|
private string liquidpidText = "";
|
private string liquidpidValue = "";
|
private bool bMix = false;
|
private double mixvolume = 0.0d;
|
private int mixcount = 0;
|
private string mixAspiratePositionText = "";
|
private int mixAspiratePositionValue = 0;
|
private double mixAspirateDistance = 0.0d;
|
private double mixAspirateSpeed = 0.0d;
|
private string mixDispensePositionText = "";
|
private int mixDispensePositionValue = 0;
|
private double mixDispenseDistance = 0.0d;
|
private double mixDispenseSpeed = 0.0d;
|
private double coatingOffset = 0.0d;
|
private double shakeDistanceValue = 0.0d;
|
private double shakeCountValue = 0.0d;
|
private int mark = 0;
|
private Labware selectedLabware = null;
|
private bool bEnableUltrasonic = true;
|
private List<UltrasonicObject> ultrasonicObjects = new List<UltrasonicObject>();
|
private ObservableCollection<DropdownName> dishPointlist = new ObservableCollection<DropdownName>(); // 圆形皿绑定的点集合
|
#endregion
|
|
#region 构造函数
|
public FileCoatingProperty(MethodEx method)
|
{
|
InitializeComponent();
|
mark = 0;
|
curLiquidTypeSelectedIndex = 0;
|
curMixAspirateSelectIndex = 2;
|
curMixDispenseSelectIndex = 2;
|
|
methodCoatingFile = new MethodCoatingFile();
|
methodCoatingFile.name = method.method_name;
|
methodCoatingFile.label = method.method_name;
|
methodCoatingFile.status = (method.isEnabled == true ? "enable" : "disable");
|
this.DataContext = methodCoatingFile;
|
|
ObservableCollection<Bacteria> bacterias = DataModule.getInstance().GetBacterias();
|
cbBacteria.ItemsSource = bacterias;
|
|
List<DeviceArm> armList = DataModule.getInstance().GetDeviceArm();
|
cbArm.ItemsSource = armList;
|
if (armList.Count == 2) //只有一个臂的情况下默认选中该臂
|
cbArm.SelectedIndex = 1;
|
else
|
cbArm.SelectedIndex = 0;
|
|
ObservableCollection<LiquidType> liquidTypeList = DataModule.getInstance().GetLiquidTypes();
|
cbLiquidType.ItemsSource = liquidTypeList;
|
|
// 获取液体范围类型
|
ObservableCollection<LiquidRange> liquidRangeList = DataModule.getInstance().GetLiquidRanges();
|
cbLiquidRange.ItemsSource = liquidRangeList;
|
|
ObservableCollection<Liquid> liquidList = new ObservableCollection<Liquid>();
|
Liquid liquid = new Liquid();
|
liquid.liquid_name = Properties.Resources.strPleaseSelect;
|
liquidList.Add(liquid);
|
cbLiquid.ItemsSource = liquidList;
|
|
// 获取加液、取液位置类型
|
ObservableCollection<DropdownName> mixPositionList = DataModule.getInstance().GetDispensePositionType();
|
cbMixAspiratePosition.ItemsSource = mixPositionList;
|
cbMixDispensePosition.ItemsSource = mixPositionList;
|
|
// 获取涂布方式
|
ObservableCollection<DropdownName> coatingModeList = DataModule.getInstance().GetCoatingMode();
|
cbCoatingMode.ItemsSource = coatingModeList;
|
cbCoatingMode.SelectedValue = methodCoatingFile.coatingModeValue;
|
|
// 获取涂布通道数量
|
List<DropdownName> dropdownNames = coatingFileBll.GenerateCoatingCountOfChannel(Shared.SoftwareInformation.software_device_number);
|
cbCoatingCount.ItemsSource = dropdownNames;
|
cbCoatingCount.SelectedIndex = 0;
|
|
// 耗材名称
|
ObservableCollection<Labware> labwares = DataRWDAL.LabwareDB.GetSpecialLabware();
|
comboboxLabwareType.ItemsSource = labwares;
|
|
// 获取挑菌方式
|
ObservableCollection<DropdownName> choiceModeList = DataModule.getInstance().GetChoiceMode(Shared.SoftwareInformation.software_device_number);
|
cbPickMode.ItemsSource = choiceModeList;
|
if (methodCoatingFile.choiceCategory == 0)
|
{
|
cbPickMode.SelectedIndex = 0;
|
}
|
tbxCommandLabel.Text = method.method_name;
|
methodCoatingFile.strIndex = method.strIndex;
|
|
if (method.tag != null)
|
{
|
methodCoatingFile = (MethodCoatingFile)method.tag;
|
|
#region 全局变量赋值
|
isrun = methodCoatingFile.isrun;
|
status = methodCoatingFile.status;
|
name = methodCoatingFile.name;
|
label = methodCoatingFile.label;
|
armText = methodCoatingFile.armText;
|
armValue = methodCoatingFile.armValue;
|
labwaretipText = methodCoatingFile.labwaretipText;
|
labwaretipValue = methodCoatingFile.labwaretipValue;
|
channels = methodCoatingFile.channels;
|
|
filePath = methodCoatingFile.filePath;
|
beginLine = methodCoatingFile.beginLine;
|
transferDataTable = methodCoatingFile.transferDataTable;
|
sourceLabware = methodCoatingFile.sourceLabware;
|
sourceWell = methodCoatingFile.sourceWell;
|
destinationLabware = methodCoatingFile.destinationLabware;
|
destinationWell = methodCoatingFile.destinationWell;
|
bacteriaText = methodCoatingFile.bacteriaText;
|
bacteriaValue = methodCoatingFile.bacteriaValue;
|
coatingmodeValue = methodCoatingFile.coatingModeValue;
|
choiceCategory = methodCoatingFile.choiceCategory;
|
coatingCount = methodCoatingFile.coatingCount;
|
|
liquididText = methodCoatingFile.liquididText;
|
liquididValue = methodCoatingFile.liquididValue;
|
liquidrangeidText = methodCoatingFile.liquidrangeidText;
|
liquidrangeidValue = methodCoatingFile.liquidrangeidValue;
|
liquidpidText = methodCoatingFile.liquidpidText;
|
liquidpidValue = methodCoatingFile.liquidpidValue;
|
|
bMix = methodCoatingFile.bMix;
|
mixvolume = methodCoatingFile.mixvolume;
|
mixcount = methodCoatingFile.mixcount;
|
mixAspiratePositionText = methodCoatingFile.mixAspiratePositionText;
|
mixAspiratePositionValue = methodCoatingFile.mixAspiratePositionValue;
|
mixAspirateDistance = methodCoatingFile.mixAspirateDistance;
|
mixAspirateSpeed = methodCoatingFile.mixAspirateSpeed;
|
mixDispensePositionText = methodCoatingFile.mixDispensePositionText;
|
mixDispensePositionValue = methodCoatingFile.mixDispensePositionValue;
|
mixDispenseDistance = methodCoatingFile.mixDispenseDistance;
|
mixDispenseSpeed = methodCoatingFile.mixDispenseSpeed;
|
|
shakeDistanceValue = methodCoatingFile.shakeDistanceValue;
|
shakeCountValue = methodCoatingFile.shakeCountValue;
|
coatingOffset = methodCoatingFile.coatingOffset;
|
if (methodCoatingFile.isEnableultrasonic) // 开启超声探测
|
{
|
bEnableUltrasonic = methodCoatingFile.isEnableultrasonic;
|
ultrasonicObjects = methodCoatingFile.ultrasonicObjectList;
|
}
|
else
|
{
|
bEnableUltrasonic = methodCoatingFile.isEnableultrasonic;
|
}
|
#endregion
|
}
|
}
|
#endregion
|
|
public void SetTableName(string tableName, Labware lb)
|
{
|
if (lb == null)
|
return;
|
if (string.IsNullOrEmpty(lb.labware_id))
|
return;
|
if (string.IsNullOrEmpty(methodCoatingFile.armValue))
|
{
|
MessageBox.Show(Properties.Resources.msgPlsSelectArm, "Tips");
|
return;
|
}
|
selectedLabware = lb;
|
List<Lattice> latticeList = DataRWDAL.LatticeDB.GetLatticeDataFromdb(Shared.SoftwareInformation.software_device_number, Convert.ToInt32(methodCoatingFile.armValue));
|
Lattice lattice = latticeList.Find(s => s.lattice_num == tableName);
|
if (lattice == null)
|
{
|
LoggerHelper.InfoLog("Error: Can't find lattice with lattice_num=" + tableName);
|
return;
|
}
|
if (gridLiquidParam.Visibility == Visibility.Visible)
|
{
|
if (gridChoiceAgoAspirateProperty.Children.Count > 0)
|
{
|
ChoiceAgoAspirateChildProperty choiceAgoAspirateChildProperty = (ChoiceAgoAspirateChildProperty)gridChoiceAgoAspirateProperty.Children[0];
|
choiceAgoAspirateChildProperty.SetTableName(tableName, lb);
|
}
|
}
|
else
|
{
|
methodCoatingFile.labwaretipText = lb.labware_name;
|
methodCoatingFile.labwaretipValue = lb.labware_id;
|
tbSelectTable.Tag = lb.labware_id;
|
tbSelectTable.Text = lb.labware_name;
|
}
|
}
|
|
#region 选择文件
|
private void btnSelectFile_Click(object sender, RoutedEventArgs e)
|
{
|
OpenFileDialog dlg = new OpenFileDialog();
|
dlg.Title = "请选择Excel文件";
|
dlg.FileName = string.Empty;
|
dlg.FilterIndex = 1;
|
dlg.RestoreDirectory = true;
|
dlg.Filter = "csv files(*.csv)|*.csv|excel files(*.xls)|*.xls|All files(*.*)|*.*";
|
dlg.Multiselect = false;
|
if (dlg.ShowDialog() == true)
|
{
|
string fullPath = dlg.FileName;
|
methodCoatingFile.filePath = fullPath;
|
tbExcelFile.Text = fullPath;
|
|
SelectFile(fullPath);
|
}
|
|
((MainWindow)Application.Current.MainWindow).testDesign.IsIgnore = true; //防止影响到主界面流程中已拖放的单命令顺序
|
}
|
|
private void tbExcelFile_PreviewKeyDown(object sender, KeyEventArgs e)
|
{
|
if (e.Key == Key.Enter)
|
{
|
if (!string.IsNullOrEmpty(tbExcelFile.Text.Trim()))
|
{
|
if (System.IO.Path.HasExtension(tbExcelFile.Text.Trim()))
|
{
|
if (System.IO.File.Exists(tbExcelFile.Text.Trim()))
|
{
|
SelectFile(tbExcelFile.Text.Trim());
|
}
|
}
|
}
|
}
|
}
|
|
private void SelectFile(string file)
|
{
|
string ext = System.IO.Path.GetExtension(file);
|
DataTable transferData = null;
|
if (string.Compare(ext, ".csv", true) == 0)
|
transferData = ExcelAndCsvHelper.GetDataTableFromCsvFile(file, false);
|
else
|
transferData = ExcelAndCsvHelper.GetDataTableFromExcelFile(file, true);
|
|
if (transferData != null)
|
{
|
methodCoatingFile.transferDataTable = transferData;
|
dgTransferFileData.ItemsSource = transferData.DefaultView;
|
|
List<TransferFileHeader> transferFileHeaders = transferFileBll.GetTransferFileHeaders(transferData);
|
|
cbSourceDish.ItemsSource = transferFileHeaders;
|
cbMachineCoordinate.ItemsSource = transferFileHeaders;
|
cbTargetBoard.ItemsSource = transferFileHeaders;
|
cbTargetWell.ItemsSource = transferFileHeaders;
|
|
cbSourceDish.SelectedIndex = 0;
|
cbMachineCoordinate.SelectedIndex = 0;
|
cbTargetBoard.SelectedIndex = 0;
|
cbTargetWell.SelectedIndex = 0;
|
}
|
}
|
#endregion
|
|
#region 菌落变更事件
|
private void cbBacteria_SelectionChanged(object sender, SelectionChangedEventArgs e)
|
{
|
if (cbBacteria.SelectedIndex < 0)
|
return;
|
if (methodCoatingFile == null)
|
return;
|
|
Bacteria bacteria = cbBacteria.SelectedItem as Bacteria;
|
methodCoatingFile.bacteriaValue = bacteria.bacteria_id;
|
methodCoatingFile.bacteriaText = bacteria.bacteria_name;
|
}
|
#endregion
|
|
#region 挑菌方式变更事件
|
private void cbPickMode_SelectionChanged(object sender, SelectionChangedEventArgs e)
|
{
|
if (cbPickMode.SelectedIndex < 0)
|
return;
|
if (methodCoatingFile == null)
|
return;
|
|
DropdownName dpdItem = (DropdownName)cbPickMode.SelectedItem;
|
methodCoatingFile.choiceCategory = Convert.ToInt32(dpdItem.dropdown_id);
|
}
|
#endregion
|
|
#region 涂布方式变更事件
|
private void cbCoatingMode_SelectionChanged(object sender, SelectionChangedEventArgs e)
|
{
|
if (cbCoatingMode.SelectedIndex < 0 || methodCoatingFile == null)
|
{
|
return;
|
}
|
|
DropdownName dpdItem = (DropdownName)cbCoatingMode.SelectedItem;
|
methodCoatingFile.coatingModeValue = Convert.ToInt32(dpdItem.dropdown_id);
|
|
bMix = false;
|
if (dpdItem.dropdown_name.Equals(Properties.Resources.strHuiziMode))
|
{
|
gridShake.Visibility = Visibility.Collapsed;
|
gdMixParam.Visibility = Visibility.Hidden;
|
}
|
else if (dpdItem.dropdown_name.Equals(Properties.Resources.strZMode))
|
{
|
gridShake.Visibility = Visibility.Collapsed;
|
gdMixParam.Visibility = Visibility.Hidden;
|
}
|
else if (dpdItem.dropdown_name.Equals(Properties.Resources.strUpDownMode))
|
{
|
gridShake.Visibility = Visibility.Visible;
|
gdMixParam.Visibility = Visibility.Hidden;
|
methodCoatingFile.shakeCountValue = Convert.ToInt32(tbxShakeCount.Text);
|
methodCoatingFile.shakeDistanceValue = Convert.ToInt32(tbxShakeDistance.Text);
|
}
|
// 吸放液
|
else if (dpdItem.dropdown_name.Equals(Properties.Resources.strAspirateMode))
|
{
|
gridShake.Visibility = Visibility.Collapsed;
|
gdMixParam.Visibility = Visibility.Visible;
|
bMix = true;
|
}
|
// 放液
|
else if (dpdItem.dropdown_name.Equals(Properties.Resources.strDispense))
|
{
|
gridShake.Visibility = Visibility.Collapsed;
|
gdMixParam.Visibility = Visibility.Hidden;
|
}
|
|
methodCoatingFile.bMix = bMix;
|
}
|
#endregion
|
|
#region 臂变更事件
|
private void cbArm_SelectionChanged(object sender, SelectionChangedEventArgs e)
|
{
|
try
|
{
|
if (cbArm.SelectedIndex < 0)
|
return;
|
|
string armName = ((DeviceArm)cbArm.SelectedItem).device_arm_name.ToString();
|
methodCoatingFile.channels = Shared.ChannelsId;
|
DeviceArm arm = cbArm.SelectedItem as DeviceArm;
|
methodCoatingFile.armText = arm.device_arm_name;
|
methodCoatingFile.armValue = methodCoatingFile.choiceAgoAspirateData.armValue = arm.device_arm_id.ToString();
|
}
|
catch (Exception ex)
|
{
|
LoggerHelper.ErrorLog("ERROR:", ex);
|
}
|
}
|
#endregion
|
|
#region 命令名称变更事件
|
private void tbxCommandName_TextChanged(object sender, TextChangedEventArgs e)
|
{
|
try
|
{
|
if (mark != 0)
|
{
|
methodCoatingFile.name = tbxCommandName.Text;
|
}
|
}
|
catch (Exception ex)
|
{
|
LoggerHelper.ErrorLog("ERROR:", ex);
|
}
|
}
|
#endregion
|
|
#region 从第N行变更事件
|
private void tbxbeginLine_TextChanged(object sender, TextChangedEventArgs e)
|
{
|
try
|
{
|
if (mark != 0)
|
{
|
methodCoatingFile.beginLine = Convert.ToInt32(tbxbeginLine.Text);
|
}
|
}
|
catch (Exception ex)
|
{
|
LoggerHelper.ErrorLog("ERROR:", ex);
|
}
|
}
|
#endregion
|
|
#region 来源皿变更事件
|
private void cbSourceDish_SelectionChanged(object sender, SelectionChangedEventArgs e)
|
{
|
try
|
{
|
if (mark != 0)
|
{
|
TransferFileHeader transferFileHeader = cbSourceDish.SelectedItem as TransferFileHeader;
|
if (transferFileHeader != null)
|
methodCoatingFile.sourceLabware = transferFileHeader.header_name.ToString();
|
}
|
}
|
catch (Exception ex)
|
{
|
LoggerHelper.ErrorLog("ERROR:", ex);
|
}
|
}
|
#endregion
|
|
#region 机械坐标变更事件
|
private void cbMachineCoordinate_SelectionChanged(object sender, SelectionChangedEventArgs e)
|
{
|
try
|
{
|
if (mark != 0)
|
{
|
TransferFileHeader transferFileHeader = cbMachineCoordinate.SelectedItem as TransferFileHeader;
|
if (transferFileHeader != null)
|
methodCoatingFile.sourceWell = transferFileHeader.header_name.ToString();
|
}
|
}
|
catch (Exception ex)
|
{
|
LoggerHelper.ErrorLog("ERROR:", ex);
|
}
|
}
|
#endregion
|
|
#region 目标板变更事件
|
private void cbTargetBoard_SelectionChanged(object sender, SelectionChangedEventArgs e)
|
{
|
try
|
{
|
if (mark != 0)
|
{
|
TransferFileHeader transferFileHeader = cbTargetBoard.SelectedItem as TransferFileHeader;
|
if (transferFileHeader != null)
|
methodCoatingFile.destinationLabware = transferFileHeader.header_name.ToString();
|
}
|
}
|
catch (Exception ex)
|
{
|
LoggerHelper.ErrorLog("ERROR:", ex);
|
}
|
}
|
#endregion
|
|
#region 目标孔变更事件
|
private void cbTargetWell_SelectionChanged(object sender, SelectionChangedEventArgs e)
|
{
|
try
|
{
|
if (mark != 0)
|
{
|
TransferFileHeader transferFileHeader = cbTargetWell.SelectedItem as TransferFileHeader;
|
if (transferFileHeader != null)
|
methodCoatingFile.destinationWell = transferFileHeader.header_name.ToString();
|
}
|
}
|
catch (Exception ex)
|
{
|
LoggerHelper.ErrorLog("ERROR:", ex);
|
}
|
}
|
#endregion
|
|
#region 初期化
|
private void UserControl_Loaded(object sender, RoutedEventArgs e)
|
{
|
mark += 1;
|
try
|
{
|
if (mark > 1)
|
{
|
return;
|
}
|
|
tbxRowNum.Text = "0";
|
tbxColumnNum.Text = "0";
|
tbxCloseTop.Text = "0";
|
tbxCloseLeft.Text = "0";
|
tbxDistanceOfX.Text = "0";
|
tbxDistanceOfY.Text = "0";
|
|
int[] ichs = channels;
|
if (!string.IsNullOrEmpty(armText))
|
{
|
tbxCommandName.Text = name;
|
cbArm.SelectedValue = armValue;
|
DeviceArm arm = cbArm.SelectedItem as DeviceArm;
|
tbSelectTable.Tag = labwaretipValue;
|
tbSelectTable.Text = labwaretipText;
|
|
dgTransferFileData.ItemsSource = transferDataTable.DefaultView;
|
tbExcelFile.Text = filePath;
|
|
//更新所有下拉列表
|
List<TransferFileHeader> transferFileHeaders = transferFileBll.GetTransferFileHeaders(transferDataTable);
|
cbSourceDish.ItemsSource = transferFileHeaders;
|
cbMachineCoordinate.ItemsSource = transferFileHeaders;
|
cbTargetBoard.ItemsSource = transferFileHeaders;
|
cbTargetWell.ItemsSource = transferFileHeaders;
|
|
cbSourceDish.Text = sourceLabware;
|
cbMachineCoordinate.Text = sourceWell;
|
cbTargetBoard.Text = destinationLabware;
|
cbTargetWell.Text = destinationWell;
|
cbBacteria.Text = bacteriaText;
|
tbxCoatingOffset.Text = coatingOffset.ToString();
|
|
cbCoatingMode.SelectedValue = Convert.ToInt32(coatingmodeValue);
|
if (coatingmodeValue.Equals("3")) // 上下移动
|
{
|
tbxShakeCount.Text = shakeCountValue.ToString();
|
tbxShakeDistance.Text = shakeDistanceValue.ToString();
|
}
|
|
cbPickMode.SelectedValue = choiceCategory.ToString();
|
cbCoatingCount.SelectedValue = coatingCount;
|
|
cbLiquidType.SelectedValue = liquididValue;
|
cbLiquidRange.SelectedValue = liquidrangeidValue;
|
cbLiquid.SelectedValue = liquidpidValue;
|
|
ObservableCollection<Liquid> liquidList = LiquidTypeRSRangeDB.GetLiquidFromdbByTypeAndRange(liquididValue, liquidrangeidValue, cbArm.SelectedValue.ToString());
|
Liquid liquid = new Liquid();
|
liquid.liquid_name = Properties.Resources.strPleaseSelect;
|
liquidList.Insert(0, liquid);
|
cbLiquid.ItemsSource = liquidList;
|
cbLiquid.SelectedIndex = 0;
|
cbLiquid.SelectedValue = liquidpidValue;
|
|
if (bMix)
|
{
|
if (methodCoatingFile != null)
|
{
|
tbxMixVolume.Text = mixvolume.ToString();
|
tbxMixCount.Text = mixcount.ToString();
|
}
|
else
|
{
|
tbxMixVolume.Text = methodCoatingFile.mixvolume.ToString();
|
tbxMixCount.Text = methodCoatingFile.mixcount.ToString();
|
}
|
|
cbMixAspiratePosition.SelectedValue = mixAspiratePositionValue;
|
tbxMixAspirateDistance.Text = mixAspirateDistance.ToString();
|
tbxMixAspirateSpeed.Text = mixAspirateSpeed.ToString();
|
|
cbMixDispensePosition.SelectedValue = mixDispensePositionValue;
|
tbxMixDispenseDistance.Text = mixDispenseDistance.ToString();
|
tbxMixDispenseSpeed.Text = mixDispenseSpeed.ToString();
|
}
|
}
|
else
|
{
|
cbArm.SelectedIndex = 0;
|
cbBacteria.SelectedIndex = 0;
|
cbCoatingMode.SelectedIndex = 0;
|
|
cbCoatingCount.SelectedIndex = 0;
|
cbPickMode.SelectedIndex = 0;
|
|
tbxShakeCount.Text = "5";
|
tbxShakeDistance.Text = "3";
|
|
cbLiquidType.SelectedValue = curLiquidTypeSelectedIndex;
|
cbMixAspiratePosition.SelectedIndex = curMixAspirateSelectIndex;
|
cbMixDispensePosition.SelectedIndex = curMixDispenseSelectIndex;
|
ObservableCollection<Liquid> liquidList = LiquidTypeRSRangeDB.GetLiquidFromdbByTypeAndRange(liquididValue, liquidrangeidValue, cbArm.SelectedValue.ToString());
|
Liquid liquid = new Liquid();
|
liquid.liquid_name = Properties.Resources.strPleaseSelect;
|
liquidList.Insert(0, liquid);
|
cbLiquid.ItemsSource = liquidList;
|
cbLiquid.SelectedIndex = 0;
|
}
|
|
// 开启超声探测
|
cbxEnableUltrasonic.IsChecked = bEnableUltrasonic;
|
// 耗材名称默认选择
|
comboboxLabwareType.SelectedIndex = 0;
|
|
#region 挑菌前环境设置
|
ChoiceAgoAspirateChildProperty property = new ChoiceAgoAspirateChildProperty(methodCoatingFile.choiceAgoAspirateData);
|
gridChoiceAgoAspirateProperty.Children.Add(property);
|
#endregion
|
|
// 多块目标板涂布前要挑菌
|
cbPickEveryTime.IsChecked = methodCoatingFile.pickEveryTime;
|
// 多块目标板挑菌前要换枪头
|
cbPickAgoChangeTipEveryTime.IsChecked = methodCoatingFile.pickAgoChangeTipEveryTime;
|
cbPickEveryTime_Click(null, null);
|
|
#region 涂布自动开关盖
|
ckbAutoOpenCloseCoverCoating.IsChecked = methodCoatingFile.autoOpenCloseCoverCoating;
|
#endregion
|
}
|
catch (Exception ex)
|
{
|
LoggerHelper.ErrorLog("ERROR:", ex);
|
}
|
}
|
#endregion
|
|
#region 构建圆形皿默认三个坐标
|
public ObservableCollection<DropdownName> GenerateDefaultPointList()
|
{
|
ObservableCollection<DropdownName> points = new ObservableCollection<DropdownName>();
|
|
DropdownName point1 = new DropdownName();
|
point1.dropdown_id = "-10";
|
point1.dropdown_name = "0";
|
point1.index_id = 1;
|
points.Add(point1);
|
|
point1 = new DropdownName();
|
point1.dropdown_id = "0";
|
point1.dropdown_name = "0";
|
point1.index_id = 2;
|
points.Add(point1);
|
|
point1 = new DropdownName();
|
point1.dropdown_id = "10";
|
point1.dropdown_name = "0";
|
point1.index_id = 3;
|
points.Add(point1);
|
|
return points;
|
}
|
#endregion
|
|
#region 构建圆形皿坐标数据
|
public ObservableCollection<DropdownName> GenerateDishPointData(ObservableCollection<DropdownName> pointlist)
|
{
|
ObservableCollection<DropdownName> data = new ObservableCollection<DropdownName>();
|
int countOfNum = 0;
|
|
foreach (DropdownName point in pointlist)
|
{
|
DropdownName dropdownName = new DropdownName();
|
dropdownName.index_id = ++countOfNum;
|
dropdownName.dropdown_id = point.dropdown_id.ToString();
|
dropdownName.dropdown_name = point.dropdown_name.ToString();
|
data.Add(dropdownName);
|
}
|
|
return data;
|
}
|
#endregion
|
|
#region 枪头类型变更事件
|
private void tbSelectTable_TextChanged(object sender, TextChangedEventArgs e)
|
{
|
try
|
{
|
if (mark != 0)
|
{
|
methodCoatingFile.labwaretipValue = tbSelectTable.Tag.ToString();
|
methodCoatingFile.labwaretipText = tbSelectTable.Text;
|
}
|
}
|
catch (Exception ex)
|
{
|
LoggerHelper.ErrorLog("ERROR:", ex);
|
}
|
}
|
#endregion
|
|
#region 同时涂布通道数
|
private void cbCoatingCount_SelectionChanged(object sender, SelectionChangedEventArgs e)
|
{
|
if (cbCoatingCount.SelectedIndex < 0)
|
return;
|
if (methodCoatingFile == null)
|
return;
|
methodCoatingFile.coatingCount = Convert.ToInt32(((DropdownName)cbCoatingCount.SelectedItem).dropdown_id);
|
}
|
#endregion
|
|
#region 液体类型变更事件
|
private void cbLiquidType_SelectionChanged(object sender, SelectionChangedEventArgs e)
|
{
|
if (mark != 0)
|
{
|
if (methodCoatingFile != null)
|
{
|
methodCoatingFile.liquididText = ((LiquidType)cbLiquidType.SelectedItem).liquid_type_name.ToString();
|
if (methodCoatingFile.liquididText != "请选择类型")
|
{
|
methodCoatingFile.liquididValue = ((LiquidType)cbLiquidType.SelectedItem).liquid_type_id.ToString();
|
}
|
else
|
{
|
methodCoatingFile.liquididValue = "0";
|
}
|
}
|
}
|
|
//else
|
//{
|
// if (cbLiquidType.SelectedIndex < 0)
|
// return;
|
// if (cbLiquidType.SelectedIndex == 0)
|
// {
|
// cbLiquidRange.SelectedIndex = 0;
|
// cbLiquid.SelectedIndex = 0;
|
// }
|
// curLiquidTypeSelectedIndex = cbLiquidType.SelectedIndex;
|
// if (cbLiquidType.SelectedIndex != 0)
|
// {
|
// methodCoatingFile.liquididText = ((LiquidType)cbLiquidType.SelectedItem).liquid_type_name.ToString();
|
// methodCoatingFile.liquididValue = ((LiquidType)cbLiquidType.SelectedItem).liquid_type_id.ToString();
|
// }
|
//}
|
}
|
#endregion
|
|
#region 加液范围变更事件
|
private void cbLiquidRange_SelectionChanged(object sender, SelectionChangedEventArgs e)
|
{
|
if (mark != 0)
|
{
|
string typeID = cbLiquidType.SelectedValue as string;
|
string rangeID = cbLiquidRange.SelectedValue as string;
|
string armID = cbArm.SelectedValue.ToString();
|
ObservableCollection<Liquid> liquidList = LiquidTypeRSRangeDB.GetLiquidFromdbByTypeAndRange(typeID, rangeID, armID);
|
Liquid liquid = new Liquid();
|
liquid.liquid_name = Properties.Resources.strPleaseSelect;
|
liquidList.Insert(0, liquid);
|
cbLiquid.ItemsSource = liquidList;
|
cbLiquid.SelectedIndex = 0;
|
|
if (methodCoatingFile != null)
|
{
|
if ((LiquidRange)cbLiquidRange.SelectedItem != null)
|
{
|
methodCoatingFile.liquidrangeidText = ((LiquidRange)cbLiquidRange.SelectedItem).liquid_range_name.ToString();
|
methodCoatingFile.liquidrangeidValue = ((LiquidRange)cbLiquidRange.SelectedItem).liquid_range_id.ToString();
|
}
|
}
|
}
|
//else
|
//{
|
// if (cbLiquidRange.SelectedIndex < 0)
|
// return;
|
// curLiquidRangeSelectedIndex = cbLiquidRange.SelectedIndex;
|
// string typeID = cbLiquidType.SelectedValue as string;
|
// string rangeID = cbLiquidRange.SelectedValue as string;
|
// string armID = cbArm.SelectedValue.ToString();
|
// ObservableCollection<Liquid> liquidList = LiquidTypeRSRangeDB.GetLiquidFromdbByTypeAndRange(typeID, rangeID, armID);
|
// Liquid liquid = new Liquid();
|
// liquid.liquid_name = Properties.Resources.strPleaseSelect;
|
// liquidList.Insert(0, liquid);
|
|
// if (cbLiquidRange.SelectedIndex != 0)
|
// {
|
// methodCoatingFile.liquidrangeidText = ((LiquidRange)cbLiquidRange.SelectedItem).liquid_range_name.ToString();
|
// methodCoatingFile.liquidrangeidValue = ((LiquidRange)cbLiquidRange.SelectedItem).liquid_range_id.ToString();
|
// }
|
|
// cbLiquid.ItemsSource = liquidList;
|
// cbLiquid.SelectedIndex = 0;
|
//}
|
}
|
#endregion
|
|
private void cbLiquid_SelectionChanged(object sender, SelectionChangedEventArgs e)
|
{
|
if (mark != 0)
|
{
|
if (cbLiquid.SelectedIndex != 0)
|
{
|
if (methodCoatingFile != null)
|
{
|
Liquid liquid = cbLiquid.SelectedItem as Liquid;
|
if (liquid != null)
|
{
|
methodCoatingFile.liquidpidText = liquid.liquid_name;
|
methodCoatingFile.liquidpidValue = liquid.liquid_id;
|
}
|
}
|
}
|
}
|
//else
|
//{
|
// if (cbLiquid.SelectedIndex < 1)
|
// return;
|
// Liquid liquid = cbLiquid.SelectedItem as Liquid;
|
// if (cbLiquid.SelectedIndex != 0)
|
// {
|
// methodCoatingFile.liquidpidText = liquid.liquid_name;
|
// methodCoatingFile.liquidpidValue = liquid.liquid_id;
|
// }
|
//}
|
}
|
|
#region 混合体积 (μL)变更事件
|
private void tbxMixVolume_TextChanged(object sender, TextChangedEventArgs e)
|
{
|
try
|
{
|
if (mark != 0)
|
{
|
if (methodCoatingFile != null)
|
{
|
methodCoatingFile.mixvolume = Convert.ToDouble(tbxMixVolume.Text);
|
}
|
}
|
}
|
catch (Exception ex)
|
{
|
LoggerHelper.ErrorLog("ERROR:", ex);
|
}
|
}
|
#endregion
|
|
private void tbxMixCount_TextChanged(object sender, TextChangedEventArgs e)
|
{
|
try
|
{
|
if (mark != 0)
|
{
|
if (methodCoatingFile != null)
|
{
|
methodCoatingFile.mixcount = Convert.ToInt32(tbxMixCount.Text);
|
}
|
}
|
}
|
catch (Exception ex)
|
{
|
LoggerHelper.ErrorLog("ERROR:", ex);
|
}
|
}
|
|
#region 吸液距离类型
|
private void cbMixAspiratePosition_SelectionChanged(object sender, SelectionChangedEventArgs e)
|
{
|
if (mark != 0)
|
{
|
if (cbMixAspiratePosition.SelectedItem != null)
|
{
|
DropdownName dpdItem = (DropdownName)cbMixAspiratePosition.SelectedItem;
|
methodCoatingFile.mixAspiratePositionValue = Convert.ToInt32(dpdItem.dropdown_id);
|
methodCoatingFile.mixAspiratePositionText = dpdItem.dropdown_name;
|
}
|
}
|
}
|
#endregion
|
|
private void tbxMixAspirateDistance_TextChanged(object sender, TextChangedEventArgs e)
|
{
|
try
|
{
|
if (mark != 0)
|
{
|
if (methodCoatingFile != null)
|
{
|
methodCoatingFile.mixAspirateDistance = Convert.ToDouble(tbxMixAspirateDistance.Text);
|
}
|
}
|
}
|
catch (Exception ex)
|
{
|
LoggerHelper.ErrorLog("ERROR:", ex);
|
}
|
}
|
|
private void tbxMixAspirateSpeed_TextChanged(object sender, TextChangedEventArgs e)
|
{
|
try
|
{
|
if (mark != 0)
|
{
|
if (methodCoatingFile != null)
|
{
|
methodCoatingFile.mixAspirateSpeed = Convert.ToDouble(tbxMixAspirateSpeed.Text);
|
}
|
}
|
}
|
catch (Exception ex)
|
{
|
LoggerHelper.ErrorLog("ERROR:", ex);
|
}
|
}
|
|
#region 加液距离类型
|
private void cbMixDispensePosition_SelectionChanged(object sender, SelectionChangedEventArgs e)
|
{
|
if (mark != 0)
|
{
|
if (cbMixDispensePosition.SelectedItem != null)
|
{
|
DropdownName dpdItem = (DropdownName)cbMixDispensePosition.SelectedItem;
|
methodCoatingFile.mixDispensePositionValue = Convert.ToInt32(dpdItem.dropdown_id);
|
methodCoatingFile.mixDispensePositionText = dpdItem.dropdown_name;
|
}
|
}
|
}
|
#endregion
|
|
#region 加液时, 在距离
|
private void tbxMixDispenseDistance_TextChanged(object sender, TextChangedEventArgs e)
|
{
|
try
|
{
|
if (mark != 0)
|
{
|
if (methodCoatingFile != null)
|
{
|
methodCoatingFile.mixDispenseDistance = Convert.ToDouble(tbxMixDispenseDistance.Text);
|
}
|
}
|
}
|
catch (Exception ex)
|
{
|
LoggerHelper.ErrorLog("ERROR:", ex);
|
}
|
}
|
#endregion
|
|
#region μL/s 加液变更事件
|
private void tbxMixDispenseSpeed_TextChanged(object sender, TextChangedEventArgs e)
|
{
|
try
|
{
|
if (mark != 0)
|
{
|
if (methodCoatingFile != null)
|
{
|
methodCoatingFile.mixDispenseSpeed = Convert.ToDouble(tbxMixDispenseSpeed.Text);
|
}
|
}
|
}
|
catch (Exception ex)
|
{
|
LoggerHelper.ErrorLog("ERROR:", ex);
|
}
|
}
|
#endregion
|
|
#region 挑菌涂布设置 上一步
|
private void btnPrevChoiceCoatingSetting_Click(object sender, RoutedEventArgs e)
|
{
|
if (stepBar.StepIndex > stepBar.Items.Count)
|
{
|
stepBar.Prev();
|
stepBar.Prev();
|
}
|
else
|
stepBar.Prev();
|
gridSelectFile.Visibility = Visibility.Collapsed;
|
gridTipSetting.Visibility = Visibility.Collapsed;
|
gridLiquidParam.Visibility = Visibility.Visible;
|
scrollViewer.ScrollToTop();
|
}
|
#endregion
|
|
#region 挑菌涂布设置 完成
|
private void btnFinish_Click(object sender, RoutedEventArgs e)
|
{
|
stepBar.Next();
|
gridSelectFile.Visibility = Visibility.Collapsed;
|
gridTipSetting.Visibility = Visibility.Visible;
|
gridLiquidParam.Visibility = Visibility.Collapsed;
|
scrollViewer.ScrollToTop();
|
}
|
#endregion
|
|
#region 选择文件 下一步
|
private void btnNext_Click(object sender, RoutedEventArgs e)
|
{
|
stepBar.Next();
|
gridSelectFile.Visibility = Visibility.Collapsed;
|
gridUltrasonic.Visibility = Visibility.Visible;
|
gridTipSetting.Visibility = Visibility.Collapsed;
|
gridLiquidParam.Visibility = Visibility.Collapsed;
|
scrollViewer.ScrollToTop();
|
}
|
#endregion
|
|
#region 挑菌前环境设置 下一步
|
private void btnNext1_Click(object sender, RoutedEventArgs e)
|
{
|
stepBar.Next();
|
gridUltrasonic.Visibility = Visibility.Collapsed;
|
gridSelectFile.Visibility = Visibility.Collapsed;
|
gridTipSetting.Visibility = Visibility.Visible;
|
gridLiquidParam.Visibility = Visibility.Collapsed;
|
scrollViewer.ScrollToTop();
|
}
|
#endregion
|
|
#region 挑菌前环境设置 上一步
|
private void btnPrev_Click(object sender, RoutedEventArgs e)
|
{
|
stepBar.Prev();
|
gridUltrasonic.Visibility = Visibility.Visible;
|
gridSelectFile.Visibility = Visibility.Collapsed;
|
gridTipSetting.Visibility = Visibility.Collapsed;
|
gridLiquidParam.Visibility = Visibility.Collapsed;
|
scrollViewer.ScrollToTop();
|
}
|
#endregion
|
|
#region 涂布文件变更事件
|
private void tbExcelFile_TextChanged(object sender, TextChangedEventArgs e)
|
{
|
efError.Text = string.IsNullOrEmpty(tbExcelFile.Text.Trim()) ? "不能为空" : "";
|
}
|
#endregion
|
|
#region 调高变更事件
|
private void tbxCoatingOffset_TextChanged(object sender, TextChangedEventArgs e)
|
{
|
try
|
{
|
if (methodCoatingFile != null)
|
{
|
methodCoatingFile.coatingOffset = Convert.ToDouble(tbxCoatingOffset.Text);
|
}
|
}
|
catch (Exception ex)
|
{
|
LoggerHelper.ErrorLog("ERROR:", ex);
|
}
|
}
|
#endregion
|
|
#region 超声探测属性
|
/// <summary>
|
/// 探测耗材名称
|
/// </summary>
|
/// <param name="sender"></param>
|
/// <param name="e"></param>
|
private void comboboxLabwareType_SelectionChanged(object sender, SelectionChangedEventArgs e)
|
{
|
var labwareT = (Labware)(comboboxLabwareType.SelectedItem as Labware);
|
if (labwareT == null)
|
{
|
return;
|
}
|
|
// 先看类型,加载界面
|
if (labwareT.labware_type_id.Equals(EnumManagement.GetEnumValue(ConsumableTypeEnum.CircularDish).ToString())) // 圆形皿
|
{
|
bdDish.Visibility = Visibility.Visible;
|
bdLabware.Visibility = Visibility.Collapsed;
|
|
if (methodCoatingFile.ultrasonicDishObjectList == null) // 圆形皿耗材超声属性
|
{
|
// 构建圆形皿默认三个坐标
|
dishPointlist = GenerateDefaultPointList();
|
|
if (methodCoatingFile.ultrasonicDishObjectList == null)
|
{
|
methodCoatingFile.ultrasonicDishObjectList = new List<UltrasonicDishObject>();
|
}
|
|
UltrasonicDishObject ultrasonicDishObject = new UltrasonicDishObject();
|
ultrasonicDishObject.labwareText = labwareT.labware_name;
|
ultrasonicDishObject.labwareValue = labwareT.labware_id;
|
ultrasonicDishObject.xDishAxisVal = 0d;
|
ultrasonicDishObject.yDishAxisVal = 0d;
|
ultrasonicDishObject.pointList = new ObservableCollection<DropdownName>();
|
ultrasonicDishObject.pointList = dishPointlist;
|
methodCoatingFile.ultrasonicDishObjectList.Add(ultrasonicDishObject);
|
}
|
else
|
{
|
var labT = methodCoatingFile.ultrasonicDishObjectList.FirstOrDefault(x => x.labwareValue.Equals(labwareT.labware_id));
|
if (labT != null)
|
{
|
if (labT.pointList != null && labT.pointList.Count != 0)
|
{
|
dishPointlist = new ObservableCollection<DropdownName>(labT.pointList);
|
}
|
else
|
{
|
// 构建圆形皿默认三个坐标
|
dishPointlist = GenerateDefaultPointList();
|
labT.pointList = dishPointlist;
|
}
|
}
|
else
|
{
|
// 构建圆形皿默认三个坐标
|
dishPointlist = GenerateDefaultPointList();
|
|
if (methodCoatingFile.ultrasonicDishObjectList == null)
|
{
|
methodCoatingFile.ultrasonicDishObjectList = new List<UltrasonicDishObject>();
|
}
|
|
UltrasonicDishObject ultrasonicDishObject = new UltrasonicDishObject();
|
ultrasonicDishObject.labwareText = labwareT.labware_name;
|
ultrasonicDishObject.labwareValue = labwareT.labware_id;
|
ultrasonicDishObject.xDishAxisVal = 0d;
|
ultrasonicDishObject.yDishAxisVal = 0d;
|
ultrasonicDishObject.pointList = new ObservableCollection<DropdownName>();
|
ultrasonicDishObject.pointList = dishPointlist;
|
methodCoatingFile.ultrasonicDishObjectList.Add(ultrasonicDishObject);
|
}
|
}
|
|
dgPointListData.ItemsSource = dishPointlist;
|
}
|
else
|
{
|
bdDish.Visibility = Visibility.Collapsed;
|
bdLabware.Visibility = Visibility.Visible;
|
if (methodCoatingFile.ultrasonicObjectList == null)
|
{
|
methodCoatingFile.ultrasonicObjectList = new List<UltrasonicObject>();
|
UltrasonicObject ultrasonicObject = new UltrasonicObject();
|
|
ultrasonicObject.labwareText = labwareT.labware_name;
|
ultrasonicObject.labwareValue = labwareT.labware_id;
|
ultrasonicObject.rowNum = Convert.ToInt32(tbxRowNum.Text);
|
ultrasonicObject.columnNum = Convert.ToInt32(tbxColumnNum.Text);
|
ultrasonicObject.closeTopVal = Convert.ToDouble(tbxCloseTop.Text);
|
ultrasonicObject.closeLeftVal = Convert.ToDouble(tbxCloseLeft.Text);
|
ultrasonicObject.xAxisVal = Convert.ToDouble(tbxDistanceOfX.Text);
|
ultrasonicObject.yAxisVal = Convert.ToDouble(tbxDistanceOfY.Text);
|
methodCoatingFile.ultrasonicObjectList.Add(ultrasonicObject);
|
}
|
else
|
{
|
var labT = methodCoatingFile.ultrasonicObjectList.FirstOrDefault(x => x.labwareValue.Equals(labwareT.labware_id));
|
if (labT != null)
|
{
|
tbxRowNum.Text = labT.rowNum.ToString();
|
tbxColumnNum.Text = labT.columnNum.ToString();
|
tbxCloseTop.Text = labT.closeTopVal.ToString();
|
tbxCloseLeft.Text = labT.closeLeftVal.ToString();
|
tbxDistanceOfX.Text = labT.xAxisVal.ToString();
|
tbxDistanceOfY.Text = labT.yAxisVal.ToString();
|
}
|
else
|
{
|
if (methodCoatingFile.ultrasonicObjectList == null)
|
{
|
methodCoatingFile.ultrasonicObjectList = new List<UltrasonicObject>();
|
}
|
|
UltrasonicObject ultrasonicObject = new UltrasonicObject();
|
var labTm = methodCoatingFile.ultrasonicObjectList.FirstOrDefault(x => x.labwareValue.Equals(labwareT.labware_id));
|
|
ultrasonicObject.labwareText = labwareT.labware_name;
|
ultrasonicObject.labwareValue = labwareT.labware_id;
|
ultrasonicObject.rowNum = Convert.ToInt32(tbxRowNum.Text);
|
ultrasonicObject.columnNum = Convert.ToInt32(tbxColumnNum.Text);
|
ultrasonicObject.closeTopVal = Convert.ToDouble(tbxCloseTop.Text);
|
ultrasonicObject.closeLeftVal = Convert.ToDouble(tbxCloseLeft.Text);
|
ultrasonicObject.xAxisVal = Convert.ToDouble(tbxDistanceOfX.Text);
|
ultrasonicObject.yAxisVal = Convert.ToDouble(tbxDistanceOfY.Text);
|
if (labTm == null)
|
{
|
methodCoatingFile.ultrasonicObjectList.Add(ultrasonicObject);
|
}
|
}
|
}
|
}
|
}
|
|
/// <summary>
|
/// 探测行数
|
/// </summary>
|
/// <param name="sender"></param>
|
/// <param name="e"></param>
|
private void tbxRowNum_TextChanged(object sender, TextChangedEventArgs e)
|
{
|
try
|
{
|
if (methodCoatingFile != null)
|
{
|
Labware labwareT = (Labware)(comboboxLabwareType.SelectedItem as Labware);
|
if (labwareT == null)
|
{
|
return;
|
}
|
|
var labT = methodCoatingFile.ultrasonicObjectList.FirstOrDefault(x => x.labwareValue.Equals(labwareT.labware_id));
|
if (labT != null)
|
{
|
labT.rowNum = Convert.ToInt32(tbxRowNum.Text);
|
}
|
else
|
{
|
UltrasonicObject ultrasonicObject = new UltrasonicObject();
|
ultrasonicObject.labwareText = labwareT.labware_name;
|
ultrasonicObject.labwareValue = labwareT.labware_id;
|
ultrasonicObject.rowNum = Convert.ToInt32(tbxRowNum.Text);
|
methodCoatingFile.ultrasonicObjectList.Add(ultrasonicObject);
|
}
|
}
|
}
|
catch (Exception ex)
|
{
|
LoggerHelper.ErrorLog("ERROR:", ex);
|
}
|
}
|
|
/// <summary>
|
/// 探测列数
|
/// </summary>
|
/// <param name="sender"></param>
|
/// <param name="e"></param>
|
private void tbxColumnNum_TextChanged(object sender, TextChangedEventArgs e)
|
{
|
try
|
{
|
if (methodCoatingFile != null)
|
{
|
Labware labwareT = (Labware)(comboboxLabwareType.SelectedItem as Labware);
|
if (labwareT == null)
|
{
|
return;
|
}
|
|
var labT = methodCoatingFile.ultrasonicObjectList.FirstOrDefault(x => x.labwareValue.Equals(labwareT.labware_id));
|
if (labT != null)
|
{
|
labT.columnNum = Convert.ToInt32(tbxColumnNum.Text);
|
}
|
else
|
{
|
UltrasonicObject ultrasonicObject = new UltrasonicObject();
|
ultrasonicObject.labwareText = labwareT.labware_name;
|
ultrasonicObject.labwareValue = labwareT.labware_id;
|
ultrasonicObject.columnNum = Convert.ToInt32(tbxColumnNum.Text);
|
methodCoatingFile.ultrasonicObjectList.Add(ultrasonicObject);
|
}
|
}
|
}
|
catch (Exception ex)
|
{
|
LoggerHelper.ErrorLog("ERROR:", ex);
|
}
|
}
|
|
/// <summary>
|
/// 距顶边
|
/// </summary>
|
/// <param name="sender"></param>
|
/// <param name="e"></param>
|
private void tbxCloseTop_TextChanged(object sender, TextChangedEventArgs e)
|
{
|
try
|
{
|
if (methodCoatingFile != null)
|
{
|
Labware labwareT = (Labware)(comboboxLabwareType.SelectedItem as Labware);
|
if (labwareT == null)
|
{
|
return;
|
}
|
|
var labT = methodCoatingFile.ultrasonicObjectList.FirstOrDefault(x => x.labwareValue.Equals(labwareT.labware_id));
|
if (labT != null)
|
{
|
labT.closeTopVal = Convert.ToDouble(tbxCloseTop.Text);
|
}
|
else
|
{
|
UltrasonicObject ultrasonicObject = new UltrasonicObject();
|
ultrasonicObject.labwareText = labwareT.labware_name;
|
ultrasonicObject.labwareValue = labwareT.labware_id;
|
ultrasonicObject.closeTopVal = Convert.ToDouble(tbxCloseTop.Text);
|
methodCoatingFile.ultrasonicObjectList.Add(ultrasonicObject);
|
}
|
}
|
}
|
catch (Exception ex)
|
{
|
LoggerHelper.ErrorLog("ERROR:", ex);
|
}
|
}
|
|
/// <summary>
|
/// 距左边
|
/// </summary>
|
/// <param name="sender"></param>
|
/// <param name="e"></param>
|
private void tbxCloseLeft_TextChanged(object sender, TextChangedEventArgs e)
|
{
|
try
|
{
|
if (methodCoatingFile != null)
|
{
|
Labware labwareT = (Labware)(comboboxLabwareType.SelectedItem as Labware);
|
if (labwareT == null)
|
{
|
return;
|
}
|
|
var labT = methodCoatingFile.ultrasonicObjectList.FirstOrDefault(x => x.labwareValue.Equals(labwareT.labware_id));
|
if (labT != null)
|
{
|
labT.closeLeftVal = Convert.ToDouble(tbxCloseLeft.Text);
|
}
|
else
|
{
|
UltrasonicObject ultrasonicObject = new UltrasonicObject();
|
ultrasonicObject.labwareText = labwareT.labware_name;
|
ultrasonicObject.labwareValue = labwareT.labware_id;
|
ultrasonicObject.closeLeftVal = Convert.ToDouble(tbxCloseLeft.Text);
|
methodCoatingFile.ultrasonicObjectList.Add(ultrasonicObject);
|
}
|
}
|
}
|
catch (Exception ex)
|
{
|
LoggerHelper.ErrorLog("ERROR:", ex);
|
}
|
}
|
|
/// <summary>
|
/// X间距
|
/// </summary>
|
/// <param name="sender"></param>
|
/// <param name="e"></param>
|
private void tbxDistanceOfX_TextChanged(object sender, TextChangedEventArgs e)
|
{
|
try
|
{
|
if (methodCoatingFile != null)
|
{
|
Labware labwareT = (Labware)(comboboxLabwareType.SelectedItem as Labware);
|
if (labwareT == null)
|
{
|
return;
|
}
|
|
var labT = methodCoatingFile.ultrasonicObjectList.FirstOrDefault(x => x.labwareValue.Equals(labwareT.labware_id));
|
if (labT != null)
|
{
|
labT.xAxisVal = Convert.ToDouble(tbxDistanceOfX.Text);
|
}
|
else
|
{
|
UltrasonicObject ultrasonicObject = new UltrasonicObject();
|
ultrasonicObject.labwareText = labwareT.labware_name;
|
ultrasonicObject.labwareValue = labwareT.labware_id;
|
ultrasonicObject.xAxisVal = Convert.ToDouble(tbxDistanceOfX.Text);
|
methodCoatingFile.ultrasonicObjectList.Add(ultrasonicObject);
|
}
|
}
|
}
|
catch (Exception ex)
|
{
|
LoggerHelper.ErrorLog("ERROR:", ex);
|
}
|
}
|
|
/// <summary>
|
/// Y间距
|
/// </summary>
|
/// <param name="sender"></param>
|
/// <param name="e"></param>
|
private void tbxDistanceOfY_TextChanged(object sender, TextChangedEventArgs e)
|
{
|
try
|
{
|
if (methodCoatingFile != null)
|
{
|
Labware labwareT = (Labware)(comboboxLabwareType.SelectedItem as Labware);
|
if (labwareT == null)
|
{
|
return;
|
}
|
|
var labT = methodCoatingFile.ultrasonicObjectList.FirstOrDefault(x => x.labwareValue.Equals(labwareT.labware_id));
|
if (labT != null)
|
{
|
labT.yAxisVal = Convert.ToDouble(tbxDistanceOfY.Text);
|
}
|
else
|
{
|
UltrasonicObject ultrasonicObject = new UltrasonicObject();
|
ultrasonicObject.labwareText = labwareT.labware_name;
|
ultrasonicObject.labwareValue = labwareT.labware_id;
|
ultrasonicObject.yAxisVal = Convert.ToDouble(tbxDistanceOfY.Text);
|
methodCoatingFile.ultrasonicObjectList.Add(ultrasonicObject);
|
}
|
}
|
}
|
catch (Exception ex)
|
{
|
LoggerHelper.ErrorLog("ERROR:", ex);
|
}
|
}
|
|
/// <summary>
|
/// 点位 新增
|
/// </summary>
|
/// <param name="sender"></param>
|
/// <param name="e"></param>
|
private void btnAdd_Click(object sender, RoutedEventArgs e)
|
{
|
try
|
{
|
Labware labwareT = (Labware)(comboboxLabwareType.SelectedItem as Labware);
|
var labT = methodCoatingFile.ultrasonicDishObjectList.FirstOrDefault(x => x.labwareValue.Equals(labwareT.labware_id));
|
|
if (labT != null)
|
{
|
DropdownName dropdownName = new DropdownName();
|
dropdownName.index_id = dishPointlist.Count + 1;
|
dropdownName.dropdown_id = "0";
|
dropdownName.dropdown_name = "0";
|
dishPointlist.Add(dropdownName);
|
labT.pointList = dishPointlist;
|
}
|
else
|
{
|
methodCoatingFile.ultrasonicDishObjectList = new List<UltrasonicDishObject>();
|
UltrasonicDishObject ultrasonicDishObject = new UltrasonicDishObject();
|
|
ultrasonicDishObject.labwareText = labwareT.labware_name;
|
ultrasonicDishObject.labwareValue = labwareT.labware_id;
|
ultrasonicDishObject.xDishAxisVal = 0d;
|
ultrasonicDishObject.yDishAxisVal = 0d;
|
ultrasonicDishObject.pointList = new ObservableCollection<DropdownName>();
|
|
DropdownName dropdownName = new DropdownName();
|
dropdownName.index_id = dishPointlist.Count + 1;
|
dropdownName.dropdown_id = "0";
|
dropdownName.dropdown_name = "0";
|
dishPointlist.Add(dropdownName);
|
ultrasonicDishObject.pointList = dishPointlist;
|
methodCoatingFile.ultrasonicDishObjectList.Add(ultrasonicDishObject);
|
}
|
|
dgPointListData.ItemsSource = dishPointlist;
|
}
|
catch (Exception ex)
|
{
|
LoggerHelper.ErrorLog("ERROR:", ex);
|
}
|
}
|
|
/// <summary>
|
/// 点位 删除
|
/// </summary>
|
/// <param name="sender"></param>
|
/// <param name="e"></param>
|
private void btnDelete_Click(object sender, RoutedEventArgs e)
|
{
|
try
|
{
|
int SelectedRow = dgPointListData.SelectedIndex;//尝试解析出所选行
|
if (SelectedRow < 0)
|
{
|
return;
|
}
|
|
FrameworkElement element = dgPointListData.Columns[0].GetCellContent(dgPointListData.Items[SelectedRow]);
|
List<Label> listBtn = ViewCom.GetChildObjects<Label>((DependencyObject)element, typeof(Label));
|
if (listBtn.Count > 0)
|
{
|
int grd = Convert.ToInt32(listBtn[0].Tag);
|
Labware labwareT = (Labware)(comboboxLabwareType.SelectedItem as Labware);
|
var labT = methodCoatingFile.ultrasonicDishObjectList.FirstOrDefault(x => x.labwareValue.Equals(labwareT.labware_id));
|
if (labT != null)
|
{
|
labT.pointList.Remove(labT.pointList.FirstOrDefault(x => x.index_id == grd));
|
dishPointlist = labT.pointList;
|
dgPointListData.ItemsSource = dishPointlist;
|
}
|
}
|
}
|
catch (Exception ex)
|
{
|
LoggerHelper.ErrorLog("ERROR:", ex);
|
}
|
}
|
|
/// <summary>
|
/// X轴
|
/// </summary>
|
/// <param name="sender"></param>
|
/// <param name="e"></param>
|
private void tbxXAxis_TextChanged(object sender, TextChangedEventArgs e)
|
{
|
try
|
{
|
if (methodCoatingFile != null)
|
{
|
Labware labwareT = (Labware)(comboboxLabwareType.SelectedItem as Labware);
|
if (labwareT == null)
|
{
|
return;
|
}
|
|
var labT = methodCoatingFile.ultrasonicDishObjectList.FirstOrDefault(x => x.labwareValue.Equals(labwareT.labware_id));
|
if (labT != null)
|
{
|
labT.xDishAxisVal = Convert.ToDouble(tbxXAxis.Text);
|
}
|
else
|
{
|
UltrasonicDishObject ultrasonicDishObject = new UltrasonicDishObject();
|
ultrasonicDishObject.xDishAxisVal = Convert.ToDouble(tbxXAxis.Text);
|
methodCoatingFile.ultrasonicDishObjectList.Add(ultrasonicDishObject);
|
}
|
}
|
}
|
catch (Exception ex)
|
{
|
LoggerHelper.ErrorLog("ERROR:", ex);
|
}
|
}
|
|
/// <summary>
|
/// Y轴
|
/// </summary>
|
/// <param name="sender"></param>
|
/// <param name="e"></param>
|
private void tbxYAxis_TextChanged(object sender, TextChangedEventArgs e)
|
{
|
try
|
{
|
if (methodCoatingFile != null)
|
{
|
Labware labwareT = (Labware)(comboboxLabwareType.SelectedItem as Labware);
|
if (labwareT == null)
|
{
|
return;
|
}
|
|
var labT = methodCoatingFile.ultrasonicDishObjectList.FirstOrDefault(x => x.labwareValue.Equals(labwareT.labware_id));
|
if (labT != null)
|
{
|
labT.yDishAxisVal = Convert.ToDouble(tbxYAxis.Text);
|
}
|
else
|
{
|
UltrasonicDishObject ultrasonicDishObject = new UltrasonicDishObject();
|
ultrasonicDishObject.yDishAxisVal = Convert.ToDouble(tbxYAxis.Text);
|
methodCoatingFile.ultrasonicDishObjectList.Add(ultrasonicDishObject);
|
}
|
}
|
}
|
catch (Exception ex)
|
{
|
LoggerHelper.ErrorLog("ERROR:", ex);
|
}
|
}
|
|
#region 点位设置 DataGrid
|
/// <summary>
|
/// 点位设置 DataGrid
|
/// </summary>
|
/// <param name="sender"></param>
|
/// <param name="e"></param>
|
private void dgPointListData_CellEditEnding(object sender, DataGridCellEditEndingEventArgs e)
|
{
|
try
|
{
|
// 如果点击了放弃按钮或ESC
|
if (e.EditAction == DataGridEditAction.Cancel)
|
{
|
return;
|
}
|
|
// 获取编辑模式显示的元素,因为使用了模板,因此这里是ContentPresenter类型
|
ContentPresenter cp = e.EditingElement as ContentPresenter;
|
if (cp != null && VisualTreeHelper.GetChildrenCount(cp) > 0)
|
{
|
// 找到编辑框
|
TextBox textBox = VisualTreeHelper.GetChild(cp, 0) as TextBox;
|
// 如果找到
|
if (textBox != null)
|
{
|
int id = Convert.ToInt32(textBox.Tag);
|
Labware labwareT = (Labware)(comboboxLabwareType.SelectedItem as Labware);
|
var labT = methodCoatingFile.ultrasonicDishObjectList.FirstOrDefault(x => x.labwareValue.Equals(labwareT.labware_id));
|
if (labT == null)
|
{
|
return;
|
}
|
|
var pointItem = labT.pointList.FirstOrDefault(x => x.index_id == id);
|
|
DropdownName dropdown = new DropdownName();
|
dropdown.index_id = id;
|
if (textBox.Name == "tbXoffset")
|
{
|
dropdown.dropdown_id = textBox.Text;
|
pointItem.dropdown_id = textBox.Text;
|
}
|
else
|
{
|
dropdown.dropdown_name = textBox.Text;
|
pointItem.dropdown_name = textBox.Text;
|
}
|
|
var dataGrid = sender as System.Windows.Controls.DataGrid;
|
dataGrid.BeginEdit();
|
}
|
}
|
}
|
catch (Exception ex)
|
{
|
LoggerHelper.ErrorLog("ERROR:", ex);
|
}
|
}
|
#endregion
|
|
private void btnPrev2_Click(object sender, RoutedEventArgs e)
|
{
|
if (stepBar.StepIndex > stepBar.Items.Count)
|
{
|
stepBar.Prev();
|
stepBar.Prev();
|
}
|
else
|
{
|
stepBar.Prev();
|
}
|
gridSelectFile.Visibility = Visibility.Visible;
|
gridUltrasonic.Visibility = Visibility.Collapsed;
|
gridLiquidParam.Visibility = Visibility.Collapsed;
|
gridTipSetting.Visibility = Visibility.Collapsed;
|
scrollViewer.ScrollToTop();
|
}
|
|
private void btnNext2_Click(object sender, RoutedEventArgs e)
|
{
|
stepBar.Next();
|
gridSelectFile.Visibility = Visibility.Collapsed;
|
gridUltrasonic.Visibility = Visibility.Collapsed;
|
gridLiquidParam.Visibility = Visibility.Visible;
|
gridTipSetting.Visibility = Visibility.Collapsed;
|
scrollViewer.ScrollToTop();
|
}
|
|
/// <summary>
|
/// 重置
|
/// </summary>
|
/// <param name="sender"></param>
|
/// <param name="e"></param>
|
private void btnReset_Click(object sender, RoutedEventArgs e)
|
{
|
var labwareT = (Labware)(comboboxLabwareType.SelectedItem as Labware);
|
if (labwareT != null)
|
{
|
//先看类型,加载界面
|
if (labwareT.labware_type_id.Equals(EnumManagement.GetEnumValue(ConsumableTypeEnum.CircularDish).ToString())) // 圆形皿
|
{
|
if (methodCoatingFile.ultrasonicDishObjectList == null)
|
{
|
return;
|
}
|
var labT = methodCoatingFile.ultrasonicDishObjectList.FirstOrDefault(x => x.labwareValue.Equals(labwareT.labware_id));
|
if (labT != null)
|
{
|
labT.pointList = dishPointlist = GenerateDefaultPointList();
|
dgPointListData.ItemsSource = dishPointlist;
|
}
|
}
|
else
|
{
|
if (methodCoatingFile.ultrasonicObjectList != null)
|
{
|
var labT = methodCoatingFile.ultrasonicObjectList.FirstOrDefault(x => x.labwareValue.Equals(labwareT.labware_id));
|
if (labT != null)
|
{
|
tbxRowNum.Text = "0";
|
tbxColumnNum.Text = "0";
|
tbxCloseTop.Text = "0";
|
tbxCloseLeft.Text = "0";
|
tbxDistanceOfX.Text = "0";
|
tbxDistanceOfY.Text = "0";
|
methodCoatingFile.ultrasonicObjectList.Remove(labT);
|
}
|
}
|
}
|
}
|
}
|
|
/// <summary>
|
/// 移动距离
|
/// </summary>
|
/// <param name="sender"></param>
|
/// <param name="e"></param>
|
private void tbxShakeDistance_TextChanged(object sender, TextChangedEventArgs e)
|
{
|
try
|
{
|
if (methodCoatingFile != null)
|
{
|
methodCoatingFile.shakeDistanceValue = Convert.ToDouble(tbxShakeDistance.Text);
|
}
|
}
|
catch (Exception ex)
|
{
|
LoggerHelper.ErrorLog("ERROR:", ex);
|
}
|
}
|
|
/// <summary>
|
/// 次数
|
/// </summary>
|
/// <param name="sender"></param>
|
/// <param name="e"></param>
|
private void tbxShakeCount_TextChanged(object sender, TextChangedEventArgs e)
|
{
|
try
|
{
|
if (methodCoatingFile != null)
|
{
|
methodCoatingFile.shakeCountValue = Convert.ToInt32(tbxShakeCount.Text);
|
}
|
}
|
catch (Exception ex)
|
{
|
LoggerHelper.ErrorLog("ERROR:", ex);
|
}
|
}
|
|
#region 开启超声
|
private void cbxEnableUltrasonic_Click(object sender, RoutedEventArgs e)
|
{
|
methodCoatingFile.isEnableultrasonic = (bool)cbxEnableUltrasonic.IsChecked;
|
}
|
#endregion
|
|
#endregion
|
|
#region 每次涂布前都挑菌
|
private void cbPickEveryTime_Click(object sender, RoutedEventArgs e)
|
{
|
methodCoatingFile.pickEveryTime = (bool)cbPickEveryTime.IsChecked;
|
|
if (!(bool)cbPickEveryTime.IsChecked)
|
{
|
cbPickAgoChangeTipEveryTime.IsChecked = false;
|
cbPickAgoChangeTipEveryTime_Click(null, null);
|
}
|
}
|
#endregion
|
|
#region 多块目标板挑菌前要换枪头
|
private void cbPickAgoChangeTipEveryTime_Click(object sender, RoutedEventArgs e)
|
{
|
methodCoatingFile.pickAgoChangeTipEveryTime = (bool)cbPickAgoChangeTipEveryTime.IsChecked;
|
|
if ((bool)cbPickAgoChangeTipEveryTime.IsChecked)
|
{
|
cbPickEveryTime.IsChecked = true;
|
cbPickEveryTime_Click(null, null);
|
}
|
}
|
#endregion
|
|
#region 自动开关盖点击事件
|
/// <summary>
|
/// 自动开关盖点击事件
|
/// </summary>
|
/// <param name="sender"></param>
|
/// <param name="e"></param>
|
private void ckbAutoOpenCloseCoverCoating_Click(object sender, RoutedEventArgs e)
|
{
|
methodCoatingFile.autoOpenCloseCoverCoating = (bool)ckbAutoOpenCloseCoverCoating.IsChecked;
|
}
|
#endregion
|
}
|
}
|