ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Пятница
22 ноября
1282338 Топик полностью
Лaгyнoв (08.02.2023 17:17, просмотров: 222) ответил petrd на Добрый день! Как оптимально разбирать сообщения от модулей типа SIM800L. По UART данные падают в кольцевой буфер, а дальше? Как их правильно разбирать? Как искать конец строки, там же нет терминального нуля, есть только \r и \n.
Недавно всё у себя переделал. Раньше вообще выпадал из основной программы, пока не закончу с модемом. Теперь по каждой посылке в модем по прерываниям в буфер приходит ответ. Смотрю, что всё пришло, разбираю и шлю новую посылку. Зачем здесь "кольцевой" буфер? Всё равно каждая следующая посылка зависит от ответа на предыдущую. И там - ветвление. Да, сразу не понял. В принципе большинство простых ответов заканчиваются "ОК" и CR,LF. Но есть масса ответов со смыслом, где есть 

"+" и параметры. Там надо строку смотреть. Я везде использую маски типа - "+FTPGET: 1,1". Получив, вижу изменение режима модема.