Jump to content
    

Обнаружение пропадания COM-порта из системы.

1 час назад, girts сказал:

Если тот же COM при попытке его открыть == FALSE, значит есть все основания считать его уже открытым и пытатся работать дальше.
Если открылся - значит он был отвалившимся.
Другие варианты не находились.

Вы повторили мой метод из первого сообщения, только часть его забыли. Существенную часть.

Только в том сообщении, на которое вы отвечали речь шла совсем о другом.

1 час назад, girts сказал:

Некоторое веселье добавляется если был выход из программы не закрывая порт - замечено, что некоторые терминалки в этом грешат.

Это невозможно. Все ресурсы, занятые приложением, система сама освободит. Другое дело - если приложение зависло. Но тогда и выхода не было.

1 час назад, girts сказал:

Если номер порта под FTDI выставился системой за 64 - при обращении к девайсу может вылетать всё синим экраном. 
На разных компах всё чуть по разному, но факт остаётся фактом - лучше за 16 не лезть.   

У меня почти все COM-порты - "за 16". Максимальный сейчас =COM83. Проблем на наблюдаю. Там паче - синих экранов.

3 часа назад, _pv сказал:

ну у меня сейчас сом1 - железный и сом6 - usb->serial из какого-то китайского ch552, обои два вроде обнаруживает

Крайне малая и нерепрезентативная выборка.

Share this post


Link to post
Share on other sites

1 hour ago, jcxz said:

У меня почти все COM-порты - "за 16". Максимальный сейчас =COM83. Проблем на наблюдаю. Там паче - синих экранов.

В какие то моменты добирались и за сотню. Комп начало плющить не по детски.
Если добрался до 83 номера - вопрос - а что за цель? Неужели все 83 задействованы?
Обычно это случается, когда программируешь новые устройства. Однако у того же FTDI есть утилитка, которая не позволяет ихним девайсам с другим серийником регистрироватся под новый COM и загаживать систему лишним хламом. 

Share this post


Link to post
Share on other sites

я время от времени запускаю диспетчер устройств в отображением отключенных и удаляю эти порты

Share this post


Link to post
Share on other sites

4 hours ago, mitya1698 said:

я время от времени запускаю диспетчер устройств в отображением отключенных и удаляю эти порты

https://ftdichip.com/utilities/

искать под заголовком "Ignore Hardware Serial Number Registry Editor Utility".
Что оно там правит - не вникал. Но нужная шняга.

Share this post


Link to post
Share on other sites

14 часов назад, mitya1698 сказал:

я время от времени запускаю диспетчер устройств в отображением отключенных и удаляю эти порты

Зачем?  :umnik2:  

15 часов назад, girts сказал:

В какие то моменты добирались и за сотню. Комп начало плющить не по детски.

Так ищите что у вас за проблема с компом. COM-порты то тут при чём?

15 часов назад, girts сказал:

Если добрался до 83 номера - вопрос - а что за цель? Неужели все 83 задействованы?

Нет конечно. Обычно присутствующих в данный момент в системе COM-портов у меня = 20...30. Может в какие-то моменты и больше бывает.

Кроме USB есть и другие типы виртуальных портов: Bluetooth-портов почти десяток; почти десяток виртуальных портов TCP-COM; etc. Для каждого такого типа я выделяю свой диапазон портов. И потом помню, что например порты 50...59 - это виртуальные порты, созданные "Tibbo VSP Manager". Другой диапазон COM - bluetooth-порты (у меня множество отлаживаемых или отлаживавшихся Bluetooth-устройств или Bluetooth-переходников, для создания COM-порта для удалённой отладки). Порты 70...79 - для переходников на CP210x. Для FTDI - свой диапазон. И так далее. Не все эти диапазоны полностью заняты, но очень удобно, когда по номеру порта понимаешь - что за тип порта. Также удобно если выключаешь устройство, включаешь другое, а потом возвращаешь предыдущее - и номер COM-порта  старого устройства не меняется. Не надо каждый раз лазить в настройки программ и менять номер порта.

15 часов назад, girts сказал:

Обычно это случается, когда программируешь новые устройства. Однако у того же FTDI есть утилитка, которая не позволяет ихним девайсам с другим серийником регистрироватся под новый COM и загаживать систему лишним хламом. 

Зачем так делать?? Вот уж реально - если нет проблемы, то нужно её создать! Это про вас. :biggrin:

Вы что - при каждом перетыкании устройств постоянно лазите в настройки программ и правите номера COM-портов???

Наоборот - удобно, когда за каждым отдельным USB-UART устройством закрепляется свой номер порта. А с вашим методом будет куча COM-портов, с постоянно меняющимися номерами, в которой фиг разберёшься и запомнишь - где какой девайс.

Share this post


Link to post
Share on other sites

5 hours ago, jcxz said:

когда за каждым отдельным USB-UART устройством закрепляется свой номер порта. А с вашим методом будет куча COM-портов, с постоянно меняющимися номерами, в которой фиг разберёшься и запомнишь - где какой девайс.

А у вас что там - какой то монстр лаптоп с сотней USB портов привязанных в виде хабов скотчем? 

Как раз удобно. Воткнул девайс в USB, и он всегда на COM4 висит. Или всегда на COM5 если в другой слот. И не создаёт проблемы.
Если читали выше - один раз в регистрах прописал, и никуда лазить не надо и нечего там стирать.

И не надо искать что было, на чём стояло и не отвалилось ли. 

Вы явно не занимались массовым производством и тестированием железяк... Просто у каждого своё.  

5 hours ago, jcxz said:

Так ищите что у вас за проблема с компом. COM-порты то тут при чём?

Проблема не с компами. Проблема с ихними (FTDI) драйверами на самом деле. Проблема общеизвестная, естественно не чувствуется, если у вас там всего лишь единичное ардуино. Хотя с ними тоже проблема, ибо китайские клоны FT232 не поддерживают драйвера новее какой то определенной версии.

Share this post


Link to post
Share on other sites

1 час назад, girts сказал:

Как раз удобно. Воткнул девайс в USB, и он всегда на COM4 висит. Или всегда на COM5 если в другой слот. И не создаёт проблемы.

И к чему это написано? Вы читали что я писал?

1 час назад, girts сказал:

Проблема общеизвестная, естественно не чувствуется, если у вас там всего лишь единичное ардуино.

Вы это кому пишете? :wacko2:  Я вроде уже несколько раз написал, что у меня много USB-UART. И в том числе - много FTDI-шных бывает воткнуто одновременно.

И проблем никогда не имел, хоть работаю с этой кучей COM-портов почти каждый день. И не надо выдумывать про абдурину - мне ваши абдурины до лампочки. Нравится вам абдурина - пользуйтесь. Только не надо тут её рекламировать.

Share this post


Link to post
Share on other sites

5 hours ago, jcxz said:

Вы это кому пишете? :wacko2:  Я вроде уже несколько раз написал, что у меня много USB-UART. И в том числе - много FTDI-шных бывает воткнуто одновременно.

И проблем никогда не имел, хоть работаю с этой кучей COM-портов почти каждый день. И не надо выдумывать про абдурину - мне ваши абдурины до лампочки. Нравится вам абдурина - пользуйтесь. Только не надо тут её рекламировать.

Да все тут вкурсе, целых 83. И некоторые отваливаются. 
"ленту с липким слоем для детского творчества" примените покачественнее, обмотайте всё ещё несколько раз и не будут отваливатся!
А если нет у вас проблем, то их и нет, что вопить то?

Вы вообще читали что тут писали?
А если не читали и ответ вам зараннее известен и на самом деле вообще не нужен, то зачем писать то?

Share this post


Link to post
Share on other sites

В 06.05.2025 в 19:08, girts сказал:

но факт остаётся фактом - лучше за 16 не лезть. 

у меня СОМ за 50 давно ушел... ежедневный рабочий FTDI сидит на COM43 - ни каких проблем.

В 07.05.2025 в 18:17, girts сказал:

Вы явно не занимались массовым производством и тестированием железяк... Просто у каждого своё.

я явно не занимаюсь и не занимался массовым производством и тестированием железяк. я явно занимаюсь разработкой железяк и ПО к ним для массового тестирования и производства. С проблемой описанной jcxz часто сталкиваюсь. СОМ порт может отвалится даже не физически, например если вы отлаживаете ПО на железке, в какой-то момент встали на брейке, и/или сделали рестарт, или reduild/debug.... 

В 04.05.2025 в 17:36, jcxz сказал:

Вопрос: Как в данном случае приложению быстро и достоверно обнаружить факт пропадания COM-порта из системы?

а RegisterDeviceNotification + WM_DEVICECHANGE не спасут отца русской демократии не пробовали? Отслеживать события WinAPI по устройствам.  Зарегистрировать уведомления о событиях устройств через RegisterDeviceNotification с фильтром GUID_DEVINTERFACE_COMPORT. Отлавливать WM_DEVICECHANGE (с DBT_DEVICEREMOVECOMPLETE и DBT_DEVICEARRIVAL). Мгновенно и надежно. Минус: нужно окно или мессадж-памп. Для не GUI — можно создать скрытое окно (message-only window, HWND_MESSAGE) для получения WM_DEVICECHANGE.

 

Share this post


Link to post
Share on other sites

9 hours ago, juvf said:

СОМ порт может отвалится даже не физически, например если вы отлаживаете ПО на железке, в какой-то момент встали на брейке, и/или сделали рестарт, или reduild/debug....

Если у вас там FTDI запитанный от USB - оно же для системы не отвалится при таком раскладе.... не?

9 hours ago, juvf said:

ежедневный рабочий FTDI сидит на COM43 - ни каких проблем.

Один.
Рабочий.
Одна и та же самая FTDI с тем же самым уникальным номером.
На компе, пользователь которого явно знает что по чём.

Share this post


Link to post
Share on other sites

В 11.06.2025 в 18:18, girts сказал:

Если у вас там FTDI запитанный от USB - оно же для системы не отвалится при таком раскладе.... не?

Сама железка - это и есть VCP. Встала железка - встал VCP.

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...