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