using DataEntity;
using DataRWDAL;
using Microsoft.Win32;
using System;
using System.Collections.Generic;
using System.Collections.ObjectModel;
using System.Configuration;
using System.Data;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;
using XCommon.Log;
using XCore;
using XHandler.Class;
using XImagingXhandler.XDAL;
using XCoreBLL;
using DataEntity.Share;
using XHandler.Class.DataEx;
using System.Text.RegularExpressions;
using HandyControl.Data;
using XCommon.Tip;
using System.Runtime.Remoting.Channels;
namespace XHandler.View.MethodProperty
{
///
/// FileMoveLiquidProperty.xaml 的交互逻辑
///
public partial class FileMoveLiquidProperty : UserControl
{
FileMoveLiquidBll fileMoveLiquidBll = new FileMoveLiquidBll();
public MethodFileMoveLiquid methodFileMoveLiquid { get; set; }
public MethodFileMoveLiquid currmethodFileMoveLiquid = null;
public MethodEx method = null;
private Labware selectedLabware = null;
int curArmSelectedIndex = -1;
#region 全局变量
string isrun = "";
string status = "";
string name = "";
string label = "";
string armText = "";
string armValue = "";
string labwaretipText = "";
string labwaretipValue = "";
int[] channels = new int[0] { };
string filePath = "";
int beginLine = 0;
DataTable transferDataTable = new DataTable();
string sourceLabware = "";
string sourceWell = "";
string aspVolume = "";
string aspOpenLid = "";
string aspCloseLid = "";
string destinationLabware = "";
string destinationWell = "";
string dpsOpenLid = "";
string dpsCloseLid = "";
string dpsVolume = "";
string tipSet = "";
int changeTipsMode = 0;
string changeToTipText = "";
int changeToTipValue = 0;
bool jump0Volume = false;
string liquididText = "";
string liquididValue = "";
string liquidrangeidText = "";
string liquidrangeidValue = "";
string liquidpidText = "";
string liquidpidValue = "";
bool baspMix = false;
double aspmixvolume = 0.0d;
int aspmixcount = 0;
string aspmixAspiratePositionText = "";
int aspmixAspiratePositionValue = 0;
double aspmixAspirateDistance = 0.0d;
double aspmixAspirateSpeed = 0.0d;
string aspmixDispensePositionText = "";
int aspmixDispensePositionValue = 0;
double aspmixDispenseDistance = 0.0d;
double aspmixDispenseSpeed = 0.0d;
bool bdpsMix = false;
double dpsmixvolume = 0.0d;
int dpsmixcount = 0;
string dpsmixAspiratePositionText = "";
int dpsmixAspiratePositionValue = 0;
double dpsmixAspirateDistance = 0.0d;
double dpsmixAspirateSpeed = 0.0d;
string dpsmixDispensePositionText = "";
int dpsmixDispensePositionValue = 0;
double dpsmixDispenseDistance = 0.0d;
double dpsmixDispenseSpeed = 0.0d;
bool enableLiquidSensor = false;
int liquidSensorCount = 0;
double liquidSensorDistance = 0.0d;
double liquidSensorEndDistance = 0.0d;
double liquidSensorSpeed = 0.0d;
double liquidSensorRadio = 0.0d;
string liquidSensorDisIdText = "";
double liquidSensorDisIdValue = 0.0d;
bool enableLiquidFollow = false;
int liquidFollowType = 0;
string liquidFollowTypeName = "";
double liquidFollowSpeed = 0.0d;
double liquidFollowDistance = 0.0d;
double liquidFollowArea = 0.0d;
bool enableMixFollow = false;
bool enableSensorBlock = false;
double liquidSensorBlockDistance = 0.0d;
string aspirateBlockDisIdText = "";
int aspirateBlockDisIdValue = 0;
string dispenseBlockDisIdText = "";
int dispenseBlockDisIdValue = 0;
string aspirateAirDisIdText = "";
int aspirateAirDisIdValue = 0;
int mark = 0;
#endregion
#region 构造
public FileMoveLiquidProperty()
{
InitializeComponent();
}
#endregion
#region 构造函数带参
public FileMoveLiquidProperty(MethodEx method)
{
InitializeComponent();
try
{
mark = 0;
methodFileMoveLiquid = new MethodFileMoveLiquid();
methodFileMoveLiquid.label = method.method_name;
methodFileMoveLiquid.name = method.method_name;
methodFileMoveLiquid.status = (method.isEnabled == true ? "enable" : "disable");
ObservableCollection liquidTypeList = DataModule.getInstance().GetLiquidTypes();
cbLiquidType.ItemsSource = liquidTypeList;
cbLiquidType.SelectedIndex = 0;
ObservableCollection tipsList = DataRWDAL.LabwareDB.GetTipLabwareFromdb();
cbTipsType.ItemsSource = tipsList;
cbTipsType.SelectedIndex = 0;
ObservableCollection liquidRangeList = DataModule.getInstance().GetLiquidRanges();
cbLiquidRange.ItemsSource = liquidRangeList;
cbLiquidRange.SelectedIndex = 0;
List armList = DataModule.getInstance().GetDeviceArm();
cbArm.ItemsSource = armList;
if (armList.Count == 2) //只有一个臂的情况下默认选中该臂
curArmSelectedIndex = 1;
else
curArmSelectedIndex = 0;
gdLiquidFollow.RowDefinitions[1].Height = new GridLength(0);
gdLiquidFollow.RowDefinitions[2].Height = new GridLength(0);
gdLiquidFollow.RowDefinitions[3].Height = new GridLength(0);
gdLiquidFollow.RowDefinitions[4].Height = new GridLength(0);
// 获取加液、取液位置类型
ObservableCollection mixPositionList = DataModule.getInstance().GetDispensePositionType();
cbMixAspiratePosition.ItemsSource = mixPositionList;
cbMixDispensePosition.ItemsSource = mixPositionList;
cbDpsMixAspiratePosition.ItemsSource = mixPositionList;
cbDpsMixDispensePosition.ItemsSource = mixPositionList;
cbMixAspiratePosition.SelectedIndex = 0;
cbMixDispensePosition.SelectedIndex = 0;
cbDpsMixAspiratePosition.SelectedIndex = 0;
cbDpsMixDispensePosition.SelectedIndex = 0;
tbxCommandLabel.Text = method.method_name;
checkboxSkip.IsChecked = true;
ObservableCollection listProcess = DataModule.getInstance().GetUndetectProcessList();
cbxLiquidSensorDisId.ItemsSource = listProcess;
ObservableCollection listAspirateBlockProcess = DataModule.getInstance().GetAspirateBlockDealTypeList();
cbxAspirateBlockDealType.ItemsSource = listAspirateBlockProcess;
ObservableCollection listDispenseBlockProcess = DataModule.getInstance().GetDispenseBlockDealTypeList();
cbxDispenseBlockDealType.ItemsSource = listDispenseBlockProcess;
ObservableCollection listAspirateAirProcess = DataModule.getInstance().GetAspirateAirDealTypeList();
cbxAspirateAirDealType.ItemsSource = listAspirateAirProcess;
ObservableCollection listLiquidFollowType = DataModule.getInstance().GetLiquidFollowTypeList();
cbxLiquidFollowType.ItemsSource = listLiquidFollowType;
radioBtnNotChange.IsChecked = true;
methodFileMoveLiquid.strIndex = method.strIndex;
this.method = method;
if (method.tag != null)
{
methodFileMoveLiquid = (MethodFileMoveLiquid)method.tag;
currmethodFileMoveLiquid = methodFileMoveLiquid;
isrun = methodFileMoveLiquid.isrun;
status = methodFileMoveLiquid.status;
name = methodFileMoveLiquid.name;
label = methodFileMoveLiquid.label;
armText = methodFileMoveLiquid.armText;
armValue = methodFileMoveLiquid.armValue;
labwaretipText = methodFileMoveLiquid.labwaretipText;
labwaretipValue = methodFileMoveLiquid.labwaretipValue;
channels = methodFileMoveLiquid.channels;
filePath = methodFileMoveLiquid.filePath;
beginLine = methodFileMoveLiquid.beginLine;
transferDataTable = methodFileMoveLiquid.transferDataTable;
sourceLabware = methodFileMoveLiquid.sourceLabware;
sourceWell = methodFileMoveLiquid.sourceWell;
aspVolume = methodFileMoveLiquid.aspVolume;
aspOpenLid = methodFileMoveLiquid.aspOpenLid;
aspCloseLid = methodFileMoveLiquid.aspCloseLid;
destinationLabware = methodFileMoveLiquid.destinationLabware;
destinationWell = methodFileMoveLiquid.destinationWell;
dpsVolume = methodFileMoveLiquid.dpsVolume;
dpsOpenLid = methodFileMoveLiquid.dpsOpenLid;
dpsCloseLid = methodFileMoveLiquid.dpsCloseLid;
tipSet = methodFileMoveLiquid.tipSet;
changeTipsMode = methodFileMoveLiquid.changeTipsMode;
changeToTipText = methodFileMoveLiquid.changeToTipText;
changeToTipValue = methodFileMoveLiquid.changeToTipValue;
jump0Volume = methodFileMoveLiquid.jump0Volume;
liquididText = methodFileMoveLiquid.liquididText;
liquididValue = methodFileMoveLiquid.liquididValue;
liquidrangeidText = methodFileMoveLiquid.liquidrangeidText;
liquidrangeidValue = methodFileMoveLiquid.liquidrangeidValue;
liquidpidText = methodFileMoveLiquid.liquidpidText;
liquidpidValue = methodFileMoveLiquid.liquidpidValue;
baspMix = methodFileMoveLiquid.baspMix;
aspmixvolume = methodFileMoveLiquid.aspmixvolume;
aspmixcount = methodFileMoveLiquid.aspmixcount;
aspmixAspiratePositionText = methodFileMoveLiquid.aspmixAspiratePositionText;
aspmixAspiratePositionValue = methodFileMoveLiquid.aspmixAspiratePositionValue;
aspmixAspirateDistance = methodFileMoveLiquid.aspmixAspirateDistance;
aspmixAspirateSpeed = methodFileMoveLiquid.aspmixAspirateSpeed;
aspmixDispensePositionText = methodFileMoveLiquid.aspmixDispensePositionText;
aspmixDispensePositionValue = methodFileMoveLiquid.aspmixDispensePositionValue;
aspmixDispenseDistance = methodFileMoveLiquid.aspmixDispenseDistance;
aspmixDispenseSpeed = methodFileMoveLiquid.aspmixDispenseSpeed;
bdpsMix = methodFileMoveLiquid.bdpsMix;
dpsmixvolume = methodFileMoveLiquid.dpsmixvolume;
dpsmixcount = methodFileMoveLiquid.dpsmixcount;
dpsmixAspiratePositionText = methodFileMoveLiquid.dpsmixAspiratePositionText;
dpsmixAspiratePositionValue = methodFileMoveLiquid.dpsmixAspiratePositionValue;
dpsmixAspirateDistance = methodFileMoveLiquid.dpsmixAspirateDistance;
dpsmixAspirateSpeed = methodFileMoveLiquid.dpsmixAspirateSpeed;
dpsmixDispensePositionText = methodFileMoveLiquid.dpsmixDispensePositionText;
dpsmixDispensePositionValue = methodFileMoveLiquid.dpsmixDispensePositionValue;
dpsmixDispenseDistance = methodFileMoveLiquid.dpsmixDispenseDistance;
dpsmixDispenseSpeed = methodFileMoveLiquid.dpsmixDispenseSpeed;
enableLiquidSensor = methodFileMoveLiquid.enableLiquidSensor;
liquidSensorCount = methodFileMoveLiquid.liquidSensorCount;
liquidSensorDistance = methodFileMoveLiquid.liquidSensorDistance;
liquidSensorEndDistance = methodFileMoveLiquid.liquidSensorEndDistance;
liquidSensorSpeed = methodFileMoveLiquid.liquidSensorSpeed;
liquidSensorRadio = methodFileMoveLiquid.liquidSensorRadio;
liquidSensorDisIdText = methodFileMoveLiquid.liquidSensorDisIdText;
liquidSensorDisIdValue = methodFileMoveLiquid.liquidSensorDisIdValue;
enableLiquidFollow = methodFileMoveLiquid.enableLiquidFollow;
liquidFollowType = methodFileMoveLiquid.liquidFollowType;
liquidFollowTypeName = methodFileMoveLiquid.liquidFollowTypeName;
liquidFollowSpeed = methodFileMoveLiquid.liquidFollowSpeed;
liquidFollowDistance = methodFileMoveLiquid.liquidFollowDistance;
liquidFollowArea = methodFileMoveLiquid.liquidFollowArea;
enableMixFollow = methodFileMoveLiquid.enableMixFollow;
enableSensorBlock = methodFileMoveLiquid.enableSensorBlock;
aspirateBlockDisIdText = methodFileMoveLiquid.aspirateBlockDisIdText;
aspirateBlockDisIdValue = methodFileMoveLiquid.aspirateBlockDisIdValue;
dispenseBlockDisIdText = methodFileMoveLiquid.dispenseBlockDisIdText;
dispenseBlockDisIdValue = methodFileMoveLiquid.dispenseBlockDisIdValue;
aspirateAirDisIdText = methodFileMoveLiquid.aspirateAirDisIdText;
aspirateAirDisIdValue = methodFileMoveLiquid.aspirateAirDisIdValue;
}
this.DataContext = methodFileMoveLiquid;
}
catch(Exception ex)
{
LoggerHelper.ErrorLog("FileMoveLiquidProperty ERROR:", ex);
}
}
#endregion
#region 页面加载
private void UserControl_Loaded(object sender, RoutedEventArgs e)
{
mark += 1;
try
{
if (mark > 1)
{
return;
}
int[] ichs = channels;
if (!string.IsNullOrEmpty(armText))
{
tbxCommandName.Text = name;
cbArm.SelectedValue = armValue;
DeviceArm arm = cbArm.SelectedItem as DeviceArm;
tbxHeadType.Text = arm.head_type;
tbxbeginLine.Text = beginLine.ToString();
cbTipsType.SelectedValue = labwaretipValue;
cbLiquidType.SelectedValue = liquididValue;
cbLiquidRange.SelectedValue = liquidrangeidValue;
cbLiquid.SelectedValue = liquidpidValue;
dgTransferFileData.ItemsSource = transferDataTable.DefaultView;
tbExcelFile.Text = filePath;
//更新所有下拉列表
List transferFileHeaders = fileMoveLiquidBll.GetTransferFileHeaders(transferDataTable);
cbSourceBoard.ItemsSource = transferFileHeaders;
cbSourceWell.ItemsSource = transferFileHeaders;
cbAspVolume.ItemsSource= transferFileHeaders;
cbAspOpenLid.ItemsSource= transferFileHeaders;
cbAspCloseLid.ItemsSource= transferFileHeaders;
cbTargetBoard.ItemsSource = transferFileHeaders;
cbTargetWell.ItemsSource = transferFileHeaders;
cbVolumn.ItemsSource = transferFileHeaders;
cbDpsOpenLid.ItemsSource= transferFileHeaders;
cbDpsCloseLid.ItemsSource = transferFileHeaders;
cbChangeTip.ItemsSource = transferFileHeaders;
cbSourceBoard.Text = sourceLabware;
cbSourceWell.Text = sourceWell;
cbAspVolume.Text = aspVolume;
cbAspOpenLid.Text = aspOpenLid;
cbAspCloseLid.Text= aspCloseLid;
cbTargetBoard.Text = destinationLabware;
cbTargetWell.Text = destinationWell;
cbVolumn.Text = dpsVolume.ToString();
cbDpsOpenLid.Text= dpsOpenLid;
cbDpsCloseLid.Text = dpsCloseLid;
cbChangeTip.Text = tipSet;
if (changeTipsMode == 0)
{
radioBtnNotChange.IsChecked = true;
}
else if (changeTipsMode == 1)
{
radioBtnChangeByFile.IsChecked = true;
}
else if (changeTipsMode == 2)
{
radioBtnOperation.IsChecked = true;
}
if (jump0Volume)
{
checkboxSkip.IsChecked = true;
}
else
{
checkboxSkip.IsChecked = false;
}
if (baspMix)
{
checkboxMix.IsChecked = true;
tbxMixVolume.Text = aspmixvolume.ToString();
tbxMixCount.Text = aspmixcount.ToString();
cbMixAspiratePosition.SelectedValue = aspmixAspiratePositionValue;
tbxMixAspirateDistance.Text = aspmixAspirateDistance.ToString();
tbxMixAspirateSpeed.Text = aspmixAspirateSpeed.ToString();
cbMixDispensePosition.SelectedValue = aspmixDispensePositionValue;
tbxMixDispenseDistance.Text = aspmixDispenseDistance.ToString();
tbxMixDispenseSpeed.Text = aspmixDispenseSpeed.ToString();
}
else
{
checkboxMix.IsChecked = false;
}
if (bdpsMix)
{
checkboxDpsMix.IsChecked = true;
tbxDpsMixVolume.Text = dpsmixvolume.ToString();
tbxDpsMixCount.Text = dpsmixcount.ToString();
cbDpsMixAspiratePosition.SelectedValue = dpsmixAspiratePositionValue;
tbxDpsMixAspirateDistance.Text = dpsmixAspirateDistance.ToString();
tbxDpsMixAspirateSpeed.Text = dpsmixAspirateSpeed.ToString();
cbDpsMixDispensePosition.SelectedValue = dpsmixDispensePositionValue;
tbxDpsMixDispenseDistance.Text = dpsmixDispenseDistance.ToString();
tbxDpsMixDispenseSpeed.Text = dpsmixDispenseSpeed.ToString();
}
else
{
checkboxDpsMix.IsChecked = false;
}
if (enableLiquidSensor)
{
checkboxLiquidDetect.IsChecked = true;
gdLiquidSensor.IsEnabled = true;
txtNameLiquidSensorCount.Text = liquidSensorCount.ToString();
txtLiquidSensorDistance.Text = liquidSensorDistance.ToString();
txtLiquidSensorEndDistance.Text = liquidSensorEndDistance.ToString();
txtLiquidSensorSpeed.Text = liquidSensorSpeed.ToString();
txtLiquidSensorRadio.Text = liquidSensorRadio.ToString();
cbxLiquidSensorDisId.SelectedIndex = Convert.ToInt32(liquidSensorDisIdValue);
if (enableLiquidFollow)
{
checkboxLiquidFollow.IsChecked = true;
cbxLiquidFollowType.SelectedIndex = liquidFollowType;
txtLiquidFollowSpeed.Text = liquidFollowSpeed.ToString();
txtLiquidFollowDistance.Text = liquidFollowDistance.ToString();
if (liquidFollowType == 1)
{
bdrFollowOneType.Visibility = Visibility.Visible;
tbkFollowTwoTypeLabel.Visibility = Visibility.Collapsed;
txtLiquidFollowArea.Visibility = Visibility.Collapsed;
tbkFollowTwoTypeUnit.Visibility = Visibility.Collapsed;
if (methodFileMoveLiquid != null)
{
methodFileMoveLiquid.liquidFollowType = cbxLiquidFollowType.SelectedIndex;
methodFileMoveLiquid.liquidFollowTypeName = cbxLiquidFollowType.Text;
}
}
else if (liquidFollowType == 2)
{
bdrFollowOneType.Visibility = Visibility.Collapsed;
tbkFollowTwoTypeLabel.Visibility = Visibility.Visible;
txtLiquidFollowArea.Visibility = Visibility.Visible;
tbkFollowTwoTypeUnit.Visibility = Visibility.Visible;
if (methodFileMoveLiquid != null)
{
methodFileMoveLiquid.liquidFollowType = cbxLiquidFollowType.SelectedIndex;
methodFileMoveLiquid.liquidFollowTypeName = cbxLiquidFollowType.Text;
}
txtLiquidFollowArea.Text = liquidFollowArea.ToString();
}
if (enableMixFollow)
{
rdMixFollow.IsChecked = true;
}
else
{
rdMixNotFollow.IsChecked = true;
}
}
else
{
checkboxLiquidFollow.IsChecked = false;
cbxLiquidFollowType.SelectedIndex = liquidFollowType;
txtLiquidFollowSpeed.Text = liquidFollowSpeed.ToString();
txtLiquidFollowDistance.Text = liquidFollowDistance.ToString();
txtLiquidFollowArea.Text = liquidFollowArea.ToString();
//gdLiquidFollow.IsEnabled = false;
if (enableMixFollow)
{
rdMixFollow.IsChecked = true;
}
else
{
rdMixNotFollow.IsChecked = true;
}
}
}
else
{
checkboxLiquidDetect.IsChecked = false;
gdLiquidSensor.IsEnabled = false;
checkboxLiquidFollow.IsEnabled = false;
//gdLiquidFollow.IsEnabled = false;
cbxLiquidFollowType.SelectedIndex = liquidFollowType;
txtLiquidFollowSpeed.Text = liquidFollowSpeed.ToString();
txtLiquidFollowDistance.Text = liquidFollowDistance.ToString();
txtLiquidFollowArea.Text = liquidFollowArea.ToString();
if (enableMixFollow)
{
rdMixFollow.IsChecked = true;
}
else
{
rdMixNotFollow.IsChecked = true;
}
}
if (enableSensorBlock)
{
checkboxBlockDetect.IsChecked = true;
//tbxLiquidSensorBlockDistance.Text = liquidSensorBlockDistance.ToString();
cbxAspirateBlockDealType.SelectedIndex = Convert.ToInt32(aspirateBlockDisIdValue);
cbxDispenseBlockDealType.SelectedIndex = Convert.ToInt32(dispenseBlockDisIdValue);
}
else
{
checkboxBlockDetect.IsChecked = false;
}
cbxAspirateAirDealType.SelectedIndex = Convert.ToInt32(aspirateAirDisIdValue);
if (currmethodFileMoveLiquid != null)
{
methodFileMoveLiquid = currmethodFileMoveLiquid;
}
}
else
{
cbArm.SelectedIndex = curArmSelectedIndex;
if (cbArm.Items.Count > 1)
{
cbArm.SelectedIndex = 1;
}
DeviceArm arm = cbArm.SelectedItem as DeviceArm;
tbxHeadType.Text = arm.head_type;
cbLiquidType.SelectedIndex = 0;
cbMixAspiratePosition.SelectedIndex = 0;
cbMixDispensePosition.SelectedIndex = 0;
cbDpsMixAspiratePosition.SelectedIndex = 0;
cbDpsMixDispensePosition.SelectedIndex = 0;
methodFileMoveLiquid.jump0Volume = true;
if (currmethodFileMoveLiquid != null)
{
methodFileMoveLiquid = currmethodFileMoveLiquid;
}
cbxLiquidSensorDisId.SelectedIndex = 0;
cbxAspirateBlockDealType.SelectedIndex = 0;
cbxDispenseBlockDealType.SelectedIndex = 0;
cbxAspirateAirDealType.SelectedIndex = 0;
}
//ReceiveAndUpdate();
}
catch (Exception ex)
{
LoggerHelper.ErrorLog("UserControl_Loaded ERROR:", ex);
}
}
#endregion
#region 命令名称更改
private void tbxCommandName_TextChanged(object sender, TextChangedEventArgs e)
{
try
{
if (string.IsNullOrEmpty(tbxCommandName.Text))
{
cnError.Text = "命令名称不能为空";
return;
}
if (methodFileMoveLiquid != null)
{
methodFileMoveLiquid.name = tbxCommandName.Text;
}
}
catch (Exception ex)
{
LoggerHelper.ErrorLog("tbxCommandName_TextChanged ERROR:", ex);
}
}
#endregion
#region 选取文件
private void tbExcelFile_PreviewKeyDown(object sender, KeyEventArgs e)
{
try
{
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());
}
}
}
}
}
catch(Exception ex)
{
LoggerHelper.ErrorLog("tbExcelFile_PreviewKeyDown ERROR", ex);
}
}
private void btnSelectFile_Click(object sender, RoutedEventArgs e)
{
try
{
OpenFileDialog dlg = new OpenFileDialog();
dlg.Title = "请选择Excel文件";
dlg.FileName = string.Empty;
dlg.FilterIndex = 1;
dlg.Filter = "excel files(*.xls)|*.xls|csv files(*.csv)|*.csv|All files(*.*)|*.*";
dlg.Multiselect = false;
if (!string.IsNullOrEmpty(tbExcelFile.Text.Trim()))
{
if (System.IO.Path.HasExtension(tbExcelFile.Text.Trim()))
dlg.InitialDirectory = System.IO.Path.GetDirectoryName(tbExcelFile.Text.Trim());
else
dlg.InitialDirectory = tbExcelFile.Text.Trim();
}
if (dlg.ShowDialog() == true)
{
string fullPath = dlg.FileName;
if (methodFileMoveLiquid != null)
{
methodFileMoveLiquid.filePath = fullPath;
}
tbExcelFile.Text = fullPath;
SelectFile(fullPath);
}
((MainWindow)Application.Current.MainWindow).testDesign.IsIgnore = true; //防止影响到主界面流程中已拖放的单命令顺序
}
catch (Exception ex)
{
LoggerHelper.ErrorLog("btnSelectFile_Click ERROR", ex);
}
}
private void SelectFile(string file)
{
try
{
string ext = System.IO.Path.GetExtension(file);
DataTable transferData = null;
if (string.Compare(ext, ".csv", true) == 0)
transferData = ExcelAndCsvHelper.GetDataTableFromCsvFile(file);
else
transferData = ExcelAndCsvHelper.GetDataTableFromExcelFile(file, true);
if (transferData != null)
{
if (methodFileMoveLiquid != null)
{
methodFileMoveLiquid.transferDataTable = transferData;
}
dgTransferFileData.ItemsSource = transferData.DefaultView;
List transferFileHeaders = fileMoveLiquidBll.GetTransferFileHeaders(transferData);
cbSourceBoard.ItemsSource = transferFileHeaders;
cbSourceWell.ItemsSource = transferFileHeaders;
cbAspVolume.ItemsSource = transferFileHeaders;
cbAspOpenLid.ItemsSource = transferFileHeaders;
cbAspCloseLid.ItemsSource = transferFileHeaders;
cbTargetBoard.ItemsSource = transferFileHeaders;
cbTargetWell.ItemsSource = transferFileHeaders;
cbVolumn.ItemsSource = transferFileHeaders;
cbDpsOpenLid.ItemsSource = transferFileHeaders;
cbDpsCloseLid.ItemsSource = transferFileHeaders;
cbChangeTip.ItemsSource = transferFileHeaders;
cbSourceBoard.SelectedIndex = 1;
cbSourceWell.SelectedIndex = 2;
cbAspVolume.SelectedIndex = 3;
cbAspOpenLid.SelectedIndex = 4;
cbAspCloseLid.SelectedIndex = 5;
cbTargetBoard.SelectedIndex = 6;
cbTargetWell.SelectedIndex = 7;
cbVolumn.SelectedIndex = 8;
cbDpsOpenLid.SelectedIndex = 9;
cbDpsCloseLid.SelectedIndex = 10;
cbChangeTip.SelectedIndex = 11;
}
}
catch(Exception ex)
{
LoggerHelper.ErrorLog("SelectFile ERROR", ex);
}
}
#endregion
#region 开始行号
private void tbxbeginLine_TextChanged(object sender, TextChangedEventArgs e)
{
}
#endregion
#region 来源板
private void cbSourceBoard_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
try
{
if (cbSourceBoard.SelectedIndex == -1)
return;
TransferFileHeader transferFileHeader = cbSourceBoard.SelectedItem as TransferFileHeader;
if (methodFileMoveLiquid != null)
{
methodFileMoveLiquid.sourceLabware = transferFileHeader.header_name.ToString();
}
}
catch (Exception ex)
{
LoggerHelper.ErrorLog("cbSourceBoard_SelectionChanged ERROR:", ex);
}
}
#endregion
#region 来源孔
private void cbSourceWell_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
try
{
if (cbSourceWell.SelectedIndex == -1)
return;
TransferFileHeader transferFileHeader = cbSourceWell.SelectedItem as TransferFileHeader;
if (methodFileMoveLiquid != null)
{
methodFileMoveLiquid.sourceWell = transferFileHeader.header_name.ToString();
}
}
catch (Exception ex)
{
LoggerHelper.ErrorLog("cbSourceWell_SelectionChanged ERROR:", ex);
}
}
#endregion
#region 来源体积
private void cbAspVolume_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
try
{
if (cbAspVolume.SelectedIndex == -1)
return;
TransferFileHeader transferFileHeader = cbAspVolume.SelectedItem as TransferFileHeader;
if (methodFileMoveLiquid != null)
{
methodFileMoveLiquid.aspVolume = transferFileHeader.header_name.ToString();
}
}
catch (Exception ex)
{
LoggerHelper.ErrorLog("cbAspVolume_SelectionChanged ERROR:", ex);
}
}
#endregion
#region 来源吸液前开盖
private void cbAspOpenLid_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
try
{
if (cbAspOpenLid.SelectedIndex == -1)
return;
TransferFileHeader transferFileHeader = cbAspOpenLid.SelectedItem as TransferFileHeader;
if (methodFileMoveLiquid != null)
{
methodFileMoveLiquid.aspOpenLid = transferFileHeader.header_name.ToString();
}
}
catch (Exception ex)
{
LoggerHelper.ErrorLog("cbAspOpenLid_SelectionChanged ERROR:", ex);
}
}
#endregion
#region 来源吸液体后关盖
private void cbAspCloseLid_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
try
{
if (cbAspCloseLid.SelectedIndex == -1)
return;
TransferFileHeader transferFileHeader = cbAspCloseLid.SelectedItem as TransferFileHeader;
if (methodFileMoveLiquid != null)
{
methodFileMoveLiquid.aspCloseLid = transferFileHeader.header_name.ToString();
}
}
catch (Exception ex)
{
LoggerHelper.ErrorLog("cbAspCloseLid_SelectionChanged ERROR:", ex);
}
}
#endregion
#region 目标板
private void cbTargetBoard_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
try
{
if (cbTargetBoard.SelectedIndex == -1)
return;
TransferFileHeader transferFileHeader = cbTargetBoard.SelectedItem as TransferFileHeader;
if (methodFileMoveLiquid != null)
{
methodFileMoveLiquid.destinationLabware = transferFileHeader.header_name.ToString();
}
}
catch (Exception ex)
{
LoggerHelper.ErrorLog("cbTargetBoard_SelectionChanged ERROR:", ex);
}
}
#endregion
#region 目标孔
private void cbTargetWell_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
try
{
if (cbTargetWell.SelectedIndex == -1)
return;
TransferFileHeader transferFileHeader = cbTargetWell.SelectedItem as TransferFileHeader;
if (methodFileMoveLiquid != null)
{
methodFileMoveLiquid.destinationWell = transferFileHeader.header_name.ToString();
}
}
catch (Exception ex)
{
LoggerHelper.ErrorLog("cbTargetWell_SelectionChanged ERROR:", ex);
}
}
#endregion
#region 目标孔体积
private void cbVolumn_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
try
{
if (cbVolumn.SelectedIndex == -1)
return;
TransferFileHeader transferFileHeader = cbVolumn.SelectedItem as TransferFileHeader;
if (methodFileMoveLiquid != null)
{
methodFileMoveLiquid.dpsVolume = transferFileHeader.header_name.ToString();
}
}
catch (Exception ex)
{
LoggerHelper.ErrorLog("cbVolumn_SelectionChanged ERROR:", ex);
}
}
#endregion
#region 目标孔排液前开盖
private void cbDpsOpenLid_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
try
{
if (cbDpsOpenLid.SelectedIndex == -1)
return;
TransferFileHeader transferFileHeader = cbDpsOpenLid.SelectedItem as TransferFileHeader;
if (methodFileMoveLiquid != null)
{
methodFileMoveLiquid.dpsOpenLid = transferFileHeader.header_name.ToString();
}
}
catch (Exception ex)
{
LoggerHelper.ErrorLog("cbDpsOpenLid_SelectionChanged ERROR:", ex);
}
}
#endregion
#region 目标孔排液后关盖
private void cbDpsCloseLid_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
try
{
if (cbDpsCloseLid.SelectedIndex == -1)
return;
TransferFileHeader transferFileHeader = cbDpsCloseLid.SelectedItem as TransferFileHeader;
if (methodFileMoveLiquid != null)
{
methodFileMoveLiquid.dpsCloseLid = transferFileHeader.header_name.ToString();
}
}
catch (Exception ex)
{
LoggerHelper.ErrorLog("cbDpsCloseLid_SelectionChanged ERROR:", ex);
}
}
#endregion
#region 更换枪头
private void cbChangeTip_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
try
{
if (cbChangeTip.SelectedIndex == -1)
return;
TransferFileHeader transferFileHeader = cbChangeTip.SelectedItem as TransferFileHeader;
if (methodFileMoveLiquid != null)
{
methodFileMoveLiquid.tipSet = transferFileHeader.header_name.ToString();
}
}
catch (Exception ex)
{
LoggerHelper.ErrorLog("cbChangeTip_SelectionChanged ERROR:", ex);
}
}
#endregion
#region 跳过0体积选项
private void checkboxSkip_Checked(object sender, RoutedEventArgs e)
{
try
{
if (methodFileMoveLiquid == null)
return;
methodFileMoveLiquid.jump0Volume = true;
}
catch (Exception ex)
{
LoggerHelper.ErrorLog("checkboxSkip_Checked ERROR:", ex);
}
}
private void checkboxSkip_Click(object sender, RoutedEventArgs e)
{
try
{
if (checkboxSkip.IsChecked == true)
{
if (methodFileMoveLiquid != null)
{
methodFileMoveLiquid.jump0Volume = true;
}
}
else
{
if (methodFileMoveLiquid != null)
{
methodFileMoveLiquid.jump0Volume = false;
}
}
}
catch (Exception ex)
{
LoggerHelper.ErrorLog("checkboxSkip_Click ERROR:", ex);
}
}
#endregion
#region 下一项
private void btnNext_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 btnNext1_Click(object sender, RoutedEventArgs e)
{
stepBar.Next();
gridSelectFile.Visibility = Visibility.Collapsed;
gridTipSetting.Visibility = Visibility.Collapsed;
gridLiquidParam.Visibility = Visibility.Visible;
scrollViewer.ScrollToTop();
}
#endregion
#region 上一项
private void btnPrev_Click(object sender, RoutedEventArgs e)
{
stepBar.Prev();
gridSelectFile.Visibility = Visibility.Visible;
gridTipSetting.Visibility = Visibility.Collapsed;
gridLiquidParam.Visibility = Visibility.Collapsed;
scrollViewer.ScrollToTop();
}
#endregion
#region 再上一项
private void btnPrev1_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.Visible;
gridLiquidParam.Visibility = Visibility.Collapsed;
scrollViewer.ScrollToTop();
}
#endregion
#region 最后完成
private void btnFinish_Click(object sender, RoutedEventArgs e)
{
stepBar.Next();
scrollViewer.ScrollToTop();
}
#endregion
#region 选择移液臂
private void cbArm_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
try
{
if (cbArm.SelectedIndex < 0)
{
return;
}
curArmSelectedIndex = cbArm.SelectedIndex;
string armName = ((DeviceArm)cbArm.SelectedItem).device_arm_name.ToString();
methodFileMoveLiquid.channels = Shared.ChannelsId;
DeviceArm arm = cbArm.SelectedItem as DeviceArm;
methodFileMoveLiquid.armText = arm.device_arm_name;
methodFileMoveLiquid.armValue = arm.device_arm_id.ToString();
methodFileMoveLiquid.headType = arm.head_type;
tbxHeadType.Text = arm.head_type.ToString();
if (arm.arm_type.Equals(0))
{
gridTipSetting.RowDefinitions[1].Height = new GridLength(0);
gridTipSetting.RowDefinitions[2].Height = new GridLength(0);
return;
}
else
{
gridTipSetting.RowDefinitions[1].Height = new GridLength(40);
gridTipSetting.RowDefinitions[2].Height = new GridLength(80);
}
if (cbArm.SelectedIndex == 2)
{
tipsChannel.Visibility = Visibility.Collapsed;
}
else
{
if (cbArm.SelectedIndex == 3)
{
tipsChannel.SelectedChannels = (new int[4]{ 1,2,3,4}).ToList();
tipsChannel.SetTotalChannelCount(4);
if (channels != null)
{
tipsChannel.SelectedChannels = channels.ToList();
tipsChannel.SetSelectedChannels();
}
tipsChannel_SelectedChangedEvent(null, null);
tipsChannel.Visibility = Visibility.Visible;
tipsChannel.CanEdit = true;
//更新液体参数
cbLiquidRange.SelectedIndex = 0;
}
else
{
tipsChannel.SelectedChannels = Shared.ChannelsId.ToList();
tipsChannel.SetTotalChannelCount(Shared.ChannelCount);
tipsChannel.SetSelectedChannels();
tipsChannel_SelectedChangedEvent(null, null);
tipsChannel.Visibility = Visibility.Visible;
tipsChannel.CanEdit = false;
}
}
//ReceiveAndUpdate();
}
catch (Exception ex)
{
LoggerHelper.ErrorLog("cbArm_SelectionChanged ERROR:", ex);
}
}
#endregion
#region 移液通道变更
private void tipsChannel_SelectedChangedEvent(object sender, EventArgs e)
{
try
{
if (methodFileMoveLiquid != null)
{
channels= tipsChannel.SelectedChannels.ToArray();
methodFileMoveLiquid.channels = tipsChannel.SelectedChannels.ToArray();
}
}
catch (Exception ex)
{
LoggerHelper.ErrorLog("tipsChannel_SelectedChangedEvent ERROR:", ex);
}
}
#endregion
#region 枪头耗材选定
private void cbTipsType_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
try
{
if (methodFileMoveLiquid == null) return;
if (cbTipsType.SelectedIndex < 0) return;
//if (isConsumableUpdate)
//{
// isConsumableUpdate = false;
// return;
//}
Labware labware = cbTipsType.SelectedItem as Labware;
methodFileMoveLiquid.labwaretipText = labware.labware_name;
methodFileMoveLiquid.labwaretipValue = labware.labware_id.ToString();
}
catch(Exception ex)
{
LoggerHelper.ErrorLog("cbTipsType_SelectionChanged ERROR:", ex);
}
}
#endregion
#region 不更换枪头设定
private void radioBtnNotChange_Checked(object sender, RoutedEventArgs e)
{
if (radioBtnNotChange.IsChecked == true)
{
if (methodFileMoveLiquid != null)
{
methodFileMoveLiquid.changeTipsMode = 0;
}
}
}
#endregion
#region 由文件字段设定更换枪头
private void radioBtnChangeByFile_Checked(object sender, RoutedEventArgs e)
{
if (radioBtnChangeByFile.IsChecked == true)
{
if (methodFileMoveLiquid != null)
{
methodFileMoveLiquid.changeTipsMode = 1;
}
}
}
#endregion
#region 排液后更换枪头
private void radioBtnOperation_Checked(object sender, RoutedEventArgs e)
{
if (radioBtnOperation.IsChecked == true)
{
if (methodFileMoveLiquid != null)
{
methodFileMoveLiquid.changeTipsMode = 2;
}
}
}
#endregion
#region 开启液面探测控制
private void checkboxLiquidDetect_Click(object sender, RoutedEventArgs e)
{
try
{
if ((bool)checkboxLiquidDetect.IsChecked)
{
if (methodFileMoveLiquid != null)
{
methodFileMoveLiquid.enableLiquidSensor = true;
methodFileMoveLiquid.liquidSensorCount = Convert.ToInt32(txtNameLiquidSensorCount.Text);
methodFileMoveLiquid.liquidSensorDistance = Convert.ToDouble(txtLiquidSensorDistance.Text);
methodFileMoveLiquid.liquidSensorEndDistance = Convert.ToDouble(txtLiquidSensorEndDistance.Text);
methodFileMoveLiquid.liquidSensorSpeed = Convert.ToDouble(txtLiquidSensorSpeed.Text);
methodFileMoveLiquid.liquidSensorRadio = Convert.ToDouble(txtLiquidSensorRadio.Text);
methodFileMoveLiquid.liquidSensorDisIdText = cbxLiquidSensorDisId.Text;
methodFileMoveLiquid.liquidSensorDisIdValue = Convert.ToDouble(cbxLiquidSensorDisId.SelectedValue);
gdLiquidSensor.IsEnabled = true;
}
}
else
{
if (methodFileMoveLiquid != null)
{
methodFileMoveLiquid.enableLiquidSensor = false;
methodFileMoveLiquid.liquidSensorCount = Convert.ToInt32(txtNameLiquidSensorCount.Text);
methodFileMoveLiquid.liquidSensorDistance = Convert.ToDouble(txtLiquidSensorDistance.Text);
methodFileMoveLiquid.liquidSensorEndDistance = Convert.ToDouble(txtLiquidSensorEndDistance.Text);
methodFileMoveLiquid.liquidSensorSpeed = Convert.ToDouble(txtLiquidSensorSpeed.Text);
methodFileMoveLiquid.liquidSensorRadio = Convert.ToDouble(txtLiquidSensorRadio.Text);
methodFileMoveLiquid.liquidSensorDisIdText = cbxLiquidSensorDisId.Text;
methodFileMoveLiquid.liquidSensorDisIdValue = Convert.ToDouble(cbxLiquidSensorDisId.SelectedValue);
methodFileMoveLiquid.enableLiquidFollow = false;
gdLiquidSensor.IsEnabled = false;
}
}
}
catch (Exception ex)
{
LoggerHelper.ErrorLog("checkboxLiquidDetect_Click ERROR:", ex);
}
}
#endregion
#region 液面探测的的次数
private void txtNameLiquidSensorCount_TextChanged(object sender, TextChangedEventArgs e)
{
try
{
string message = "";
if (!Consumables.ConsumablesValidationRule.IsNullOrEmpty(txtNameLiquidSensorCount.Text, out message) || !Consumables.ConsumablesValidationRule.IsIntegerr(txtNameLiquidSensorCount.Text, out message))
{
lscError.Text = message;
return;
}
else
{
lscError.Text = "";
}
if (methodFileMoveLiquid != null)
{
methodFileMoveLiquid.liquidSensorCount = Convert.ToInt32(txtNameLiquidSensorCount.Text);
}
}
catch(Exception ex)
{
LoggerHelper.ErrorLog("txtNameLiquidSensorCount_TextChanged ERROR:", ex);
}
}
#endregion
#region 液面探测的开始孔口的距离
private void txtLiquidSensorDistance_TextChanged(object sender, TextChangedEventArgs e)
{
try
{
string message = "";
if (!Consumables.ConsumablesValidationRule.IsNullOrEmpty(txtLiquidSensorDistance.Text, out message) || !Consumables.ConsumablesValidationRule.IsPositiveNumber(txtLiquidSensorDistance.Text, out message))
{
lsdError.Text = message;
}
else
{
lsdError.Text = "";
}
if (methodFileMoveLiquid != null)
{
methodFileMoveLiquid.liquidSensorDistance = Convert.ToDouble(txtLiquidSensorDistance.Text);
}
}
catch(Exception ex)
{
LoggerHelper.ErrorLog("txtLiquidSensorDistance_TextChanged ERROR:", ex);
}
}
#endregion
#region 液面探测的结束孔口的距离
private void txtLiquidSensorEndDistance_TextChanged(object sender, TextChangedEventArgs e)
{
try
{
if (methodFileMoveLiquid != null)
{
methodFileMoveLiquid.liquidSensorEndDistance = Convert.ToDouble(txtLiquidSensorEndDistance.Text);
if (string.IsNullOrEmpty(txtLiquidSensorEndDistance.Text))
{
txtLiquidSensorEndDistance.BorderBrush = Brushes.Red;
txtLiquidSensorEndDistance.BorderThickness = new Thickness(1);
tbkErrorLiquidSensorEndDistance.Text = "[0,50]";
tbkErrorLiquidSensorEndDistance.Foreground = Brushes.Red;
tbkErrorLiquidSensorEndDistance.Visibility = Visibility.Visible;
return;
}
else if (Convert.ToDouble(txtLiquidSensorEndDistance.Text) < 0 || Convert.ToDouble(txtLiquidSensorEndDistance.Text) > 50)
{
txtLiquidSensorEndDistance.BorderBrush = Brushes.Red;
txtLiquidSensorEndDistance.BorderThickness = new Thickness(1);
tbkErrorLiquidSensorEndDistance.Text = "[0,50]";
tbkErrorLiquidSensorEndDistance.Foreground = Brushes.Red;
tbkErrorLiquidSensorEndDistance.Visibility = Visibility.Visible;
return;
}
else
{
txtLiquidSensorEndDistance.BorderBrush = Brushes.Transparent;
txtLiquidSensorEndDistance.BorderThickness = new Thickness(0);
tbkErrorLiquidSensorEndDistance.Foreground = Brushes.Red;
tbkErrorLiquidSensorEndDistance.Visibility = Visibility.Hidden;
}
}
}
catch (Exception ex)
{
LoggerHelper.ErrorLog("txtLiquidSensorEndDistance_TextChanged ERROR:", ex);
txtLiquidSensorEndDistance.BorderBrush = Brushes.Red;
txtLiquidSensorEndDistance.BorderThickness = new Thickness(1);
return;
}
}
#endregion
#region 液面探测的速度
private void txtLiquidSensorSpeed_TextChanged(object sender, TextChangedEventArgs e)
{
try
{
if (methodFileMoveLiquid != null)
{
methodFileMoveLiquid.liquidSensorSpeed = Convert.ToDouble(txtLiquidSensorSpeed.Text);
validationMixDispenseSpeed(txtLiquidSensorSpeed, tbkErrorLiquidSensorSpeed);
}
}
catch (Exception ex)
{
LoggerHelper.ErrorLog("txtLiquidSensorSpeed_TextChanged ERROR:", ex);
txtLiquidSensorSpeed.BorderBrush = Brushes.Red;
tbkErrorLiquidSensorSpeed.Text = "[1,100]";
tbkErrorLiquidSensorSpeed.Foreground = Brushes.Red;
tbkErrorLiquidSensorSpeed.Visibility = Visibility.Visible;
return;
}
}
#endregion
#region 速度数据验证
public void validationMixDispenseSpeed(TextBox textBoxObj, TextBlock textBlockObj)
{
string volumeString = textBoxObj.Text;
Regex rg = new Regex(@"^[1-9]\\d*.\\d*|0\\.\\d*[1-9]\\d*$");
if (string.IsNullOrEmpty(volumeString))
{
textBoxObj.BorderBrush = Brushes.Red;
textBlockObj.Text = "[1,100]";
textBlockObj.Foreground = Brushes.Red;
textBlockObj.Visibility = Visibility.Visible;
return;
}
else if (rg.IsMatch(volumeString))
{
textBoxObj.BorderBrush = Brushes.Red;
textBlockObj.Text = "[1,100]";
textBlockObj.Foreground = Brushes.Red;
textBlockObj.Visibility = Visibility.Visible;
return;
}
else if (Convert.ToDouble(volumeString) < 0 || Convert.ToDouble(volumeString) > 100)
{
textBoxObj.BorderBrush = Brushes.Red;
textBlockObj.Text = "[1,100]";
textBlockObj.Foreground = Brushes.Red;
textBlockObj.Visibility = Visibility.Visible;
return;
}
else
{
textBoxObj.BorderBrush = Brushes.Transparent;
textBlockObj.Foreground = Brushes.Transparent;
textBlockObj.Visibility = Visibility.Hidden;
}
}
#endregion
#region 探测系数
private void txtLiquidSensorRadio_TextChanged(object sender, TextChangedEventArgs e)
{
try
{
if (methodFileMoveLiquid != null)
{
methodFileMoveLiquid.liquidSensorRadio = Convert.ToDouble(txtLiquidSensorRadio.Text);
if (string.IsNullOrEmpty(txtLiquidSensorRadio.Text))
{
txtLiquidSensorRadio.BorderBrush = Brushes.Red;
txtLiquidSensorRadio.BorderThickness = new Thickness(1);
tbkErrorLiquidSensorRadio.Text = "[0,100]";
tbkErrorLiquidSensorRadio.Foreground = Brushes.Red;
tbkErrorLiquidSensorRadio.Visibility = Visibility.Visible;
return;
}
else if (Convert.ToDouble(txtLiquidSensorRadio.Text) < 0 || Convert.ToDouble(txtLiquidSensorRadio.Text) > 100)
{
txtLiquidSensorRadio.BorderBrush = Brushes.Red;
txtLiquidSensorRadio.BorderThickness = new Thickness(1);
tbkErrorLiquidSensorRadio.Text = "[0,100]";
tbkErrorLiquidSensorRadio.Foreground = Brushes.Red;
tbkErrorLiquidSensorRadio.Visibility = Visibility.Visible;
return;
}
else
{
txtLiquidSensorRadio.BorderBrush = Brushes.Transparent;
txtLiquidSensorRadio.BorderThickness = new Thickness(0);
tbkErrorLiquidSensorRadio.Foreground = Brushes.Red;
tbkErrorLiquidSensorRadio.Visibility = Visibility.Hidden;
}
}
}
catch (Exception ex)
{
LoggerHelper.ErrorLog("txtLiquidSensorRadio_TextChanged ERROR:", ex);
txtLiquidSensorRadio.BorderBrush = Brushes.Red;
txtLiquidSensorRadio.BorderThickness = new Thickness(1);
return;
}
}
#endregion
#region 未探测到时处理项选定
private void cbxLiquidSensorDisId_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
try
{
if (methodFileMoveLiquid != null)
{
methodFileMoveLiquid.liquidSensorDisIdText = ((string)cbxLiquidSensorDisId.SelectedItem).ToString();
methodFileMoveLiquid.liquidSensorDisIdValue = Convert.ToDouble(cbxLiquidSensorDisId.SelectedIndex);
}
}
catch (Exception ex)
{
LoggerHelper.ErrorLog("cbxLiquidSensorDisId_SelectionChanged ERROR:", ex);
}
}
#endregion
#region 吸液前混合
private void checkboxMix_Click(object sender, RoutedEventArgs e)
{
try
{
if ((bool)checkboxMix.IsChecked)
{
if (methodFileMoveLiquid != null)
{
methodFileMoveLiquid.baspMix = true;
methodFileMoveLiquid.aspmixcount = Convert.ToInt32(tbxMixCount.Text);
methodFileMoveLiquid.aspmixvolume = Convert.ToDouble(tbxMixVolume.Text);
methodFileMoveLiquid.aspmixAspiratePositionText = cbMixAspiratePosition.Text;
methodFileMoveLiquid.aspmixAspiratePositionValue = Convert.ToInt32(cbMixAspiratePosition.SelectedValue);
methodFileMoveLiquid.aspmixAspirateDistance = Convert.ToDouble(tbxMixAspirateDistance.Text);
methodFileMoveLiquid.aspmixAspirateSpeed = Convert.ToDouble(tbxMixAspirateSpeed.Text);
methodFileMoveLiquid.aspmixDispensePositionText = cbMixDispensePosition.Text;
methodFileMoveLiquid.aspmixDispensePositionValue = Convert.ToInt32(cbMixDispensePosition.SelectedValue);
methodFileMoveLiquid.aspmixDispenseDistance = Convert.ToDouble(tbxMixDispenseDistance.Text);
methodFileMoveLiquid.aspmixDispenseSpeed = Convert.ToDouble(tbxMixDispenseSpeed.Text);
}
}
else
{
if (methodFileMoveLiquid != null)
{
methodFileMoveLiquid.baspMix = false;
methodFileMoveLiquid.aspmixcount = Convert.ToInt32(tbxMixCount.Text);
methodFileMoveLiquid.aspmixvolume = Convert.ToDouble(tbxMixVolume.Text);
methodFileMoveLiquid.aspmixAspiratePositionText = cbMixAspiratePosition.Text;
methodFileMoveLiquid.aspmixAspiratePositionValue = Convert.ToInt32(cbMixAspiratePosition.SelectedValue);
methodFileMoveLiquid.aspmixAspirateDistance = Convert.ToDouble(tbxMixAspirateDistance.Text);
methodFileMoveLiquid.aspmixAspirateSpeed = Convert.ToDouble(tbxMixAspirateSpeed.Text);
methodFileMoveLiquid.aspmixDispensePositionText = cbMixDispensePosition.Text;
methodFileMoveLiquid.aspmixDispensePositionValue = Convert.ToInt32(cbMixDispensePosition.SelectedValue);
methodFileMoveLiquid.aspmixDispenseDistance = Convert.ToDouble(tbxMixDispenseDistance.Text);
methodFileMoveLiquid.aspmixDispenseSpeed = Convert.ToDouble(tbxMixDispenseSpeed.Text);
}
}
}
catch (Exception ex)
{
LoggerHelper.ErrorLog("checkboxMix_Click ERROR:", ex);
}
}
private void tbxMixDispenseDistance_TextChanged(object sender, TextChangedEventArgs e)
{
try
{
if (methodFileMoveLiquid != null)
{
methodFileMoveLiquid.aspmixDispenseDistance = Convert.ToDouble(tbxMixDispenseDistance.Text);
}
}
catch (Exception ex)
{
LoggerHelper.ErrorLog("tbxMixDispenseDistance_TextChanged ERROR:", ex);
}
}
private void cbMixDispensePosition_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
try
{
if (methodFileMoveLiquid != null)
{
methodFileMoveLiquid.aspmixDispensePositionValue = Convert.ToInt32(cbMixDispensePosition.SelectedValue);
}
}
catch (Exception ex)
{
LoggerHelper.ErrorLog("cbMixDispensePosition_SelectionChanged ERROR:", ex);
}
}
private void tbxMixAspirateSpeed_TextChanged(object sender, TextChangedEventArgs e)
{
try
{
if (methodFileMoveLiquid != null)
{
methodFileMoveLiquid.aspmixAspirateSpeed = Convert.ToDouble(tbxMixAspirateSpeed.Text);
}
}
catch (Exception ex)
{
LoggerHelper.ErrorLog("tbxMixAspirateSpeed_TextChanged ERROR:", ex);
}
}
private void tbxMixAspirateDistance_TextChanged(object sender, TextChangedEventArgs e)
{
try
{
if (methodFileMoveLiquid != null)
{
methodFileMoveLiquid.aspmixAspirateDistance = Convert.ToDouble(tbxMixAspirateDistance.Text);
}
}
catch (Exception ex)
{
LoggerHelper.ErrorLog("tbxMixAspirateDistance_TextChanged ERROR:", ex);
}
}
private void cbMixAspiratePosition_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
try
{
if (methodFileMoveLiquid != null)
{
methodFileMoveLiquid.aspmixAspiratePositionValue = Convert.ToInt32(cbMixAspiratePosition.SelectedValue);
}
}
catch (Exception ex)
{
LoggerHelper.ErrorLog("cbMixAspiratePosition_SelectionChanged ERROR:", ex);
}
}
private void tbxMixCount_TextChanged(object sender, TextChangedEventArgs e)
{
try
{
if (methodFileMoveLiquid != null)
{
methodFileMoveLiquid.aspmixcount = Convert.ToInt32(tbxMixCount.Text);
}
}
catch (Exception ex)
{
LoggerHelper.ErrorLog("tbxMixCount_TextChanged ERROR:", ex);
}
}
private void tbxMixVolume_TextChanged(object sender, TextChangedEventArgs e)
{
try
{
if (methodFileMoveLiquid != null)
{
methodFileMoveLiquid.aspmixvolume = Convert.ToDouble(tbxMixVolume.Text);
}
}
catch (Exception ex)
{
LoggerHelper.ErrorLog("tbxMixVolume_TextChanged ERROR:", ex);
}
}
private void tbxMixDispenseSpeed_TextChanged(object sender, TextChangedEventArgs e)
{
try
{
if (methodFileMoveLiquid != null)
{
methodFileMoveLiquid.aspmixDispenseSpeed = Convert.ToDouble(tbxMixDispenseSpeed.Text);
}
}
catch (Exception ex)
{
LoggerHelper.ErrorLog("tbxMixDispenseSpeed_TextChanged ERROR:", ex);
}
}
#endregion
#region 排液后混合
private void checkboxDpsMix_Click(object sender, RoutedEventArgs e)
{
try
{
if ((bool)checkboxDpsMix.IsChecked)
{
if (methodFileMoveLiquid != null)
{
methodFileMoveLiquid.bdpsMix = true;
methodFileMoveLiquid.dpsmixcount = Convert.ToInt32(tbxDpsMixCount.Text);
methodFileMoveLiquid.dpsmixvolume = Convert.ToDouble(tbxDpsMixVolume.Text);
methodFileMoveLiquid.dpsmixAspiratePositionText = cbDpsMixAspiratePosition.Text;
methodFileMoveLiquid.dpsmixAspiratePositionValue = Convert.ToInt32(cbDpsMixAspiratePosition.SelectedValue);
methodFileMoveLiquid.dpsmixAspirateDistance = Convert.ToDouble(tbxDpsMixAspirateDistance.Text);
methodFileMoveLiquid.dpsmixAspirateSpeed = Convert.ToDouble(tbxDpsMixAspirateSpeed.Text);
methodFileMoveLiquid.dpsmixDispensePositionText = cbDpsMixDispensePosition.Text;
methodFileMoveLiquid.dpsmixDispensePositionValue = Convert.ToInt32(cbDpsMixDispensePosition.SelectedValue);
methodFileMoveLiquid.dpsmixDispenseDistance = Convert.ToDouble(tbxDpsMixDispenseDistance.Text);
methodFileMoveLiquid.dpsmixDispenseSpeed = Convert.ToDouble(tbxDpsMixDispenseSpeed.Text);
}
}
else
{
if (methodFileMoveLiquid != null)
{
methodFileMoveLiquid.bdpsMix = false;
methodFileMoveLiquid.dpsmixcount = Convert.ToInt32(tbxDpsMixCount.Text);
methodFileMoveLiquid.dpsmixvolume = Convert.ToDouble(tbxDpsMixVolume.Text);
methodFileMoveLiquid.dpsmixAspiratePositionText = cbDpsMixAspiratePosition.Text;
methodFileMoveLiquid.dpsmixAspiratePositionValue = Convert.ToInt32(cbDpsMixAspiratePosition.SelectedValue);
methodFileMoveLiquid.dpsmixAspirateDistance = Convert.ToDouble(tbxDpsMixAspirateDistance.Text);
methodFileMoveLiquid.dpsmixAspirateSpeed = Convert.ToDouble(tbxDpsMixAspirateSpeed.Text);
methodFileMoveLiquid.dpsmixDispensePositionText = cbDpsMixDispensePosition.Text;
methodFileMoveLiquid.dpsmixDispensePositionValue = Convert.ToInt32(cbDpsMixDispensePosition.SelectedValue);
methodFileMoveLiquid.dpsmixDispenseDistance = Convert.ToDouble(tbxDpsMixDispenseDistance.Text);
methodFileMoveLiquid.dpsmixDispenseSpeed = Convert.ToDouble(tbxDpsMixDispenseSpeed.Text);
}
}
}
catch (Exception ex)
{
LoggerHelper.ErrorLog("checkboxDpsMix_Click ERROR:", ex);
}
}
private void tbxDpsMixVolume_TextChanged(object sender, TextChangedEventArgs e)
{
try
{
if (methodFileMoveLiquid != null)
{
methodFileMoveLiquid.dpsmixvolume = Convert.ToDouble(tbxDpsMixVolume.Text);
}
}
catch (Exception ex)
{
LoggerHelper.ErrorLog("tbxDpsMixVolume_TextChanged ERROR:", ex);
}
}
private void tbxDpsMixCount_TextChanged(object sender, TextChangedEventArgs e)
{
try
{
if (methodFileMoveLiquid != null)
{
methodFileMoveLiquid.dpsmixcount = Convert.ToInt32(tbxDpsMixCount.Text);
}
}
catch (Exception ex)
{
LoggerHelper.ErrorLog("tbxDpsMixCount_TextChanged ERROR:", ex);
}
}
private void cbDpsMixAspiratePosition_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
try
{
if (methodFileMoveLiquid != null)
{
methodFileMoveLiquid.dpsmixAspiratePositionValue = Convert.ToInt32(cbDpsMixAspiratePosition.SelectedValue);
}
}
catch (Exception ex)
{
LoggerHelper.ErrorLog("cbDpsMixAspiratePosition_SelectionChanged ERROR:", ex);
}
}
private void tbxDpsMixAspirateDistance_TextChanged(object sender, TextChangedEventArgs e)
{
try
{
if (methodFileMoveLiquid != null)
{
methodFileMoveLiquid.dpsmixAspirateDistance = Convert.ToDouble(tbxDpsMixAspirateDistance.Text);
}
}
catch (Exception ex)
{
LoggerHelper.ErrorLog("tbxDpsMixAspirateDistance_TextChanged ERROR:", ex);
}
}
private void tbxDpsMixAspirateSpeed_TextChanged(object sender, TextChangedEventArgs e)
{
try
{
if (methodFileMoveLiquid != null)
{
methodFileMoveLiquid.dpsmixAspirateSpeed = Convert.ToDouble(tbxDpsMixAspirateSpeed.Text);
}
}
catch (Exception ex)
{
LoggerHelper.ErrorLog("tbxDpsMixAspirateSpeed_TextChanged ERROR:", ex);
}
}
private void cbDpsMixDispensePosition_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
try
{
if (methodFileMoveLiquid != null)
{
methodFileMoveLiquid.dpsmixDispensePositionValue = Convert.ToInt32(cbDpsMixDispensePosition.SelectedValue);
}
}
catch (Exception ex)
{
LoggerHelper.ErrorLog("cbDpsMixDispensePosition_SelectionChanged ERROR:", ex);
}
}
private void tbxDpsMixDispenseDistance_TextChanged(object sender, TextChangedEventArgs e)
{
try
{
if (methodFileMoveLiquid != null)
{
methodFileMoveLiquid.dpsmixDispenseDistance = Convert.ToDouble(tbxDpsMixDispenseDistance.Text);
}
}
catch (Exception ex)
{
LoggerHelper.ErrorLog("tbxDpsMixDispenseDistance_TextChanged ERROR:", ex);
}
}
private void tbxDpsMixDispenseSpeed_TextChanged(object sender, TextChangedEventArgs e)
{
try
{
if (methodFileMoveLiquid != null)
{
methodFileMoveLiquid.dpsmixDispenseSpeed = Convert.ToDouble(tbxDpsMixDispenseSpeed.Text);
}
}
catch (Exception ex)
{
LoggerHelper.ErrorLog("tbxDpsMixDispenseSpeed_TextChanged ERROR:", ex);
}
}
#endregion
#region 液体参数
private void cbLiquid_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
if (cbLiquid.SelectedIndex <= 0)
return;
Liquid l = cbLiquid.SelectedItem as Liquid;
if (methodFileMoveLiquid != null)
{
methodFileMoveLiquid.liquidpidText = l.liquid_name;
methodFileMoveLiquid.liquidpidValue = l.liquid_id;
}
}
private void cbLiquidRange_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
try
{
if (cbLiquidRange.SelectedIndex < 0)
return;
if (cbLiquidRange.SelectedIndex == 0)
{
ObservableCollection liquids = new ObservableCollection();
Liquid liquid = new Liquid();
liquid.liquid_name = Properties.Resources.strPleaseSelect;
liquids.Insert(0, liquid);
cbLiquid.ItemsSource = liquids;
cbLiquid.SelectedIndex = 0;
return;
}
if (cbLiquidType.SelectedIndex <= 0)
return;
string typeID = cbLiquidType.SelectedValue as string;
string rangeID = cbLiquidRange.SelectedValue as string;
string armID = cbArm.SelectedValue.ToString();
ObservableCollection liquidList = LiquidTypeRSRangeDB.GetLiquidFromdbByTypeAndRange(typeID, rangeID, armID);
Liquid l = new Liquid();
l.liquid_name = Properties.Resources.strPleaseSelect;
liquidList.Insert(0, l);
if (cbLiquidRange.SelectedIndex != 0)
{
if (methodFileMoveLiquid != null)
{
methodFileMoveLiquid.liquidrangeidText = ((LiquidRange)cbLiquidRange.SelectedItem).liquid_range_name.ToString();
methodFileMoveLiquid.liquidrangeidValue = ((LiquidRange)cbLiquidRange.SelectedItem).liquid_range_id.ToString();
}
}
cbLiquid.ItemsSource = liquidList;
cbLiquid.SelectedIndex = 0;
}
catch(Exception ex)
{
LoggerHelper.ErrorLog("cbLiquidRange_SelectionChanged ERROR:", ex);
}
}
private void cbLiquidType_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
try
{
if (cbLiquidType.SelectedIndex < 0)
return;
if (cbLiquidType.SelectedIndex == 0)
{
ObservableCollection liquids = new ObservableCollection();
Liquid liquid = new Liquid();
liquid.liquid_name = Properties.Resources.strPleaseSelect;
liquids.Insert(0, liquid);
cbLiquid.ItemsSource = liquids;
cbLiquid.SelectedIndex = 0;
return;
}
if (cbLiquidType.SelectedIndex != 0)
{
if (methodFileMoveLiquid != null)
{
methodFileMoveLiquid.liquididText = ((LiquidType)cbLiquidType.SelectedItem).liquid_type_name.ToString();
methodFileMoveLiquid.liquididValue = ((LiquidType)cbLiquidType.SelectedItem).liquid_type_id.ToString();
}
}
}
catch (Exception ex)
{
LoggerHelper.ErrorLog("cbLiquidType_SelectionChanged ERROR:", ex);
}
}
#endregion
private void cbxAspirateAirDealType_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
try
{
if (methodFileMoveLiquid != null)
{
methodFileMoveLiquid.aspirateAirDisIdText = ((string)cbxAspirateAirDealType.SelectedItem).ToString();
methodFileMoveLiquid.aspirateAirDisIdValue = cbxAspirateAirDealType.SelectedIndex;
}
}
catch (Exception ex)
{
LoggerHelper.ErrorLog("cbLiquidType_SelectionChanged ERROR:", ex);
}
}
private void cbxDispenseBlockDealType_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
try
{
if (methodFileMoveLiquid != null)
{
methodFileMoveLiquid.dispenseBlockDisIdText = ((string)cbxDispenseBlockDealType.SelectedItem).ToString();
methodFileMoveLiquid.dispenseBlockDisIdValue = cbxDispenseBlockDealType.SelectedIndex;
}
}
catch (Exception ex)
{
LoggerHelper.ErrorLog("cbxDispenseBlockDealType_SelectionChanged ERROR:", ex);
}
}
private void cbxAspirateBlockDealType_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
try
{
if (methodFileMoveLiquid != null)
{
methodFileMoveLiquid.aspirateBlockDisIdText = ((string)cbxAspirateBlockDealType.SelectedItem).ToString();
methodFileMoveLiquid.aspirateBlockDisIdValue = cbxAspirateBlockDealType.SelectedIndex;
}
}
catch (Exception ex)
{
LoggerHelper.ErrorLog("cbxAspirateBlockDealType_SelectionChanged ERROR:", ex);
}
}
private void checkboxBlockDetect_Click(object sender, RoutedEventArgs e)
{
try
{
if ((bool)checkboxBlockDetect.IsChecked)
{
if (methodFileMoveLiquid != null)
{
methodFileMoveLiquid.enableSensorBlock = true;
methodFileMoveLiquid.aspirateBlockDisIdText = cbxAspirateBlockDealType.Text;
methodFileMoveLiquid.aspirateBlockDisIdValue = Convert.ToInt32(cbxAspirateBlockDealType.SelectedValue);
methodFileMoveLiquid.dispenseBlockDisIdText = cbxDispenseBlockDealType.Text;
methodFileMoveLiquid.dispenseBlockDisIdValue = Convert.ToInt32(cbxDispenseBlockDealType.SelectedValue);
}
}
else
{
if (methodFileMoveLiquid != null)
{
methodFileMoveLiquid.enableSensorBlock = false;
methodFileMoveLiquid.aspirateBlockDisIdText = cbxAspirateBlockDealType.Text;
methodFileMoveLiquid.aspirateBlockDisIdValue = Convert.ToInt32(cbxAspirateBlockDealType.SelectedValue);
methodFileMoveLiquid.dispenseBlockDisIdText = cbxDispenseBlockDealType.Text;
methodFileMoveLiquid.dispenseBlockDisIdValue = Convert.ToInt32(cbxDispenseBlockDealType.SelectedValue);
}
}
}
catch (Exception ex)
{
LoggerHelper.ErrorLog("checkboxBlockDetect_Click ERROR:", ex);
}
}
private void rdMixNotFollow_Checked(object sender, RoutedEventArgs e)
{
try
{
if (rdMixNotFollow.IsChecked == true)
{
if (methodFileMoveLiquid != null)
{
methodFileMoveLiquid.enableMixFollow = false;
}
}
else
{
if (methodFileMoveLiquid != null)
{
methodFileMoveLiquid.enableMixFollow = true;
}
}
}
catch (Exception ex)
{
LoggerHelper.ErrorLog("rdMixNotFollow_Checked ERROR:", ex);
return;
}
}
private void rdMixFollow_Checked(object sender, RoutedEventArgs e)
{
try
{
if (rdMixFollow.IsChecked == true)
{
if (methodFileMoveLiquid != null)
{
methodFileMoveLiquid.enableMixFollow = true;
}
}
else
{
if (methodFileMoveLiquid != null)
{
methodFileMoveLiquid.enableMixFollow = false;
}
}
}
catch (Exception ex)
{
LoggerHelper.ErrorLog("rdMixFollow_Checked ERROR:", ex);
return;
}
}
private void txtLiquidFollowArea_TextChanged(object sender, TextChangedEventArgs e)
{
try
{
if (methodFileMoveLiquid != null)
{
methodFileMoveLiquid.liquidFollowArea = Convert.ToDouble(txtLiquidFollowArea.Text);
if (string.IsNullOrEmpty(txtLiquidFollowArea.Text))
{
txtLiquidFollowArea.BorderBrush = Brushes.Red;
txtLiquidFollowArea.BorderThickness = new Thickness(1);
tbkErrorLiquidFollowArea.Text = "[0,30000]";
tbkErrorLiquidFollowArea.Foreground = Brushes.Red;
tbkErrorLiquidFollowArea.Visibility = Visibility.Visible;
return;
}
else if (Convert.ToDouble(txtLiquidFollowArea.Text) < 0 || Convert.ToDouble(txtLiquidFollowArea.Text) > 30000)
{
txtLiquidFollowArea.BorderBrush = Brushes.Red;
txtLiquidFollowArea.BorderThickness = new Thickness(1);
tbkErrorLiquidFollowArea.Text = "[0,30000]";
tbkErrorLiquidFollowArea.Foreground = Brushes.Red;
tbkErrorLiquidFollowArea.Visibility = Visibility.Visible;
return;
}
else
{
txtLiquidFollowArea.BorderBrush = Brushes.Transparent;
txtLiquidFollowArea.BorderThickness = new Thickness(0);
tbkErrorLiquidFollowArea.Foreground = Brushes.Red;
tbkErrorLiquidFollowArea.Visibility = Visibility.Hidden;
}
}
}
catch (Exception ex)
{
LoggerHelper.ErrorLog("txtLiquidFollowArea_TextChanged ERROR:", ex);
txtLiquidSensorRadio.BorderBrush = Brushes.Red;
txtLiquidSensorRadio.BorderThickness = new Thickness(1);
return;
}
}
private void txtLiquidFollowDistance_TextChanged(object sender, TextChangedEventArgs e)
{
try
{
if (methodFileMoveLiquid != null)
{
methodFileMoveLiquid.liquidFollowDistance = Convert.ToDouble(txtLiquidFollowDistance.Text);
if (string.IsNullOrEmpty(txtLiquidFollowDistance.Text))
{
txtLiquidFollowDistance.BorderBrush = Brushes.Red;
txtLiquidFollowDistance.BorderThickness = new Thickness(1);
tbkErrorLiquidFollowDistance.Text = "[0,50]";
tbkErrorLiquidFollowDistance.Foreground = Brushes.Red;
tbkErrorLiquidFollowDistance.Visibility = Visibility.Visible;
return;
}
else if (Convert.ToDouble(txtLiquidFollowDistance.Text) < 0 || Convert.ToDouble(txtLiquidFollowDistance.Text) > 50)
{
txtLiquidFollowDistance.BorderBrush = Brushes.Red;
txtLiquidFollowDistance.BorderThickness = new Thickness(1);
tbkErrorLiquidFollowDistance.Text = "[0,50]";
tbkErrorLiquidFollowDistance.Foreground = Brushes.Red;
tbkErrorLiquidFollowDistance.Visibility = Visibility.Visible;
return;
}
else
{
txtLiquidFollowDistance.BorderBrush = Brushes.Transparent;
txtLiquidFollowDistance.BorderThickness = new Thickness(0);
tbkErrorLiquidFollowDistance.Foreground = Brushes.Red;
tbkErrorLiquidFollowDistance.Visibility = Visibility.Hidden;
}
}
}
catch (Exception ex)
{
LoggerHelper.ErrorLog("txtLiquidFollowDistance_TextChanged ERROR:", ex);
txtLiquidFollowDistance.BorderBrush = Brushes.Red;
txtLiquidFollowDistance.BorderThickness = new Thickness(1);
return;
}
}
private void txtLiquidFollowSpeed_TextChanged(object sender, TextChangedEventArgs e)
{
try
{
if (methodFileMoveLiquid != null)
{
methodFileMoveLiquid.liquidFollowSpeed = Convert.ToDouble(txtLiquidFollowSpeed.Text);
validationMixDispenseSpeed(txtLiquidFollowSpeed, tbkErrorLiquidFollowSpeed);
}
}
catch (Exception ex)
{
LoggerHelper.ErrorLog("txtLiquidFollowSpeed_TextChanged ERROR:", ex);
txtLiquidFollowSpeed.BorderBrush = Brushes.Red;
tbkErrorLiquidFollowSpeed.Text = "[1,100]";
tbkErrorLiquidFollowSpeed.Foreground = Brushes.Red;
tbkErrorLiquidFollowSpeed.Visibility = Visibility.Visible;
return;
}
}
private void cbxLiquidFollowType_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
try
{
if (cbxLiquidFollowType.SelectedIndex == 1)
{
bdrFollowOneType.Visibility = Visibility.Visible;
tbkFollowTwoTypeLabel.Visibility = Visibility.Collapsed;
txtLiquidFollowArea.Visibility = Visibility.Collapsed;
tbkFollowTwoTypeUnit.Visibility = Visibility.Collapsed;
if (methodFileMoveLiquid != null)
{
methodFileMoveLiquid.liquidFollowType = cbxLiquidFollowType.SelectedIndex;
methodFileMoveLiquid.liquidFollowTypeName = ((string)cbxLiquidFollowType.SelectedItem).ToString();
}
}
else if (cbxLiquidFollowType.SelectedIndex == 2)
{
bdrFollowOneType.Visibility = Visibility.Collapsed;
tbkFollowTwoTypeLabel.Visibility = Visibility.Visible;
txtLiquidFollowArea.Visibility = Visibility.Visible;
tbkFollowTwoTypeUnit.Visibility = Visibility.Visible;
if (methodFileMoveLiquid != null)
{
methodFileMoveLiquid.liquidFollowType = cbxLiquidFollowType.SelectedIndex;
methodFileMoveLiquid.liquidFollowTypeName = ((string)cbxLiquidFollowType.SelectedItem).ToString();
}
}
}
catch (Exception ex)
{
LoggerHelper.ErrorLog("cbxLiquidFollowType_SelectionChanged ERROR:", ex);
}
}
private void checkboxLiquidFollow_Click(object sender, RoutedEventArgs e)
{
try
{
if (checkboxLiquidDetect.IsChecked == false)
{
checkboxLiquidFollow.IsChecked = false;
return;
}
if (checkboxLiquidFollow.IsChecked == true)
{
if (Shared.SoftwareInformation.software_device_number == DeviceCategory.DeviceX3)
{
cbxLiquidFollowType.SelectedIndex = 2;
}
else
{
cbxLiquidFollowType.SelectedIndex = 1;
}
if (methodFileMoveLiquid != null)
{
methodFileMoveLiquid.enableLiquidFollow = true;
methodFileMoveLiquid.liquidFollowType = Convert.ToInt32(cbxLiquidFollowType.SelectedIndex);
methodFileMoveLiquid.liquidFollowTypeName = cbxLiquidFollowType.Text;
methodFileMoveLiquid.liquidFollowSpeed = Convert.ToDouble(txtLiquidFollowSpeed.Text);
methodFileMoveLiquid.liquidFollowDistance = Convert.ToDouble(txtLiquidFollowDistance.Text);
methodFileMoveLiquid.liquidFollowArea = Convert.ToDouble(txtLiquidFollowArea.Text);
methodFileMoveLiquid.enableMixFollow = rdMixFollow.IsChecked == true ? true : false;
methodFileMoveLiquid.liquidSensorDisIdText = cbxLiquidSensorDisId.Text;
methodFileMoveLiquid.liquidSensorDisIdValue = Convert.ToDouble(cbxLiquidSensorDisId.SelectedValue);
//gdLiquidFollow.IsEnabled = true;
}
}
else
{
if (Shared.SoftwareInformation.software_device_number == DeviceCategory.DeviceX3)
{
cbxLiquidFollowType.SelectedIndex = 2;
}
else
{
cbxLiquidFollowType.SelectedIndex = 1;
}
if (methodFileMoveLiquid != null)
{
methodFileMoveLiquid.enableLiquidFollow = false;
methodFileMoveLiquid.liquidFollowType = Convert.ToInt32(cbxLiquidFollowType.SelectedIndex);
methodFileMoveLiquid.liquidFollowTypeName = cbxLiquidFollowType.Text;
methodFileMoveLiquid.liquidFollowSpeed = Convert.ToDouble(txtLiquidFollowSpeed.Text);
methodFileMoveLiquid.liquidFollowDistance = Convert.ToDouble(txtLiquidFollowDistance.Text);
methodFileMoveLiquid.liquidFollowArea = Convert.ToDouble(txtLiquidFollowArea.Text);
methodFileMoveLiquid.enableMixFollow = rdMixFollow.IsChecked == true ? true : false;
methodFileMoveLiquid.liquidSensorDisIdText = cbxLiquidSensorDisId.Text;
methodFileMoveLiquid.liquidSensorDisIdValue = Convert.ToDouble(cbxLiquidSensorDisId.SelectedValue);
//gdLiquidFollow.IsEnabled = false;
}
}
}
catch (Exception ex)
{
LoggerHelper.ErrorLog("checkboxLiquidFollow_Click ERROR:", ex);
}
}
#region 文件模板下载
private void btnDownloadTemplate_Click(object sender, RoutedEventArgs e)
{
//弹出保存对话框
try
{
string fileDir = string.Empty;
SaveFileDialog dlg = new SaveFileDialog();
dlg.Title = "另存为";
dlg.FileName = $"{DateTime.Now.ToString("yyyyMMddHHmmss")}.csv"; // Default file name
dlg.DefaultExt = ".xls"; // Default file extension
dlg.Filter = "excel files(*.xls)|*.xls|csv files(*.csv)|*.csv";// Filter files by extension
dlg.InitialDirectory = System.AppDomain.CurrentDomain.BaseDirectory;
if (dlg.ShowDialog() == true)
{
string directoryBase = System.AppDomain.CurrentDomain.BaseDirectory;
string sourceFilePath = directoryBase + "TempData\\moveliquidHX.csv" ;
File.Copy(sourceFilePath, dlg.FileName,true);
ShowTip.ShowNotice(string.Format("{0}成功{1}{2}","下载保存", Environment.NewLine, dlg.FileName), InfoType.Warning);
}
}
catch (Exception ex)
{
ShowTip.ShowNotice(string.Format("{0}失败{1}{2}","下载保存", Environment.NewLine, ""), InfoType.Warning);
LoggerHelper.ErrorLog("btnDownloadTemplate_Click ERROR:", ex);
}
}
#endregion
private void tbxCommandComment_TextChanged(object sender, TextChangedEventArgs e)
{
try
{
if (methodFileMoveLiquid != null)
{
if (this.method != null)
{
this.method.method_Tipcontent = tbxCommandComment.Text;
}
methodFileMoveLiquid.comment = tbxCommandComment.Text;
}
}
catch (Exception ex)
{
LoggerHelper.ErrorLog("tbxCommandComment_TextChanged ERROR:", ex);
}
}
}
}