Rambler's Top100
"Knowledge itself is power"
F.Bacon
Поиск | Карта сайта | Помощь | О проекте | ТТХ  
 Сокровищница
  
 

Фильтр по датам

 
 К н и г и
 
Книжная полка
 
 
Библиотека
 
  
  
 


Поиск
 
Поиск по КС
Поиск в статьях
Яndex© + Google©
Поиск книг

 
  
Тематический каталог
Все манускрипты

 
  
Карта VCL
ОШИБКИ
Сообщения системы

 
Форумы
 
Круглый стол
Новые вопросы

 
  
Базарная площадь
Городская площадь

 
   
С Л С

 
Летопись
 
Королевские Хроники
Рыцарский Зал
Глас народа!

 
  
ТТХ
Конкурсы
Королевская клюква

 
Разделы
 
Hello, World!
Лицей

Квинтана

 
  
Сокровищница
Подземелье Магов
Подводные камни
Свитки

 
  
Школа ОБЕРОНА

 
  
Арсенальная башня
Фолианты
Полигон

 
  
Книга Песка
Дальние земли

 
  
АРХИВЫ

 
 

Сейчас на сайте присутствуют:
 
 
 21:46 W0lt
 21:39 Gin Beginner
 
 
Во Флориде и в Королевстве сейчас  21:56[Войти] | [Зарегистрироваться]

Обсуждение материала
Обмен информацией с модемом
Полный текст материала


Цитата или краткий комментарий:

«... Мне было нужно организовать обмен данными с модемом так, как это происходит в "Свойствах Модема" на закладке "Диагностика" при нажатии на кнопку "Опросить модем". ...»


Важно:
  • Страница предназначена для обсуждения материала, его содержания, полезности, соответствия действительности и так далее. Смысл не в разборке, а в приближении к истине :о) и пользе для всех.
  • Любые другие сообщения или вопросы, а так же личные эмоции в адрес авторов и полемика, не относящаяся к теме обсуждаемого материала, будут удаляться без предупреждения авторов, дабы не мешать жителям нормально общаться.
  • При голосовании учитывайте уровень, на который расчитан материал. "Интересность и полезность" имеет смысл оценивать относительно того, кому именно предназначался материал.
  • Размер одного сообщений не должен превышать 5К. Если Вам нужно сказать больше, сделайте это за два раза. Или, что в данной ситуации правильнее, напишите свою статью.
Всегда легче осудить сделанное, нежели сделать самому. Поэтому, пожалуйста, соблюдайте правила Королевства и уважайте друг друга.



Добавить свое мнение.

Результаты голосования
Оценка содержания

  Содержит полезные и(или) интересные сведения
[1]1178.6%
 
  Ничего особенно нового и интересного
[2]321.4%
 
  Написано неверно (обязательно укажите почему)
[3]00%
 
Всего проголосовали: 14

Оценка стиля изложения

  Все понятно, материал читается легко
[1]1083.3%
 
  Есть неясности в изложении
[2]216.7%
 
  Непонятно написано, трудно читается
[3]00%
 
Всего проголосовали: 12




Смотрите также материалы по темам:
[Работа с модемом] [COM-порт]

Комментарии жителей
Отслеживать это обсуждение

Всего сообщений: 23

22-02-2010 08:16
Пытаюсь откомпилить программу выдаёт ошибку File not found: 'Devices.dcu'. Что делать ?


19-02-2010 18:01
Полезная статья. Бывает что ищешь, а оно оказываеться рядом.


04-11-2009 10:59
Нужная вещь. Давно не мог решить проблему - уж месяц...


04-11-2007 04:44
Подводным камнем является - если данные буфура. передаваемым модема больше, чем запрашиваемый юзером, то получается ошибка: не полное чтение и в последующих командах нарушается логика - вопрос-ответ.
Прошу доработать.


15-06-2007 04:48
Прогу пока не тестил (нет модема под рукой), но статья мне понравилась!
В отзывах, кстати, тоже много интересного. Спасибо, что выложили свои наработки.


06-04-2007 07:41
Спасибо за прогу!
Пришлось закомментить {Devices,} и {, XComDrv} - нету у меня таких. Но и без них все работает на ура!
Работаю с помощью этой проги с телефоном СЭ k790 - команда AT*EKEY=1,":R",2 зажигает подсветку, эмулируя нажатие кнопки назад.

Почему GreyDog не смог заставить работать с самсунгм, я не знаю.

Самое интересное - это таймауты, корректно телефон отвечает на такую комбинацию:
CommTOuts.ReadIntervalTimeout:=200;
CommTOuts.ReadTotalTimeoutMultiplier:=30;
CommTOuts.ReadTotalTimeoutConstant:=400;
CommTOuts.WriteTotalTimeoutMultiplier:=30;
CommTOuts.WriteTotalTimeoutConstant:=400;
пробовал другие, с ними глюки - или слишком долго отвечает, или первый раз не приходит ОК, или ок вообще не приходит.


12-12-2006 05:36
Хорошая статья, полезная.

У меня была такая особенность: не выполнялось условие (CommProp.dwProvSubType = PST_MODEM).
Значение dwProvSubType у меня всегда было равно 1, т.е. PST_RS232. Условие убрал, и благополучно получал отклики модема :-)


04-07-2005 09:37
Написал программку ScanPort...
сканирует все порты на предмет подключен ли модем, и когда его находит, опрашивает по основным AT-командам и выдаёт ответы, также реализован терминал на открываемый порт.
http://www.tangorerro.da.ru/progs/scanport/scanport_exe.rar
и соответсвенно исходники
http://www.tangorerro.da.ru/progs/scanport/scanport_source.rar
ну всё последний...


04-07-2005 09:36
Написал программку ScanPort...
сканирует все порты на предмет подключен ли модем, и когда его находит, опрашивает по основным AT-командам и выдаёт ответы, также реализован терминал на открываемый порт.
http:\\www.tangorerro.da.ru\progs\scanport\scanport_exe.rar
и соответсвенно исходники
http:\\www.tangorerro.da.ru\progs\scanport\scanport_source.rar
какие то глюки со ссылками


13-06-2005 13:01
простите - не подписался


13-06-2005 12:58
Все работает, если сделаю комметарием // Devices, Registry, XComDrv; в Uses.
Подключаюсь таким образом к почтовому серверу Dionis (v2.20), он сразу предлагает терминальный режим, но хочется подключиться  по протоколу PPP и SMTP (я так понимаю к порту 110 и 25 почтового сервера). В локальной сети - без проблем с помощью компонентов Indy ( указав Ip-адрес), а вот по модему - никак. Помогите !!!.
И еще может кто подскажет, как передать информацию в сервер dionis используя Indy и пакетный режим передачи Dionis.
Сообщение не подписано


26-05-2005 18:59
Подключил мобильный телефон Samsung C100, хотел протестить. Не вышло. Хотя, как я понял, "софтинка" должна быть идентичной стандартной виндовой функции "Опросить модем". Что то не так?

Другой вопрос. Интерфейс немного "странный". Кнопки с англ. названиями. Ответы русские...

P.S. Что нужно изменить для того что бы Ваша программа могла работать с модемом мобильного телефона?
P.P.S. Вообще то я чайник, но ответы хотел бы увидеть.


18-03-2005 05:43
Непонятна вообще завязка обсуждения работы с модемом и СОМ-портом. Модем просто использует RS232 и последовательный порт (СОМ3, например). Если автору нравится работать в синхроне, то причем тут PurgeComm. Ну вот и я начал "смешались в кучу кони, люди"...Гораздо правильней при таком названии статьи рассмотреть пример установки связи по модему между двумя компами по диал-апу, т.е. какие команды нужно подавать, в какой последовательности, как обрабатывать различные ситуации при установке связи, приеме-передаче данных...и т.п. А так получается - "как работать с СОМ-портом , если на нем "висит модем"


25-11-2004 03:45
В дополнение... Может проще отслеживать состояние
соответсвующего сигнала RTS или какого либо иного(того который говорит о наличии связи), то есть отслеживать непосредственно RS232 и лишь убедившись что модем ожил начинать считывать
ReadFile(hCommFile,InBuffer,SizeOf(InBuffer) и т.д. Я делал это пользуясь ассемблером в 98 для
своих радиолюбительских нужд. Нынешняя задача сложнее, мне нужно отсылать сообщения адресату по модему из своего приложения. Наверняка есть функция API отслеживающая RS232.


25-11-2004 03:24
Модем физическое устройство. Реальной помощью было бы описание физической работы этих функций.
Например... Зачем после связи системы с СОМ портом
(CreateFile) задавать значения TimeOut? Модем работал до инициализации. Единственное что мне нужно это связать свое приложение с ним и работать. Зачем для указания интервалов (SetCommTimeouts) необходимо сначало их получить
(GetCommTimeouts)? Что происходит при (GetCommTimeouts)? Связь с определенным регистром модема и одновременное обнуление его?  Почему при реальном звонке я читаю состояние модема без проблем. Получаю сообщение Ring при звонке или
Busy в соответствующем положении, а в том случае когда модем не занят для чтения того же буфера приложение тратит до 20 секунд?


19-08-2004 01:07
Классная статья!

Если я установил соединение по ATD...
Есть ли вероятность, что данные пришлются не правильно? Или у модема встроеная система корекции ошибок?


16-08-2004 16:51
Во-первых хотелось бы поправить линк на работу Дмитрия Кузана: http://www.delphikingdom.ru/asp/viewitem.asp?catalogid=388
Далее, все мы умеем читать MSDN, однако при реализации, казалось бы очевидных вещей, зачастую встречаются подводные камни.
У меня тоже всё проходило нормально пока я работал с COM-портами, не касаясь модема.
Для тех, кто принимает участие в обсуждении: может быть Вы проверите мой пример на своих модемах и напишете - "вот на моей системе пример не работает, а если его исправить следующим образом ..., то все в порядке".
Со своей стороны могу ответственно сказать, что на Windows XP, внешний USB модем Acorp M56EUS, поставленная задача (обмен данными с модемом) в приведенном примере решена. Участки кода (не описанные в других источниках), без которых поставленную задачу (на данной системе) решить не удается отмечены особо.
Хотелось бы видеть не выдержки из общеизвестной документации, а примеры кода, работоспособность которого подтверждена практикой.
Спасибо.


15-08-2004 00:20
Насколько мне известно - PurgeComm - занимется только тем, что чистит буфера(PURGE_TXCLEAR or PURGE_RXCLEAR ) или завершает все I\O - операции(PURGE_TXABORT or PURGE_RXABORT ), не больше и не меньше.
Вообще-то до недавнего времени я этим паржом не пользовался, как-то не было необходимости и всё проходило нормально, а вообще функция полезная.

А команды модему о готовности буферов, принимать или передавать данные, и всякое такое, даёт функция EscapeCommFunction

В Королевстве есть замечательная статья посвящённая работе с портами(5 глав). Там содержаться исчерпывающие сведения по этой тематике - вот линк - http://www.delphikingdom.ru/mastering/ports2.htm.
Хотелось бы выразить особую благодарность автору статьи Дмитрию Кузану.


13-08-2004 01:21
Я пробовал отключать эхо ATE0 (на Acorp этот же код). Ничего не получается без вызова функции PurgeComm.
Поправте меня, если кто разобрался в данной проблеме, но у меня создалось впечатление, что функция PurgeComm не просто освобождает буфера, а дает команду модему, что буфера готовы к приему информации.


12-08-2004 22:46
Ребята, а почему бы просто не отключить это эхо. Например в модеме U.S.Robotics есть команда ATE0 - Эхо выключено. Я думаю аналогичная команда есть у всех модемов.

И ещё есть вопрос по статье - Разве нет вероятности, что применив PurgeComm между WriteFile и ReadFile, первые байты ответа модема(информационного ответа, а не эха) поступившие в буфер порта будут стёрты


12-08-2004 19:15
Ответ на замечание Александра Спелицина.
А Вы попробуйте из текста примера исключить строку PurgeComm и посмотрите, что получится. Возвращается не "AT OK", а просто "AT". На ввод "AT+GMM" возвратится именно "AT+GMM", а не "+GMM: название модема".
Т.е. эхо введенных команд пользователя, а не ответ модема.
Было бы интересно посмотреть на РАБОТАЮЩИЙ пример Вашего кода для решения задачи, поставленной в статье.


11-08-2004 17:36
>>>...Ну, пока всё так, как и пишется во всех форумах и статьях. Однако если теперь выполнить функцию ReadFile, то во входном буфере будет та же самая строка, что и в выходном буфере. Так что же делать? А вот здесь вторая и главная особенность описываемого мной метода общения с модемом. Этого я не нашел ни в каких источниках...
Это называется эхом. Когда включен режим эха, модем получив текст команды, сразу же выдает ее в порт обратно. Т.е. если Вы дали ему команду

at


то он выдает обратно ее же текст и результат выполнения.

at
OK



10-08-2004 17:04
Неплохо, но вообще AsyncPro все это делает, да и многое другое.


Добавьте свое cообщение

Вашe имя:  [Войти]
Ваш адрес (e-mail):На Королевстве все адреса защищаются от спам-роботов
контрольный вопрос:
Жили у бабуси два веселых гуся. Один белый, другой КАКОЙ?
в качестве ответа на вопрос или загадку следует давать только одно слово в именительном падеже и именно в такой форме, как оно используется в оригинале.
Надоело отвечать на странные вопросы? Зарегистрируйтесь на сайте.

Оценка содержания
 
Содержит полезные и(или) интересные сведения
 
Ничего особенно нового и интересного
 
Написано неверно (обязательно укажите почему)


Оценка стиля изложения
 
Все понятно, материал читается легко
 
Есть неясности в изложении
 
Непонятно написано, трудно читается

Текст:
Жирный шрифт  Наклонный шрифт  Подчеркнутый шрифт  Выравнивание по центру  Список  Заголовок  Разделительная линия  Код  Маленький шрифт  Крупный шрифт  Цитирование блока текста  Строчное цитирование
  • вопрос Круглого стола № XXX

  • вопрос № YYY в тесте № XXX Рыцарской Квинтаны

  • сообщение № YYY в теме № XXX Базарной площади
  • обсуждение темы № YYY Базарной площади
  •  
     Правила оформления сообщений на Королевстве
      
    Время на сайте: GMT минус 5 часов

    Если вы заметили орфографическую ошибку на этой странице, просто выделите ошибку мышью и нажмите Ctrl+Enter.
    Функция может не работать в некоторых версиях броузеров.

    Web hosting for this web site provided by DotNetPark (ASP.NET, SharePoint, MS SQL hosting)  
    Software for IIS, Hyper-V, MS SQL. Tools for Windows server administrators. Server migration utilities  

     
    © При использовании любых материалов «Королевства Delphi» необходимо указывать источник информации. Перепечатка авторских статей возможна только при согласии всех авторов и администрации сайта.
    Все используемые на сайте торговые марки являются собственностью их производителей.

    Яндекс цитирования