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

Чтобы задать путь от родительского состояния до объекта данных, квалифицированное имя данных использует dot notation. Запись через точку является способом идентифицировать данные на определенном уровне Stateflow® стройте диаграмму иерархии. Первая часть квалифицированного имени данных идентифицирует родительский объект. Последующие части идентифицируют дочерние элементы вдоль иерархического пути.

Например, в этом графике, символ data находится в aa подсостояния из a состояния. Состояние и действия перехода используют квалифицированные имена данных, чтобы относиться к этому символу.

  • В переходе по умолчанию действие использует квалифицированное имя данных a.aa.data задавать путь от графика до a состояния верхнего уровня, к aa подсостояния, и наконец к data.

  • В a состояния, действие входа использует квалифицированное имя данных aa.data задавать путь от aa подсостояния к data.

  • В b состояния, действие входа использует квалифицированное имя данных a.aa.data задавать путь от графика до a состояния, к aa подсостояния, и затем к data.

Chart with two states named a and b. State a contains a substate named aa. State aa contains a data object named data.

Разрешение квалифицированных имен данных

В процессе моделирования Stateflow разрешает квалифицированное имя данных путем выполнения локализованного поиска иерархии графика для соответствующего объекта данных. Поиск начинается на уровне иерархии, где квалифицированное имя данных появляется:

  • Для состояния активности начальная точка является состоянием, содержащим действие.

  • Для метки перехода начальная точка является родительским элементом источника перехода.

Процесс разрешения ищет каждый уровень иерархии графика для пути к данным. Если объект данных совпадает с путем, процесс добавляет что объект данных в список возможных соответствий. Затем процесс продолжает поиск один уровень выше в иерархии. Остановки процесса разрешения после того, как это ищет уровень графика иерархии. Если уникальное соответствие существует, квалифицированное имя данных решает к соответствующему пути. В противном случае, сбои процесса разрешения. Остановки симуляции, и вы видите сообщение об ошибке.

Эта блок-схема иллюстрирует различные этапы в процессе для решения квалифицированных имен данных.

Flow chart that describes process for resolving qualified data names.

Лучшие практики для Использования записи через точку

Решение квалифицированных имен данных:

  • Не выполняет исчерпывающий поиск всех данных.

  • Не останавливается после нахождения первого соответствия.

Чтобы улучшить возможности нахождения уникального результата поиска, когда решение квалифицировало имена данных:

  • Используйте определенные пути на квалифицированные имена данных.

  • Дайте уникальные имена состояний.

  • Используйте состояния и поля как корпуса, чтобы ограничить осциллограф поиска разрешения пути.

Примеры квалифицированного разрешения имени данных

Поиск не производит соответствий

В этом графике, действии входа в b состояния содержит квалифицированное имя данных aa.data. Если символ data находится в aa состояния, затем Stateflow не может разрешить квалифицированное имя данных.

Chart with two states named a and b. State a contains a substate named aa. State aa contains a data object named data.

Эта таблица приводит различные этапы в процессе разрешения для квалифицированного имени данных aa.data.

ЭтапОписаниеРезультат
1Запуск в b состояния, ищите объект aa это содержит data.Никакое соответствие не найдено.
2Переместитесь до следующего уровня иерархии (уровень графика). Ищите объект aa это содержит data.Никакое соответствие не найдено.

Поиск заканчивается на уровне графика без соответствия, найденного для aa.data, получившийся по ошибке.

Избегать этой ошибки, в действии входа b состояния, укажите, что данные с более определенными квалифицированными данными называют a.aa.data.

Поиск производит несколько соответствий

В этом графике, действии входа в a состояния содержит два экземпляра квалифицированного имени данных aa.data. Если оба состояния под названием aa содержите объект данных под названием data, затем Stateflow не может разрешить квалифицированное имя данных.

Chart with three states named a, aa, and b. State a contains a substate named aa. Each of the states named aa contains a data object named data.

Эта таблица приводит различные этапы в процессе разрешения для квалифицированного имени данных aa.data.

ЭтапОписаниеРезультат
1Запуск в a состояния, ищите объект aa это содержит data.Соответствие найдено.
2Переместитесь до следующего уровня иерархии (уровень графика). Ищите объект aa это содержит data.Соответствие найдено.

Поиск заканчивается на уровне графика двумя соответствиями, найденными для aa.data, получившийся по ошибке.

Избегать этой ошибки:

  • Используйте более определенное квалифицированное имя данных. Например:

    • Задавать объект данных в подсостоянии a состояния, используйте квалифицированное имя данных a.aa.data.

    • Задавать объект данных в aa состояния верхнего уровня, используйте квалифицированное имя данных /aa.data.

  • Переименуйте одно из состояний, содержащих data.

  • Заключите aa состояния верхнего уровня в поле или в другом состоянии. Добавление корпуса препятствует тому, чтобы поисковый процесс обнаружил данные в состоянии верхнего уровня.

    Chart in which a box encloses the top-level state aa.

Похожие темы