В программном интерфейсе инспектора данных моделирования можно использовать несколько функций для синхронизации курсоров между приложением App Designer и инспектором данных моделирования. Синхронизированные курсоры позволяют легко анализировать данные, построенные в инспекторе данных моделирования, наряду с данными, отображаемыми в пользовательской визуализации, закодированной в приложении App Designer.
Приложение в этом примере является простым и иллюстрирует только основную функцию передачи информации о курсорах между приложением и инспектором данных моделирования. Позиции курсора отображаются на линейных измерителях в приложении. Можно использовать ползунки в приложении для изменения положения курсоров на панелях Inspect или Compare инспектора данных моделирования. При перемещении курсоров в инспекторе данных моделирования новые положения курсора отражаются на ползунках и линейных измерителях.

Приложение курсоров открывается в App Designer, где можно просмотреть и изменить макет пользовательского интерфейса и код, определяющий функцию каждого элемента пользовательского интерфейса.
appdesigner('CursorsApp.mlapp');
Чтобы запустить приложение курсоров, нажмите кнопку Выполнить. Откроется новое окно с пользовательским интерфейсом приложения. Чтобы начать работу с приложением, щелкните Открыть инспектор данных моделирования, а затем щелкните Создать данные. Кнопка «Создать данные» создает данные и отображает два сигнала на панели «Проверка» инспектора данных моделирования.

Затем добавьте курсоры. Курсоры можно добавить с помощью элемента управления Количество курсоров в приложении или с помощью параметра Показать/скрыть курсоры данных в инспекторе данных моделирования. Элемент управления ползунком и индикатор для каждого курсора становятся видимыми после того, как курсор активен в инспекторе данных моделирования. Попробуйте переместить курсоры с помощью ползунков в приложении и перетащите их в инспектор данных моделирования.

Приложение также включает элементы управления и отображение курсоров на панели Сравнение инспектора данных моделирования. Для взаимодействия с курсорами на панели Сравнить (Compare) сначала щелкните Сравнить данные (Compare Data). Инспектор данных моделирования автоматически отображает панель Сравнить (Compare) при сравнении данных. Затем добавьте курсоры на графики сравнения с помощью приложения или инспектора данных моделирования. Попробуйте переместить курсоры в инспекторе данных моделирования и с помощью ползунков в приложении.

По завершении просмотра синхронизации курсора закройте окно приложения.
Чтобы просмотреть код в окне App Designer, щелкните Просмотр кода в правом верхнем углу полотна приложения.

В представлении кода отображается код, определяющий функцию приложения. Код в серых областях автоматически программируется App Designer при интерактивном добавлении компонентов и задании свойств в представлении «Дизайн». Код в белых областях настраивает функцию приложения.
Приложение курсоров добавляет два пользовательских свойства в приложение. callbackID сохраняет идентификатор обратного вызова курсора, зарегистрированного инспектором данных моделирования, чтобы приложение могло отменить регистрацию обратного вызова при закрытии приложения. runIDs сохраняет идентификаторы прогонов, созданных при нажатии кнопки «Создать данные». Идентификаторы прогонов затем используются для сравнения прогонов при нажатии кнопки Сравнить данные.
OnCursorMove Метод OnCursorMove функция - это обратный вызов курсора, который приложение регистрирует в инспекторе данных моделирования при запуске приложения. Чтобы синхронизировать экраны, функция обновляет настройки приложения при каждом перемещении курсора в инспекторе данных моделирования.
refreshSettings МетодПриложение курсоров также включает пользовательский метод refreshSettings, которая сохраняет значения, отображаемые в приложении, синхронизированными с состоянием инспектора данных моделирования. refreshSettings метод использует Simulink.sdi.getNumCursors функция позволяет убедиться, что элементы управления «Количество курсоров» отображают правильное количество курсоров, видимых в данный момент на панелях «Проверка» и «Сравнение» инспектора данных моделирования. refreshSettings метод также управляет видимостью ползунков и датчиков с помощью позиций курсора, возвращаемых Simulink.sdi.getCursorPositions функция. Если курсор находится вне диапазона соответствующих ползунка и датчика, приложение скрывает регулятор и индикатор для этого курсора.
Каждый компонент пользовательского интерфейса приложения имеет связанную функцию, которая реализует ответ компонента на взаимодействие с пользователем. Можно добавить один или несколько обратных вызовов для компонента в представлении «Дизайн» и написать код для определения ответа компонента в представлении «Код».
| Метод | Описание функциональных возможностей |
|---|---|
| При открытии приложения курсоров приложение регистрирует обратный вызов курсоров в инспекторе данных моделирования и обновляет данные приложения. |
| При нажатии кнопки Открыть инспектор данных моделирования приложение открывает инспектор данных моделирования и обновляет данные приложения. |
| При нажатии кнопки «Создать данные» приложение создает синусоидальный и косинусный сигналы и отображает их в инспекторе данных моделирования. |
| При нажатии кнопки Сравнить данные приложение сравнивает прогон с синусоидальным сигналом, а прогон с косинусным сигналом. |
| При закрытии приложения отменяет регистрацию функций обратного вызова курсоров в инспекторе данных моделирования. |
| При использовании одного из элементов управления Количество курсоров для изменения количества курсоров, отображаемых в Инспекторе данных моделирования, приложение использует |
| При настройке положения курсора с помощью ползунка приложение использует |
Simulink.sdi.getCursorPositions | Simulink.sdi.getNumCursors | Simulink.sdi.registerCursorCallback | Simulink.sdi.setCursorPositions | Simulink.sdi.setNumCursors | Simulink.sdi.unregisterCursorCallback