Моя цель: мне нужно вычислить новые управляющие входы моей системы и обновить положение робота, который я программирую, в точные моменты выборки.Реализация программы для выполнения вычислений с плавающей запятой каждые 25 мс с использованием обработчика сигнала linux в многопоточной программе сервера?
Проблема: у меня есть работающая серверная программа, которая обслуживает несколько клиентов и может выполнять простые маневры роботов. Для этого у меня есть два потока: один для управления роботом и один для обслуживания нескольких клиентов. Теперь мне нужно внедрить более сложные алгоритмы роя в точные образцы моментов. Я успешно написал боковую программу (используя setitimer()), которая прерывает каждые 25 мс, используя SIGVTALRM.
Теперь мне нужен совет о том, как лучше всего приступить к проектированию. Мое основное беспокойство заключается в том, как выполнить алгоритм в обработчике сигнала, поскольку он должен удовлетворять многим ограничениям из-за многопоточных и безопасных сигналов.
Извините за подробные объяснения, но я считаю, что хорошее объяснение даст хороший ответ.
Спасибо за ваше время!
Насколько точны сроки? + - 1 мс? + - 10 мс? –
+ - 0,1 мс будет достаточно хорошим. – lukecam95
Вы смотрели 'timer_create' и' timer_settime'? –