private void backgroundWorker1_ProgressChanged(object sender, ProgressChangedEventArgs e) { if (e.ProgressPercentage == WorkerProgressOk) { int LastRow = 0; MeasureListItem NewMeasure = e.UserState as MeasureListItem; NewMeasure.ItemColor = commonColorDialog1.Color; NewMeasure.ItemComment = commentTextBox.Text; bigLabel.Text = NewMeasure.ScaledValueWithUnit; modeLabel.Text = NewMeasure.Type.ToString(); LastRow = mAS345dataBindingSource.Add(NewMeasure); dataGridView1.Rows[LastRow].DefaultCellStyle.BackColor = NewMeasure.ItemColor; dataGridView1.Rows[LastRow].DefaultCellStyle.SelectionBackColor = GetBrighterColor(NewMeasure.ItemColor); if (mAS345dataBindingSource.Count == 1) { dataGridView1.ClearSelection(); } dataGridView1.FirstDisplayedScrollingRowIndex = dataGridView1.RowCount - 1; } else { toolStripStatusLabel1.Text = e.UserState as String; if (e.ProgressPercentage == WorkerProgressPortClosedError) { Connected = false; } } }
void backgroundWorker1_DoWork(object sender, DoWorkEventArgs e) { MasSerialPort Port = e.Argument as MasSerialPort; MeasureListItem NewMeasure; do { if (backgroundWorker1.CancellationPending) { e.Cancel = true; return; } try { NewMeasure = new MeasureListItem(Port.ReadData()); backgroundWorker1.ReportProgress(WorkerProgressOk, NewMeasure); } catch (TimeoutException) { backgroundWorker1.ReportProgress(WorkerProgressOtherError, "Can't recieve data from " + serialPort1.PortName); } catch (InvalidDataException) { backgroundWorker1.ReportProgress(WorkerProgressOtherError, "Value out of range"); } catch (ArgumentOutOfRangeException) { backgroundWorker1.ReportProgress(WorkerProgressOtherError, "Invalid data received"); } catch (InvalidOperationException) { backgroundWorker1.ReportProgress(WorkerProgressPortClosedError, "The port has been closed"); } }while (Port.ContinousMode); }
void backgroundWorker1_DoWork(object sender, DoWorkEventArgs e) { MasSerialPort Port = e.Argument as MasSerialPort; MeasureListItem NewMeasure; do { if (backgroundWorker1.CancellationPending) { e.Cancel = true; return; } try { NewMeasure = new MeasureListItem(Port.ReadData()); backgroundWorker1.ReportProgress(WorkerProgressOk, NewMeasure); } catch (TimeoutException) { backgroundWorker1.ReportProgress(WorkerProgressOtherError, "Can't recieve data from " + serialPort1.PortName); } catch (InvalidDataException) { backgroundWorker1.ReportProgress(WorkerProgressOtherError, "Value out of range"); } catch (ArgumentOutOfRangeException) { backgroundWorker1.ReportProgress(WorkerProgressOtherError, "Invalid data received"); } catch (InvalidOperationException) { backgroundWorker1.ReportProgress(WorkerProgressPortClosedError, "The port has been closed"); } } while (Port.ContinousMode); }