Чтобы задать путь от метрополии до объекта данных, квалифицированное имя данных использует dot notation. Запись через точку является способом идентифицировать данные на определенном уровне иерархии графика Stateflow®. Первая часть квалифицированного имени данных идентифицирует родительский объект. Последующие части идентифицируют дочерние элементы вдоль иерархического пути.
Например, в этом графике, символ data
находится в aa
подсостояния из
a
состояния. Состояние и действия перехода используют квалифицированные имена данных, чтобы относиться к этому символу.
В переходе по умолчанию действие использует квалифицированное имя данных a.aa.data
задавать путь от графика до a
состояния верхнего уровня, к
aa
подсостояния, и наконец к
data
.
В a
состояния, действие записи использует квалифицированное имя данных
aa.data
задавать путь от aa
подсостояния к
data
.
В b
состояния, действие записи использует квалифицированное имя данных
a.aa.data
задавать путь от графика до a
состояния, к
aa
подсостояния, и затем к
data
.
В процессе моделирования Stateflow разрешает квалифицированное имя данных путем выполнения локализованного поиска иерархии графика для соответствующего объекта данных. Поиск начинается на уровне иерархии, где квалифицированное имя данных появляется:
Для акта государственной власти начальная точка является состоянием, содержащим действие.
Для метки перехода начальная точка является родительским элементом источника перехода.
Процесс разрешения ищет каждый уровень иерархии графика для пути к данным. Если объект данных совпадает с путем, процесс добавляет что объект данных в список возможных соответствий. Затем процесс продолжает поиск один уровень выше в иерархии. Остановки процесса разрешения после того, как это ищет уровень графика иерархии. Если уникальное соответствие существует, квалифицированное имя данных решает к соответствующему пути. В противном случае, сбои процесса разрешения. Остановки симуляции, и вы видите сообщение об ошибке.
Эта блок-схема иллюстрирует различные этапы в процессе для решения квалифицированных имен данных.
Решение квалифицированных имен данных:
Не выполняет исчерпывающий поиск всех данных.
Не останавливается после нахождения первого соответствия.
Чтобы улучшить возможности нахождения уникального результата поиска, когда решение квалифицировало имена данных:
Используйте определенные пути на квалифицированные имена данных.
Дайте уникальные имена состояний.
Используйте состояния и поля как корпуса, чтобы ограничить осциллограф поиска разрешения пути.
В этом графике, действии записи в b
состояния содержит квалифицированное имя данных
aa.data
. Если символ data
находится в aa
состояния, затем Stateflow не может разрешить квалифицированное имя данных.
Эта таблица приводит различные этапы в процессе разрешения для квалифицированного имени данных aa.data
.
Этап | Описание | Результат |
---|---|---|
1 | Запуск в b состояния , ищите объект aa это содержит data . | Никакое соответствие не найдено. |
2 | Переместитесь до следующего уровня иерархии (уровень графика). Ищите объект aa это содержит data . | Никакое соответствие не найдено. |
Поиск заканчивается на уровне графика без соответствия, найденного для aa.data
, получившийся по ошибке.
Избегать этой ошибки, в действии записи b
состояния, укажите, что данные с более определенными квалифицированными данными называют
a.aa.data
.
В этом графике, действии записи в a
состояния содержит два экземпляра квалифицированного имени данных
aa.data
. Если оба состояния под названием aa
содержите объект данных под названием data
, затем Stateflow не может разрешить квалифицированное имя данных.
Эта таблица приводит различные этапы в процессе разрешения для квалифицированного имени данных aa.data
.
Этап | Описание | Результат |
---|---|---|
1 | Запуск в a состояния , ищите объект aa это содержит data . | Соответствие найдено. |
2 | Переместитесь до следующего уровня иерархии (уровень графика). Ищите объект aa это содержит data . | Соответствие найдено. |
Поиск заканчивается на уровне графика двумя соответствиями, найденными для aa.data
, получившийся по ошибке.
Избегать этой ошибки:
Используйте более определенное квалифицированное имя данных. Например:
Задавать объект данных в подсостоянии a
состояния, используйте квалифицированное имя данных
a.aa.data
.
Задавать объект данных в aa
состояния верхнего уровня, используйте квалифицированное имя данных
/aa.data
.
Переименуйте одно из состояний, содержащих data
.
Заключите aa
состояния верхнего уровня в поле или в другом состоянии. Добавление корпуса препятствует тому, чтобы поисковый процесс обнаружил данные в состоянии верхнего уровня.