Привезли мне новый модуль SIM300Z (P1008B15). Поигрался с ним немного, вроде бы все, что проверил, соответствует документации.
Но вот возникли вопросы, связанные с передачей данных при помощи GPRS.
Как я понял, процесс установления соединения состоит из нескольких этапов:
- Регистрация в сети GSM;
- Подключение к сервису GPRS (AT+CGATT=1);
- Активация PDP контекста с получением PDP адреса от мобильной сети;
- Установление TCP или UDP соединения.
Так вот, меня удивило наличие множества различных команд, которые частично дублируют друг друга. Получается, что установить соединение можно различными путями.
Так работает (AT+CGATT=1 даже можно и опустить, к GPRS само подключается):
Код
TE: AT+CGATT=1
ME: OK (STATE: IP INITIAL)
TE: AT+CIPCSGP=1,"APN","USER","PASS"
ME: OK (STATE: IP INITIAL)
TE: AT+CIPSTART="TCP","xx.xx.xx.xx","PORT"
ME: OK
ME: CONNECT OK (STATE: CONNECT OK)
И так работает:
Код
TE: AT+CSTT="APN","USER","PASS" (+CGATT: 0 STATE: IP INITIAL)
ME: OK (+CGATT: 0 STATE: IP START)
TE: AT+CIICR
ME: OK (+CGATT: 1 STATE: IP GPRSACT)
TE: AT+CIFSR
ME: xx.xx.xx.xx (+CGATT: 1 STATE: IP STATUS)
TE: AT+CIPSTART="TCP","xx.xx.xx.xx","PORT"
ME: OK
ME: CONNECT OK (+CGATT: 1 STATE: CONNECT OK)
А вот со стандартными командами
AT+CGDCONT - Define PDP Context
AT+CGACT - PDP Context Activate Or Deactivate
какие-то непонятки. Такое впечатление, что это бутафория, неработающие заготовки.
PDP контекстов можно определить целых 10! Они пишуться и читаются. Можно их активировать и деактивировать. Только на работу с GPRS это никак не отражается. И точка доступа (APN) при активации контекста стеку TCP/IP не становится известной.

Вот так не работает:
Код
ME initial state: (+CGATT: 0 STATE: IP INITIAL)
TE: AT+CGDCONT=1,"IP","APN"
ME: OK (+CGATT: 0 STATE: IP INITIAL)
TE: AT+CGACT=1,1
ME: OK (+CGATT: 1 STATE: IP INITIAL)
TE: AT+CIPSTART="TCP","xx.xx.xx.xx","PORT"
ME: OK
ME: CONNECT FAIL
ME: STATE: IP IND
ME: +PDP: DEACT (+CGATT: 1 STATE: PDP DEACT)
И вот, в связи со всем этим, вопросы:1. Зачем нужно такое разнообразие команд и вариантов?
2. Команда AT+CGACT в SIM300 действительно не до конца реализована, или я чего-то не понял?
Мне казалось, что при активации PDP контекста сразу должна настраиваться APN и сетью выделяться PDP адрес.
3. Где можно посмотреть описание состояний GPRS соединения (AT+CIPSTATUS)? Смысл части состояний понятна из названий, но остальные - полная загадка.