Форум: "Прочее";
Текущий архив: 2013.07.14;
Скачать: [xml.tar.bz2];
ВнизОбнаружить устройство на COM порту. Найти похожие ветки
← →
Дмитрий С © (2013-02-24 23:22) [0]Конструктивно:
Есть компьютер, у него 8 COM портов. Необходимо каким-то образом определить тот порт к которому подключено некое устройство.
Устройство имеет только 2 выхода (GND и TX) и передает данные только при действиях пользователя.
Вот такая задачка.
Из возможностей, только специальный шнур, позволяющий обнаружить устройство. По большей части вопрос в том, каким самым дешевым и простым способом собрать такой "шнур", который можно достоверно обнаружить?
← →
Конструктивно (2013-02-24 23:26) [1]Если действий пользователя нет, соответственно отсутствует передача данных, то устройство на СОМ-порте достоверно обнаружить нельзя.
PS: Юзайте USB.
← →
Медвежонок Пятачок © (2013-02-24 23:43) [2]и передает данные только при действиях пользователя.
При каких действиях пользователя?
Когда юзер поёт или пляшет?
Или нажимает что-то на устройстве?
Или что-то посылает в устройство?
← →
Дмитрий С © (2013-02-24 23:50) [3]
> При каких действиях пользователя?
>
> Когда юзер поёт или пляшет?
> Или нажимает что-то на устройстве?
> Или что-то посылает в устройство?
Это не важно. Во время обнаружения точно действий не будет и устройство ничего посылать не будет.
> Если действий пользователя нет, соответственно отсутствует
> передача данных, то устройство на СОМ-порте достоверно обнаружить
> нельзя.
>
> PS: Юзайте USB.
а вот надо. Можно конечно TX с RX закоротить в шнуре, а потом обнаруживать наличием эха. Это пока один из вариантов. Было бы неплохо еще уметь управлять этим поведением, например, с помощью DTR.
← →
Inovet © (2013-02-24 23:57) [4]> [3] Дмитрий С © (24.02.13 23:50)
> Можно конечно TX с RX закоротить в шнуре
Нельзя, один из них уже подключен с устройству.
← →
Медвежонок Пятачок © (2013-02-24 23:57) [5]Это не важно.
Ну зашибись неважно.
Допустим девайс работает только на передачу, и начинает ее только если в его встроенной видеокамере появляется лицо.
не важно.
Тогда я тебе в свою очередь скажу, что неважно на каком порту сидит девайс.
← →
Медвежонок Пятачок © (2013-02-25 00:00) [6]Во время обнаружения точно действий не будет
От характера действий пользователя, юноша, как раз и зависит то, сможешь ли ты во время обнаружения эмулировать активность юзера для устройства. (а значит и обмануть его)
неважно.....
← →
Дмитрий С © (2013-02-25 00:12) [7]
> Медвежонок Пятачок ©
Вопрос читал? Во-время обнаружения устройство не передает ничего.
← →
Медвежонок Пятачок © (2013-02-25 00:14) [8]Дурик ты.
Зато устройство передает данные во время "действий пользователя".
← →
Медвежонок Пятачок © (2013-02-25 00:16) [9]И твоя задача - заставить устройство думать, что юзер совершает эти действия. После чего ловить данные на всех доступных портах.
← →
Плохиш © (2013-02-25 00:16) [10]В программу надо добавить форму настроек, в которой указать используемый порт. В общем-то так добротные программы и делают.
← →
Медвежонок Пятачок © (2013-02-25 00:18) [11]В общем-то так добротные программы и делают.
нахрена?
вот была у меня поддержка сканера штрих кода.
заставлять бабушек отвечать на вопрос "А к какому номеру компорта у вас подключена железяка?". На который они все равно не смогут ответить.
Но сканер отвечал на запросы. Например версию прошивки выдавал.
И я его элементарно сам находил без всяких настроек в программе.
← →
Дмитрий С © (2013-02-25 00:24) [12]
> В программу надо добавить форму настроек, в которой указать
> используемый порт. В общем-то так добротные программы и
> делают.
см [11]. Подобный выбор нужно максимально исключить.
> И твоя задача - заставить устройство думать, что юзер совершает
> эти действия.
Устройство - дешевый rfid-сканер. У него даже контакта RX нет. И как ты представляешь себе "заставить устройство думать"? Механический карту подносить?
Хотя если запитывать спрятанную внутри карту от DTR - вариант, но вот таких карт я не нашел.
← →
Медвежонок Пятачок © (2013-02-25 00:26) [13]И как ты представляешь себе "заставить устройство думать"?
Я никак не представляю и не собираюсь.
Поскольку "неважно вообще" на что там реагирует устройство. На какие-то там действия пользователя.
Твои проблемы.
← →
Inovet © (2013-02-25 00:50) [14]> [12] Дмитрий С © (25.02.13 00:24)
> Механический карту подносить?
А что ещё остаётся. В прогамме кнопка - "Определить порт сканера". Нажали, Сообщение "Поднесите карту к сканеру", "Порт не определён за 1 минуту", "Определение порта прервано пользователем", "Спасибо. Порт определён. Для начала телепортации пристегните ремни.", Счастливого пути!"
← →
Дмитрий С © (2013-02-25 01:05) [15]
> А что ещё остаётся. В прогамме кнопка - "Определить порт
> сканера". Нажали, Сообщение "Поднесите карту к сканеру",
> "Порт не определён за 1 минуту", "Определение порта прервано
> пользователем", "Спасибо. Порт определён. Для начала телепортации
> пристегните ремни.", Счастливого пути!"
Увы для некоторых пользователей это слишком сложно.
← →
Германн © (2013-02-25 01:43) [16]
> см [11]. Подобный выбор нужно максимально исключить.
>
Сей выбор уже давно практически исключен производителями материнских плат. В которых если есть разъём СОМ-порта, то это СОМ1.
Имхо надуманная проблема.
P.S.
Но отойдя от конкретного вопроса, я бы (если бы мне уж очень приспичило бы) производил поиск устройства подключенного к СОМ-порту запаяв в разъёме кабеля (том самом разъёме, который подключается к компьютеру) ножки RTS и DSR. А дальше перебор портов с использованием связки.
SetCommMask + WaitCommEvent + EscapeCommFunction
← →
tesseract © (2013-02-25 12:02) [17]
> Но отойдя от конкретного вопроса, я бы (если бы мне уж очень
> приспичило бы) производил поиск устройства подключенного
> к СОМ-порту запаяв в разъёме кабеля (том самом разъёме,
> который подключается к компьютеру) ножки RTS и DSR. А дальше
> перебор портов с использованием связки.
> SetCommMask + WaitCommEvent + EscapeCommFunction
Вообще-то положено DTR-DSR и RTS-CTS. Но В данном случае хоть на ring можно вешать.
← →
Плохиш © (2013-02-25 12:22) [18]
> Медвежонок Пятачок © (25.02.13 00:18) [11]
Бабушки с 8 COM портами? Ню, ню...
← →
Медвежонок Пятачок © (2013-02-25 13:13) [19]Что ню-ню?
← →
Медвежонок Пятачок © (2013-02-25 13:16) [20]Давай посчитаем бабушек:
~ 15 филиалов.
У каждого несколько обособленных подразделений.
В каждом сильно больше одной бабушки.
Что там за компы, сколько у них com-портов и куда конкретно конкретно сегодня воткнули сканер - знает один онотоле вассерман.
← →
Inovet © (2013-02-25 13:31) [21]> [20] Медвежонок Пятачок © (25.02.13 13:16)
Если бабушки в состоянии втыкать сканеры в 8 портов, видимр, на неком сервере, то:
1. Они в состоянии нажать кнопку в программе и поднести к нужному сканеру карточку,
2. Без 1 всё равно не получится определить, какой сканер куда подключен.
Если у каждой бабушки 8 портов и используется всегда только один из них, можно читать со всех, пока на одном не появится ответ. После этого с ним и работать. Это без поднесения карточки. Без поиска всегда читать со всех. Но нафига по 8 портов на каждую бабушку? Ладно, может там ещё много чего подключено.
← →
Inovet © (2013-02-25 13:33) [22]> [21] Inovet © (25.02.13 13:31)
> может там ещё много чего подключено.
Хоть это и противоречит условию сабжа => тоже невозможно реализовать перепайками кабелей, которые, к тому же, могут быть подключены к этим другим устройствам.
← →
Медвежонок Пятачок © (2013-02-25 13:35) [23]Знаешь, когда закупают компы, то обычно не думают над тем, испугается ли бабушка того количества портов, что там есть. И зачем ей столько.
Это объективная реальность, данная тебе в ощущениях.
Сканер может быть воткнут не в ком1.
Я это учел, но не стал никому парить моск окном настроек сканера.
В результате уже семь лет мне никто ежедневно не парит моск по телефону вопросами "а что такое номер компорта?", "а что нам сюда ввести?"
← →
Inovet © (2013-02-25 13:40) [24]> [23] Медвежонок Пятачок © (25.02.13 13:35)
> Я это учел, но не стал никому парить моск окном настроек сканера.
> [21] Inovet © (25.02.13 13:31)
> Если у каждой бабушки 8 портов и используется всегда только
> один из них, можно читать со всех, пока на одном не появится
> ответ.
← →
Медвежонок Пятачок © (2013-02-25 13:52) [25]Я тебе даже больше скажу.
Видел как организована работа со сканером у некоторых мудрых гудвинов.
Сначала:
воткни сканер, запусти программу, зайди в настройки, поставь шпентик "у меня есть сканер" и скажи на каком порту он висит.
Далее:
Сидит тётя в программе. Где-то на пятом уровне вложенностей окон. У нее там датасет, который отфильтрован, отпозиционирован и т.д. (все это требует пользовательского ввода) - в общем делает свою основную работу.
Прибегает кто-то со штрих-кодом, и говорит, вот сфотографируй срочно.
Бедная тётя закрывает всю иерархию окон, и выходит в главное меню. Потому что мудрый гудвин зачем-то сделал отдельное окно для сканирования и поместил пункт меню на него в главном меню.
Финал: окно открыто, документ попал в базу, тётя ищет где она была до этого и вспоминает что там у нее было.
Зачем? За такое надо убивать на месте.
Прога запустилась - нитка неспеша нашла сканер. Запузырила иконку в трей, чтобы тётя видела, что сканер у нее есть.
Принесли документ - тётя где бы она ни была в это время в программе стреляет сканером по штрихкоду. Опа. Появилось модальное окно с содержимым штрихкода. Жмем кнопку - отправить туда-то.
Всё!!!
Окно закрылось, и счастливая тётя продолжает с того же места на котором прервалась.
← →
Дмитрий С © (2013-02-25 13:58) [26]
> Если у каждой бабушки 8 портов и используется всегда только
> один из них, можно читать со всех, пока на одном не появится
> ответ.
А ты не подумал, что если на компе 8 ком-портов, то это всяко не спроста и туда кроме сканера будут подключаться другие устройства.
← →
Inovet © (2013-02-25 14:07) [27]> [26] Дмитрий С © (25.02.13 13:58)
> А ты не подумал, что если на компе 8 ком-портов, то это
> всяко не спроста и туда кроме сканера будут подключаться
> другие устройства.
Подумал. Ждём ответ сканера. Так лучше? Или сканер невозможно идентифицировать по ответу? Ну тупой он и остальные тоже тупые, никто себя не называет и все выдают одинаковую информацию. Тогда я не знаю как. Перепайки проводов - зло.
← →
Inovet © (2013-02-25 14:14) [28]> [25] Медвежонок Пятачок © (25.02.13 13:52)
> Всё!!!
> Окно закрылось, и счастливая тётя продолжает с того же места
> на котором прервалась.
Хвастаешься? Ну молодец! Правильно всё сделал, удобно. Так ответь же автору - как ты находишь сканер, к которому не подносят штрих-код и которому нельзя задать вопрос.
← →
Медвежонок Пятачок © (2013-02-25 14:21) [29]у него другой сканер. ему нужно незаметно свиснуть в супермаркете бутылку виски, содрать с нее метку и подносить к сканеру.
Либо вообще не париться с поиском сканера, а тупо читать все порты что есть.
До первого пика. Затем гасить все нитки кроме ожившей.
← →
Inovet © (2013-02-25 14:30) [30]> [29] Медвежонок Пятачок © (25.02.13 14:21)
> Либо вообще не париться с поиском сканера, а тупо читать
> все порты что есть.
> До первого пика. Затем гасить все нитки кроме ожившей.
Да, я так и предложил. И то, если сканер можно отличить по ответу от других девайсов.
← →
Вариант (2013-02-25 14:48) [31]
> Дмитрий С © (25.02.13 13:58) [26]
А ты не подумал, рассказать о том - какие это будут устройства, как они подключаются, какие сигналы будут задействованы, какой протокол поддерживается различными устройствами?
Inovet и Медвежонок предложили рабочий способ, не универсальный для всех случаях жизни, но вполне рабочий. Чего ругаются...... ловят ньюансы, которые не предусмотришь во всех случаях.
Например к порту номер 2 подключено какое-то устройство, которое работает не с твоей программой.... В этом случае опрос портов, а не явное их задание может обернуться быть злом.....
← →
Inovet © (2013-02-25 15:05) [32]> [31] Вариант (25.02.13 14:48)
> Чего ругаются
Да нет же.
← →
Вариант (2013-02-25 15:08) [33]
> Inovet © (25.02.13 15:05) [32]
Ладно, спорят:-)
← →
Дмитрий С © (2013-02-25 16:15) [34]вобщем остановился на варианте DTR-DSR, либо на
DTR -> диод -> реле. Реле переключает RX между TX порта компа и TX устройства.
← →
Inovet © (2013-02-25 17:01) [35]> [34] Дмитрий С © (25.02.13 16:15)
Ты выбрал самый плохой способ. Можешь огрести потом от этих переделок.
← →
tesseract © (2013-02-25 21:02) [36]
> Ты выбрал самый плохой способ. Можешь огрести потом от этих
> переделок.
>
>
Ничего он не огребёт. Самый эффективный и документируемый на уровне FAQ вариант. Не работал - не лезь.
← →
Pavia © (2013-02-25 21:12) [37]Как по мне единственно правильный способ описан здесь.
http://download.microsoft.com/download/1/6/1/161ba512-40e2-4cc9-843a-923143f3456c/pnpcom.rtf
← →
Inovet © (2013-02-25 21:48) [38]> [36] tesseract © (25.02.13 21:02)
> Ничего он не огребёт. Самый эффективный и документируемый
> на уровне FAQ вариант. Не работал - не лезь.
Бабушка этим кабелем подключит другое устройство. Не надо изобретать всякое дерьмо на коленках, есть унифицированный кабель, надо им пользоваться И где гарантия, что другой умелец не перепаяет другой кабель.
← →
Inovet © (2013-02-25 21:50) [39]> [38] Inovet © (25.02.13 21:48)
И это даже не вспоминая, что там за сигналы на этих контактах.
← →
Дмитрий С © (2013-02-26 00:41) [40]
> Бабушка этим кабелем подключит другое устройство. Не надо
> изобретать всякое дерьмо на коленках, есть унифицированный
> кабель, надо им пользоваться И где гарантия, что другой
> умелец не перепаяет другой кабель.
Это исключено.
> Pavia © (25.02.13 21:12) [37]
> Как по мне единственно правильный способ описан здесь.
Что это? С ходу не въехал.
На первый взгляд не подойдет, т.к. устройство уже есть и подобное не поддерживает.
Страницы: 1 2 вся ветка
Форум: "Прочее";
Текущий архив: 2013.07.14;
Скачать: [xml.tar.bz2];
Память: 0.57 MB
Время: 0.003 c