Пример #1
0
        private void _checkport(object state)
        {
            int size = 0;

            if (Status == PortStatus.CLOSED)
            {
                return;
            }
            lock (_serial)
            {
                if (_serial.BytesToRead > 0)
                {
                    size = _serial.Read(rbuf, 0, _serial.BytesToRead);
                }
            }
            if (size <= 0)
            {
                return;
            }
            int p = 0;

            while (size-- >= 0)
            {
                ifrm.pushc(rbuf[p++]);
                if (ifrm.flag == RF_STATE.RF_CKSUM)
                {
                    if (InFrameHandlers.ContainsKey(ifrm.addr))
                    {
                        InFrameHandlers[ifrm.addr](ifrm);
                    }
                    ifrm.ResetFlag();
                }
            }
        }