
Задача: вычитывать СМС,обрабатывать их и удалять.
Ограничения: Входной буфер для работы с SIM900R небольшой (около 1 кБ)
Обычная моя работа с SIM - это отправка запроса о ожидание необходимых ответов, типа OK, ERROR или CMS ERROR. После получения ОК, происходит разбор всего принятого пакета.
Для вычитывания СМС вижу 2 команды:
1) CGMR - очень удобная команда, но чтобы ей воспользоваться, необходимо знать индекс СМС сообщения, а они могут быть не все по порядку. Признака, типа вернуть первое доступное СМС сообщение у нее вроде нет.
2) CGML - умеет возвращать все имеющиеся сообщения, однако при наличии большого числа СМС, может просто не хватить моего входного буфера. Ограничить количество возвращаемых за один раз сообщений, типа вернуть только одно сообщений у нее вроде нет.
Конечно можно предположить, что СМС сообщения будут приходить с большим интервалом и команда CGML будет возвращать 1-2-3 сообщения, которые поместяться у меня во входном буфере. Однако практика показывает, что в жизни бывает всякое и надо быть готовым к худшему случаю.
Кто как с такими задачами справляется или есть еще способ работы с СМС сообщениями, который я проглядел.