Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Обнаружение перезапуска SIM900x
Форум разработчиков электроники ELECTRONIX.ru > Интерфейсы > Форумы по интерфейсам > Сотовая связь и ее приложения
Frolov Kirill
Приём какой последовательности символов из последовательного порта можно считать признаком тихого перезапуска (когда он просто пишет RDY, перезапускается и делает вид, что работает дальше, только половину настроек не сохранил) ?

"RDY" нельзя (может встретиться в ответе на команду).

А последовательность FE FE FE FE )(идёт перед 0D 0A RDY 0D 0A), похоже, можно. Но где в документации гарантируется получениие FE FE FE FE ?

PS: а если у меня через UDP бинарные данные, там же вполне может быть и FE FE FE FE... Ещё одна причина, почему данные должны быть в HEX.

PPS: почему бы не использовать BREAK в таком случае (со стороны модема), но похоже, он это не умеет. И DSR у него нет.
_Артём_
Цитата(Frolov Kirill @ Mar 18 2013, 17:54) *

Может использовать STATUS?

Цитата(Frolov Kirill @ Mar 18 2013, 17:54) *
PS: а если у меня через UDP бинарные данные, там же вполне может быть и FE FE FE FE... Ещё одна причина, почему данные должны быть в HEX.

UDP/TCP данные можно предварять заголовком (+IPD<длина>:) или запрашивать их когда нужно программе в МК, а не когда модем решит выдать данные.
Aurochs
Цитата(Frolov Kirill @ Mar 18 2013, 17:54) *
"RDY" нельзя (может встретиться в ответе на команду).

Очень интересно. Это же на какую-такую команду Вам удалось получить ответ RDY?
andrewlekar
RDY и +CPIN: READY стоит использовать как индикаторы перезапуска. Также NORMAL POWER DOWN стоит отслеживать.
Frolov Kirill
Цитата(_Артём_) *
Может использовать STATUS?


При перезапуске программы в модеме состояния сигналов могут не изменяться.

Цитата(_Артём_ @ Mar 19 2013, 01:07) *
UDP/TCP данные можно предварять заголовком (+IPD<длина>:) или запрашивать их когда нужно программе в МК, а не когда модем решит выдать данные.


Это не значит, что в принимаемых данных не может быть слова "RDY". Или что модем не может перезапуститься в этот момент.

Цитата(Aurochs @ Mar 19 2013, 01:59) *
Очень интересно. Это же на какую-такую команду Вам удалось получить ответ RDY?


Это бывает происходит и без команд и в ответ на разные команды, которые в другое время выполняются без проблем. Часто при отправке SMS. Но статистики никто не собирал и однозначно сказать ничего нельзя. В некоторых версиях модема некоторые команды всегда вызывали перезапуск, но там обошли, да и в новых версиях там нет проблем.

Цитата(andrewlekar @ Mar 19 2013, 09:02) *
RDY и +CPIN: READY стоит использовать как индикаторы перезапуска. Также NORMAL POWER DOWN стоит отслеживать.


Никакое соообщение от модема, вообще никакое, при наличии возможных бинарных данных (из-за +IPD) не может гарантированно сообщать о перезапуске. Потому, что эта же строка может встретиться в передаваемых данных. И не передавать такие строки тоже не вариант. Потому, что модем будет обрабатывать любой принятый UDP-пакет, например, а послать его может из интернета кто угодно.

Пока я склоняюсь к варианту FE FE FE 0D 0A RDY 0D 0A. При условии, что нет приёма (+IPD). Инае этот вариант следует отмести. Либо следует использовать CMUX, но это по ряду причин сложно. Либо обнаруживать факт перезапуска опросом какой-либо настройки, однозначно сбрасываемой при перезапуске. Но какой именно и где гарантия, что оно не изменится в будущем?

Пожелание для SIMCOM: предусмотреть передачу BREAK при перезапуске программы (перед RDY). BREAK внеполосной сигнал и не может встретиться в принимаемых UDP-данных. И/или лучше предусмотреть приём данных в HEX (шеснадцатеричном) виде. Как это сделано для SMS (и на то были веские причины). Тогда данные однозначно не пересекаются с ответами модема. И, наконец, явно указать в документации, что мол посылка FE FE FE FE таки гарантируется.


CADiLO
Я не понял главного - у вас модем САМ ПЕРЕЗАПУСКАЕТСЯ????? Если так - то ищите причину, просто так он этого не делает.
Или питание проседает или на сброс наводка идет.
Потому что если вы его сбрасываете, то всегда знаете момент перезапуска.


andrewlekar
Цитата
Никакое соообщение от модема, вообще никакое, при наличии возможных бинарных данных (из-за +IPD) не может гарантированно сообщать о перезапуске.

Это факт, спорить не буду. Но когда вы читаете данные с сокета, то вы воспринимаете их как данные, а не как команду. Поэтому даже в крайне маловероятном случае перезапуска модуля во время обработки данных с сокета, в худшем случае вы пропустите команду RDY (будет воспринята как часть данных). Для вас так критично в 100% случаев отлавливать перезапуск модема? Или 99,999% будет достаточно?
Цитата
И/или лучше предусмотреть приём данных в HEX (шеснадцатеричном) виде

Это хорошее предложение. Но стек у симкома купленый - менять они там ничё не будут.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.