-
- После помехи на любые команды ReadFile, WriteFile, CreateFile выдаёт ошибку. Единственный способ заставить работать - это выткнуть USB и снова воткнуть. - Ale3000(15.01.2019 04:23)
- Угу. Мы по этой причине забили на CDC и перешли на WinUSB. Он намного стабильнее работает. - =AK=(23.01.2019 01:52)
- С CDC какая-то бяка с реестром происходит. =AK=(182 знак., 23.01.2019 01:56 - 02:12)
- Кстати, читал как-то что у видны есть несколько способов определять наличие COM-порта. Так вот только один способ корректно определял наличие USB-COM порта - Звероящер(15.01.2019 09:38)
- Если используется МК, а не FTDI/etc, то можно с его стороны отслеживать повисание шины и эмулировать disconnect/reconnect. Ессно в софте надо корректно обрабатывать исчезновение устройства. - LightElf(15.01.2019 08:51)
- Угу. Мы по этой причине забили на CDC и перешли на WinUSB. Он намного стабильнее работает. - =AK=(23.01.2019 01:52)
- В софтине вызывается ReadFile/WriteFile и блокируется... Ведь способа узнать, для софтины, что порта больше нет -- не предусмотрено. - fk0(14.01.2019 13:00)
- А я по сообщению WM_DEVICECHANGE с параметром DBT_DEVNODES_CHANGED посылаю CDC-девайсу команду ClearCommBreak(). Если отвечает false, то закрываю порт, считая девайс выдернутым из гнезда. На этой команде открытый порт не виснет. А если там не Ксения(109 знак., 14.01.2019 17:19)
- В чем проблема таймаут поставить на write? Другое дело, что если до повторного втыкания порт не освободить, он может и другим номером встать. И часто проблема не в перевтыкании, а в тупом подвисе шины или драйвера, или хз чего. - Andreas(14.01.2019 13:24)
- После помехи на любые команды ReadFile, WriteFile, CreateFile выдаёт ошибку. Единственный способ заставить работать - это выткнуть USB и снова воткнуть. - Ale3000(15.01.2019 04:23)