|
Темп выдачи команд в SIM900, обмен затыкается |
|
|
|
Sep 6 2012, 11:02
|
Знающий
   
Группа: Свой
Сообщений: 624
Регистрация: 15-06-10
Из: Россия
Пользователь №: 57 939

|
Цитата(Hoodwin @ Sep 6 2012, 12:07)  Осталось теперь разобраться, что значит лучше выдерживать какие то разумные паузы между командами? Существует описание, поясняющее величину пауз? желательно в измеряемых единицах: мкс, мс, с, а не абстрактно "разумных". Я собственно, про это и спрашиваю с самого начала.  А не проще просто ждать ответов на команды? На локальные команды - ОК и прочее возвращает моментально. А "эфирные" - в любом случае ждать, хочете вы этого или нет. Не надо никаких задержек. Работайте так, как будто вместо контроллера - человек работающий через гипертерминал. Выигрыш во времени всё равно мизерный. Есть рекомендации на некоторые команды - CIICR например, - где надо и минуту ждать. Регистрация в сети - тоже не меньше минуты ожидания.
|
|
|
|
|
Sep 6 2012, 11:26
|
Знающий
   
Группа: Свой
Сообщений: 624
Регистрация: 15-06-10
Из: Россия
Пользователь №: 57 939

|
Цитата(Hoodwin @ Sep 6 2012, 14:14)  Так я же вроде бы написал, что мы ждем ответов и посылаем следующее после приема ОК или ERROR. Но вот уперлись в то, что иногда это почему-то останавливается. Я пытаюсь разобраться, в чем дело. Как человек оно вроде работает, а вот как автомат оно гораздо быстрее в него команды пихать может. Меня даже не напрягает подождать чуть больше в командах конфигурации, я не хочу двух вещей: 1) чтобы была очень низкая скорость передачи данных через инет (по сранению с эфирной скоростью). 2) чтобы вся эта стейт-машина могла долго жить без зависаний, а в редких случаях лечилась вочдогом с переинициализацией, что в целом не влияло бы на характеристики производительности и доступности. Баудрейт поставте фиксированный и кварц "чётный". Кстати а перед переходом в прозрачный режим сменить скорость не резон? Я не пробовал, но по идее то работать должно. Надо проверить.
|
|
|
|
|
Sep 6 2012, 11:43
|
Мыслящий
    
Группа: Свой
Сообщений: 1 729
Регистрация: 20-07-07
Из: Самара
Пользователь №: 29 270

|
Цитата(MKdemiurg @ Sep 6 2012, 15:26)  Кстати а перед переходом в прозрачный режим сменить скорость не резон? Я не пробовал, но по идее то работать должно. Надо проверить. AT+IPR на лету работает. Вот только OK на него ждать не стоит. Хотя проверял я это только в ручном режиме. В автомате такого не делал, не приходилось. Да и с затыками такими что-то не сталкивался....
--------------------
FAQ по ADФорум по ADЗнание только тогда знание, когда оно приобретено усилиями своей мысли, а не памятью. ...стоит запомнить ...вернее задуматься.
|
|
|
|
|
Sep 6 2012, 12:59
|
Знающий
   
Группа: Участник
Сообщений: 881
Регистрация: 21-03-10
Из: _// \\_
Пользователь №: 56 107

|
Не понял, зачем менять скорость?
Артем Ну проблема в том, что у модуля не очень то унифицирована система ответов. Кроме простых ОК и ERROR, бывают еще всякие ответы unsolicited, причем они не обязательно с + начинаются, не обязательно вызваны действиями, которые мы до этого программировали. В итоге все это приводит к тому, что нет никакой гарантии, что тот автомат, который у нас работает, не уйдет в какое-нибудь нелепое ожидание. Например, ждем OK, а пришло уведомление об СМС. Послали AT+CIPSTART..., в ответ получаем ERROR, собираемся все заново начинать, но потом через какое-то время "0,ALREADY CONNECTED".
В общем, хочется, чтобы во всем этом многообразии ответов система не ушла в бесконечный цикл долбежки в закрытую дверь, а планомерно откатывалась на более высокий уровень повторной инициализации. И чтобы программа при этом не стала занимать больше, чем вся память МК...
|
|
|
|
|
Sep 6 2012, 13:08
|
Знающий
   
Группа: Свой
Сообщений: 624
Регистрация: 15-06-10
Из: Россия
Пользователь №: 57 939

|
Цитата(Hoodwin @ Sep 6 2012, 15:59)  В общем, хочется, чтобы во всем этом многообразии ответов система не ушла в бесконечный цикл долбежки в закрытую дверь, а планомерно откатывалась на более высокий уровень повторной инициализации. И чтобы программа при этом не стала занимать больше, чем вся память МК... Эээээ...А тайминги и попытки ввести никак? Ну там 10 раз с интервалом в 5 секунд проверит AT+CREG? Или если не получаете CONNECT - перезапустить сессию? ------- Анализируйте только то, что вам надо! А отключение питания вы зря не ввели. 100% придётся грейдить плату.
|
|
|
|
|
Sep 6 2012, 13:25
|

Гуру
     
Группа: Свой
Сообщений: 6 023
Регистрация: 26-08-05
Из: Днепр
Пользователь №: 7 988

|
>>>>Например, ждем OK, а пришло уведомление об СМС. Послали AT+CIPSTART..., в ответ получаем ERROR, собираемся все заново начинать, но потом через какое-то время "0,ALREADY CONNECTED".
Ну это не самое худшее, и решаемо - думаю что все здесь с таким сталкивались на разных модулях, это особенности работы с GSM. Хуже когда добавляется то что у разных операторов поведение может быть разное, затем в разных регионах у одного оператора, затем еще фишки операторов с отступлениями в карточках от стандарта.......
Ну а по поводу обмена вернусь к одной из прозвучавших ранее фраз:
"И таймауты вроде были нормальные, во всяком случае тот же код (буквально, тот же исходник, собранный в Visual Studio 2005) нормально работал с внешней отладкой на 115200. А на микрооконтроллере не завелся. Стали разбираться и выяснили, что обмен встает."
Если с отладкой с компа затыков не было, то копать однозначно стыковку и скорость. Кстати еще момент - плата помыта хорошо? Флюса под модулем не осталось? Конденсатор на VRTC не забыли повесить?
--------------------
Не можна втрачати надію. Не можна здаватися до останньої миті. Можливо саме вона, остання мить, принесе весну, яка стане початком нового життя.
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|