Приложение реального времени с графическим интерфейсом

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

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

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

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

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

Спасибо!


person Andrey Pesoshin    schedule 01.06.2011    source источник


Ответы (1)


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

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

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

person jwernerny    schedule 02.06.2011
comment
я думаю, что ваш ответ соответствует моим потребностям (кроме анализа затрат) спасибо - person Andrey Pesoshin; 03.06.2011