|
Драйвер виртуальных СОМ портов для win, СОМ-Ethernet |
|
|
2 страниц
1 2 >
|
 |
Ответов
(1 - 25)
|
Sep 18 2016, 09:05
|
Гуру
     
Группа: Свой
Сообщений: 2 360
Регистрация: 6-03-06
Из: Кишинев
Пользователь №: 15 025

|
Непонятно что Вы понимаете под драйвером и где Вам его надо. Нарисуйте картинку, что к чему через что подключить хотите и где там Ваш драйвер хотите расположить.
В PC "драйвер" - это просто нечто, отправляющее(принимающее) байты в указанный IP в указанный порт. Я писал под Билдером, но это можно на чем угодно сделать, задача стандартная. в устройстве-аналогично, но можно и готовое использовать, с нужным интерфейсом (например, GSM модем с RS-485) У меня есть системы, которые так Моддбас-RTU гоняют через Интернет.
Upd: в Интернете есть кучка готовых программ (гуглите " Virtual Serial Port"), как бы обеспечивающих виртуальный COM-порт. Есть и платные, и бесплатные. Я потратил кучу времени чтобы понять кто из них работает, кто нет, и какие особенности. А потом махнул рукой и за половину этого потраченного на разборки времени написал свое, которое понятно как работает и может работать именно так как мне нужно.
|
|
|
|
|
Sep 18 2016, 09:57
|
Частый гость
 
Группа: Свой
Сообщений: 185
Регистрация: 14-02-06
Из: Кемерово
Пользователь №: 14 293

|
Есть что-то подобное http://com0com.sourceforge.net/, com2tcp.
|
|
|
|
|
Sep 18 2016, 10:07
|

Ally
     
Группа: Модераторы
Сообщений: 6 232
Регистрация: 19-01-05
Пользователь №: 2 050

|
Цитата(Ruslan1 @ Sep 18 2016, 12:05)  Я писал под Билдером, но это можно на чем угодно сделать, задача стандартная. А вот гугле говорит, что под билдером драйвер Windows написать невозможно. Кому верить ? Сам искал исходники такого драйвера. Вменяемых не нашел. Цитата(vovanse @ Sep 18 2016, 12:57)  Есть что-то подобное http://com0com.sourceforge.net/, com2tcp. Это древний фейк, сделанный той же Eltima Исходников нет.
|
|
|
|
|
Sep 18 2016, 11:54
|
Знающий
   
Группа: Свой
Сообщений: 875
Регистрация: 28-10-05
Пользователь №: 10 245

|
Цитата(AlexandrY @ Sep 18 2016, 13:07)  Это древний фейк, сделанный той же Eltima Исходников нет. Если зайти на страничку проекта на SF https://sourceforge.net/projects/com0com/fi.../?source=navbar то загружая архивы (без цифр 386 в названии) вы получите исходники, только это не драйвера, а программы. А автору как я понял нужен драйвер (наверно даже в исходниках), чтобы старая программа, без внесения изменений в код, могла видеть эти виртуальные последовательные порты. P.S. хотя в com0com есть исходники драйвера нульмодемного порта. Цитата(zltigo @ Sep 18 2016, 13:29)  Цитата(AlexandrY @ Sep 18 2016, 14:22)  Бесполезно. Никто на халяву драйвер для нескольких портов да еще с сорсами не выложит. А можно этот однопортовый драйвер запустить 4 раза для доступа к разным устройствам?
|
|
|
|
|
Sep 18 2016, 13:07
|

Гуру
     
Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244

|
QUOTE (AlexandrY @ Sep 18 2016, 14:34)  Вы полагаете, что там написано о том, что Автору нужны исходники  . QUOTE (Lagman @ Sep 18 2016, 14:54)  А можно этот однопортовый драйвер запустить 4 раза для доступа к разным устройствам? Можно получить БЕСПЛАТНО коммерческую лицензию и на многопортовый. Условия на сайте изложены. QUOTE (Ruslan1 @ Sep 18 2016, 14:37)  а что имел в виду топикстартер- вообще непонятно  Что имеет в виду Автор, более, чем понятно, как и то, что Вы поняния не имеете о чем пытаетесь писать
--------------------
Feci, quod potui, faciant meliora potentes
|
|
|
|
|
Sep 18 2016, 18:25
|

Ally
     
Группа: Модераторы
Сообщений: 6 232
Регистрация: 19-01-05
Пользователь №: 2 050

|
Цитата(Lagman @ Sep 18 2016, 14:54)  P.S. хотя в com0com есть исходники драйвера нульмодемного порта. Да кстати, интересно. Кто бы мог подумать что в com0com выложат исходники драйвера. Они правда голые, не совсем в тему, еще понадобятся сертификационные тесты, цифровая подпись и т.д. Короче, лучшее что TC остается - это качать WDK , брать сэмплы отсюда - https://github.com/Microsoft/Windows-driver...l/VirtualSerial и пилить свой драйвер. Цитата(HardEgor @ Sep 18 2016, 19:52)  Можно назвать эту программу "драйвером", какая разница? - "хоть горшком назови, только в печь не ставь"  Разница в жесткости требований к совместимости с операционкой. И хотелось бы посмотреть как из обычной программы в юзерспейсе вы перехватите обмен с портами у стороннего софта.
|
|
|
|
|
Sep 18 2016, 19:28
|
Знающий
   
Группа: Свой
Сообщений: 875
Регистрация: 28-10-05
Пользователь №: 10 245

|
Цитата(HardEgor @ Sep 18 2016, 19:52)  Всё же написано, программа создает на компе 4 виртуальных COM-порта, потоки данных с этих портов обрабатывает по RFC2217 и отправляет/принимает по Ethernet. Можно назвать эту программу "драйвером", какая разница? - "хоть горшком назови, только в печь не ставь"  Первая версия пишется за день, если умеючи. В том то и дело что программа не может создавать виртуальные порты (которые будут в системе видны как стандартные COM1...COM4 ... /dev/tty1...), она может только их использовать, а вот драйвер и создает виртуальный порт (которые ОС будет предоставлять как COM1...COM4... /dev/tty1 и т.д.) и плюс еще передает данные, а так же настройки скорости, четности и т.д. физическому устройству eth<->com.
|
|
|
|
|
Sep 18 2016, 20:05
|
Гуру
     
Группа: Свой
Сообщений: 2 360
Регистрация: 6-03-06
Из: Кишинев
Пользователь №: 15 025

|
А, кажись понял. То есть у ТС есть софт, в котором он выбирает до 4 СОМ-портов. И теперь он хочет, чтобы нечто прикидывалось этими портами и отсылало посланное этой программой в сеть, а не на локальный порт? и так же обратно, из сети в программу как будто из СОМ порта? Я ж сразу сказал, без картинки тяжело доходит. Ко мне уже без картинок на работе и не идут, или мы вместе их рисуем с пришедшим  тогда да, сторонний VSP драйвер нужен. Но зачем его писать? готовые есть (что работают странно-это другая история, вдруг и хорошие есть). Я сначала тоже хотел такой "драйвер". А потом просто это в свой софт добавил, как опцию- хочешь через локальный порт, а хочешь- через IP адрес на удаленный. То есть обеспечивал канал передачи, а не перехват и перенаправление. И обошелся без драйвера и без виртуальных портов. Кстати, драйвер подразумевает админский доступ. Я лично уже сталкивался, когда на чужой NT дают кусочек ресурсов и крутись как можешь, но свои драйверы не ставь. Конечно, вопрос доступа к админ уровню решается административно (извиняюсь за тавтологию), но было очень приятно просто поставить на том островке, который выделили, и не вступать в полемику
|
|
|
|
|
Sep 19 2016, 12:19
|

Гуру
     
Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244

|
QUOTE (jcxz @ Sep 18 2016, 16:31)  Много лет уже для этих целей пользуемся Tibbo VSP Manager: http://tibbo.com/soi/software.htmlСудя по скудному описанию гонит просто RAW поток как-то по своему разумению формируя фреймы. Надо будет попробовать на досуге для одной старой софтинки прикрутить, дабы не встраиваить в нее поддержку UDP/IP. P.S. Посмотрел. 1) Локальный порт назначить нелья - лезет только с портом назначенным системой. Это уже не есть хорошо. 2) На указаном UDP сокете пытается идентифицировать СВОИ устройства (Device Server), если их устройства нет, то все идет лесом. Видимо только его Telnet может работать с чужими устройствами. Не интересно.
--------------------
Feci, quod potui, faciant meliora potentes
|
|
|
|
|
Sep 19 2016, 14:54
|
Знающий
   
Группа: Участник
Сообщений: 758
Регистрация: 27-08-08
Пользователь №: 39 839

|
Спасибо всем за обсуждение! Цитата(Ruslan1 @ Sep 18 2016, 12:05)  То есть у ТС есть софт, в котором он выбирает до 4 СОМ-портов. И теперь он хочет, чтобы нечто прикидывалось этими портами и отсылало посланное этой программой в сеть, а не на локальный порт? и так же обратно, из сети в программу как будто из СОМ порта? Да, но на всякий случай уточню. Изначально это было четыре отдельных устройства, которые управлялись сторонним ПО (на ПК) по четырем СОМ портам. Потом это стало одним устройством, которое есть желание подключить к ПК по сети, отсюда желание иметь 4ре виртуальных СОМ порта, которые отправляют-принимаю данные на устройство через сеть. Цитата(Tanya @ Sep 18 2016, 12:42)  Не очень понятно - у Вас в одном приборе должно быть четыре виртуальных порта? Используем китайские аналоги MOXA. Модули вставляемые. Дешевые. Писать ничего не надо самому. Не, такое решение не подходит по разным причинам. Цитата(zltigo @ Sep 18 2016, 13:29)  Они пишут, что многопортовая версия работает только с их девайсами. Остается конечно вопрос проверяют ли они это? Но в любом случае такое использование будет нарушать лицензию. Цитата(HardEgor @ Sep 18 2016, 19:52)  Всё же написано, программа создает на компе 4 виртуальных COM-порта, потоки данных с этих портов обрабатывает по RFC2217 и отправляет/принимает по Ethernet. Можно назвать эту программу "драйвером", какая разница? - "хоть горшком назови, только в печь не ставь"  Первая версия пишется за день, если умеючи. Нет. Речь идет совсем о другом. В идеале никакого моего ПО на РС не нужно совсем - подключили по сети устройство, настроили драйвера виртуальных портов и все. В принципе нашел VSPManager, он не бесплатный, но для моих применений дают бесплатную лицензию, правда это не совсем то - это виртуальный "нуль модемный кабель", если добавить к этому еще свою программу, то все получится. Но решение выглядит кривоватым... На счет написать свой драйвер - можно все, но потом его нужно подписывать, тогда уж проще купить драйвер
|
|
|
|
|
Sep 19 2016, 15:44
|

Гуру
     
Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244

|
QUOTE (Шаманъ @ Sep 19 2016, 17:54)  В принципе нашел VSPManager, он не бесплатный, но для моих применений дают бесплатную лицензию, правда это не совсем то - это виртуальный "нуль модемный кабель", если добавить к этому еще свою программу, то все получится. Но решение выглядит кривоватым... Зато фреймер и протокол полностью в Ваших руках. При "готовых" не факт, что абстракному устойству с протоколом заточенным под байтовый обмен, понравится работать с каким то драйвером, который по своему разумению будет собирать байты во фреймы и разбирать их.
--------------------
Feci, quod potui, faciant meliora potentes
|
|
|
|
|
Sep 20 2016, 05:17
|
Гуру
     
Группа: Свой
Сообщений: 5 228
Регистрация: 3-07-08
Из: Омск
Пользователь №: 38 713

|
Цитата(zltigo @ Sep 19 2016, 18:19)  Судя по скудному описанию гонит просто RAW поток как-то по своему разумению формируя фреймы. Надо будет попробовать на досуге для одной старой софтинки прикрутить, дабы не встраиваить в нее поддержку UDP/IP. Да - просто бинарный поток, да - TCP-фреймы формирует от фонаря (обычно режет на куски до 255 байт насколько помню). А какая разница для задачи ТС какие размеры фреймов? Он на своей стороне их тоже в байтовый поток должен преобразовывать. Цитата(zltigo @ Sep 19 2016, 18:19)  2) На указаном UDP сокете пытается идентифицировать СВОИ устройства (Device Server), если их устройства нет, то все идет лесом. Видимо только его Telnet может работать с чужими устройствами. Не интересно. UDP не использовал, TCP работает без проблем. Идентифицировать никого не пытается. Telnet-а там не видел. В настройках: "On-the-fly commands:" должно быть == "Disabled"; "Transport provider:" == "TDI".
|
|
|
|
|
Sep 20 2016, 07:31
|
Знающий
   
Группа: Участник
Сообщений: 758
Регистрация: 27-08-08
Пользователь №: 39 839

|
Цитата(Lagman @ Sep 19 2016, 18:12)  Ну а что будет управлять то устройством по последовательным портам? Стороннее (т.е. не моё) ПО. Цитата(zltigo @ Sep 19 2016, 18:44)  Зато фреймер и протокол полностью в Ваших руках. При "готовых" не факт, что абстракному устойству с протоколом заточенным под байтовый обмен, понравится работать с каким то драйвером, который по своему разумению будет собирать байты во фреймы и разбирать их. Да есть плюсы и минусы, как всегда. В таком варианте и com0com подойдет. Цитата(jcxz @ Sep 20 2016, 08:17)  UDP не использовал, TCP работает без проблем. Идентифицировать никого не пытается. Telnet-а там не видел. В настройках: "On-the-fly commands:" должно быть == "Disabled"; "Transport provider:" == "TDI". Надо будет поэкспериментировать, спасибо!
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|