Мои девайсы отлично работают с 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.