/// <summary> /// Start reading loco IO's /// </summary> protected override void OnVisibleChanged(EventArgs e) { base.OnVisibleChanged(e); if (Visible && !started && (appState != null)) { started = true; var list = appState.LocoNet.NewLocoIOs.ToList(); progressBar1.Maximum = list.Count + 1; progressBar1.Minimum = 0; foreach (var io in list) { var index = list.IndexOf(io); var programmer = new Programmer(io.Address); var config = new LocoIOConfig(); appState.LocoBuffer.BeginRequest( x => programmer.Read(x, config), x => { if (!x.HasError) { appState.Configuration.LocoIOs[config.Address] = config; } progressBar1.Value = index + 1; if (index == list.Count-1) { Close(); } }); } } }
/// <summary> /// Read Single SV /// </summary> private void CmdReadClick(object sender, EventArgs e) { var programmer = new Programmer(new LocoNetAddress((byte)tbDstL.Value, (byte)tbDstH.Value)); var configs = new[] { new SVConfig((int)tbSvAddress.Value) }; lb.BeginRequest(x => programmer.Read(x, configs), x => { if (configs[0].Valid) { MessageBox.Show("Value = " + configs[0].Value); } else { MessageBox.Show("Cannot read SV"); } }); }