/// <summary> /// Handles the data acquisition 'Progress' event /// </summary> /// <param name="sender"></param> /// <param name="e"></param> void grabber_Progress(object sender, ProgressEventArgs e) { // Just pass the even on the our listeners BroadcastProgress(e); }
/// <summary> /// Broadcast a progress event to anyone who's listening /// </summary> /// <param name="e"></param> private void BroadcastProgress(ProgressEventArgs e) { EventHandler<ProgressEventArgs> handler = OnProgress; // Just pass the progress event through. if (handler != null) handler(this, e); }
/// <summary> /// Handles the data acquisition 'Complete' event /// </summary> /// <param name="sender"></param> /// <param name="e"></param> void grabber_Complete(object sender, ProgressEventArgs e) { // Send a console message... BroadcastStatusMessage("Sampling Complete\r\n", MessageEventArgs.MessageTypes.Important); // and tell our listeners to plot the data. BroadcastPlot(new SamplePlot(grabber.Data.ToArray(), grabber.SamplingChannels, grabber.SamplingMode != DataGrabber.SamplingModes.TransitionsOnly)); }
/// <summary> /// Progress event handler. /// </summary> /// <param name="sender"></param> /// <param name="e"></param> void viewModel_Progress(object sender, ProgressEventArgs e) { // NOTE: If there is an error before we get to 100%, the progress bar will never be hidden. // This event likely occurred on a thread other than the UI thread. // If that it the case, use Invoke to run on the UI thread. if (this.progressBar.InvokeRequired) { this.Invoke((MethodInvoker)delegate { this.progressBar.Value = e.PercentComplete; this.compressionPercent.Text = e.CompressionPercent + "%"; }); } else { this.progressBar.Value = e.PercentComplete; this.compressionPercent.Text = e.CompressionPercent + "%"; } }