Цитата(V_G @ Jan 31 2011, 16:16)

А это вы на чем программируете?
Я под винду пишу на Visual C++, там никаких таймаутов не задаю и не использую.
Со стороны моих же девайсов на микроконтроллерах таймауты на прием байта делаю всегда. Если девайс обслуживается моей же прогой на стороне компьютера, таймаут на длину 2-3 байт, если предполагается работа через чужие терминальные программы, таймаут делаю около минуты.
на ней же))) Visual C++
тоже делаю таймаут на прием байта.... тут просто фига в другом получилась.
я эмулирую как раз свою железяку. подключаюсь к чужой, которая ждет начало моего ответа не более 100 мс после своего запроса. я ответить не успеваю из-за описаной выше проблемы - у меня эти 100 мс проходят в ожидании приема всего сообщения, которое 100% было передано без задержек
28276 0.00000254 SUCCESS Length 1:
55 28278 0.00000000 DebugPV.exe IRP_MJ_READ Serial0 Length 1
28278 0.00000244 SUCCESS Length 1:
7E 28279 0.00000000 DebugPV.exe IRP_MJ_READ Serial0 Length 1
28279 0.00000214 SUCCESS Length 1:
04 28280 0.00000000 DebugPV.exe IRP_MJ_READ Serial0 Length 1
28280 0.00000401 SUCCESS Length 1:
CD 28281 0.00000000 DebugPV.exe IRP_MJ_READ Serial0 Length 1
28281 0.00000537 SUCCESS Length 1:
AB 28282 0.00000000 DebugPV.exe IRP_MJ_READ Serial0 Length 1
28282 0.00000214 SUCCESS Length 1:
02 28283 0.00000000 DebugPV.exe IRP_MJ_READ Serial0 Length 1
28283 0.00288607 TIMEOUT Length 0:
28284 0.00000000 DebugPV.exe IRP_MJ_READ Serial0 Length 1
28284 0.00290760 TIMEOUT Length 0:
28285 0.00000000 DebugPV.exe IRP_MJ_READ Serial0 Length 1
28285 0.00287964 TIMEOUT Length 0:
28286 0.00000000 DebugPV.exe IRP_MJ_READ Serial0 Length 1
28286 0.00278307 TIMEOUT Length 0:
28287 0.00000000 DebugPV.exe IRP_MJ_READ Serial0 Length 1
28287 0.00289570 TIMEOUT Length 0:
28288 0.00000000 DebugPV.exe IRP_MJ_READ Serial0 Length 1
28288 0.00245688 TIMEOUT Length 0:
28289 0.00000000 DebugPV.exe IRP_MJ_READ Serial0 Length 1
28289 0.00289105 TIMEOUT Length 0:
28290 0.00000000 DebugPV.exe IRP_MJ_READ Serial0 Length 1
28290 0.00290621 TIMEOUT Length 0:
28291 0.00000000 DebugPV.exe IRP_MJ_READ Serial0 Length 1
28291 0.00244370 TIMEOUT Length 0:
28292 0.00000000 DebugPV.exe IRP_MJ_READ Serial0 Length 1
28292 0.00290261 TIMEOUT Length 0:
28293 0.00000000 DebugPV.exe IRP_MJ_READ Serial0 Length 1
28293 0.00289803 TIMEOUT Length 0:
28294 0.00000000 DebugPV.exe IRP_MJ_READ Serial0 Length 1
28294 0.00289742 TIMEOUT Length 0:
28295 0.00000000 DebugPV.exe IRP_MJ_READ Serial0 Length 1
28295 0.00288969 TIMEOUT Length 0:
28296 0.00000000 DebugPV.exe IRP_MJ_READ Serial0 Length 1
28296 0.00293397 TIMEOUT Length 0:
28297 0.00000000 DebugPV.exe IRP_MJ_READ Serial0 Length 1
28297 0.00289170 TIMEOUT Length 0:
28298 0.00000000 DebugPV.exe IRP_MJ_READ Serial0 Length 1
28298 0.00289987 TIMEOUT Length 0:
28299 0.00000000 DebugPV.exe IRP_MJ_READ Serial0 Length 1
28299 0.00289501 TIMEOUT Length 0:
28300 0.00000000 DebugPV.exe IRP_MJ_READ Serial0 Length 1
28300 0.00290946 TIMEOUT Length 0:
28301 0.00000000 DebugPV.exe IRP_MJ_READ Serial0 Length 1
28301 0.00088400 SUCCESS Length 1:
53 28302 0.00000000 DebugPV.exe IRP_MJ_WRITE Serial0 Length 8:
FF FF 55 03 02 03 13 FF Лог со временами
Красным отмечены принимаеиые байты. 6 байт подряд и седьмой внизу где-то через 60 мс. (между пустыми запросами порядка 3 мс.) в шине данные шли подряд. (1 байт примерно за 17 мс.)
Цитата(V_G @ Jan 31 2011, 16:16)

PS. Да, и для многозадачных ОС 100 мс - очень маленькое время (для задачи с невысоким приоритетом), я бы не стал так мельчить
А как можно поднять приоритет?) что-то я не шарю...
терминалка, умеющая показывать начало и конец приема, нормально кстати принимает эти же самые пакеты - без задержек
Сообщение отредактировал Reuk - Jan 31 2011, 08:35