ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Среда
17 июля
1440721 Топик полностью
Cкpипaч, пророк (03.06.2024 20:44, просмотров: 97) ответил Boвa на Ок. Т.е. состояния отображаются счетчиком команд.
Хороший вопрос. 

Лет пять назад Vit мне указал на это.

В принципе, ничто не мешает "перегрузить" goto и сохранять значение состояния в отдельную переменную.

Или творение Дункельса допилить, чтобы часть case задавать в явной форме именованными.

Наверное в каком нибудь проекте я это сделаю.


Пока, на практике оказывается достаточным того что прикладная программа, в момент обработки запроса по modbus гарантированно сидит в каком-то yield().

И он идентифицируется по переменной процесса.


Но я и это, вроде бы, ни разу не использовал.

Все же логика переходов по состояниям прикладной программы отслеживается по выходным сигналам ей формируемыми.



И раз уж тему зацепили - вложенные автоматы.

Лично мне ни разу не понадобились.

Точнее, частенько бывает что какой-то то ли датчик, то ли исполнительный механизм описывается конечным автоматом.

Но это тогда отдельный процесс, существующий независимо от того, нужен ли он управляющей программе или нет.

"Где-то там" его вызывает big-loop и результат его деятельности (и состояние) видны в памяти,

но так чтобы основной автомат в каких-то своих состояниях СОЗДАВАЛ и удалял автоматы - ни разу не подвернулось случая где это было бы полезно.

... но не любой ценой.