Перейти к содержанию
    

Sim900DevIDE - прием СМС

Пытаюсь разобраться с приемом и обработкой СМС в самом модуле SIM900, без дополнительного контроллера. В примерах Sim900DevIDE есть только отправка СМС, это работает. Не могу понять, как правильно использовать EVENT_SMS_IND? СМС приходят, момент приема вижу на UART. Прошивка 1137B04V01SIM900M64_ST_DTMF_JD_EAT.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Пытаюсь разобраться с приемом и обработкой СМС в самом модуле SIM900, без дополнительного контроллера. В примерах Sim900DevIDE есть только отправка СМС, это работает. Не могу понять, как правильно использовать EVENT_SMS_IND? СМС приходят, момент приема вижу на UART. Прошивка 1137B04V01SIM900M64_ST_DTMF_JD_EAT.

немного офтоп:

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

BT_03_37.pdf

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

// разрешаем событие

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

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Спасибо за советы!

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;

 

компилируется нормально.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...