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

 
 
 
Reply to this topicStart new topic
> SIM900-GPRS: смена APN -> Error 3
megajohn
сообщение Nov 14 2011, 11:06
Сообщение #1


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

Группа: Свой
Сообщений: 1 080
Регистрация: 16-11-04
Из: СПб
Пользователь №: 1 143



Всё делаю согласно 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


--------------------
Марс - единственная планета, полностью населенная роботами (около 7 штук).
Go to the top of the page
 
+Quote Post
xMw
сообщение Nov 14 2011, 11:14
Сообщение #2


Участник
*

Группа: Участник
Сообщений: 25
Регистрация: 19-04-07
Пользователь №: 27 182



Цитата(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
Go to the top of the page
 
+Quote Post
Baser
сообщение Nov 14 2011, 13:11
Сообщение #3


Просто Che
*****

Группа: Свой
Сообщений: 1 567
Регистрация: 22-05-07
Из: ExUSSR
Пользователь №: 27 881



Цитата(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.

Я бы еще между этими действиями выждал паузу в секунды (сколько не знаю, но пару секунд точно).
Go to the top of the page
 
+Quote Post
megajohn
сообщение Nov 24 2011, 15:28
Сообщение #4


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

Группа: Свой
Сообщений: 1 080
Регистрация: 16-11-04
Из: СПб
Пользователь №: 1 143



А как в sim900 передавать через GPRS бинарные данные в командном режиме ?

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


--------------------
Марс - единственная планета, полностью населенная роботами (около 7 штук).
Go to the top of the page
 
+Quote Post
butthead2
сообщение Nov 24 2011, 15:39
Сообщение #5


Местный
***

Группа: Участник
Сообщений: 301
Регистрация: 22-07-09
Пользователь №: 51 470



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

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

Так и запихивай ему бинарные данные, а не текстsm.gif модем же понимает символы не только в текстовом диапазоне
Go to the top of the page
 
+Quote Post
CADiLO
сообщение Nov 24 2011, 15:43
Сообщение #6


Гуру
******

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



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

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

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



--------------------
Не можна втрачати надію. Не можна здаватися до останньої миті. Можливо саме вона, остання мить, принесе весну, яка стане початком нового життя.
Go to the top of the page
 
+Quote Post
_Артём_
сообщение Nov 24 2011, 16:44
Сообщение #7


Гуру
******

Группа: Свой
Сообщений: 2 128
Регистрация: 21-05-06
Пользователь №: 17 322



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

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

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


А что в CIPQSEND является умолчанием?
Go to the top of the page
 
+Quote Post
Baser
сообщение Nov 24 2011, 16:48
Сообщение #8


Просто Che
*****

Группа: Свой
Сообщений: 1 567
Регистрация: 22-05-07
Из: ExUSSR
Пользователь №: 27 881



Цитата(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 нормально заработал.
Go to the top of the page
 
+Quote Post
_Артём_
сообщение Nov 24 2011, 18:32
Сообщение #9


Гуру
******

Группа: Свой
Сообщений: 2 128
Регистрация: 21-05-06
Пользователь №: 17 322



Цитата(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-режим.
Go to the top of the page
 
+Quote Post
Baser
сообщение Nov 25 2011, 11:32
Сообщение #10


Просто Che
*****

Группа: Свой
Сообщений: 1 567
Регистрация: 22-05-07
Из: ExUSSR
Пользователь №: 27 881



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

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

AT+CIPMUX судя по всему нигде не сохраняется и действует только на время работы TCP/IP стека до выключения питания.
После включения питания и запуска стека AT+CIPMUX=0 всегда.
Если я переключаюсь на AT+CIPMUX=1, то он будет в "1" только до выключения питания.
Go to the top of the page
 
+Quote Post
_Артём_
сообщение Nov 25 2011, 13:47
Сообщение #11


Гуру
******

Группа: Свой
Сообщений: 2 128
Регистрация: 21-05-06
Пользователь №: 17 322



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

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


Ну, может и так
Go to the top of the page
 
+Quote Post
Aurochs
сообщение Nov 26 2011, 20:41
Сообщение #12


Ортодокс
***

Группа: Свой
Сообщений: 219
Регистрация: 26-10-07
Из: Смела, Украина
Пользователь №: 31 775



Цитата(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
Go to the top of the page
 
+Quote Post
Baser
сообщение Nov 26 2011, 21:36
Сообщение #13


Просто Che
*****

Группа: Свой
Сообщений: 1 567
Регистрация: 22-05-07
Из: ExUSSR
Пользователь №: 27 881



???
Я это проверял перед своим постом на версии B08
После подачи питания у меня всегда было AT+CIPMUX? равно 0
что бы я не включал ранее...
Go to the top of the page
 
+Quote Post
Aurochs
сообщение Nov 26 2011, 22:04
Сообщение #14


Ортодокс
***

Группа: Свой
Сообщений: 219
Регистрация: 26-10-07
Из: Смела, Украина
Пользователь №: 31 775



Ну, значит пофиксили.
Как говорится, лучше поздно, чем никогда.
Я попал на эту штуку, насколько помню, в 6-й версии еще. С тех пор не проверял - устанавливаю режим явно при каждом запуске.
Go to the top of the page
 
+Quote Post

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

 


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


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