Разрывается связь с СОМ портом
-
dadreamer
- professor
- Сообщения: 3926
- Зарегистрирован: 17 фев 2013, 16:33
- Награды: 4
- Версия LabVIEW: 2.5 — 2022
- Благодарил (а): 11 раз
- Поблагодарили: 127 раз
- Контактная информация:
Re: Разрывается связь с СОМ портом
Atom, так используйте Визу, кто ж вам запрещает. Тем более что это универсальный инструментарий для работы с различным железом из-под LV. Просто вы ж взялись переделать нынешний алгоритм поиска искомого устройства. Так что тут два пути: либо возвращать, как было, либо доводить задумку до конца. На остальные куски кода это вообще никак не должно повлиять, если речь об этом...
-
- advanced
- Сообщения: 196
- Зарегистрирован: 01 ноя 2009, 23:18
- Версия LabVIEW: 2010
- Откуда: Москва
- Контактная информация:
Re: Разрывается связь с СОМ портом
В продолжении моих измышлений:
А зачем нам каждый раз открывать/закрывать сессию (для каждого дескриптора в массиве) когда мы можем просто проанализировать массив на предмет совпадения и открыть сессию (получить resource name) только тогда, когда нашли НУЖНЫЙ нам дескриптор.
Попробую в этом ключе модернуть мою SubVI-ку.
А зачем нам каждый раз открывать/закрывать сессию (для каждого дескриптора в массиве) когда мы можем просто проанализировать массив на предмет совпадения и открыть сессию (получить resource name) только тогда, когда нашли НУЖНЫЙ нам дескриптор.
Попробую в этом ключе модернуть мою SubVI-ку.
-
- advanced
- Сообщения: 196
- Зарегистрирован: 01 ноя 2009, 23:18
- Версия LabVIEW: 2010
- Откуда: Москва
- Контактная информация:
Re: Разрывается связь с СОМ портом
Это понятно. И я не взялся его переделывать, а я хочу его сделать наиболее оптимально. Я же обещал прислушиваться к доводам "старших"dadreamer писал(а):так используйте Визу, кто ж вам запрещает. Тем более что это универсальный инструментарий для работы с различным железом из-под LV. Просто вы ж взялись переделать нынешний алгоритм поиска искомого устройства.
Вот и разбираюсь с вашей помощью как сделать этот узел правильнее. Спасибо что не бросаете это обсуждение. Вот сейчас мы уже к чему-то предварительно приплыли.
-
- advanced
- Сообщения: 196
- Зарегистрирован: 01 ноя 2009, 23:18
- Версия LabVIEW: 2010
- Откуда: Москва
- Контактная информация:
Re: Разрывается связь с СОМ портом
В моей SubVI-ке (скрин в начале темы) мне не нравится то, что я действительно лишний раз стучусь не в свою квартиру (открываю и закрываю сессию того порта который мне не нужен).
Проверил свою идею.
Да, в массиве выходящем из VISA F находится не то что мы видим в диспетчере устройств.
Но так как было РЕШЕНО работать (определятся) ПО ДЕСКРИПТОРУ (как в диспетчере) то нужно вместо VISA F сделать "что-то" аналогичное (сформировать массив), но только чтобы в массиве была инфа как в диспетчере. И вот из этого "чего-то" должны быть выходы самого массива и количества записей в нем. Естественно разговор идет только о СОМ портах (железных или виртуальных). Где-то подобный кусок на днях попадался но с лету не могу найти.
Продолжу изыскания завтра. Если ткнете буду признателен.
Проверил свою идею.
Да, в массиве выходящем из VISA F находится не то что мы видим в диспетчере устройств.
Но так как было РЕШЕНО работать (определятся) ПО ДЕСКРИПТОРУ (как в диспетчере) то нужно вместо VISA F сделать "что-то" аналогичное (сформировать массив), но только чтобы в массиве была инфа как в диспетчере. И вот из этого "чего-то" должны быть выходы самого массива и количества записей в нем. Естественно разговор идет только о СОМ портах (железных или виртуальных). Где-то подобный кусок на днях попадался но с лету не могу найти.
Продолжу изыскания завтра. Если ткнете буду признателен.
-
dadreamer
- professor
- Сообщения: 3926
- Зарегистрирован: 17 фев 2013, 16:33
- Награды: 4
- Версия LabVIEW: 2.5 — 2022
- Благодарил (а): 11 раз
- Поблагодарили: 127 раз
- Контактная информация:
Re: Разрывается связь с СОМ портом
Если все прыдыдущие софтины не подходят, то есть ещё кое что. Существует класс CEnumerateSerial для C++, использующий 9 (9, Карл!) методов для получения списка портов. Обсуждение работы класса можно почитать здесь: http://stackoverflow.com/questions/1388 ... s-in-win32 Сам класс и консольный пример лежит тут: http://www.naughter.com/enumser.html Если совсем лень париться, то можно взять эту утиль и сразу распарсить вывод в (работает, вроде, более менее быстро). По хорошему, надо переписать утиль на работу с аргументами, чтобы можно было выбрать один метод.Atom писал(а):Если ткнете буду признателен.
Или используйте вот такой , работающий через Setup API.
- Вложения
-
- List COMs.vi
- lv2009
- (58.17 КБ) 216 скачиваний
-
- leader
- Сообщения: 932
- Зарегистрирован: 17 янв 2016, 15:02
- Награды: 1
- Версия LabVIEW: 6.1,8.5,20
Re: Разрывается связь с СОМ портом
У меня не все порты находит)dadreamer писал(а):... Или используйте вот такой , работающий через Setup API.
-
dadreamer
- professor
- Сообщения: 3926
- Зарегистрирован: 17 фев 2013, 16:33
- Награды: 4
- Версия LabVIEW: 2.5 — 2022
- Благодарил (а): 11 раз
- Поблагодарили: 127 раз
- Контактная информация:
Re: Разрывается связь с СОМ портом
Blackman писал(а):У меня не все порты находит)dadreamer писал(а):... Или используйте вот такой , работающий через Setup API.
- Вложения
-
- List COMs - 2.vi
- lv2009
- (58.22 КБ) 210 скачиваний
-
dadreamer
- professor
- Сообщения: 3926
- Зарегистрирован: 17 фев 2013, 16:33
- Награды: 4
- Версия LabVIEW: 2.5 — 2022
- Благодарил (а): 11 раз
- Поблагодарили: 127 раз
- Контактная информация:
Re: Разрывается связь с СОМ портом
Blackman, что за странный порт такой... Скиньте вывод софтины EnumSer.exe - разберёмся.
-
dadreamer
- professor
- Сообщения: 3926
- Зарегистрирован: 17 фев 2013, 16:33
- Награды: 4
- Версия LabVIEW: 2.5 — 2022
- Благодарил (а): 11 раз
- Поблагодарили: 127 раз
- Контактная информация:
Re: Разрывается связь с СОМ портом
Blackman, так это не COM-порт, а модем! Потому и не определяет. Нужно указать другой GUID.
Да и до кучи - COM3 физически отсутствует в системе (нету его в списке портов), хотя к нему идёт привязка от модема. По моему методу перечисляются только существующие устройства (см. флаги GetClassDevs).
Да и до кучи - COM3 физически отсутствует в системе (нету его в списке портов), хотя к нему идёт привязка от модема. По моему методу перечисляются только существующие устройства (см. флаги GetClassDevs).
- Вложения
-
- List COMs (Modems).vi
- lv2009
- (58.21 КБ) 235 скачиваний
-
- leader
- Сообщения: 932
- Зарегистрирован: 17 янв 2016, 15:02
- Награды: 1
- Версия LabVIEW: 6.1,8.5,20
Re: Разрывается связь с СОМ портом
Во вкладке указан COM3. На вкладке "Дополнительные параметры связи" стандартные настройки порта. MAX его определяет нормально. VISA c ним работает (class serial). Понятно, что порт виртуальной, но в этом и заключается его фишка. Он работает как физический порт с Loopback.)
Последний раз редактировалось Blackman 28 дек 2016, 23:15, всего редактировалось 1 раз.
-
dadreamer
- professor
- Сообщения: 3926
- Зарегистрирован: 17 фев 2013, 16:33
- Награды: 4
- Версия LabVIEW: 2.5 — 2022
- Благодарил (а): 11 раз
- Поблагодарили: 127 раз
- Контактная информация:
Re: Разрывается связь с СОМ портом
Blackman, однако в диспетчере его нет как класса. Это не просто виртуальный порт, а порт-призрак. Его можно перечислить при желании. Но к тематике это имеет довольно посредственное отношение.
-
- leader
- Сообщения: 932
- Зарегистрирован: 17 янв 2016, 15:02
- Награды: 1
- Версия LabVIEW: 6.1,8.5,20
Re: Разрывается связь с СОМ портом
VISA это делает без всяких условий. Исходная тема уже давно трансформировалась в тему о способах (технике, алгоритме, стиле ...) программного поиска требуемых ресурсов, а какой он - физический, виртуальный или "призрак" уже второе дело.dadreamer писал(а):...Его можно перечислить при желании. Но к тематике это имеет довольно посредственное отношение.
-
- advanced
- Сообщения: 196
- Зарегистрирован: 01 ноя 2009, 23:18
- Версия LabVIEW: 2010
- Откуда: Москва
- Контактная информация:
Re: Разрывается связь с СОМ портом
Прошу прощение за отсутствие. Пытался на протяжении ШЕСТИ часов попасть на форум. При входе пишет что залогинился нормально и сразу выкидывает. Второй день уже так. Прям беда-огорчения.
А если в диспетчере во вкладке "Вид" поставить галку на "Показать скрытые устройства" - он где нибудь покажется? Может даже не обязательно в разделе портов.dadreamer писал(а):Blackman, однако в диспетчере его нет как класса.