User functions
Пользовательские функции — subgraph с граничными pins; на родительской ветке отображаются какsubgraph-блок. Канон: DEVICE_BOARD_CONCEPT.md §18.
Где найти в UI
- Вкладка Scenario → sidebar Пользовательские функции.
- Кнопка
+— новая пустая функция (exec-in / exec-out по умолчанию). - Клик по функции в списке открывает её граф на вкладке function.
Прямое редактирование (без modal)
Если вы уже на вкладке function, клик по другой функции в списке сразу переключает canvas и показывает inline-редактор (имя, описание, pins) в сайдбаре — без промежуточного modal. При входе в function с handler-ветки по-прежнему возможен modal выбора.Редактор функции
Exec pins
- На Input и Output первый (верхний) порт — exec-поток (
exec-in/exec-out). - Exec pins нельзя удалить и нельзя переименовать; добавлять можно только data pins.
Subgraph-блок на ветке
На handler-ветке функция отображается какsubgraph-узел с тегом custom и точным именем, которое вы задали в редакторе (не Имя::fn-id).
Лимит pins (D-PINS-9)
Рядом с Input и Output — индикаторn/9. На каждой стороне не более 9 pins
(exec и data в общем счёте). При 9/9 добавление нового pin недоступно.
Создание функции из выделения
- На handler-ветке (main, alarm, …) выделите минимум 2 пользовательских узла (marquee).
- В modal выберите «Объединить в функцию».
- Выделенные узлы переносятся в новый subgraph; на ветке остаётся subgraph-блок.
- Редактор переключается на вкладку function.
Viewport
На вкладке function доступны fit to graph и minimap — навигация по крупным subgraph.Undo и навигация между функциями
- Переименование, pins, collapse — попадают в undo depth-1 (см. Edit & navigation).
- Переключение fn-1 → fn-2 не вызывает F7-revert: черновики функций хранятся в памяти до Save.
- При уходе с вкладки function на handler pending undo сбрасывается.
Runtime
Внутри функции те же правила exec/data, что на handler-ветке. Глубина вложенности subgraph — ≤ 1 (функция не может содержать другой subgraph-блок).См. также
- Edit & navigation
- Architecture — ветки scenario