Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: SIM900-GPRS: смена APN -> Error 3
Форум разработчиков электроники ELECTRONIX.ru > Интерфейсы > Форумы по интерфейсам > Сотовая связь и ее приложения
megajohn
Всё делаю согласно sim900_tcpip_application note_v1.02.pdf

первое подключение, передача и закрытие проходят отлично

AT+CGATT=1
AT+CSTT="internet","username","password"
AT+CIICR
AT+CIFSR
AT+CIPSTART="TCP","92.62.56.52","40001"

CONNECT OK

AT+CIPSEND

AT+CIPCLOSE=1

но, вот по ТЗ нужно менять APN, делаю соответственно
AT+CSTT="internet.beeline.ru","beeline","beeline"
и получаю +CME ERROR: 3

раньше чуток работал с телитами, так что всех тонкостей SIM не знаю =(

как корректно сменить APN ?

Еще чего заметил, если AT+CIFSR не отправлять ( ну не хочу я знать какой IP выдан, и всё тут ! ) то CIPSTART тоже возвращает CME ERROR: 3

прошивка 1137B09SIM900M64_ST
xMw
Цитата(megajohn @ Nov 14 2011, 14:06) *
Всё делаю согласно sim900_tcpip_application note_v1.02.pdf

первое подключение, передача и закрытие проходят отлично

AT+CGATT=1
AT+CSTT="internet","username","password"
AT+CIICR
AT+CIFSR
AT+CIPSTART="TCP","92.62.56.52","40001"

CONNECT OK

AT+CIPSEND

AT+CIPCLOSE=1

но, вот по ТЗ нужно менять APN, делаю соответственно
AT+CSTT="internet.beeline.ru","beeline","beeline"
и получаю +CME ERROR: 3

раньше чуток работал с телитами, так что всех тонкостей SIM не знаю =(

как корректно сменить APN ?

Еще чего заметил, если AT+CIFSR не отправлять ( ну не хочу я знать какой IP выдан, и всё тут ! ) то CIPSTART тоже возвращает CME ERROR: 3

прошивка 1137B09SIM900M64_ST


AT+CIPSHUT делаете, прежде чем менять APN?
Попробуйте задавать APN через AT+CIPCSGP=1,APN,USER,PASSWORD и вместо
AT+CSTT="internet","username","password" просто AT+CSTT
Baser
Цитата(megajohn @ Nov 14 2011, 13:06) *
AT+CIPCLOSE=1

но, вот по ТЗ нужно менять APN, делаю соответственно
AT+CSTT="internet.beeline.ru","beeline","beeline"
и получаю +CME ERROR: 3

После AT+CIPCLOSE у вас закрывается только коннект с вашим сервером, а PDP-context остается активным.
А точка доступа в Интернет (APN) задается как раз при активизации PDP-context-а.
Вот вы и получаете +CME ERROR: 3 - "действие не разрешено".

Как вам уже посоветовали, нужно сначала деактивировать старый PDP-context при помощи команды
AT+CIPSHUT
и только потом открывать новый с другим APN.

Я бы еще между этими действиями выждал паузу в секунды (сколько не знаю, но пару секунд точно).
megajohn
А как в sim900 передавать через GPRS бинарные данные в командном режиме ?

AT+CIPSEND > 3132333435 Отправляет как строку а мне бы нужно как 0x31, 0x32, 0x33, 0x34, 0x35
butthead2
Цитата(megajohn @ Nov 24 2011, 18:28) *
А как в sim900 передавать через GPRS бинарные данные в командном режиме ?

AT+CIPSEND > 3132333435 Отправляет как строку а мне бы нужно как 0x31, 0x32, 0x33, 0x34, 0x35

Так и запихивай ему бинарные данные, а не текстsm.gif модем же понимает символы не только в текстовом диапазоне
CADiLO
>>>>Так и запихивай ему бинарные данные, а не текст модем же понимает символы не только в текстовом диапазоне

А если в потоке комбинация ctrl-Z или 0D 0A встретится?

CТОП - соврал.
Там же счетчик есть - то есть задали сколько и пихаем ему бинарные. тогда в конце контролZ не нужен и бинарные передадутся.
И на CIPQSEND надо посмотреть.....

_Артём_
Цитата(CADiLO @ Nov 24 2011, 17:43) *
>>>>Так и запихивай ему бинарные данные, а не текст модем же понимает символы не только в текстовом диапазоне

А если в потоке комбинация ctrl-Z или 0D 0A встретится?

CТОП - соврал.
Там же счетчик есть - то есть задали сколько и пихаем ему бинарные. тогда в конце контролZ не нужен и бинарные передадутся.
И на CIPQSEND надо посмотреть.....


А что в CIPQSEND является умолчанием?
Baser
Цитата(megajohn @ Nov 24 2011, 17:28) *
А как в sim900 передавать через GPRS бинарные данные в командном режиме ?

AT+CIPSEND > 3132333435 Отправляет как строку а мне бы нужно как 0x31, 0x32, 0x33, 0x34, 0x35

У CIPSEND есть два режима: для текстовых и для бинарных данных.

AT+CIPSEND
это для текстовых - байты интерпретируются как бинарные, но отправляются по коду ctrl-Z (0х1А), так что этот код послать нельзя.

Для бинарных нужно применять
AT+CIPSEND=length
при этом можно любые коды передать

Цитата(_Артём_ @ Nov 24 2011, 18:44) *
А что в CIPQSEND является умолчанием?

Умолчанием является 0 - Normal mode c одним ответом SEND OK

Это новая команда у SIM900, а у меня без переделки код от SIM300 нормально заработал.
_Артём_
Цитата(Baser @ Nov 24 2011, 18:48) *
У CIPSEND есть два режима: для текстовых и для бинарных данных.

AT+CIPSEND
это для текстовых - байты интерпретируются как бинарные, но отправляются по коду ctrl-Z (0х1А), так что этот код послать нельзя.

Для бинарных нужно применять
AT+CIPSEND=length
при этом можно любые коды передать


Умолчанием является 0 - Normal mode c одним ответом SEND OK

Это новая команда у SIM900, а у меня без переделки код от SIM300 нормально заработал.


Как без переделки? Там же по умолчанию multisocket-режим.
Baser
Цитата(_Артём_ @ Nov 24 2011, 20:32) *
Как без переделки? Там же по умолчанию multisocket-режим.

Почему вы так думаете?

AT+CIPMUX судя по всему нигде не сохраняется и действует только на время работы TCP/IP стека до выключения питания.
После включения питания и запуска стека AT+CIPMUX=0 всегда.
Если я переключаюсь на AT+CIPMUX=1, то он будет в "1" только до выключения питания.
_Артём_
Цитата(Baser @ Nov 25 2011, 13:32) *
Почему вы так думаете?

AT+CIPMUX судя по всему нигде не сохраняется и действует только на время работы TCP/IP стека до выключения питания.
После включения питания и запуска стека AT+CIPMUX=0 всегда.
Если я переключаюсь на AT+CIPMUX=1, то он будет в "1" только до выключения питания.


Ну, может и так
Aurochs
Цитата(Baser @ Nov 25 2011, 13:32) *
Почему вы так думаете?

AT+CIPMUX судя по всему нигде не сохраняется и действует только на время работы TCP/IP стека до выключения питания.
После включения питания и запуска стека AT+CIPMUX=0 всегда.
Если я переключаюсь на AT+CIPMUX=1, то он будет в "1" только до выключения питания.


К сожалению это не так.
После команды AT+CIPMUX=1 модуль будет оставаться в мультисокетном режиме и после выключения/включения и после деактивации/активации контекста. До тех пор пока Вы явно не дадите AT+CIPMUX=0
Таков уж он есть - навязчивый китайский сервис laughing.gif
Baser
???
Я это проверял перед своим постом на версии B08
После подачи питания у меня всегда было AT+CIPMUX? равно 0
что бы я не включал ранее...
Aurochs
Ну, значит пофиксили.
Как говорится, лучше поздно, чем никогда.
Я попал на эту штуку, насколько помню, в 6-й версии еще. С тех пор не проверял - устанавливаю режим явно при каждом запуске.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.