Вверх ↑
Ответов: 197
Рейтинг: 2
#1: 2024-11-18 20:17:07 ЛС | профиль | цитата
Леонид писал(а):
zhorik5, чтобы опознать устройство, оно должно быть чуть сложнее, чем реле. При запуске программы можно опросить все найденные порты заранее установленным кодом, например "31415926", а устройство должно ответить, например "27182818284590"

Вариант, но загвоздка в том что это просто переходники usb comm (CH340) просто один нюхает сигнал а другой(реле- но тот же ch340) а данная китайчатина даже не имеет в себе встроенного еепром на который я возлагал надежды. Есть и другие переходники типа PL2003 и cp2102.
PL2003 в вин10,11 имеет проблемы с драйверами(я в данный момент использую win7). CP2102 вроде бы подходит под все параметры не имея в общем то проблем (даже есть встроеный еепром), но имеет ряд неудобств(неудобно паять контакты очень маленькие(тремор и зрение подводит) и низкий логический уровень)
и как его(CP2102) опросить на тот же самый серийный номер или vid\pid хрен его знает не догоняю, в даташите что-то не сильно ясно. Получается надо действовать через ОС эти данные как-то вытягивать из винды.
В двух словах на данных USB-COM никакого умного устройства на линии RX-TX не висит что бы могло ответить и на основе его ответа определить принадлежность.
Было бы круто если компонент EnumCOM выводил дополнительные данные об устройствах. Исключило бы кучу вот этих непонятных вопросов.

--- Добавлено в 2024-11-18 20:22:22

Gunta писал(а):

zhorik5 писал(а):
возникает вопрос как сделать в хиасме чтобы программа сама определяла нужное устройство и выбирала его в своем месте

Если тебе известно одно из: название порта, производитель, сервис, работающий с портом, VID\PID то можно без труда найти и номер порта.



Add(MainForm,2953706,98,98)
{
link(onCreate,9881560:doConsoleExec,[])
}
Add(WinExec,9881560,147,98)
{
FileName="powershell"
Param="-command (Get-WmiObject Win32_PnPEntity -Filter """Name LIKE '%com%'""" Where Name -match 'COM\d+' | Select-Object Name,Description,Manufacturer,PNPClass,Service,Present,Status,DeviceID | Sort-Object Name | Out-GridView -Title 'Список COM портов' -Wait)"
Mode=0
Point(doConsoleExec)
Point(onConsoleTerminate)
link(onConsoleTerminate,2953706:doClose,[(186,118)(186,139)(88,139)(88,125)])
}

Я уже перед сном нашел это вариант на просторах интернета думал сегодня копнуть в этом направлении подсказка хорошая спасибо, но пример не работает!
а через CMD и команду MODE выдает безполезную информацию на основе нее не возможно правильно определить требуемое устройство
карма: 0

0
Редактировалось 4 раз(а), последний 2024-11-18 20:30:28