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