Полная версия этой страницы:
Sim900DevIDE - прием СМС
vladimirk68
Aug 29 2016, 04:49
Пытаюсь разобраться с приемом и обработкой СМС в самом модуле 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. Образцы и тех.поддержку можно получить у нашего дистрибьютора.
Нажмите для просмотра прикрепленного файла
// разрешаем событие
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
Sep 5 2016, 07:15
Спасибо за советы!
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;
компилируется нормально.
Для просмотра полной версии этой страницы, пожалуйста,
пройдите по ссылке.