Имеем ситуацию когда объект непрерывно посылает и принимает SMS.
С посылкой вроде все нормально, но одновременный прием оказался проблемой.
В стандарте на AT команды не разрулены проблемы полнодуплексной работы модуля.
Например мы начинаем посылкой AT+CMGR=1 и думаем, что начали транзакцию и модем не пошлет в ответ некие "unsolicited result codes", а ответит как положено содержимым ячейки памяти с индексом 1.
А модем на самом деле шлет все что ему вздумается, и таким образом нужно парсить практически любую строку от модема вне зависимости какую процедуру мы уже начали с ним проводить.
Это очень усложняет написание отдельных процедур выполнения отдельных действий связанных с цепочкой обменов.
И еще остается вопрос что будет если мы и модуль одновременно начали что-то передавать.
Остановится ли модем и повторит передачу, или так и продолжит работать в дуплексе.
Вообщем если напрявляем SMS прямо в терминал без сохранения в памяти, то можем потерять строки.
Если же выбрать режим сохранения в памяти, то через некоторое количество процедур выборки и стирания ячеек при непрерывном приеме, память сильно фрагментируется и мы теряем правильную очередность считываемых SMS.
Кто как выкручивается?