|
Проблема с чтением смс |
|
|
|
Apr 3 2014, 05:55
|
Участник

Группа: Участник
Сообщений: 66
Регистрация: 28-03-10
Пользователь №: 56 253

|
вижу приходящий смс "+CMTI: "SM",1" после этого отправляю : "AT+CMGL=\"REC UNREAD\"\r" но модуль вообще никак не отвечает пробовал отправлять "AT+CMGR=1,0" и просто "AT\r" - также никаких ответов хотя далее по прошествии некоторого времени *примерно 10 секунд* модуль успешно выполняет удаление всех смс "AT+CMGD = 1,4\r" далее работает по основному алгоритму
|
|
|
|
|
Apr 3 2014, 06:30
|
Участник

Группа: Участник
Сообщений: 66
Регистрация: 28-03-10
Пользователь №: 56 253

|
модем SIM900 режим - текстовый
|
|
|
|
|
Apr 3 2014, 07:31
|
Участник

Группа: Участник
Сообщений: 66
Регистрация: 28-03-10
Пользователь №: 56 253

|
проблема не в том что когда удаляются смс а в том что не приходит никакого ответа на запрос чтения смс ни на любую другую команду, независимо сколько времени ждать
|
|
|
|
|
Apr 3 2014, 07:42
|
Участник

Группа: Участник
Сообщений: 66
Регистрация: 28-03-10
Пользователь №: 56 253

|
примерно так...
if (strstr(ReceiveString0, "+CMTI") != 0){
delay_ms(200); Uart2_Write_Text("AT+CMGL=\"REC UNREAD\"\r");
и далее по алгоритму... }
прошивка 1137B02SIM900M64_ST_ENHANCE
|
|
|
|
|
Apr 8 2014, 10:22
|
Участник

Группа: Участник
Сообщений: 66
Регистрация: 28-03-10
Пользователь №: 56 253

|
все-таки не могу побороть проблему, но попробую описать по-подробнее:
1. инициализирую SIM900 разными командами ( в терминалке вижу как посылы микроконтроллера так и ответы модема кроме того для контроля через Soft_UART вывожу в терминалку принятый микроконтроллером буфер) 2. вроде все штатно 3. отправляю AT+CMGL="ALL"\r - ответ приходит корректный 4. отправляю AT+CMGR=1\r - ответ также нормальный 5. ухожу в главный цикл , в котором один раз в секунду опрашиваю метку, которая устанавливается по прерыванию от RING 6. по поднятой метке ( в терминалке вижу пришедший +CMTI......) отправляю AT+CMGL="ALL"\r ответа никакого вообще, сколько не жди 7. пробовал ждать до 60 секунд - безрезультатно 8. пробовал повторять AT+CMGL="ALL"\r - безрезультатно 9. если же звоню на модуль, то по поднятой в результате прерывания от RING метке команда AT+CMGL="ALL"\r отрабатывает корректно 10. то есть один и тот же код при звонке работает, а при смс - нет
|
|
|
|
|
Apr 8 2014, 12:29
|
Участник

Группа: Участник
Сообщений: 66
Регистрация: 28-03-10
Пользователь №: 56 253

|
да там и так жду достаточно
if ( metka_RING == 1 ){ delay_ms(2000); String0(); // прочитать буфер debug_soft0(); // выдать его в Soft_UART PORT delay_ms(2000);
ClearBuffer(); // принудительно очищаю буфер
Uart2_Write_Text("AT+CMGL=\"ALL\"\r");
delay_ms(3000); String0(); // прочитать буфер
|
|
|
|
|
Apr 14 2014, 05:04
|
Участник

Группа: Участник
Сообщений: 66
Регистрация: 28-03-10
Пользователь №: 56 253

|
отключил выполнение всех команд кроме AT\r повторяю эту команду с интервалом в 5 секунд первый раз модем отвечает - AT и OK на все последующие запросы вообще не отвечает
|
|
|
|
|
Apr 14 2014, 05:31
|
Участник

Группа: Участник
Сообщений: 66
Регистрация: 28-03-10
Пользователь №: 56 253

|
еще нет АТ - первая команда но заметил одну особенность: при инициализации выполняю группу команд и если какую-нибудь из команд повторяю то ответа OK от модема не дождаться как будто он зависает
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|