using DataEntity.Device;
|
using DataRWDAL.Device;
|
using HxEnum;
|
using System;
|
using System.Collections.Generic;
|
using System.Linq;
|
using System.Windows;
|
using System.Windows.Controls;
|
using XCommon.Log;
|
using XCore;
|
using XHandler.Class.DataEx;
|
using XImagingXhandler.XDAL;
|
|
namespace XHandler.View.MethodProperty
|
{
|
/// <summary>
|
/// Socket-TCP标准协议 属性页面
|
/// </summary>
|
public partial class ThirdPartPropertySocketProperty : UserControl, IMethodProperty
|
{
|
#region 变量
|
private TransferFileBll m_transferFileBll = new TransferFileBll();
|
private int m_mark = 0;
|
private MethodEx m_mEx = null;
|
public MethodThirdPart methodProperty = null;
|
|
public string sendParamsData = string.Empty;
|
#endregion
|
|
#region 构造函数
|
/// <summary>
|
/// 构造函数
|
/// </summary>
|
/// <param name="mEx"></param>
|
public ThirdPartPropertySocketProperty(MethodEx mEx)
|
{
|
InitializeComponent();
|
|
m_mark = 0;
|
methodProperty = new MethodThirdPart();
|
methodProperty.strIndex = mEx.strIndex;
|
methodProperty.label = mEx.method_name; // 命令标签
|
methodProperty.name = mEx.method_name; // 命令名称
|
methodProperty.status = (mEx.isEnabled == true ? "enable" : "disable"); // 使能状态
|
methodProperty.device = mEx.device;
|
this.DataContext = methodProperty;
|
|
#region 设备方法
|
// 获取设备方法列表
|
var deviceConfigList = DeviceConfigMethodDB.GetListByDeviceconfigId(mEx.method_id.ToString());
|
DeviceConfigMethodModel item = new DeviceConfigMethodModel();
|
item.Id = "-1";
|
item.ParameterName = Properties.Resources.strPleaseSelect;
|
deviceConfigList.Insert(0, item);
|
cbDeviceMethod.ItemsSource = deviceConfigList;
|
cbDeviceMethod.SelectedIndex = 0;
|
#endregion
|
|
if (mEx.tag != null)
|
{
|
methodProperty = (MethodThirdPart)mEx.tag;
|
|
if(methodProperty.methodParametersData!=null)
|
{
|
foreach(var param in methodProperty.methodParametersData)
|
{
|
sendParamsData += param.ParameterName + ":" + param.Value + ";";
|
}
|
}
|
}
|
|
m_mEx = mEx;
|
m_mEx.method_Tipcontent = string.Format("{0},发送参数:{1}", methodProperty.deviceMethod==null?"": methodProperty.deviceMethod.ParameterName, sendParamsData);
|
|
}
|
#endregion
|
|
#region 界面初期表示事件
|
private void UserControl_Loaded(object sender, RoutedEventArgs e)
|
{
|
m_mark += 1;
|
try
|
{
|
if (m_mark > 1)
|
{
|
return;
|
}
|
|
#region 设备方法
|
if (!string.IsNullOrEmpty(methodProperty.deviceMethodValue))
|
{
|
cbDeviceMethod.SelectedValue = methodProperty.deviceMethodValue;
|
}
|
#endregion
|
}
|
catch (Exception ex)
|
{
|
LoggerHelper.ErrorLog("ERROR:", ex);
|
}
|
}
|
#endregion
|
|
#region 方法标签文件更改事件
|
/// <summary>
|
/// 方法标签文件更改事件
|
/// </summary>
|
/// <param name="sender"></param>
|
/// <param name="e"></param>
|
private void tbxCommandLabel_TextChanged(object sender, TextChangedEventArgs e)
|
{
|
try
|
{
|
if (m_mark != 0)
|
{
|
methodProperty.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 (m_mark != 0)
|
{
|
methodProperty.name = tbxCommandName.Text;
|
}
|
}
|
catch (Exception ex)
|
{
|
LoggerHelper.ErrorLog("ERROR:", ex);
|
}
|
}
|
#endregion
|
|
#region 设备方法选择变更事件
|
string sendParams = string.Empty;
|
/// <summary>
|
/// 设备方法选择变更事件
|
/// </summary>
|
/// <param name="sender"></param>
|
/// <param name="e"></param>
|
private void cbDeviceMethod_SelectionChanged(object sender, SelectionChangedEventArgs e)
|
{
|
if (cbDeviceMethod.SelectedIndex <= 0)
|
{
|
// 清空所有参数数据
|
panelSendParamters.Children.Clear();
|
panelReceiveParamters.Children.Clear();
|
return;
|
}
|
|
var methodModel = (DeviceConfigMethodModel)cbDeviceMethod.SelectedItem;
|
methodProperty.deviceMethodText = methodModel.ParameterName;
|
methodProperty.deviceMethodValue = methodModel.Id;
|
methodProperty.deviceMethod = methodModel;
|
|
|
// 获取设备方法参数列表
|
var methodParametersList = DeviceConfigMethodParametersDB.GetInfoByDeviceconfigMethodId(cbDeviceMethod.SelectedValue.ToString());
|
// 发送参数
|
var selSendParameters = methodParametersList.Where(it => it.Type == EnumManagement.GetEnumValue(ParameterTypeEnum.Send));
|
SetParamtersPanel(panelSendParamters, selSendParameters);
|
m_mEx.method_Tipcontent = string.Format("{0},发送参数:{1}", methodModel.ParameterName, sendParams);
|
|
// 接收参数
|
var selReceiveParameters = methodParametersList.Where(it => it.Type == EnumManagement.GetEnumValue(ParameterTypeEnum.Receive));
|
SetParamtersPanel(panelReceiveParamters, selReceiveParameters);
|
sendParams = string.Empty;
|
}
|
|
/// <summary>
|
/// 动态生成参数列表
|
/// </summary>
|
/// <param name="sPanel"></param>
|
/// <param name="selParameters"></param>
|
private void SetParamtersPanel(StackPanel sPanel, IEnumerable<DeviceConfigMethodParametersModel> selParameters)
|
{
|
// 清空所有参数数据
|
sPanel.Children.Clear();
|
|
if (!selParameters.Any())
|
{
|
return;
|
}
|
|
List<DeviceConfigMethodParametersModel> parametersData = new List<DeviceConfigMethodParametersModel>(methodProperty.methodParametersData);
|
methodProperty.methodParametersData.Clear();
|
|
// 循环参数
|
List<DeviceConfigMethodParametersModel> lstParameters = selParameters.ToList();
|
for (int i = 0; i < lstParameters.Count; i++)
|
{
|
var parametersModel = lstParameters[i];
|
|
SocketParamterItem item = new SocketParamterItem(methodProperty, m_mEx);
|
item.MethodParamterId = parametersModel.Id;
|
item.Title = parametersModel.ParameterName;
|
|
// 获取之前保存的参数值
|
var parameterSave = parametersData.FirstOrDefault(it => it.Id.Equals(parametersModel.Id));
|
item.Value = parameterSave != null ? parameterSave.Value : parametersModel.Value;
|
sPanel.Children.Add(item);
|
|
methodProperty.methodParametersData.Add(new DeviceConfigMethodParametersModel()
|
{ Id = parametersModel.Id, ParameterName = parametersModel.ParameterName, Value = parametersModel.Value });
|
|
sendParams += parametersModel.ParameterName + ":" + item.Value+";";
|
}
|
}
|
#endregion
|
|
#region 设置已选择的台面数据
|
public void SetTableName(string tableName, Labware lb)
|
{
|
//if (lb == null || string.IsNullOrEmpty(lb.labware_id))
|
//{
|
// return;
|
//}
|
|
//GetOrSetLattice latticeDB = new GetOrSetLattice();
|
//List<Lattice> latticeList = latticeDB.GetLatticeDataFromdb(App.softwareInformation.software_device_number, Convert.ToInt32(methodChoice.armValue));
|
//Lattice lattice = latticeList.Find(s => s.lattice_num == tableName);
|
//if (lattice == null)
|
//{
|
// LoggerHelper.InfoLog("Error: Can't find lattice with lattice_num=" + tableName);
|
// return;
|
//}
|
|
//if (gridLiquidParam.Visibility == Visibility.Visible)
|
//{
|
// if (gridChoiceAgoAspirateChild.Children.Count > 0)
|
// {
|
// ChoiceAgoAspirateChildProperty choiceAgoAspirateChildProperty = (ChoiceAgoAspirateChildProperty)gridChoiceAgoAspirateChild.Children[0];
|
// choiceAgoAspirateChildProperty.SetTableName(tableName, lb);
|
// }
|
//}
|
//else
|
//{
|
// if (labwareTextBox != null)
|
// {
|
// labwareTextBox.Tag = lb.labware_id;
|
// labwareTextBox.Text = lb.labware_name;
|
// }
|
//}
|
}
|
#endregion
|
}
|
}
|