Цитата(Alechek @ Jan 20 2016, 14:56)

Так уж вышло, что наше изделие пережило в себе всю последовательность SIM300D-SIM900D-SIM900-SIM900R-SIM900DS, теперь будет пережовывать и SIM800C-DS.
И на весь этот табор одна прошивка. И в ней надо определять тип модема, чтобы потом плясать под него.
То, что у вас заложена поддержка всех выпускавшихся ранее плат, это конечно удобно, но только до определенной степени.
Если модели по функционалу различаются, после какого-то процента различий удобней разделять проекты.
Я тоже поддерживаю десяток похожих модификаций приборов, с унификацией 40-70% (навскидку).
Сначала пытался строить общие файлы проектов, изголяться с условной трансляцией, чтобы оставить один проект на все модификации,
а потом плюнул - проблем больше, чем преимуществ. Допускаешь одну ошибку - и все н-дцать приборов с глюком.
Сейчас один прибор - один проект с парой мелких модификаций.
А по поводу вашего спора о сложности разбора ответов модема, все похоже на тот анекдот, когда говорят:
"Ну, да, ужас! Но никак не УЖАС!!! УЖАС!!!"
Проблемы, конечно, есть, но они обходятся.
Цитата(koluna @ Jan 20 2016, 15:35)

Так все-таки такое поведение (разрыв строки в любом месте) - баг или нет?

Цитата(CADiLO @ Jan 20 2016, 15:44)

С точки зрения пользователя и написания обработчика - можно считать багом.
Но вот с точки зрения GSM cтека - нормальное явление. Ну не додумали малость когда стек писали.
А на сегодня исправлять это уже никто не станет.
На мой взгляд это баг, и баг серьезный.
Это баг на уровне операционки в части организации доступа к разделяемому ресурсу типа последовательного порта.
Или, что более вероятно, не на уровне самой РТОС, а на уровне её применения в стеке.
Это один из важнейших сервисов любой РТОС и баги в нем недопустимы.
И если такой баг бы был, его бы давно уже по тихому пофиксили с короткой строчкой в Релиз Нотес:
"Минор баг фиксет ин модем ансверс"