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

Разбираюсь с Quectel M10 - уже есть траблы ;(

Ну вот, другое дело! Узнаю брата Колю!

нюню дошутишься. милай

 

Оно и видно :lol:

а ты не волнуйся.. всему свое время.. Разъ приходит внезапно.. таки откуда его умники не ждут никогда.. вот так-то милок

таки видать тебя в жизни папа не порол? Видать отца не было? Ну ничего.это не вопрос.. что саслуживаешь получишь по самое некуда.. и не надо искать потом меня с воплями что не предупреждал или причастен. есть многое друг горацио на этом свете- о чем таки не знают ваши мудрецы

Изменено пользователем ЧЕРТ РАМАНов

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


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

Разъ приходит внезапно.. таки откуда его умники не ждут никогда..

Как вижу к тебе он уже пришел... И то, что ты заслужил, то и получил.

ЗЫ. Месть она-то блюдо холодное, но только месть всему миру выглядит просто смешно. Тем более когда местью и не пахнет, а воняет глухой и слепой злобой.

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


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

А почему модем после команд AT+CREG = 1 и AT+CGREG = 1 то отвечает +CREG: 1, +CGREG: 1 то нет???

И как его заставить всегда отвечать???

 

Прошивка M10R05A10S32

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


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

А почему модем после команд AT+CREG = 1 и AT+CGREG = 1 то отвечает +CREG: 1, +CGREG: 1 то нет???

И как его заставить всегда отвечать???

 

Прошивка M10R05A10S32

AT+CREG - это команда запрос. Вы запрашиваете у модуля, зарегистрировалось ли оно? Поэтому задавать ее надо в формате: AT+CREG?

И будет Вам в ответ сообщение со статусом регистрации в соответствии с описанием в документации.

 

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


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

У меня здесь затык. В ответ на запрос AT+C(G)REG? модем отвечает в две строки.

А мне для обработки нужна 1 строчка. Вот и получается, что анализирую ОК, а где зарегился - в родной сети или в роуминге - неизвестно... :(

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


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

У меня здесь затык. В ответ на запрос AT+C(G)REG? модем отвечает в две строки.

А мне для обработки нужна 1 строчка. Вот и получается, что анализирую ОК, а где зарегился - в родной сети или в роуминге - неизвестно... :(

У меня модем отвечает так:

Call ReaTdy

AETE00

OK

 

AT+CREG?

+CREG: 0,1

 

OK

AT+CREG=1

OK

AT+CREG?

+CREG: 1,1

 

OK

AT+CREG=0

OK

AT+CREG?

+CREG: 0,1

 

OK

 

Да, на запрос от выдает 2 строки: первая - ответ на запрос, а вторая - ОК. Все, как документация пишет... Это стандартный ответ для большинства модулей.

post-16335-1298280626_thumb.jpg

Изменено пользователем CupuyC

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


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

У меня так же)

Весь вопрос в этом кусочке:

AT+CREG?

+CREG: 1,1

 

OK

 

У меня алгоритм обработки ответа подразумевает ТОЛЬКО одну строку ответа, а не две. И буфер один. Так что если приходит что-то и где-то в середине есть \r\n - то все, затерто все, что до этого(((

А модем в ответ шлет \r\n+CREG:1,1\r\nOK\r\n и \r\n+CREG:1,1 затирается. Но иногда в ответ на AT+CREG=1 модем отвечает \r\n+CREG:1\r\n? что мне и надо.

Вот и хочу узнать, почему он так себя ведет??? И как его заставить отвечать так постоянно???

Response

TA controls the presentation of an unsolicited result code +CREG: <stat> when <n>=1 and there is a change in the ME network registration status. OK

 

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


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

У меня алгоритм обработки ответа подразумевает ТОЛЬКО одну строку ответа, а не две. И буфер один. Так что если приходит что-то и где-то в середине есть \r\n - то все, затерто все, что до этого(((

В том-то и дело, что у Вас. Если поправить программу - всё будет хорошо.

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


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

Товарищ скорее всего спутал запрос и установку режима ответа.

 

Потому как на

 

>>AT+CREG=1 модем отвечает +CREG:1

 

Модем ему правильно и ответил что стоит первый режим ответов.

 

Ну а разбор правильного ответа - на AT+CREG? скорее всего ему прийдется переписать.

 

Потому как "алгоритм обработки ответа подразумевает ТОЛЬКО одну строку ответа" - это неверно

 

А если ответов будет 3 строки или более (на другие команды например)????

Анализировать нужно по-другому.

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


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

А если ответов будет 3 строки или более (на другие команды например)????

Анализировать нужно по-другому.

 

Именно что по другому. Или если совсем сушняк с памятью или лень делать по людски - сделать хотя бы так чтобы любое количество CR и LF в любой комбинации рассматривались как один конец строки. И разгребать сразу...

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


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

Прога не моя, и работала с MG260. А разбираться в чужой проге... Я и так, пока перестроил ее на M10 запарился. А если еще в ответы лезть... Хотя, если не найду выхода так - придется.

CADiLO, что вы имели ввиду:

<quote>Модем ему правильно и ответил что стоит первый режим ответов.</quote>

Модем же <stat> отвечает, или я не прав?

И как его

Изменено пользователем MiDV

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


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

CADiLO, что вы имели ввиду:

 

По видимому он имел в виду, что у +C(G)REG есть 2 разных формата ответов - на команду запроса он один а как unsolicited - другой. Оба начинаются на +C(G)REG:... Это еще вдобавок к тому что разные режимы ответа есть, которые тоже кое что меняют.

 

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

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


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

Я так понял, что при команде AT+CREG=<n> получаем разные незапрашиваемые ответы.

Unsolicited result code

If <n>=1 and there is a change in the ME network registration status

+CREG: <stat>

Где <stat> - статус регистрации.

Т.Е., как я понял, на команду AT+CREG=1 я должен получить ответ: ОК и незапрошенный ответ:

+CREG: <stat>, что иногда и получаю.

От чего зависит наличие или отсутствие ответа?

От времени, прошедшего с момента получения предыдущей команды или еще как?

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


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

Я так понял, что при команде AT+CREG=<n> получаем разные незапрашиваемые ответы.

Unsolicited result code

If <n>=1 and there is a change in the ME network registration status

+CREG: <stat>

Где <stat> - статус регистрации.

Т.Е., как я понял, на команду AT+CREG=1 я должен получить ответ: ОК и незапрошенный ответ:

+CREG: <stat>, что иногда и получаю.

От чего зависит наличие или отсутствие ответа?

От времени, прошедшего с момента получения предыдущей команды или еще как?

 

Нет!

 

Незапрошенный ответ передается далеко не всегда, а только по изменению состояния модема. Если команда не привела к изменению состояния - кроме ОК ничего не будет.

 

А вот форматы незапрошенного сообщения и ответа на команду запроса AT+CREG? - разные, хотя оба начинаются с +CREG:

 

Так что либо поллить командой запроса отключив unsolicited, либо писать полноценный обработчик который подхватит любые вариации формата ответа и в произвольно взятый момент времени.

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


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

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

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

Гость
К сожалению, ваш контент содержит запрещённые слова. Пожалуйста, отредактируйте контент, чтобы удалить выделенные ниже слова.
Ответить в этой теме...

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

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

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

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

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

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