Достоинным добра и здоровья!!! Есть ли у кого нибудь опыт написания прграмм для работы с модемом а то чето у меня все колом т.е. есть программка которая выводит звук с линии в колонки все нормально но через несколько минут модем виснит походу дело в настройках модема но как его настраивать не знаю.
DRAHM Я рулил модемом непосредственно через AT команды. Модем у меня был внешний висел на последовательном порту. Но хочу отметить, что эта прога работала и с программными модемами на PCI, т.к. они распозновались так же как подключенные к COM порту но уже с большими индексам COM3, COM4. Таким образом я выбирал либо режим команд, либо режим передачи данных и выплевывал в порт либо AT команды либо данные соответственно.
Внимание дорого. Пробываал я так.С начала открывал порт ( CreateFile ) у меня на модеме (внутр.) есть маленький спекер вот он при этом щелкает (также как при открыти через TAPI ) потом пишу в порт (WriteFile ) "ATDP1234" по идеи модем должен начать набирать номер "1234" но почему то не реагирует ни как . А если управлять через АТ то звук с линии уже наверно ни как не захватишь. А что за прога интересно на неё взглянуть ? Всем отдуши душевно Пока всё ушел.
Ага тут я оду не срастуху заметил в своем примери.Так как очень мало информации о TAPI я пытаюсь методом "проб и ошибок" и случайно закоментарил в void CALLBACK DDf две строки "ddd=1;и ddd=0;"
DRAHM По поводу проги, это была прога сбора данных от узлов учета тепловой энергии. Т.е. стояли в разных точках города тепловычислители с модемами, я написал прогу, она к ним конектилась так же по модему и собирала данные по протоколу MODBUS, затем эти данные складываются в базу данных ну и обрабатываются. Если интересно могу скинуть листинги для работы с модемом. А по поводу того что у тебя не пашет - возможно ты не совсем правильно работаешь с COM портом через API. Последовательность действий примерно такая: - Открытие порта через CreateFile (кстати, я работал в асинхронном режиме Overlapped) - Настройка параметорв порта через GetCommState, SetCommState, SetupComm - Установка таймаутов через GetCommTimeOuts, SetCommTimeouts - Непосредственно запись/чтение в порт WriteFile, ReadFile () Поищи эти функции по MSDN, а так же структуры TDCB, TCOMMTIMEOUTS, TCOMMSTATE Для обмена данными рекомендую запускать отдельный поток опроса COM порта и использовать функции GetCommMask, SetCommMask, GetCommModemStatus, WaitCommEvent. Попробуй сначала попросту послать команду AT, он в ответ должен выдать OK.
Там всё куда геморней. У меня на мобиле с Windows CE есть TAPI. Так там через него можно заставить телефон звонить куда-либо программно. Думаю через это все звонки и сделаны. Взяд такую вещь к модемным командам привяжут..
Proteus Ты ошибаешься. Через AT команды так же можно с легкостью организовать дозвон ATDP -тональный набор, ATDT импульсный - набор. Более того предполагаю, что приложение, взаимодействуя с модемом через TAPI, так же в результате формирует AT команды. Правда есть нюанс в том, что существуют стандартизированные команды, как то набор номера, а так же есть команды различающиеся от произодителя к производителю, но они, как правило, нечасто востребованы.
По TAPI может здесь чего нибудь нароешь: http://www.exceletel.com/products/TeleTools/SamplePrograms/Index.htm Пароль для архивов "ExceleTel"
Поспрашивать у него самого. АТ-команды зависят от марки модема, но есть те, которые поддерживаются большинством с незапамятных времён. ATI0 ... ATI7 - какие-то выводят марку модема, версию прошивки, макс. скорость. Reporting Supported Range of Parameter Values Command: +FCLASS=? Response: +FCLASS: (n range) Example: +FCLASS: (0, 1,1.0,8, 80) 0 Select Data Mode (Default.) 1 Select Facsimile Class 1 Mode 1.0 Select Facsimile Class 1 Mode 8 Select Voice Mode 80 Select VoiceView Mode Это пожалуй основные команды, с помощью которых можно опознать модем и узнать, что он умеет. Поэкспериментируй с ними в терминале. Конкретнее надо смотреть в паспорте на модем. Если нужно, могу отмылить списки основных команд.
так в том то и дело что должно на всех модемах работать... ну без всякого изврата типа адсл) но за подсказку спасибо