Работа с COM портами. Можно RS-232 заменить на USB-USB?

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
Dr. Implex
Новичок
Новичок
 
Сообщения: 44
Зарегистрирован: 25.11.2002 (Пн) 12:05
Откуда: Russia

Работа с COM портами. Можно RS-232 заменить на USB-USB?

Сообщение Dr. Implex » 01.09.2003 (Пн) 13:30

Здорово, люди!
Пишу софтину работающую по типу HyperTerminal, то бишь:

1. Модемное соединение
2. Кабельное соединение (COM на COM)
3. Сетевое соединение

соответственно, окно для обмена сообщениями, отправка текстовых файлов, отправка двоичных файлов. Инфа вся есть, но есть проблемы с отладкой. Ну положим модемное соединение я отлажу с приятелем,
у него тоже модем есть. Ну с сетевым, вообще просто, петля через IP 127.0.0.1 (т.е. моно отправить сообщение и самому же его получить).
А вот с соединением COM-COM трабл: по идее моно отлаживать, если соединить COM1 и COM2 например, но прикол, в том, что COM1 занят модемом (ну его я скажем отключу), а вот порт COM2, то ли его вообще нет, то ли он у меня занят монитором (извините, в железе не спец, так что могу ошибаться). USB-шников у меня 4 штуки. Фича: у приятеля, с которым я буду отлаживать модемную часть, модем USRobotics USB-шный, так в гипертерминале (да и вдругих прогах, даже на ВБ) этот USB-шник у него виден как COM3, отсюда возникает вопрос, не могу ли я соединить у себя два USB-шника на компе и работать с ними как с двумя соединенными COM-ами (то бишь получить скромный шанс на отладку COM-ного соединения)?

ЗЫ: Вы, наверное, спросите, нафига такая прога, если есть HyperTerminal? Оч. просто: ибо, ИМХО, HyperTerminal убог интерфейсом и не нравится в целом.

Потом, если кому надо, когда допишу прогу, могу кинуть исходник безвозмездно.
With respect, Dr. Implex

Георгий
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 126
Зарегистрирован: 08.08.2003 (Пт) 15:08
Откуда: Россия

Сообщение Георгий » 02.09.2003 (Вт) 9:33

USB в COM превращает драйвер - можно покачать из инета. А COM-порт может также делать петлю - LoopBack у него это называется - вроде в MSDN где то был пример
Origin - это что?

Pivusik
Новичок
Новичок
 
Сообщения: 36
Зарегистрирован: 27.08.2003 (Ср) 13:25
Откуда: Новый Уренгой

Сообщение Pivusik » 16.09.2003 (Вт) 10:40

А ты сделай проще, напиши свой проток передачи данных, с проверкой доставки пакетов и т.д. И суй этот протокол внутрь ТСП, КОМ, или еще куда.

Появится просто 2 уровня где обрабатываются ошибки:
1) ТСП или КОМ
2) Твой протокол

Дальше проще будет, ПОТСП ты просто приконектился и тут же начинает рабоать твой внутренний протокол, который проверяет всю фигнят по доставке пакета и есть ли конект, причем ему паралельно через что КОМ или ТСП.

Если твой протокол засек что пакет не доставлен пинг таймаут или еще чтот о, дает объщую команду Дисконнект, и КОМ или ТСП дисконектсятся просто. Так же если комп или тсп обнаруживает у себя какую либо ошибку говорят твоему протоколу ЕРРОР и даже номер её :=)

Вот тебе и с комом ненадо будет замарачиваться, просто открой ком 1 на котором момед, и сделай толкьо проверку на то что бы он открылся и можно было послать туда данные, а данные посылай те которые лежат в переменной скажем ЗЗЗ куда ложит данные на отправку твой протокол. А данные которые приходят ложи в переменную ДДД которую будет чиатть твой протокол.

Вообъщем это все надо только для того что бы тебе по 2-3 раза не писать код передачи и приема данных чата и т.д. Переменные ЗЗЗ И ДДД это так к примеру :=) Может что нить другое придумаеш :=) Хотя с переменными проще, использовать их как буфер, а в ТСП И КОМ приложения надо будет только таймером проверять переменную ЗЗЗ и если она не пуста передать содержимое ЗЗЗ, если дисконнект передать в переменную ОШИБ типо код ошибки например. А твой протокол когда читает что там в ОШИБ содержится не 0 передает пользователю ошибку соответствующую и прекращает сеанс...

Ну много что ам можно сделать :=)

А вообъще, открой системник и там где у тебя ком порт рядом поищи штырьки, с надписью КОМ1 или КОМ2... или просто КОм в книжке от мамки поищи может штырьки гденить и вдругом месте стоят :=) Купи хвост с ком портом и воткни его туда :=)
©Wind


Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: AhrefsBot, Google-бот и гости: 13

    TopList