/// <summary>
        /// Read all pins
        /// </summary>
        internal void Read()
        {
            Busy = true;
            var config = new LocoIOConfig();

            Enabled = false;
            lb.BeginRequest(
                x => programmer.Read(x, config),
                x =>
            {
                Enabled = true;
                Busy    = false;
                if (x.HasError)
                {
                    MessageBox.Show(x.Error.Message);
                }
                else
                {
                    for (int i = 0; i < 16; i++)
                    {
                        pinControls[i].LoadFrom(config.Pins[i]);
                    }
                }
            });
        }
 /// <summary>
 /// Execute the given request.
 /// </summary>
 private void Execute(Request request)
 {
     lb.BeginRequest(request, e => {
         if (!e.HasError)
         {
             MessageBox.Show(e.Error.Message, Application.ProductName, MessageBoxButtons.OK, MessageBoxIcon.Error);
         }
     });
 }
Example #3
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.";
                }
            });
        }
Example #4
0
 /// <summary>
 /// Set all bits to 0.
 /// </summary>
 private void cmdReset_Click(object sender, EventArgs e)
 {
     lb.BeginRequest(
         x => programmer.BitsToZero(x),
         x =>
     {
         if (Continue != null)
         {
             Continue(this, EventArgs.Empty);
         }
     });
 }
Example #5
0
 /// <summary>
 /// Go into programming mode.
 /// </summary>
 private void cmdEnterProgramMode_Click(object sender, EventArgs e)
 {
     lb.BeginRequest(
         x => programmer.EnterProgrammingMode(x),
         x =>
     {
         if (Continue != null)
         {
             Continue(this, EventArgs.Empty);
         }
     });
 }
        private void Write(LocoIOConnectorConfigurationControl connector, Button cmdWrite)
        {
            Busy = true;
            var settings = connector.CreateConfig();

            connector.Enabled = false;
            cmdWrite.Enabled  = false;
            lb.BeginRequest(
                x => programmer.Write(x, settings),
                x =>
            {
                connector.Enabled = true;
                cmdWrite.Enabled  = true;
                Busy = false;
                if (x.HasError)
                {
                    MessageBox.Show(x.Error.Message);
                }
                else
                {
                    WriteSucceeded.Fire(this);
                }
            });
        }
 /// <summary>
 /// Set left position
 /// </summary>
 private void cmdSetLeft_Click(object sender, EventArgs e)
 {
     lb.BeginRequest(
         x => programmer.SetLeftDegrees(x, (int)udLeft.Value),
         CompletedHandler);
 }