Хорошая практика проектирования архитектуры ОСРВ - PullRequest
0 голосов
/ 07 февраля 2020

Мне нужен хороший совет по архитектуре системы RTOS. Позвольте мне начать с объяснения немного контекста. Устройство, для которого мы разрабатываем это программное обеспечение, представляет собой хлебную печь, управление которой осуществляется через визуальный интерфейс (GUI). Среди прочего, мы используем один поток для всего GUI, а другой - для того, что мы называем «контролем», задача, предназначенная для вычисления важных управляющих значений (температуры,…) и отправки их на другую печатную плату ( с фактическим оборудованием) через Modbus. Очевидно, что выполняются и другие задачи, например, одна для чтения / записи на USB-накопитель или другая для связи Ethe rnet ... Задача управления имеет самый высокий приоритет из всех.

Для разделения потоков и сделать их настолько независимыми, насколько это возможно, мы планируем отправлять сообщения между ними в максимально возможной степени, вместо того, чтобы делиться ресурсами. Теперь возникает мое сомнение:

Когда нажимается клавиша или кнопка на визуальном интерфейсе, должен воспроизводиться звук. Я думал о том, чтобы сделать это, отправив сообщение 'play sound' из потока GUI в поток с низким приоритетом, который будет иметь дело с оратором, но мой коллега вселил в меня сомнения. Она сказала, что весь процесс может занять слишком много времени (поскольку поток говорящего может ждать других потоков с более высоким приоритетом до конечного sh) и что в этом случае он будет заметен и неприятен для пользователя (из c) , вы ожидаете услышать звук, как только вы нажмете клавишу). Поэтому она предлагает вызвать низкоуровневую функцию из потока GUI для воспроизведения этого звука. Это рекомендуемая идея? Как это обычно делается в «промышленности»?

Заранее благодарим за ваше озарение. Я знаю, что это очень конкретный c вопрос, но трудно найти какую-либо соответствующую информацию об этом в Интернете.

...