Пример #1
0
        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;
                }
            }
        }
Пример #2
0
        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);
        }
Пример #3
0
        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);
        }