|
SIM300 продолжает зажигать, Чем дальше, тем веселее баги - теперь ответы модема |
|
|
|
Sep 18 2007, 16:04
|
Частый гость
 
Группа: Участник
Сообщений: 142
Регистрация: 20-08-07
Из: Тула
Пользователь №: 29 919

|
Прошивка вся какая-то настолько асинхронная, что живет своей жизнью и просыпается в самые неожиданные моменты - в результате ответы модема непредсказуемо меняются местами и путаются.
Допустим, 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-й прошивке, поведение аналогичное.
|
|
|
|
|
Sep 18 2007, 17:07
|
Участник

Группа: Участник
Сообщений: 60
Регистрация: 12-02-07
Из: Волгоград
Пользователь №: 25 283

|
Дык ить не успевает он просто... Пока в симку обратится, пока она передаст... Поэтому я в прошивках после всех команд, задействующих сим, задержку не менее 0,1с делаю и только потом обрабатываю ответ...
|
|
|
|
|
Sep 19 2007, 11:21
|
Частый гость
 
Группа: Участник
Сообщений: 142
Регистрация: 20-08-07
Из: Тула
Пользователь №: 29 919

|
Тут все несколько хуже - по общепринятому стандарту, да и по самой же симкомовской доке сначала должна выдаваться "содержательная" часть ответа, а потом OK/ERROR и т.п., говорящее об окончании обработки команды. Когда же порядок ответов меняется по желанию левой пятки, совершенно неясно, как обрабатывать - ждать, несмотря на OK, "а вдруг оно все-таки ответит" ? Сколько ждать? Напомню, что при отсутствии SMS в ячейке в ответ на команду чтения приходит голый OK.
Задержку _перед_ командой я, конечно, поставлю, но... как-то криво все это.
|
|
|
|
|
Sep 19 2007, 11:56
|
Участник

Группа: Участник
Сообщений: 60
Регистрация: 12-02-07
Из: Волгоград
Пользователь №: 25 283

|
Цитата(stream @ Sep 19 2007, 15:21)  Задержку _перед_ командой я, конечно, поставлю, но... как-то криво все это. Ха... Я вот, когда экспериментировал, пару раз получал ответы от двух последовательных команд в обратном порядке... И ничего... Челюсть подобрал, понял, что без задержек никуда, и больше голову не забиваю...
|
|
|
|
|
Sep 19 2007, 20:06
|
Участник

Группа: Участник
Сообщений: 60
Регистрация: 12-02-07
Из: Волгоград
Пользователь №: 25 283

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

Группа: Участник
Сообщений: 53
Регистрация: 19-12-05
Пользователь №: 12 391

|
задержка ответов - проблема в планировщике. KADAX рулит :-) у меня свои куски под сим писаны - а как работет планировщик - до сих пор не вкурю... по крайней мере блокировок пока не нашел... странно как это несколько апп одновременно в порт не срут.
|
|
|
|
|
Oct 11 2007, 07:18
|
Участник

Группа: Участник
Сообщений: 23
Регистрация: 14-08-06
Пользователь №: 19 528

|
А как Вам такое: Работаем с модемом через GPRS, HTTP-соединение открываем, передаем данные, в ответ ждем того же. Ждем, ждем. Бух, выпадает "CONNECTION CLOSED". Мля, епрст, долго ругаемся, ставим флажок повторить позже, и делаем IPSHUT. И тут на тебе, приезжают данные... После закрытия соединения он мне вываливает 390 байт. Это так китайцы, наверно, думали: лучше поздно, чем никогда. Я почему говорю про никогда, потому что в режиме "transparent" ответ вообще не приходит. Круто! Кста, гневное письмо, отправленное в евромобайл, с просьбой передать узкоглазым, так и осталось без ответа.
|
|
|
|
|
Oct 12 2007, 06:31
|
Участник

Группа: Участник
Сообщений: 23
Регистрация: 14-08-06
Пользователь №: 19 528

|
Цитата(Master of Nature @ Oct 11 2007, 13:05)  К евромобайлу бесполезно обращаться. Тогда к кому? Узкоглазые на письма упорно не отвечают...
|
|
|
|
|
Oct 19 2007, 06:28
|
Участник

Группа: Участник
Сообщений: 23
Регистрация: 14-08-06
Пользователь №: 19 528

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

Группа: Свой
Сообщений: 44
Регистрация: 8-05-07
Пользователь №: 27 596

|
Цитата(CADiLO @ Oct 19 2007, 11:25)  ..... и иметь возможность снять питание. Я бы добавил, что такую возможность необходимо иметь всегда. И не только с SIM300.. По опыту работы с десятком разных модемов и модулей могу честно сказать, что периодически сбрасывать питание приходится на всех без исключения. Не дождался RING'а 3 часа - сброс на 10 сек, не смог выйти в GPRS - туда-же.. метод туповатый, зато избавляет от исследований чужих багов.
|
|
|
|
|
Oct 19 2007, 19:46
|
Местный
  
Группа: Участник
Сообщений: 221
Регистрация: 8-08-07
Пользователь №: 29 664

|
Цитата(CADiLO @ Oct 19 2007, 11:25)  >>>>>Кстати, интересно, кто сталкивался с проблемами потери модулем сети через некоторое время непрерывной работы, каким это было время? Я вот думаю, ставить мне ключи на питание или нет, жалко одну ногу контроллера под это отдавать...
Эта ошибка признана Симкомом - исправлена в версиях 12 и выше. с меньшими версиями сеть нужно контролировать и иметь возможность снять питание. то есть +cfun=0, +cfun=1 недостаточно? и выключения через cpowd тоже?
|
|
|
|
|
Oct 20 2007, 05:41
|
Участник

Группа: Свой
Сообщений: 40
Регистрация: 29-08-05
Из: новосибирск
Пользователь №: 8 054

|
питание дергать надо
|
|
|
|
|
Oct 31 2007, 20:58
|
Группа: Участник
Сообщений: 11
Регистрация: 31-10-07
Из: SPb
Пользователь №: 31 933

|
Цитата(alexey123 @ Oct 19 2007, 15:37)  Я бы добавил, что такую возможность необходимо иметь всегда. И не только с SIM300.. По опыту работы с десятком разных модемов и модулей могу честно сказать, что периодически сбрасывать питание приходится на всех без исключения. Не дождался RING'а 3 часа - сброс на 10 сек, не смог выйти в GPRS - туда-же..
метод туповатый, зато избавляет от исследований чужих багов. +1
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|