Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Прочее";
Текущий архив: 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
15-1360858297
alexdn
2013-02-14 20:11
2013.07.14
Мозг как процессор


15-1361608048
oldman
2013-02-23 12:27
2013.07.14
Кстати, с праздником, мужики!


15-1362086783
Androider
2013-03-01 01:26
2013.07.14
Хочу кодить для планшетов


2-1353028451
Abcdef123
2012-11-16 05:14
2013.07.14
как контролировать ShortCut клавиши?


1-1310536350
ruslan_as
2011-07-13 09:52
2013.07.14
Проблемы с запуском от имени





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский