|
|
  |
Требуется помощь в правильном понимании работы с модемом |
|
|
|
Jun 16 2006, 14:05
|
практикующий тех. волшебник
    
Группа: Участник
Сообщений: 1 190
Регистрация: 9-09-05
Пользователь №: 8 417

|
Цитата(TamTam @ Jun 16 2006, 16:02)  Имеется модем у которого есть AT команды, как правильно организовать прием и обработку данных,
Перевое представление: загоняем все нужные нам команды в массив и по приходу начинаем смотреть естли такая команда у нас в массиве, если есть то будем что то делать . а если нет ? Отбрасываете и всё ? Сразу скажу, в текстовом режиме - фиг что примите... т.к. команды состоят (в текстовом режиме) из буковок...Да и между командами могут быть тайм ауты... Да и между буковками ээээээ некоторое времечко может пролететь... удачи Вам (круглый) ЗЫ Если Вы планируете работу на различном железе - то рекомендую сценарий дозвона и коннекта - вынести в отдельный настраиваемый массив данных. Например коннекшен в виде точка-точка будет отличаться от коннекшенна через Sprint или Infotel (к примеру) и т.д. и т.п....
|
|
|
|
|
Jun 16 2006, 14:15
|

Местный
  
Группа: Свой
Сообщений: 293
Регистрация: 14-03-06
Пользователь №: 15 254

|
Цитата(Krys @ Jun 16 2006, 16:19)  Какой модем то? Подцепи этот модем к ком-порту компа, запусти терминалку, да попробуй с клавы эти команды отдавать-принимать. Вот и поймёшь логику действий. Да любой хоть для диал-ап хоть GSM(GPRS), не вы меня не правильно поняли как правильно опознать что модем ответил к примеру, посылаем ATZ и принимаем ответ после чего следует его обработка. Код char ok[4]='ok\n\r'; for( i = msg_length; i >= 0; i--) if(msg[i]=ok[i]) { успешно отправили } а когда мы можем принять не только OK а к примеру ERROR и таких ответов больше чем 1 как найти что пришло ??
|
|
|
|
|
Jun 18 2006, 20:21
|
Местный
  
Группа: Свой
Сообщений: 378
Регистрация: 6-12-04
Пользователь №: 1 340

|
Привожу свой принцип обмена с модемом, (реализовано на асм авр, система авр+жки+GSM/GPRS(wavcom))
1. посылаю команду модему 2. делаю паузу (зависит от времени выполнения команды к перимеру 0.5сек) 3. смотрую что в буфере, есть три варианта - ответил нето что ожидал (например самоответ модема(выдал WIND) - очистил буфер, пошел на повтор команды) - нечего неответил (например повис модем !!! (очень редко но бывает, делаем хар рестарт модема и повтор команд например с самого начала(необязательно)!)) - ответил то что ждал (идем дальше все ок !)-тут еще можно ветвить на тему того что ждали бывают необходимо обрабатывать несколько возможных ответов например входа в сеть +CGREG 0,0 0,1 0,2...
система примимает и передает sms-ки и использует встроенный TCP стек модема, (когда только начинал хотел сделать обработку дерева, передумал да и незачем и так все прекрасно пашет)
|
|
|
|
|
Jun 19 2006, 08:04
|

Профессионал
    
Группа: Свой
Сообщений: 1 301
Регистрация: 30-11-04
Из: Россия, Н.Новгород
Пользователь №: 1 264

|
Цитата(TamTam @ Jun 16 2006, 16:02)  Имеется модем у которого есть AT команды, как правильно организовать прием и обработку данных,
Перевое представление: загоняем все нужные нам команды в массив и по приходу начинаем смотреть естли такая команда у нас в массиве, если есть то будем что то делать . Вообще-то для начала, что бы правильно понимать функциональность модема и как с ним работать необходимо сперва почитать соответствующую литературу (хотя бы из серии Фролова...). Модем может функционировать в двух режимах: голосовом (телефония) и цифровом (принятие/передача цифровых данных), режимы и функциональность которых поддерживается по средством AT-команд. Необходимо начинать с 'базового' набора команд являющиеся общими для всех категорий модема, ничего там сложного нет, а в дальнейшем по специфики использования изучить 'дополнительные/расширенные' команды модема для конкретного приложения (к примеру - GSM).
--------------------
Не корысти ради, не в целях наживы, а во исполнение велений души!
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|