Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Символ окончания сообщения SMS GPRS
Форум разработчиков электроники ELECTRONIX.ru > Интерфейсы > Форумы по интерфейсам > Сотовая связь и ее приложения
Mad_max
Такая вот проблема.
Что с отправкой SMS, что с GPRS, все команды проходят нормально, включая команду ввода отправляемых данных, модуль возвращает скобку <, ввожу данные, а далее модуль отказывается воспринимать CTRL-Z.
Как я только не пробовал и большими буквами и маленькими, он все съедает, но данные не отправляет.
И из этого коматозного состояния модуль не выходит, помогает только сброс питания.
В чем может быть тут дело?

Последовательность команд.
AT+CGATT=1
AT+CDNSORIP=0
AT+CIPCSGP=1,"APN"
AT+CIPSTART="TCP","IP",port
AT+CIPSEND
FormatCft
Цитата(Mad_max @ Nov 26 2008, 00:36) *
Такая вот проблема.
Что с отправкой SMS, что с GPRS, все команды проходят нормально, включая команду ввода отправляемых данных, модуль возвращает скобку <, ввожу данные, а далее модуль отказывается воспринимать CTRL-Z.
Как я только не пробовал и большими буквами и маленькими, он все съедает, но данные не отправляет.
И из этого коматозного состояния модуль не выходит, помогает только сброс питания.
В чем может быть тут дело?

Последовательность команд.
AT+CGATT=1
AT+CDNSORIP=0
AT+CIPCSGP=1,"APN"
AT+CIPSTART="TCP","IP",port
AT+CIPSEND

AT+CIPCSGP=1,"APN" -> AT+CIPCSGP=1,"APN","user name","pass"
Mad_max
Цитата(FormatCft @ Nov 25 2008, 22:43) *
AT+CIPCSGP=1,"APN" -> AT+CIPCSGP=1,"APN","user name","pass"

Ну а символ окончания текста какой?
FormatCft
Цитата(Mad_max @ Nov 26 2008, 00:52) *
Ну а символ окончания текста какой?

Перевод строки если не ошибаюсь. Код 0x0A. (Может 0x0D. Можно попробовать если не получится).

Цитата(Mad_max @ Nov 26 2008, 00:36) *
AT+CIPSEND

AT+CIPSEND=число.
В этом случае не нужен признак конца блока передаваемого.

А контрал с др стороны клавы еще не испытан?
Mad_max
Цитата(FormatCft @ Nov 25 2008, 23:03) *
AT+CIPSEND=число.
В этом случае не нужен признак конца блока передаваемого.

Спасиб, вот так получилось данные передать.
Baser
Цитата(Mad_max @ Nov 25 2008, 21:36) *
Что с отправкой SMS, что с GPRS, все команды проходят нормально, включая команду ввода отправляемых данных, модуль возвращает скобку <, ввожу данные, а далее модуль отказывается воспринимать CTRL-Z.
Как я только не пробовал и большими буквами и маленькими, он все съедает, но данные не отправляет

CTRL-Z это ASCII код 0x1A (26 decimal)
ESC это ASCII код 0x1B (27 decimal)

Всё прекрасно работает, смотрите азбуку кодирования smile.gif

з.ы. сначала подумал - "дежавю", а потом поиском прошелся - нет, не "дежавю" smile.gif

з.з.ы. поиск на CTRL-Z вообще кучу таких вопросов-ответов находит
etoja
1) Упорные клоуны кувыркаются с SIM300 вместо того, чтобы взять нормальный модуль.
2) SMS и GPRS никак не связаны.
Mad_max
Цитата(etoja @ Nov 26 2008, 09:43) *
1) Упорные клоуны кувыркаются с SIM300 вместо того, чтобы взять нормальный модуль.

Ну так скажите, уважаемый, какой хороший модули чем же он лучше.
А то как то не убедительно smile.gif
Lexi
Мои девайсы отлично работают с TCP и СМС.
Я сделал функции типа tcp_send_start() и tcp_send_end();
Чем хорошо так делать для меня.
К примеру мне надо вывести ряд параметров и строк одним пакетом.
tcp_send_start();
printf("bla-bla-bla");
......
printf("%s",buffer);
tcp_send_end();

вот их реализация
Код
tcp_send_start()
{
buffer_clear();
output_bit(led_gel,1);
printf("AT+CIPSEND\r");
rc=3;
rc_f=1;
while(rx_buffer[2]!='>') delay_ms(time_slot/3);
buffer_clear();
printf("\r\n");
secur=50;
fl_secur=1;
}


Код
tcp_send_end()
{
if(fl_secur)
   {
   fl_secur=0;
   printf("\r\n\x1A");
   while(rx_buffer[2]!='S') delay_ms(time_slot/5);
   output_bit(led_gel,0);
   delay_ms(time_slot);
   buffer_clear();
   output_bit(led_gel,0);
   }
}


У вас повидимуму неточно сделана начало конекта с серваком и настройки для передачи
вот как я делал, согласно "быстрому страрту".

Код
//***************************************************************************//
//                              включаем жопарез                             //
/*****************************************************************************/
gprs_start()
{
printf("AT+CGATT=1\r");   //регистрация в жопарезе
delay_ms(500);
buffer_clear();
printf("AT+CIPATS=0\r");  //включение автотаймера отсылки
delay_ms(time_slot);
buffer_clear();
printf("AT+CIPCSGP=1,\"%s\",\"%s\",\"%s\"\r", apn,user_apn,password_apn);
delay_ms(time_slot);
buffer_clear();
printf("AT+CIPSTART=\"TCP\",\"%s\",\"%s\"\r",ips ,port);
delay_ms(time_slot);
buffer_clear();
}


Цитата
1) Упорные клоуны кувыркаются с SIM300 вместо того, чтобы взять нормальный модуль.

Да нет, упорные клоуны пытаются что-то показать из себя такими выражениями, походу рельно ничего не зная о работе сим300.

По сути отправка смс и пакета по попарезу мало чем отличаеться. начальной команды AT+CIPSEND для gprs и AT+CMGS="номер" для смс. Тоже ждем >, и тока получили отсылаем текст, завершение посылки \x1A. Но способ этот сработает только если перевести из режима PDU в режим ASCII командой AT+CMGF=1.
etoja
В первом сообщении даже не был указан модуль, но все поняли о чём речь, так как нет вариантов.
Harbinger
Ну да, команды характерные. Хотя, в данном конкретном случае... ASCII-код Ctrl-Z от марки модуля не зависит wink.gif
Касательно выбора модуля - далеко не всегда разработчик принимает окончательное решение, и обзывать его за это клоуном как минимум неконструктивно smile.gif!
Andrewak
Цитата(Harbinger @ Nov 27 2008, 09:09) *
Касательно выбора модуля - далеко не всегда разработчик принимает окончательное решение, и обзывать его за это клоуном как минимум неконструктивно smile.gif!

+1 smile.gif
Сорри за флуд in advance,
это было бы ещё пол-беды, но часто "большие дядьки" решают, что надо съэкономить как раз на gsm и gps модулях, раз они такие дорогие, и не задумывается о том, что тратит больше на зарплатах разработчиков, которые сношаются денно и ношно с модулями, ну никак не подходящими для решения поставленной задачи, без внятной документации и техподдержки smile.gif Как это я политкорректно выразился smile.gif Никого лично не имел в виду!
Mad_max
Цитата(etoja @ Nov 27 2008, 07:52) *
В первом сообщении даже не был указан модуль, но все поняли о чём речь, так как нет вариантов.

Ну так что, скажешь чем sim300 так плох?
А то пока выходит что клоун тут ты smile.gif
Andrewak
Цитата(Mad_max @ Nov 27 2008, 16:46) *
Ну так что, скажешь чем sim300 так плох?
А то пока выходит что клоун тут ты smile.gif

Ну дык обсосали уже это вдоль о поперёк... smile.gif Сами же знаете про все багофичи, зачем опять эту тему начинать?
Ну или давайте хоть разнообразим её маленько. Вы можете рассказать, чем же он так хорош, кроме цены?
Harbinger
Цитата(Andrewak @ Nov 27 2008, 17:44) *
Ну или давайте хоть разнообразим её маленько. Вы можете рассказать, чем же он так хорош, кроме цены?

"D" могу похвалить. Паяется намертво, в условиях тряски это немаловажно.
GP_
С этим CTRL-Z есть непонятка, иногда он не воспринимается как конец строки и падает в сообщение. Не часто, но бывает. И не понятно от чего это зависит. И задержки всевозможные использовал, влияет только на вероятность. В конце концов поставил AT+CIPATS=1,1, а не хотелось.
Andrewak
Специально подождал несколько дней в надежде на то, что кто-нить мне откроет глаза и поведает, чем же так хорош simcom... smile.gif Чуда не произошло...

Цитата(Harbinger @ Nov 27 2008, 20:29) *
"D" могу похвалить. Паяется намертво, в условиях тряски это немаловажно.

Ну у меня и модули с разъёмом тоже неплохо держатся smile.gif ИМХО, главное преимущество sim300d в том, что его можно на автомате паять... Но паять его на автомате - тот ещё геморрой, так как 1-е - отмывать его нельзя, 2 - встречаются партии "гнутых" модулей, у которых монтажная поверхность имеет форму тарелки в профиль smile.gif
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.