|
|
|
Нужно-ли таскать драйверы при переносе программы?11.10.2015, 16:09. Показов 1972. Ответов 14
Метки нет (Все метки)
Допустим у меня есть устройство на Arduino Uno и моя десктоп-программа написанная на С++ для взаимодействия с устройством через Serial(COM-порт) по USB .
Правильно ли я понимаю что для работы на другом компе где не установлена среда разработки(IDE) Arduino, а следовательно и соответствующие дрова, устройство и программа не будет работать? Т.е нужно дополнительно таскать и ставить дрова? Если да то где именно нужно искать дрова, какой набор файлов нужно таскать, и есть ли стандартные средства для установки дров? И есть ли способ что бы программа сама отлавливала и узнавала номер COM-порта и подключалось к нему?
0
|
|
| 11.10.2015, 16:09 | |
|
Ответы с готовыми решениями:
14
Ошибка при подключении к SQL базе данных при переносе программы Ошибка при переносе программы на другой ПК Ошибка при переносе программы на другой компьютер |
|
Почетный модератор
|
|
| 11.10.2015, 16:18 | |
|
если ком аппаратный - видимо дров не надо. в программе предусмотреть перебор доступных портов.
если это эмуляция ком через ЮСБ - и какой то переходник - то скорее всего надо ставить драйвер для PL2303 (основная масса на нем построена) драйвер доступен для скачивания абсолютно свободно
1
|
|
|
|
|||
| 11.10.2015, 16:25 [ТС] | |||
|
А с папок Arduino IDE взять можно?
0
|
|||
|
|
||||||
| 11.10.2015, 18:11 | ||||||
Так что да, для конкретно вашего устройства нужно таскать с собой драйвер или завести оффсайт техподдержки и прикладывать просто ссылку для их скачивания. В виде наклейки на плате, так поступают многие производители, даже промышленные.
Поскольку в случае буратин речь идет о виртуальном последовательном порту поверх USB, то такое подключение имеет в списке устройств уникальное имя (в случае FTDI его можно даже изменить на какое угодно). Тогда делая энумерацию устройств можно идентифицировать по имени, Serial и VID/PID. Тут нужно понимать, что если искать устройство просто по имени, то таких устройств может быть подключено на USB шину несколько и тогда очень важна уникальность frendly-name. CH340 например ее не дает. Но, если такой конвертор подключен один и видится как USB Serial A например и т.п., то его вполне можно отличить от других портов с другим именем и определить номер его COM-порта без использования VID/PID. Найти программно номер назначенного ОС данному девайсу по имени и наоборот можно несколькими способами: 1- реестр (может быть заблокирован политиками безопасности, иметь поврежденную ветку) 2- WMI (служба может быть элементарно отключена у пользователя) 3- SetupAPI. Последний реализован в моей либе 'GetNumCom.DLL':
p.s.: касательно драйвера, его тоже можно установить средствами вашей программы, которая будет идти к вашему устройству на базе, пусть буратины.
2
|
||||||
|
|
||||
| 11.10.2015, 18:20 [ТС] | ||||
|
Добавлено через 2 минуты Добавлено через 2 минуты
0
|
||||
|
|
|||||||||
| 11.10.2015, 18:36 | |||||||||
Любое устройство на шине USB имеет ряд характеристик-полей, эти поля и включают Name/Serial/VID/PID. Если нам известно уникальное имя устройства, то имея список устройств на шине сопоставить этому имени номер порта как два пальца. Исходники devcon, которая основана на SetupAPI, кстати, открыты и доступны у мелкософта.
Кликните здесь для просмотра всего текста
Но как уже сказал, реестр штука ненадежная
2
|
|||||||||
|
|
||||||
| 11.10.2015, 18:46 [ТС] | ||||||
|
Я уже не говорю о неэффективном цикле и таймаутах. Добавлено через 2 минуты
0
|
||||||
|
|
|||||
| 11.10.2015, 18:55 | |||||
![]() Это не кривое решение, это пожалуй единственное из самых простых и дубовых (не в смысле тупых, глупых, а в смысле железно непробиваемых) решений, обладающее гарантированностью. К тому же эти посылки позволят и обнаружить отвалившееся устройство.
Однако 1- Если вдруг мы уже нашли устройство, цикл можно оборвать, а с высокой вероятностью виртуальный порт будет в первой десятке, если пользователь не загадил уже виртуальными драйверами систему. 2- перебирать можно методом наименьших квадратов. 3- цикл ожидания уникальной посылки можно сократить - подняв скорость выдачи с буратины, скажем до 115200.
1
|
|||||
|
|
||
| 25.07.2016, 14:30 [ТС] | ||
|
Короче взял я исходники Qt QSerialPortInfo и выдрал фрагментарно код получения информации о портах.
Но для нескольких ардуин с CH340 она одна и та же:
Для другой дуины: USB\VID_2341&PID_0043&REV_0001 USB\VID_2341&PID_0043 Нет серийного номера по которому можно было бы различать. Т.е. можно найти ардуину по инф. CH340 в портах, но если их подключено несколько- не отличить. Не по теме: Если кому-то интересно могу выложить свой код на С++ класса для определения инфы.
0
|
||
|
33 / 28 / 8
Регистрация: 17.02.2014
Сообщений: 122
|
||
| 10.08.2016, 13:29 | ||
|
0
|
||
|
|
|
| 10.08.2016, 14:38 [ТС] | |
|
Ну все порты перебирать глупо и не правильно все равно.
Понятно что без проверки не обойтись но можно проверять вновь обнаруженное устройство и к нему пытаться подключится, если нет то перебирать другие (подключенные, а не все подряд 1 до 128)
0
|
|
|
Тутошний я
|
||||
| 12.08.2016, 10:00 | ||||
|
0
|
||||
|
|
|||||||||||||
| 12.08.2016, 13:49 [ТС] | |||||||||||||
|
Мне предлагали стучаться в любое устройство и читать с него байты а это не хорошо, устройство может быть вообще левое. Добавлено через 6 минут SerialPortInfo.h
SerialPortInfo.сpp
Это фрагмент моей велосипедной либы: tstring это псевдоним std::wstring/std::string trim_copy_if() самопальный аналог boost.
0
|
|||||||||||||
|
|
|
| 01.10.2016, 20:27 [ТС] | |
|
0
|
|
| 01.10.2016, 20:27 | |
|
Помогаю со студенческими работами здесь
15
EBDEERROR при переносе программы на другой компьютер
Ошибки при переносе программы из VS 2015 в Qt creator Не открывается программа при переносе файла на ярлык программы Ошибки при переносе программы с одного компьютера на другой Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
||||
|
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Рецензия / Мнение
Это мой обзор планшета X220 с точки зрения школьника.
Недавно я решила попытаться уменьшить свой. . .
|
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта
Симптом:
После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
|
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
|
Новый ноутбук
volvo 07.12.2025
Всем привет.
По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне:
Ryzen 5 7533HS
64 Gb DDR5
1Tb NVMe
16" Full HD Display
Win11 Pro
|
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
|
|
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
|
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов
На странице:
https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/
нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
|
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов.
. . .
|
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
|
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
|