|
|
|
Virtual COM port большая задержка перед повторным открытием после Unplug
|
|||
|---|---|---|---|
|
#18+
Добрый день! Работаю с виртуальным портом Prolific. После его случайного отключения виртуального порта (физическое разъединение) и повторного втыкания разъема, хочется автоматически открывать порт и продолжать прием данных без дополнительных телодвижений для пользователя. Все хорошо, но есть проблема: при попытке открыть порт после события DBT_DEVICEARRIVAL, возникает длительная задержка и выдается сообщение 'SetCommState function failed'. Путем некоторых экспериментов, выяснил, что если сделать длительную задержку перед открытием порта (>15сек), то порт нормально открывается и данные продолжают приниматься как ни в чем не бывало. Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. Не очень изящное решение, да и ждать долго. Есть ли какое-либо событие Windows гарантирующее, что порт полностью готов к работе? Возможно это поможет, данные в порт валят такие, что винда почему-то думает, что подключен Microsoft BallPoint трекбол для посл.порта (на фото - COM7). Хотя это данные аппаратного счетчика (сторонний производитель). В первый раз порт открывается нормально, хотя тоже могут быть проблемы (полагаю что из-за этого). Заранее спасибо! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.12.2017, 18:08 |
|
||
|
Virtual COM port большая задержка перед повторным открытием после Unplug
|
|||
|---|---|---|---|
|
#18+
Belotsky SergeЕсть ли какое-либо событие Windows гарантирующее, что порт полностью готов к работе? Не знаю. Чем тебе не хватает гарантии, что если порт открылся, то он готов к работе? Просто пробуй открыть его когда понадобится, и всё. Если постоянно надо - то сделай такую попытку реконнекта: раз в секунду в течение 30 секунд. Не получилось - увеличивай таймаут. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.12.2017, 22:16 |
|
||
|
Virtual COM port большая задержка перед повторным открытием после Unplug
|
|||
|---|---|---|---|
|
#18+
Вопрос закрыт, дело было в драйверах. Установил последние, задержка при открытии порта сократилась до пару секунд и исчезло обнаружение Microsoft BallPoint трекбол. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.12.2017, 09:21 |
|
||
|
|

start [/forum/topic.php?fid=58&msg=39572216&tid=2041431]: |
0ms |
get settings: |
6ms |
get forum list: |
17ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
182ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
33ms |
get tp. blocked users: |
1ms |
| others: | 209ms |
| total: | 464ms |

| 0 / 0 |
