using DevExpress.Utils.Extensions;
using DevExpress.XtraEditors.Controls;
using System.IO.Ports;
namespace IBox.WinFrmUI
{
public partial class ProtocolModbus : DevExpress.XtraEditors.XtraUserControl
{
public ProtocolModbus()
{
InitializeComponent();
SetSelectData();
}
///
/// 获取数据
///
///
public IBoxProtocolViewModel GetData()
{
var model = new IBoxProtocolViewModel();
model.Port = this.textEditPort.Text;
model.BaudRate = int.Parse((this.textEditBaudRate.SelectedItem as ImageComboBoxItem).Value.ToString());
model.dataBits = int.Parse(this.textEditDataBits.Text);
model.stopBits = this.textEditStopBits.Text == "1" ? StopBits.One : StopBits.None;
model.StationNumber = int.Parse(this.textEditStationNumber.Text);
return model;
}
///
/// 设置下拉数据
///
public void SetSelectData()
{
var baudRates = new dModbus().BaudRate();
baudRates.ForEach(baudRate =>
{
this.textEditBaudRate.Properties.Items.Add(baudRate.Key.ToString(), baudRate.Value, -1);
});
this.textEditBaudRate.SelectItemByDescription("9600");
}
///
/// 绑定数据
///
///
public void SetData(IBoxProtocolViewModel model)
{
this.textEditPort.Text = model.Port;
this.textEditBaudRate.EditValue = model.BaudRate;
this.textEditDataBits.Text = model.dataBits.ToString();
this.textEditStopBits.Text = model.stopBits.ToString() == "One" ? "1" : "0";
this.textEditStationNumber.Text = model.StationNumber.ToString();
}
}
}