Обращение к модему в Windows по имени устройства
От: Аноним  
Дата: 08.07.04 14:02
Оценка:
Как известно для того что, бы достучатся к PCI USB и (возможно софт модему) знание номера порта (ключ реестра "AttachedTo") мало. Все примеры, публикуемые в инете (складывается впечатление, что у них был один и тот же автор) спользуют обращение к модему через порт, на котором находится модем.
У меня никогда не возникало этих проблем пока я писал на DELPHI, поскольку для неё есть чудесная библиотека Async32 в которой есть не менее чудесный компонент TVaComm у которого есть чудесное свойство DeviceName. Задав ему название порта (список которых можно получить с помощью того же компонента) или имя установленного в системе модема я всегда получал то что хотел. Но поскольку потребовалось написание ПО на Builder С++, а в библиотеке Async32 есть инталяшка и под Builder, то разрабатывать софт я начал, пребывая в полном спокойствии духа... Но ни тут то было!!! Когда уже был навернут нехилый парсер (на С++) для работы с довольно сложным девайсом, то обнаружилось ,что порты ,попрежнему, открыть можно но любая попытка открыть модем по имени заканчивается ошибкой!!!! ((((((((((
Насколько я понял Builder всегда был в "отстое" по сравнению с DELPHI и тут тоже имел место остаточный принцып...((

Возникает вопрос: как работать с PCI и USB модемами

С помощью TAPI можно набрать номер, записать голос и т д, а как получать и отсылать данные в порт которого физически нет Ведь установленный PCI или USB модем (если он не ставится как ещё один COM наподобие переходников) стоит на приатаченом порту, который открыть обычными средствами невозможно и требуется общаться к драйверу причем не напрямую, а через средства Windows? так как напрямую это и сложнее и глюкавее...

В общем HELP!!! Не то я скоро стану очень больным и бедным!
Re: Обращение к модему в Windows по имени устройства
От: Jack128  
Дата: 08.07.04 15:59
Оценка: 1 (1)
Здравствуйте, Аноним, Вы писали:

А>Возникает вопрос: как работать с PCI и USB модемами


А>С помощью TAPI можно набрать номер, записать голос и т д, а как получать и отсылать данные в порт которого физически нет Ведь установленный PCI или USB модем (если он не ставится как ещё один COM наподобие переходников) стоит на приатаченом порту, который открыть обычными средствами невозможно и требуется общаться к драйверу причем не напрямую, а через средства Windows? так как напрямую это и сложнее и глюкавее...


А>В общем HELP!!! Не то я скоро стану очень больным и бедным!


Ну ты же сам сказал ответ — TAPI спасет отца русской демократии. Через тапи можно работать с любым установленным в системе модемом.

Примерная последовательность действий такова

lineInitialize
lineOpen
lineMakeCall
lineGetID
// передаешь данные своему устройству
lineDrop
lineClose
lineShutdown
Re[2]: Обращение к модему в Windows по имени устройства
От: antizero  
Дата: 09.07.04 05:33
Оценка:
А>>С помощью TAPI можно набрать номер, записать голос и т д, а как получать и отсылать данные в порт которого физически нет Ведь установленный PCI или USB модем (если он не ставится как ещё один COM наподобие переходников) стоит на приатаченом порту, который открыть обычными средствами невозможно и требуется общаться к драйверу причем не напрямую, а через средства Windows? так как напрямую это и сложнее и глюкавее...

А>>В общем HELP!!! Не то я скоро стану очень больным и бедным!


J>Ну ты же сам сказал ответ — TAPI спасет отца русской демократии. Через тапи можно работать с любым установленным в системе модемом.


J>Примерная последовательность действий такова


J>lineInitialize

J>lineOpen
J>lineMakeCall
J>lineGetID
J>// передаешь данные своему устройству
J>lineDrop
J>lineClose
J>lineShutdown

Извиняюсь конечно! Но я же как раз говорил, что это не проблема — исходников и примеров полно. Проблема именно там где у тебя комментарий стоит. Именно то, как в TAPI передавать и принимать данные может спасти отца русской демократии.
Re[3]: Обращение к модему в Windows по имени устройства
От: Jack128  
Дата: 09.07.04 16:37
Оценка: 2 (1)
Здравствуйте, antizero, Вы писали:

J>>Примерная последовательность действий такова


J>>lineInitialize

J>>lineOpen
J>>lineMakeCall
J>>lineGetID
J>>// передаешь данные своему устройству
J>>lineDrop
J>>lineClose
J>>lineShutdown

A>Извиняюсь конечно! Но я же как раз говорил, что это не проблема — исходников и примеров полно. Проблема именно там где у тебя комментарий стоит. Именно то, как в TAPI передавать и принимать данные может спасти отца русской демократии.


Также как и обычно. Например если те нужно передать/прочитать бинарные данные, то вызываешь LineGetId c параметром "comm/datamodem" и пишешь/читаешь в полученый хенл спомощью ReadFile/WriteFile. В общем почитай про различные device classes...
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.