Перейти к содержанию
    

SIM300 продолжает зажигать

Прошивка вся какая-то настолько асинхронная, что живет своей жизнью и просыпается в самые неожиданные моменты - в результате ответы модема непредсказуемо меняются местами и путаются.

 

Допустим, SMS номер один отсутствует (уже стерто), в наличии есть SMS номер 2. Пробуем читать SMS по порядку в терминалке:

 

AT+CMGR=1

OK

AT+CMGR=2

+CMGR: 1,,155

0791.... и т.д.

 

OK

 

Все нормально, строго по доке.

 

Теперь делаем то же самое, но быстро - например, повесив эти две команды на хоткеи терминалки и нажимая их с небольшой паузой, или делаем крохотную тестовую программку на управляющем контроллере, которая ждет ответа (OK <cr> <lf>) на первую команду и немедленно посылает вторую:

 

AT+CMGR=1

OK

AT+CMGR=2

OK

 

+CMGR: 1,,155

0791....

 

 

Обратите внимание, где теперь находится OK, а где текст (+CMGR)! Приплыли. Разумеется, управляющая программа на такой авангард реагирует несколько нервно.

 

Проверялось на 12-й на 14-й прошивке, поведение аналогичное.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Дык ить не успевает он просто... Пока в симку обратится, пока она передаст... Поэтому я в прошивках после всех команд, задействующих сим, задержку не менее 0,1с делаю и только потом обрабатываю ответ...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Тут все несколько хуже - по общепринятому стандарту, да и по самой же симкомовской доке сначала должна выдаваться "содержательная" часть ответа, а потом OK/ERROR и т.п., говорящее об окончании обработки команды. Когда же порядок ответов меняется по желанию левой пятки, совершенно неясно, как обрабатывать - ждать, несмотря на OK, "а вдруг оно все-таки ответит" ? Сколько ждать? Напомню, что при отсутствии SMS в ячейке в ответ на команду чтения приходит голый OK.

 

Задержку _перед_ командой я, конечно, поставлю, но... как-то криво все это.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Задержку _перед_ командой я, конечно, поставлю, но... как-то криво все это.

Ха... Я вот, когда экспериментировал, пару раз получал ответы от двух последовательных команд в обратном порядке... И ничего... Челюсть подобрал, понял, что без задержек никуда, и больше голову не забиваю...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Кстати, интересно, кто сталкивался с проблемами потери модулем сети через некоторое время непрерывной работы, каким это было время? Я вот думаю, ставить мне ключи на питание или нет, жалко одну ногу контроллера под это отдавать... Тестовая партия из 20 штук на SIM300D с 10 прошивкой проработала непрерывно уже 1,5 месяца и до сих пор глюков не замечено. Может проблема не столько в прошивке, сколько в том же питании, например? Я, в отличие от даташита, поставил не танталовый на 100 мкФ, а LowESR электролит на 1000мкФ непосредственно рядом с модулем. И антенна подключается почти к самим выводам - линия меньше 1 см длиной.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

задержка ответов - проблема в планировщике. KADAX рулит :-) у меня свои куски под сим писаны - а как работет планировщик - до сих пор не вкурю... по крайней мере блокировок пока не нашел... странно как это несколько апп одновременно в порт не срут.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

А как Вам такое:

Работаем с модемом через GPRS, HTTP-соединение открываем, передаем данные, в ответ ждем того же. Ждем, ждем. Бух, выпадает "CONNECTION CLOSED". Мля, епрст, долго ругаемся, ставим флажок повторить позже, и делаем IPSHUT. И тут на тебе, приезжают данные... После закрытия соединения он мне вываливает 390 байт. Это так китайцы, наверно, думали: лучше поздно, чем никогда.

Я почему говорю про никогда, потому что в режиме "transparent" ответ вообще не приходит. Круто! Кста, гневное письмо, отправленное в евромобайл, с просьбой передать узкоглазым, так и осталось без ответа.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

К евромобайлу бесполезно обращаться.

Они сами технической поддержкой не занимаются.

Сам пробовал их допросить.

Толкового ответа так и не получил. И то реакция была только потому (мне кажется) что я им постоянно названивал.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

К евромобайлу бесполезно обращаться.

Тогда к кому? Узкоглазые на письма упорно не отвечают...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Сегодня поставили на прогонку уст-во с модемом SIM300. Оно постоянно лезет на сервер по GPRS. Ну и так уж получилось, что сервер сдох. После нескольких попыток модем на комманду AT+CIPSTART долго думал, а потом вдруг потерял сеть. И все. "ОК" или "ERROR" так и не появился. Такое впечатление, что повис. Оператор говорит, что абонент вне сети. Питание в норме, "POWER DOWN" не было. ЧТо за фигня?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

>>>>>Кстати, интересно, кто сталкивался с проблемами потери модулем сети через некоторое время непрерывной работы, каким это было время? Я вот думаю, ставить мне ключи на питание или нет, жалко одну ногу контроллера под это отдавать...

 

Эта ошибка признана Симкомом - исправлена в версиях 12 и выше.

с меньшими версиями сеть нужно контролировать и иметь возможность снять питание.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

..... и иметь возможность снять питание.

 

Я бы добавил, что такую возможность необходимо иметь всегда. И не только с SIM300..

По опыту работы с десятком разных модемов и модулей могу честно сказать, что периодически сбрасывать питание приходится на всех без исключения.

Не дождался RING'а 3 часа - сброс на 10 сек, не смог выйти в GPRS - туда-же..

 

метод туповатый, зато избавляет от исследований чужих багов.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

>>>>>Кстати, интересно, кто сталкивался с проблемами потери модулем сети через некоторое время непрерывной работы, каким это было время? Я вот думаю, ставить мне ключи на питание или нет, жалко одну ногу контроллера под это отдавать...

 

Эта ошибка признана Симкомом - исправлена в версиях 12 и выше.

с меньшими версиями сеть нужно контролировать и иметь возможность снять питание.

 

то есть +cfun=0, +cfun=1 недостаточно? и выключения через cpowd тоже?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Я бы добавил, что такую возможность необходимо иметь всегда. И не только с SIM300..

По опыту работы с десятком разных модемов и модулей могу честно сказать, что периодически сбрасывать питание приходится на всех без исключения.

Не дождался RING'а 3 часа - сброс на 10 сек, не смог выйти в GPRS - туда-же..

 

метод туповатый, зато избавляет от исследований чужих багов.

+1 :)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...