SerialPort i oczekiwanie na dane

0

Witam,

Mam nastęujący probelm...
W chwili obecnej komunikując się z urządzeniem robię coś takiego:

 
        private Byte[] SendBuffer(Int16 count, Byte[] buf)
        {
            try
            {
                this.PortCOM.DiscardInBuffer();

                this.PortCOM.Write(buf, 0, count);

                Thread.Sleep(100);

                Byte[] rec = new Byte[2];

                this.PortCOM.Read(rec, 0, 2);

                return (rec);
            }
            catch (Exception)
            {
                return (null);
            }
        }

I wszystko było by ok, gdyby nie fakt, że muszę czekać dokładnie 100 ms na dane - Sleep(100).
Jest to trochę niewygodne, ponieważ urządzenie może odpowiedzieć od razu lub np po 80 ms - w tej chwili zawsze czekam 100 ms!

Czy istnieje jakaś metoda, żeby oczekiwać, aż w buforze pojawią się np. 2 bajty i dopiero wtedy program rusza dalej - ewentualnie czeka, aż minie timeout? Coś w stylu ReadLine?

Dziękuję i pozdrawiam.

1 użytkowników online, w tym zalogowanych: 0, gości: 1