Идентифицируйте данные при помощи записи через точку

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

Похожие темы