예제 #1
0
        /// <summary>
        /// Send change address now.
        /// </summary>
        private void cmdChange_Click(object sender, System.EventArgs e)
        {
            Busy = true;
            var newAddress    = (byte)upAddress.Value;
            var newSubAddress = (byte)upSubAddress.Value;

            lbStatus.Text        = "Changing address...";
            upAddress.Enabled    = false;
            upSubAddress.Enabled = false;
            cmdChange.Enabled    = false;
            lb.BeginRequest(
                x => programmer.ChangeAddress(x, newAddress, newSubAddress),
                x =>
            {
                upAddress.Enabled    = false;
                upSubAddress.Enabled = false;
                cmdChange.Enabled    = true;
                Busy = false;
                if (x.HasError)
                {
                    lbStatus.Text = "Changing address failed.";
                    MessageBox.Show(x.Error.Message);
                }
                else
                {
                    lbStatus.Text = "Changing address succeeded. Reset the LocoIO.";
                }
            });
        }