using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; namespace PLCCommunication { public partial class TriggerUI : UserControl { public delegate void TrgParamChangeHandler(int Index); public TriggerParams TrgParams = new TriggerParams(); public event TrgParamChangeHandler TrgParamChangeEvent; public TriggerUI() { InitializeComponent(); } public TriggerUI(TriggerParams _trgParam) { InitializeComponent(); cbo_WriteType.DataSource = Enum.GetNames(typeof(VarType)); cboTriggerType.DataSource = Enum.GetNames(typeof(VarType)); cboReadType.DataSource = Enum.GetNames(typeof(VarType)); TrgParams = _trgParam; } private void TriggerUI_Load(object sender, EventArgs e) { txtResultAddr.Text = TrgParams.ResultAddr; txtTriggerAddr.Text = TrgParams.TriggerAddr; txtTrrigerCommand.Text = TrgParams.TriggerCmd; txtReadAddr.Text = TrgParams.ReadAddr; txtReadLength.Text =TrgParams.ReadLength.ToString(); cboReadType.Text = TrgParams.ReadType.ToString(); cbo_WriteType.Text = TrgParams.ResultType.ToString(); cboTriggerType.Text = TrgParams.TriggerType.ToString(); cbIsRead.Checked = TrgParams.IsRead; } private void cbo_WriteType_SelectedIndexChanged(object sender, EventArgs e) { TrgParams.ResultType = (VarType)Enum.Parse(typeof(VarType), cbo_WriteType.SelectedItem.ToString(), false); OnTrgParamChange(TrgParams.Index); } private void cboTriggerType_SelectedIndexChanged(object sender, EventArgs e) { TrgParams.TriggerType = (VarType)Enum.Parse(typeof(VarType), cboTriggerType.SelectedItem.ToString(), false); OnTrgParamChange(TrgParams.Index); } private void txtResultAddr_TextChanged(object sender, EventArgs e) { TrgParams.ResultAddr = txtResultAddr.Text; OnTrgParamChange(TrgParams.Index); } private void txtTriggerAddr_TextChanged(object sender, EventArgs e) { TrgParams.TriggerAddr = txtTriggerAddr.Text; OnTrgParamChange(TrgParams.Index); } private void txtTrrigerCommand_TextChanged(object sender, EventArgs e) { TrgParams.TriggerCmd = txtTrrigerCommand.Text; OnTrgParamChange(TrgParams.Index); } public void OnTrgParamChange(int Index) { if (this.TrgParamChangeEvent != null) { this.TrgParamChangeEvent(Index); } } private void txtReadAddr_TextChanged(object sender, EventArgs e) { TrgParams.ReadAddr = txtReadAddr.Text; OnTrgParamChange(TrgParams.Index); } private void txtReadLength_TextChanged(object sender, EventArgs e) { TrgParams.ReadLength =int.Parse( txtReadLength.Text.Trim()); OnTrgParamChange(TrgParams.Index); } private void cboReadType_SelectedIndexChanged(object sender, EventArgs e) { TrgParams.ReadType = (VarType)Enum.Parse(typeof(VarType), cboReadType.SelectedItem.ToString(), false); OnTrgParamChange(TrgParams.Index); } private void cbIsRead_CheckedChanged(object sender, EventArgs e) { if (cbIsRead.Checked) { TrgParams.IsRead = true; } else { TrgParams.IsRead = false; } OnTrgParamChange(TrgParams.Index); } } }