|
|
  |
установка фиксированной частоты обмена для SIM300, после получения команды AT+IPR и ответа на нее модуль замолкает |
|
|
|
Jan 5 2008, 11:26
|
Участник

Группа: Участник
Сообщений: 35
Регистрация: 28-12-07
Пользователь №: 33 704

|
здравствйте ещё раз. :-) как я и думал вопросы только начинаются. стыдно, а что подлелать? после включения модуля и получения от него строки "Call Ready" отсылаю в него строку "AT" для синхронизации, затем получаю ответ "AT OK" после этого пытаюсь выставить фиксированную скорость обмена: AT+IPR=19200 модуль отвечает вполне корректно: "AT+IPR=19200 ОК" после этого не могу достачутся до модуля ни на 19200, ни на 115200. до установки фиксированной частотты модуль команды понимает, но почему-то со второго раза. судя по описаню ат-команд выбранная вновь частота обменя вступает в силу как раз после получения мной ответа: "AT+IPR=19200 ОК" подскажите пожалуйста в чем дело? где я ошибаюсь?
|
|
|
|
|
Jan 5 2008, 15:52
|
Участник

Группа: Участник
Сообщений: 64
Регистрация: 1-12-07
Пользователь №: 32 864

|
Наверное дело в МК, что б каждый раз не устанавливать скорость используй - AT&W
|
|
|
|
|
Jan 6 2008, 05:20
|
Участник

Группа: Участник
Сообщений: 35
Регистрация: 28-12-07
Пользователь №: 33 704

|
вы были совершенно правы. действиетльно некорректно устанавливал частоту обмена. сегодня проверил на свежую голову и сразу нашёл ошибку. все-таки сам дурак. :-)
но всеравно модуль стабильно проглатывает первую посылку. точнее не проглатывает, а возвращает на нее пустую строку: 0x0D\0x0A 0x0D\0x0A... странно.... в принципе пол беды... лишь бы он стабильно так делал... эхо у меня включено. частота обмена фиксированная. ситауция такая:
1. шлю модулю: AT\0x0D 2. первый раз он стабильно возвращает: 0x0D\0x0A 0x0D\0x0A 3. повторно шлю AT\0x0D 4. модуль возвращает: 0x0D\0x0A AT 0x0D\0x0A
если тут же повторять шаг 1, то опять возвращает пустую строку...
и так со всеми командами.
ни у кого нет мыслей по этому поводу? может это какие-то настройки SIM300?
ошибся когда писал:
4. модуль возвращает: 0x0D\0x0A AT 0x0D\0x0A 0x0D\0x0A OK 0x0D\0x0A
|
|
|
|
|
Jan 7 2008, 05:04
|
Участник

Группа: Участник
Сообщений: 35
Регистрация: 28-12-07
Пользователь №: 33 704

|
кажется начинаю понимать... пишу для контроллера буффер организовал программный. так что вполне возможно что и ошибся где-то. первый раз пишу подобным образом. до этого по другому организовывал обмен. а щас хочется поднять уровень программирования. :-) как я понял из описания: 1.4 AT Command syntax The "AT" or "at" prefix must be set at the beginning of each command line. To terminate a command line enter <CR>. Commands are usually followed by a response that includes.”<CR><LF><response><CR><LF>” Throughout this document, only the responses are presented, <CR><LF> are omitted intentionally. модуль всегда возвращает следующую строку: <CR><LF><ответ><CR><LF>. а если то, что ты говоришь правильно, то получается что при возврате эха он отсылает обратно мою посылку один в один. без первоначальных <CR><LF> это объясняет почему я принимаю первый раз пустую строку. потому что я ищу начало строки по первому входжению в нее <CR>, а её конец по второму вхождению <CR>. поэтому эхо я понимаю как всеголишь начало первой строки, а начало ОК как её конец. при таком приеме корректная синхронижация наступает только при второй посылке. :-) так что похоже опять я дурак. а модуль молодец :-) буду переписывать
|
|
|
|
|
Jan 7 2008, 12:41
|

Местный
  
Группа: Свой
Сообщений: 425
Регистрация: 17-07-06
Из: Россия МО
Пользователь №: 18 877

|
Цитата модуль всегда возвращает следующую строку: <CR><LF><ответ><CR><LF>. Да в заводских установках. Формат ответа можно поменять. Не помню какой камандой, надо покопаться. Вообще если работать с МК я эхо отключаю. Мешается, лишние символы обрабатывать зачем. Посмотри команду ATV Set result code format mode Кстати пока баловался с автоботрейтом выяснилось что модули SIM300D с последней 13-й прошивкой его не имеют. При IPR=0 работают только на 115200. Похоже скоро будет след. прошивка.
|
|
|
|
|
Jan 8 2008, 04:30
|
Участник

Группа: Участник
Сообщений: 35
Регистрация: 28-12-07
Пользователь №: 33 704

|
я раньше тоже отключал эхо. :-) а щас решил оставить. удобным кажется то, что модуль возвращает команду. сразу ясна чего он там хочет.
вобщем, с твоей неоценимой помощью разобрался с форматом посылки. :-) теперь стабильно работает и с первого раза. :-) спасибо боольшое.
а тебе не приходилось решать задачу - сделать гаратнированный дозвон до абонента?
я как-то делал это с помощью команд AT+CPAS и АТ+CEER. как-то гомоздко получилось на мой взгляд, но работало стабильно.
вообще говоря руки бы оторвать тому, кто описание на эти модули делает. оно блин как справочник-памятка и если ты не сильно владеешь материалом, то помощь от него весьма условная.
судя по описанию модуль возвращает строку CONNECT... при каком типе звонка? эта настройка по умолчанию или ей надо как-то активизировать?
вопросы детские канешно... ну а кому щас легко? :-)
|
|
|
|
|
Jan 8 2008, 05:34
|
Участник

Группа: Участник
Сообщений: 35
Регистрация: 28-12-07
Пользователь №: 33 704

|
уважаемый Harbinger нет ли у вас ICQ? :-) а то не савсем удобно и долго задавать все интересующие вопросы в форуме. :-) Цитата(олег_уфа_81 @ Jan 8 2008, 10:33)  уважаемый Harbinger нет ли у вас ICQ? :-) а то не савсем удобно и долго задавать все интересующие вопросы в форуме. :-) если что - мой номер 289677866
|
|
|
|
|
Jan 8 2008, 06:37
|
Участник

Группа: Участник
Сообщений: 35
Регистрация: 28-12-07
Пользователь №: 33 704

|
попробовал команду AT+CLCC. результаты получил следующие:
при входящем звонке: +CLCC: 1,1,4,0,0,"номер входященго звонка",145,""
при исходящем звонке: +CLCC: 1,0,3,0,0,"набираемый номер",145,""
при исходящем звонке, и поднятой принимающей стороной трубке: +CLCC: 1,0,0,0,0,"набираемый номер",145,""
если просто режим ожидания: OK
просвятите пожалуйста о формате ответа на запрос AT+CLCC
для примера: +CLCC: 1,1,4,0,0,"номер входященго звонка",145,""
[+CLCC: <id1>,<dir>,<stat>,<mode>,<mpty>[,<number>,<type>[,“”]] [<CR><LF>+CLCC: <id2>,<dir>,<stat>,<mode>,<mpty>[, <number>,<type>[,“”]] [...]]] OK
вроде как: id1 = 1 что такое этот id? dir = 1 - это направление звонка входящий/исходящий? stat = с этим вопросов нет. это статус текущего звонка. mode и mpty тоже вопросов не вызывают...
насколько я понимаю в ответе присутствуют id2... и т.д. если используется что-то типа конференц связи? или я ошибаюсь?
то есть при одном входящем звонке должно быть что-то вроде:
<CR><LF>+CLCC: <id1>,<dir>,<stat>,<mode>,<mpty>[,<number>,<type>[,“”] <CR><LF>OK<CR><LF>
особый интерес представляет точное расположение сиволов <CR><LF> в строке ответа.
никто этот вопрос не изучал? :-)
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|