Windows CommTimeOuts structure hakkında

Başlatan z, 27 Mayıs 2015, 11:54:33

z

Sabit baud rate için yazdığım program sorunsuz çalışıyordu.

Baudrate'i seçilebilir hale getirdiğimde sorunlar başladı ve sorunun PC yazılımındaki time out süreleri ile ilgili olduğunu tesbit ettim.

Seri iletişim için windows fonksiyonlarını kullanıyorum.

https://msdn.microsoft.com/en-us/library/windows/desktop/aa363190(v=vs.85).aspx

Derdim şu;

1200 Baud hızında 1St+8D+1Stp tipindeki 1 byte veri 10000/1200 8.33mili saniyede gider.

10 byte veri almak istiyorum.

ReadIntervalTimeout=9
DWORD ReadTotalTimeoutMultiplier=0;
DWORD ReadTotalTimeoutConstant=0;

Yapıyorum. Fakat yazılım takılıp kalıyor. uzun süre bekliyor. 10 byte *8.3 ms = Yaklaşık 100ms

100 ms içinde 10 byte veri alınamazsa Time out dese yeterli benim için.

Structurda write ile ilgili time out değerlerini ise hiç anlamadım.
Buffera verilerimi yerleştirdikten sonra şu kadar datayı yolla dediğimde neyin write timeoutu olacakki? Neden göndermede time out değeri belirleyeyim?

typedef struct _COMMTIMEOUTS {
  DWORD ReadIntervalTimeout;
  DWORD ReadTotalTimeoutMultiplier;
  DWORD ReadTotalTimeoutConstant;
  DWORD WriteTotalTimeoutMultiplier;
  DWORD WriteTotalTimeoutConstant;
} COMMTIMEOUTS, *LPCOMMTIMEOUTS;

Bana e^st de diyebilirsiniz.   www.cncdesigner.com