Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Sim900DevIDE - прием СМС
Форум разработчиков электроники ELECTRONIX.ru > Интерфейсы > Форумы по интерфейсам > Сотовая связь и ее приложения
vladimirk68
Пытаюсь разобраться с приемом и обработкой СМС в самом модуле SIM900, без дополнительного контроллера. В примерах Sim900DevIDE есть только отправка СМС, это работает. Не могу понять, как правильно использовать EVENT_SMS_IND? СМС приходят, момент приема вижу на UART. Прошивка 1137B04V01SIM900M64_ST_DTMF_JD_EAT.
Цырен.
Цитата(vladimirk68 @ Aug 29 2016, 08:49) *
Пытаюсь разобраться с приемом и обработкой СМС в самом модуле SIM900, без дополнительного контроллера. В примерах Sim900DevIDE есть только отправка СМС, это работает. Не могу понять, как правильно использовать EVENT_SMS_IND? СМС приходят, момент приема вижу на UART. Прошивка 1137B04V01SIM900M64_ST_DTMF_JD_EAT.

немного офтоп:
Я вам рекомендую начать изучать не устаревшую 900ю серию, а 800ю, а точнее SIM800C (или SIM800C32). В нем поддерживается поддерживается Embedded AT в прошивке 1418B0xSIM800C32_BT_EAT. Образцы и тех.поддержку можно получить у нашего дистрибьютора.
Нажмите для просмотра прикрепленного файла
bugish
// разрешаем событие
eat_SetSMSIndEvent(TRUE);

// отрабатываем событие
case EVENT_SMS_IND: {
Index_SMS = flEventBuffer.eventData.smsInd_evt.index;
Encode_SMS(Index_SMS, flcurcmd);
}

// вычитываем sms командой AT+CMGR
void Encode_SMS(u8 Index, t_curcmd *curcmd) {

eat_DebugTrace("Incoming SMS Index %d -> ", Index);
updatecmd((u8*)"AT+CMGR\r", curcmd, AT_WRITE);
sprintf((char *)TMP_AT_CMD,"AT+CMGR=%d\r", Index);
eat_SendToModem((u8*)TMP_AT_CMD, sizeof(TMP_AT_CMD));
eat_DebugTrace("%s \r\n",TMP_AT_CMD);

}
// анализируем ответ на команду AT+CMGR
vladimirk68
Спасибо за советы!
bugish, Ваш вариант намного изящнее моего (я все-таки научил железку различать СМС и звонок, но дальше пока не двигался).

Не разобрался в нем вот с чем: создал проект на базе примера sms, повставлял в него Ваш пример, компилятор (GCC) выдает предупреждения:

code/fl_customer.c: In function 'Encode_SMS':

code/fl_customer.c:341:10: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]

code/fl_customer.c:343:18: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]

Вначале программы вставил

u8 Index_SMS;
u8 TMP_AT_CMD;

Что я не так сделал?

Торопыга был голодный...

u8 Index_SMS;
char* TMP_AT_CMD;

компилируется нормально.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.