Чтобы задать путь от метрополии до объекта данных, квалифицированное имя данных использует 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
состояния верхнего уровня в поле или в другое состояние. Добавление корпуса препятствует тому, чтобы поисковый процесс обнаружил данные в состоянии верхнего уровня.