реклама на сайте
подробности

 
 
> Атомарность выполнения AT-команды
koluna
сообщение Jan 18 2016, 18:33
Сообщение #1


Профессионал
*****

Группа: Участник
Сообщений: 1 040
Регистрация: 3-01-07
Пользователь №: 24 061



Всем привет!

Может ли в процессе выполнения AT-команды, т. е., между запросами AT+XXX и ответами типа OK, ERROR, ... от модуля/модема придти какой-нибудь URC?
Ну, кроме +CME/CMS и ответов с данными...
Задекларировано ли это где-нибудь?

Код
AT+XXX ...

+ZZZ или что-то еще

+XXX ...
OK | ERROR ...


--------------------
Благодарю заранее!
Go to the top of the page
 
+Quote Post
4 страниц V  < 1 2 3 4 >  
Start new topic
Ответов (15 - 29)
ArtemKAD
сообщение Jan 20 2016, 10:56
Сообщение #16


Профессионал
*****

Группа: Свой
Сообщений: 1 508
Регистрация: 26-06-06
Из: Киев
Пользователь №: 18 364



>>Чем больше перечень, тем больше памяти нужно.

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

>>Что "CALL READY\r\n", что "SIMCOM_Ltd\r\n" являются чисто строками, без цифр, причем длиной 10 символов.

Зачем искать "SIMCOM_Ltd\r\n"? Эта строка не несет хоть какую либо информацию. Тип производителя модема с которым работает программа и так известен.

>>По косвенным признакам одинаковы.

Зачем косвенные признаки - это уникальные строки.

>>Если искать "CALL READY\r\n", то "Call Ready\r\n" можно никогда и не найти, в зависимости от реализации поиска.

И зачем нужен такой поиск который не может найти в потоке уникальную строку?

>>Мало того, в 800й серии добавилось еще и "SMS Ready".

И правильно сделал что добавил. Опять-же уникальная строка которая сообщает когда модуль готов отправлять SMS.
Go to the top of the page
 
+Quote Post
Alechek
сообщение Jan 20 2016, 12:24
Сообщение #17


Профессионал
*****

Группа: Свой
Сообщений: 1 241
Регистрация: 15-11-05
Из: Челябинск
Пользователь №: 10 882



Цитата(ArtemKAD @ Jan 20 2016, 15:56) *
>>Чем больше перечень, тем больше памяти нужно.
Пол сотни образцов для всех ответов или URC включая GPRS не займут много памяти.

Ну да, (10 байт стоки+ 12-16 байт что это такое и как с ним боротся)*50 = 1кб - таблица только. Действительно, фигня.... Особенно для ардуинщика с мегой 16

Цитата(ArtemKAD @ Jan 20 2016, 15:56) *
Зачем искать "SIMCOM_Ltdrn"? Эта строка не несет хоть какую либо информацию. Тип производителя модема с которым работает программа и так известен.

Я не про это. При включении модуля запрашиваем тип модема. Ждем строку. Прилетает вполне такая строка "Call Ready". Мы таких модемов не знаем, ахтунг!

Цитата(ArtemKAD @ Jan 20 2016, 15:56) *
>>Мало того, в 800й серии добавилось еще и "SMS Ready".
И правильно сделал что добавил. Опять-же уникальная строка которая сообщает когда модуль готов отправлять SMS.

Опять типичный подход для ардуинщика. Сделать обработку +CME 314 /SIM BUSY/ не судьба. Надо ждать манну с неба сообщение.
Go to the top of the page
 
+Quote Post
CADiLO
сообщение Jan 20 2016, 12:33
Сообщение #18


Гуру
******

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



>>> При включении модуля запрашиваем тип модема. Ждем строку. Прилетает вполне такая строка "Call Ready".

Ну и кто вам доктор? Зачем общаться с модулем до того как он готов?
Запросите тип модема после прилета всех строк инициализации.
Еще в FAQ по 300й серии было написано - дождаться готовности модуля, иначе команда может быть проигнорирована.
Одни друзья пытались скорость до готовности устанавливать, а потом удивлялись что модем слетал в автободинг.


--------------------
Не можна втрачати надію. Не можна здаватися до останньої миті. Можливо саме вона, остання мить, принесе весну, яка стане початком нового життя.
Go to the top of the page
 
+Quote Post
Alechek
сообщение Jan 20 2016, 12:56
Сообщение #19


Профессионал
*****

Группа: Свой
Сообщений: 1 241
Регистрация: 15-11-05
Из: Челябинск
Пользователь №: 10 882



Цитата(CADiLO @ Jan 20 2016, 17:33) *
>>> При включении модуля запрашиваем тип модема. Ждем строку. Прилетает вполне такая строка "Call Ready".
Ну и кто вам доктор? Зачем общаться с модулем до того как он готов?
Запросите тип модема после прилета всех строк инициализации.

Ответ "OK" является готовностью модуля?

Так уж вышло, что наше изделие пережило в себе всю последовательность SIM300D-SIM900D-SIM900-SIM900R-SIM900DS, теперь будет пережовывать и SIM800C-DS.
И на весь этот табор одна прошивка. И в ней надо определять тип модема, чтобы потом плясать под него. Как минимум, с аудиотрактом.
Выпустит квиктел или еще кто вперед симкома нормальный 2хсимочный модем 3Г, будет стоять и он. И поддерждиваться в той же самой единой прошивке.

Поэтому завязываться на специфичные фишки вообще не хочется. Есть стандарт, иногда его даже читают. Те, кто не читает, пишет свое, потом доказывает, что он сделал правильно/лучше/. Вместо поддержки CME/CMS изобретают свой велосипед и доказывают, что у них колеса круглее.
Go to the top of the page
 
+Quote Post
CADiLO
сообщение Jan 20 2016, 13:34
Сообщение #20


Гуру
******

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



Вам виднее как решать задачу. И кстати "OK" не является готовностью.
Для 800 серии готовность наступает после этих двух сообщений.

Call Ready - Module is powered on and phonebook initialization procedure is over.
SMS Ready - Module is powered on and SMS initialization procedure is over


Двухсимочный 3G пока в стадии хотелок, насколько я знаю его ни у кого нет в планах.
А вот 2G решение оказалось прозаичнее - народ посмотрев на SIM800C-DS и обсудив с нами варианты, предпочел ставить по два SIM800C в устройство.
Получаем два полноценных тракта, а не "только на прием", надежнее, паять проще, да и по стоимости почти столько же выходит.
SIM800C объемы хорошие, есть где в цене подвинуться. А SIM800C-DS дешеветь не будет - нет у него популярности из-за "вывернутости" выводов.


--------------------
Не можна втрачати надію. Не можна здаватися до останньої миті. Можливо саме вона, остання мить, принесе весну, яка стане початком нового життя.
Go to the top of the page
 
+Quote Post
koluna
сообщение Jan 20 2016, 13:35
Сообщение #21


Профессионал
*****

Группа: Участник
Сообщений: 1 040
Регистрация: 3-01-07
Пользователь №: 24 061



Цитата(Alechek @ Jan 19 2016, 12:33) *
Ну, это уже совсем жесть. Которая никак не соотносится со стандартом GSM 07.07


Так все-таки такое поведение (разрыв строки в любом месте) - баг или нет? sm.gif


--------------------
Благодарю заранее!
Go to the top of the page
 
+Quote Post
ArtemKAD
сообщение Jan 20 2016, 13:36
Сообщение #22


Профессионал
*****

Группа: Свой
Сообщений: 1 508
Регистрация: 26-06-06
Из: Киев
Пользователь №: 18 364



>>Ну да, (10 байт стоки+ 12-16 байт что это такое и как с ним боротся)*50 = 1кб

"12-16 байт что это такое и как с ним боротся" это я так понимаю два адреса - адрес образца и адрес процедуры вызываемой при появлении образца. 4 байта, а никак не 12-16.
Кроме того, вся эта таблица всё равно в коде так или иначе будет только будет она разбросана по разным местам, что крайне затруднит модификацию кода и почти наверняка займёт еще больше места.

>>Особенно для ардуинщика с мегой 16

Ну не знаю, у меня в 16кБ влезает простой треккер с обработкой еще и GPS-потока. Правда без GPRS...

>>Я не про это. При включении модуля запрашиваем тип модема. Ждем строку. Прилетает вполне такая строка "Call Ready". Мы таких модемов не знаем, ахтунг!

Так на кой тебе ждать строку причем конкретную строку? Лови ответ с "SIMCOM_Ltd\r\n" аналогично как любое асинхронное сообщение. Тогда тебе абсолютно все равно будет что у тебя там пришло в ответе первым "Call Ready\r\n" или "SIMCOM_Ltd\r\n" или вообще SMS привалила. Не говоря уже о вопросе зачем запрашивать тип модема если ответ заранее известен.

>>Сделать обработку +CME 314 /SIM BUSY/ не судьба. Надо ждать манну с неба сообщение.


Так "+CME 314 /SIM BUSY/" это так-же "манна с неба сообщение". Само собой +СМЕ обработчик нужен по-любому(хотя можно и ждать +CMGS: или её отсутствие по таймеру), вот только как по мне ломиться в модем когда он еще не готов принять, это попытка пройтись по граблям не набив себе шишек. Не желаете ловить "SMS Ready" - запусти таймер с момента включения модема.
Go to the top of the page
 
+Quote Post
CADiLO
сообщение Jan 20 2016, 13:44
Сообщение #23


Гуру
******

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



>>>Так все-таки такое поведение (разрыв строки в любом месте) - баг или нет?

С точки зрения пользователя и написания обработчика - можно считать багом.
Но вот с точки зрения GSM cтека - нормальное явление. Ну не додумали малость когда стек писали.
А на сегодня исправлять это уже никто не станет.
Вероятность такого события конечно мала, но случиться может.


--------------------
Не можна втрачати надію. Не можна здаватися до останньої миті. Можливо саме вона, остання мить, принесе весну, яка стане початком нового життя.
Go to the top of the page
 
+Quote Post
Alechek
сообщение Jan 20 2016, 13:58
Сообщение #24


Профессионал
*****

Группа: Свой
Сообщений: 1 241
Регистрация: 15-11-05
Из: Челябинск
Пользователь №: 10 882



Цитата(CADiLO @ Jan 20 2016, 18:34) *
Вам виднее как решать задачу. И кстати "OK" не является готовностью.
Для 800 серии готовность наступает после этих двух сообщений.

Call Ready - Module is powered on and phonebook initialization procedure is over.
SMS Ready - Module is powered on and SMS initialization procedure is over

Вот я тоже думаю, для кого эта команда:
Цитата
8.1 Phone activity status +CPAS
Defined values
<pas>:
0 ready (ME allows commands from TA/TE)
1 unavailable (ME does not allow commands from TA/TE)
2 unknown (ME is not guaranteed to respond to instructions)


А еще
+CME ERROR: 14 /SIM busy/ для +CPBR
и
+CMS ERROR: 314 /SIM busy/ для +CMGL

Цитата( @ Jan 20 2016, 18:34) *
А вот 2G решение оказалось прозаичнее - народ посмотрев на SIM800C-DS и обсудив с нами варианты, предпочел ставить по два SIM800C в устройство.

Возьму на заметку.

Цитата(CADiLO @ Jan 20 2016, 18:44) *
>>>Так все-таки такое поведение (разрыв строки в любом месте) - баг или нет?
С точки зрения пользователя и написания обработчика - можно считать багом.
Но вот с точки зрения GSM cтека - нормальное явление. Ну не додумали малость когда стек писали.

Писатели стека тоже значит проигнорили GSM 07.07 и V.25ter:
Прикрепленное изображение

Все промежуточные ответы показаны с "+" /Все промужуточные и асинхронные без "+" - наследие V.25ter./.
Разрыва в промежуточных сообщениях нет.
Все команды заканчиваются "final result code".



Да, в тексте нигде требования нет. Но и не все поизводители микроволновок пишут, что в них нельзя сушить кота.
Go to the top of the page
 
+Quote Post
CADiLO
сообщение Jan 20 2016, 14:09
Сообщение #25


Гуру
******

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



Вы ошибаетесь - CPAS это состояние соединения, а не модуля.

<pas>
0 Ready (MT allows commands from TA/TE)
2 Unknown (MT is not guaranteed to respond to tructions)
3 Ringing (MT is ready for commands from TA/TE, but the ringer is active)
4 Call in progress (MT is ready for commands from TA/TE, a call is in progress)

Кстати рудимент оставшийся от мобилок.
Для модулей вместо CPAS давно уже используют более информативную CLCC


--------------------
Не можна втрачати надію. Не можна здаватися до останньої миті. Можливо саме вона, остання мить, принесе весну, яка стане початком нового життя.
Go to the top of the page
 
+Quote Post
Alechek
сообщение Jan 20 2016, 14:27
Сообщение #26


Профессионал
*****

Группа: Свой
Сообщений: 1 241
Регистрация: 15-11-05
Из: Челябинск
Пользователь №: 10 882



Цитата(ArtemKAD @ Jan 20 2016, 18:36) *
>>Ну да, (10 байт стоки+ 12-16 байт что это такое и как с ним боротся)*50 = 1кб
"12-16 байт что это такое и как с ним боротся" это я так понимаю два адреса - адрес образца и адрес процедуры вызываемой при появлении образца. 4 байта, а никак не 12-16.
Кроме того, вся эта таблица всё равно в коде так или иначе будет только будет она разбросана по разным местам, что крайне затруднит модификацию кода и почти наверняка займёт еще больше места.

Вот когда разбросана по разным местам - тут вообще труба. В одном месте надо таблицу делать, чтобы не запутаться.

PS Без всяких таблиц с простейшей поддержкой SMS-GPRS один из наших трекеров на ARM скушал
40 008 bytes of readonly code memory
704 bytes of readonly data memory
13 112 bytes of readwrite data memory (+ 619 absolute)

из них на модемную часть ушло 4.5 кб флеша и 600 байт на PDU.

PS:
На затравку: чем отличается +GREG URC и промежуточный ответ и как эту смесь обрабатывать, когда от запроса до получения OK приходят обе. /эт по поводу таблиц/



Цитата(CADiLO @ Jan 20 2016, 19:09) *
Вы ошибаетесь - CPAS это состояние соединения, а не модуля.

Кстати рудимент оставшийся от мобилок.
Для модулей вместо CPAS давно уже используют более информативную CLCC

Может и рудимент, а может и нет.

0 ready (ME allows commands from TA/TE)
1 unavailable (ME does not allow commands from TA/TE)

ME Mobile Equipment, e.g. a GSM phone (equal to MS; Mobile Station)
TA Terminal Adaptor, e.g. a GSM data card (equal to DCE; Data Circuit terminating Equipment)
TE Terminal Equipment, e.g. a computer (equal to DTE; Data Terminal Equipment)

В нашем случае ME - это модуль, совмещенный с TA. И он либо готов принимать команды, либо не готов.

По крайней мере, команды +CG* дают информацию именно по ME:
5.2 Request model identification +CGMM
Execution command causes the TA to return one or more lines of information text <model>, determined by the ME
manufacturer, which is intended to permit the user of the TA to identify the specific model of the ME to which it is
connected to.

Таким образом, при +CPAS: 0 я со спокойной совестью могу чихать на всякие "RDY" и работать с ME через TA хотя бы в плане идентификации оборудования.
А доступность TA можно проверить по AT->OK
Go to the top of the page
 
+Quote Post
CADiLO
сообщение Jan 20 2016, 14:32
Сообщение #27


Гуру
******

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



Можно конечно и начихать, но если бы все было так просто никто бы эти сообщения не выводил.
sm.gif



--------------------
Не можна втрачати надію. Не можна здаватися до останньої миті. Можливо саме вона, остання мить, принесе весну, яка стане початком нового життя.
Go to the top of the page
 
+Quote Post
Alechek
сообщение Jan 20 2016, 14:41
Сообщение #28


Профессионал
*****

Группа: Свой
Сообщений: 1 241
Регистрация: 15-11-05
Из: Челябинск
Пользователь №: 10 882



Цитата(CADiLO @ Jan 20 2016, 19:32) *
Можно конечно и начихать, но если бы все было так просто никто бы эти сообщения не выводил.
sm.gif

Ага, возвращаемся к истокам: кто-то стандарты читает, а кто-то изобретает велосипед. wink.gif
Я просто констатирую факты. Без обид.
Go to the top of the page
 
+Quote Post
CADiLO
сообщение Jan 20 2016, 14:49
Сообщение #29


Гуру
******

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



Дык какие обиды если в том же 07.07 две трети носит рекомендательное, а не обязательное исполнение.
И если там написано "рекомендовано", то я предпочту пользоваться документацией именно производителя железки,
так как там будет реализованая трактовка, а не предусматриваемая. А при сомнениях еще и запрошу - что именно имелось в виду.


--------------------
Не можна втрачати надію. Не можна здаватися до останньої миті. Можливо саме вона, остання мить, принесе весну, яка стане початком нового життя.
Go to the top of the page
 
+Quote Post
ArtemKAD
сообщение Jan 20 2016, 14:55
Сообщение #30


Профессионал
*****

Группа: Свой
Сообщений: 1 508
Регистрация: 26-06-06
Из: Киев
Пользователь №: 18 364



Цитата(Alechek @ Jan 20 2016, 16:27) *
PS Без всяких таблиц с простейшей поддержкой SMS-GPRS один из наших трекеров на ARM скушал
40 008 bytes of readonly code memory
704 bytes of readonly data memory
13 112 bytes of readwrite data memory (+ 619 absolute)

из них на модемную часть ушло 4.5 кб флеша и 600 байт на PDU.

40кБ кода для треккера? Он что, еще и танцевать умеет? Добавка GPRS это 3-4кБ от силы.

Цитата(Alechek @ Jan 20 2016, 16:27) *
PS:
На затравку: чем отличается +GREG URC и промежуточный ответ и как эту смесь обрабатывать, когда от запроса до получения OK приходят обе. /эт по поводу таблиц/

Ну так на кой использовать и то и то одновременно? Кто тебе от этого злобный Буратина?
Go to the top of the page
 
+Quote Post

4 страниц V  < 1 2 3 4 >
Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 20th July 2025 - 20:31
Рейтинг@Mail.ru


Страница сгенерированна за 0.01514 секунд с 7
ELECTRONIX ©2004-2016