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.