|
SIM900, TCP |
|
|
|
May 21 2013, 10:43
|
Частый гость
 
Группа: Свой
Сообщений: 145
Регистрация: 12-01-07
Из: Россия, г. Омск
Пользователь №: 24 357

|
А вот вопрос как все же правильно открывать подключение по TCP? Раньше с SIM300 использовал алгоритм Алгоритм подключения такой - AT+CGATT? пока не прийдет CGATT:1 AT+IPR=115200 ATE0 AT+CIPCSGP=1,"internet","gdata","gdata" - точка доступа AT+CIPSTART=="TCP","xxx.xxx.xxx.xxx","09003" подключится по TCP к серверу и ждем CONNECT OK
Внимательно перечитав доки для SIM900, увидел другой рекомендуемый набор команд, тогда сделал - AT+CGATT? пока не прийдет CGATT:1 AT+IPR=115200 ATE0 AT+CSTT="internet","gdata","gdata" точка доступа AT+CIICR AT+CIFSR // локальный IP AT+CIPSTART=="TCP","xxx.xxx.xxx.xxx","09003" подключится по TCP к серверу и ждем CONNECT OK
Как правильнее?
|
|
|
|
|
May 21 2013, 14:10
|

Частый гость
 
Группа: Свой
Сообщений: 156
Регистрация: 18-02-13
Из: Киев
Пользователь №: 75 678

|
Цитата(Alex_TAV @ May 21 2013, 13:43)  ... AT+IPR=115200 ... Как правильнее? А зачем бодрейт дерагать то? Правильнее так, как написано в рекомендациях на конкретный модуль.
|
|
|
|
|
May 21 2013, 14:36
|

Частый гость
 
Группа: Свой
Сообщений: 156
Регистрация: 18-02-13
Из: Киев
Пользователь №: 75 678

|
Цитата(_Артём_ @ May 21 2013, 17:26)  Например при передачи бинарных данных (AT+CIPSEND=xxx) модем пожет автоопределится на какую-нибудь другую скорость. Это где такое написано? Или это из опыта? Конечно, зависит от задачи, но в 90% случаев бодрейт устанавливается один раз в жизни девайса (без учета аварийных ситуаций и перепрошивок)
Сообщение отредактировал vassabi - May 21 2013, 14:36
|
|
|
|
|
May 21 2013, 14:57
|
Гуру
     
Группа: Свой
Сообщений: 2 128
Регистрация: 21-05-06
Пользователь №: 17 322

|
Цитата(vassabi @ May 21 2013, 17:36)  Это где такое написано? Или это из опыта? Это из опыта (возможно уже устаревшего). Цитата(vassabi @ May 21 2013, 17:36)  Конечно, зависит от задачи, но в 90% случаев бодрейт устанавливается один раз в жизни девайса (без учета аварийных ситуаций и перепрошивок) Вобщем да, к тому же можно запросить текущую скорость и если она устраивает можно не менять. Цитата AT+IPR?
+IPR: 19200
OK
AT+IPR=115200
OK
|
|
|
|
|
May 21 2013, 15:55
|

Частый гость
 
Группа: Свой
Сообщений: 156
Регистрация: 18-02-13
Из: Киев
Пользователь №: 75 678

|
Цитата AT+IPR? +IPR: 19200 OK AT+IPR=115200 OK Такое врядли возможно, т.к. если модуль отзывался на скорости 19200, то вы о ней точно знаете. А в режиме автоопределения бодрейта, команда AT+IPR? отвечает всегда +IPR: 0 Переключение в AT+IPR=115200 требует последующего рестарта, а так как AT+IPR попадает в список команд, которые сохраняются в NVRAM, то строки переопределения бодрейта теряют смысл.
Сообщение отредактировал vassabi - May 21 2013, 15:57
|
|
|
|
|
May 21 2013, 16:33
|
Гуру
     
Группа: Свой
Сообщений: 2 128
Регистрация: 21-05-06
Пользователь №: 17 322

|
Цитата(vassabi @ May 21 2013, 18:55)  Такое врядли возможно Что именно невозможно? Цитата(vassabi @ May 21 2013, 18:55)  если модуль отзывался на скорости 19200, то вы о ней точно знаете. Отозваться-то он может, но при этом скорость может быть настоена на автоопределение. Цитата(vassabi @ May 21 2013, 18:55)  Переключение в AT+IPR=115200 требует последующего рестарта Зачем рестарт? Скорость на лету вполне переключалась. Цитата(vassabi @ May 21 2013, 18:55)  а так как AT+IPR попадает в список команд, которые сохраняются в NVRAM Возможно без рестарта новая настройка IPR не запомнится (но это проверять надо) или может AT&W её сохранить может.
|
|
|
|
|
May 21 2013, 17:02
|

Частый гость
 
Группа: Свой
Сообщений: 156
Регистрация: 18-02-13
Из: Киев
Пользователь №: 75 678

|
Цитата Отозваться-то он может, но при этом скорость может быть настоена на автоопределение. В этом случае AT+IPR? вам не поможет, ответ будет +IPR: 0 Что вам мешает отловить RDY сразу после включения питания и если ее нет, отправить AT (для авто-бодрейта), а затем зафиксировать необходимую скорость навсегда? Кстати, для этого вам не нужна AT&W, я же написал AT+IPR автоматически сохраняется в NVRAM.
Сообщение отредактировал vassabi - May 21 2013, 17:06
|
|
|
|
|
May 21 2013, 17:35
|
Гуру
     
Группа: Свой
Сообщений: 2 128
Регистрация: 21-05-06
Пользователь №: 17 322

|
Цитата(vassabi @ May 21 2013, 20:02)  В этом случае AT+IPR? вам не поможет, ответ будет +IPR: 0 Если ответит +IPR: 0, значит скорость не настроена, а если +IPR: xxxxxx - то скорость задана и повторно её задавать не нужно. Цитата(vassabi @ May 21 2013, 20:02)  Что вам мешает отловить RDY сразу после включения питания и если ее нет, отправить AT (для авто-бодрейта), а затем зафиксировать необходимую скорость навсегда? Можно и так. Цитата(vassabi @ May 21 2013, 20:02)  Кстати, для этого вам не нужна AT&W, я же написал AT+IPR автоматически сохраняется в NVRAM. Да. Проверил - сохранять или слать AT&W не надо - запоминается и так.
|
|
|
|
|
May 23 2013, 12:39
|
Частый гость
 
Группа: Свой
Сообщений: 145
Регистрация: 12-01-07
Из: Россия, г. Омск
Пользователь №: 24 357

|
Цитата(vassabi @ May 21 2013, 21:10)  А зачем бодрейт дерагать то? Правильнее так, как написано в рекомендациях на конкретный модуль. Т.к. в SIM900 по умолчанию установлено автоопределение скорости, то я предпочитаю подстраховатся и установить ее еще и вручную. А каждый раз - так как я для надежности в случае неудач при подключении, выключаю модуль и начинаю работу "с нуля".
|
|
|
|
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0
|
|
|