Программирование под COM порт

Все, что не подходит для обсуждения в других разделах.

Модераторы: Gromak, Aleg

Программирование под COM порт

Сообщение Âèòàëèê » Ср фев 21, 2007 2:14 pm

Вопрос программистам. Я уже задавал вопрос о gprs модемах, и на данный момент появилась проблема:
Необходимо открыть ком порт, набрать номер, а затем дать доступ к этому порту другой проге (DOS проге). Как из делфи открыть порт и расшарить доступ к нему? точнее, как открыть я знаю, команды модему проходят, но как открыть его не монопольно?
Дело в том, что дос прога не умеет набирать номер, а средства винды и другие проги, с помощью которых возможно набрать номер и установить соединение занимают порт и не дают к нему доступа. Как только закрываешь эту прогу - соединение разрывается... помогите плзз, кто сталкивался с этим
Аватара пользователя
Âèòàëèê

 
Сообщения: 29
Зарегистрирован: Чт дек 14, 2006 1:40 am
Откуда: Ивенец-Смолевичи
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.

Сообщение Fallman » Ср фев 21, 2007 2:44 pm

Доступ к ком-портам под виндой осуществляется только в монопольном режиме. Для доступа другой проги надо закрыть порт. Не нравится? Пиши свой драйвер COM-порта, который сможет работать с разными хэндлами и структурами DCB для одного физ. девайса.
Последний раз редактировалось Fallman Ср фев 21, 2007 5:52 pm, всего редактировалось 1 раз.
Fallman
HWBY Team
HWBY Team
 
Сообщения: 730
Зарегистрирован: Пн окт 30, 2006 7:45 am
Откуда: Минск, Беларусь
Благодарил (а): 1 раз.
Поблагодарили: 5 раз.

Сообщение Âèòàëèê » Ср фев 21, 2007 3:00 pm

Я так понял, из делфы никак нельзя открыть ком порт не в монопольном режиме? Может можно как-нить заюзать системные dll, или может ещё чё-нить? не верю что нету выхода... Драйвер сам я конечно написать не смогу, не дорос ещё... Но вот винда ведь умеет разные приложения юзать, когда к ком порту даже обычный мопед подключен и соединен с сервером интернет. Должны, наверное, быть какие-то API-шные функции, позволяющие это сделать... у меня уже неделю мозги кипят, я так ничего и не добился......
Athlon XP Barton 2500+ на Acorp Nforce 400Ultra, 2x512 DDR Samsung, AGP Radeon 9600XT, Pioneer 111D, Seagate 250Gb & Samsung 120Gb, Samsung 740N, Microsoft Wheel Mouse.
Аватара пользователя
Âèòàëèê

 
Сообщения: 29
Зарегистрирован: Чт дек 14, 2006 1:40 am
Откуда: Ивенец-Смолевичи
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.

Сообщение leave » Ср фев 21, 2007 3:39 pm

а что, по

http://www.google.com/search?client=ope ... 8&oe=utf-8

ничего нет?
leave
HWBY Team
HWBY Team
 
Сообщения: 1442
Зарегистрирован: Пт окт 28, 2005 5:34 pm
Откуда: Менск
Благодарил (а): 1 раз.
Поблагодарили: 16 раз.

Сообщение Âèòàëèê » Ср фев 21, 2007 3:51 pm

даров =)

пасиба за ссылку, я её сохранил ещё вчера, тока не успел порыться там. сегодня полазю, но вопрос решил таки бросить здесь, авось быстрее будет =)
Athlon XP Barton 2500+ на Acorp Nforce 400Ultra, 2x512 DDR Samsung, AGP Radeon 9600XT, Pioneer 111D, Seagate 250Gb & Samsung 120Gb, Samsung 740N, Microsoft Wheel Mouse.
Аватара пользователя
Âèòàëèê

 
Сообщения: 29
Зарегистрирован: Чт дек 14, 2006 1:40 am
Откуда: Ивенец-Смолевичи
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.

Сообщение Fallman » Ср фев 21, 2007 6:04 pm

$this->bbcode_second_pass_quote('Виталик', '')з делфы никак нельзя открыть ком порт не в монопольном режиме?

Причём здесь Дельфи? Это фича Windows. Не умеет винда раскидывать потоки данных в/из ком-порта на разные проги. Здесь должен быть отдельный менеджер каналов, обработчик ошибок, короче навёрнутый механизм, коего в винде просто нет и не предвидится. Ты сам прикинь, если на порту возникла ошибка, то в какой DCB она должна передаться или, другими словами, какая прога её будет обрабатывать? Яж тебе сказал, пиши отдельный коммуникационный слой, со своим API, заменяющий виндовзный и проги поддерживающие этот API и будет те счастье (ИМХО лет через пять)...
Fallman
HWBY Team
HWBY Team
 
Сообщения: 730
Зарегистрирован: Пн окт 30, 2006 7:45 am
Откуда: Минск, Беларусь
Благодарил (а): 1 раз.
Поблагодарили: 5 раз.

Сообщение savely » Ср фев 21, 2007 7:41 pm

Fallman прав.
Хм, в данном случае, я бы скорее играл из ДОС... Т.е. ДОС-прога набирает номер, а потом из себя стартует нужную прогу без разрыва соединения... Да и работа с NT-like и W9x - есть разница...
Хотя - темен, док не читал, в этой области никогда не программил...

Общая оценка - удаленно это решить сложно...
Аватара пользователя
savely
HWBY Team
HWBY Team
 
Сообщения: 6876
Зарегистрирован: Вс мар 17, 2002 2:40 pm
Откуда: Моск. обл., г.Троицк
Благодарил (а): 2 раз.
Поблагодарили: 26 раз.

Сообщение Âèòàëèê » Чт фев 22, 2007 4:33 pm

Короче понял я, бросаю попытку расшарить порт из делфы, и пытаюсь чё-нить с дос прогой делать =)
Пасибо за ответ =)
Athlon XP Barton 2500+ на Acorp Nforce 400Ultra, 2x512 DDR Samsung, AGP Radeon 9600XT, Pioneer 111D, Seagate 250Gb & Samsung 120Gb, Samsung 740N, Microsoft Wheel Mouse.
Аватара пользователя
Âèòàëèê

 
Сообщения: 29
Зарегистрирован: Чт дек 14, 2006 1:40 am
Откуда: Ивенец-Смолевичи
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.


Вернуться в Другие проблемы

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

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

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 5

cron