Событийно-управляемая задача

Этот пример показывает, как использовать блок диспетчера задач в простой системе, где данные из источника UDP обрабатываются асинхронно каждый раз, когда пакет данных приходит. Блок диспетчера задач

Диспетчер задач и модель программного обеспечения

Следующая модель моделирует программное обеспечение, работающее на процессоре ARM. Блок Task Manager планирует выполнение асинхронной подсистемы внутри блока Программное Обеспечение Model Reference. Блок IO Data Source моделирует сетевую передачу пакетов UDP.

Это Программное обеспечение содержит Подсистему асинхронных Задач, Подсистемы вызова функций, которая выполняет каждый раз, когда возникает триггер события. Блок Asynchronous Task Specification задает приоритет задачи UDP, чтобы соответствовать приоритету, установленному в блоке Task Manager. Блок Rate Adaptor позволяет дискретизировать выходной сигнал Подсистемы асинхронных задач на временном шаге модели Simulink (c).

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

Асинхронная симуляция и результаты

Нажмите кнопку Run, чтобы создать и запустить модель. Когда модель закончит работать, откройте Данные моделирования Inspector, чтобы увидеть результаты симуляции. Выберите ReadUDP, исходные данные и обработанные сигналы данных, чтобы увидеть эффект асинхронного выполнения задачи.

Как показано на Данных моделирования Inspector, время выполнения ReadUDP изменяется на каждом образце приема пакета данных UDP. В некоторых случаях выполнение предыдущей задачи задерживает начало следующего выполнения задачи. Хотя в этом примере пакеты UDP приходят с фиксированной скоростью относительно шага расчета Simulink, начало выполнения задачи не зависит непосредственно от шага расчета. Обработанные данные из выходов задачи при завершении выполнения задачи, что приводит к наблюдаемой задержке в обработанных данных по сравнению с исходными данными.