Evgeny_CD, Архитектор (14.01.2015 21:06, просмотров: 288) ответил fk0 на Любая программа имеет куда больший поток информации для отладки (и именно он интересен), чем пара внешних коммуникационных протоколов. А последние можно хоть хексдампом в общем потоке записать. Что выпечатывается: переходы между состояниями,
Несколько машин состояния. В каждой несколько узлов. Машины нумеровали руками, узлы - скриптом, заменяя поля в макросах типа LOG(par1, par2, par3). Вывод бы номер машины: номер узла: событие внутри узла: дамп переменных. Структура программы была сильно далека от оптимальной, но даже этого примитива хватало, поскольку были бинарные логи обмена по UART GSM и навигационного приемника.
Дальше все просто. Загоняешь обмен в etherpeek (написали свой конвертер) - смотришь, что бегало по каналу с метками времени. Смотришь логи машины состояния за то же время - все быстро становится понятно.
С навигационным приемников еще лучше. Есть полный лог данных. Кусок фильтрации - в синтетический порт под венду, ему скармливашь лог, и смотришь, как отрабатывает.