Ejemplo n.º 1
0
        public void UpdateCommStatus()
        {
            lock (handle_sync_) {
                if (!WinAPI.ClearCommError(handle_, out error_stat_, out comstat_temp_))
                {
                    error_stat_            = 0;
                    comstat_temp_.Flags    = 0;
                    comstat_temp_.cbInQue  = 0;
                    comstat_temp_.cbOutQue = 0;
                }

                if ((error_stat_ != 0) ||
                    (comstat_.Flags != comstat_temp_.Flags)
                    )
                {
                    CommStatusUpdated?.Invoke(
                        this,
                        new CommStatusUpdatedEventArgs(
                            (ErrorStatus)error_stat_,
                            (CommStatus)comstat_temp_.Flags,
                            (CommStatus)comstat_.Flags));
                }

                comstat_.Flags    = comstat_temp_.Flags;
                comstat_.cbInQue  = comstat_temp_.cbInQue;
                comstat_.cbOutQue = comstat_temp_.cbOutQue;
            }
        }