Я не про систему команд, а про их реализацию.
Столкнулся с багом в парсере команд WT12:
если дать команду WT12, на которую он должен ответить каким-то ответом, то, если в этот-же момент происходит
какое-то событие, то сообщение о событии перемешивается с ответом WT12 на команду.
Например: сообщени о событии разрывает одну из строк ответа на команду и приходит внутри неё.
Разобрать потом получившуюся кашу в общем случае невозможно.
Ниже - один из таких случаев: дана команда SLEEP и в этот момент приходит RING (строки с '<<' - TX; с '>>' - RX).
(включено эхо команд и "OK." после результата команды; скорость 115200).
Код
<<SLEEP
>>SLRING 0 00:02:72:37:68:ba 1 RFCOMM 2b4fae2
>>EEP
>>OK.
Происходит довольно часто. Для теста достаточно передавать непрерывно какую-нить команду и в этот момент к примеру попытаться сделать входящий коннект.
Иногда это усугубляется потерей нескольких символов из ответа на команду (думал пофиксить баг костылём с поиском асинхронных событий внутри всех ответов
на команды, но потеря символов ставит крест на таком костыле).
Неужто никто с таким не сталкивался????
Когда выбирал этот модуль и просматривал здесь и в других местах отзывы о нём, ничего о таком не слышал. Иначе бы вообще не выбрал WT12...
Есть ещё и другие баги, но этот самый серьёзный.