Я пишу программное обеспечение OpenGL, которое управляется UART (последовательным с помощью Boost :: asio) в C ++ под Linux.
В настоящее время я завершил получение и обработку данных и готов визуализировать их с помощью OpenGL. Этот вопрос не может быть ограничен OpenGL, в любом случае мой вопрос:
Как вызвать функцию рисования OpenGL из функции обратного вызова UART?
Конечно, я смогу запустить его:
- Использование любого из методов IPC (PIPE, Socket, Semaphore)
- Передать функцию рисования OpenGL или ее класс в качестве переменной для обратного вызова UART
- Собираем все в один класс
Я сталкивался со многими подобными случаями и реализовал их по-разному. Но я все еще не могу понять, что является правильным ответом.
Лично мне не нравятся PIPE или файловые IO IPC, единственная оставшаяся опция - это сокет, семафор и разделяемая память, которые я всегда использовал.