using DataEntity.Share;
|
using DataRWDAL;
|
using HxEnum;
|
using System;
|
using System.Collections.Generic;
|
using System.Collections.ObjectModel;
|
using System.Linq;
|
using System.Windows;
|
using System.Windows.Controls;
|
using XCommon.Log;
|
using XHandler.Class.DataEx;
|
using XHandler.Controls;
|
using XHandler.View.MethodProperty;
|
using XImagingXhandler.XDAL;
|
|
namespace XHandler.View.BacteriaProperty
|
{
|
/// <summary>
|
/// 接种转板方法属性页面
|
/// </summary>
|
public partial class CoatingAndTransferProperty : UserControl, IMethodProperty
|
{
|
#region 变量
|
private int mark = 0;
|
private PromptTextBox coatingLabware = null; // 接种耗材类型
|
public MethodCoatingAndTransfer methodCoating = null;
|
private int[] channels = Shared.ChannelsId;
|
#endregion
|
|
#region 构造函数
|
/// <summary>
|
/// 构造函数
|
/// </summary>
|
/// <param name="method"></param>
|
public CoatingAndTransferProperty(MethodEx method)
|
{
|
mark = 0;
|
InitializeComponent();
|
|
methodCoating = new MethodCoatingAndTransfer();
|
mark = 1;
|
methodCoating.strIndex = method.strIndex;
|
methodCoating.label = method.method_name; // 命令标签
|
methodCoating.name = method.method_name; // 命令名称
|
methodCoating.status = (method.isEnabled == true ? "enable" : "disable");
|
this.DataContext = methodCoating;
|
|
#region 获取机械臂信息
|
methodCoating.channels = Shared.ChannelsId;
|
List<DeviceArm> armList = DataModule.getInstance().GetDeviceArm();
|
cbArm.ItemsSource = armList;
|
// 只有一个臂的情况下默认选中该臂
|
cbArm.SelectedIndex = armList.Count == 2 ? 1 : 0;
|
#endregion
|
|
#region 涂布方式
|
ObservableCollection<DropdownName> coatingModeList = DataModule.getInstance().GetCoatingMode();
|
ObservableCollection<DropdownName> coatingModeListNew = new ObservableCollection<DropdownName>();
|
foreach (var coatingModeItem in coatingModeList)
|
{
|
// 上下、加液
|
if (coatingModeItem.dropdown_name.Equals(Properties.Resources.strUpDownMode) ||
|
coatingModeItem.dropdown_name.Equals(Properties.Resources.strDispense))
|
{
|
coatingModeListNew.Add(coatingModeItem);
|
}
|
}
|
|
cbCoatingMode.ItemsSource = coatingModeListNew;
|
#endregion
|
|
#region 接种数量
|
rdoCoatingCount1.IsChecked = true;
|
#endregion
|
|
if (Shared.ChannelCount > 1)
|
{
|
tipsChannel.CanEdit = true;
|
}
|
|
if (method.tag!=null)
|
{
|
methodCoating = (MethodCoatingAndTransfer)method.tag;
|
channels = methodCoating.channels;
|
}
|
}
|
#endregion
|
|
#region 方法标签文件更改事件
|
/// <summary>
|
/// 方法标签文件更改事件
|
/// </summary>
|
/// <param name="sender"></param>
|
/// <param name="e"></param>
|
private void tbxCommandLabel_TextChanged(object sender, TextChangedEventArgs e)
|
{
|
try
|
{
|
if (mark == 0)
|
{
|
return;
|
}
|
|
methodCoating.label = tbxCommandLabel.Text;
|
}
|
catch (Exception ex)
|
{
|
LoggerHelper.ErrorLog("ERROR:", ex);
|
}
|
}
|
#endregion
|
|
#region 方法名称更改事件
|
/// <summary>
|
/// 方法名称更改事件
|
/// </summary>
|
/// <param name="sender"></param>
|
/// <param name="e"></param>
|
private void tbxCommandName_TextChanged(object sender, TextChangedEventArgs e)
|
{
|
try
|
{
|
if (mark == 0)
|
{
|
return;
|
}
|
|
methodCoating.name = tbxCommandName.Text;
|
}
|
catch (Exception ex)
|
{
|
LoggerHelper.ErrorLog("ERROR:", ex);
|
}
|
}
|
#endregion
|
|
#region 机械臂选择变更事件
|
/// <summary>
|
/// 机械臂选择变更事件
|
/// </summary>
|
/// <param name="sender"></param>
|
/// <param name="e"></param>
|
private void cbArm_SelectionChanged(object sender, SelectionChangedEventArgs e)
|
{
|
if (mark == 0)
|
{
|
return;
|
}
|
|
// 臂未选择
|
if (cbArm.SelectedIndex < 0 || cbArm.SelectedIndex == 0)
|
{
|
methodCoating.armText = ""; // 机械臂
|
methodCoating.armValue = "";
|
textboxArmHead.Text = ""; // 挑菌枪
|
|
tipsChannel.SetTotalChannelCount(0);
|
tipsChannel.SelectedChannels = new List<int>();
|
tipsChannel.SetSelectedChannels();
|
tipsChannel_SelectedChangedEvent(null, null);
|
return;
|
}
|
|
#region 设置移液枪通道
|
tipsChannel.SelectedChannels = Shared.ChannelsId.ToList();
|
tipsChannel.SetTotalChannelCount(Shared.ChannelCount);
|
tipsChannel.SetSelectedChannels();
|
tipsChannel_SelectedChangedEvent(null, null);
|
#endregion
|
|
DeviceArm arm = cbArm.SelectedItem as DeviceArm;
|
methodCoating.armText = arm.device_arm_name;
|
methodCoating.armValue = arm.device_arm_id.ToString();
|
methodCoating.headType = arm.head_type;
|
textboxArmHead.Text = arm.head_type;
|
}
|
#endregion
|
|
#region 涂布方式选择变更事件
|
/// <summary>
|
/// 涂布方式选择变更事件
|
/// </summary>
|
/// <param name="sender"></param>
|
/// <param name="e"></param>
|
private void cbCoatingMode_SelectionChanged(object sender, SelectionChangedEventArgs e)
|
{
|
if (mark == 0)
|
{
|
return;
|
}
|
|
DropdownName dpdItem = (DropdownName)cbCoatingMode.SelectedItem;
|
methodCoating.coatingModeValue = Convert.ToInt32(dpdItem.dropdown_id);
|
|
// 回字型
|
if (dpdItem.dropdown_id.Equals(EnumManagement.GetEnumValue(CoatingModeEnum.HuiziMode).ToString()))
|
{
|
gridShake.Visibility = Visibility.Collapsed;
|
}
|
// Z字型
|
else if (dpdItem.dropdown_id.Equals(EnumManagement.GetEnumValue(CoatingModeEnum.ZMode).ToString()))
|
{
|
gridShake.Visibility = Visibility.Collapsed;
|
}
|
// 上下移动
|
else if (dpdItem.dropdown_id.Equals(EnumManagement.GetEnumValue(CoatingModeEnum.UpDownMode).ToString()))
|
{
|
gridShake.Visibility = Visibility.Visible;
|
}
|
// 放液
|
else if (dpdItem.dropdown_id.Equals(EnumManagement.GetEnumValue(CoatingModeEnum.DispenseMode).ToString()))
|
{
|
gridShake.Visibility = Visibility.Collapsed;
|
}
|
}
|
#endregion
|
|
#region 接种数量选择变更事件
|
/// <summary>
|
/// 接种数量选择变更事件
|
/// </summary>
|
/// <param name="sender"></param>
|
/// <param name="e"></param>
|
private void rdoCoatingCount_Checked(object sender, RoutedEventArgs e)
|
{
|
if (mark == 0)
|
{
|
return;
|
}
|
|
methodCoating.coatingCount = rdoCoatingCount1.IsChecked == true ? 0 : 1;
|
}
|
#endregion
|
|
#region 接种耗材
|
/// <summary>
|
/// 接种A耗材类型文字变更事件
|
/// </summary>
|
/// <param name="sender"></param>
|
/// <param name="e"></param>
|
private void coatingLabwareA_TextChanged(object sender, TextChangedEventArgs e)
|
{
|
if (mark == 0)
|
{
|
return;
|
}
|
methodCoating.coatingLabwareAText = coatingLabwareA.Text;
|
methodCoating.coatingLabwareAValue = coatingLabwareA.Tag.ToString();
|
}
|
|
/// <summary>
|
/// 接种B耗材类型文字变更事件
|
/// </summary>
|
/// <param name="sender"></param>
|
/// <param name="e"></param>
|
private void coatingLabwareB_TextChanged(object sender, TextChangedEventArgs e)
|
{
|
if (mark == 0)
|
{
|
return;
|
}
|
//methodCoating.coatingLabwareBText = coatingLabwareB.Text;
|
//methodCoating.coatingLabwareBValue = coatingLabwareB.Tag.ToString();
|
}
|
|
/// <summary>
|
/// 接种耗材获得焦点事件
|
/// </summary>
|
/// <param name="sender"></param>
|
/// <param name="e"></param>
|
private void coatingLabware_GotFocus(object sender, RoutedEventArgs e)
|
{
|
coatingLabware = (PromptTextBox)sender;
|
}
|
#endregion
|
|
#region 自动开关盖点击事件
|
/// <summary>
|
/// 自动开关盖点击事件
|
/// </summary>
|
/// <param name="sender"></param>
|
/// <param name="e"></param>
|
private void ckbAutoOpenCloseCover_Click(object sender, RoutedEventArgs e)
|
{
|
if (mark == 0)
|
{
|
return;
|
}
|
methodCoating.autoOpenCloseCover = ckbAutoOpenCloseCover.IsChecked == true ? 1 : 0;
|
}
|
#endregion
|
|
#region 设置已选择的台面数据
|
public void SetTableName(string tableName, Labware lb)
|
{
|
if (lb == null || string.IsNullOrEmpty(lb.labware_id))
|
{
|
return;
|
}
|
|
List<Lattice> latticeList = LatticeDB.GetLatticeDataFromdb(Shared.SoftwareInformation.software_device_number, Convert.ToInt32(methodCoating.armValue));
|
Lattice lattice = latticeList.Find(s => s.lattice_num == tableName);
|
if (lattice == null)
|
{
|
LoggerHelper.InfoLog("Error: Can't find lattice with lattice_num=" + tableName);
|
return;
|
}
|
|
if (coatingLabware != null)
|
{
|
coatingLabware.Tag = lb.labware_id;
|
coatingLabware.Text = lb.labware_name;
|
}
|
}
|
#endregion
|
|
#region 界面初期表示事件
|
private void UserControl_Loaded(object sender, RoutedEventArgs e)
|
{
|
try
|
{
|
if (mark == 0)
|
{
|
return;
|
}
|
|
#region 机械臂
|
if (!string.IsNullOrEmpty(methodCoating.armText))
|
{
|
tbxCommandName.Text = methodCoating.name;
|
cbArm.SelectedValue = methodCoating.armValue;
|
DeviceArm arm = cbArm.SelectedItem as DeviceArm;
|
textboxArmHead.Text = arm.head_type;
|
// 通道
|
tipsChannel.SelectedChannels = channels.ToList();
|
tipsChannel_SelectedChangedEvent(null, null);
|
}
|
else
|
{
|
cbArm.SelectedIndex = 0;
|
DeviceArm arm = cbArm.SelectedItem as DeviceArm;
|
if (arm != null)
|
{
|
textboxArmHead.Text = arm.head_type;
|
}
|
}
|
#endregion
|
|
#region 涂布方式
|
cbCoatingMode.SelectedValue = methodCoating.coatingModeValue.ToString();
|
#endregion
|
|
#region 涂布数量
|
// 单板
|
if (methodCoating.coatingCount == 0)
|
{
|
rdoCoatingCount1.IsChecked = true;
|
}
|
// 双板
|
else
|
{
|
rdoCoatingCount2.IsChecked = true;
|
}
|
#endregion
|
|
#region 接种耗材
|
coatingLabwareA.Tag = methodCoating.coatingLabwareAValue;
|
coatingLabwareA.Text = methodCoating.coatingLabwareAText;
|
|
//coatingLabwareB.Tag = methodCoating.coatingLabwareBValue;
|
//coatingLabwareB.Text = methodCoating.coatingLabwareBText;
|
#endregion
|
|
#region 自动开关盖
|
ckbAutoOpenCloseCover.IsChecked = methodCoating.autoOpenCloseCover == 1;
|
#endregion
|
|
#region 涂布方式:上下相关
|
tbxDistanceFromBottom.Text = methodCoating.distanceFromBottom.ToString();
|
tbxShakeDistance.Text = methodCoating.shakeDistanceValue.ToString();
|
tbxShakeCount.Text = methodCoating.shakeCountValue.ToString();
|
#endregion
|
}
|
catch (Exception ex)
|
{
|
LoggerHelper.ErrorLog("ERROR:", ex);
|
}
|
}
|
#endregion
|
|
#region 涂布方式:上下
|
/// <summary>
|
/// 距底距离更改事件
|
/// </summary>
|
/// <param name="sender"></param>
|
/// <param name="e"></param>
|
private void tbxDistanceFromBottom_TextChanged(object sender, TextChangedEventArgs e)
|
{
|
try
|
{
|
if (mark == 0)
|
{
|
return;
|
}
|
|
methodCoating.distanceFromBottom = Convert.ToInt32(tbxDistanceFromBottom.Text);
|
}
|
catch (Exception ex)
|
{
|
LoggerHelper.ErrorLog("ERROR:", ex);
|
}
|
}
|
|
/// <summary>
|
/// 移动距离更改事件
|
/// </summary>
|
/// <param name="sender"></param>
|
/// <param name="e"></param>
|
private void tbxShakeDistance_TextChanged(object sender, TextChangedEventArgs e)
|
{
|
try
|
{
|
if (mark == 0)
|
{
|
return;
|
}
|
|
methodCoating.shakeDistanceValue = float.Parse(tbxShakeDistance.Text);
|
}
|
catch (Exception ex)
|
{
|
LoggerHelper.ErrorLog("ERROR:", ex);
|
}
|
}
|
|
/// <summary>
|
/// 次数更改事件
|
/// </summary>
|
/// <param name="sender"></param>
|
/// <param name="e"></param>
|
private void tbxShakeCount_TextChanged(object sender, TextChangedEventArgs e)
|
{
|
try
|
{
|
if (mark == 0)
|
{
|
return;
|
}
|
|
methodCoating.shakeCountValue = Convert.ToInt32(tbxShakeCount.Text);
|
}
|
catch (Exception ex)
|
{
|
LoggerHelper.ErrorLog("ERROR:", ex);
|
}
|
}
|
#endregion
|
|
#region 可用通道鼠标选择变更事件
|
/// <summary>
|
/// 可用通道鼠标选择变更事件
|
/// </summary>
|
/// <param name="sender"></param>
|
/// <param name="e"></param>
|
private void tipsChannel_SelectedChangedEvent(object sender, EventArgs e)
|
{
|
methodCoating.channels = tipsChannel.SelectedChannels.ToArray();
|
}
|
#endregion
|
}
|
}
|