Приложение реального времени с графическим интерфейсом
Мне нужно разработать приложение в реальном времени, которое может обрабатывать ввод пользователя (с некоторой внешней панели управления) как можно быстрее и обеспечивать вывод на ЖК-монитор (также очень быстро).
Чтобы быть более точным - мне нужно обрабатывать прерывания с фиксированным временем (с периодом 1 мс), чтобы пересчитать внутреннюю модель - с текущим состоянием, извлекаемым из внешней панели управления.
Когда внутренняя модель изменяется, мне нужно обновить изображение на ЖК-мониторе (теперь я думаю, что самый правильный способ - это обновлять каждое прерывание). Также не хочу никаких задержек здесь.
Какая платформа наиболее подходит для ее реализации? А также, какой из них является наиболее экономически эффективным?
Я слышал о QNX, IntervalZero RTX, rtlinux, но не знаю деталей и возможностей каждого из них.
Спасибо!
1 ответ
Что касается различных операционных систем, я знаю, что QNX имеет очень хороший "жесткий" режим реального времени и был построен и оптимизирован с нуля. На нем также теперь работает Qt (QNX 6.5) для полнофункционального графического интерфейса.
Я слышал (из вторых рук) анекдотическую информацию о том, что rtlinux очень близок к жесткому в реальном времени (гарантированное в реальном времени), но иногда может быть поздно, если драйвер (обычно сторонний) не кодируется должным образом. [Это было от поставщика ОСРВ, так что возьмите его по достоинству.]
В качестве проблемы проектирования я бы разделил три отдельные операции на три потока с разными приоритетами: один поток для извлечения данных и установки семафора для подготовки новых данных, один поток для обновления модели и установки семафора для модели. готов и один поток для обновления графического интерфейса. Я бы запустил поток GUI с гораздо более медленной скоростью обновления. Большинство мониторов находятся в диапазоне 60-120 Гц для обновления. Почему обновление быстрее, чем данные могут отображаться на экране?