|
SIM900, TCP |
|
|
|
May 20 2013, 03:52
|

Местный
  
Группа: Свой
Сообщений: 497
Регистрация: 9-06-05
Из: Новосибирск
Пользователь №: 5 852

|
Суть вопроса: отправляю данные на сервер:
RDY
+CFUN: 1
+CPIN: READY
Call Ready AT+CGATT=1 OK AT+CSTT="internet.mts.ru" OK AT+CIICR OK AT+CIFSR 10.65.171.75 AT+CIPSTART="TCP","109.111.ХХХ.ХХ","ХХХХ" OK
CONNECT OK AT+CIPSEND > +7913929ХХХХ,GPRMC,014157.000,A,5501.3812,N,08255.0908,E,2.14,181.97,301012,,,A* 6A,L,bat:,imei:ХХХХХ,112#d SEND OK
Это трекерное приложение,отправляемые данные заданного формата, определяемого сервером. В результате на карте должна отображаться точка в месте с передаваемыми координатами, но этого не происходит. Раньше с TCP не работал, наверняка какой-то очевидный ляп, прошу совета.
|
|
|
|
2 страниц
1 2 >
|
 |
Ответов
(1 - 24)
|
May 20 2013, 05:34
|
Местный
  
Группа: Участник
Сообщений: 339
Регистрация: 10-07-08
Из: Херсон
Пользователь №: 38 856

|
Цитата(rat @ May 20 2013, 06:52)  Суть вопроса: отправляю данные на сервер:
Это трекерное приложение,отправляемые данные заданного формата, определяемого сервером. В результате на карте должна отображаться точка в месте с передаваемыми координатами, но этого не происходит. Раньше с TCP не работал, наверняка какой-то очевидный ляп, прошу совета. А отправлять на сервер, те же данные но другими способами пробовали? Приводит это к появлению точки ? А то есть где то тут тема, тоже грешили на "транспорт", оказалось что плохо "отсканировали" данные.
Сообщение отредактировал alexdos - May 20 2013, 05:36
|
|
|
|
|
May 20 2013, 07:47
|
Местный
  
Группа: Участник
Сообщений: 339
Регистрация: 10-07-08
Из: Херсон
Пользователь №: 38 856

|
Цитата(rat @ May 20 2013, 10:12)  Другими это какими? Что такое "отсканировали"?. Разумеется, ошибки возможны, интересует, нет ли откровенной неправильности в вышеописанном отправлении данных? Есть уйма софта которым можно установить соединение с сервером и по TCP или UPD передать данные. Тоесть прямо с компа на сервер. Формат передачи данных на сервер Вы гдето взяли ведь. способа получения фактически 2, с описания протокола, и с работающего устройства. С работающего устройства Вы можете получить подключившись туда (если такая возможность есть) и "отсканировать" протокол, (Ска́нер (англ. scanner, от scan «пристально разглядывать, рассматривать»)  . откровенной неправильности в вышеописанном отправлении данных я не вижу. Вот сценарий по котором у меня точно передаются данные -- A T + C G A T T = 1 . Активировать GPRS сесию -- A T + C I P C S G P = 1 , " i w w w . k y i v s t a r . n e t " , " g p r s " ," g p r s " . Передадим CSD и GPRS данные -- A T + C I P A T S = 0 . Включим автовреммя ответа -- A T + C L P O R T = " T C P " , " 2222 " . Откроем порт -- A T + C I P S T A R T = " T C P " , " 1 11 . 111 . 1 11 . 11 " , " 2222" Стартуем подключение -- . A T + C I P S T A T U S . Проверим соединение -- A T + C R E G ? . Проверим регистрацию в сети -- A T + C I P S T A T U S . Проверим соединение -- A T + C I P S E N D .
Сообщение отредактировал alexdos - May 20 2013, 07:47
|
|
|
|
|
May 20 2013, 08:58
|

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

|
Цитата(rat @ May 20 2013, 10:53)  Посоветуйте пожалуйста простой удобный доступный софт для передачи данных на сервер по TCP. Вот еще, чуть более функциональна:
|
|
|
|
|
May 20 2013, 11:10
|
Местный
  
Группа: Участник
Сообщений: 339
Регистрация: 10-07-08
Из: Херсон
Пользователь №: 38 856

|
Цитата(rat @ May 20 2013, 12:55)  Спасибо. Еще один вопрос - как помощью этой программы посмотреть, что я посылаю с SIM900 и посылаются ли данные вообще? Проще всего установить у себя на компе TCP IP Server, открыть на прием какойто порт, посмотреть какой у Вас IP в данный момент в сети интернета, настроить передачу на эти порт и IP и смотреть. НО! В каждом случае тут возможны свои индивидуальные плаяски "с бубном", зависит какой у Вас интернет. Второй вариант, попросить на сервере на который Вы передаёте, посмотреть, присылает ли Ваш трекер строку.
|
|
|
|
|
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 по умолчанию установлено автоопределение скорости, то я предпочитаю подстраховатся и установить ее еще и вручную. А каждый раз - так как я для надежности в случае неудач при подключении, выключаю модуль и начинаю работу "с нуля".
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|