Приложение реального времени с графическим интерфейсом - PullRequest
1 голос
/ 01 июня 2011

Мне нужно разработать приложение для работы в реальном времени, которое может обрабатывать ввод пользователя (с некоторой внешней панели управления) как можно быстрее и обеспечивать вывод на ЖК-монитор (также очень быстро).

Точнее - мне нужно обрабатывать прерывания с фиксированным временем (с периодом 1 мс), чтобы пересчитать внутреннюю модель - с текущим состоянием, полученным с внешней панели управления.

Когда внутренняя модель изменяется, мне нужно обновить изображение на ЖК-мониторе (сейчас я думаю, что самый правильный способ - это обновлять каждое прерывание). Также не хочу задержек здесь.

Какая платформа наиболее подходит для ее реализации? А также, какой из них является наиболее экономически эффективным?

Я слышал о QNX, IntervalZero RTX, rtlinux, но не знаю деталей и возможностей каждого из них.

Спасибо!

1 Ответ

2 голосов
/ 02 июня 2011

Что касается различных операционных систем, я знаю, что QNX имеет очень хороший "жесткий" режим реального времени и был построен и оптимизирован с нуля. Теперь на нем также запущен Qt (QNX 6.5) для полнофункционального графического интерфейса.

Я слышал (из вторых рук) неподтвержденную информацию о том, что rtlinux очень близок к жесткому в реальном времени (гарантированное в реальном времени), но иногда может быть поздно, если драйвер (обычно сторонний) не кодируется должным образом. [Это было от поставщика ОСРВ, так что возьмите его по достоинству.]

В качестве проблемы проектирования я бы разделил три отдельные операции на три потока с разными приоритетами: один поток для извлечения данных и установки семафора для новых данных, один поток для обновления модели и установки семафора, который модель готова, и один поток для обновления графического интерфейса. Я бы запустил поток GUI с гораздо более медленной скоростью обновления. Большинство мониторов находятся в диапазоне 60-120 Гц для обновления. Почему обновление быстрее, чем данные могут отображаться на экране?

...