-
- Да похоже на то. Последняя строчка конечно верна, я это уже
проходил столько раз. Но мне а) психологически некомфортен FSM. я
просто за пару лет напрочь забыл как он там работает. Там увы, увы,
очень некомпактно, файл на тысячи строк и работает это... несколько
дико. Я уже поднимал помнится тему что затратно отлаживать
FSM-машины по "аналоговым" входным данным из дикой природы. Такое
сами понимаете (я уже начал от волнения на Вы писать :) ) не
поддается разумному RxTx(477 знак., 22.02.2024 23:09)
- Такую "супер огромную конечную машину" нужно делить на более мелкие
которые работают параллельно. 5 машин с 4 состояниями отладить
легче чем одну с 1000 состояний. А комбинаций состояний у 5 машин
будет даже больше. - Boвa(24.02.2024 09:25 - 10:31)
- Спорно. Во первых, большое количество состояний не гарантирует
возможность разбить их на несколько переменных состояния, во вторых, проще от этого не становится. Проще становится когда
проектируешь не в коде, а в нарисованном на листочке графе
состояний. А в код только переносишь результат. - Cкpипaч(24.02.2024 09:46)
- В общем да, там надо искать другое решение контроля. Сверху. Кстати оказалось что классическим трассированием и
отладкой (и логгингом) отлаживать это Н Е В О З М О Ж Н О. Т.е.
пытались два года, но дико сложно, результаты так себе. Пзц там был
в том, что придание вот такой-то стратегии поведения тут же причиняло другие проблемы. Дело пошло только тогда, когда стала рисоваться
телеметрия состояния FSM (и ведущих датчиков) в виде графиков во
времени. RxTx(185 знак., 24.02.2024 19:20)
- "Стратегия" , "конечные автоматы", "управление", "нейронки" , "зрение" это разные уровни программ. Их должны писать разные люди на разных языках и т.д. И наверное это все не должно быть монолитным. Тут бы привести исчерпывающую монографию про это всё, но у меня её нет, а есть что-то такое, зато с картинками Возможно что-то там можно еще покопать, может и книжку какую-то толковую найдете. Boвa(1 знак., 25.02.2024 12:21, ссылка)
- Жутко любопытно, что за задача? (естественно, без секретных подробностей) - Cкpипaч(25.02.2024 10:13)
- Диды (Хоровиц с Хилом) завещали что черновая версия проекта должна
умещаться на обратной стороне почтового конверта. Если ваш граф
требует нескольких форматов, вы делаете что-то не то. - Boвa(24.02.2024 09:49)
- Схемы же? Или КА? - RxTx(24.02.2024 19:14)
- Черновая версия, да, не спорю. Cкpипaч(732 знак., 24.02.2024 12:23)
- В общем да, там надо искать другое решение контроля. Сверху. Кстати оказалось что классическим трассированием и
отладкой (и логгингом) отлаживать это Н Е В О З М О Ж Н О. Т.е.
пытались два года, но дико сложно, результаты так себе. Пзц там был
в том, что придание вот такой-то стратегии поведения тут же причиняло другие проблемы. Дело пошло только тогда, когда стала рисоваться
телеметрия состояния FSM (и ведущих датчиков) в виде графиков во
времени. RxTx(185 знак., 24.02.2024 19:20)
- Спорно. Во первых, большое количество состояний не гарантирует
возможность разбить их на несколько переменных состояния, во вторых, проще от этого не становится. Проще становится когда
проектируешь не в коде, а в нарисованном на листочке графе
состояний. А в код только переносишь результат. - Cкpипaч(24.02.2024 09:46)
- Для себя, использую protothreads. Автоматы стали чудо как
читабельны. Абсолютно ничего не смущает. Cкpипaч(566 знак., 23.02.2024 15:28, ссылка)
- В последнее время пришлось перейти на вариант с вычисляемыми
метками и goto. Clang (ARMCC v6) оптимизирует свичевые варианты до
невозможности отладки. - Vit(25.02.2024 13:55)
- Что такое "вычисляемые метки"? Можно пример? - AlexBi(25.02.2024 17:35)
- gcc labels as values: SciFi(1 знак., 25.02.2024 17:56, ссылка)
- Спасибо, даже не знал о таком. А где почитать и посмотреть примеры
можно, гугл весьма невнятен? - Andreas(25.02.2024 16:13)
- там, например --> Vit(32 знак., 26.02.2024 09:21, ссылка, ссылка)
- Вычисляемые метки еще хороши тем что не конфликтуют со switch. - Cкpипaч(25.02.2024 14:46)
- Что такое "вычисляемые метки"? Можно пример? - AlexBi(25.02.2024 17:35)
- Спасибо! - RxTx(24.02.2024 19:13)
- В последнее время пришлось перейти на вариант с вычисляемыми
метками и goto. Clang (ARMCC v6) оптимизирует свичевые варианты до
невозможности отладки. - Vit(25.02.2024 13:55)
- Такую "супер огромную конечную машину" нужно делить на более мелкие
которые работают параллельно. 5 машин с 4 состояниями отладить
легче чем одну с 1000 состояний. А комбинаций состояний у 5 машин
будет даже больше. - Boвa(24.02.2024 09:25 - 10:31)
- тогда уже лучше рекомендовать связку bison + flex, это развитие
yacc - klen(22.02.2024 23:04)
- Да. Пардон, я именно их и пробовал, просто забыл. - Cкpипaч(22.02.2024 23:04)
- Да похоже на то. Последняя строчка конечно верна, я это уже
проходил столько раз. Но мне а) психологически некомфортен FSM. я
просто за пару лет напрочь забыл как он там работает. Там увы, увы,
очень некомпактно, файл на тысячи строк и работает это... несколько
дико. Я уже поднимал помнится тему что затратно отлаживать
FSM-машины по "аналоговым" входным данным из дикой природы. Такое
сами понимаете (я уже начал от волнения на Вы писать :) ) не
поддается разумному RxTx(477 знак., 22.02.2024 23:09)