Example #1
0
    /// <summary>
    /// Control table Update DoWork
    /// </summary>
    /// <param name="sender">system sender</param>
    /// <param name="e">system DoWorkEventArgs</param>
    private void MonitorComPortDoWork(object sender, DoWorkEventArgs e)
    {
        BackgroundWorker worker      = sender as BackgroundWorker;
        string           comPortName = e.Argument as string;
        bool             nextRun     = true;

        while (nextRun)
        {
            if (worker.CancellationPending == true)
            {
                e.Cancel = true;
                worker.ReportProgress(0, "Close!!" as object);
                break;
            }
            else
            {
                if (this.comPort != null)
                {
                    if (this.timeCount > TimeoutLimit)
                    {
                        // time out
                        this.comPort.CloseComPort();
                        this.comPort = null;
                    }
                    else
                    {
                        this.timeCount++;
                    }
                }
                else
                {
                    this.comPort = new ClsComPort();
                    this.comPort.ReceiveMessage += (object objectSender, EventArgs eventArgs, string updateMessage) =>
                    {
                        worker.ReportProgress(0, updateMessage as object);
                        this.timeCount = 0;
                    };

                    this.comPort.TransmitMessage += (object objectSender, EventArgs eventArgs, string updateMessage) =>
                    {
                        worker.ReportProgress(0, updateMessage as object);
                        this.timeCount = 0;
                    };

                    this.comPort.Initialize(comPortName);
                }

                System.Threading.Thread.Sleep(1000);
            }
        }
    }
    /// <summary>
    /// Control table Update DoWork
    /// </summary>
    /// <param name="sender">system sender</param>
    /// <param name="e">system DoWorkEventArgs</param>
    private void MonitorComPortDoWork(object sender, DoWorkEventArgs e)
    {
        BackgroundWorker worker = sender as BackgroundWorker;
        string comPortName = e.Argument as string;
        bool nextRun = true;

        while (nextRun)
        {
            if (worker.CancellationPending == true)
            {
                e.Cancel = true;
                worker.ReportProgress(0, "Close!!" as object);
                break;
            }
            else
            {
                if (this.comPort != null)
                {
                    if (this.timeCount > TimeoutLimit)
                    {
                        // time out
                        this.comPort.CloseComPort();
                        this.comPort = null;
                    }
                    else
                    {
                        this.timeCount++;
                    }
                }
                else
                {
                    this.comPort = new ClsComPort();
                    this.comPort.ReceiveMessage += (object objectSender, EventArgs eventArgs, string updateMessage) =>
                    {
                        worker.ReportProgress(0, updateMessage as object);
                        this.timeCount = 0;
                    };

                    this.comPort.TransmitMessage += (object objectSender, EventArgs eventArgs, string updateMessage) =>
                    {
                        worker.ReportProgress(0, updateMessage as object);
                        this.timeCount = 0;
                    };

                    this.comPort.Initialize(comPortName);
                }

                System.Threading.Thread.Sleep(1000);
            }
        }
    }